こんにちは。セキュリティ対策室 エンジニアのrhykwです。 本記事は、10月16日から18日に「Hardening Project」の主催で開催されたサイバーセキュリティ競技会「Hardening 2024 Convolutions」の参加レポートです。 参加レポートに入る前に少しハードニングや競技会について説明します。
Hardening Projectとは
「衛る技術」の価値を最大化することを目指す、10年続くセキュリティ・プロジェクトです。 セキュリティ堅牢化競技会である「ハードニング競技会」をデザインし、実現するボランティア・プロジェクトとして運営されています。 プロジェクトでは2012年を皮切りに、「ハードニング競技会」を毎年継続して開催しています。
サイバー攻撃により不安に満ちたインターネット社会において、最高の「衛る」ための施策、 すなわち技術面と適用の施策を見極める目を持つスペシャリストを発掘し、 サイバーセキュリティの実践力を強力に向上することがプロジェクトの目的とされています。
ハードニング競技会とは
公式の説明文では以下のように書かれています。
ハードニング競技会は、脆弱性の潜むビジネスシステム(ECサイトなど)へのハードニング(堅牢化)力の強さを総合的に競うコンペティションの形をとります。
ハードニング競技会には、技術者であるかどうかにかかわらず、誰でも応募できます。一般公募と、それに応じた方々の審査によって選出された参加者たちは、たいてい1ヶ月から2ヶ月ほどの準備段階を経て、本番であるHardening Dayに出場し、8時間にわたる攻撃に対応するために全力を傾けます。
競技内容は、セキュリティインシデントが発生すると関係者が直面する現実的な問題を反映しています。それらを、限られた時間でどのように効果的に扱うかに焦点があてられます。
参加者としての意見を付け加えると、この競技会ではもちろん堅牢化も競いますが、最も重視されるのは単なる技術力ではなくインシデントへの対応力であると考えます。
ハードニング競技会は、競技の日の8時間だけで完結するものではありません。 以下に今年の競技会のスケジュールを簡単にまとめました。
日程 | 内容 |
---|---|
08/10 | 募集締め切り |
08/16 | 選考結果通知 |
08/27 | キックオフミートアップ |
08/27 | 参加者のしおり展開 |
10/11 | 事前配布資料の展開 |
10/15 | Preparation Day |
10/16 | Hardening Day = 競技 |
10/17 | Analysis Day = 競技の振り返りとまとめ |
10/18 | Softening Day = 発表と表彰 |
このレポートでは、主にPreparation Day とHardening Day の内容を中心にお伝えします。
サポーター・スポンサー様、開催地の皆様、実行委員会の皆様の協力や準備のおかげでこのようなイベントに参加でき、本当に感謝です
インタビュー
Q. 競技にはどのような方々が参加されたのですか?
A. 職種・年齢に関係なくさまざまです。
企業に勤務している人、現役の学生、大学職員など多様な方が競技者として参加していました。 今年の競技会には134名が競技者として選考され、7名または6名からなる15チームが事務局によって編成されました。
Q. Preparation Dayではどのような活動が行われましたか?
A. 私のチームの7名は、仕事や住んでいる地域もバラバラです。この7名が初めてオンサイトで対面したのがPreparation Dayでした。
Preparation Dayでは各チームで目的や活動が少しずつ違うと思いますが、私のチームにとっては全員で顔を合わせることがまず重要だったと思います。また、例年のハードニング競技会では、本番直前に事前配布資料の最終版が提供されると言われていますが、今年は3日も前倒しで資料が展開されていました。そのおかげで、Preparation Dayの前に資料に目を通し、本番の戦略を少し考える時間が取れたのも良かった点です。
また、今年の特徴的な制度として、3チームで1つの連合(JV)を組み、他のJVと売り上げを競う仕組みがありました。この連合のミーティングもPreparation Dayに実施し、同じJVに所属する他チームとの連携についても話し合いました。
この日は18時頃から集まり、22時半ごろに解散しました。
Preparation Dayのチームミーティングの様子
Q. Hardening Dayでの初動はどのように進めましたか?
A. 各チームには、環境内のサーバーやファイアウォールに脆弱なパスワードが設定されたアカウントがありました。初動として、まずは外部からアクセス可能なサーバーやファイアウォールのパスワードを強化し、その作業と並行して外部からの通信制御を設定しました。特にファイアウォールではウェブアクセスやSSH、DNS、VPN以外の通信をブロックし、イントラ環境の保護を優先しました。
さらに、Hardening競技会では「マーケットプレイス」という制度があり、WAF(ウェブアプリケーションファイアウォール)などを競技内で購入できる仕組みがありました。競技環境内にある複数のウェブアプリケーションの脆弱性を洗い出すのは難しいため、WAFを購入して対策に当たることにしました。WAFを購入できなかった場合の対策として、オープンソースの対策も検討していましたが、運良くWAFを手に入れたので結果として良い選択ができたと思います。
初動の作業中には、ファイアウォールの設定で誤って通信が遮断されるハプニングもありましたが、迅速に対応して復旧し、競技に臨むことができました。
Q. 競技会の説明の中でHardening Dayで『8時間にわたる攻撃に対応する』とありますが誰からどのような攻撃を受けるのでしょうか?
A. 競技会では実行委員会の中に『kuromame6』というチームがあり、このチームが競技や脅威の設計を行い、Hardening Dayでは攻撃を担当しています。 また、競技環境は参加者に提供される時点で各OSのユーザーアカウントのパスワードが脆弱であったり、本来インターネットに公開されてはいけない管理画面が公開状態になっていたり、ミドルウェアの非暗号化の管理ポートがインターネットからアクセス可能な状態になったりしています。 その他、インストールされているアプリケーションが脆弱性を持っていたり、競技開始よりも以前に環境内にバックドアが設置されていたりもします。
こういったものを利用したと思われる
- DNS(named) 停止
- ファイルサーバの内容の暗号化
- サイトの改ざん
- 個人情報の暴露
と言った攻撃を受けました。 攻撃にも対処しながらECサイトの運営も継続しなければならないのがこの競技の大変なところの1つです。
Q. Hardening Dayを通じて、優先順位のつけ方について気づいたことはありますか?
A. はい、競技中に多くのインシデントが同時に発生し、どれに優先的に対応するかの判断がとても重要でした。 前の質問の問いとも重複する部分がありますが発生したインシデントをいくつか挙げます。攻撃によるインシデントもあれば、自分たちのオペレーションの結果発生したインシデントもありました。
- 踏み台から先のサーバーに接続できない!!
- ウェブサイトに不審ファイルが設置されているという報告を外部から受ける(しかも複数回)
- データベースのダンプファイルを暴露する、という脅迫を受ける(侵入型ランサムウェア攻撃を受けた)
- 会社の公式サイトが改ざんされ、見知らぬ画像を掲載される
- ウェブメーラーにログインできなくなる
普段の業務ではこのように複数のインシデントが同時に発生することは少ないため、優先順位のつけ方を改めて考え直す良い機会になりました。業務ではインシデントごとに担当者(ハンドラー)を立てて対応しますが、競技中のように多発するインシデントに対しては、全体の状況を見て適切なトリアージができるハンドラーの重要性を感じました。
終了時間が迫ってくる (Hardening Project提供)
Q. Analysis DayやSoftening Dayを通じて感じたこと、学んだことはありますか?
A. Analysis Dayには競技の振り返り資料を作成し、Softening Dayでその内容を基に発表を行いました。 作成する資料では含めるべき項目が25項目あり「今回の経験を自社のインシデント対応をリモートで行う場合にどのように生かせるか」という項目も含まれていました。
この問いについては、多くのチームがリモートでの対応は難しい、と感じていたように思います。また、私のチームでもそのような意見が出ていました。 自分自身は普段の業務においてリモートでの対応にそこまで難しさを感じていなかったので、この差は何かなと考えました。 考えた結果、以下のような前提があることがリモート対応のハードルを下げているのではないかと思いました。
- コロナ禍以前から社内でチャットツールを利用しておりチャットツールの利用に慣れている
- 起きたインシデントに対して 呼び出す人を予めツールのグループメンションとして登録してありすぐ呼び出せる
- チャットツール上でのインシデントレスポンスを支援する仕組み1を社内で構築している
- 文字でのコミュニケーションが難しい場合には音声・ビデオチャットをすぐ行う文化がある
特に大きいのは2番目の項目だと思っていて、これはリモートであれオンサイトであれ、何か起きたときに誰を呼び出す、というのが明確になっているということが大事なのだと思います。 また3番目の項目のツールは、ハンドラーを明示的に宣言するように促す仕組みを持っているのですが、これも誰が旗を振るのかを決めるという大事な役目を負っています。
この2点の重要さ再認識出来たのも学びの1つです。
Analysis Dayの午後は、豊見城発祥「ハーリー」体験会とビーチBBQの懇親会がありました
Q. 今回の競技で感じた反省点や次回に向けた課題はありますか?
A. グランプリのチームと自チームとを比較した時、また自分自身の振る舞いと比較した時、グランプリのチームはビジネス(技術面以外を主に担当するロールをこう呼ぶことにします)にしっかりと力を入れているな、と思いました。 得意な分野で競技に挑戦したいと思い、自分は技術以外の部分を全然見ていなかったのですがこの振る舞いは良くなかったなと反省しています。
また、グランプリのチームではビジネスに3人、技術に4人という人数比率となっていました。これは自チームが技術に多くの人数を割り当てたのと対照的でした。
冒頭でも少し触れましたが、ハードニング競技会はインシデントレスポンスをしつつビジネスをいかに継続するかを競うイベントです。 また、インシデントレスポンスもカスタマーサポート部門や法務部門、広報部門などと力を合わせてこそ乗り切れるものなのだということを改めて認識できました。
もし次回も参加できるならば会社のそういった部門の仲間にも積極的に声を掛けて応募し、一緒に参加してみたいと思いました。
まとめ
今回のHardening 2024 Convolutionsでは、堅牢化技術やインシデント対応力を向上させるとともに、普段の業務での気づきや再発見もありました。特に、リモート対応においての自社の取り組みの有効性や、ビジネス面の対応の重要性に気づけたことは大きな収穫でした。
今後も、さまざまなチームメンバーと協力し、ビジネス継続を意識した堅牢化とインシデント対応に臨んでいきたいと考えています。