コンサバティブでは脆弱性を見つけられない?
~Webセキュリティクラス
次にWebセキュリティクラスを見ていきましょう。私がキャンプに参加した時は、このクラスに相当するものに参加したので、懐かしい感じがしました。2年前の講義よりも強化された講義内容となっており、HTTPとセキュリティ、ブラウザ依存の脆弱性、セキュアWebアプリケーション開発、システム品質設計、Webセキュリティテストの5つの内容が準備されており、5人の講師で行われました。
国分講師のHTTPとセキュリティの講座では、netcatを使ってHTTPを「しゃべらせる」ところから始まり、HTTPのメソッドやステータスコードなどを説明。長谷川講師のブラウザ依存のセキュリティでは、IEにおけるContent-Type判定の問題が説明され、実際にJavaScriptを埋め込んだ画像で、アラートが出ることを実演。これにはさすがの学生も驚いているようでした。
上野講師によるセキュアWebアプリケーション開発では、XSSやSQLインジェクション、セッションハイジャックなどの脆弱性への対策が、また、夜の岡田講師のシステム品質設計では、「品質とは何か?」という質問から始まり、セキュアなアプリケーションの設計や、リスクの考え方についての講義が行われました。
3日目の午後に行われた望月講師によるWebセキュリティテストの講座では、実習用ネットワーク内に用意された脆弱性のあるページで、実際にXSSやSQLインジェクションなどの脆弱性を発見させる実習が行われました。脆弱性を発見するには、攻撃する側の気持ちにならないといけません。参加者たちは熱心にチャレンジしていましたが、意外なところに脆弱性が隠されていて発見されなかったものも……。そういえば、ある実行委員の方が「セキュリティコースの学生はコンサバティブすぎる」とおっしゃっていました。守るためには、もっと柔軟な発想を持たなければいけないのかもしれない、と思わせる一幕でした。
手を動かし、仕組みを知る
~ネットワーク技術者クラス、ほか
セキュアサーバ構築クラスでは、「セキュアプラットフォーム講座」「ログ解析の講義」「DNSサーバのセキュリティ」が行われました。また、ネットワーク技術者クラスの講義は、「パケット工作から学ぶネットワークセキュリティ」「ネットワークの基礎とVPN」「侵入検知」が行われました。
中でも興味深かったのが、吉田講師の「パケット工作から学ぶネットワークセキュリティ」。これは、普通は絶対に手でやることのない、3-way HandshakeというTCP接続を確立するための手順を手動で行うという、いわゆる「工作」の授業です。パケット工作を行うことで、TCP接続の仕組みを知ることができます。このように普段は行うことのない作業ができるのがキャンプならではの醍醐味だといえるでしょう。
以上、駆け足ですが、セキュリティコースのクラス別講義についてお伝えしました。これらのクラスの講義は同時進行なので、見られなかった部分や、伝えられなかった部分もあるかと思います。しかし、キャンプの内容はまだこれだけではありません。次回は、企業見学会と、自由選択講義についてお伝えしたいと思います。