Hardeningとは、セキュリティのイベントです。CTFが攻める側のイベントだとすると、守る側のイベントです。Hardening(堅牢化)ですね。ECサイトや各種サーバのIPアドレス表的なものをポンと渡され、「さあ、守ってね!」という感じ。ひえぇ。
メンバーは僕とyota, shien, sugi,そして社会人枠(ピン枠)のykameさんのチームE(チームecho)として参加してきました。
一般に公開されてるECサイト、旧ECサイト、本社サイトを守ればいいらしい。
とりあえず行ったことは
- 不必要なユーザの削除(僕ら五人なのでuser6,user7は削除)
- パスワードの変更(案の定デフォルトのパスワードひどかったです。user1のパスワードがpass1111。。。)
- 不要なプロセスを止める
- なんかatdなるデーモンが走ってた。調べてみると指定時間にコマンドを走らせるとか。怪しい……
で、このうちユーザーの削除はチョンボだったみたいですね。ユーザごとに送られてくるメールとかあって、不必要なユーザなんかないらしいです。他の参加者にこのこと話したら笑われました。
こんな感じで大量にあるサーバのアカウントとプロセスを確認したり、と色々やってると……
_人人人人人人人人人人人人人人人人_
> 全参加チームのサーバが落ちてる <
 ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄
慌てましたね。だって落ちてないし。
このサーバの生死は会場の中央にレゴブロックでできた各チームのお店の模型が置かれていて、その上のランプの点灯により確認できるシステム。全てのウェブサイト閲覧できるのに、なぜかランプはつかない。
運営「管理すべき4つのサーバのうちどれかが落ちてますねー」
え、4つ?3つじゃないの?
DNSやFWを見なおしても全然おかしなところは見つかりません。
四苦八苦してると運営側からのヒントが。
「落ちてるのはweb1ですね」
え、web1?
と、そこで思い出される競技開始時の会話。
「とりあえず資料見てみよう」
shop1 旧ECサイト
shop2 新ECサイト
web2 本社サイト
「え、web2?web1はどこいった?」
「あ、本社サイト、旧サイトへのリンクが死んでる。これのことじゃね」
「後で問い合わせメール送っとくわ」
こ、これだ!yotaとykameさんの瞬速の対応でどうにかサーバは復帰しました。というか、最初で気付いてたじゃん……。いや、次々発生するインシデントに流されて対応を忘れてた結果ですね。これはあるあるなのかな?
このミスが結構でかく、僕らより先に気付いたチームがガンガン得点伸ばしてました。この敗因は後回しにしてしまった事自体ではなく、
タスクの管理体制が甘いからだよね。まあ本当はgoogleドライブでの管理を色々事情があって頓挫してしまったからではあるんだけど、それならそれでポストイットとか使った管理に切り替えるべきだった。タスクの優先度、担当者、今どのタスクをやっているかを明確にすべきでした。
そのあとも色々攻撃を受けました。
サイト改ざんを受けて背景真っ赤に黄色い文字で「お前らのサイトはいただいた」的な表示になってたり、DDOS受けて社内ポータルサイトがくっそ重くなってたり。
あと商品の在庫がゼロになってしまい、しばらくサイトの売上がゼロになってることに気づきました。在庫の発注を行い上手く対応したと思ったのですが……。5000ある商品が二時間で在庫切れするわけないんですよね。その後監視してみると、普通一時間で200注文されるかどうか。どう考えても5000ある商品が在庫切れになるのは不自然です。
そう、SQLインジェクションです。これは後になって(懇親会で)気づきました。
あとyum updateするとバックドアがしかけられる……という罠もありました。gpgcheckが0になっていて、保証されていないパッケージがインストールされるという。僕らは幸か不幸かアップデートしてなかったのでかかりませんでした。
最近話題になった脆弱性も攻撃に使われてました。
* 管理用PCのIMEにbaiduがインストールされていて、ほぼキーロガーに
* Strutsで作られたページがあって、脆弱性のあるバージョンだった
など。情報処理試験とかだと最近話題になったものが問題になるかも……と警戒できたのに、これは気づきませんでした。事前準備である程度調べるべきでしたね。
サイト改ざんはwebDAVを用いたようです。そりゃあWebDAVの設定甘かったら改ざんし放題だわな……。
反省点としては、圧倒的な勉強不足ですね。yotaとykameさんに大分迷惑かけました。勉強のしかたがわかんないんだったら頻繁に勉強会を開いてもらうべきでした。時間を作ってもらって。わからない立場のくせに自分から動かなさすぎでした。反省。
感想として、実際の現場の空気感を少しでも味わえたことが良かったですね。それくらい気づけただろ、ってことでも次々起こるインシデントやメール対応等に追われるとだんだん冷静な判断ができなくなりますね。あと大人チームは色々と用意してました。監視用のスクリプトやプリンタやスキャナまで持ち込んでました。ほんと、プロの方が攻撃側にも参加チームにもいて良い刺激になりました。
貢献できたかは疑問ですが、参加してよかったです。B4,M1なんかも参加していいかもしれませんね。