入門セキュリティコンテスト
ーーCTFを解きながら学ぶ実戦技術
2022年11月26日紙版発売
2022年11月24日電子版発売
中島明日香 著
A5判/232ページ
定価2,948円(本体2,680円+税10%)
ISBN 978-4-297-13180-7
書籍の概要
この本の概要
セキュリティコンテスト「CTF(Capture The Flag)」についての入門書です。CTFは情報セキュリティ技術を競う競技で,本書で扱う「クイズ形式」のCTFでは,情報セキュリティに関係するさまざまな分野の問題が与えられ,参加者は多様な技術(解析技術や攻撃技術)を駆使し,問題の答えとなる「flag」と呼ばれる文字列を見つけ出します。
本書ではSECCONなどのCTFの過去問を解きながら,CTFの流れや定石を学びつつ,問題を解くのに使う「暗号」「脆弱性」「リバースエンジニアリング」といった,セキュリティに関する実践的な知識についても解説します。各章では次の勉強につながるよう参考文献も紹介。CTFへの参加を考えている方にも,実践的なセキュリティ技術を身につけたい方にもお勧めできる1冊です。
こんな方におすすめ
- セキュリティコンテストに興味のある方
- セキュリティコンテストで勝ち進みたい方
- 実践的なセキュリティ技術を身につけたい方
この書籍に関連する記事があります!
- 意外と熱い! 「セキュリティコンテスト」の世界
- セキュリティコンテスト「CTF(Capture The Flag)」についての入門書です。
本書のサンプル
本書の紙面イメージは次のとおりです。画像をクリックすることで拡大して確認することができます。
目次
Chapter 0 CTF超入門
0.1 CTFとは
0.2 CTFの種類
- クイズ形式
- 問題のジャンルについて
- 出題方法について
- スコアリング方式について
- スコアサーバついてについて
- flagの形式について
- CTF大会のルール一例
- 攻防戦形式
- その他の形式
0.3 国内外のCTF
- 海外の著名なCTF
- 国内の著名なCTF
- オンライン常設型CTF
0.4 CTFに参加するには
0.5 問題のWriteupを書く
0.6 本書の内容についてご注意
Chapter 1 リバースエンジニアリング問題「runme.exe」
1.1 リバースエンジニアリングとは
1.2 問題ファイルの初期調査
1.3 解法と解答
- 正攻法で解いてみる
- アセンブリの基本
- 関数の呼び出し
- レジスタ
- start関数
- 関数の概要
- 関数を探る
1.4 問題を解くワンライナーを書く
Chapter 2 暗号問題「Unzip the file」
2.1 暗号とは
2.2 問題ファイルの初期調査
2.3 解法と解答
- 既知平文攻撃
- PkCrackを使う
- flagファイルの正体は?
2.4 なぜ暗号化が解けたのか?
- ZIPの暗号化方式の概要
- Traditional PKWARE Encryption
2.5 今回の既知平文攻撃の手順
Chapter 3 フォレンジック問題「History」
3.1 フォレンジックとは
3.2 問題ファイルの初期調査
Column fileコマンドのしくみ
3.3 解法と解答
- hexdumpコマンドを使う
- ファイル「J」の正体は?
- USNジャーナルをひも解く
3.4 ファイルシステムについて
- NTFS
- ジャーナリング機能
Column ファイルフォーマットについて
Chapter 4 Webセキュリティ問題「reiwaVote」
4.1 Webセキュリティとは
4.2 問題ファイルの初期調査
4.3 解法と解答
- SQLインジェクションとは
- 脆弱性を調査する
- SQLインジェクションを行う
4.4 Webアプリの裏側
- データベースとその格納データ
- ユーザー作成部分
- 認証部分
- なぜ「' or 1=1 --」を使うのか?
- SQLインジェクションについての注意
Chapter 5 ネットワーク問題「Find the key!」
5.1 ネットワークとは
5.2 問題ファイルの初期調査…
- Wiresharkでパケットキャプチャ
- 画面の説明
- 初期解析
- Wiresharkの統計解析機能を使う
5.3 解法と解答
- ネットワークについておさらい
- ICMPパケットの構成
- HTTPレスポンスメッセージについて
- 抽出スクリプトを作成する
5.4 pingの中になぜHTTP通信が紛れ込んでいたのか?
Chapter 6 Pwnable問題「baby_stack」
6.1 Pwnableとは
6.2 問題ファイルの初期調査
- 「baby_stack」環境の再現方法
- 問題の挙動を把握する
- 脆弱性箇所を把握する
- スタックバッファオーバーフローとは
6.3 解法と解答
- 脆弱性箇所
- プログラムの制御を奪うには
- 戻りアドレスを上書きする
- 適用されている脆弱性緩和技術を調べる
- Return Oriented Programming
- ROPガジェットを探すには
- シェルを起動するには
- システムコールとは
- ROPチェーンの流れ
- Exploitの実装と実行
Chapter 7 Misc問題「Sandstorm」
7.1 Miscとは
7.2 問題ファイルの初期調査
7.3 解法と解答
7.4 なぜQRコードが出現したのか?
- sandstorm.pngを調べる
- インターレースとは
- Adam7アルゴリズムについて
- 画像を分解してQRコードを抽出する
- ステップごとの画像を出力する
- より精細な画像を出力する
Chapter 8 Misc問題「Mail Address Validator」
8.1 問題の設置方法
8.2 問題ファイルの初期調査
- 問題サーバに接続してみる
- main.rbを読む
8.3 解法と解答
8.4 なぜflagが返ってきたのか?
- 問題サーバが持つ脆弱性:ReDoS
- 正規表現のおさらい
- 正規表現エンジンの概要
- 有限オートマトン
- 正規表現と非決定性有限オートマトン
- バックトラッキングとReDoS
- 今回の脆弱性箇所について
Column CTFを通じて学んだ知識が活きる一例の紹介
Appendix ツールのインストール
A-1 IDA Freewareをインストール
A-2 Wiresharkをインストール
この本に関連する書籍
-
CISOのための情報セキュリティ戦略 ――危機から逆算して攻略せよ
企業経営をめぐるインターネットセキュリティの課題は高度化し,その対策も年々非常に難しいものになってきています。病院システムを襲うクラッカーたちのせいで,電子...
-
プロが教える情報セキュリティの鉄則 ―守り・防ぐ・戦う科学
サイバー攻撃の手口が高度化・巧妙化し,ウィルス対策ソフトを代表とする従来の防御策では役に立たなくなったということは,すでに多くの専門家から指摘されているとお...
-
事例から学ぶ情報セキュリティ――基礎と対策と脅威のしくみ
コンピュータシステムが社会インフラとして定着する中で,情報セキュリティに関する脅威はさまざまな分野や人に大きな影響をおよぼします。また,IT技術の進化に伴って...