Slide 1

Slide 1 text

スパイ養成CTF!? AVTokyo 2022の 『Open xINT CTF』に参加した! 第25回 初⼼者のためのセキュリティ勉強会 meow ( @meow_noisy) 2022/11/29(⽕)

Slide 2

Slide 2 text

発表概要 u 2022年度のAVTokyoの Open xINT CTFに ところてんさん、のみぞうさん とチームで参加 u この発表では参加報告という形 でCTFの説明、事前準備、解いた 問題の紹介、ふりかえりをする

Slide 3

Slide 3 text

おしながき u はじめに u AVTokyo、Open xINT CTFについて u 2022年度のOpen xINT CTFに向けた準備について u チーム結成、⾃分⾃⾝の準備 u CTFで挑んだ問題(私の担当分)について紹介 u CTFのふりかえり u おわりに 私の発表後もチームメンバーによる参加報告が続きます!(※勉強会当⽇限定)

Slide 4

Slide 4 text

はじめに AVTokyo、Open xINT CTFについて

Slide 5

Slide 5 text

について https://www.avtokyo.org/TOP https://twitter.com/awamori_tt/status/789360354631360512?s=20 参考: AVTokyoのAVとは

Slide 6

Slide 6 text

2022年のAVTokyoはハイブリッド開催 u 2⽇間の開催(1⽇⽬オンライン、2⽇⽬オフライン) u オフラインは3年越しの復活 u 従来どおり地下のバーで開催 u 現地参加されていた⽅が上げた画像を⾒る限り、⼈数も戻った印象 これは2019年の光景だが、2022年も マスクをしている以外はだいたいこのような密度 オンラインはDiscordとTwitch

Slide 7

Slide 7 text

Open xINT CTFとは u AVTokyoのイベントの1つ u さまざまなインテリジェンス(x INT)によってフラグを得る ”現代のスパイ養成コンテスト” u 2016年より毎年AVTokyoにて開催 u 2022年はオンライン開催、チーム戦、OSINT問題限定の出題 u 運営チームはpinja(lumin、ykame、awamori) u 国内最強、世界的にもトップクラスのOSINT CTFチーム u そのようなチームが作問するOSINT CTF

Slide 8

Slide 8 text

インテリジェンス、OSINTとは 情報A 情報B ⼊⼿した情報 情報X ⼊⼿していない情報 情報C 情報統合 情報分析 情報C1 情報C2 情報D こんな情報があるはず(仮説) 情報E ・・・ 情報の価値 u インテリジェンス: 複数の情報を分析・統合・仮説の検証などを経て、 より利⽤価値のある情報に昇華させる⾏為を指す u OSINT: オープンソースの情報(公開情報)に基づきインテリジェンスを⾏うこと 情報を元に最終的な 意思決定へ 例) 情報ZからプランPを実施 するのがよい Security Days 2021「OSINT:ハッカーから⾒えるインターネットの世界」 の講演内容を元に作成

Slide 9

Slide 9 text

CTFにおけるOSINTカテゴリの問題に関して u お題から分析できる情報と公開情報、個⼈の仮説を組み合わせることで、フラグを 導き出す形式の問題 u やることは基本Web検索というシンプルさに対し、プレイヤーの情報分析⼒や仮説構築⼒ という知的要素で順位が決まるというのがこのカテゴリの⾯⽩いところ お題の写真 情報統合 情報分析と公開情報調査 徳島駅のJRの ダイヤを⾒れば、電⾞ 3つが並んでいる時刻 がわかるのでは..! 情報の価値 フラグ 15:23 問題例. お題の写真に写る⼿前の電⾞の発⾞時刻を求めよ TsukuCTF 2022より Q.この場所はどこ? → 画像で検索 → ブログがヒット。徳島駅 のプラットホームとわかる。 Q. ⼿前の電⾞は何? → ⾞体の”jr 2602”で検索 → JR四国 2602(うずしお) Q. 写真はどういう状況? → ⽇中で、複数の電⾞が待機。 仮説構築 ⽇中に JR徳島駅が運営する 線路3つ全てに電⾞が 停まっている写真 JR公式の徳島駅ダイヤを参照 →電⾞が3つ並ぶ時刻が存在

Slide 10

Slide 10 text

[備考]: xINT CTFの2021年度からの変更点 u 開催時間が3分の2に減少 u 9時間 → 6時間(-3時間) u 問題数も減少 u 22問→ 17問 u しかし、1時間あたりに解かなければいけない問題数は上昇 u 2.44 → 2.83(問/時間) u 軽微な変更 u 禁⽌事項に微修正 u CTFサーバのURLが⽣IPアドレスからドメインになった u 配点が50point刻みから100point刻みになった

