パスワードスニッフィング(盗聴)、スプーフィング(偽装)、バッファオーバーフロー、サービス拒否攻撃(DoS)など、今日のコンピュータ/ネットワークには様々な攻撃が仕掛けられてきます。ネットワークにおけるセキュリティ問題の大半はそれを実現しているソフトウェアのセキュリティに原因があります。堅牢でセキュアなソフトウェアを開発するには専門的な知識が必要で
あり、セキュアプログラミングの技術は今後ますます必要になってきます。
本シリーズはセキュアプログラミングに真剣に取り組んでいる開発者にとってきわめて重要な情報源になります。WindowsならびにLinuxを含むUnixの両方のプラットフォームを対象に、このVolume 1では堅牢な初期化、アクセス制御、入力の検証、アンチタンパリング、アンチリバースエンジニアリングなどの必須の技術をC/C++で記述するための具体的なノウハウを、豊富なコードと一緒に提供しています。
単なるサンプルコードではなく実用レベルのコードが示されている点で、C/C++プログラマの貴重なリファレンスになることでしょう。
C/C++セキュアプログラミングクックブック VOLUME 1
―基本的な実装テクニック
John Viega, Matt Messier 著、岩田 哲 監訳、光田 秀 訳
- TOPICS
- クックブック , Programming , Security , C/C++
- 発行年月日
- 2004年09月
- PRINT LENGTH
- 244
- ISBN
- 4-87311-200-1
- 原書
- Secure Programming Cookbook for C and C++
- FORMAT
目次
監訳者まえがき まえがき はじめに 1章 安全な初期化 レシピⅠ-1.1 環境の消毒 レシピⅠ-1.2 Windowsの権限を制限する レシピⅠ-1.3 setuidしたプログラムの特権を破棄する レシピⅠ-1.4 特権分離でリスクを小さくする レシピⅠ-1.5 ファイルディスクリプタを安全に扱う レシピⅠ-1.6 子プロセスを安全に作成する レシピⅠ-1.7 Unixで外部プログラムを安全に実行する レシピⅠ-1.8 Windowsで外部プログラムを安全に実行する レシピⅠ-1.9 クラッシュ時にメモリダンプされないようにする 2章 アクセス制御 レシピⅠ-2.1 Unixのアクセス制御モデルを理解する レシピⅠ-2.2 Windowsのアクセス制御モデルを理解する レシピⅠ-2.3 ユーザがUnix上のファイルのアクセス権を持っているかどうかを決定する レシピⅠ-2.4 ディレクトリがセキュアであるかどうかを決定する レシピⅠ-2.5 ファイルを安全に削除する レシピⅠ-2.6 ファイル情報に安全にアクセスする レシピⅠ-2.7 Unix上の新規ファイルのアクセスパーミッションを制限する レシピⅠ-2.8 ファイルをロックする レシピⅠ-2.9 Unixのプロセス全体にわたってリソースへのアクセスを同期させる レシピⅠ-2.10 Windowsのプロセス全体にわたってリソースへのアクセスを同期させる レシピⅠ-2.11 テンポラリファイルを作成する レシピⅠ-2.12 Unix上のファイルシステムへのアクセスを制限する レシピⅠ-2.13 FreeBSD上のファイルシステムとネットワークへのアクセスを制限する 3章 入力の検証 レシピⅠ-3.1 基本的なデータ検証のテクニックを理解する レシピⅠ-3.2 書式関数に対する攻撃を防ぐ レシピⅠ-3.3 バッファオーバーフローを防ぐ レシピⅠ-3.4 SafeStrライブラリを使用する レシピⅠ-3.5 整数の型変換問題とラップアラウンド問題を防止する レシピⅠ-3.6 環境変数を安全に使用する レシピⅠ-3.7 ファイル名とパスを検証する レシピⅠ-3.8 URLエンコーディングを評価する レシピⅠ-3.9 電子メールのアドレスを検証する レシピⅠ-3.10 クロスサイトスクリプティングを防止する レシピⅠ-3.11 SQL挿入攻撃を防ぐ レシピⅠ-3.12 不正なUTF-8文字を検出する レシピⅠ-3.13 select( )使用時のファイルディスクリプタオーバーフローを防止する 4章 耐タンパー性 レシピⅠ-4.1 ソフトウェア保護の問題を理解する レシピⅠ-4.2 改竄を検出する レシピⅠ-4.3 コードの難読化 レシピⅠ-4.4 ビットとバイトを難読化する レシピⅠ-4.5 定数によって変数を変換する レシピⅠ-4.6 スカラー変数をマージする レシピⅠ-4.7 変数を分割する レシピⅠ-4.8 論理値を偽装する レシピⅠ-4.9 関数ポインタを使用する レシピⅠ-4.10 配列を再構築する レシピⅠ-4.11 文字列を隠す レシピⅠ-4.12 デバッガを検出する レシピⅠ-4.13 Unixのデバッガを検出する レシピⅠ-4.14 Windowsデバッガを検出する レシピⅠ-4.15 SoftICEを検出する レシピⅠ-4.16 逆アセンブルを阻止する レシピⅠ-4.17 自己修正を行うコードを使用する 5章 その他のトピック レシピⅠ-5.1 エラー処理 レシピⅠ-5.2 メモリ上のデータを安全に削除する レシピⅠ-5.3 メモリがディスクに書き出されるのを防止する レシピⅠ-5.4 可変引数を適切に使う レシピⅠ-5.5 適切なシグナル処理を行う レシピⅠ-5.6 Windowsに対するShatter Attack(壊滅的な攻撃)からのプロテクション レシピⅠ-5.7 過剰なスレッド生成を監視する レシピⅠ-5.8 ネットワークソケットの過剰生成を防ぐ レシピⅠ-5.9 Unixに対するリソーススタベーション攻撃を防ぐ レシピⅠ-5.10 Windowsに対するリソーススタベーション攻撃を防ぐ レシピⅠ-5.11 監査ログの最善の実践方法 索引