CTFとは
「入門セキュリティコンテスト CTFを解きながら学ぶ実践技術」
という本が届いたので読みながらまとめます。
CTFとは
Capture The Flagと呼ばれる、情報セキュリティ技術を競う競技のこと。
日本最大級のCTF大会としてSECCON CTFがある。
競技形式は様々だが、代表的なものとして以下がある。
- クイズ形式(Jeopardy形式)
- 攻防戦形式(Attack & Defense形式)
- その他(King of the Hillなど)
※予選でクイズ、本線で攻防戦という傾向がある。
大会ごとにルールがあるので、それを読むと、競技形式やスコアリングの方法がわかる。
競技形式① クイズ形式
各分野の中でflagと呼ばれる文字列を取得することが目的となる。
flagは、「flag{hacker}」という形式や、「flag{H4ck3r}」というようなLeet表記されることがある。
Reversing
- リバースエンジニアリング技術を問うジャンル
- 問題プログラムが配布され、それを逆アセンブラやデバッガを利用して解析することで答えとなるflagを探し出す。
- コンピュータアーキテクチャやOS、コンパイラなどの低レイヤ全般の知識、アセンブリ読解力が必要
- マルウェア解析やプログラムの脆弱性解析などに利用される技術。
Crypto
- 暗号に関する問題が出題されるジャンル
- シーザー暗号、換字式暗号からRSAなど現代的な暗号、ハッシュに関する問題
- 数学の知識が必要。
Forensics
- コンピュータフォレンジック技術を問う問題
- フォレンジックは、情報漏洩、内部不正、マルウェア感染などのインシデント調査の際に行われるもの
- メモリフォレンジック
- ディスクフォレンジック
- ネットワークフォレンジック
Web
- WebサイトやWebアプリケーションとそれを構成するシステム周りについてのセキュリティを問う問題
- 様々な脆弱性や設定不備を突く問題が出題される。
- SQLインジェクションXSSなどの脆弱性
- SSTI、SSRFなど近年注目される脆弱性
- サーバサイドからクライアントサイドまで幅広い知識が必要
Network
- 通信データ解析に関する問題が出題される。
- さまざまなプロトコル通信を解析する問題が出題される。
- FTPやWebサーバとの通信
- BluetoothやZigBeeの通信
- USB機器や産業用システムの通信
- TCP/IPだけでなくプロトコル仕様書を読み解く力などが必要
Pwnable(Exploit)
- プログラムの脆弱性を突く問題が出題されるジャンル
- 意図的に仕込まれた脆弱性を発見し、それに対する攻撃コードを開発し、プログラムの制御を乗っ取りflagを得るという問題
- 配布されたプログラムを解析して、脆弱性を発見する。
- サーバで稼働しているプログラムの脆弱性を突き、最終的にflagを得る
- 大きな大会では重視される分野なので、成績を上げるためには必要な分野
Misc(Miscellaneous)
- 大会で定められた度の出題ジャンルにも該当しない問題。
- 雑学的な知識
- ひらめきが求められる問題
- 複数の技術分野を横断するような問題
その他の分野
- Professional Programming and Coing
- アルゴリズム力やプログラミング力を問う
- Steganofraphy
- 画像や音声ファイルなどに、任意の別のデータを隠す技術
- OSINT
- 情報収集・分析能力が試される問題
- Hardware
- ハードウェア周りの知識を問う
競技形式② 攻防戦形式
参加しているチーム間で攻守を競い合う競技形式。
- 各チームに1つないし複数の脆弱性が存在するサーバが与えられる。
- まず、サーバに仕込まれた脆弱性を可能な限り早めに発見する。
- 発見次第、自チームのサーバに脆弱性パッチをあてる。
- それと同時に脆弱性を突く攻撃コードを作成して、ほかのチームのサーバに対して攻撃を仕掛ける。
- flagの奪取ないしは、flagの上書きができると、成功とみなされる。
- 攻撃されないようにサーバをおとすと、サーバが稼働していないため減点となる。(この配点の仕組みはSLAとも呼ばれる。)
競技形式③ King of the Hill
- 運営側が設置した問題サーバを他チームを押しのけて、いかに制圧・占有するかを競う競技
- 攻略(占有)状態が長く続けば続くほど点数が得られる。
- 決勝大会でよく採用されている形式
ディスカッション
コメント一覧
まだ、コメントがありません