PR 本記事には広告(Amazonアソシエイト・もしもアフィリエイト・A8.net等)が含まれます。掲載情報の正確性には努めていますが、商品の詳細は必ずリンク先で最新情報をご確認ください。
CTF・セキュリティ学習

【Recon統合運用編】偵察結果を攻撃計画に落とすASMの発想|CTF思考フレームワーク R06

かも次郎とアンペンが「Recon統合運用」を解説するマスコットイラスト
安全に生きたい編集部

こんにちは、アンペンです!偵察ルートR06はRecon統合運用編。R01〜R05で学んだ点の偵察(DNS・ポート・指紋・列挙・Dork)を、ASM(攻撃面管理)という『継続的な運用』として束ねる発想を扱います。1回やって終わりの偵察を、回し続ける仕組みに変える回です。

ここまでのR01〜R05は、いわば“その日その時の写真”を撮る技術でした。でも、組織のIT資産は写真のように静止していません。新しいサブドメインが立ち、古いサーバが放置され、誰かが勝手にSaaSを契約する——刻一刻と姿を変えていきます。だから『一度きちんと調べたから安心』は、残念ながら通用しないんです。今回は、その偵察を“撮りっぱなしの写真”から“回し続けるビデオ”に変える発想を見ていきましょう。

一回ちゃんと調べたら、それで安心じゃないの?

それが落とし穴。資産は増え続けて忘れられるんだ。野良サブドメイン、退役し忘れたサーバ…攻撃者は『組織が忘れた資産』を狙う。だから発見→棚卸し→監視を回し続けるのがASMだよ。

まず結論

ASM(Attack Surface Management/攻撃面管理)とは、組織の外部公開資産(ドメイン・サブドメイン・IP・ポート・証明書・クラウド・公開コード)を継続的に発見・棚卸し・監視・是正するプロセス。R01〜R05の単発手法をDiscover→Inventory→Prioritize→Monitor→Remediateのループに組み替える。狙われるのは決まって「組織が忘れた資産(シャドーIT・放置サブドメイン)」で、代表リスクがサブドメインテイクオーバー。受動中心のパイプライン例はsubfinder→dnsx→httpx→nuclei→notifyを定期実行。守る側の本質は『攻撃者より先に自社資産を見つけ、所有者を付け、要らない扉を閉じる』

この記事で分かること

  • 点の偵察を継続運用(ASM)に束ねる発想
  • ASMのループ(発見→棚卸し→優先度→監視→是正)
  • 攻撃面の構成要素とシャドーITの正体
  • サブドメインテイクオーバーの仕組みと検出
  • 守る側のインベントリ運用チェックリスト
難易度:中級 所要時間:12分 体験:自社資産の棚卸し おすすめ:R01〜R05の後

📖 はじめてのWebセキュリティR06|Recon統合運用編
単発の偵察をASM(攻撃面管理)の継続運用へ束ねる。 シリーズ一覧を見る →

⚠️ 大事なお約束
ASMのスキャンは自組織が所有・管理する資産、またはバグバウンティ等で明示的に許可されたスコープに限ります。他組織の資産への継続スキャンは不正アクセス・業務妨害になり得ます。本記事は防御運用の文脈で読んでください。

なぜ「点の偵察」では足りないのか

R01〜R05は、ある時点のスナップショットを撮る技術でした。しかし組織の資産は増改築され続けます。キャンペーン用に立てたサブドメイン、検証で作って消し忘れたサーバ、部署が勝手に契約したSaaS——こうした「情シスが把握していない資産=シャドーIT」が日々生まれ、そして忘れられます。攻撃者は正面ではなく、この忘れられた裏口を狙います。だから偵察は『1回の調査』ではなく『回し続ける運用』にする必要があるのです。

ここで出てくる『シャドーIT』、ちょっと不気味な言葉ですが、要は“情シスが把握していない野良の資産”のこと。たとえば、ある部署がキャンペーン用にサッと立てたサブドメイン。本人たちはイベントが終われば忘れますが、サーバは消されずに動き続ける。誰も見ていない・誰も更新しない——そんな“管理者のいない資産”こそ、攻撃者にとって最高の入口です。正門は固いので、彼らはこの“裏口”を探すんですね。

