CTF ネットワークフォレンジック入門
セキュリティに関する勉強として、ネットワークフォレンジックのCTF問題を少し齧ったので、備忘録として纒める。
CTFとは?
Capture The Flagの頭文字を取った物で、日本語では「旗取り合戦」とも訳されます。競技の内容を一言で説明しますと、「情報技術に関する問題に対して適切な形で対処し、それに応じて得られた得点で勝敗を決める」という内容になります。
CTFをやると何が嬉しいのか?
ネットワークフォレンジック激初級編に関しての学習しかしていないので、雰囲気的な個人の感想になりますが、こんな感じのメリットはありそう。
覚えるだけで終わっていた技術に関する知識を実践で使うため、生きた知識が身につきそう
例えば、TCP/IPの4階層モデルを例にとると、こういう層があるんだー。で終わってしまいそうなところですが、実際にパケットを調査するとなると「アプリケーション層のデータに対して、下位3層では通信に関するヘッダーをつけてるだけだから、今回の問題ではアプリケーション層以外のパケットは一旦無視して・・・」みたいな感じで、怪しそうなパケットにあたりをつけるために、知ってる知識をフル動員 + 結構考える必要があるため、生きた知識がつきそう。
知らない技術に触れるチャンス
というより、知ってないと問題が解けない。ネットワークフォレンジック系の過去問をちらっと覗いてみたら、USB通信をキャプチャした問題なども含まれていたため、裾を広げるきっかけになる。
単純に楽しい
自分の得た知識をフル動員させて問題に向かってくのは、単純に楽しい。
知的好奇心を最大級に刺激される。
ハッキングに関する技術をゲーム感覚で学べる
CTFはハッキング技術を競う競技なので、競技を通して学べる。今は用意された問題を解いてるだけだけど、攻防戦とかもあるので、攻撃方法・防御方法に関しての技術を学べる。
どんな問題があるのか?(ネットワーク)
実際にやった問題としては、HTTPやFTP通信のパケットが含まれたpcapやpcapngファイルがあるのでWiresharkで読込み、怪しそうなパケットを順に調べながら手がかりを入手し、最終的にFlagを入手するような問題だった。やってはいないが、そのほかの問題としては、パケットから入手した情報を使ってサーバー内のFlagを取得するような問題もあるらしい。
初学者向けの優しい問題があったので掲載(ctf4b_講義_network.zip)。
Microsoft OneDrive - Access files anywhere. Create docs with free Office Online.
回答や解説等は、以下のSlideShareに記載されている。
やるためにはどんな知識が必要か?
今回の学習ではプロトコルについての知識や、Ciscoルータのコマンド等の知識があれば十分解ける問題だったので、ネットワーク全般の知識と言えそうだったが、CTFの過去問では、SSHのパケット群から、規則性を導き出して(理解できてない)?モールス信号に変換してFlagを入手するような問題もあったので、ネットワーク全般以上の知識が必要となりそう。あとは、パケットの解析などのツールの使い方。
今後勉強するにあたり参考になりそうなサイト
CTF過去問
http://shell-storm.org/repo/CTF/
CTF問題の回答
まとめ
CTFをやった感想として、セキュリティ技術を学ぶための取っ掛かりとしては、大変良いと思う。 CTF自体はただのゲームのような感じもしたが、ここで得た知識や考え方、直感などの経験値は、かなり役に立つと思う。