
技術的観点から見た最初の24時間:攻撃者がいかに素早く新たに公開されたアセットを列挙し、狙うのか
著者:Topher Lyons – Sprocket Security
新しいアセットがパブリックIPアドレスを取得した瞬間、時計が動き始める。ゆっくりとしたものではない。容赦ない自動化されたものだ。「今ライブになった」から「今積極的に調査されている」までは、日ではなく分の単位である。
これは理論ではない。ASM Community Editionの助けを借りて、Sprocket Securityは顧客環境全体を通じて継続的にこれを目撃しており、これはまさに攻撃者が頼りにしていることだ:チームがあるものが公開されていることに気付くまでには、すでに手遅れになっているということだ。
最初の24時間:技術的なタイムライン
T+0:アセットがライブになる。
開発者が新しいクラウドインスタンスをデプロイする。設定ミスのファイアウォールルールがポートを開く。ベンダーポータルが誰も把握していなかったサブドメインで起動する。原因が何であれ、新しくインターネット経由でアクセス可能なエンドポイントが存在するようになり、セキュリティは通知を受け取らない。
T+5~T+60分:スキャナーがそれを発見する。
自動化されたスキャンインフラストラクチャがパブリックインターネット全体を継続的に掃引する。Shodan、Censys、ShadowServerなどはローリングベースで新しいホストをインデックスしている(Censysだけで数万ポート以上をカバー)。
1時間以内に、あなたのアセットは開いているポートがカタログ化され、バナー情報が取得され(Webサーババージョン、TLS証明書、SSHフィンガープリント)、応答シグネチャが既知の脆弱性データベースと比較される。
T+1~T+6時間:列挙が始まる。
この時点で、あなたのアセットはShodanおよびCensysクエリに表示される。自動化された攻撃ツールが独自の偵察を開始する:サービスバージョンを探し、開いている管理ポート(RDP 3389、SSH 22、8080/8443のadmin panels)を探し、TLS証明書をピボットさせて関連するドメインとサブドメインを特定する。
新しいアセットに証明書がある場合、攻撃者は、あなたが監視しているものに触れることなく、より広いインフラストラクチャについて多くを学ぶことができる。
T+6~T+12時間:アクティブなプローブ。
パッシブな検出がアクティブなターゲティングに変わる。GreyNoiseデータは、このウィンドウでスキャナアクティビティが急増することを示している。SSHおよびRDPに対する認証情報スタッフィングが始まる。Webサービスはディレクトリブルートフォースで攻撃され始める。ElasticsearchやRedisなどのデータベースは認証なしのアクセスについてプローブされる。フレームワークは既知のCVEに対してテストされる。
これらはすべて人間が開始する必要がない。ボットネットが24時間体制でこれを大規模に処理する。
T+12~T+24時間:侵害。
Unit 42の研究者がクラウドプロバイダー全体に320個のハニーポット(RDP、SSH、SMB、Postgres)を展開して何が起こるかを調査した。80%は24時間以内に侵害された。
搾取可能な脆弱性、設定ミス、またはデフォルト認証情報を使用して実行されているものについては、「今ライブになった」から「既に侵害されている」に至るまでにこれらがすべて必要である。
実世界の例:誰もが存在を知らない隠されたAPI
上記のタイムラインは、あなたが何が公開されているかを知っていることを前提としている。最も危険な露出のいくつかは、あなた自身のチームが公開されていることを知らないアセットであり、それらを見つけるためのパスは、攻撃者が使用するものとまったく同じである。
最近の発見で、ASMは公開ロジスティクスウェブアプリにフラグを付け、URL列挙の一部として、ブラウザに提供されているコンパイル済みJavaScriptバンドルをダウンロードして分析した。
そのJSファイルに埋め込まれていたのはバックエンドAPIへのリファレンスである。アセットインベントリーには含まれていない。誰も明示的に公開したものではない。しかし、ライブで、公開で、完全に開いている。
ヒューマンテスターが攻撃者が実行するのと同じリクエストを実行した:
curl -s 'https://logisticsapi.[redacted].com/Logistics/api/customernotes/2631' | jq
サーバは応答した。トークンもなく、認証情報もない。

エンドポイントIDを繰り返すことで、テスターは以下を取得した:
- 顧客名、メールアドレス、アカウントノート
- 顧客アカウントのクリアテキスト認証情報
- デフォルトデバイスのユーザー名とパスワード
- デプロイ済みデバイスの内部ネットワーク情報
- 従業員名とメールアドレス
パブリックウェブサイトからJS分析へ、隠されたAPIへ、認証なしのデータダンプへという完全な流れは、列挙中の攻撃者ツールが行うプロセスと正確に鏡映している。ここでの違いは、Sprocket Securityが最初にそこに到達したということだ。
複合的な問題:自分が何を持っているか知らない
Unit 42の攻撃面研究は、平均的な組織の外部攻撃面が月ごとに300以上の新しいサービスで変わることを発見した。20%以上の外部からアクセス可能なクラウドサービスが月単位で入れ替わる。
セキュリティチームは追いついていない。ほとんどの侵害調査の根本原因は、同じテーマのバリエーションに帰着する:「それがインターネット上にあることを知らなかった。」
あなたが知らないアセットは、パッチを適用できない、監視できない、問題が発生したときにオフラインにできないアセットである。上記の例が示すように、それはしばしば誰かが意図的にデプロイしたものではない。
それは、誰も見ることを考えなかったJavaScriptファイルで参照されているバックエンドサービスである。
検出から検証まで:ASM-to-Penetesting パス
隠されたAPIを見つけることはステップ1である。何が実際に搾取可能で、実際のビジネス影響が何かを理解することには、人間の目が必要である。
それはSprocket Securityが構築されたパスである。ASM Community Editionは継続的にあなたの外部攻撃面を列挙する:アセットを検出し、JavaScriptバンドルをダウンロードし、サブドメインをマッピングし、あなたのネットワークの外から実際に見える内容を表示する。
何か予期しないものが表示される場合(パブリックであるべきではないAPI、誰も指摘しなかった管理パネル、通常と異なる証明書)、それは人間主導のテストに直接流される。
これはまさに例の発見がどのように展開したかである。ASMの列挙がJavaScriptリファレンスを表示した。ヒューマンテスターが認証なしのアクセスを検証し、露出されたエンドポイントをマップし、明確な修復手順で実際のデータ露出を文書化した。スキャナアラートではない。実際の発見である。
継続的なASM検出が人間主導のターゲット型テストに供給されることは、「私たちの攻撃面がXだと思っている」と「ここに攻撃者が実際に見ている内容がある」の間のギャップを埋める。
攻撃者がするより前にあなたのアセットを見つける
最初の24時間の問題は、より速いパッチ適用では解決されない。攻撃者がそれを見つける前に、あなたが何を持っているかを知ることで解決される。
Sprocket ASM Community Editionは、外部攻撃面への継続的な攻撃者視点の可視性を無料で提供する。
何が露出しているかを見つけ、パブリックであることを知らなかったものを検出し、実際に重要なものを優先順位付けする。
時計はすでに動いている。