ここで覚える用語:攻撃面(Attack Surface)とシャドーIT
意味:攻撃面とは「外部から到達できる入口の総体」。シャドーITは情シスが把握していない野良資産(個人が立てたサーバ、放置サブドメイン)です。
例:marketing-old.example.comが昔のキャンペーン用に立てられ、放置されたままWordPress 4系で動いている、など。
使いどころ:攻撃面は「自分が思っているより常に広い」。ASMは『把握済みリスト』と『実在資産』の差分を埋める活動だと捉えると本質を外しません。

ASMのループ:5ステップ

  • ①Discover(発見):サブドメイン・IP・証明書・クラウド・公開コードを自動列挙
  • ②Inventory(棚卸し):見つけた資産を「所有者・用途・稼働状況」で台帳化
  • ③Prioritize(優先度):露出度×重要度でリスク順に並べる(放置WordPressは最優先)
  • ④Monitor(監視):差分を継続検知(新しい公開資産が増えたら即アラート)
  • ⑤Remediate(是正):不要資産を停止・DNS削除、必要資産は更新・認証強化

この5ステップ、難しく考えず“健康診断”だと思うと腑に落ちます。まず全身をスキャンして(発見)、何があるか記録し(棚卸し)、悪そうな所から手を付け(優先度)、定期的に再検査して(監視)、見つかった問題を治す(是正)。一度受けて終わりではなく、毎年繰り返すから意味がある。ASMも同じで、“回し続ける”ことそのものが本体なんです。

Discover・Inventory・Prioritize・Monitor・Remediateの5ステップを循環させるASMループ図
図1:発見→棚卸し→優先度→監視→是正を回し続ける

このループを定期ジョブ化するのがポイント。受動中心の定番パイプラインは subfinder(サブドメイン)→dnsx(解決)→httpx(生存&指紋)→nuclei(既知脆弱性テンプレ)→notify(Slack等へ通知)。1本のスクリプトにして毎日回せば、攻撃面の変化が自動で手元に届きます。

ここがASMの肝で、『人がやる』のをやめて『仕組みに回させる』のが理想です。さきほどのパイプラインを1本のスクリプトにして、毎晩自動で走らせる。すると、昨日まで無かったサブドメインが今日生えたら、翌朝にはSlackへ通知が届く。人間は忘れても、機械は忘れません。“気合いで定期的に見る”ではなく、“放っておいても差分が届く”状態を作るのが、続けるコツなんです。

🏭 たとえるなら、工場の「鍵と扉の管理台帳」

広い敷地の工場は、増改築を重ねるうちに「誰も使わない裏口」「増設プレハブの窓」「業者が付けた仮設ドア」がいつの間にか増えていきます。台帳を一度作っただけでは、半年後には実態とズレてしまう。だから定期的に敷地を一周し、『今ある扉を全部数え直し、要らない扉は塞ぐ』必要があります。泥棒が狙うのは厳重な正門ではなく、台帳から漏れた裏口。ASMはこの『扉の数え直しと封鎖』を、デジタル資産に対して回し続ける活動なのです。

工場の敷地を巡回して増えた扉を数え直し管理台帳を更新する警備員のたとえイラスト
図2:台帳から漏れた裏口が狙われる=ASM

ここで覚える用語:サブドメインテイクオーバー(Subdomain Takeover)
意味:DNSのCNAMEが外部サービス(S3/Heroku/GitHub Pages等)を指したまま、その向き先が解放され、第三者が同じ名前を確保して乗っ取る攻撃です。
例:shop.example.com → CNAME → myshop.herokuapp.com のHerokuアプリが削除済みのとき、攻撃者がmyshopを再取得するとshop.example.comが攻撃者の支配下に。
使いどころ:ASMでは「向き先が消えたCNAME」を継続検知して即削除。nucleiのテンプレやsubjackで自動検出できます。放置サブドメインの最も典型的な事故です。

CTFでやってみよう:自社資産の棚卸し

