Projectはセキュリティの総合的な実践演習だ。参加者はチームとなって数々の多様なインシデントに対応しなければならない。サイト改竄、DoSアタック、SQLインジェクション、果ては個人情報の漏洩まで...発生するインシデントは様々だ。これらに対して攻撃の検知と修復を行うといった技術面の演習だけでなく、社内や顧客への対応、場合によっては記者会見の演習まで行う。総合演習というワケだ。そんなハードニングは、長い。本来なら2-3日ものあいだ競技をし続ける。これではあまりに参加のハードルが高すぎる、参加だけでなく開催のハードルもだ。Hardeningが生まれた。Hardeningだ。Hardeningは非常に短い。1試合が1時間足らずで終わり、同じ内容の攻撃プログラムを3、4回ほど繰り返して体験出来る。Hardeningではこのビジネス側の対応は潔く省略されている。技術的な対応だけ行えば良いというワケで初心者にとても優しい。何をすればいいか参加者はECサイトの運用チームとなって定期的にクローラーがECサイト上で買い物をしてくれるのを待つ。この買い物の金額が最終的なスコアとなる。ボサっとスコアのグラフを見ているとそれが水平線に変わる。インシデントの発生だ。何らかの障害が発生した為にユーザが買い物を出来なくなってしまったのだ。Webサーバが落ちたのかもしれないし、脆弱性をついてページが改竄されたのかもしれない。調べよう、そして直そう。短いしスコアがリアルタイムに変化していくのでゲーム感覚で挑戦できる。普段の業務ではハッキングの試行があっても成功することはほとんどないのですごく楽しい。自分は新卒でECサイトの保守を専任されていた頃に「何かインシデント起こらないかなぁ〜」などと不謹慎なことを考えていたが、ハードニングでは次から次へとインシデントが起こって対応に追われる。俺はまるで人間nagiosだ。何を予習すれば?初心者にとって一番の疑問はこれだろう。hardeningに参加したのは「何が出来ればいいのかよくわからないので様子を見に行った」というのが大きい。そこで体感としてこの辺を抑えておけばゲームになる、という点について書こう。結論から言うと基本的なUNIXやWebセキュリティの知識さえあれば大丈夫だ。業務でWebサービスの運用をした経験が少しでもあれば十分に戦える。エンジニアのいう基本的な〜とか、出来なくても大丈夫!というのは全て欺瞞なのでもう少し具体的な基準にしておこう。・ssh接続やポートフォワーディングが出来る・psコマンドでプロセスの死活を確認出来る・Webサーバ、syslog、ログイン試行などの主要なログを探して読める・必要に応じてtop、free、netstatなどを使って問題を切り分け出来る・SQLインジェクションやDoSなど基本的な攻撃手法の知識がある例によってやや厳しめに書いているが、それでも3つくらいは当てはまってないと「何も出来なかった...」という気持ちになるだろう。逆にあれば嬉しいがなくても何とかなる知識についても言及しよう。(ただし起動方法くらいは必須)実際のところ、必須ではないがチームに一人くらい理解している人間がいれば良いという程度。PHPやApacheを読み書き出来ないと対応できないような問題はまずない。出来ることが好ましい。攻撃を受けてから対応することはApacheを知らなくても出来るが、Apacheを知っていれば設定変更やアップデートで攻撃自体を予防できスコアが上がる。上でミドルウェアの知識は必須ではないと書いたが、実際攻撃によってDBやWebサーバが落ちるインシデントは発生するので起動方法も知らないというのは避けたい。Hardeningは短いし勝ちに行く雰囲気でもないので多少の粗相は許される、はずだ。自分なら気にせず色々教える。不安でもやる気があれば参加して戦いの中で成長しよう。攻撃のパターンは同じらしく、今回の参加でほぼ全ての攻撃を対応出来るようになったので自分は行かない。他にも大阪や鹿児島のイベントがConnpassあたりで主に募集されているのでいますぐ応募しよう。何を予習すれば?参加しよう。