Slide 11

Slide 11 text

[備考]2020年以降(オンライン開催)のCTF 参加者統計の変遷 開催年(情報源) ユーザ数 チーム数 1チーム辺りの ユーザ数 2020(pinja報告) 165 152 1.09 2021(pinja報告) 221 168 1.32 2022(こちらで集計) 241 179 1.35 u 2022年も参加者数および、チームを組む割合が上昇した u 2021年はluminさんのバズツイートの追い⾵があったが 今年も増えるのは(いい意味で)意外だった。

Slide 12

Slide 12 text

2022年度のOpen xINT CTFに向けた 準備について チーム結成、⾃分⾃⾝の準備

Slide 13

Slide 13 text

チーム結成にあたって u OSINT問題限定のCTFにおいてメンバーは重要なファクター u 数が多いほど有利 u メンバーに多様性があるほど有利 u その辺りを考慮しつつ、お祭り気分でワイワイやりたかった ので私がお誘いのDMを送った

Slide 14

Slide 14 text

チーム『stardust_security』メンバー紹介 u ところてん(@tokoroten0813)さん u セキュリティ業界12年⽬ u CISA / CISM / CDPSE / GCP PCA u のみぞう(@nomizooone)さん u “セキュリティが好きなただの⽝” u ナゾトキCTF開催(右図)、Hardening競技会参加、 技術書執筆など多岐に渡る活動 u 私(@meow_noisy) u ただのOSINT CTF好き u チーム名はナゾトキCTFに出てくる 架空の会社名から拝借(承諾済み) https://nomizone.booth.pm/items/4067620

Slide 15

Slide 15 text

チーム結成後のブリーフィング u チーム⽬標設定 u 次の3つ。達成ハードルをできる限り下げる。 u チーム運営ルール u ほぼ存在しないようなもの u 使⽤するツールなどの準備は依頼しなかった u 個⼈のやりやすい調べ⽅で進めた⽅が調査の多様性が上がると 思ったので

Slide 16

Slide 16 text

チームの協⼒体制について u リアルタイムの情報連携にはDiscordでボイスチャット u 調査内容の進捗共有にはGoogleスライドを使⽤ u 調べて⾒つかったサイトや画像などをスライドに書く 「3month」 の調査スライドの例

Slide 17

Slide 17 text

⾃分⾃⾝の準備 u 2022年度のOpen xINT CTFを念頭に置きつつ、1⽇1問 OSINTの問題を解くようにしていた u 実技で錆がつかないようにするため。 u その他、OSINT記事で勉強しインプット、 独⾃の技術開発と勉強会発表でアウトプットを続ける 勉強会発表スライド https://speakerdeck.com/meow_noisy 2021/11〜2022/10までに 参加したCTFリスト

Slide 18

Slide 18 text

xINT CTF⽤の秘密兵器(もといゴミアプリ) の開発: 『 Googleマップの位置座標を整形くん 』 u 位置座標を求める問題で毎回 GoogleマップのURLから座標をフ ラグ形式へ加⼯する作業がストレス😣 u → GoogleマップのURLを⼊⼒するとフラグ形式に整形して コピペできる状態にするWebアプリを開発 u アプリへのリンクはスライドの概要欄に記載 URLを⼊れて ボタンを押すだけ

Slide 19

Slide 19 text

CTF開催 前⽇の調査 u Open xINT CTF関係のソースを物⾊ u 公式HP u ツイッターアカウント@MoriSho17795702 u pinja.xyz のWHOISレコード u 結果としては、スタートダッシュで出し抜けるような アドバンテージは得られなかった CTF前⽇にWHOISレコードにアップデートが あったが出題された問題とは関係なかった。。。

Slide 20

Slide 20 text

Open xINT CTFで ⾃分が挑んだ問題について 解けた問題、解けなかった問題

Slide 21

Slide 21 text

私のCTFの解答状況 u 6問正解し900点 u うち1問はキルパクも同然だったので実質600点 u 以降では解けた問題3問と解けなかった問題2問(BUS,BUS2)を 紹介する ←キルパク分

Slide 22

Slide 22 text

whois(100pt, 106 Solves) u Google検索で ip to asn で検索すると下記のサービスがヒット u https://hackertarget.com/as-ip-lookup/ u 当該のIPアドレスを⼊⼒するとフラグ u AS番号の調査がOSINT上どのような意味を持つのかは kawakatz本 第4章に詳しい説明がある SOLVED 例年whoisコマンドでドメインを調べるだけだったのだが、今年は傾向が変化したので若⼲焦った

Slide 23

Slide 23 text

