無事に環境構築を終え、Hardening 10 APACの開催です。競技当日の様子をかいつまんで解説しましょう。
オリエンテーションが終了後、Hardening 10 APACの仮想会社「OKADA Holdings」の岡田社長から怒りのメールを受信するところからスタートです。
参加者は競技開始早々、3時間以内に岡田社長に報告書を提出するミッションが課せられます。各チームが急いで競技環境に接続し、問題となるECサイトのサーバーにログインして原因調査を行います。その間にも発生するかもしれないシナリオに対応するため、ECサイト以外のサーバーの堅牢化も行わなければなりません。ここでは、同時並行で発生するインシデントに対してどのような作戦で挑むかが問われます。
今回は各チームから提出された報告書を印刷し、競技会場で観覧しているスポンサーやギャラリーの方々に見てもらいました。できるだけ会場にいる人にも参加してもらうために、今回から始めた取り組みです。
そして「また上野宣か」という仕組みを今回も用意しています。Hardeningの重要な構成要素である、トライコーダの上野宣氏作「Senカウンター」です。
これは参加者のECサイトをクローリングし、売り上げカウントを計上する重要なシステムです。参加者の売り上げの状態をグラフ表示し、さらにレゴを使って、ショップの状態を把握できるようにしています。メディアやギャラリーの方には毎回、これが好評なのです。
今回、参加者は各チームのシステムを維持するだけでなく、チーム環境とは独立して作られた、業界団体の協議会システムを交代でメンテナンスするという役目も存在します。
この協議会システムには「ファイルサーバー」や「情報交換機能」などが存在しています。直接的に売り上げに関係するシステムではありませんが、参加者は競技時間中に、1人1回30分はシステムのメンテナンス作業に携わることがルールになっています。チームの中でのコラボレーションと同時に、チームの枠を越えたコラボレーションにも挑戦していただきました。
新たな取り組みのため、ルールはまだまだ改善する余地があったと思いますが、参加者はチームを超えて一つの問題に取り組むことで、交流するいい機会になったのではないかと思っています。
参加者に配布しているネットワーク図には記載されていないサーバーやクライアントマシンも存在します。例えば、ネットワーク内には「新Webサイト」(ホスト名:web2)と書かれているWebサイトが存在します。実は「旧Webサイト」(ホスト名:web1)というWebサイトも存在し、どちらの稼働状況も「Senカウンター」のクローラの対象となっています。情報が不足しているときや間違っているときに限って事故は起こるものです。それを体感してもらうために、このようなシナリオを仕込みました。
ネットワーク図に記載はしていませんが、よーく見れば「旧Webサイト」へのリンクが張ってありますし、「なんで突然web2なんだ?」と思った人もいるようです。この旧Webサイトの対応状況によって、評価に差がついてしまいました。
ECサイトのWebアプリケーションには、いくつかの脆弱性も仕込んであります。クロスサイトスクリプティング(XSS)やSQLインジェクションなど、想像しやすい脆弱性です。
今回はSQLインジェクションの脆弱性を悪用することで、商品の在庫をゼロにする攻撃を試みました。参加者は突然ゼロになる在庫の状態をすばやく発見し、在庫を補充する必要があります。また、根本的にWebアプリケーションの修正、防御も行う必要もあります。
この脆弱性を仕込んだkuromame6のkeigoは、嬉々としてSQLインジェクションを実行しており、kuromame6からも「無慈悲な攻撃」と恐れられていました。
そして、最近話題になったStrutsの脆弱性を持ったWebアプリケーションも存在します。ECサイトには、今回、問い合わせフォームや人気投票アプリを用意しました。これらは2013年に問題になったS2-016や、2014年4月に問題になったS2-020の脆弱性を含んでおり、任意のコマンドが実行できてしまう危険な脆弱性です。しかし、Softening Dayの会場でヒアリングしたところ、これらのアプリケーションがStrutsで作られていることに気付いた人はごくわずかでした。ブラウザーに表示されるURLには一見「do」や「action」が含まれていないことも気づきにくい原因であったのかもしれません。
国内セキュリティ企業が相次いで注意喚起:
Struts 2の脆弱性は最新版でも未修正、Struts 1にも同様の脆弱性が存在
http://www.atmarkit.co.jp/ait/articles/1404/24/news172.html
参加者が競技環境で使用するWindows端末にも仕込みがしてありました。全端末にはクラウド変換機能を有効にセットしたIMEがインストールされていました。その変換ログの送信先は、kuromame6のサーバーに指定してあります。参加者がメール作成や報告書作成を始めると、入力された文字列はkuromame6のサーバーに送信され、可視化されていました。参加者がどのような文章を作ろうとしているのかが、kuromame6の手元で分かるようになっていたのです。
クラウド変換機能そのものの是非については今回問いませんが、このような文字列が送信されることを認識して使用するべきであることは言うまでもありません。
「外部に送信されること」を認識した上で適切な利用を:
入力内容がそのまま外部に? オンラインIMEの利用にIIJ-SECTが注意喚起
http://www.atmarkit.co.jp/ait/articles/1312/19/news025.html
そして最後に魅せたのはkuromame6のyouです。彼の担当はもちろん(?)参加者の端末の遠隔操作です。競技時間中、いまかいまかと待ち続け、ラスト1時間で見事、彼の仕掛けた罠にかかってしまった参加者の端末が遠隔操作されてしまいました。遠隔操作ができた瞬間のyouの表情は、どこかの事件の真犯人ではないかと疑問を感じてしまうほどです(笑)。
Copyright © ITmedia, Inc. All Rights Reserved.