meowの覚え書き

meowの覚え書き

write to think, create to understand

DIVER OSINT CTF 2025 チーム内作戦会議 (Team: KAKITSUBATA)

目次

この記事について

DIVER OSINT CTF 2025 において、チームの前打ちで使用した資料です(writeupはこちら)。
2024年度の前打ち資料をベースに、2024年のCTF参加後にわかったことや競技シーンの変化(生成AIツールの普及など)も考慮してアップデートしています。
もちろん2025年CTF開始前に書いたものなので的はずれな内容も一部あることをご承知おきください。
こんなことを言うのもアレですが、最初のアイスブレイクが前打ちの主目的なので、作戦内容自体はおまけみたいなものです。
↓以降が前打ちで提示した資料です↓

アジェンダ

  • マイクチェック
    • 当日やると結構焦るので。
    • 当日は長丁場なので、ワイヤレスイヤホンを使っている方は予備のイヤホンマイクでもテストするとよいかもしれません。
  • 自己紹介
    • 自分の情報を開示することは警戒されるかもしれないので最低2点だけで大丈夫です。
      • HNの読み方
      • 好きなオープンソースのサービスとかツールとか、分析事例とか、過去のCTFのOSINT問題とか
      • +α OSINT問のここが好き、みたいなものがあれば)
  • 当日のCTFの取り組み方(作戦)

当日のCTFの取り組み方(作戦)

基本方針

  • チーム内目標
    • 楽しむ!
      • 勝ちにはこだわりたいですが、納得できる頑張り方ができればOKと思っているので、負けることは怖くありません。
  • CTFの取り組み方
    • 基本的に好きに解き進めてもらう
      • やさしい問題から順に解いてウォームアップ
        • ひっかかりそうならパスして解けそうな問題を探す
    • 難しい問題が残ってきた段階で、必然的に全員で叩く流れになると思います。
    • 適宜チャットで力を借りたりバトンタッチする。
        • 「写真が沖縄っぽいんですけど沖縄に詳しい方います?」
        • WordPressから情報引っこ抜くっぽいですが30分探しても見つからなくて泣いた」

情報共有手段

  • OneNote
    • 問題ごとにページを割り当てる
      • 空ページを10カテゴリx10ページくらい作ったのでタイトルを書き換えていただければと思います。
      • 始まった直後のカテゴリの位置を定位置として、OneNoteのカテゴリ部分を記載したいです
        • Dynamic形式のCTFということで、常にカテゴリとパネルの位置が動きまくることが予想されるため。
    • ページタイトルは”問題名”
      • 欲を言うと"問題名(難易度)"だと嬉しいです
    • メモるべき情報
      • 基本的に、なんでもあり
        • 見つけた情報、仮説など。
        • 例外として、生成aiとのチャット履歴はとても長くなるので別ページだとありがたい
      • 最低限
        • 問題文
          • 日英両方
        • サブミットしたフラグ correct / incorrect 問わず。
          • geo問はマップ、緯度経度が表示されたスクショを貼る運用にしたいと思います。
            • 座標のテキスト化は任意とします。AIに画像から文字起こしさせればよいです。
      • フラグゲットしたものは左横に✔を入れてもらえるとありがたいです
    • ページを汚すのがためらわれるならば、調査過程を個人ページに記載して、「こっちみてください <ページURL>」でもいいと思います。
      • メモ共有媒体はOneNote以外でもよいですが、リンクを知っている人以外が閲覧できないようになっているかをご注意ください(OpSec)
    • もしもページの競合が発生し重複ページができたら
      • コピー番号がついている方を「ゴミ箱」セクションに放り込んでください
    • 備考
      • デスクトップアプリ版の方が、問題をトグルできるので便利
        • ただし、MSアカウントが必要になると思うので、イニシャルなど知られたくない場合は一時的なアカウントを作る必要がある
      • ドラッグアンドドロップでノートの階層を移動できるようになっていました(右クリックでメニューからやる必要がなくなった)
  • Discordの位置付け
    • テキストチャットはボイスチャットの代理手段です
      • 後から上にスクロールして発言を見返す運用は大変なので、基本的に流れるものとします。
      • 残したいメモはOneNoteの方に記載をお願いします。
      • ボイスチャンネルのテキストチャット機能は、紛らわしくなるので、使いません
    • チーム内で同時に違うトピックの議論が進む場合
      • テキストチャット→スレッドを切る
      • ボイスチャット→一時的にサブチャンネルの方へ行く
  • 共有ドライブ(proton drive, onedrive)
    • ノートには貼り付けられないような容量のファイル(動画など)を共有するためにご利用ください
  • フラグフォーマッタ
  • やってもらえるとありがたいこと
    • フラグゲット報告 (士気アップにとても重要!)
    • 自分が解いている問題のページの先頭に、自分のアイコンを駒として置く。例↓
      • 口頭でいうよりも楽で、解く問題が被ってしまうことは少なくなるはず。
      • 各人のアイコンは 「基本情報 > アイコン」 ページに置いています。