SSID(100pt, 39 Solves) u OSINTの問題で”SSID”とくれば初⼿WiGLE u https://wigle.net/ u ただし、検索機能を使うにはユーザアカウント作成が必須 SOLVED ykameと⼊⼒して検索する と1件レコードがヒット

Slide 24

Slide 24 text

spacious(100pt, 56 Solves) SOLVED

Slide 25

Slide 25 text

spacious(100pt, 56 Solves) u 看板を拡⼤ u ⽂字の断⽚をGoogleに打つと サジェストで会社名がわかる SOLVED

Slide 26

Slide 26 text

spacious(100pt, 56 Solves) u 「トヨタモビリティパーツ」でGoogleマップを検索 u 店舗候補がたくさんでてくる u 衛星写真で、店舗近くに公園のようなものがあるかをチェック u 東京で公園らしきものが近くにある店舗を発⾒ u 3Dマップで⾒ると右に”AB”という看板もあるので確定 u フラグはこれでした SOLVED

Slide 27

Slide 27 text

BUS(200pt, 24 Solves) UNSOLVED

Slide 28

Slide 28 text

BUS(200pt, 24 Solves) u 写真の分析 u レンタカーのシャトルバスだということはわかる u 空港 と NR… とを⾏き来している模様 u HND⇔NRT間かと思ったけど、 レンタカー会社が空港を⾏き来する バスを⽤意する訳がないですね… u 窓にセブンイレブンのロゴが反射 u 地⾯にペイント u 「レンタカー」? UNSOLVED

Slide 29

Slide 29 text

BUS(200pt, 24 Solves) u のみぞうさんがバスの候補を絞ってくださる u 旭川空港⽤のシャトルバスがそれっぽい u しかし、旭川空港のセブンイレブンは 空港内であり、Googleストリートビューを ⾒てもセブンイレブンの看板はなかったので 旭川空港ではないと判断 u レンタカーとセブンイレブンが近い場所を 探す必要がある UNSOLVED

Slide 30

Slide 30 text

秘密?兵器: 地理的位置に基づく店舗名の(エセ)AND検索 u 「店舗名2つを指定すると距離の近い店舗ペアを列挙す る」スクリプトを開発していた u https://meow-memow.hatenablog.com/entry/2022/05/01/214751 u 左下の写真の場所を特定しようとしてスタバとFrancFranc の200m以内で近接する店舗ペアを列挙した例(右下)

Slide 31

Slide 31 text

秘密?兵器: 地理的位置に基づく店舗名の(エセ)AND検索 u ニッポンレンタカーとセブンイレブンで試した u セブンイレブンがあまりにも多く、30分くらい処理がかかった u 207ペアヒットしたが空港関係の店舗は北九州空港のみだった u 北九州空港のニッポンレンタカーを調べたがバスの種類が違う u → 詰んだ https://tabiraku.travel/rentacar/fukuoka/airport- kitakyushu/

Slide 32

Slide 32 text

BUS(200pt, 24 Solves) u CTF終了後に解き直し u 結局バスの候補が旭川空港のものしか⾒つからなかったので 旭川空港をうろつく u →旭川空港の外れに床がお題のフォントで塗られた場所を発⾒した u ニッポンレンタカーの駐⾞場ではないので店舗名の(エセ)AND検索で ヒットしないのも納得 u セブンイレブンの看板に引っ張られてしまい、旭川空港の 調査がおざなりになってしまったのが敗因 UNSOLVED

Slide 33

Slide 33 text

BUS2 (200pt, 32 Solves) UNSOLVED Q. このバスの位置を求めよ。解答フォーマットは座標

Slide 34

Slide 34 text

BUS2 (200pt, 32 Solves) u 写真の分析 u バス: ファミリーxx、ナンバープレート「4-72」 u ⻘い看板: 25、「xx江xx」 u ⽩い看板: 路肩駐⾞禁⽌ u センターラインがない UNSOLVED

Slide 35

Slide 35 text

BUS2 (200pt, 32 Solves) u 「県道の標識では」というアシストがのみぞうさんから⼊る u 43県を北から県道25号の標識を ブルートフォースしようとした所、 1発(岩⼿県)で当該の標識がヒット u 影のさす⽅向から北がわかる u 「あとは県道のうち、⻄から東へ⽔平に伸びる所に 絞って探せばOKだお!」と考えていた UNSOLVED 北側 !" #$" %&'()*+,-./0$1

Slide 36

Slide 36 text

BUS2 (200pt, 32 Solves) u ガッツリ⻄から東へ⽔平に 58.3km伸びている u ⽅⾓が⼿がかりにならない… u 県道もこんなに⻑いと思わなかった u → しらみ潰ししようとしたら 時間切れ UNSOLVED 58.3km

