タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

Cとセキュリティに関するmasakielastic2のブックマーク (4)

  • 'strncpy' vs. 'sprintf'

    I can see many sprintf's used in my applications for copying a string. I have a character array: char myarray[10]; const char *str = "mystring"; Now if I want want to copy the string str into myarray, is is better to use: sprintf(myarray, "%s", str); or strncpy(myarray, str, 8); ?

    'strncpy' vs. 'sprintf'
  • FIO02-C. 汚染された情報源から取得したパス名は正規化する

    FIO02-C. 汚染された情報源から取得したパス名は正規化する パス名、ディレクトリ名、およびファイル名には、検証することが難しい文字や正しくない文字が含まれていることがある。また、パス名の一部がシンボリックリンクの場合は、ファイルの実際の場所や同一性がさらにわかりにくい。ファイル名の検証を容易にするため、名前を正規化した形式に変換することを推奨する。ファイル名を正規化することで、パス名、ディレクトリ名、ファイル名を比較しやすくなり、検証がはるかに容易になる。 正規化形式はオペレーティングシステムやファイルシステムごとに異なる。オペレーティングシステム固有の仕組みを使用して正規化するのが望ましい。 一例として、パス名が POSIX システム上のユーザのホームディレクトリ内のファイルを参照することを確認する関数を示す。 #include <pwd.h> #include <unistd.h

    FIO02-C. 汚染された情報源から取得したパス名は正規化する
    masakielastic2
    masakielastic2 2012/09/19
    バッファオーバーフローの問題から realpath() を避けるよう man ページで呼びかけられてきた。POSIX.1-2008 で resolved_name に NULL ポインタを割り当てられるようになった。
  • C/C++ セキュアコーディングセミナー資料 | JPCERT コーディネーションセンター

    これまでにC/C++ セキュアコーディングセミナーで使用した講義資料を公開しています。2010年度にセミナを実施した、文字列、整数、動的メモリ管理、書式指定文字列、CERT C セキュアコーディングスタンダード、ROSE については、それぞれ最新版の資料を掲載しています。 文字列 ユーザとソフトウエア間に発生するデータのやりとりの大部分は文字列によって行われます。 また、プログラム間でのデータ交換も文字列形式で行われるようになり、その結果、文字列表現や文字列管理、文字列操作における弱点がソフトウエア脆弱性を生み出しています。 文字列では、C/C++ 言語における文字列操作、一般的なセキュリティ上の欠陥と、その結果発生する脆弱性と対処方法について解説します。 C/C++ における文字列の特性 犯しやすい文字列操作の間違い 文字列の脆弱性 プロセスのメモリ構成 スタック破壊の仕組み コードイン

    C/C++ セキュアコーディングセミナー資料 | JPCERT コーディネーションセンター
  • 脆弱性体質の改善 ――C/C++セキュアコーディング入門(1)

    はじめに 皆さんこんにちは。JPCERTコーディネーションセンターという組織でセキュアコーディングに関する取り組みに携わる筆者らが、これからこの連載を担当させていただくことになりました。どうぞよろしくお願いします。なお、JPCERTコーディネーションセンターは、情報セキュリティインシデントへの対応支援や、ソフトウエアの脆弱性(いわゆるセキュリティホール)に関する製品開発者間における公開日の調整や関連情報の公開なども行っています。 この連載では、バッファーオーバーフロー等の脆弱性をうっかり作り込んでしまったがために、数千万円ものコストをかけて、ユーザに告知し、製品を回収して、工場でファームウェアをアップデートする事態に陥ったり、あるいは脆弱性を放置してユーザを危険にさらし、それが明るみに出て「世間を騒がす」ことになったりしなくても済むように、そもそもの製品開発時からセキュアなプログラムを書く

    脆弱性体質の改善 ――C/C++セキュアコーディング入門(1)
  • 1