出題される問題について

  • 難易度(2024年度): introduction, easy, medium, hard
    • 全完されないつもりで作っているとのこと
    • 2024年は上位チームでも枠に余裕があったことや、2位のチームは半日残して残りmapper 1問だけになっていたことを考えると、今年はeasy, medium, hardが1ランク上になる可能性がある。
  • ジャンル
    • Cyber Kill ChainのReconnaissanceとしてのOSINT、ジャーナリズム・ファクトチェックのためのOSINTなど、様々な面から実世界でのOSINTを意識した問題を出題する予定です - https://x.com/geo_vitya/status/1777282885399277746 より

  • 何問くらい出る?
    • 2024年: 35問
      • (DIVERチームは 量よりも質を重視しているように見えるため今年も同じ量か、それ以下になるのではないかと思っています
  • どんな質の問題が出る?
    • 2024年に参加した印象だと基本的には、お題を分析し、仮説などをもちながら、Web検索でソースを見つけていくものが多かった。
      • とはいえ公式write-upに書かれているような直線的な調査にはならず、ノイズ情報に引っかかりながらチーム総力を挙げてフラグを見つける形であった。
      • また、知識がなくても解けるというよりは、CTFの中で調査ドメインの勉強をしながら、調査していく感じ。
  • ルールより: “一部の画像などは競技上の理由により、競技時間中は出典が伏せられるものがあります”
    • → 手持ちの写真以外から写真問題を作るスキームの確立。
      • 日本国外の問題を増やせる
      • 公式writeupより
        • 可能な限り国際的にする(中略)次回以降はさらに「平等な言語バリア」の取り組みを加速できればと考えています。

  • ルールより: “本競技では、模擬的な偽情報を含む可能性があります。”
    • → ファクトチェック問題が出る可能性
  • 記述式問題(レポート)
    • 不明点を運営に問い合わせ
      • medium以下の難易度も解く必要がある? → No, mediumのみ
      • CTF開始時点で問題は閲覧できる? → No, medium全部解いたら出現
      • (pdfにまとめる形で渡したいのだが)回答フォームにテキストで書かないといけない? → No, チケット部屋でファイル提出など可能。

調査にあたってのtips

調査の基本的tips

  • 「妥当な手順や方向で調査をしているのに、ターゲットが見つからない」という例の状態 が起きたら
    • 調査は山あり谷ありラビットホールあり。それが普通だと捉える。
    • 自分の調査過程を言語化(可視化)し、調査の方向性を再検討する
      • どういうソースを見つけたいと思って、どのような検索ワードで、どのような検索結果だったか
        • 参考) Тамияс さん式検索クエリマネジメント 2
      • 可視化した結果からヌケモレの点がないかをセルフチェックしたり、AIと壁打ちしたり、チームメンバーと話してみる。
        • ブラウザタブを40個以上開いていたら、そのタイミングかもしれません。
        • 少なくともmeow_noisyはいつでも反応可能なのでお声がけください。
  • 生成AI の出力結果に気をつける。
    • LLMは確率的に言葉を生成している(事実に基づいているとは限らない)
    • 四則演算やbase64デコードなど、ロジックで処理できるものは、AIに任せないほうがいいです
      • 昔あった例
        • base64デコードで1文字異なることがありました。
        • 表形式の画像を与えて合計を計算させるというタスクでも計算ミスが起こりました
        • PDFなどのドキュメントを説明させることを依頼した時も、全く書かれていない内容を生成したこともあります。
          • 経験上ページ数が多いほどその傾向が強いと感じます。
        • 過去に観測した たちの悪いものとして、架空の出典をでっち上げるケースがありました。
    • 生成AI検索も、バックエンドで使う検索エンジンに縛られます
    • 生成物の検証は必ずお願いします。
      • トータルとして生成物の真偽検証プロセスは避けられず、調査の時間短縮を目指して生成AIに頼るのは逆効果になる可能性があります
  • 機械翻訳結果の解釈にも気をつける
    • 昔「unique」を「ユニーク」を「奇抜な」という意味で捉えてしまったために嵌まってしまいました…
  • 調査で頭が疲れてきたら
    • 散歩
    • 雑談
    • ミームづくり
    • …など。

