C/C++セキュアプログラミングクックブック VOLUME 1

―基本的な実装テクニック

[cover photo]
TOPICS
クックブック , Programming , Security , C/C++
発行年月日
PRINT LENGTH
244
ISBN
4-87311-200-1
原書
Secure Programming Cookbook for C and C++
FORMAT
Print
3,080円
この商品は品切れ再入荷未定です

パスワードスニッフィング(盗聴)、スプーフィング(偽装)、バッファオーバーフロー、サービス拒否攻撃(DoS)など、今日のコンピュータ/ネットワークには様々な攻撃が仕掛けられてきます。ネットワークにおけるセキュリティ問題の大半はそれを実現しているソフトウェアのセキュリティに原因があります。堅牢でセキュアなソフトウェアを開発するには専門的な知識が必要で あり、セキュアプログラミングの技術は今後ますます必要になってきます。
本シリーズはセキュアプログラミングに真剣に取り組んでいる開発者にとってきわめて重要な情報源になります。WindowsならびにLinuxを含むUnixの両方のプラットフォームを対象に、このVolume 1では堅牢な初期化、アクセス制御、入力の検証、アンチタンパリング、アンチリバースエンジニアリングなどの必須の技術をC/C++で記述するための具体的なノウハウを、豊富なコードと一緒に提供しています。
単なるサンプルコードではなく実用レベルのコードが示されている点で、C/C++プログラマの貴重なリファレンスになることでしょう。

目次

監訳者まえがき
まえがき
はじめに

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 監査ログの最善の実践方法


索引