🐑

【初参加】H2023G Softening Day 参加体験記 (#H2023G)

2023/10/30に公開

0. はじめに

2023/10/28(土)に、Hardening 2023 Generatives(#H2023G)の振り返りを行う Softening Dayに参加してきました。Softening Dayまで参加して今年のHardening競技会のプログラムはすべて終了したので、振り返りをまとめようと思います。

Hardening Day本戦の参加体験記は以下の記事に記載しています。
https://zenn.dev/anri99103/articles/7d6a70dd21c31c

また、現在Softening DayのLIVE動画が公開されています。7時間の長丁場ですが、見どころがたくさんあるので、よければぜひ。
https://www.youtube.com/watch?v=H9n9vtxY47k


1. 準備編:Softening Dayまでに行ったこと

本戦終了時のブログで、Softening Dayまで時間があるため、今からでもできる準備を進めたいと書きました。

Hardening Day本戦は終わりましたが、Softening Dayはまだ終わっていません。これからでもできることはあると思うので、以下をSoftening Dayまでの間に行っていきたいです。せっかく参加をしたので参加しっぱなしで終わらず、復習や情報を残すことを進めていきます。
(TODO記載)

記事を投稿したところ、我が師匠ことHardening実行委員の岡田さんから、以下のありがたいコメントをいただきました。1点目と2点目のレビューを中心に振り返りも進めることにしました。(3点目のドラマはまた鑑賞してみます!)

コメントいただいたTODOがとてもよかったので追記します。
・ここ1年のセキュリティニュースをもう一度レビューし、「ああ、あれはもしかしてこれの再現だったのか」と、今回ならではの攻撃にこめられたメッセージに思いをはせる
・ここ1年のセキュリティガイドラインやOWASPドキュメントをもう一度レビューし、「ああ、あれはもしかしてこれの再現だったのか」と、今回ならではの競技背景とインシデントにこめられたメッセージに思いをはせる
・VIVANTをTVerなどで鑑賞しなおし、競技背景や競技内容にこめられた時代背景メッセージがいかにして巧みに織り込まれているか思いをはせる

1-1. チームで行ったこと

10/16、10/24にチームで定例MTGを行いました。

  • Softening Dayまでに決めることの認識合わせ
  • Softening Day発表資料の内容確認
  • Softening Day当日の持ち物・集合場所確認
  • ログ鑑賞会

などを行いました。ログ鑑賞会は「やってみよう」といったものの、実際のログはかなり広範にわたるため、一部のログのみを参照しました。ログの読み方については要学習事項だと感じました。

1-2. 個人で行ったこと

10/9~10/27の3週間で以下のことを対応しました。「本戦の記録を残すこと」と「資料を読み競技の背景に思いをはせる」ことを中心に行っていました。

1-2-1. 本戦の記録を残す

  • Hardening本戦のブログを書く
    • 10/5の本戦終了後、Notionに書き連ねた内容をもとに、10/9に参加体験記を執筆・公開しました。なお本稿の執筆には7時間ほどかかっております。
  • Hardening本戦にて作成・共有したNotion, Google Drive, Discord内のファイルデータ、当日の写真を保管
    • 記録に残しておくことが大事だと思ったので、10/16週に対応しました。データの保管や整理にはだいぶ時間を要しましたが、いつでも今回の記録を参照できる状態にできたのはよかったです。写真については、後日公開いただいた写真はまだ保存できていないので、随時追加できればと思います。

1-2-2. 資料を読み競技の背景に思いをはせる

前述したレビューの目的で、ここ1年のセキュリティニュースの事例やガイドラインをひたすら読み漁りました。以下に読んだ書籍・資料をまとめます。なお様々な資料を読み漁りましたが、Hardening本戦と直接関連する資料としては、OWASPガイドラインの他、白書とインシデント事例の調査報告書を読めれば充分かと思います。

■書籍

  • Hardening Funの書籍を読み返す
    • 帰りの飛行機と連休中に三度ほど読み返しました。初参加を経て概要や体験記の内容を読み返すと、知識が繋がったり新たな発見があったりしました。
    • 「Chapter2.本戦スケジュールとダンドリまるわかり」は本戦経験後に読み返すことで準備の必要性や理由を理解できました。
    • 「Chapter4.Hardening競技会における生成AIの活用を考える」の項目は事前準備を経て、生成AI活用利便性や重要性を深く実感しました。
  • CISOのための情報セキュリティ戦略の書籍を読む

■資料

  • OWASP Top 10 for LLM Applicationsのガイドラインを読む
    • 今回のテーマが「Generatives」だったので、OWASPの数あるガイドラインのうち、新たに公開されたLLM Top10のガイドラインを読みました。
    • 和訳はこちら。また、こちらのZennブログの解説記事が大変よくまとまっていて、わかりやすかったです。
  • IPA:情報セキュリティ白書2023の白書を読む
    • 10/18,25,26にざっと1周読みました。全257頁(本文は2段組み構成)の中に、2022年度の統計や事例、国内・国外の情勢、活動内容など多岐にわたる内容がまとまっています。
    • 情報セキュリティにおける一次情報の宝庫であるため、通読には骨が折れますが、何かと参照したい資料です。
  • 政策研究大学院大学の情報システムに対する不正アクセスの調査報告書を読む
    • 2015年に設置されたWebShellが2022年8月に発覚した事例です。大学という機関特有の事情や、組織的対策の不備などの説明が印象的でした。
    • 公開時点で読んでいたGRIPSの調査報告書を読み返しました。全35頁で読みやすく、インシデントの説明や9-10章の要因・対策には何度も読み返したい内容が詰まっています。
    • なお12.3節にて評価コメントをされている川口氏は、Hardening競技会の実行委員を務められています。本戦の環境内に類似したファイル名があったりSoftening Dayの解説で言及されていたりなど、今年は本事例をオマージュされた箇所もありました。
  • 大阪急性期・総合医療センターの調査報告書を読む
    • 2022年10月に発生した障害・被害をまとめた報告書です。医療センターが受けたランサムウェア被害であること、給食センター経由で発生したサプライチェーン攻撃であることが注目され、当時大きな話題を呼びました。
    • 10/26にざっと1周読みました。全75頁の中に繰り返し書かれた「責任分界点のあいまいさ」「ネットワークの閉域神話」の説明が印象的でした。
  • IPA:ECサイト構築・運用セキュリティガイドラインを読む
    • IPAの白書で言及されていた、全84頁のガイドラインです。10/27にざっと通読しました。HardeningはECサイト環境がメインのため、関連性が高そうだと思い読みました。
    • 経営者編と実践編に分かれており、前者は経営者に提言すべき内容が、後者はECサイト構築・運用時のセキュリティ対策要件がまとまっています。「付録1 被害を受けたECサイトからの生の声一覧」は実際の被害者の声が掲載されており、必読です。
  • デジタル庁:政府情報システムにおける脆弱性診断導入ガイドラインを読む
    • IPAの白書で言及されていた、全29頁のガイドラインです。10/27にざっと通読しました。Hardeningとの関連性というより、職種柄興味を引いた内容だったので読みました。
    • 論理的かつ簡潔明瞭にまとまっており読みやすいです。要件や選定基準などは診断サービス提供者側が読んでも参考になることが多いと感じました。
  • IPA:組織における内部不正防止ガイドラインを読む
    • IPAの白書で言及されていた、全136頁のガイドラインです。10/27にざっと通読しました。Hardeningとの関連性というより、最近発覚した内部不正による個人情報流出事案に関連しそうな内容だったので読みました。
    • 本文中で「監視やモニタリングは役職員の無実を証明するために活用するもの」と繰り返し書かれていたのが印象に残りました。文量が多いため、一度で分かった気にならず繰り返し読みたい資料です。「付録I 内部不正事例集」は内部不正による情報流出事案の実例が多数掲載されており、必読です。

■その他

  • 画像生成AIを試し、テスト投稿を兼ねてブログに初投稿する
    • 10/8に画像生成AIを用いて新アイコンを作成していました。画像生成AIで遊んだ結果をブログに投稿しました。初投稿のテスト投稿を兼ねて気軽に取り組み始めたものの、遊んだりブログにまとめたりするのには丸1日かかりました。
  • 2021年~2022年のHardening参加体験記をよむ

2. 当日編:Softening Day当日のまとめ

当日は東京会場に現地参加してきました。午前中は各チームの発表を行い、午後は今年の競技内容の解説や裏話、各種表彰・総括など、終日Hardeningの振り返りを行うプログラムでした。
今回自チーム(Team03 ウパ・シチリ)の発表でプレゼンターを務めたので、発表者視点での振り返りもできればと思います。

2-1. 発表について

Team03 ウパ・シチリの発表はYoutube Liveの32分ごろから視聴できます。タイムスケジュールが厳格で持ち時間10分での発表でした。

2-1-1. 感想

今回持ち時間が10分で、タイムキーパーの方が「あと5分」「あと1分」などカンペを見せてくださる仕組みでした。それとは別に練習時にも使ったスマホのストップウォッチを持参し、発表を行いました。結果、ある程度残り時間の尺を把握した状態で話せたため、功を奏したと思っています。

また発表中は内容を取捨選択するのがとても大切でした。スライドに書かれた内容は見たらわかる情報でもあるので、自分の言葉で適宜話すことを心掛けました(スライド読み上げだと時間が足りないのもあります)。「このスライドで言いたいことは何か?」を事前に考えておくことで、発表者ノートを一切見ずとも[1]、詰まらずに話をできました。

そして練習ではタイムが10分を切ることはなかったのですが、本番では今までで一番配分がスムーズにできた結果、10分以内に無事収まったので本当によかったです。
本番発表中は「早口すぎて聞き取れないのでは」と不安に思っていましたが、あとで動画を見返すと思ったより自身がゆっくり喋れていて驚きました。喋るスピードを上げるのではなく、無意識に情報量を選別することで、対応できていたのだと思います。日頃社内で全社向けに30分枠の登壇・スピーチを話す機会が何度かあったのですが、そうした場慣れは本番で活きてくると思いました。

2-1-2. 反省点

ここまで良かった点を書きましたが、今回の発表に際し、反省点もあります。
最大の反省点はMP(マーケットプレイス)様の社名を間違えた状態で発表したことです。資料作成時点でも気づいておらず、認識が欠落していた結果、発表後にご指摘いただく形となったので大変申し訳なく思っています。

また社名については「(会社名)+さん」で呼びましたが、本来は「(会社の正式名称)+様」が適切です。今振り返ると大変失礼な言動だったと思います。日頃から「(会社の正式名称)+様」呼びを徹底するように今後はしていきたいです。

最後に、他チームの発表を聞いていて資料の作りこみに甘さが残っていると痛感しました。ドラフト版で満足せず、「表現内容が適切か(誤字・脱字がないか)」「会社名など競技会に関わる内容が正式な名称になっているか」を徹底して確認する必要がありました。また図や写真を活用したり、「全体の概要ではなく、このチームならではの取り組み」を具体的に言及できればより良い発表になったのではないかと思います。

2-2. 解説について

午後からは競技の解説を中心に進みました。午前中に一部のチーム発表で話されていた、ランサムウェア攻撃の仕組みや対応の話をはじめ、競技環境の苦労話など、大変興味深く聞かせていただきました。

2-2-1. 学んだこと

まず最大のポイントとして、インボイスや請求書対応など「ビジネスとしてお金のやり取りを考える部分」の重要性を学びました。今回は請求書対応がほとんど手つかずでしたが「請求書を送付しないと金額が確定しない」のは至極もっともな話で、エンジニアとしては欠落しがちな視点だが大変大切な観点だと痛感しました。

また競技において「前日資料に記載のミッションが、やるべきことのすべてではない」とも強く思いました。「ミッションはすべてで20個」という固定観念が強いと、せっかく追加できた指示に対応しても作業報告から抜け落ち加点にならないなど、惜しい結果になると感じました。

そして解説内で「応募ページに個人情報が掲載されており、直URLで個人情報を見られるのは企業サイトの状態としてどうなのか」という指摘があり、当日に気づいて違和感をもったものの対応まで至らなかった身としては、「あのときなぜ声を上げなかったのか」と悔しく感じました。
現実にもこうした不適切な設定による情報流出の事案は多く存在するので、事案に直面した際に声を上げる必要性を実感しました。

総じて「競技として見るのではなく、本当のビジネスだったらこの対応はおかしい・この対応はすべき」などビジネス視点で考え抜く姿勢が大切だと思いました。またビジネス視点で考える際に今の自分の知識不足も痛感しました。

2-3. 結果について

最終の結果は5位でした。本戦では夕方まで1位~2位間を死守していたので、最後の1時間で他チームに追い越されたのだなと悔しく思いました。最後に在庫を切らした状態だったり、請求書対応などにあまり手が回らなかったのが痛かったかなと思います。悔しさは残りますが、今回得た学びを来年に活かせるようにしていきたいです。
優勝されたTeam10の皆様おめでとうございます!


3. 最後に

本年のHardeningはすべて終了しましたが、次回以降もぜひ参加していきたいです。
次回以降の参加に向けての準備はもとより、「セキュリティでビジネスを衛る」Hardening(堅牢化)については日頃から考えていきたいと思います。

自身の職種がセキュリティエンジニアなのですが、今回の参加体験を通じて「セキュリティの専門家として、セキュリティに明るくない人にも重要性や本質を伝えられる人になりたい」と強く思いました。
そのために提言すべき内容がまとまったガイドラインなどの一次情報を積極的に読み込み、知見や知肉として活用していきたいです。

またセキュリティエンジニアとしてセキュリティに関する技術や周辺の技術ももっと広く深く学ぶ必要があると感じました。Webやサーバ、インフラなどセキュリティエンジニアとしてカバーすべき範囲は多岐にわたりますが、手を動かす経験を少しずつ積み重ねることで各分野に明るくなりたいと思っています。

改めて、Hardening 2023 Generativesに参加できて本当によかったです。この貴重な経験をぜひ今後に活かしていきたいです。Hardening Projectの皆様、スポンサーの皆様、チームの皆様、参加者の皆様ありがとうございました。改めて御礼申し上げます。

4-1. TODO

■Softening Dayを振り返る
近日中に対応予定です。

  • Softening DayのLIVE動画を視聴する→OK。チーム紹介動画や本戦冒頭の動画も見返して楽しかった。
  • Softening Dayの参加記をブログにまとめる→OK。10/29執筆・公開済。なお本ブログの執筆には3時間ほどを要した。
  • Softening Dayの他チーム発表資料・関連資料を見返す

■組織のHardeningを考える
各種ガイドラインを読み、ビジネスの理解やセキュリティ専門家として提言すべき知見をためていきたいです。

☆Hardening関連で読みたい資料

☆11月中に読みたい資料

■自己学習を積む
次回は技術チームで参加してみたいので、1年間学習を積み上げていきたいです。

  • Linux、Dockerの学習
  • VyOSの学習
  • WooCommerce、EC-CUBEなどを触る
  • hayabusaを使用してみる
  • 生成AIの活用
脚注
  1. 当日の発表は登壇の位置に予め設置されたPCを用いる。自前のPCではないため発表者ノートなどのカンペは使えない前提で用意したほうが良い。 ↩︎

Discussion