CTF OSINT 問題設計の留意事項

目次
はじめに
DIVER OSINT CTF 公式 Writeup が問題設計回りについて割と踏み込んだ内容まで開示していたのを見て、「そういえばCTFにおけるOSINTカテゴリを作る方の話って基本的に xryuseixさんが公開したものくらいしか他にないよな」と思ったので、事例増やしのために、私が過去に Open xINT CTF 2023 作問に携わっていた時の経験をもとに留意事項という形で共有する。
ほとんどはDIVER OSINT CTFの思想に類似しているが、それは実在の人物や組織をターゲットにしたコンテストとして問題の質を追求しようとすると留意する事項が似通うのだと思う。
なお、文中で、"mural"、"cosplayer"、"fireworks"といっているものは私が Open xINT CTF 2023で作問した問題の名前である。
オープンソースを扱うという性質について
オープンソースはコントロールできない
- 作問時から時間が立つと難易度が大きく変わる
- CTF中に調査するサービスがダウンしたり、ページが非公開になり解答不可能になる可能性がある
- 自分が過去に遭遇した事例としては、crt.sh が繋がりにくかったり、 wayback machineがダウンするなどがあったので、CTF中は肝を冷やしていた。また、過去のCTFで実在の人物の調査をする問題があったのだが、CTF中にそのターゲットのSNSアカウントが非公開になったこともある。
- これらは起きるものとして作問しなければならない。*2
オープンソースにはダイナミズムがあるため、作った問題には鮮度があることは留意した方が良い。
問題設計に即したターゲットがいない、あるいは選べない
- 私が作問する手順は基本的にラック社さん(のst98さん)の記事「CTFの問題を作ろう」と同様、私生活で収集したネタに基づいて問題を設計しようとするのだが、OSINTカテゴリ特有の事情として、その設計した問題に即したターゲットが現実空間上にいない場合が多い。
- 例えば、「EPIEOSとwayback machineを使った調査スキルを試す」という問題を作ろうとしても、web上に自分のメールアドレスを公開し、かつ、そのメールアドレスからwebサービスを運営していることがわかり、webサービスのアーカイブに興味深い情報が載っているようなアカウントはまず見つからない。
- また、調査上の倫理の項目でも述べるが、倫理的観点からターゲットとして選んではいけないことも多い。
- 例えば、「EPIEOSとwayback machineを使った調査スキルを試す」という問題を作ろうとしても、web上に自分のメールアドレスを公開し、かつ、そのメールアドレスからwebサービスを運営していることがわかり、webサービスのアーカイブに興味深い情報が載っているようなアカウントはまず見つからない。
- 自分で問題用のアカウントを作ることも検討したが、ノイズが少なすぎて、難易度が低めの問題にしかならなかった。
- プレイヤーから見ると、当たり障りのない投稿の中に一個だけ意味深な内容があって、すぐに調査のアタリがついてしまう。
- これでは、ただ単純にSNSを調査するステップを増やしただけで、無意味な調査な感を与えてしまうので良くない。
- プレイヤーから見ると、当たり障りのない投稿の中に一個だけ意味深な内容があって、すぐに調査のアタリがついてしまう。
個人的には、OSINTカテゴリ作問において、適切なターゲット探しが一番難しいポイントだと思う。
調査時の安全性について
物理的な安全性
- 危険なソースにアクセスしないように気を払う。
- “mural”の話をする。OSINTカテゴリでは、ストリートアートのgeolocation問題を見かけることが多い。これは場所が伏せられてSNSで公開されていることが多いので問題として使いやすいためであるが、私は断念した。
- とはいえ、これは参加者がどういう層なのかによる。
- recon village ctfでは、問題文でなんの警告もなく、pornhubにリダイレクトするURLがお題として出たこともあった。
メンタル面での安全性への配慮
- ネガティブなトピック(戦争、災害など)を扱うことは悪くないのだが、慎重さが求められるため、私はなるべく避けるようにしていた。
- 私の作問ストックにもそういうものはあったのだが、うっかり"beheading"(「斬首」の意味)というキーワードで調べてしまう可能性があることが発覚し、さすがに度が過ぎていると判断しボツにした。
- nsfw関係への配慮
- "cosplayer"作問の話。オタクカルチャーから出題しようと決めて作問しようとしたのはいいのだが、いともたやすくお色気コンテンツにリーチするので、題材の選定にはとても気を払った。
- 特にAVTokyo現地会場は照明が暗く、PC画面が傍から丸見えだったことを考えると、現地参加組が不利になる可能性があったため、この判断は正しかったと思う。
- "cosplayer"作問の話。オタクカルチャーから出題しようと決めて作問しようとしたのはいいのだが、いともたやすくお色気コンテンツにリーチするので、題材の選定にはとても気を払った。
調査上の倫理について
- 調査によってターゲットを貶めないこと
- 機微情報漏洩はテーマになりやすいが、実在の人物や組織のターゲット選定にあたっては気をつけなければならないポイントである。
競技としての公平性について
- 日本語圏以外のプレイヤーでも解答可能で、過剰に不利にならないようにする
- xINT CTF(というよりもAVTokyo)はグローバルな国内イベントなので、日本の文化的背景を持ってないと調査方針が立てられない、のようなことにならないように気をつけた。
- 自分が過去に内輪で出した問題を使い回さない
- 私の過去問を知っているプレイヤーがいるとは思えなかったが、念には念を入れて新規で作った。
問題の質の確保について
調査方法の妥当性
- 実際に調査する方法や、考え方で答えにたどり着けるか。
フラグの妥当性
- 問題に対する正解を決める際に、正解の妥当性を調べる必要がある
- これがないと、問題の題意を満たす別解がいくつもでてきてしまう
- 必要十分かの裏取りは大変だが、ファクトチェックの練習になるのでやったほうがよい。
- これがないと、問題の題意を満たす別解がいくつもでてきてしまう
調査する意味を持たせる
- "問題のための問題"になっていないか。調査活動が無価値でないか。
- いくら複数の調査技能を試験したいからといって、例えば問題文を「ターゲットの投稿のアーカイブから、何月何日に食べた料理店のオーナーのパートナーの母親の旧姓」のようにごった混ぜにしたものは調査の目的がなく徒労感しかない。
- 問題文がシンプルか。出題意図を読まれないか。
- 上記のごった混ぜにしたような問題をpinjaに提出した時にいただいたコメント。確かにすぐに調査方針がわかってしまうと、難易度がぬるくなってしまう。
CTFカラーの保持
- 私が作問したことでxINT CTFのブランドが落ちないように、「xINTっぽい」問題になるように気を払った
- xINTっぽさ、について私は下記の要素があると考える。
- 現実の人物・組織がターゲットとなることが多い。
- 誰でも何も準備せずに当日参加できる
- 面白いのでリピート参加したくなる
- 「面白さ」についてもう少し言語化を行う
- ぶっつけ本番でも成功体験が得られる
- CTFを通して公開情報調査の学びがある
- 解法の意外性
- 「自分が普段見かけるこの情報から、こんなことがわかるの!?」という体験がある。
- 私は xINT CTF 2020の SUN の解法(chronolocation)に大変感銘を受けてOSINT CTFを本格的にやっていこうと思ったこともあり、この要素が含まれるように"fireworks"は作ったつもりである。
- 「自分が普段見かけるこの情報から、こんなことがわかるの!?」という体験がある。
- xINTっぽさ、について私は下記の要素があると考える。
その他の要素
- 問題の題材探し
- 作問者メタ推理への対策
おわりに
以上、CTFのOSINTカテゴリ作問の留意事項を、私の経験をもとに書き出した。
2ヶ月くらい必死で新規作問をしていたが、上記のような項目をなるべく満たそうとすると、出せるターゲットが絞られるし、いい問題になかなかならず、精神的にきつかった記憶がある。
とはいえ作問側だったからこそ、CTFだと候補全部サブミットしてごまかすような場面で、様々な情報源をもとに丁寧に絞り込むことは勉強になった。また、xINT CTFの参加者の感想で、「面白かった」、「またやりたい」という声も見受けられ、すごく嬉しかったし、個人的にやりきってよかったと思える終わり方をしたと思う。
作問側は大変だけど、質を追求するとその分良いこともあるということは言いたい。