運営への問い合わせ(ゴネ)のtips

  • 別解やフラグ設定ミスの可能性がある以上、ゴネはやるべき。ただし手順とマナーは守る。
  • ゴネには3つの要素が基本的に必要
    • 不正解だったフラグ、そのフラグをどう取得したか、そのフラグが題意を満たしていること
      • write-upを書くようなもの
  • まず挨拶でCTFを開催してくれたことに感謝と敬意を示しつつ、運営に3つの要素に提出し、「これは本当にincorrectなのでしょうか」と (気持ち下から) 確認をお願いする
    • 生成AIは使わないほうがいい。機械を使うと機械的に対応される。
      • 運営も人間。
  • 大体は「問題をよく見て」とあしらわれるが、ゴネが成功すると正解の部分的な断片が回答に含まれていたり、調査方針の正当性の担保ができたりする
    • 例: 曲名を当てる問題で
      • 私「グーグルの音楽検索って使ったりする? 私の国からだとそのサービス使えないんだけど」 → 運営「日本から解けることを確認した」
        • → グーグルの音楽検索 が キーになりそうと確信。
  • 最後、お礼を言ってチケットをクローズする

健康面tips

  • 健康
    • 休憩や睡眠
      • 各自がパフォーマンス出せるように取り組んでいただければと思います。
        • meow_noisyはトータル2hくらいは休憩、その他 00:00〜6:00仮眠予定です。
    • 1問も解けなくても気にしない!
      • 半分自分対する言葉ですが
      • 「探したけど情報が見つからなかった」という結果も調査においては価値があります。
      • 調査いただけることが最大の貢献です^^
  • 調査時のメンタルヘルス; 代理トラウマ(Vicarious Trauma) への対策
    • Diver運営が紹介したbellingcatの記事も良いのですが、Dutch Osint Guy氏の記事↓の方が箇条書きでまとまっていて見やすいと思います
      • Vicarious trauma & OSINT - A practical guide
      • 特に記事内の以下のことは大事だと思います
        • DO NOT ever act tough! Be human! Say when something is enough or has too much of an impact on you. It’s ok to show emotions when confronted with traumatic incidents.

        • [機械翻訳]決して強がってはいけません!人間らしく!もう十分だと思った時や、あまりにも衝撃が大きすぎる時は、はっきりと伝えましょう。トラウマ的な出来事に直面した時は、感情を表に出しても大丈夫です。
    • どのようなターゲットが出題されるかわからない以上、meow_noisyはコンテンツが調査者の精神に影響を与えるリスクを軽視していません。
      • 問題文や調査内容とCTF時の精神状態から 進む/離れる をご判断ください。
      • その結果 誰も手出ししなかった、は調査のプロセスの結果として受け入れます。

