はじめに
こんにちは。新卒3年目メンダコです。普段は社内NW・サポートセンターNWの担当をしています。最近午後の紅茶を午前に飲んだら怒られが発生しました。
業務とは関係ないのですが、趣味でCTFというものをやっています。初心者向けの大会にしか参加していないのですが、とても楽しかったので今回はCTFの紹介をしたいと思います!!
CTFとは
概要
CTFとは「Capture The Flag(キャプチャーザフラッグ)」の略で、セキュリティに関する競技会です。CTFでは、様々なセキュリティ課題が用意され、参加者はそれらの課題を解決することでポイントを獲得します。セキュリティエンジニアやハッカーなどが参加し、自身の技術を磨くための場としても利用されています。
大会で有名なものとしては、アメリカのDEFCON、国内ではSECCONがあります。
ルール
flagと呼ばれる文字列が隠されているので、それをセキュリティの知識を使って探し出します。探し出したflagを回答サーバに送信することで、ポイントを獲得できます。flagの形式については、flag{hogehoge}や、FLAG_fugafugaなど大会によって違うので、ルールを確認しましょう。
大会によって違いますが、制限時間は12時間~48時間ぐらいがほとんどです。
個人戦だけでなくチーム戦もあります。
出題される問題について
セキュリティにかかわる技術を使用して解く問題が出されますが、とても出題範囲が広いため幅広い知識が必要になります。
出題分野、出題範囲については大きく分けると次の通りになります。
出題分野 | 出題範囲 |
---|---|
ネットワーク | 信号処理通信技術 ネットワークトラフィックのキャプチャ |
フォレンジクス | 情報の秘匿 ログ解析 ファイルフォーマットデータの復元 |
Web技術 | Webアプリケーションの脆弱性 データベースアクセス |
プログラミング | プログラミング言語 組み込み技術 リバースエンジニアリング |
暗号化技術 | 符号化公開鍵基盤(PKI) |
脆弱性調査 | 脆弱性バグ攻撃コードの送信 |
チームで参加する場合は、何か一つ得意分野を作ってチームメンバーと手分けして問題を解くのがいいと思います。
取り組む際にあると便利なツール
たくさんあるのでここでは主要なものだけ紹介します。
一番大事。
わからないことがあったら検索しよう!!!!!!!!
大会中でも検索できます!!!!!!!!!
Wireshark
ネットワーク問題で、パケットを解析するのに使います。
CTFでpcapファイルが出てきたらこのツールの出番です。
バイナリエディタ
その名の通りバイナリを編集できるエディタになっています。
ヘッダ情報を書き換えて、開けないファイルを開けるようにしたり、バイナリの置換をする際に使用します。
ちなみに私は私生活ではMacを使用しているので、0xEDというバイナリエディタを使用しています。
CTFの勉強法
基本は過去問・常設CTFを使って、実際に問題を解いて手を動かしてみるのが初心者・経験者ともにおすすめの勉強法になっています。
過去問
大体の大会の問題は以下のサイトを探せばあると思います。あまり古い問題だと環境によっては動かないことがあるので注意する必要があります。
常設CTF
有名どころとしては以下の4つです。私は一部のサイトの問題しか見たことがないのですが、初心者向けの問題も結構多めです。
本
この2冊が初心者入門にお勧めと有名な本です。ルールの説明などあるのでCTFに参加したいけど、問題のイメージがつかみにくい人にいいと思います。
セキュリティコンテストチャレンジブック(通称ハリネズミ本)には、演習ファイルもついています。
大会の探し方
結局やって何の役に立つの?
例えば、ネットワーク問題であれば、トラフィックをキャプチャする技術を身に着けることができます。それを覚えることで、ネットワークの通信が通らないときなどの、トラブルシューティングに役立てることができます。
Web系の問題であれば、脆弱性をついて攻撃をして問題を解きます。攻撃方法を知ることにより、安全なアプリケーションの作り方を理解できるようになります。
上記のように実際の開発や運用などでも役に立つことがいっぱいあると思います!
注意点
サーバーをハッキングしたり、ソフトウェアの脆弱性を突いたりするような問題がありますが、許可された範囲外で行うと、違法行為となる可能性があります。
CTFで出されている問題は、出題者が攻撃されることを前提に公開しているものなので問題ありません。
許可された範囲内で楽しみましょうね!