Digital Infrastructure Exposure について
Digital Infrastructure Exposureは、ドメインの公開攻撃対象領域を評価するセキュリティチーム向けMCPサーバーです。8種類の受動的なデータソースを集約し、対象にパケットを送らずにスコア付きレポートと対策案を作成します。
主な機能
- 018種類の公開データソースを並列照会
- 02複合的な露出スコアとリスク分析
- 03サブドメインと公開サービスの検出
- 04DNS、メール、証明書のチェック
- 05技術スタックとCVE・CISA KEVの照合
- 06優先度付きの対策案
活用シーン
- 01ベンダーや第三者ドメインのリスク評価
- 02ペネトレーションテスト前のOSINT調査
- 03DNSとメール認証設定の監査
- 04未登録サブドメインやシャドーITの発見
MCP 対応
ドメイン露出監査、サブドメイン発見、DNS・証明書の確認、技術スタックの脆弱性照合などを行う8つのツールをMCPクライアントに公開します。公開情報と既存のスキャンインデックスを使った受動的なデータ収集です。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://ryanclinton--digital-infrastructure-exposure-mcp.apify.actor/mcpclaude mcp add --transport http digital-infrastructure-exposure https://ryanclinton--digital-infrastructure-exposure-mcp.apify.actor/mcp{"mcpServers":{"digital-infrastructure-exposure":{"type":"http","url":"https://ryanclinton--digital-infrastructure-exposure-mcp.apify.actor/mcp"}}}Cursor で開く{"servers":{"digital-infrastructure-exposure":{"type":"http","url":"https://ryanclinton--digital-infrastructure-exposure-mcp.apify.actor/mcp"}}}VS Code で開く{"mcpServers":{"digital-infrastructure-exposure":{"type":"http","url":"https://ryanclinton--digital-infrastructure-exposure-mcp.apify.actor/mcp"}}}{"mcpServers":{"digital-infrastructure-exposure":{"serverUrl":"https://ryanclinton--digital-infrastructure-exposure-mcp.apify.actor/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
デジタルインフラ露出 MCP サーバー
クイックスタート
MCP クライアント(Claude Desktop、Cursor、Windsurf)に追加します。
{
"mcpServers": {
"digital-infrastructure-exposure-mcp": {
"url": "https://ryanclinton--digital-infrastructure-exposure-mcp.apify.actor/mcp"
}
}
}
デジタルインフラ露出の偵察を MCP サーバーとして提供します。Claude、Cursor、その他の AI エージェントから問い合わせることで、あらゆるドメインの攻撃対象領域を数秒で評価できます。このサーバーは、WHOIS、DNS レコード、証明書透明性ログ、IP ジオロケーション、テクノロジースタックの検出、Censys のインターネット全域スキャン、NVD CVE、CISA の既知の悪用された脆弱性カタログという 8 つのパッシブデータソースを並列に連携します。
アクティブスキャンは行いません。対象インフラにパケットを送信しません。すべてのデータは公開レジストリ、インターネット全域のスキャンインデックス、証明書透明性ログから収集されます。一度接続すれば、AI エージェントはあらゆるドメインに関する構造化されたセキュリティインテリジェンスを利用できるようになります。これには、総合デジタル露出スコア(0~100)と具体的な修正の推奨事項が含まれます。
どのようなデータにアクセスできますか?
| データ項目 | ソース | 例 |
|---|---|---|
| 📋 ドメイン登録情報、レジストラ、有効期限 | WHOIS Lookup | Expires: 2026-04-12, Registrar: Namecheap |
| 🔍 DNS レコード(A、MX、TXT、CNAME、NS) | DNS Record Lookup | SPF: v=spf1 include:_spf.google.com ~all |
| 🔒 SSL/TLS 証明書の一覧 | crt.sh Certificate Transparency | mail.acmecorp.com, api.acmecorp.com, cdn.acmecorp.com |
| 🌍 IP ジオロケーション、ASN、ISP のマッピング | IP Geolocation Lookup | AS15169 Google LLC, US (Virginia) |
| 🧱 テクノロジースタック:CMS、フレームワーク、CDN、分析ツール | Website Tech Stack Detector | WordPress 6.4, Cloudflare, Google Analytics |
| 🔭 露出したサービス、開放ポート、バナー | Censys Host Search | port 443 (nginx/1.24.0), port 22 (OpenSSH 8.9) |
| 🛡️ CVSS 深刻度スコア付きの CVE レコード | NVD CVE Search | CVE-2023-44487 (CRITICAL) — HTTP/2 Rapid Reset |
| ⚡ 現在悪用されている脆弱性 | CISA KEV Catalog | CVE-2023-44487 — known ransomware use: YES |
| 📊 インフラの拡散指数(0~100) | 総合スコアリング | Score: 62 — SPRAWLING |
| 🔐 設定ミスのスコア(0~100) | 総合スコアリング | Score: 45 — MODERATE_GAPS, missing DMARC |
| 🗺️ 地理的集中度 HHI | 総合スコアリング | HHI: 7,200 — HIGHLY_CONCENTRATED (1 country) |
| 🎯 デジタル露出スコア(0~100) | 総合スコアリング | Score: 34 — EXPOSED, 4 recommendations |
MCP ツール
| ツール | 価格 | 説明 |
|---|---|---|
full_exposure_audit | $0.045 | 8 つすべてのソースを対象に、デジタル露出を包括的に監査します。インフラの分散、設定ミス、技術的な脆弱性、地域的な集中度、露出スコアを含む完全な統合レポートを返します。 |
subdomain_discovery | $0.045 | 証明書の透明性(crt.sh)、DNS レコード、Censys を使用してサブドメインを列挙します。IP マッピングとインフラ分散指数を含むサブドメイン一覧を返します。 |
dns_security_audit | $0.045 | SPF、DKIM、DMARC の準拠状況を監査し、宙ぶらりんの CNAME を検出して、NS の冗長性を確認し、ドメイン登録の有効期限が 60 日以内に切れる場合に警告します。 |
ssl_certificate_health | $0.045 | SSL/TLS 証明書の有効期限、発行者の検証、証明書の透明性のカバレッジを確認します。期限切れ、30 日以内に期限切れとなる証明書、または自己署名証明書にフラグを付けます。 |
tech_stack_vulnerability_match | $0.045 | ウェブサイトの技術スタックを検出し、NVD CVE と CISA KEV カタログと照合します。優先順位を付けた修復策とともに、技術から悪用に至るまでのパイプラインを返します。 |
hosting_geography_map | $0.045 | ホスティングの地理的分布をマッピングします。国別の分布、ハーフィンダール・ハーシュマン指数(HHI)を使用したプロバイダーの集中度、単一障害点の検出、NS の冗長性チェックを行います。 |
internet_service_enumeration | $0.045 | Censys を使用してインターネットに公開されているサービスを列挙します。開いているポート、プロトコルのバージョン、サービスバナー、ホスティングプロバイダーを確認します。 |
compare_org_exposure | $0.045 | ドメインの完全な露出プロファイルを返します。任意の比較対象ドメインを指定すると、比較の参考情報とともに、4 つのすべての側面にわたる統合スコアの内訳を表示します。 |
Digital Infrastructure Exposure MCP を使用する理由
デジタルフットプリントのデータを手作業で収集するセキュリティチームは、対象ごとに何時間も費やしています。nmap の実行、crt.sh への問い合わせ、MX レコードの確認、NVD との照合などを行っても、CISA KEV との照合を見落としてしまいます。SecurityScorecard のようなプラットフォームでは、同等のパッシブな偵察データに年間 2,000 ドル以上かかります。
この MCP サーバーなら、単一のツール呼び出しで、同じインテリジェンスパイプラインをあらゆる AI エージェントに提供できます。エージェントがドメインに対して full_exposure_audit を実行すると、統合スコア、4 つの側面別サブスコア、具体的な修復手順を含む構造化された JSON レポートが、90 秒以内に 0.045 ドルで返されます。
Apify プラットフォームで実行するメリット:
- スケジュール設定 — 露出監査を毎日または毎週実行し、新たなサブドメインや証明書の変更を自動的に検出できます
- API アクセス — Python、JavaScript、または任意の HTTP クライアントから実行し、セキュリティワークフローにプログラムで統合できます
- プロキシローテーション — データ収集は Apify のプロキシインフラストラクチャを経由するため、すべてのデータソースに安定してアクセスできます
- モニタリング — 実行に失敗した場合や、予期しない結果が返された場合に、Slack またはメールでアラートを受け取れます
- インテグレーション — 結果を Zapier、Make、Google Sheets、HubSpot、または送信 Webhook に接続し、SIEM に取り込めます
特徴
- 8つのデータソースを並列処理 — WHOIS、DNS、crt.sh、IP ジオロケーション、技術スタック検出、Censys、NVD CVE、CISA KEV に対して、
Promise.allを使用して同時にクエリを実行し、90秒未満で応答します - インフラストラクチャ拡散指数 — 4つの要素に基づいて0~100点で評価します。サブドメイン数(最大30点)、一意なIPとDNSの多様性(最大25点)、地理的分布(最大25点)、Censysで公開されているサービス数(最大20点)
- 設定ミスの検出 — メールセキュリティの不備(SPF/DKIM/DMARC、最大30点)、証明書の問題(有効期限切れ、または30日以内に期限切れとなる証明書、自己署名証明書、最大30点)、DNS/WHOISの衛生状態(S3、Heroku、GitHub、Azureを指すダングリングCNAME、60日以内に期限切れとなるドメイン、最大25点)をそれぞれ個別に評価します
- 技術スタックからCVEへのパイプライン — 技術スタック検出ツールで特定した技術をNVDのCVEレコードと照合し、CRITICALのCVEには1件につき8点、HIGHのCVEには1件につき4点を加算します。また、ランサムウェアキャンペーンで悪用が確認された脆弱性には、CISA KEVの30点ボーナスを加算します
- HHIに基づく地理的集中度の評価 — Herfindahl-Hirschman Indexを国とプロバイダーの分布の両方に適用し、HHIが5,000を超える場合は集中度が高いと判定します(単一の国、単一のプロバイダーによる構成は10,000点となります)
- 複合デジタル露出スコア — 次の加重式を使用します:設定ミス × 0.30 + 技術的脆弱性 × 0.30 + インフラストラクチャ拡散 × 0.20 + 地理的集中度 × 0.20。結果を反転し、セキュリティ態勢を0~100の尺度で表します
- 5段階の判定ラベル —
HARDENED、ACCEPTABLE、EXPOSED、HIGH_RISK、CRITICAL_EXPOSURE。自動上書き機能により、技術的脆弱性と設定ミスの両方がCRITICALの場合、他のスコアにかかわらず常にCRITICAL_EXPOSUREを返します - 具体的な修正の推奨事項 — 各レポートには、スコアが低かった評価項目に基づく優先順位付きアクションリストが含まれます(CISA KEVのパッチ適用、DMARC/SPF/DKIMの設定、サブドメイン監査、地理的分散、SSL証明書の更新)
- ダングリングCNAMEの検出 — 第三者に取得される可能性のある、S3、Heroku、GitHub、Azure、CloudFrontのエンドポイントを指すCNAMEを具体的にチェックします
- NS冗長性のチェック — ネームサーバーが1つだけの構成を、DNSにおける単一障害点として検出します
- パッシブのみのデータ収集 — すべてのデータは、公開レジストリ、証明書透明性ログ、既存のインターネットスキャンインデックスから取得します。対象のインフラストラクチャにはパケットを送信しません
デジタルインフラストラクチャの露出評価のユースケース
ベンダーおよびサードパーティのリスク管理
セキュリティチームや調達チームは、新しいベンダーの採用前や継続的な監視の際に、定量化されたリスクスコアを必要とします。各ベンダーのドメインに対してfull_exposure_auditを実行し、ベンダーリスク台帳に反映できるデジタル露出スコアを生成します。CISA KEVとの一致があり、DMARCが未設定のベンダーは、情報漏えいが発生した後ではなく、契約締結前に修正対象としてフラグが立てられます。
ペネトレーションテストのOSINTフェーズ
ペネトレーションテスターやレッドチームは、エンゲージメントの最初のフェーズで、対象の攻撃対象領域をマッピングします。subdomain_discoveryとinternet_service_enumerationを実行し、有効な証明書が発行されたサブドメイン、開放ポート、サービスバナーを列挙してから、アクティブテストを開始します。パッシブな手法のため痕跡を残さず、手動でのcrt.shクエリでは見落とされる範囲も網羅します。
サイバー保険の引受審査と更新
サイバー保険の申請を審査する引受担当者やブローカーは、セキュリティ態勢を示す構造化された証拠を必要とします。full_exposure_auditとtech_stack_vulnerability_matchを実行し、定量化された露出プロファイルを作成します。悪用可能なCVEとインフラストラクチャ拡散の指標は、保険料の算定や契約条件の決定に役立ちます。
社内IT資産の検出とシャドーIT
ITチームやセキュリティ運用チームは、CMDBが不完全なことも少なくありません。証明書透明性ログを確認すると、ドメインに対してこれまでに発行されたすべてのSSL証明書が明らかになり、シャドーITプロジェクト用に立ち上げられたサブドメインも見つかります。subdomain_discoveryを毎月実行し、資産インベントリに記載されていない資産を検出します。
DNS およびメールセキュリティのコンプライアンス監査
DMARC の適用を実施している組織や、メール認証のコンプライアンス(Google/Yahoo の一括送信者要件など)への対応を準備している組織には、基準となる監査が必要です。dns_security_audit を実行して、SPF、DKIM、DMARC レコードの有無を確認し、参照先のない CNAME を検出するとともに、ドメイン登録の失効リスクを特定します。
合併・買収および投資のデューデリジェンス
テクノロジー企業を評価する M&A アナリストや投資家は、対象企業のデジタル衛生状態を把握する必要があります。compare_org_exposure を実行すると、4 つすべてのリスク領域を網羅した、体系的なエクスポージャープロファイルを生成できます。テクノロジースタックに存在する既知の悪用された脆弱性は、企業価値や買収後の修正予算に重大な影響を与えます。
デジタルインフラのエクスポージャーデータを照会する方法
-
MCP サーバーを AI クライアントに接続する — サーバー URL
https://digital-infrastructure-exposure-mcp.apify.actor/mcpを Claude Desktop、Cursor、Windsurf、または MCP 互換クライアントに追加します(下記の接続セクションを参照)。Apify アカウントと API トークンが必要です。 -
エージェントにドメインの監査を依頼する — 対象のドメイン名(例:
acmecorp.com)を指定し、必要な内容を伝えます。エージェントが適切なツールを自動的に選択します。ツール名を指定して依頼することもできます。 -
30~90 秒待つ — サーバーは最大 8 つのデータソースに並行して照会します。単一ツールの呼び出しは、ほとんどの場合 45 秒以内に完了します。
full_exposure_auditは 8 つすべてのソースを統括し、通常 60~90 秒で結果を返します。 -
体系化されたレポートを確認する — エージェントが総合スコア、各領域のサブスコア、優先順位付きの推奨事項を自然言語で提示します。プログラム連携用に、生の JSON も利用できます。
MCP ツールのパラメーター
| ツール | パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|---|
full_exposure_audit | domain | string | はい | 対象ドメイン(例:acmecorp.com) |
full_exposure_audit | includeSubdomains | boolean | いいえ | 監査でサブドメインの列挙を含める |
subdomain_discovery | domain | string | はい | サブドメインを列挙する対象のベースドメイン |
dns_security_audit | domain | string | はい | DNS セキュリティを監査するドメイン |
ssl_certificate_health | domain | string | はい | SSL 証明書を確認するドメイン |
tech_stack_vulnerability_match | domain | string | はい | テクノロジースタックを検出し、CVE と照合するドメイン |
tech_stack_vulnerability_match | technology | string | いいえ | CVE を検索する特定のテクノロジー名 |
hosting_geography_map | domain | string | はい | ホスティングの地理的分布をマッピングするドメイン |
internet_service_enumeration | domain | string | はい | サービスを列挙するドメインまたは IP |
compare_org_exposure | domain | string | はい | 分析するドメイン |
compare_org_exposure | benchmark | string | いいえ | 比較の基準となるベンチマークドメイン |
出力例
acmecorp.com に対する full_exposure_audit の呼び出しでは、次の結果が返されます。
{
"domain": "acmecorp.com",
"compositeScore": 38,
"verdict": "HIGH_RISK",
"infraSprawl": {
"score": 62,
"subdomainCount": 34,
"uniqueIPs": 11,
"geoRegions": 4,
"sprawlLevel": "SPRAWLING",
"signals": [
"34 subdomains discovered — large attack surface",
"Infrastructure spans 4 countries — geographic sprawl",
"12 exposed services found via Censys — large service footprint"
]
},
"misconfiguration": {
"score": 58,
"emailSecurityGaps": 2,
"certIssues": 3,
"dnsIssues": 2,
"misconfigLevel": "SIGNIFICANT",
"signals": [
"Missing SPF record — email spoofing risk",
"Missing DMARC record — no email authentication enforcement",
"3 certificate issues — expired or soon-expiring certs",
"Domain expiring within 60 days — registration lapse risk"
]
},
"techVuln": {
"score": 74,
"techsDetected": 9,
"cveMatches": 7,
"kevMatches": 2,
"vulnLevel": "HIGH",
"signals": [
"2 CRITICAL CVEs found — immediate patching required",
"4 HIGH severity CVEs — significant vulnerability exposure",
"2 CISA Known Exploited Vulnerabilities — actively targeted"
]
},
"geoConcentration": {
"score": 71,
"countries": 1,
"providers": 1,
"concentrationLevel": "HIGHLY_CONCENTRATED",
"signals": [
"Country HHI 8,450 — highly concentrated hosting geography",
"Provider HHI 9,100 — single provider dependency",
"Single NS server — DNS single point of failure"
]
},
"allSignals": [
"34 subdomains discovered — large attack surface",
"Infrastructure spans 4 countries — geographic sprawl",
"Missing SPF record — email spoofing risk",
"Missing DMARC record — no email authentication enforcement",
"3 certificate issues — expired or soon-expiring certs",
"Domain expiring within 60 days — registration lapse risk",
"2 CRITICAL CVEs found — immediate patching required",
"2 CISA Known Exploited Vulnerabilities — actively targeted",
"Single NS server — DNS single point of failure"
],
"recommendations": [
"Implement SPF/DKIM/DMARC — email security gaps detected",
"Patch CISA KEV vulnerabilities immediately — actively exploited",
"Run vulnerability scan and patch critical/high CVEs",
"Audit subdomain inventory — reduce attack surface",
"Diversify hosting geography — single point of failure",
"Renew or replace expired/expiring SSL certificates",
"Engage external penetration testing — high digital exposure risk"
]
}
出力フィールド
| フィールド | 型 | 説明 |
|---|---|---|
domain | string | 監査対象のドメイン |
compositeScore | number | セキュリティ体制の総合スコア、0~100(高いほど安全) |
verdict | string | HARDENED、ACCEPTABLE、EXPOSED、HIGH_RISK、または CRITICAL_EXPOSURE |
infraSprawl.score | number | インフラ拡散のサブスコア、0~100(高いほど拡散) |
infraSprawl.subdomainCount | number | 証明書の透明性を通じて検出された一意のサブドメイン数 |
infraSprawl.uniqueIPs | number | DNS レコードから解決された一意の IP アドレス数 |
infraSprawl.geoRegions | number | インフラをホストしている国の数 |
infraSprawl.sprawlLevel | string | MINIMAL、CONTAINED、MODERATE、SPRAWLING、UNCONTROLLED |
infraSprawl.signals | array | この評価軸に関する、人が読み取れる調査結果 |
misconfiguration.score | number | 設定ミスの重大度スコア、0~100 |
misconfiguration.emailSecurityGaps | number | 不足しているメールセキュリティレコード(SPF/DKIM/DMARC)の数 |
misconfiguration.certIssues | number | 検出された証明書の問題数 |
misconfiguration.dnsIssues | number | DNS/WHOIS の問題(参照先のない CNAME、期限切れのリスク)の数 |
misconfiguration.misconfigLevel | string | HARDENED、MINOR_GAPS、MODERATE_GAPS、SIGNIFICANT、CRITICAL |
misconfiguration.signals | array | 具体的な設定ミスの調査結果 |
techVuln.score | number | 技術的脆弱性スコア、0~100 |
techVuln.techsDetected | number | ウェブサイトで特定された一意のテクノロジー数 |
techVuln.cveMatches | number | 検出されたテクノロジーと一致した CVE レコード数 |
techVuln.kevMatches | number | 一致した CISA の既知の悪用脆弱性数 |
techVuln.vulnLevel | string | MINIMAL、LOW、MODERATE、HIGH、CRITICAL |
techVuln.signals | array | 重大度を含む CVE と KEV の調査結果 |
geoConcentration.score | number | ホスティング集中度スコア、0~100(高いほど集中) |
geoConcentration.countries | number | インフラをホストしている国の数 |
geoConcentration.providers | number | 異なるホスティングプロバイダー/ASN の数 |
geoConcentration.concentrationLevel | string | DISTRIBUTED、MODERATE、CONCENTRATED、HIGHLY_CONCENTRATED、SINGLE_POINT |
geoConcentration.signals | array | HHI スコア、単一プロバイダーに関する警告、NS の冗長性 |
allSignals | array | 4 つすべての評価軸からのシグナルを統合したもの |
recommendations | array | スコアリングに基づく優先順位付きの修復手順 |
デジタルインフラの露出状況を監査するには、いくらかかりますか?
この MCP サーバーはイベントごとの従量課金を採用しており、ツールの呼び出し1回につき $0.045 かかります。プラットフォームのコンピューティング費用は含まれています。8つのツールはすべて同一料金です。月額サブスクリプションはありません。
| シナリオ | ツール呼び出し数 | 1回あたりの費用 | 合計費用 |
|---|---|---|---|
| ドメインの簡易チェック | 1 | $0.045 | $0.045 |
| ベンダーの包括的な監査(全7ツール) | 7 | $0.045 | $0.315 |
| 毎週のベンダー監視(10ドメイン) | 10 | $0.045 | $0.45 |
| M&A のデューデリジェンス(50件の対象) | 50 | $0.045 | $2.25 |
| エンタープライズプログラム(月500ベンダー) | 500 | $0.045 | $22.50 |
コストを管理するために、実行ごとに最大利用額を設定できます。予算に達すると、アクターは停止します。
SecurityScorecard は年間 $2,000 以上、BitSight も同程度のプランですが、この MCP なら、サブスクリプションの縛りも年間契約もなく、500ベンダーの監視プログラムを月額 $22.50 で利用できます。Apify の無料プランには月額 $5 のクレジットが含まれており、支払い方法の登録なしで100回を超えるツール呼び出しを利用できます。
この MCP サーバーへの接続方法
Claude Desktop
claude_desktop_config.json に次の内容を追加します。
{
"mcpServers": {
"digital-infrastructure-exposure": {
"url": "https://digital-infrastructure-exposure-mcp.apify.actor/mcp",
"headers": {
"Authorization": "Bearer YOUR_APIFY_TOKEN"
}
}
}
}
Cursor / Windsurf / Cline
クライアントの MCP 設定パネルに MCP サーバーの URL を追加します。
https://digital-infrastructure-exposure-mcp.apify.actor/mcp
Authorization ヘッダーに Bearer トークンとして Apify API トークンを指定します。
Python(直接 HTTP)
import requests
import json
response = requests.post(
"https://digital-infrastructure-exposure-mcp.apify.actor/mcp",
headers={
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_APIFY_TOKEN"
},
json={
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "full_exposure_audit",
"arguments": {"domain": "acmecorp.com"}
},
"id": 1
}
)
result = response.json()
report = json.loads(result["result"]["content"][0]["text"])
print(f"Domain: {report['domain']}")
print(f"Composite Score: {report['compositeScore']}/100")
print(f"Verdict: {report['verdict']}")
for rec in report["recommendations"]:
print(f" - {rec}")
JavaScript / TypeScript
const response = await fetch(
"https://digital-infrastructure-exposure-mcp.apify.actor/mcp",
{
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: "Bearer YOUR_APIFY_TOKEN",
},
body: JSON.stringify({
jsonrpc: "2.0",
method: "tools/call",
params: {
name: "dns_security_audit",
arguments: { domain: "acmecorp.com" },
},
id: 1,
}),
}
);
const data = await response.json();
const result = JSON.parse(data.result.content[0].text);
console.log(`Misconfig Level: ${result.misconfiguration.misconfigLevel}`);
console.log(`Email Security Gaps: ${result.misconfiguration.emailSecurityGaps}`);
result.misconfiguration.signals.forEach(s => console.log(` - ${s}`));
cURL
# Full exposure audit
curl -X POST "https://digital-infrastructure-exposure-mcp.apify.actor/mcp" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_APIFY_TOKEN" \
-d '{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "full_exposure_audit",
"arguments": {"domain": "acmecorp.com"}
},
"id": 1
}'
# DNS security audit only
curl -X POST "https://digital-infrastructure-exposure-mcp.apify.actor/mcp" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_APIFY_TOKEN" \
-d '{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "dns_security_audit",
"arguments": {"domain": "acmecorp.com"}
},
"id": 2
}'
Digital Infrastructure Exposure MCP の仕組み
フェーズ 1 — 8 つのソースからの並列データ収集
ツールが呼び出されると、サーバーは事前登録された Apify actor ID(actor-client.ts)に対応する actor 呼び出しの配列を構築します。すべての呼び出しは、サブ actor ごとに 120 秒のタイムアウトと 512 MB のメモリー上限を設定して、Promise.all によって同時に実行されます。actor マップは、WHOIS(M7WwJi9RsIxqCtxsh)、DNS(k1EsC3laNunPVzudh)、crt.sh(4Y2KiVoSkeyjPfhPS)、IP ジオロケーション(04JaB1rtCNabRa2tf)、技術スタック検出器(mBdMOhOMY7XtwX99T)、Censys(2jY2b2r4VG46zxsC6)、NVD CVE(36Kmjy7TucAUVh4SN)、CISA KEV(baoJ9EQl0Rb3hWYMv)の actor 名を ID に対応付けます。サブ actor の呼び出しに失敗した場合は空の配列が返され、レポートの生成は中断されません。複合スコアは、利用可能なデータに応じて適切に調整されます。
フェーズ 2 — 4 つのモデルによる多次元スコアリング
scoring.ts は、収集されたデータに対して 4 つの独立したスコアリング関数を実行します。
インフラの拡散(scoreInfraSprawl):crt.sh の common_name フィールドと name_value フィールドから一意のサブドメイン名を抽出し、重複を除いた Set に格納します。サブドメイン数を段階的な基準でスコアリングします(≥50 = 30 点、≥20 = 22 点、≥10 = 15 点)。DNS の A/AAAA レコードから一意の IP/AAAA アドレスを追加し、DNS レコード数をスコアリングします。地理的分布は国の数を 1 か国あたり 3 点でスコアリングします。公開されている Censys サービスは 1 件あたり 2 点でスコアリングします。
設定ミス(scoreMisconfiguration):DNS TXT レコードを調べ、v=spf1、v=dkim、v=dmarc の部分文字列を確認します。メールセキュリティレコードが欠けているごとにメールスコアへ 10 点を加算します(最大 30 点)。crt.sh の結果から not_after / expiry / notAfter フィールドを解析して証明書の有効期限を確認します。有効期限切れの証明書は 1 件あたり 3 点、有効期限まで 30 日以内の証明書は 1 件あたり 1 点でスコアリングします。CNAME の値を s3、herokuapp、github、azure の文字列とパターンマッチングし、放置されたサブドメイン乗っ取り候補を検出します。WHOIS の有効期限が 60 日以内の場合は、ドメイン失効の兆候として加算します。
技術的脆弱性(scoreTechVulnerability):技術スタック検出器から一意の技術名を収集し、Set に格納します。NVD の CRITICAL CVE は 1 件あたり 8 点、HIGH CVE は 1 件あたり 4 点でスコアリングします。knownRansomwareCampaignUse === "known" で確認された CISA KEV エントリは 1 件あたり 3 点、それ以外は 1 点でスコアリングします。CRITICAL CVE と CISA KEV の一致が同時に存在する場合は、最大 15 点の複合スコアが加算されます。
地理的集中度(scoreGeoConcentration):ジオロケーションが特定されたすべての IP を対象に、国別分布とプロバイダー/ASN 別分布について、それぞれハーフィンダール・ハーシュマン指数(HHI)を算出します。単一の国または単一のプロバイダーにインフラが集中している場合、HHI は最大集中度である 10,000 に達します。DNS の NS レコード数からネームサーバーの冗長性を判定し、NS サーバーが 1 台の場合は 15 点でスコアリングします。
フェーズ 3 — 複合スコアの算出とレポートの作成
複合露出スコアは、加重和として算出されます:Misconfiguration × 0.30 + TechVuln × 0.30 + InfraSprawl × 0.20 + GeoConcentration × 0.20。その後、値を反転します:compositeScore = 100 - riskScore。つまり、複合スコアが高いほど、セキュリティ態勢が良好であることを示します(従来のセキュリティ評価に近い指標です)。重大な上書きルールが適用されます。techVuln.vulnLevel === 'CRITICAL' と misconfiguration.misconfigLevel === 'CRITICAL' の両方が成立する場合、数値スコアにかかわらず判定は CRITICAL_EXPOSURE に設定されます。推奨事項は、どのしきい値を超えたかに基づいて決定論的に生成されます。
最適な結果を得るためのヒント
-
対象が不明な場合は、まず
full_exposure_auditを実行します。 8つのソースすべてを並行して実行し、1回の呼び出しで全体像を把握できます。調査したい項目が明確な場合に限り、対象を絞ったツール(dns_security_audit、ssl_certificate_health)を使用します。 -
正確な製品名がわかっている場合は、
technologyパラメーターを指定してtech_stack_vulnerability_matchを使用します。technology: "Apache 2.4.49"のように指定すると、ドメインからの推定よりも正確な CVE 結果が得られます。既知の技術スタックがあり、脆弱性への露出をすばやく絞り込みたい場合に特に便利です。 -
OSINT の段階では、
subdomain_discoveryとinternet_service_enumerationを組み合わせます。 まずサブドメインを検出して一覧を取得し、次に注目すべきサブドメインを個別にinternet_service_enumerationに渡して、ポートとバナーの詳細を確認します。 -
管理するドメインでは、
dns_security_auditを毎週実行するようスケジュールします。 DMARC と SPF のレコードは、DNS の変更によって頻繁に破損します。毎週の自動モニタリングにより、攻撃者に先んじて問題の再発を検知できます。アラート用の Slack webhook と Apify Schedules を使用してください。 -
ポートフォリオのモニタリングには、
compare_org_exposureを使用します。 項目別スコアが個別のフィールドとして含まれる、構造化された JSON 出力は、ポートフォリオ内のベンダードメインの傾向を追跡するために、スプレッドシートやデータベースへ簡単に取り込めます。 -
複合スコアは、数値と判定の両方を確認して解釈します。 39(
HIGH_RISK)と 41(EXPOSED)のスコアは数値上は近いものの、判定区分は異なります。経時的なモニタリングで閾値を悪用されないよう、数値スコアと併せて必ず判定ラベルも報告してください。 -
Apify の無料プランでは、100回を超えるツール呼び出しが可能です。 1回の呼び出しあたりの料金は $0.045 です。Apify の月額 $5 の無料クレジットでは約111回呼び出せるため、
full_exposure_auditを使って15~20社のベンダーをリスク評価するのに十分です。
他の Apify アクターおよび MCP サーバーとの組み合わせ
| アクター/MCP | 組み合わせ方 |
|---|---|
| WHOIS Domain Lookup | 完全な監査の料金を発生させずに、所有履歴とレジストラを分析するため、WHOIS を単独で実行します |
| Website Tech Stack Detector | 完全な CVE パイプラインではなく、技術のフィンガープリントのみが必要な場合に直接使用します |
| Company Deep Research | 露出レポートに企業の所有関係、財務データ、ニュース報道を追加し、包括的なデューデリジェンス資料を作成します |
| Competitor Analysis Report | compare_org_exposure と組み合わせて、競合他社の市場での位置付けと併せて、デジタル衛生状態を比較評価します |
| Website Change Monitor | 対象ドメインのコンテンツ変更をモニタリングし、subdomain_discovery で見つかった新しいサブドメインと照合します |
| B2B Lead Qualifier | デジタル衛生状態に基づいて見込み客をスコアリングします。CRITICAL_EXPOSURE の企業は、技術製品の購入者や買収対象として適さない可能性があります |
| HubSpot Lead Pusher | 露出スコアをカスタムのコンタクトまたは企業プロパティとして HubSpot に直接登録し、営業やリスク管理のワークフローに活用します |
制限事項
- 受動的なデータのみ — このサーバーは既存のスキャンインデックスと公開レジストリを照会します。対象インフラストラクチャを能動的に調査することはありません。新しいサブドメインやパッチが適用されたサービスなど、最近の変更は発生後48~72時間はCensysまたはcrt.shのインデックスに反映されない場合があります。
- 証明書の透明性に関する情報はSSLが必要です — SSL/TLS証明書のないサブドメインはcrt.shの結果に表示されません。内部専用のサブドメインやプライベートIPインフラストラクチャは検出できません。
- 技術情報とCVEの照合はヒューリスティックです — CVEの照合では、NVDの検索語にドメインを使用し、指定されている場合は
technologyパラメーターも使用します。Wappalyzerの出力からバージョン文字列を直接解析して、正確なCPE照合を行うことはありません。誤検知と見逃しの可能性があります。手動で検証する場合は、生のCVEリストを使用してください。 - CISA KEVの結果はカタログ全体を対象とします — KEV検索では、CISAカタログ全体からクエリ語に一致する脆弱性を返します。クエリが複数の製品に一致する場合、返されるKEV件数には対象に直接関連しない項目が含まれることがあります。対応をエスカレーションする前に、個々のCVE IDを確認してください。
- Censysのデータは既存のスキャンを反映しています — CensysはIPv4空間を定期的にスキャンしており、リアルタイムではありません。最近開放または閉鎖されたサービスは、正確に反映されない場合があります。
- 認証やセッションのテストは行いません — これは純粋な受動的偵察ツールです。ログインフォーム、API認証、ウェブアプリケーションの脆弱性クラス(SQLi、XSSなど)をテストすることはできません。ウェブアプリケーションの能動的なテストには、専用のDASTツールを使用してください。
- ドメイン登録者のプライバシー保護によってWHOIS情報が隠される場合があります — 登録者がWHOISプライバシー保護(Domains By Proxy、WhoisGuardなど)を利用している場合、所有者情報や有効期限の情報が部分的にマスキングされることがあります。
- サブアクターの障害があっても処理は継続します — データソースが一時的に利用できない場合、該当するスコアリング項目のデータは0となり、利用可能な項目から総合スコアが算出されます。対象範囲に不足がないか、
allSignalsを確認してください。
連携
- Zapier —
dns_security_auditをスケジュールに沿って実行し、設定ミスのレベルがSIGNIFICANT以上になった場合に、検出結果をSlackチャンネルに投稿します - Make — AirtableまたはNotionにリスクレコードを作成するベンダー登録ワークフローの一部として、
full_exposure_auditをオーケストレーションします - Google Sheets — 複数のベンダードメインの露出スコアデータをスプレッドシートにエクスポートし、傾向を分析します
- Apify API — HTTP POSTで任意のツールを直接呼び出し、既存のセキュリティプラットフォーム、SIEM、GRCシステムに統合します
- Webhooks — 監査完了時にWebhookペイロードを受信し、インシデント対応ワークフローとの連携を可能にします
- LangChain / LlamaIndex — このMCPサーバーをLangChainエージェントのツールとして使用し、露出データとニュース検索、企業情報を組み合わせてセキュリティブリーフィングを自動生成します
トラブルシューティング
-
複合スコアが 0、または予想より低い値になる — これは通常、すべてのサブアクターが空の結果を返したことを意味します。指定したドメインが、インターネット上で公開されている有効なドメインであることを確認してください(例:
acmecorp.com。acmecorpやhttps://acmecorp.comではありません)。内部ドメイン、.localホスト名、IP アドレスはサポートされていません。 -
サイト上でテクノロジーを確認できるにもかかわらず、テクノロジー脆弱性スコアが 0 になる — テックスタック検出機能は、HTTP ヘッダーと HTML コンテンツからテクノロジーを検出します。厳格な WAF の背後にあるサイトや、サーバーサイドレンダリングを行わないシングルページアプリケーションでは、テクノロジーに関するシグナルがほとんど返されない場合があります。CVE 検索でも一致するクエリ語が必要です。
technologyパラメーターを明示的に指定してみてください(例:technology: "WordPress")。 -
証明書の問題が検出されない — crt.sh は、新しく登録されたドメインや、ブラウザーで信頼される CA を通じて SSL 証明書を発行したことのないドメインについて、結果を返さない場合があります。セルフホスト型の内部 CA は、公開されている証明書透明性ログには記録されません。
-
compare_org_exposureとfull_exposure_auditが同じデータを返す — どちらのツールも、完全なエクスポージャーレポートのパイプラインを実行します。compare_org_exposureは比較ワークフローに最適化された、より簡潔な JSON 構造を返します。一方、full_exposure_auditは、未加工のソースデータの各スライスを含む、完全なネスト形式のレポートを返します。 -
実行に 90 秒以上かかる — Apify プラットフォームの負荷が高い場合、サブアクターのキュー待ちによって遅延が増えることがあります。これはまれです。実行に常に 120 秒以上かかる場合、サブアクターがタイムアウト上限に達しています。通常、Censys または NVD がすぐに結果なしで応答する一方、別のソースの応答が遅いことを意味します。アクターはこの状況を適切に処理し、収集できたデータを返します。
責任ある利用
- このサーバーがアクセスするすべてのデータは、公開レジストリ、証明書透明性ログ、公開済みのインターネットスキャンデータセットを通じて一般に利用できます。
- このツールは、受動的な偵察のみを行います。アクティブなポートスキャン、認証テスト、脆弱性の悪用は行いません。
- お住まいの地域のコンピューター不正アクセスおよび悪用に関する法律を遵守して、エクスポージャーデータを利用してください。自社インフラの評価や、承認を得たベンダー評価の実施は、一般的に認められている利用方法です。
- 不正アクセスの準備として、承認を得ずに組織を標的とする目的でこのツールを使用しないでください。
- ウェブスクレイピングとデータ収集の合法性に関するガイダンスについては、Apify の法的ガイドをご覧ください。
FAQ
デジタルインフラのエクスポージャースコアリングは、SecurityScorecard や BitSight とどう違いますか? この MCP サーバーは、同じ基盤となる受動的なデータソースに対して、4 つの独立したスコアリングモデル(インフラの拡散、設定ミス、テクノロジー脆弱性、地理的集中度)を適用します。SecurityScorecard と BitSight は、年間契約が 2,000 ドルからの SaaS プラットフォームです。このサーバーは 1 回の呼び出しにつき 0.045 ドルの従量課金制で、契約も最低利用料金もありません。また、スコアとともに未加工のデータも返されるため、評価方法を監査できます。
デジタルインフラのエクスポージャースキャンは合法ですか? はい。すべてのデータは、WHOIS レジストリ、DNS 名前解決、証明書透明性ログ(設計上公開されています)、Censys の事前スキャン済みインターネットデータなど、一般に利用可能なソースから取得されます。標的のインフラにパケットを送信することはありません。法的性質としては、公開されている情報を読むことと同等です。Apify のスクレイピングの合法性に関するガイドをご覧ください。
このツールはアクティブスキャンを実行したり、標的ドメインにプローブを送信したりしますか? いいえ。すべてのデータは既存のインデックスと公開レジストリから取得されます。Censys のデータは、同社が定期的に実施する IPv4 スキャンを反映したものであり、このサーバーがリアルタイムにプローブを送信しているわけではありません。標的のインフラへの接続は開始されません。 Digital Exposure Score の精度はどの程度ですか? 複合スコアは、各サブアクターから返されるデータの品質と完全性を反映します。公開情報が豊富なドメイン(証明書が多数存在する、Censys にインデックスされたサービスがある、技術スタックを検出できるなど)では、根拠のしっかりしたスコアが得られます。インターネット上の存在感がわずかなドメインでは、単に発見できる情報が少ないため、広がりのスコアが誤解を招くほど低くなる場合があります。広がりのスコアが低い場合は、生のシグナルデータもあわせて確認してください。
1回のセッションで監査できるドメイン数はいくつですか? ツールを1回呼び出すごとに、1つのドメインを監査します。複数ドメインを対象とするワークフローでは、AI エージェントからツールを順番に複数回呼び出すか、ループ処理で Apify API を使用してください。呼び出し回数に明確な上限はなく、実行量を制御するのは利用上限のみです。
デジタルインフラの露出データを自動化されたベンダー監視に利用できますか?
はい。Apify Schedules を使用して、ベンダードメインのリストに対して full_exposure_audit を毎週実行できます。ウェブフックと組み合わせて、スコアの変化を SIEM または Slack チャンネルに送信してください。これは、最も一般的なエンタープライズ用途の1つです。
dns_security_audit と full_exposure_audit の違いは何ですか?
dns_security_audit は DNS レコードと WHOIS のみを照会し、メールセキュリティ(SPF/DKIM/DMARC)、宙に浮いた CNAME、登録期限を対象とした、設定ミスに特化したスコアを生成します。実行速度が速く、料金は同じ($0.045)です。DNS の衛生状態に関するデータだけが必要な場合に使用してください。full_exposure_audit はさらに6つのデータソースを追加し、技術的な脆弱性と地理的な集中度の項目を含む、完全な複合レポートを生成します。
技術スタックと CVE の照合はどのように行われますか? サーバーは技術スタック検出ツールを呼び出して対象ドメインの技術を特定し、続いてドメイン名または技術名を使って NVD CVE データベースを照会します。CRITICAL の CVE はそれぞれ8ポイント、HIGH の CVE はそれぞれ4ポイントとしてスコアに加算されます。CISA KEV カタログと照合して、実環境で現在悪用されていることが確認された CVE を特定します。これらはスコアリングモデルで追加の重みが付与され、即時対応の推奨につながります。
自社のデジタル露出を評価できますか?
はい。これは最も一般的な用途の1つです。自社のドメインに対して full_exposure_audit を実行すると、外部の第三者に発見される前に、把握していないサブドメイン、未設定の DNS セキュリティレコード、技術スタックの脆弱性を特定できます。これは、低コストで継続的に攻撃対象領域を管理するプログラムに相当します。
ワイルドカードドメインや IP 範囲に対応していますか?
サーバーは標準的なドメイン名(例:acmecorp.com)を受け付けます。internet_service_enumeration ツールでは、Censys の照会に IP 範囲を指定できます。ワイルドカードドメイン(例:*.acmecorp.com)は現在、入力としてサポートされていません。証明書の透明性を通じたサブドメインの検出には、ベースドメインで十分です。
結果はどのくらいの期間、正確な状態を保ちますか? 証明書の透明性に関する結果は、証明書の発行から24~48時間以内の最新情報です。DNS レコードはライブで照会され、現在のゾーンデータが反映されます。Censys のデータには、直近のインターネット全体のスキャン結果が反映されますが、個々の IP については1~7日前の情報となる場合があります。WHOIS データはライブです。監視プログラムでは、週1回の再監査をおすすめします。
露出スコアを GRC または SIEM プラットフォームに統合できますか? はい。各ツールは構造化された JSON を返します。複合スコアと項目別のサブスコアは、データベースへの挿入を想定したトップレベルの数値フィールドです。Apify API またはウェブフックを使用して、結果を Splunk、Elastic、ServiceNow、または API かウェブフック経由で JSON を受け付ける任意の GRC プラットフォームに送信できます。
改善にご協力ください
問題が発生した場合、Apify アカウントで実行の共有を有効にすると、デバッグを迅速に進めるためのご協力をいただけます。
- アカウント設定 > プライバシーに移動します
- 実行を公開 Actor の作成者と共有するを有効にします
これにより、問題が発生した際に実行の詳細を確認できるようになり、より迅速に問題を修正できます。データを閲覧できるのは Actor の開発者のみであり、一般には公開されません。
サポート
バグを見つけた場合や機能の追加をリクエストする場合は、このアクターのページにあるIssuesタブでIssueを作成してください。カスタムソリューションやエンタープライズ向けの連携については、Apifyプラットフォームからお問い合わせください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。