総論
C,C++がもたらす問題
既存ソフトウェアの脆弱性分析
開発工程と脆弱性対策
ツールの利用
脆弱性回避策とソフトウェア開発工程
脅威モデリング
セキュリティテスト
ソースコードレビュー
計画されたセキュリティ機能
アクセス制御:
#1
本人認証
#2
アクセス認可
破られにくい暗号技術と擬似乱数の使用
不測の事態対策
ログ記録による証跡確保とログ自体の漏えい対策
サービス不能状態対策
メモリリーク対策
レースコンディションの一般的対策
プログラム配置対策
構成ファイルからの情報漏えい対策
子プロセスからの侵害対策
chroot, jail の利用
フェイルセーフ
セキュアなデフォルト
エラーハンドリング
データ漏えい対策
最小の特権
最小のアクセスパーミッション
テンポラリファイル(Unix の一時ファイル)
コマンドラインからの情報漏えい対策
親切すぎるエラーメッセージの回避
メモリクリア失敗対策
ページングおよびメモリダンプ対策
入力検査
入力検査の概要
受信ファイルの検査
環境変数の検査とリセット
ファイル対策
ファイルの別名検査
シンボリックリンク攻撃対策
ファイルレースコンディション対策
ファイル拡張子による起動対策
著名な脆弱性対策
バッファオーバーフロー:
#1
概要
#2
ソースコード記述時の対策
#3
ソースコードの静的検査
#4
あふれを検出するデバッグ
#5
運用環境における防御
フォーマット文字列攻撃
整数オーバーフロー攻撃対策
SQL注入攻撃対策
コマンド注入攻撃対策