犯罪者から身を守るためには何が必要でしょうか?ただ闇雲に塀を高くしたり、 よく切れるナイフを懐に入れておくだけでは十分とは言えません。防御をより完 璧に近づけるためには、犯罪者の手口を知り、詳しく分析して対策を練る必要があります。同時に自分の弱点を知ることも重要です。本書は攻撃者の手口の詳細はもちろん、心理や目的にまで踏み込んでさまざまな観点から多角的に検討。その上で効果的な対策方法を示しています。日夜クラッカーと戦うシステム管理者だけでなく、すべてのPCユーザに贈る最強のセキュリティ本。UNIX、Linux、Windows、Windows CE対応。
セキュリティウォリア
―敵を知り己を知れば百戦危うからず
Cyrus Peikari, Anton Chuvakin 著、西原 啓輔 監訳、伊藤 真浩, 岸 信之, 進藤 成純 訳
- TOPICS
- Web , Security
- 発行年月日
- 2004年10月
- PRINT LENGTH
- 564
- ISBN
- 4-87311-198-6
- 原書
- Security Warrior
- FORMAT
目次
監訳者まえがき はじめに Ⅰ部 ソフトウェアクラッキング 1章 アセンブリ言語 1.1 レジスタ 1.1.1 スタック 1.1.2 アドレッシング 1.2 命令コード 1.3 参考文献 2章 Windowsリバースエンジニアリング 2.1 リバースエンジニアリングの歴史 2.2 ツール 2.2.1 16進エディタ 2.2.2 逆アセンブラ 2.2.3 デバッガ 2.2.4 システムモニタ 2.2.5 解凍ツール 2.2.6 パーソナルファイアウォール 2.2.7 インストールマネージャ 2.3 リバースエンジニアリングの実例 2.3.1 例1:crackme 2.3.2 例2:悪意のあるコードのリバースエンジニアリング 2.4 参考文献 3章 Linuxリバースエンジニアリング 3.1 基本ツールの使い方 3.1.1 ターゲット解析の概要 3.1.2 デバッガ 3.1.3 実行時監視ツール 3.1.4 逆アセンブラ 3.1.5 16進ダンプ 3.2 上手な逆アセンブリ 3.2.1 関数の識別 3.2.2 中間コード生成 3.2.3 プログラム制御フロー 3.3 逆アセンブル中の問題点 3.3.1 デバッグ対策 3.3.2 逆アセンブル対策 3.4 新規ツールの作成 3.4.1 ELFファイル形式 3.4.2 ptraceによるデバッグ 3.4.3 GNU BFDライブラリ 3.4.4 libopcodesによる逆アセンブル 3.5 参考文献 4章 Windows CEリバースエンジニアリング 4.1 Windows CEアーキテクチャ 4.1.1 プロセッサ 4.1.2 カーネル、プロセス、およびスレッド 4.1.3 メモリアーキテクチャ 4.1.4 グラフィックス、ウィンドウイング、イベントサブシステム(GWES) 4.2 Windows CEリバースエンジニアリングの基本 4.2.1 ARMプロセッサ 4.2.2 ARM命令コード 4.3 リバースエンジニアリング例 4.3.1 Hello, World! 4.3.2 クラッキング技術 4.3.3 CEプログラムの逆アセンブル 4.3.4 Microsoft eMbedded Visual Tools 4.3.5 MVTの使用 4.3.6 MVC環境の習得 4.3.7 test.exeのリバースエンジニアリング 4.4 serial.exeのリバースエンジニアリング 4.4.1 概要 4.4.2 ステップ実行による調査 4.4.3 システムの悪用 4.4.4 クラック 4.5 参考文献 5章 オーバーフロー攻撃 5.1 バッファオーバーフロー 5.1.1 オーバーフロー例 5.2 バッファの概要 5.3 スタック破壊 5.4 ヒープオーバーフロー 5.5 バッファオーバーフローの予防方法 5.5.1 ソースコードの自動検査ツール 5.5.2 コンパイラへのアドオンツール 5.5.3 その他の保護方法 5.6 攻撃の実行例 5.7 参考文献 Ⅱ部 ネットワークからのストーキング 6章 TCP/IP 6.1 TCP/IPの歴史 6.2 パケットの基本構造 6.3 TCP 6.3.1 TCPの機能 6.3.2 TCPパケットフィールド 6.4 IP 6.4.1 IPパケットフォーマット 6.5 UDP 6.6 ICMP 6.7 ARP 6.8 RARP 6.9 BOOTP 6.10 DHCP 6.11 TCP/IPハンドシェイク 6.12 隠れチャネル 6.13 IPv6 6.13.1 IPv6の機能 6.13.2 IPv6アドレッシング 6.13.3 IPv6のセキュリティ 6.14 Ethereal 6.15 フラグメンテーション 6.15.1 フラグメンテーション変数 6.15.2 フラグメンテーションの悪用 6.15.3 Nmapを使用したフラグメンテーション 6.15.4 hping 6.15.5 Fragroute 6.16 参考文献 7章 ソーシャルエンジニアリング 7.1 ソーシャルエンジニアリングとは 7.1.1 攻撃対象 7.1.2 一般的な誤解 7.2 攻撃の実行 7.2.1 能動的攻撃と受動的攻撃 7.2.2 攻撃の準備 7.2.3 ソーシャルエンジニアリング活動計画 7.2.4 情報収集テンプレート 7.3 高度なソーシャルエンジニアリング 7.4 参考文献 8章 偵察 8.1 オンライン偵察 8.1.1 受動的偵察 8.1.2 能動的偵察 8.2 まとめ 8.3 参考文献 9章 OSフィンガープリンティング 9.1 Telnetセッションネゴシエーション 9.2 TCPスタックフィンガープリンティング 9.2.1 Nmapを使用したテスト例 9.2.1 Nmapが使用している技術 9.2.2 Nmapからの防御 9.3 特殊なツール 9.4 受動的フィンガープリンティング 9.5 ファジー手法の利用 9.5.1 従来手法の問題点 9.5.2 ファジー手法を利用した解決法 9.6 TCP/IPタイムアウト検出 9.7 参考文献 10章 侵入痕跡の隠蔽 10.1 誰から隠蔽するのか? 10.2 侵入直後の痕跡消去 10.2.1 システムログ 10.2.2 アプリケーションログ 10.2.3 シェルの履歴ファイル 10.2.4 UNIXバイナリログ 10.2.5 その他の記録 10.3 フォレンジックス対策 10.3.1 ファイルの確実な消去 10.3.2 タイムスタンプの消去 10.4 隠れアクセスの維持 10.4.1 隠蔽方法 10.4.2 隠れアクセス 10.5 参考文献 Ⅲ部 ネットワーク攻撃方法 11章 UNIX防御 11.1 UNIXパスワード 11.2 ファイルパーミッション 11.2.1 属性と機能 11.3 システムロギング 11.4 UNIXのネットワークアクセス 11.4.1 TCP Wrappers 11.4.2 NFS/NIS 11.4.3 バックアップ 11.4.4 X-Windowシステム 11.5 UNIX強化 11.5.1 強化する領域 11.5.2 スクリプトによる自動強化 11.6 UNIXネットワーク防御 11.6.1 高度なTCP Wrappers 11.6.2 アプリケーション固有のアクセス制御 11.6.3 システム設定の変更 11.6.4 ホストベースのファイアウォール 11.7 参考文献 12章 UNIX攻撃 12.1 ローカル攻撃 12.1.1 物理的攻撃 12.1.2 マシン起動時の攻撃 12.1.3 起動中の割り込み 12.1.4 スクリーンセーバ攻撃 12.1.5 パス変更 12.1.6 パスワード攻撃 12.1.7 SUIDの悪用 12.1.8 /tmpとシンボリックリンク、ハードリンクの悪用 12.1.9 chrootからの脱出 12.2 リモート攻撃 12.2.1 TCP 12.2.2 UDP 12.2.3 最も悪用されやすいUNIX脆弱性 12.3 UNIXのDoS攻撃 12.3.1 ローカルDos攻撃 12.3.2 ネットワークDoS攻撃 12.3.3 DDoS攻撃 12.4 参考文献 13章 Windowsクライアント攻撃 13.1 サービス拒否攻撃 13.1.1 SMB攻撃 13.1.2 ユニバーサルプラグアンドプレイ攻撃 13.1.3 ヘルプセンター攻撃 13.2 リモート攻撃 13.3 リモートデスクトップ/リモートアシスタンス 13.3.1 リモートデスクトップの悪用 13.3.2 リモートアシスタンスの悪用 13.4 参考文献 14章 Windowsサーバ攻撃 14.1 サーバ製品のリリース履歴 14.2 Kerberos認証攻撃 14.3 Kerberosの認証方式 14.3.1 ネットワーク資源へのアクセス 14.3.2 Kerberosプロトコルの脆弱性 14.4 バッファオーバーフロー防御の突破 14.5 Active Directoryの弱点 14.6 PKIのハッキング 14.7 スマートカードハッキング 14.7.1 スマートカードの利点 14.7.2 ハードウェアリバースエンジニアリング 14.7.3 EEPROMトラッピング 14.7.4 電力消費解析 14.8 暗号化ファイルシステムの変更点 14.8.1 背景 14.8.2 ユーザとの関係 14.8.3 スタンドアロンマシンの上のデータ回復 14.9 サードパーティ暗号 14.9.1 機能概要 14.9.2 ワンタイムパスワード 14.9.3 アドミニストレータリカバリ 14.9.4 Authenti-Check自己パスワードリセットツール 14.9.5 ユーザプログラム設定オプション 14.9.6 ユーザプログラムのネットワークインストールとアップデート 14.9.7 シングルサインオン 14.10 参考文献 15章 Webサービスのセキュリティ 15.1 XML暗号化 15.2 XML署名 15.3 参考文献 16章 SQL挿入 16.1 SQLとは 16.1.1 SQLコマンド 16.1.2 SQLの使用 16.2 SQL挿入攻撃 16.2.1 攻撃の分類 16.2.2 脆弱性の検出 16.3 SQL挿入に対する防御 16.3.1 隠蔽による防御 16.3.2 外部での防御 16.3.3 コーディングによる防御 16.3.4 結論 16.4 PHP-Nukeの例 16.4.1 PHP-Nukeのインストール 16.4.2 攻撃 16.4.3 防御 16.5 参考文献 17章 無線セキュリティ 17.1 低周波ノイズの制御 17.2 WEPの問題 17.3 WEPクラッキング 17.3.1 データ解析 17.3.2 無線スニッフィング 17.3.3 IVのコリジョン(衝突) 17.3.4 WEPクラッキングの実行 17.3.5 VPN 17.3.6 RADIUS 17.4 TKIP 17.5 SSL 17.6 無線ウィルス 17.6.1 ウィルス対策 17.7 参考文献 Ⅳ部 ネットワーク防御方法 18章 監査証跡の解析 18.1 ログ解析の基礎 18.2 ログの例 18.2.1 UNIX 18.2.2 Windows 18.2.3 リモートの隠しログ処理 18.2.4 他のログ処理バリエーション 18.3 システム状態のログ 18.4 ログ解析のタイミング 18.5 ログのオーバーフローと収集 18.6 ログ解析における課題 18.7 セキュリティ情報管理 18.8 グローバルなログ収集 18.9 参考文献 19章 侵入検知システム 19.1 IDSの例 19.1.1 ホストIDS 19.1.2 ネットワークIDS 19.2 ベイジアン解析 19.2.1 感度と特異性 19.2.2 真と偽の予測値 19.2.3 尤度比 19.3 IDSのハッキング 19.3.1 フラグメンテーション 19.3.2 スプーフィング 19.3.3 プロトコル変異 19.3.4 整合性チェッカーに対する攻撃 19.4 IDSの将来 19.4.1 組み込みIDS 19.4.2 厳格な異常検知 19.4.3 ホストベースIDSとネットワークベースIDSの比較 19.4.4 データの可視化 19.5 Snort IDSの配備例 19.5.1 システムセットアップ 19.5.2 警告を表示するための設定 19.5.3 IDSルールのチューニング 19.6 IDSの配備に関する問題 19.7 参考文献 20章 ハニーポット 20.1 目的 20.2 インフラストラクチャの構築 20.2.1 構築手順 20.3 攻撃のキャプチャ 20.4 参考文献 21章 インシデントレスポンス 21.1 ケーススタディ:ワームによる大混乱 21.2 定義 21.3 インシデントレスポンスの構成 21.3.1 準備 21.3.2 特定 21.3.3 拡大防止 21.3.4 原因除去 21.3.5 復旧 21.3.6 事後対応 21.4 小規模ネットワーク 21.5 中規模ネットワーク 21.6 大規模ネットワーク 21.6.1 インシデントの特定 21.6.2 攻撃的レスポンス 21.6.3 復旧 21.7 参考文献 22章 フォレンジックスとアンチフォレンジックス 22.1 ハードウェアの紹介 22.1.1 ハードドライブ 22.1.2 RAM 22.2 情報の残がい 22.3 フォレンジックスツール 22.3.1 WinHex 22.4 ブート可能なフォレンジックスCD-ROM 22.4.1 Biatchux、FIRE 22.4.2 ForensiX 22.5 Evidence Eliminator 22.5.1 スワップファイル 22.5.2 テンポラリファイル 22.5.3 Windowsレジストリストリーム 22.5.4 クリップボード 22.5.5 チャットログ 22.5.6 ブラウザのゴミ(インターネットエクスプローラ) 22.5.7 Netscape Navigator用オプション 22.6 フォレンジックの実例:FTP攻撃 22.6.1 はじめに 22.6.2 調査 22.7 参考文献 Ⅴ部 付録 付録 SoftICEの便利なコマンドとブレークポイント A.1 SoftICEコマンド A.2 ブレークポイント 索 引