Upgrade to Pro — share decks privately, control downloads, hide ads and more …

スパイ養成CTF!? AVTokyo 2022の『Open xINT CTF』に参加した!

meow
December 03, 2022

スパイ養成CTF!? AVTokyo 2022の『Open xINT CTF』に参加した!

2022/11/29(火) に 第25回 初心者のためのセキュリティ勉強会 で発表したスライドです。
https://sfb.connpass.com/event/265356

※表紙の画像はStable Diffusionに"two Japanese men and a Dachshund are studying."というテキストを入力して生成させた画像を加工したものです。

■ リンク
・Open xINT CTF 2022(サーバーダウンする前にどうぞ。)
http://openxintctf.pinja.xyz:2022/
・チーム名の由来となった「ナゾトキCTF」(今年中にどうぞ。)
https://nomizone.booth.pm/items/4067620

■ スライド内で紹介した開発物
・Googleマップの位置座標を整形くん(アルファリリース)
https://meow-noisy.github.io/google_map_gps_formatter/
・地理的位置に基づく店舗名の(エセ)AND検索
https://meow-memow.hatenablog.com/entry/2022/05/01/214751
・2022年度Open xINT CTF チーム順位別正解状況を可視化したもの
https://github.com/meow-noisy/xintctf_data/blob/main/2022/raw/result.csv

■ Open xINT CTF 参加報告記 バックナンバー
・2021年度
https://speakerdeck.com/meow_noisy/xintctf2021
・2020年度
https://speakerdeck.com/meow_noisy/xintctf2020
・2019年度
https://speakerdeck.com/meow_noisy/xintctf2019

meow

December 03, 2022
Tweet

More Decks by meow

Other Decks in Technology

Transcript

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  7. 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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  10. [備考]: 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刻みになった

    View full-size slide

  11. [備考]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さんのバズツイートの追い⾵があったが
    今年も増えるのは(いい意味で)意外だった。

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  14. チーム『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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  22. 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コマンドでドメインを調べるだけだったのだが、今年は傾向が変化したので若⼲焦った

    View full-size slide

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

    View full-size slide

  24. spacious(100pt, 56 Solves) SOLVED

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  27. BUS(200pt, 24 Solves) UNSOLVED

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  38. CTFの振り返り

    View full-size slide

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



    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  46. おわりに

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  49. 次回の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

    View full-size slide

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

    View full-size slide

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

    View full-size slide