C/C++ セキュアコーディング
最終更新: 2007-12-17
Robert C. Seacord 著
JPCERTコーディネーションセンター 訳
定価:本体3,800円+税
ISBN:4-7561-4823-9
内容
CERT/CCの上級脆弱性アナリストが、ソフトウェアの脆弱性の根本原因と、脆弱性を作り込まないための方法について解説。
翻訳はJPCERT/CC。C/C++プログラマ必携の書。
Topへ
目次
Topへ
第1章 今そこにある危機
| 1.1 |
現状認識 |
| 1.2 |
セキュリティの概念 |
| 1.3 |
CとC++ |
| 1.4 |
開発環境 |
| 1.5 |
まとめ |
| 1.6 |
参考資料 |
Topへ
第2章 文字列操作
| 2.1 |
文字列の特性 |
| 2.2 |
犯しやすい文字列操作の間違い |
| 2.3 |
文字列の脆弱性 |
| 2.4 |
プロセスのメモリ構成 |
| 2.5 |
スタック破壊 |
| 2.6 |
コードインジェクション |
| 2.7 |
アークインジェクション |
| 2.8 |
脅威の緩和方法 |
| 2.9 |
代表的な脆弱性 |
| 2.10 |
まとめ |
| 2.11 |
参考資料 |
Topへ
第3章 ポインタ偽装
| 3.1 |
データロケーション |
| 3.2 |
関数ポインタ |
| 3.3 |
データポインタ |
| 3.4 |
命令ポインタの変更 |
| 3.5 |
グローバルオフセットテーブル |
| 3.6 |
.dtorsセクション |
| 3.7 |
仮想ポインタ |
| 3.8 |
atexit()とon_exit() |
| 3.9 |
longjmp()関数 |
| 3.10 |
例外処理 |
| 3.11 |
脅威の緩和方法 |
| 3.12 |
まとめ |
| 3.13 |
参考資料 |
Topへ
第4章 動的メモリ管理
| 4.1 |
動的メモリ管理 |
| 4.2 |
動的メモリ管理に発生する間違い |
| 4.3 |
Doug Leaメモリアロケータ |
| 4.4 |
RtlHeap |
| 4.5 |
脅威の緩和方法 |
| 4.6 |
代表的な脆弱性 |
| 4.7 |
まとめ |
| 4.8 |
参考資料 |
Topへ
第5章 整数演算
| 5.1 |
整数型 |
| 5.2 |
整数の変換 |
| 5.3 |
整数のエラー条件 |
| 5.4 |
整数演算 |
| 5.5 |
脆弱性 |
| 5.6 |
非例外的な論理エラー |
| 5.7 |
脅威の緩和方法 |
| 5.8 |
代表的な脆弱性 |
| 5.9 |
まとめ |
| 5.10 |
参考資料 |
Topへ
第6章 書式指定出力
| 6.1 |
可変引数関数 |
| 6.2 |
書式指定出力関数 |
| 6.3 |
書式指定出力関数への攻撃 |
| 6.4 |
スタックのランダム化 |
| 6.5 |
脅威の緩和方法 |
| 6.6 |
代表的な脆弱性 |
| 6.7 |
まとめ |
| 6.8 |
参考資料 |
Topへ
第7章 ファイル入出力
| 7.1 |
並列処理 |
| 7.2 |
諸行無常 |
| 7.3 |
ロックファイルとファイルロック |
| 7.4 |
ファイルシステムへの攻撃 |
| 7.5 |
脅威の緩和方法 |
| 7.6 |
まとめ |
Topへ
第8章 実践手法
| 8.1 |
安全なソフトウェア開発のための原則 |
| 8.2 |
システム品質要求工学 |
| 8.3 |
脅威のモデル化 |
| 8.4 |
ユースケースとミスユースケース |
| 8.5 |
アーキテクチャと設計 |
| 8.6 |
既製ソフトウェア |
| 8.7 |
コンパイラによる検査 |
| 8.8 |
入力値の検証 |
| 8.9 |
データの無害化 |
| 8.10 |
静的解析 |
| 8.11 |
品質保証 |
| 8.12 |
メモリ保護 |
| 8.13 |
縦深防御 |
| 8.14 |
TSP-Secure |
| 8.15 |
まとめ |
| 8.16 |
参考資料 |
Topへ
参考文献
略語集
索引
Topへ