ブログ

FFRI BLOG

2014-08-22 セキュリティ・キャンプ2014まとめ

今年で11年目となるセキュリティ・キャンプ2014も無事終了しました。前回は1日目の特別講義について書きましたので、今回は各4クラスそれぞれの授業内容について書きたいと思います。また本記事はセキュアなシステムを作ろうクラスの部分を忠鉢が、それ以外の部分を愛甲が書いています。

まずは弊社、松木、愛甲が参加しているソフトウェアセキュリティクラス(以下SWクラス)について紹介します。これまでSWクラスはマルウェア解析や脆弱性攻撃などを中心にカリキュラムを組み立てていましたが、今年はそれに加えてフォレンジック技術にも焦点を当て、マルウェアに感染したPCからファイルシステムを解析し、脆弱性や悪意のファイルを特定し、それらを解析してどのような経路で感染したかを調べるという、実際のインシデント対応に近い演習をやってもらいました。

演習を実施するにあたって求められる技術がファイルシステム、Exploiting、マルウェア解析といった広い分野になり、はっきりいえば参加者にとってかなり難しい講義、演習だったと思います。

しかし、演習の序盤はかなり苦戦していた参加者でしたが、中盤以降は大分コツも掴めてきたようで、初めてながらも確実に解析を進めていました。そして、参加者は解析の結果をプレゼン資料にまとめ、最終日に全クラスの前で発表しなければなりません(クラス発表)。ここからは参加者の発表内容からどういったマルウェアが扱われたのかを説明しましょう。

まずはユーザーの行動ログからあやしいサイトとファイルを特定し、ブラウザでそのあやしいサイトにアクセスしたことでDrive-by downloadによりマルウェアに感染したことを突き止めました。次にExploitはHTMLファイルとその中に記述されているJavaScriptであったため、それを取り出してCVEを特定、さらにマルウェアを解析することでMBRを改変するマルウェア=ブートキットであったこと、サービスを管理するレジストリにmiamh.dllというプログラムが登録されることなどを調べ上げ、最後にそれらを駆除するいくつかの方法を紹介していました。

もちろん、チームでの協力だったり、チューター、講師の手助けがあったりはするのですが、参加者がここまで正確に解析していたことにはスタッフ一同、とても驚きました。

続いてはWebセキュリティクラス(以下、Webクラス)を紹介しましょう。毎年新しいことにチャレンジするWebクラスですが、その例に漏れず、今年は西村宗晃氏を招き、FirefoxOSを題材にアプリ作成とその脆弱性を見つける、ということをやっていました。

FirefoxOSはアプリケーションがすべてHTML5(+JS)で記述できるため、必然的にブラウザ上で動作するプログラム、いわゆるWebアプリケーションと似た仕組みになります。これはWebの技術を良い意味でも悪い意味でも生かせることになり、同様の脆弱性が潜む危険性があるとも言えるわけです。このような新しい仕組み、技術、プラットフォームを毎年積極的に扱っていくところがWebクラスの特徴と言えるでしょう。

クラス発表では講師が作成したアプリの脆弱性を探すという演習をやっており、画像のEXIFによるXSSやバックアップ機能の保存方法(エンコード方法)の問題点などを指摘していました。発表内容や参加者を見てると、彼らにとってとても面白かった、楽しかったと思えるカリキュラムだったのだろうと感じます。またWebクラスには、はせがわようすけ氏、Kinugawa Masato氏といった著名なバグハンターが講師として参加しており、彼らがいかにしてその技術を培ったのかといったことを聞けるだけでも、Webクラスで学ぶ価値は大いにあると思えます。

次はネットワークセキュリティクラス(以下、NWクラス)です。NWクラスは、全体としてネットワーク、パケット解析を中心として授業を進めます。去年までのコンテンツを世襲しつつ、今年はさらにそれらを順序立てて学習できるカリキュラムになっていました。

流れとしてはネットワーク通信とは何か、Wiresharkなどを用いてパケットを眺めてみるといった初歩的なレベルから始まり、攻撃が行われた通信を解析する、その攻撃の種類を特定するといった実践的なものへと徐々にシフトしていきます。SQLインジェクション、リスト型攻撃、情報流出の有無などなど、パケット解析やネットワークの挙動から得られる情報は幅広く、これらを解析することで特定できる攻撃手法も数多くあります。そして、攻撃者もそれを踏まえて、今度は通信内容は隠そうとします。その攻防、そしてさらにどう対応していくのかといった点をNWクラスでは議論されていました。

また去年からのコンテンツで、実際のネットワーク機器に対してファジングを行ってみるというものがあります。普段ネットワーク機器のセキュリティチェックなど考えたこともない人も多いかもしれませんが、こういう機器に脆弱性が存在することも珍しくありません。このようなリアルな脆弱性調査を経験できるのもNWクラスの魅力のひとつでしょう。

最後は弊社、忠鉢が講師をしているセキュアなシステムを作ろうクラス(以下、作ろうクラス)について紹介します。作ろうクラスでは参加者12人が5つのゼミに分かれ、それぞれが個別のテーマに取り組みます。作ろうクラスは講義形式が(他のクラスとは)大きく異なり、参加者それぞれがゼミ講師の指導の下、プログラミングやシステム構築に励みます。これは講師が教えるというよりも参加者各自が自分の作りたいものを作るというハッカソンのようなものをイメージしてもらえると分かりやすいでしょう。1ヶ月超における事前課題をこなし、その内容を踏まえた上で、4日間に渡りオフラインでの指導を受けるという、セキュリティ・キャンプの中でも異色のクラスとなっています。

参加者達はキャンプの一区切りとして、最終日にクラス内の発表が待っています。クラス発表では、ARMにおけるBoFとその検出方法を実際に実装、デモしたり、自作ルーターを作成し、逆NAT機能を実装したりと、まさしく作ろうクラスならではと言えるアツいものでした。「進捗どうですか?」を合い言葉に(?)黙々と実装に取り組む様子は、一見地味に見えます。ただ、講師としてその場にいる私にとっては、彼らの成長が手に取るように感じられる大変心地よい空間でした。

セキュリティ・キャンプの過去の参加者を見てもセキュリティの専門家としての道を歩む人はそれほど多くありません。多くの人はITエンジニアとして、IT社会を下支えする役割をになっていきます。近年は設計段階や実装段階でのセキュリティを考えているITシステムを多くなってきていると思いますが、やはりコストや人材の不足から、まだまだセキュアではないシステムが多いのではないでしょうか? このクラスの参加者には、セキュリティの重要さとモノ作りのマインドを合わせ持った、「周りを巻き込みながらセキュアなシステムを作れる」エンジニアになって欲しいと願っています。

以上が今年のセキュリティ・キャンプで各クラスが実施した内容でした。まだまだ書ききれないところは山ほどありますが、セキュリティ・キャンプって何だ? という社会人の方々や来年応募を考えている学生のみなさんに、少なからずこのテキストが参考になれば幸いです。来年は12年目、関係者はみな12年分の歳をとってるんだという事実に驚愕しながら、来年度の開催を願いつつ、ここで終わりとさせていただきたいと思います。お疲れ様でした。


関連記事

今年もセキュリティ・キャンプが始まりました!

講師も悩む――セキュリティ・キャンプ「選考」のやり方

セキュリティ・キャンプ卒業後に何をしたいか、してほしいか

pagetop