助け合いつつ「Webサイトの裏側」を理解

午後の講義は「ローカルプロキシで遊ぼう」。2011年のキャンプ修了生で、SECCON CTF全国大会優勝経験もある庄司直樹氏が講師を務め、Webサイトの裏側ではどのようなデータが送受信されているのかについて解説した。午前中のネットワークレイヤに関する知識を前提に、アプリケーションレイヤについて理解を深めていこうというわけだ。

「こうした土台の知識があれば、アプリケーションを開発する際にも、運用していてエラーが発生したときの調査にも役立ちます」(庄司氏)

講師は、2011年のキャンプ修了生で、SECCON CTF全国大会優勝経験もある庄司直樹氏

庄司氏はまず、HTTPリクエストの構造と「サーバから見るとブラウザのように、ブラウザから見るとサーバのように動く」というプロキシサーバの動作の概要について説明した。

プロキシサーバはゲートウェイとしてだけでなく、手元のPCでも「ローカルプロキシサーバ」として動作させることができる。その性質ゆえに、フィルタリングやロギング、開発時の動作確認などさまざまな目的に活用でき、既存のソフトウェアとしてFiddlerやBurp Suite、Charles ProxyにOWASP ZAPなど、それぞれ特徴を持ったさまざまなソフトウェアがあることが紹介された。

その上で、後半はJavaScriptで書かれた「ひな形ローカルプロキシサーバプログラム」をベースにそれぞれ手を加え、「レスポンスがHTMLならば、特定の文字列を書き変える」「ベーシック認証を常に突破するようにする」といった動作をするよう改良していく課題に取り組んだ。

受講者のなかには「猛者」もおり、普段からCTFに参加しているという学生は時間内に課題を全てクリアし、オリジナルの拡張に取り組んでいた。一方で、「普段はWebサーバの構築などをやっている。そのなかで、やはりセキュリティについて知らないとヤバいと考えた」という女子学生が、少しずつ、けれども確実に課題を解いていく姿も見られた。

今回のミニキャンプは受講者の年齢層が近かったからか、あるいは会場が昔ながらの教室で物理的な距離が近い環境だったからか、自然と会話を交わし、煮詰まっている人を手助けしながら和気あいあいと講義に取り組んでいる姿が印象的だった。

そんな講義を支えたのがチューターたちだ。受講者をサポートしたのは、過去のセキュリティ・キャンプ修了生でもある白倉大河氏、榎本秀平氏、浅野大我氏の3名。浅野氏は「答えをそのまま示さないように注意しました。答えを見せるのは簡単だけれど、それだと自分でやった感じがしません。一緒になって課題解決に取り組むよう心掛けました」と振り返る。さらに「今回の講義が、ただ『動いた、できた』だけでなく、その先に進むとっかかりになれば嬉しいです。そして、いずれは講師やチューターのようになりたいと思ってもらえれば」と期待を寄せた。