2019年10月21日
常識を疑え!ハッカー視点のセキュリティ
筆者)株式会社トライコーダ 上野宣
第20回 ハッカーの腕試し大会?セキュリティ競技 CTFとは
自分のセキュリティに関する技術力がどれぐらいなのか?何をもってして他人に示すことができるでしょうか。
「情報処理安全確保支援士」や「CISSP」といった資格もありますが、一定の技術力や知識があることがわかっても、突出した人物であることはわかりません。
ハッカー同士がその技術力をいかんなく発揮する「CTF」という競技があります。その成績によって、その人の実力を計ることができます。CTFとはどういう競技なのでしょうか。
セキュリティ競技 CTF
CTF(Capture The Flag)とは、旗取りゲームのことです。ビーチに立てたフラッグを奪い合うなどのゲームから来ている名称で、大手メディアの記事では「ハッカーコンテスト」などと呼ばれることもあるコンピュータセキュリティの競技です。
いくつかのパターンがありますが、ほとんどの場合は旗に見立てた「フラグ」と呼ばれる情報を見つけ出したり、他の参加者から奪ったり、守ったりする競技で、個人参加のものやチーム参加などがあります。
これらのCTFはオンラインで行われることもあれば、現地に参加者が集って行われることもあります。
代表的なCTFスタイルとしては下記の3パターンになります。
Jeopardy(ジョパディ)形式
クイズのように行われる形式で、出題される複数分野の問題を参加者が解くといったものです。
難しい問題ほど高配点の傾向にあります。また、最初に解いた参加者のみがボーナスをもらえる場合もあります。Jeopardyというのはアメリカの長寿クイズ番組「Jeopardy!」から来ているようです。
大きなCTF大会の予選や、いつでも参加できる常設されているCTFなどでよく採用されるのがこの形式です。
攻防戦(Attack and Defense)形式
参加者は自分たちのチームのフラグを他のチームの攻撃から守り、また他チームへ攻撃してフラグを奪取するという形式です。
フラグはサーバーやアプリケーションに含まれていて、各チームはその脆弱性を解析して攻撃方法や防御方法を編み出すことで、攻撃や防御が行えるようになります。多くのフラグを集めると得点が計上されます。
King of the Hill 形式
各チームがターゲットとなる同じサーバーを攻撃してフラグを奪取し、奪取した後は他チームから守るという形式です。
チームがフラグを維持している時間に応じて得点が配分されます。多くの場合は、同時にフラグを維持できるのは1チームのみです。
どんな問題が出題されるのか?
世界中で開催されているCTFでもっとも多く採用されているのが、クイズ形式であるJeopardy形式です。よく見かけるものとしては、下記のような技術をテーマとしたジャンルの問題が出題されます。
- Web
- ネットワーク
- フォレンジック
- リバースエンジニアリング
- 脆弱性調査(pwn)
- 暗号
- プログラミング
- トリビア
問題はジャンルごとに整理されて出題され、「Web 100」「Web 200」や「Pwn 500」というようにジャンルと点数が問題には記載されます。
大会によって異なりますが、全ジャンルまんべんなく出るようなものもあれば、数ジャンル程度に特化したものもあります。問題のレベル感は大会によってまちまちですが、参加者の多い大会ほど難しい傾向にあります。
どういうCTFがあるのか?
CTFの中でも歴史があるのが、毎年ラスベガスで開催されているセキュリティカンファレンス「DEFCON(https://www.defcon.org/)」で開催されている「DEFCON CTF」です。その予選はオンラインで実施され、世界中から何百チームもの挑戦者達が参加してきます。
歴史の古さや、参加人数の多さ、その人気などから「DEFCON CTF」が世界最高峰のCTFであると言われています。各国で開催される大きな大会の優勝者を「DEFCON CTF」の決勝戦に招待していることも、世界最高峰のCTFであるという印象づける要因でしょう。
日本最大級のCTF大会は「SECCON(https://www.seccon.jp/)」です。オンラインでの予選にはDEFCON同様、世界中から何百チームも参加してきます。筆者もこのSECCONの実行委員会のメンバーの一人を務めています。
DEFCONやSECCONなどの大会で上位に入賞したことがある人はセキュリティ業界ではかなり尊敬のまなざしを受けること間違いありません。そのぐらい高い技術力や知識が必要になるのです。
CTF初心者は何からやればいい?
CTFがどういったものか知りたいのであれば、常設されているCTFもありますので、それに挑戦してみるのがいいでしょう。常設CTFも多数ありますが、「ksnctf(http://ksnctf.sweetduet.info/)」はお勧めです。
CTFに少し興味を持ったのであれば、SECCONが実施する「SECCON beginers」というCTF未経験者向けの勉強会が定期的に開催されていますので、そちらに参加してみるのもよいでしょう。また「セキュリティコンテストチャレンジブック -CTFで学ぼう! 情報を守るための戦い方」といった書籍などもあります。
女性であればSECCONが実施する「CTF for GIRLS(http://girls.seccon.jp/)」という女性向けのイベントの参加もよいかもしれません。
CTFの経験はセキュリティなどの業務に役立つこともありますし、もしCTF大会で上位入賞者などすればセキュリティ業界に転職する際にも有利に働くこともあるかもしれません。一度挑戦してみてはいかがでしょうか。