ctfとは?セキュリティ技術の競技から学ぶセキュリティ対策

Posted by

近年、日本のセキュリティ対策に対する意識を高めようとする取り組みが高まってきています。他国に比べて、日本のセキュリティ技術は甘く、一般企業や個人の意識がまだまだ低いように思います。

セキュリティ対策への意識を高めるために、情報技術についての学ぶことができるのがctfの競技になります。

CTFとは?

CTFとは、「CTF(Capture The Flag)」のことで、日本語で「旗取りゲーム」のことを指します。

競技の内容は、情報技術に関する問題に答える、それに応じた得点で勝敗を決めると言う内容のゲームになります。

簡単に言うと、出題された内容を答えて得点を競うITを使ったゲームです。
競技形式として、攻防戦型と問題出題型の2つに分かれます。

CTFの内容

CTFの出題内容は多岐にわたり、ソフトウエアやwebシステム対しての脆弱性を見つけたりします。

例えば、webサイトに不審な動きがあるとして、その不審な動きの原因を特定したり、通信のやり取りの中で、不審な通信をしている場所を見つけたり、webサイトが無断で書き換えられる場所を見つけ出します。

また、ウイルスに感染している膨大なデーターを、様々なツールを使って解析したり、プログラミングを活用して、ファイルを動かしながらウイルスを解読し、見つけたりします。

最近では、女性専用のグループや、それぞれの得意分野を持った人が集まったチームでゲームに参加することことができます。

CTFの注意点

問題の中には、指定したサーバーをハッキングしたり、ソフトウェアの脆弱性を突いたりするようなCTFがあります。指定されていないアクセスは、違法行為となる可能性があります。

不正アクセス行為

不正アクセス行為の禁止等に関する法律(ふせいアクセスこういのきんしとうにかんするほうりつ、平成11年8月13日法律128号)は、インターネット等のコンピュータネットワーク等での通信において、不正アクセス行為とその助長行為を規制する日本の法律。略称は不正アクセス禁止法など。

ウィキペディア

CTFの参加方法

SECCON CTFのサイトへアクセスして申し込みます。
https://www.seccon.jp/

チーム及びメンバーでの登録ができます。
SECCONのサイトから開催スケジュールをみることが出るので、オンライン予選に申し込みます。

そのほか、CTFTIMEのサイトへアクセスして申し込みます。
https://ctftime.org/

サイトから開催スケジュールをみることができるので申し込みができます。

最近では、企業が主催のイベントもあるようなので、チェックしてみると良いかもしれません。

CTF参加に必要な知識

基本は、コンピュータの基礎知識全般になりますが、得意不得意があるので、何か強みを持つと良いかもしれません。

ネットワークの知識

ネットワークの基礎知識がある程度必要になります。
Wireshark(ワイヤーシャーク)でパケットが記録されているファイルを解読したりするのに必要になります。

Linuxコマンド操作の知識

ファイルを解読する際の記録の比較、基本的なファイルの作成やインストール等のLinuxコマンドを頻繁に使います。

Linuxの基礎がわからないと非常に辛いです。

プログラミングの基礎知識・スキル

Pythonファイルやwebアプリケーションに使われる言語など、プログラミングの言語知識が必要になります。

脆弱性がある場合、対策されていないプログラム(脆弱)を発見するために、phpやsql、JavaScriptなどプログラミング言語を使います。

ある程度の言語知識がないと、ついていけなくなります。

オペレーティングシステム(OS)の知識

パソコン機器内部の知識が必要になります。
オペレーティングシステム(OS)とは、コンピュータのオペレーション(操作・運用・運転)を司るシステムソフトウェアになります。

バイナリやpwn、フォレンジックの知識が必要になります。ハードやメモリー領域、osシステム(ユーザー権限)やサーバ管理など、悪意のあるプログラム動作を特定することです。

CTFの勉強方法

様々な勉強法がありがありますが、まずは紹介まで。

IT勉強会(もくもく会など)へ参加する

中級から上級者は、勉強会をうまく活用して、新しいことに取り組んでいます。独学で勉強している方をはじめ、企業にお勤めの方やフリーランス、個々の興味のある方が集まり、雑談をしながらプログラミングの情報交換等を行っています。

ある程度プログラミングをかじったことのある方が多いので、PC初心者の方には向かないかもしれません。

企業研修を活用する

企業が積極的に勉強会やセミナーへ参加している場合は、企業研修を活用して勉強しながら働けると環境だと理想です。

セキュリティ対策に力を入れている企業であれば、当然行っているかと感じます。福利厚生や補助金を活用している企業の研修をどんどん活用しましょう。

自力で独学をする

かなりきついですが、独学でもできると思います。
ある程度プログラミングに慣れている人、または何か一つでも得意分野の言語を持っている方は、独学でも頑張れると思います。

プログラミングの経験者は、独学や勉強会だけでも十分かと思います。
あとは、どれだけctfの勉強に時間をさけるかです。

専門のセミナーへ行く

セキュリティに特化したスクールもあります。
実際、私も1年セミナーに通ったこともあります。

ただ、知識までのセミナーが多く、しっかりと勉強したいという方には不向きかもしれません。(ctfの勉強範囲が広いため時間が足りない理由)

なので、全部を覚えようとせずに、何か一つでも特技を持っておくと良いかもしれません。

セキュリティ対策の技術を身に付けるために

CTFは、サイバー攻撃対策に必要なスキルをみにつけるために、ゲームを通してセキュリティ全般を勉強できる場所です。

知識を持っていない人も、これからセキュリティを勉強したいと言う方も、一度はゲームの勉強をしてみるのも良いかもしれません。

ゲームのレベルが高いと思う方は、初心者コースのCTFを独自で行っているチームやグループもあるかもしれませんので、探してみるのも良いかもしれません。

個人も企業も、セキュリティ対策に少しでも興味を持ってもらえると、嬉ししいですね。

PAGE TOP