やってみよう / 自社資産・学習のみ

「把握済み」と「実在」の差分を自分で出してみる

自分が管理するドメインを起点に、ASMループを小さく一周します。各ステップに「なぜやるか」を添えました。

  1. ルートドメインからsubfinder/amassでサブドメイン列挙 → なぜ:把握済みリストとの差分を出す起点だから
  2. dnsxで生存解決、httpxで生きているWebと指紋を確認 → なぜ:動いている資産だけに絞るため
  3. 結果を「知ってた/知らなかった」に仕分け → なぜ:シャドーITを可視化するのが目的だから
  4. 各資産に所有者・用途・退役予定を付けて台帳化 → なぜ:「誰の何か」不明な資産が一番危険だから
  5. nucleiで既知脆弱性テンプレを当てる(自社のみ) → なぜ:放置資産の既知CVEを早期発見するため
  6. CNAMEの向き先が生きているか確認(テイクオーバー点検) → なぜ:消えた向き先は乗っ取りリスクだから
  7. 不要資産を停止+DNS削除、必要資産は監視対象へ → なぜ:攻撃面を能動的に縮小するため
  8. ここまでを定期ジョブ化し、差分をSlack等へ通知 → なぜ:1回では古くなる、継続こそ本質だから
スキャン対象は自社所有資産・許可スコープのみ。nuclei等の能動テンプレを他者資産へ向けないこと。

もうお気づきかもしれませんが、ASMは“攻撃の技術”ではなく“守りの運用”そのものです。攻撃者が偵察でやることを、こちらが先回りで・継続的にやり、見つけた穴を先に塞ぐ。つまり守る側にとってのASMは、『攻撃者より一歩早く、自分の地図を描き続ける』活動。次のチェックリストは、その運用を仕組みとして根づかせる勘どころです。

守る側:インベントリを生かし続ける

ASM運用チェックリスト
  • 資産インベントリの自動維持:手動台帳でなく自動Discovery+CMDB連携
  • 全公開資産に所有者を割当:オーナー不在資産を作らない
  • 退役プロセスの定義:サーバ停止時にDNSレコードも必ず削除(テイクオーバー防止)
  • テイクオーバー定期検出:CNAMEの向き先死活を監視
  • 継続スキャン+差分アラート:新規公開資産が増えたら即通知
  • TLS証明書の一元管理:crt.shで自社発行を監視し野良証明書を検知
  • クラウド/リポジトリ点検:バケット・公開リポジトリの設定を定期確認(R07/R09と接続)
  • 攻撃面の縮小をKPI化:公開ポート数・サブドメイン数の削減を指標に
資産インベントリ自動化・所有者割当・退役プロセス・テイクオーバー検出・継続スキャンの守り側チェックリスト図
図3:インベントリを生かし続ける守り側運用

偵察って、実は守る側の仕事でもあるんだね。

その通り。攻撃者の偵察を先回りでやり続けるのがASM。次はR07、GitHub偵察。コミット履歴に眠るシークレットを掘り出す話で、ここがシャドーITの宝庫なんだ。

まとめ:『回し続ける偵察』がASM

今回のポイント
  • 点の偵察を発見→棚卸し→優先度→監視→是正のループに束ねる
  • 攻撃者が狙うのは忘れられた資産(シャドーIT)
  • 代表リスクはサブドメインテイクオーバー(消えたCNAME)
  • 定番パイプラインはsubfinder→dnsx→httpx→nuclei→notify
  • 守りは所有者割当・退役プロセス・継続監視・攻撃面の縮小

今日の持ち帰りは『偵察は“イベント”ではなく“習慣”』。1回完璧に調べても、半年後には資産が増えてズレてしまう。だから、攻撃者と同じ目で自社を“毎日”見続ける仕組みを作る。そして見つけた資産には必ず“持ち主”を付ける——持ち主のいない資産が、いちばん危ないからです。

次はR07、GitHub偵察編。継続運用で見つけた資産の『中身』、つまりコードに眠るシークレットへ踏み込みます。

次に読みたい記事

参考資料

記事URLをコピーしました