チーム内意思決定について

  • サブミット回数制限のない問題のサブミット
    • 不正解によるペナルティについて (”About Flag”ページより)
      • "全ての問題は、ブルートフォースを防ぐため、不正解によるペナルティが設定されています。誤った提出を行うたびに、その問題は 15 分間再提出ができなくなります。 ペナルティに関わる誤答は個人単位ではなく、チーム単位でカウントされることに注意してください。ただし、最初の 3 回まではペナルティが適用されません。"

    • → 3回incorrectすることは気にしていません。15分くらい、incorrectだった理由の調査や別の問題への切り替えでどうとでも過ごせます。
      • このペナルティは、プレイヤーのラフプレー(調査で見つけたものや、AIエージェントに見つけさせたものを、当てずっぽうでバンバン投げるプレイング)対策で設けられたものだと思っています。皆様はこのようなプレーはしないと思ってます。気になさらずsubmitしてください。
      • 5回ミスったら即終了のFrのコンテストに比べればこのペナルティは在って無いようなものです
      • (正直 1h 4回投げられるならば、24hで理論上95回投げられるので、総当たりも否定しません。)
  • サブミット回数制限のある問題のサブミット
    • 回数がズレる現象があるらしいので注意。 cf. “About Flag”ページより。
      • なお、試行回数制限と不正解によるペナルティは同時に適用されます。試行回数制限がある問題において、ペナルティによって Flag の送信ができなかった場合、解答可能な回数は減りません。しかし、CTFd の仕様上、Web ページ上では回数が 1 回減ったような表示になってしまいます(システム内では実際には減っていません)。気になる場合、再送信する前に Web ページをリロードするか、問題を開き直してください。

    • (大前提: 提出しようとするフラグのフォーマットがあっていることや空白スペースが含まれていないことを確認する)
    • サブミットの余裕 残り 5回以上 ならば
      • → 好きにサブミットしてもらう
    • サブミットの余裕 残り 4回 ならば
      • → 正解の確信度 8割くらいだったら 1人の判断でサブミット
    • サブミットの余裕 残り 3回 ならば
      • → 正解の候補について2人以上で吟味し、正解の確信度 8割くらいだったらサブミット
    • サブミットの余裕 残り 2回 ならば
      • → 正解の候補について4人以上で吟味し、正解の確信度 8割くらいだったらサブミット
    • サブミットの余裕 残り 1回(ラス1) ならば
      • → CTF終了直前までギリギリ調査して 正解の候補についてチーム全員で吟味した上で、天に祈ってサブミット
  • ポイント消費型のヒントが出たら の意思決定(皆様にもお伺い)
    • (多分出ない気がしますが)
    • どうする?3
      • 問答無用で開く
      • 絶対に開かない
      • 状況に応じて
        • ヒント開けたチームのうち正解できているチームの割合を見てから判断など
  • HEXA v3のようなファクトチェック問題※があったら
    • ※ 5つの記事内容を事実/虚偽 判断するもの。持ち弾は2発みたいな問題
    • メンバーで同時にチャット欄に A/F をスポイラーをつけて投稿し、多数決を行う。
      • 割れた部分を議論した上で、天に祈ってサブミット
      • イメージ

記述式問題

  • 架空のターゲットの 意図 を推測するみたいな感じ?
  • 方針: なるべく情報提示しながら詳しく書く
  • 文書構造
    • 先に結論
    • 組織
    • メンバー
      • SNSアカウント
      • 何をしようとしていたか
  • OneNoteのページをpdfに焼いて提出する
  • 進め方: まずは頑張って、medium完答する
    • その後、1時間コアタイムを設けて チームで話して 調査して ページに情報にまとめ 提出する。

皆様へのご依頼

  • ご依頼
    • ご自身のツールのメンテをお願いします
        • 調査用アカウントが凍結されていないかの確認
        • 調査ツールがまだ使えるかの確認
    • 体調に気をつける
      • 最近は気象は荒れやすく、寒暖差も激しいです

その他

  • 課金プレイのための予算
    • 15万円まで積み立てています
      • 生成AIサービスなど、有料サービスを契約されたい方は支給しますのでご連絡ください。
      • お金の力で解決できる所は惜しまないです。トップ・ギアを入れて参りましょう👊
  • 各人の都合を優先ください
    • 当日に身体の具合が悪くなったり、緊急を要することが起きるかもしれません。また、ご家族の事情などあると思います。遠慮なく抜けていただいて大丈夫です。
  • 当日meow_noisyは 11:30くらいにはボイスチャンネルにいます。

おまけ: 出題予想

xryuseixさんのCTF開催に"アホほどお金かか"ったという投稿を受けてどんな問題にお金を使ったかを予想。

結果はコチラ。大外れ。
(次回は是非5番の問題があるといいなと思い、OFUSEは少し多めにした。)


  1. 実戦ではkuzushikiさんのフラグフォーマッタをメインに使っていた
  2. チームメンバーの Тамияс さんが過去にまとめていた形式。画像ではターゲットの情報をダミーに差し替えている。
  3. 顔合わせで相談した結果、「問答無用で開く」に決まった。