Slide 37

Slide 37 text

BUS2 (200pt, 32 Solves) u CTF終了後に解き直し u 「道端に脇道にそれる部分があることから停⾞できる場所があるの では」と考えた u 岩⼿県道25号のうち、Googleマップでスポットとして登録されて いる箇所を1つ1つ調べてみた u 撮影場所がすぐに⾒つかった UNSOLVED

Slide 38

Slide 38 text

CTFの振り返り

Slide 39

Slide 39 text

最終順位 u チーム27位だった u ワイワイやれて、チームで1問以上解いて、病気になった⼈も 出なかったのでチーム⽬標は達成 u ⼀⽅、⾃分の(密かな)個⼈⽬標としていた「撮影場所の特定問題 の全完」には失敗 u 特にバス問が解けなかったのは痛い ✅ ✅ ✅

Slide 40

Slide 40 text

[備考] 順位別正解状況の可視化 我々のチーム この統計データのフルverへのリンクは スライドの概要欄に記載

Slide 41

Slide 41 text

[備考] 順位別正解状況の可視化 バス問、nice view を解けなかった ことで差が開いて しまった この統計データのフルverへのリンクは スライドの概要欄に記載

Slide 42

Slide 42 text

バス問を解けなかった理由 u ⾃分の1年の技術研鑽の⽅向がミスマッチ u ⾃分の撮影場所の特定は「画像で検索」を 主軸にした⽅向で勉強していた u ⼀⽅で今年は「画像で検索」が使えるケースが少なかった u 私が勉強で解いていた問題は易しい難易度のものを 選り好みしていた可能性がある u 錆落とし != 刃を研ぐ https://twitter.com/lumin/status/1585546682355576832

Slide 43

Slide 43 text

その他の反省点 u Googleスライドの運⽤は改善の余地がある u 全体的に⽂字サイズが⼤きくURLを貼るとスライドを埋め尽くして しまう(右下) u URL短縮を使うなどすべきだった u xINT CTFは問題数が多く、他のメンバーが残してくれた調査結果 を⾒逃してしまった u (ここらへんのスライド運⽤の課題はReconVillage CTFの時は露呈 しなかった) u 38時間あり、問題数も少なかったため

Slide 44

Slide 44 text

2022年度のxINT CTFの感想 u 難しくなってる(気がする) u しかし、解いていて⾯⽩かった u 知識量ではなく思考⼒で差がつくように設計されていて質もいい u 参加者のレベルがどんどん⾼くなっている u 新規勢も常連勢もどちらも。 u write-upが充実 u 事後解答とはいえ、全問のwrite-upが揃ったのは今年が初めて u Open xINT CTFは⽇本勢の問題の解き⽅、チームワークが知れる滅多 に無い機会 u ⾒ていて⼤変勉強になる u CTF終了後の運営の講評タイムが1時間超えで満⾜

Slide 45

Slide 45 text

今後の私の技術研鑽に関して u 勉強の仕⽅は変えるが、xINT CTF1位を⽬指して勉強を 継続していくことは変わらない u まともにインテリジェンスができるようになるまであと8年かかる ⾒込みだが、細く⻑くやっていきたい

Slide 46

Slide 46 text

おわりに

Slide 47

Slide 47 text

謝辞[1/2] u CTFを開催してくださったpinjaへの感謝 u 毎年の企画・作問・運営、本当にありがとうございます! u 参加者の技術レベルが年々上がる中で、解きごたえのある⾯⽩い 問題を出していただき、1年で1番の楽しみとなっています

Slide 48

Slide 48 text

謝辞[2/2] u チームメンバー(ところてんさん、のみぞうさん)への感謝 u ⼀緒に遊んでいただきありがとうございました! u こちらからの誘いを快諾いただき嬉しかったです

Slide 49

Slide 49 text

次回のOpen xINT CTFについて u OSINT問限定は今年までと明⾔ u オンサイト開催でSIGINT, HUMINT問 が復活か? u 問題の難易度はまだ上げられる模様 u 逆に⾔えば今まで⼿加減されていた ということ u どんな難問が今後出てくるか楽しみ! https://twitter.com/YuhoKameda/status/1586545803191255040 https://www.avtokyo.org/avtokyo2022/day1-events#h.le6ozvjjes26

Slide 50

Slide 50 text

まとめ u 2022年度のOpen xINT CTFの内容、私の取り組み について説明した u 次回のOpen xINT CTFを⾒据えてこれからもOSINTの 勉強を継続していく u OSINT CTFは楽しい!

Slide 51

Slide 51 text

ご清聴ありがとうございました @meow_noisy To be continued… ?