ハッカーの攻撃手法の詳細を知ることにより、防御の本質を説いたベストセラー待望の改訂版です。「ハッキング」とは、周囲を驚かせるような鮮やかな手法で問題を解決すること。本書では真のハッカーの思想、美学、ハッキングテクニックに迫ることにより、「ハッカー魂」とは何かを徹底的に追い求めています。システムの脆弱性やプログラム、ネットワークの盲点を利用したり、またシェルコードの挿入による攻撃方法などを詳しく紹介。脆弱性攻撃のテクニックがシンプルで美しいコードとともに解説されています。後半では暗号について、そのアルゴリズムからわかりやすく解説。さまざまな弱点を巧みに突くテクニックはまさに芸術。ハッキングの真実とともにセキュリティの重要性を説く究極のセキュリティガイドです。
Hacking:美しき策謀 第2版
―脆弱性攻撃の理論と実際
Jon Erickson 著、村上 雅章 訳
- TOPICS
- Security
- 発行年月日
- 2011年10月
- PRINT LENGTH
- 564
- ISBN
- 978-4-87311-514-6
- 原書
- Hacking: The Art of Exploitation, Second Edition
- FORMAT
- Print PDF
関連ファイル
目次
謝辞
訳者まえがき
賞賛の声
はじめに
0x100 はじめに
0x200 プログラミング
0x210 プログラミングとは何か?
0x220 擬似コード
0x230 制御構造
0x231 if-then-else
0x232 whileループとuntilループ
0x233 forループ
0x240 その他の基本コンセプト
0x241 変数
0x242 算術演算子
0x243 比較演算子
0x244 関数
0x250 実際に使ってみる
0x251 全体像を見る
0x252 x86プロセッサ
0x253 アセンブリ言語
0x260 基本に立ち返る
0x261 文字列
0x262 符号付き、符号無し、長整数、短整数
0x263 ポインタ
0x264 フォーマット文字列
0x265 キャスト
0x266 コマンドライン引数
0x267 変数のスコープ
0x270 メモリのセグメント化
0x271 C言語におけるメモリセグメント
0x272 ヒープの使用
0x273 エラー判定付きのmalloc()関数
0x280 続・基本
0x281 ファイルアクセス
0x282 ファイルの権限
0x283 ユーザID
0x284 構造体
0x285 関数ポインタ
0x286 疑似乱数
0x287 運試しゲーム
0x300 プログラムの脆弱性攻撃
0x310 汎用的な脆弱性攻撃テクニック
0x320 バッファオーバーフロー
0x321 スタック上でのバッファオーバーフロー攻撃
0x330 bashを用いた実験
0x331 環境変数を使用する
0x340 他のセグメントでのオーバーフロー
0x341 ヒープセグメントでのオーバーフロー
0x342 関数ポインタのオーバーフロー
0x350 フォーマット文字列
0x351 フォーマットパラメータ
0x352 フォーマット文字列を利用した攻撃
0x353 任意のメモリアドレスから読み込みを行う
0x354 任意のメモリアドレスに書き込みを行う
0x355 ダイレクトパラメータアクセス
0x356 ショートライトを使用する
0x357 .dtorsを狙った攻撃
0x358 notesearchのさらなる脆弱性
0x359 グローバルオフセットテーブル(GOT)の上書き
0x400 ネットワーク
0x410 OSIの参照モデル
0x420 ソケット
0x421 ソケット関連の関数
0x422 ソケットアドレス
0x423 ネットワークのバイト順
0x424 インターネットアドレスの変換
0x425 簡単なサーバの例
0x426 ウェブクライアントの例
0x427 tinywebサーバ
0x430 下位層に目を向ける
0x431 データリンク層
0x432 ネットワーク層
0x433 トランスポート層
0x440 ネットワークのスニッフィング
0x441 生のソケットをスニッフィングする
0x442 libpcapスニッファ
0x443 階層を読み解いていく
0x444 アクティブスニッフィング
0x450 DoS攻撃
0x451 SYN Flooding
0x452 Ping of Death
0x453 Teardrop
0x454 Ping Flooding
0x455 Amplification Attack
0x456 分散DoS攻撃
0x460 TCP/IPのハイジャック
0x461 RSTを用いたハイジャック
0x462 継続的ハイジャック
0x470 ポートスキャン
0x471 ステルス型のSYNスキャン
0x472 FINスキャン、X-masスキャン、NULLスキャン
0x473 デコイの使用
0x474 アイドルスキャン
0x475 積極的な防御策(シュラウド)
0x480 ネットワーク経由でハッキングを行う
0x481 GDBを用いた分析
0x482 最後の詰め
0x483 ポートバインド型シェルコード
0x500 シェルコード
0x510 アセンブリ言語 VS. C言語
0x511 アセンブリ言語によるLinuxのシステムコール
0x520 シェルコードへの道
0x521 スタックを用いたアセンブリ命令
0x522 GDBを用いた調査
0x523 nullバイトの除去
0x530 シェルを起動するシェルコード
0x531 優先順位の問題
0x532 さらに小さく
0x540 ポートバインド型シェルコード
0x541 標準ファイル記述子を差し替える
0x542 制御構造の実装
0x550 コネクトバック型シェルコード
0x600 攻撃と防御の共進化
0x610 攻撃を検知する
0x620 システムデーモン
0x621 シグナル超入門
0x622 tinywebデーモン
0x630 ハッカーの必需品
0x631 tinywebdに対する脆弱性攻撃ツール
0x640 ログファイル
0x641 人ごみに紛れる
0x650 見逃してはいけない明らかな兆候
0x651 小分けにして考える
0x652 すべてを元通りにする
0x653 子プロセスでの作業
0x660 高度なカムフラージュ
0x661 ログに出力されるIPアドレスを詐称する
0x662 ログレス攻撃
0x670 全体インフラ
0x671 ソケットの再利用
0x680 ペイロードを隠密裏に搬入する
0x681 文字列のコード化
0x682 NOPスレッドの隠蔽
0x690 バッファの制約
0x691 ASCIIコードの印字可能文字だけで作られたポリモーフィックシェルコード
0x6a0 さらなる対策
0x6b0 実行不能スタック
0x6b1 ret2libc
0x6b2 system()へのリターン
0x6c0 スタック領域のランダム化
0x6c1 BASHとGDBを用いた調査
0x6c2 linux-gateのバウンスオフ
0x6c3 知識の応用
0x6c4 最初の試み
0x6c5 確率を味方にする
0x700 暗号学
0x710 情報理論
0x711 無条件安全性
0x712 ワンタイムパッド
0x713 量子鍵配布
0x714 計算量的安全性
0x720 アルゴリズムの実行時間
0x721 漸近的計算量
0x730 対称暗号
0x731 Lov Groverの量子検索アルゴリズム
0x740 非対称暗号
0x741 RSA
0x742 Peter Shorの量子因数分解アルゴリズム
0x750 ハイブリッド暗号
0x751 MitM攻撃
0x752 SSHプロトコルによるホストのフィンガープリントの違い
0x753 ファジーフィンガープリント
0x760 パスワードクラッキング
0x761 辞書攻撃
0x762 総当たり攻撃
0x763 ハッシュ検索テーブル
0x764 パスワード確率マトリクス
0x770 ワイヤレス802.11b暗号
0x771 WEP(Wired Equivalent Privacy)
0x772 RC4ストリーム暗号
0x780 WEP攻撃
0x781 オフライン総当たり攻撃
0x782 キーストリームの再利用
0x783 IVに基づく解読用辞書データベース
0x784 IPリダイレクション
0x785 FMS(Fluhrer、Mantin、Shamir)攻撃
0x800 まとめ
0x810 参考文献
0x820 リソース
索引