「セキュリティ・キャンプは終わりではなく、始まり」
――4泊5日で行われるセキュリティ・キャンプ全国大会の修了式では毎回、講師陣から受講者にこんなエールが送られる。セキュリティ・キャンプで得た刺激をきっかけに、さらに知識を深め、つながりを広げ、得たものを世の中に還元していってほしい。そんな願いが込められている。
2004年から行われてきたセキュリティ・キャンプの卒業生は、のべ約580名(今回を含めれば650名以上)に上る。引き続き大学で研究に打ち込む人もいれば、IT企業でセキュリティ業務に携わる人、さらにはセキュリティ関連企業を自ら立ち上げる人など、進路は多彩だが、いずれもキャンプ参加前から持ち続けてきた探究心を磨き続けている。
なかには、「もう1回、セキュリティ・キャンプのあの空気を体験したい」「自分が受け取ったものの一部でも恩返ししたい」と運営側に回り、キャンプをサポートする若手技術者・学生たちも多い。彼・彼女らはチューターとして受講者を手助けしたり、セキュリティ・キャンプのネットワークインフラである「SC-NOC」(Security Camp-Network Operation Center)の運用を支えるなど、キャンプの成功に欠かせない役割を担っている。
レポート後編となる本稿では、そんな風に講師やチューターとして活躍しているセキュリティ・キャンプ卒業生や、さらなる成長を求めて「セキュリティ・コアキャンプ」に参加した学生らの声をお届けする。
自分がかつて得た以上の経験を受講者に - 卒業生講師の想い
西永俊文氏(NTTコミュニケーションズ勤務)と木村廉氏(神戸大学大学院に在籍)は、かつてセキュリティ・キャンプに参加し、その後チューターとして学生を支え、さらに今は講師として教える側に立っている。2人は、「自分たちはキャンプで素晴らしい経験をしました。受講者の皆さんには、それ以上に面白いキャンプを体験してもらえたらなと思ってお手伝いしています」と笑う。
「BareMetalで遊び尽くそうRaspberry Pi」と題した講義を行った西永氏は、2013年のソフトウェアセキュリティクラスの卒業生だ。「当時はセキュリティの『セ』の字も知らなかった」ものの、プログラミングサークルの先輩の言葉をきっかけにキャンプに応募。応募用の課題を解いていくうちにプログラムの解析や脆弱性の仕組みに目覚め、「セキュリティって面白いな、と思いました」と語る。
「キャンプの課題をきっかけにセキュリティの面白さに目覚めた」と語る西永俊文氏 |
そんな西永氏の講義は、少人数制ならではのアットホームな雰囲気で進められた。「普段PCを利用する際には意識しないOSの仕組みをイチから自分で書くことで、コンピュータのアーキテクチャやメモリ、レジスタの仕組みを知ってもらいたいと考えました。直接セキュリティに関係する内容ではありませんが、こうした基本がわかれば、マルウェア解析などにも生きてきます」(西永氏)
ほぼ丸1日を費やした講義では、講師とチューター、受講者が黙々と手を動かし続けた。時折強制的に休憩し、別のクラスを見学するなどして、「あまり根を詰めすぎても視野が狭くなってしまう。問題から一度離れてクールダウンするのも大事」という経験則も伝授。ベアメタルならではの面倒くささ、大変さと、それを乗り越える楽しさを共に味わっていた。
「私が2014年にチューターとして竹迫さん(竹迫良範氏)の講義をお手伝いした際、チューターにも課題が与えられて、受講者と一緒にずーっとルータを作っていました。あの講義が本当に楽しかったので、今回もそれに倣って、座学は事前学習で進め、キャンプ当日は皆で寄り添ってひたすら手を動かすようにしました。受講者のほうが皆優秀で、とても集中して進めることができました」(西永氏)
一方、「カーネルエクスプロイトによるシステム権限奪取」と題した講義を行った木村氏は2014年の卒業生だ。組み込み開発を意識した西永氏の講義とは異なり、木村氏の講義は文字通り、Linuxカーネルの仕組みを踏まえたもので、どのような脆弱性があり、どのようなコードで悪用され得るかを、デバッグ方法やブレークポイントの使い方などを交えながら学ぶ内容だった。Webブラウザの脆弱性とカーネルの脆弱性を組み合わせるとどんなことが可能かも学習し、頭の中の「パズル」がきっちりハマった受講者の「ああ、なるほど!」という声が、あちこちから上がっていた。
西永氏と同じくソフトウェアセキュリティクラスを受講した木村氏だが、「同じことをキャンプで勉強しても、いろんな生かし方があるなと思います」と語る。
「人によって学んだことの生かし方はそれぞれ」と語る木村廉氏 |
「他の講義もそうだと思いますが、キャンプの講義には『とにかく触って、手を動かしてみよう』という方針があります。それに、難易度も結構高めに設定しています」(木村氏)。
その意味で、プログラミングコンテストなどとはまた違った狙いがキャンプにはあると言える。
「問題をどういう方法で解くかを競うプログラミングコンテストとは異なり、キャンプでは、競うことが目的ではありません。興味の範囲を広げたり、レベルを次のステージに持っていったりするための教育の場だと思っています」(木村氏)