(@IT自分戦略研究所)2010/8/302010年8月12日から16日にかけて行われた「セキュリティ&プログラミングキャンプ2010」。学生たちのキャンプ中の様子や特別講義の模様をレポートする。今年も、22歳以下の学生を対象にした「セキュリティ&プログラミングキャンプ」が8月12日から16日にかけて行われた。昨年に引き続き豪華な講師陣がそろったキャンプの様子をレポートする。悪天候に見舞われ、電車遅延から開講式が遅れるというハプニングで幕が開けた初日、特別講義が行われた。准教授で、Just-in-Timeコンパイラの「shuJIT」などの開発で知られるエンジニアの首藤一幸氏が講義を行った。首藤氏はまず自己紹介として、これまで開発・研究してきたソフトウェアなどを取り上げて解説。「信念」は「作ることは尊い」だ。首藤氏は小学生のとき、16bitマイコン「ぴゅう太」のCMを見て「ゲームが作れるマシン」に驚き、その後PC-6001mkIIを購入、プログラミングを学び始めたという。当時、ゲームを買ってもらえなかったという首藤氏は、「友人はゲームを買っているだけの『消費者』だけど、自分は作り出す『創作者』なんだ」と、やっかみ半分で考えていたという。このころの思いが、首藤氏の信念につながっている。その後、首藤氏は高校生になって「コンピュータの裏には科学がある」ことを知る。大学時代、インターネット上で「メガデモ(コンピュータグラフィックスアニメーションをリアルタイムに生成するプログラム)」を作る高校生の存在を知り、「こういう人には敵わないけど、自分は大学に所属しているのだから、自分にしかできないことをやろう」と、「技巧」では敵わずとも「科学」で勝負しようと決意する。「ほかの人ができないことをやる」「ほか人には作れないものを作る」というこのときの決意は、今でも首藤氏のモットーだという。ほかの人ができないことをやれるとすれば、その人には稀少価値が存在するはずである。これを首藤氏は、「reputation(評判)の向上」と表現した。個人としてのreputationを向上させるかが、今後ますます重要になるのではないか、というのが首藤氏の考えだ。首藤氏は、「現代は個人が強化されている時代」であると説く。EC2などのおかげで初期投資を抑えた開発が個人でも可能だからだ。これにより、企業に属する従来の形とは異なる「個人ネットワーク社会」になっていくのでは、と首藤氏は語った。した社会では、個人のreputationは非常に重要な概念となっていく。首藤氏は最後にトーマス・フリードマン氏の著作『フラット化する世界』からCQ(好奇心)+PQ(情熱)>IQ(知能)という考え方を引用し、「現代はインターネットでさまざまな学習が可能だし、有名な人やすごい人との距離も縮まっている。好きなことであれば、自分次第でいくらでも進んでいける」と主張した。好奇心と情熱さえあれば、それは知能を超えてどこまでもいける、と学生たちにエールを送った。■最終日は、皆で成果発表会キャンプ中、参加者は「セキュリティコース」と「プログラミングコース」の2コースに分かれて座学と演習を行う。最終日には参加者全員が一堂に会して、各コースで学んだことの成果発表を行った。ここからは、フォトレポート形式でお送りする。セキュリティ&プログラミングキャンプ開催まずは「セキュリティコース」から。セキュリティコースは、「Webセキュリティ組」「ソフトウェアセキュリティ組」「ネットワークセキュリティ組」の3組に分かれて実習を行った。※お詫び:誤って異なる組の写真を掲載していたため、9月1日15時に写真を修正いたしました。Webセキュリティ組の学習目的は「ぜい弱性を自分で発見できること」「見つけたぜい弱性を正しく取り扱えること」「技術だけではなく、考え方を身に付けること」の3点である。座学では「ぜい弱性とは何か」「ぜい弱性の特徴とは何か」を学び、その後で「ぜい弱性の検査」実習と「ぜい弱性の報告」実習を行った。実習ではあまりパソコンを使わず、紙を使って皆でディスカッションをしながら進めたという(編注:パソコンを使わなかったのは1日目だけで、2日目はパソコンを使ったとのご指摘をいただきました)。パソコンを使いまくりだったというソフトウェアセキュリティ組は、Webサーバのコードレビューや「アセンブリ読経」などを通じて「攻撃者」について知り、彼らの攻撃を防御する方法を考えたという。●ネットワークセキュリティ組ハニーポットの運用方法を学ぶネットワークセキュリティ組は、パケット工作や偽装通信、ハニーポットの運用方法などを学んだ。4GByteのダンプファイルを解析するという荒行で、参加者は一回り大きく成長したことだろう。Flag)」を行った。CTFとは、コンピュータやITについての知識を問う問題に答えるゲームのようなものである(詳しくはこちらの記事を参照)。問題の種類は「トリビア」「ネットワーク」「ソフトウェア(バイナリ)」「Web」「フォレンジック」の5つ。問題の難易度が上がるほど、回答できたときの取得点数も高くなる。学生は5つのチームに分かれて点数を競う。誰もがつまづいた難問「トリビア1000」を解いたチームが、プレゼンテーションを行った。問題の内容は、「空中を舞う問題を探せ!」。ゲーム開始時には低得点だったのだが、誰も解けなかったために点数が上がり、ついには1000点となった「いわくつき」の問題である。チームメンバーはいろいろな方法を試した結果、制限時間ぎりぎりのところで「無線関係ではないか」と当たりをつけて廊下に出た。結果、いかにも怪しい無線ネットワークを見つけ、時間内に見事回答した。怪しいものが空中を舞っている......■プログラミングコース「プログラミングコース」の「OS組」「言語組」「Linux組」は、それぞれ個性的な成果物を発表した。●OS組OS組は、『30日でできる自作OS入門』を使って学習を進めた。4泊5日のキャンプで「30日」分はできないので、参加者はキャンプ前にある程度、予習を行ってきたという(もちろん全部ではない)。実習の中心は、参加者が自分なりのOSを作るというもの。発表したチームの3人は、それぞれが個性的なOSを作っていた。ウィンドウ大量出現+ラーメンタイマー+ピンクのOSをマージ。何とも趣がある「ウィンドウが大量に出現するOS」「ラーメンタイマーと化したOS」「デザインに凝ったピンク色のOS」と、チームメンバーはそれぞれ独自路線を突っ走ったOSを作った。言語組のメイン課題は「Rubyの分析と高速化」。処理系の見える化や、コメントの可視化などを実現し、メーリングリストにパッチを投稿したという。●Linux組ファイルをシュレッダーにかける方法Linux組も負けてはいない。メーリングリストにパッチを2つ投稿した。ある参加者は、人に見られたくないファイル(自作ポエムや画像など)を指定して、中身を壊す「シュレッダープログラム」を作成した。今年は総勢59名が参加したセキュリティ&プログラミングキャンプ。来年がいまから楽しみである。チームが作った寄せ書き。お疲れさまでした自分戦略研究所、フォーラム化のお知らせ@IT自分戦略研究所は2014年2月、@ITのフォーラムになりました。現在ご覧いただいている記事は、既掲載記事をアーカイブ化したものです。新しくなったトップページよりご覧ください。これからも、@IT自分戦略研究所をよろしくお願いいたします。