ちょっと話題の記事

Hardening II SUでグランプリになってきました

「常に多種多様な攻撃にさらされているECサイトを死守しつつ、攻めの売上を目指し、お客様サポートもする」セキュリティーのイベント、Hardening II SUに参加し、グランプリになってきました! 脆弱性だらけの環境を修復しつつサービスを安定稼働させ、お客様メールサポート、商品画像の入れ替えなどもしながら商品購入クローラーにお買い物をしてもらい、売上を競います。
2019.07.08

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

もこです

札幌で開催されたHardening Project 2019 II SUに参加し、グランプリになってきました!

Hardeningとは

「常に多種多様な攻撃にさらされているECサイトを死守しつつ、攻めの売上を目指し、お客様サポートもする」セキュリティーのイベントです。

脆弱性だらけの環境を修復しつつサービスを安定稼働させ、お客様メールサポート、商品画像の入れ替えなどもしながら商品購入クローラーにお買い物をしてもらい、売上を競います。

リアルタイムで攻撃と商品購入クローラーが回り、攻撃を受けつつECサイトを死守し、攻めの売上を目指しつつインシデントが起きたらスピーディーに対応するのが主な内容になります。

事前準備

今回のHardeningでは「連合」という仕組みが取り入れられ、

連合(18人)の中でチームを3つつくり、各チームごとに競技をする という形になります。

連合全体でMTGをしつつ、全員がスキルシートを作成し、チームを割り振りました。

結果、札幌3人、関東1人、四国2人となりました。

所属チームは 東連合のチーム1「ハッチャキ隊」です

前日準備

Hardening前日に競技環境が書かれた資料(70ページ超え!)が配布されます

LCCが飛ばなかったりなど、移動時のアクシデントはありましたが、前日の夜には全員が札幌に到着し、集まることができました!

会議室などを借りることを検討しましたが、深夜までの場所が少ない + 料金が高いなどで、前日の事前準備はカラオケでやりました!

事前配布資料を読みつつ、「内部DNSサーバー、このサーバーにはWordPressが入っていて、このサーバーにはEC-CUBE、DBはこのサーバーだから絶対に落とさないように」

などなど、競技環境を把握し、パスワード変更のスクリプトをメンテナンスしたり、パスワード変更した際の影響範囲、対応点をまとめたり、Chrome BookMarkを作成したりしました。

Apache, EC-CUBE, WordPress, Postfix, Dovecot, BIND, Unboundなどなど、利用されているアプリケーションが多く、幅広い知識が必要だなあと思いました。

隣の部屋では超爆音で男性の美声[要出典]が聞こえてきたり、壁キックの振動がダイレクトに腰に響いたりして全然集中できませんでしたが、いい思い出になりました。

カラオケボックスはカラオケボックスなので、カラオケ以外の用途での利用はしないほうがいいです、マジで。

会場

会場はさっぽろ駅側のサッポロファクトリーホールとなっています。

ショッピングモール側で5分ほどうろちょろして会場探していました

会場内ではHardening II SUのバナーがありました、かっこいい!

中に入るとこんな感じ

チームごとに一つテーブルが割り振られ、準備をしていきます

Switchは各チームで持ってくることになっていましたので、気合を入れて48PortのSwitchを持っていきましたが、

絶対に48Portもいらなかったです。

競技開始!

毎回恒例(?)の「「深い」」オープニングが始まり

競技スタートです!

競技 - 午前

スコアボードの左下が連合総合の売上グラフとなっており、上のグラフはチームの売上となっています。

「連合全体の売上が1位で連合の中で売上が高いチーム」が優勝となります。

ハッチャキ隊は上のグラフだと赤色の線です。

早速攻撃をされて売上が落ちるなどなど、売上推移グラフだけで「他のチームが攻撃でダウンしてる!」なども観測することができるようになっています

Windowsの踏み台サーバーにRDP接続し、そこから各種ECサイトなどが入ったサーバーにSSHする形でアクセスしていきます、

パスワード変更とバックアップが終わったら、他の作業も並列で行いつつ、具体的な脆弱性を潰していきます。

例えばEC-CUBEのインストールスクリプトを削除したり Apacheの設定でIndexが有効化されている部分を削除したり

(sql dumpがあるディレクトリが公開されていた..!)

PUT / DELETEなどのMethodを使えなくしたりなどなど・・・・

すぐに脆弱性を見つけ、すぐに修正、さっきまで来ていた不正なアクセスがピタリと止んで「ざまあみろ!」と叫ぶのは気持ちよくてクセになりそうです。

午前中の12時ごろまで実際にやったことは

  • Windows/Linux SSHのパスワードの変更
  • 各種Web Application WordPress/EC-CUBEなどのパスワード変更
  • /var, /etc, /binのバックアップ
  • mysqlのTableをdumpしてバックアップ
  • 意味不明なアプリケーションが起動していないかプロセスを確認
  • phpmyadminを公開されていないディレクトリに移動(後々使いたくなったときのために消さない)

などです。

これがサーバー数台ならまだしも数十台規模となるとめちゃめちゃしんどく、頭が回りっぱなし、まさに猫の手も借りたい状態になりました。

