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へ