C/C++セキュアコーディング
Amazon.co.jpで買う
正誤情報
詳細情報
C/C++セキュアコーディング
Robert C. Seacord 著、JPCERTコーディネーションセンター 訳
定価:3,990円 (本体3,800円)
発売日:2006/11/07
形態:B5変 (368ページ)
ISBN:4-7561-4823-9 (978-4-7561-4823-0)
内容
CERT/CCの上級脆弱性アナリストが、ソフトウェアの脆弱性の根本原因と、脆弱性を作り込まないための方法について解説。翻訳はJPCERT/CC。C/C++プログラマ必携の書。
担当編集者より
安全なプログラムを作る。
セキュリティインシデントの大半は、トロイの木馬やソーシャルエンジニアリング、そしてソフトウェアの不具合や設計上の問題、設定上の問題、システム間の予期しない相互作用を含むソフトウェア脆弱性を攻撃することで引き起こされているといってよいでしょう。
著者はCERT/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 代表的な脆弱性
2.10 まとめ
2.11 参考資料

第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 動的メモリ管理
4.2 動的メモリ管理に発生する間違い
4.3 Doug Leaメモリアロケータ
4.4 RtlHeap
4.5 脅威の緩和方法
4.6 代表的な脆弱性
4.7 まとめ
4.8 参考資料

第5章 整数演算
5.1 整数型
5.2 整数の変換
5.3 整数のエラー条件
5.4 整数演算
5.5 脆弱性
5.6 非例外的な論理エラー
5.7 脅威の緩和方法
5.8 代表的な脆弱性
5.9 まとめ
5.10 参考資料

第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 まとめ

第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 参考資料

参考文献
略語集
索引


戻る
Copyright (C) 2010 ASCII MEDIA WORKS. All rights reserved.