2007-03-11 :-)
_ [言語][関数][Linux][脆弱性][メモリ][コード][Windows][OpenBSD][ポインタ][Microsoft][プログラム][プログラマ][不正アクセス][セキュリティ][コーディング]C/C++セキュアコーディング
コンピュータセキュリティとは、攻撃者が不正アクセス、あるいは不正に計算機ネットワークを使用することで彼らの目的を達成しようとするのを防止するものである( p.34 )
本書で扱っている OS はおもに Microsoft Windows と Linux です。OpenBSD の実装方法なども参考程度に登場しますが基本は Windows と Linux を扱っています。
目次を見てみましょう。目次を見ただけでだいたいどのようなことを言っているのか想像できると思います。
- 第1章 今そこにある危機
- 第2章 文字列操作
- 第3章 ポインタ偽装
- 第4章 動的メモリ管理
- 第5章 整数演算
- 第6章 書式指定出力
- 第7章 ファイル入出力
- 第8章 実践手法
各章のはじめに技術的な説明をしています。章の終わりにその技術を攻撃者が使ったことにより発生した過去の代表的な脆弱性を紹介しています。
ようするに問題はプログラムでのポインタの扱いです。攻撃者はあらゆる手段を使って C プログラムのポインタを不正にアクセスするように攻撃します。文字列処理( gets() strcpy() strlen() memcpy() など )や関数ポインタ( atexit() setjmp() など )が攻撃対象になります。C 言語はそもそもセキュリティを考慮して作られていません。NULL 終端、不正なポインタなどをチェックするのはすべてプログラマの責任です。C++ はあまりコードを書かないので分からないです。どうなんでしょう。
- セキュリティを考慮していない C 言語
- 脆弱性について無知なプログラマ
この 2 つが組み合わさると脅威になります。
プログラマは脆弱性について知識を得て、脆弱性について責任を持つ必要があるわけです。
この本は C/C++ でのコーディングのセキュリティを扱っていますが、もっと広く暗号や人間も含めたセキュリティについても学ぶならば「 情報セキュリティ技術大全 」[ 2005-02-04 ]がお勧めです。
4756148239
4822281426
_ [統計]統計でウソをつく法
何かを説明するために数値を示したり、グラフを示したりすることはよく見かけます。当社比 200% とか、全米が泣いたとか。では全米とはいったいなんでしょうか、全米とはいつの全米なのでしょうか、全米とは米国に住むすべての人間ひとりひとりを対象にしてるのでしょうか。この本では、そういった宣伝などに使われる数値やグラフのトリックを説明しています。
- 意図的にグラフをデフォルメする
- 2 軸表の縦軸の単位を書かない
- 「 平均値 」と言っておいてどの平均なのか明かさない
- そもそも統計の標本が誤っている
NHKの捏造棒グラフのネタもありました。なるほど、統計を操るのは古典的な手法なのですね。
ref. 高木浩光@自宅の日記 - 日常化するNHKの捏造棒グラフ
4061177206
だいたいTVで行ってる実験の被験者数とか期間とか<br>統計の母集団としてはサイズが小さすぎるハズです。。。
坊T@さん<br>うむ。「 その話って本当なのかなあ、ウソじゃないの? 」と疑って見ることが重要なのですね。
一億人の平均を出す場合でも、サンプルは200ぐらいで良いって統計学があるけどね。<br><br>まぁ、それはともかく。<br>先月までやってたセキュア超重要な仕事場で残件に残ってた一項目に、「構造体内部のポインタはAPI先頭で内容を全て内部変数としてコピー」ってのがありました。<br>構造体はポインタで関数に渡されますが、API 処理開始時、構造体内部のポインタは正常なアドレスを指してるとしても(メモリ範囲チェック等で確認)、実際にアドレス参照するタイミングで違うアドレスにアプリから変更されると改竄される可能性があるので。<br>ほかにも、構造体のアライメントで出来る空間とか不定値が帰る処理とか全て外部に返却する際に固定値で塗潰すとかって対策も盛り込まれてた。
なんか卵ベヘリットみたい
矢道さん<br>統計は学生のころに統計の数値の計算方法は習ったけど、どこから標本をとればじゅうぶんかというのまではやってないような記憶がありんす。<br><br>ぉぉ。セキュアなコーディングを実践してましたか。固定値で塗りつぶすというのは、たとえばマイクロソフトの開発環境を使ってのデバッグ時には開発環境がメモリ領域を 0xCC とか 0x0C だかで埋めてました。値が変わったかどうかをチェックしてるわけですな。<br><br>kennakさん<br>む。ベルセルクのネタすか。