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に記載されている。

www.slideshare.net

やるためにはどんな知識が必要か?

今回の学習ではプロトコルについての知識や、Ciscoルータのコマンド等の知識があれば十分解ける問題だったので、ネットワーク全般の知識と言えそうだったが、CTFの過去問では、SSHのパケット群から、規則性を導き出して(理解できてない)?モールス信号に変換してFlagを入手するような問題もあったので、ネットワーク全般以上の知識が必要となりそう。あとは、パケットの解析などのツールの使い方。

今後勉強するにあたり参考になりそうなサイト

CTF過去問

http://shell-storm.org/repo/CTF/  

CTF問題の回答

https://github.com/ctfs  

まとめ

CTFをやった感想として、セキュリティ技術を学ぶための取っ掛かりとしては、大変良いと思う。 CTF自体はただのゲームのような感じもしたが、ここで得た知識や考え方、直感などの経験値は、かなり役に立つと思う。