プロセス監視、ログ監視、ファイル書き換え検知、バックアップなどの基本的なことは手動でやっていたので、もう少し効率化できたのかなと思います。

攻撃などでunbound, httpdなどのServiceが止まったりして障害が起きたら手動で復旧していたので、これも事前に準備しておけばよかったと後悔です。

また、マーケットプレイス(セキュリティー系のサービスを購入することができる仕組み)でCISCO様を利用させていただきました。

「Windowsのメモリ上に不正なPowerShellが展開されてますよ!!」と教えてくださったり、不正なトラフィックを止めてくださったり、「このIP/このPort止めてー」とお願いしたらすぐに止めていただいたりなど、100点満点のサービスを提供していただきました。

「どのサービス宛にどのポートでどんな攻撃が来ていたのか」などを具体的にまとめたpdfも貰え、とても参考になりました。本当にありがとうございます!

お昼ご飯

お昼ご飯をもらえますが、食べてる最中にも攻撃はバシバシくるのでゆっくり食べてる暇はありません、食べながら作業していきます

この頃になったら机が世紀末状態になってきました

片付けてる暇なんかないです、この写真を撮ってる最中にも攻撃が来てます

競技 - 午後

「午後からショップ2の商品を展開する」と事前配布資料に書かれていたため、午後から販売開始します

3時頃に「煽り」のメッセージが

パスワードが割れて公開されているチームもありましたw

クレジットカードの(物理)流出にも気をつけよう!

競技中、スライドで「クレジットカード流出してませんか?」と表示され、慌ててMySQLのログを見たり不正なDump、リクエストがないかを確認したりしましたが、見当たりませんでした。

数十分後突然呼び出され、クレジットカード流出の記者会見(※1)に連れて行かれると覚悟して行ったら、なんと自分のクレジットカード2枚を物理的に落とし、流出していました!!!???

競技後の懇親会では「クレジットカードの人」とか言われました。

みなさんもクレジットカードの流出には気をつけましょう

※1 過去には流出したチームには記者会見をしたそうです、今回は役員会議でした。

Coffee Break

タリーズコーヒーのお姉さんが来て、コーヒー飲み放題、お菓子食べ放題と、大盤振る舞いです。

アイスコーヒー10杯ほど飲みました、このコーヒーがなかったら最後まで集中力が持たなかったです。


   

途中、内部DNSが引けずECサイトが全滅したりしましたが、Unboundを復旧させて解決したり、Apacheエラーログを監視し、不正なアクセスがないかを目grepしたりしていました。

そして、競技終了1時間前時点のスコアボードです。

チームでは3位(4位?)ですが、連合合計では1位、勝利の兆しが見えてきましたが、北連合がものすごい勢いで売上を上げてきて、正直キツいなあと思っていました。

最後の1時間はスコアがマスキングされるため、順位などは次の日の発表になります。

ドキドキを背負って競技終了です! 机は、もう、やばいです

夜ごはん

帰りはチームのみんなとラーメンを食べました

いままで食べてきたラーメンで一番辛かったです、眠けも全部吹っ飛びました。

二日目

二日目は各チームの発表、攻撃内容などの説明です!

商品購入時の個数をマイナスにすると無料で買える脆弱性

インストーラーは削除しましょう

ログイン画面はIP制限しましょう

登録されたらどうなる?

などなど、基本的なことでありながら重要なことが多く、実際に基本的な設定ミスなどで情報漏えいが多発しているので、セキュリティーは奥が深いと思いました。

結果発表!

とうとうお待ちかねの結果発表です!

発表内容は「審査した結果の内容(ランキング)」と「売上(グランプリ)」です。

東連合、チーム1で、一番はじめのチームなので一番最初に発表、ギリギリ入ってるか!??!のドキドキもわくわくもありませんでしたが、

技術点と対応点で1位をいただきました!

経済点, 協調点など、ランク外だったのが少し悔しいですが、まずまずの結果です!

全チームの売上はこんな感じ!

連合全体の総売上が1位, 連合内でも1位で、グランプリになることができました!!

夕張メロン、グリーンアスパラ、さくらんぼ、とうもろこしを後日輸送で送ってくれるそうです!

※ビールは年齢的に持って帰れないので、会社の人に回収してもらいました

また、NEC様からモバイルルーター、「Aterm」ももらいました!

本当にありがとうございます!

まとめ

今回のHardeningで、セキュリティーの重要性を身をもって体験できました。

普段SaaSサービスばかり利用していて、低レイヤーのセキュリティー設定などを疎かにしがちな自分を見つめ直すことができました。

チーム全体の売上げランキングでは3位と微妙なラインでしたが、東連合の皆様のおかげで総売上トップ連合になれ、本当に感謝しかありません。

また、今回マーケットプレイスで購入させていただいたCISCO様、素晴らしいIPSサービスを提供していただき、誠にありがとうございます。

そして、普段はセキュリティーインシデントが起きない(起きてはいけない)中、このような攻撃からの防御を実践的に学べる場を作ってくださっている、Hardening関係者の皆様には頭が上がりません。

本当にありがとうございます!

Hardening 公式サイト: https://wasforum.jp/hardening-project/

二日目ライブ配信: https://youtu.be/hJEcBpaJOtk

(次回も北海道で開催してほしいです!!!!)