C/C++ セキュアコーディング 第2版
最終更新: 2014-11-14
Robert C. Seacord 著
JPCERTコーディネーションセンター 歌代和正, 久保正樹, 椎木孝斉 訳
定価:本体3,800円+税
ISBN-10: 4-0489-1987-3
内容
脆弱性を作り込まない、安全なプログラムを作る。
脆弱性につながるプログラミング上の問題と、攻撃リスクを除去あるいは緩和するための効果的かつ実用的な回避策を詳しく提示。
大幅に加筆された第2版。
翻訳はJPCERT/CC歌代和正、久保正樹、椎木孝斉。C/C++プログラマ必携の書。
目次
第1章 今そこにある危機
| 1.1 |
現状認識 |
| 1.2 |
セキュリティの概念 |
| 1.3 |
CとC++ |
| 1.4 |
開発環境 |
| 1.5 |
まとめ |
| 1.6 |
参考資料 |
第2章 文字列操作
| 2.1 |
文字列の特性 |
| 2.2 |
犯しやすい文字列操作の間違い |
| 2.3 |
文字列の脆弱性と攻撃 |
| 2.4 |
文字列に関する脅威の緩和方法 |
| 2.5 |
文字列処理関数 |
| 2.6 |
動的防御による緩和方法 |
| 2.7 |
代表的な脆弱性 |
| 2.8 |
まとめ |
| 2.9 |
参考資料 |
第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 |
参考資料 |
第4章 動的メモリ管理
| 4.1 |
C言語におけるメモリ管理 |
| 4.2 |
Cのメモリ管理に発生する間違い |
| 4.3 |
C++の動的メモリ管理 |
| 4.4 |
C++のメモリ管理に発生する間違い |
| 4.5 |
メモリマネージャ |
| 4.6 |
Doug Leaメモリアロケータ |
| 4.7 |
二重解放の脆弱性 |
| 4.8 |
脅威の緩和方法 |
| 4.9 |
代表的な脆弱性 |
| 4.10 |
まとめ |
第5章 整数演算
| 5.1 |
はじめに |
| 5.2 |
整数型 |
| 5.3 |
整数変換 |
| 5.4 |
整数演算 |
| 5.5 |
整数の脆弱性 |
| 5.6 |
脅威の緩和方法 |
| 5.7 |
まとめ |
第6章 書式指定出力
| 6.1 |
可変引数関数 |
| 6.2 |
書式指定出力関数 |
| 6.3 |
書式指定出力関数への攻撃 |
| 6.4 |
スタックのランダム化 |
| 6.5 |
脅威の緩和方法 |
| 6.6 |
代表的な脆弱性 |
| 6.7 |
まとめ |
| 6.8 |
参考資料 |
第7章 並行処理
| 7.1 |
マルチスレッド処理 |
| 7.2 |
並行性 |
| 7.3 |
性能上のゴール |
| 7.4 |
一般的なプログラミングエラー |
| 7.5 |
脅威の緩和方法 |
| 7.6 |
陥りやすいコーディングの誤り |
| 7.7 |
代表的な脆弱性 |
| 7.8 |
まとめ |
第8章 ファイル入出力
| 8.1 |
ファイル入出力の基礎 |
| 8.2 |
ファイル入出力インタフェース |
| 8.3 |
アクセス制御 |
| 8.4 |
ファイル識別 |
| 8.5 |
競合状態 |
| 8.6 |
脅威の緩和方法 |
| 8.7 |
まとめ |
第9章 実践手法
| 9.1 |
セキュリティ開発ライフサイクル |
| 9.2 |
セキュリティトレーニング |
| 9.3 |
セキュリティ要求工学 |
| 9.4 |
設計 |
| 9.5 |
実装 |
| 9.6 |
検証 |
| 9.7 |
まとめ |
参考文献
略語集
索引
Topへ