关于 Digital Infrastructure Exposure
Digital Infrastructure Exposure 是面向安全团队的 MCP 服务,用于评估域名的公开攻击面。它整合 8 类被动数据源,生成风险评分和修复建议,不向目标发送数据包。
主要功能
- 01并行查询 8 类公开数据源
- 02综合暴露评分与风险维度
- 03发现子域名和互联网服务
- 04检查 DNS、邮件安全与证书
- 05将技术栈与 CVE、CISA KEV 匹配
- 06提供优先级修复建议
适用场景
- 01评估供应商及第三方域名风险
- 02开展渗透测试前期 OSINT 测绘
- 03审查 DNS 与邮件身份验证
- 04发现未登记子域名和影子 IT
MCP 相关
向 MCP 客户端提供 8 种工具,用于域名暴露审计、子域名发现、DNS 与证书检查、技术漏洞匹配等评估。数据来自公开记录和已有扫描索引,采用被动收集方式。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
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 Agent 查询,在数秒内评估任意域名的攻击面。此服务会并行协调 8 个被动数据源:WHOIS、DNS 记录、证书透明度日志、IP 地理位置、技术栈检测、Censys 全网扫描、NVD CVE,以及 CISA 已知遭利用漏洞目录。
不会进行主动扫描。不会向目标基础设施发送数据包。所有数据均来自公共注册机构、全网扫描索引和证书透明度日志。连接一次,你的 AI Agent 就能获取任意域名的结构化安全情报,包括综合数字暴露评分(0-100)和具体的修复建议。
可以访问哪些数据?
| 数据点 | 来源 | 示例 |
|---|---|---|
| 📋 域名注册信息、注册商、到期时间 | WHOIS 查询 | 到期时间:2026-04-12,注册商:Namecheap |
| 🔍 DNS 记录(A、MX、TXT、CNAME、NS) | DNS 记录查询 | SPF:v=spf1 include:_spf.google.com ~all |
| 🔒 SSL/TLS 证书清单 | crt.sh 证书透明度 | mail.acmecorp.com、api.acmecorp.com、cdn.acmecorp.com |
| 🌍 IP 地理位置、ASN、ISP 映射 | IP 地理位置查询 | AS15169 Google LLC,美国(弗吉尼亚州) |
| 🧱 技术栈:CMS、框架、CDN、分析工具 | 网站技术栈检测器 | WordPress 6.4、Cloudflare、Google Analytics |
| 🔭 暴露的服务、开放端口、横幅信息 | Censys 主机搜索 | 端口 443(nginx/1.24.0),端口 22(OpenSSH 8.9) |
| 🛡️ 带有 CVSS 严重性评分的 CVE 记录 | NVD CVE 搜索 | CVE-2023-44487(严重)— HTTP/2 Rapid Reset |
| ⚡ 正在遭利用的漏洞 | CISA KEV 目录 | CVE-2023-44487 — 已知被用于勒索软件:是 |
| 📊 基础设施分散指数(0-100) | 综合评分 | 评分:62 — 分散 |
| 🔐 错误配置评分(0-100) | 综合评分 | 评分:45 — 存在中度缺口,缺少 DMARC |
| 🗺️ 地理集中度 HHI | 综合评分 | HHI:7,200 — 高度集中(1 个国家) |
| 🎯 数字暴露评分(0-100) | 综合评分 | 评分:34 — 存在暴露,4 条建议 |
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 | 绘制托管地域分布图:国家分布、使用 Herfindahl-Hirschman 指数(HHI)衡量的服务提供商集中度、单点故障检测和 NS 冗余检查。 |
internet_service_enumeration | $0.045 | 通过 Censys 枚举面向互联网的服务:开放端口、协议版本、服务横幅和托管服务提供商。 |
compare_org_exposure | $0.045 | 获取域名的完整暴露情况:涵盖全部四个维度的综合评分明细,并可选提供一个基准域名用于比较。 |
为什么使用 Digital Infrastructure Exposure MCP?
安全团队手动收集数字足迹数据时,每个目标都要耗费数小时:运行 nmap、查询 crt.sh、检查 MX 记录、与 NVD 交叉比对,却仍会遗漏与 CISA KEV 的交叉比对。SecurityScorecard 等平台提供类似的被动侦察数据,收费每年超过 $2,000。
此 MCP 服务通过一次工具调用,就能向任何 AI Agent 提供相同的情报处理流程。Agent 使用 full_exposure_audit 查询域名,即可在 90 秒内收到结构化 JSON 报告,其中包含综合评分、四项维度分数和具体修复步骤,费用为 $0.045。
在 Apify 平台上运行的优势:
- 定时运行 — 按日或按周执行暴露审计,自动检测新增子域名或证书变更
- API 访问 — 从 Python、JavaScript 或任何 HTTP 客户端触发,实现安全工作流的程序化集成
- 代理轮换 — 数据采集通过 Apify 的代理基础设施进行,可靠访问所有数据来源
- 监控 — 运行失败或返回意外结果时,接收 Slack 或电子邮件提醒
- 集成 — 将结果连接到 Zapier、Make、Google Sheets、HubSpot 或外发 Webhook,以便导入 SIEM
功能
- 并行查询 8 个数据源 — 使用
Promise.all同时查询 WHOIS、DNS、crt.sh、IP 地理位置、技术栈检测、Censys、NVD CVE 和 CISA KEV,响应时间不到 90 秒 - 基础设施扩散指数 — 从四个维度按 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 计 8 分、每个 HIGH CVE 计 4 分;对于已确认在勒索软件攻击中遭到积极利用的漏洞,额外奖励 30 分 CISA KEV 分数
- 基于 HHI 的地理集中度评分 — 使用赫芬达尔-赫希曼指数评估国家和服务提供商分布,将高于 5,000 的 HHI 标记为高度集中(单一国家、单一服务提供商的配置得分为 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 冗余检查 — 将仅配置单个名称服务器的情况标记为 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,并标记域名注册失效风险。
并购与投资尽职调查
评估科技公司的并购分析师和投资者需要了解目标公司的数字安全状况。运行 compare_org_exposure,生成涵盖全部四个风险维度的结构化风险概况。技术栈中的已知遭利用漏洞会实质性影响估值以及收购后的修复预算。
如何查询数字基础设施暴露数据
-
将 MCP 服务连接到 AI 客户端 — 将服务 URL
https://digital-infrastructure-exposure-mcp.apify.actor/mcp添加到 Claude Desktop、Cursor、Windsurf 或任何兼容 MCP 的客户端(请参阅下方的连接部分)。你需要一个 Apify 账户和 API 令牌。 -
让你的 Agent 审计域名 — 提供目标域名(例如
acmecorp.com),并说明你的需求。你的 Agent 会自动选择合适的工具,你也可以按名称指定工具。 -
等待 30-90 秒 — 服务会并行查询最多 8 个数据源。大多数单工具调用可在 45 秒内完成。
full_exposure_audit会统筹全部 8 个数据源,通常在 60-90 秒内返回结果。 -
查看结构化报告 — Agent 会以自然语言呈现综合评分、各维度子评分以及按优先级排序的建议。也可获取原始 JSON,用于程序化集成。
MCP 工具参数
| 工具 | 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
full_exposure_audit | domain | 字符串 | 是 | 目标域名(例如 acmecorp.com) |
full_exposure_audit | includeSubdomains | 布尔值 | 否 | 在审计中加入子域枚举 |
subdomain_discovery | domain | 字符串 | 是 | 要枚举子域的基础域名 |
dns_security_audit | domain | 字符串 | 是 | 要审计 DNS 安全的域名 |
ssl_certificate_health | domain | 字符串 | 是 | 要检查 SSL 证书的域名 |
tech_stack_vulnerability_match | domain | 字符串 | 是 | 要检测技术栈并匹配 CVE 的域名 |
tech_stack_vulnerability_match | technology | 字符串 | 否 | 要搜索 CVE 的特定技术名称 |
hosting_geography_map | domain | 字符串 | 是 | 要绘制托管地理位置图的域名 |
internet_service_enumeration | domain | 字符串 | 是 | 要枚举服务的域名或 IP |
compare_org_exposure | domain | 字符串 | 是 | 要分析的域名 |
compare_org_exposure | benchmark | 字符串 | 否 | 用于比较的基准域名 |
输出示例
针对 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 | 合并后的全部四个维度的调查结果 |
recommendations | array | 根据评分得出的、按优先级排序的修复步骤 |
审计数字基础设施暴露情况需要多少费用?
此 MCP 服务采用按事件付费定价——每次工具调用收费 $0.045。平台计算费用已包含在内。全部 8 个工具的价格相同。没有月度订阅。
| 场景 | 工具调用次数 | 每次调用费用 | 总费用 |
|---|---|---|---|
| 快速域名检查 | 1 | $0.045 | $0.045 |
| 完整供应商审计(全部 7 个工具) | 7 | $0.045 | $0.315 |
| 每周供应商监控(10 个域名) | 10 | $0.045 | $0.45 |
| 并购尽职调查(50 个目标) | 50 | $0.045 | $2.25 |
| 企业计划(每月 500 个供应商) | 500 | $0.045 | $22.50 |
你可以为每次运行设置最高支出限额以控制费用。达到预算后,actor 会停止运行。
相比之下,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 请求头中将 Apify API token 设为 Bearer token。
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 个来源的数据
调用工具时,服务会构建一个 Actor 调用数组,并将其映射到预先注册的 Apify Actor ID(actor-client.ts)。所有调用都通过 Promise.all 同时执行,每个子 Actor 的超时时间为 120 秒,内存上限为 512 MB。Actor 映射会将 Actor 名称解析为 ID:WHOIS(M7WwJi9RsIxqCtxsh)、DNS(k1EsC3laNunPVzudh)、crt.sh(4Y2KiVoSkeyjPfhPS)、IP 地理位置(04JaB1rtCNabRa2tf)、技术栈检测器(mBdMOhOMY7XtwX99T)、Censys(2jY2b2r4VG46zxsC6)、NVD CVE(36Kmjy7TucAUVh4SN)和 CISA KEV(baoJ9EQl0Rb3hWYMv)。子 Actor 调用失败时会返回空数组,不会中止报告生成——综合评分会平稳降级。
阶段 2 — 基于四种模型进行维度评分
scoring.ts 会针对收集到的数据运行四个独立的评分函数:
基础设施分散度(scoreInfraSprawl):从 crt.sh 的 common_name 和 name_value 字段提取唯一子域名,并存入去重后的 Set。子域名数量按阶梯式评分(≥50 = 30 分,≥20 = 22 分,≥10 = 15 分)。根据 DNS A/AAAA 记录添加唯一 IP/AAAA 地址,并对 DNS 记录数量评分。地理分布按国家数量每个 3 分。Censys 暴露的服务每个 2 分。
错误配置(scoreMisconfiguration):遍历 DNS TXT 记录,检查是否包含 v=spf1、v=dkim 和 v=dmarc 子串。每缺少一条电子邮件安全记录,电子邮件评分就增加 10 分(最高 30 分)。通过解析 crt.sh 结果中的 not_after / expiry / notAfter 字段检查证书是否过期——每张过期证书计 3 分,30 天内即将过期的证书每张计 1 分。通过模式匹配 CNAME 值中的 s3、herokuapp、github 和 azure 字符串,检测可能存在的悬空子域名接管风险。WHOIS 中 60 天内到期的日期会增加域名失效信号。
技术漏洞(scoreTechVulnerability):从技术栈检测器收集唯一技术名称,并存入 Set。NVD 中每个 CRITICAL CVE 计 8 分;每个 HIGH CVE 计 4 分。经 knownRansomwareCampaignUse === "known" 确认的 CISA KEV 条目每个计 3 分(其他条目计 1 分)。同时存在 CRITICAL CVE 和 CISA KEV 匹配项时,会启用最高 15 分的复合评分。
地理集中度(scoreGeoConcentration):针对所有已进行地理定位的 IP,分别计算国家分布和提供商/ASN 分布的赫芬达尔-赫希曼指数(HHI)。如果基础设施仅分布在一个国家或由单一提供商提供,HHI 将达到最高值 10,000。根据 DNS 中的 NS 记录数量评估名称服务器冗余度——仅有一台 NS 服务器计 15 分。
阶段 3 — 综合评分与报告生成
综合暴露评分按加权总和计算:错误配置 × 0.30 + 技术漏洞 × 0.30 + 基础设施分散度 × 0.20 + 地理集中度 × 0.20,然后反转:compositeScore = 100 - riskScore。这意味着综合评分越高,安全态势越好(更接近传统的安全评级)。如果 techVuln.vulnLevel === 'CRITICAL' 且 misconfiguration.misconfigLevel === 'CRITICAL',则会触发关键覆盖规则:无论数值评分如何,结论都将强制设为 CRITICAL_EXPOSURE。系统会根据触发的阈值确定性地生成建议。
获得最佳结果的提示
-
对于未知目标,请从
full_exposure_audit开始。 它会并行运行全部 8 个来源,并通过一次调用提供完整情况。只有在已明确想要了解哪个维度时,才使用针对性工具(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。 DNS 变更经常会导致 DMARC 和 SPF 记录失效。每周自动监控可以在攻击者发现问题之前捕捉到回归。使用 Apify Schedules 配合 webhook 向 Slack 发送警报。 -
使用
compare_org_exposure进行投资组合监控。 该工具的结构化 JSON 输出(将各维度评分作为独立字段)便于插入电子表格或数据库,以跟踪投资组合中不同供应商域名的趋势。 -
解读综合评分时,同时参考分数和判定结果。 39 分(
HIGH_RISK)和 41 分(EXPOSED)在数值上接近,但属于不同的判定区间。长期监控时,始终将判定标签与数值评分一起报告,以避免针对阈值进行策略性操纵。 -
Apify 免费套餐涵盖 100 多次工具调用。 每次调用费用为 $0.045。Apify 每月 $5 的免费额度约可支持 111 次调用,足以使用
full_exposure_audit对 15-20 家组织进行完整的供应商风险评估。
与其他 Apify actors 和 MCP 服务配合使用
| Actor / MCP | 组合使用方式 |
|---|---|
| WHOIS 域名查询 | 单独运行 WHOIS,以分析所有权历史和注册商,而无需触发完整审计的费用 |
| 网站技术栈检测器 | 只需要技术指纹识别而非完整 CVE 流程时,直接使用 |
| 公司深度研究 | 补充企业所有权、财务数据和新闻报道,完善暴露情况报告,用于完整的尽职调查材料 |
| 竞争对手分析报告 | 与 compare_org_exposure 配合使用,在对标竞争对手市场定位的同时评估其数字安全状况 |
| 网站变更监控器 | 监控目标域名的内容变更,并与 subdomain_discovery 发现的新子域名关联分析 |
| B2B 潜在客户筛选器 | 根据数字安全状况为潜在客户评分——具有 CRITICAL_EXPOSURE 的公司可能不是理想的技术采购方或收购目标 |
| HubSpot 潜在客户推送器 | 将暴露评分直接推送到 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 身份验证或 Web 应用漏洞类别(SQLi、XSS 等)。如需主动测试 Web 应用,请使用专用的 DAST 工具。
- 域名注册隐私保护会隐藏 WHOIS 信息 — 如果注册人使用 WHOIS 隐私服务(Domains By Proxy、WhoisGuard 等),所有权和到期时间数据可能会部分隐藏。
- 子 Agent 故障时会平稳降级 — 如果某个数据源暂时不可用,相应的评分维度会返回 0 条数据,并根据可用维度计算综合评分。请检查
allSignals,了解覆盖范围缺口。
集成
- Zapier — 按计划触发
dns_security_audit,并在配置错误级别达到 SIGNIFICANT 或更高时将发现结果发送到 Slack 频道 - Make — 将
full_exposure_audit纳入供应商入驻工作流,并在 Airtable 或 Notion 中创建风险记录 - Google Sheets — 将一组供应商域名的暴露评分数据导出到电子表格,以便进行趋势分析
- Apify API — 通过 HTTP POST 直接调用任意工具,将其集成到现有安全平台、SIEM 或 GRC 系统中
- Webhooks — 在审计完成时接收 Webhook 负载,以便集成到事件响应工作流中
- LangChain / LlamaIndex — 将此 MCP 服务用作 LangChain Agent 中的工具,结合暴露数据、新闻检索和企业情报,自动生成安全简报
故障排除
-
综合评分为 0 或异常偏低 — 这通常意味着所有子 Actor 都返回了空结果。请检查你提供的域名是否有效且可通过公共互联网访问(例如,使用
acmecorp.com,而不是acmecorp或https://acmecorp.com)。不支持内部域名、.local主机名和 IP 地址。 -
网站上明明能看到技术栈,技术漏洞评分却为 0 — 技术栈检测器会从 HTTP 标头和 HTML 内容中发现技术。使用严格 WAF 的网站,或未进行服务端渲染的单页应用,可能只会返回极少的技术信号。CVE 搜索也需要匹配的查询词——请尝试显式提供
technology参数(例如,technology: "WordPress")。 -
未检测到证书问题 — 对于新注册的域名,或从未通过浏览器信任的 CA 签发 SSL 证书的域名,crt.sh 可能不会返回结果。自托管的内部 CA 不会记录到公共证书透明度日志中。
-
compare_org_exposure和full_exposure_audit返回相同的数据 — 这两个工具都会运行完整的暴露情况报告流程。compare_org_exposure返回更精简、针对对比工作流优化的 JSON 结构,而full_exposure_audit返回包含所有原始来源数据切片的完整嵌套报告。 -
运行时间超过 90 秒 — Apify 平台负载较高时,子 Actor 排队可能会增加延迟。这种情况并不常见。如果运行时间持续超过 120 秒,说明子 Actor 已达到超时限制——通常是 Censys 或 NVD 很快就返回了无结果,但其他来源响应较慢。该 Actor 会妥善处理这种情况,并返回已收集的所有数据。
负责任地使用
- 此服务访问的所有数据均可通过开放注册库、证书透明度日志和已发布的互联网扫描数据集公开获取。
- 此工具仅执行被动侦察,不会进行主动端口扫描、身份验证测试或漏洞利用。
- 使用暴露情况数据时,请遵守你所在司法管辖区的计算机欺诈与滥用法规。评估自有基础设施或开展经授权的供应商评估,均属于常见的合规用途。
- 未经授权,不得将此工具用于针对组织的准备工作,以便进行未经授权的访问。
- 有关网页抓取和数据收集合法性的指南,请参阅 Apify 的法律指南。
常见问题
数字基础设施暴露评分与 SecurityScorecard 或 BitSight 有何不同? 此 MCP 服务会针对相同的被动数据源,应用四种独立的评分模型(基础设施分散度、错误配置、技术漏洞、地理集中度)。SecurityScorecard 和 BitSight 是 SaaS 平台,年费合同起价为 $2,000+。此服务按查询付费,每次调用 $0.045——无需合同,无最低消费,并会在返回评分的同时提供原始数据,以便你审查评分方法。
扫描数字基础设施暴露情况是否合法? 合法。所有数据均来自公开可用的来源:WHOIS 注册库、DNS 解析、证书透明度日志(其设计目的就是公开)以及 Censys 预先扫描的互联网数据。不会向目标基础设施发送数据包。从法律性质上说,这相当于阅读已公开发布的信息。请参阅 Apify 关于抓取合法性的指南。
此工具会主动扫描或向目标域名发送探测请求吗? 不会。所有数据均来自现有索引和公共注册库。Censys 数据反映的是其自身定期进行的 IPv4 扫描,并非此服务进行的实时探测。此服务不会与目标基础设施建立连接。 Digital Exposure Score 的准确度如何? 综合评分反映了各子 Actor 返回数据的质量和完整性。具有丰富公开痕迹的域名(证书数量多、被 Censys 索引的服务多、可检测到的技术栈丰富)会得出依据充分的评分。互联网存在度较低的域名,在暴露面扩展维度上的评分可能会产生误导性偏低,因为可发现的信息较少——请结合原始信号数据解读较低的暴露面扩展评分。
一次会话中可以审计多少个域名? 每次工具调用审计一个域名。对于多域名工作流,请通过 AI Agent 按顺序多次调用工具,或循环使用 Apify API。调用次数没有硬性限制——只有支出限额会限制调用量。
我可以使用数字基础设施暴露数据进行自动化供应商监控吗?
可以。使用 Apify Schedules,按每周频率对供应商域名列表运行 full_exposure_audit。结合 Webhook,将评分变化推送到 SIEM 或 Slack 频道。这是最常见的企业用例之一。
dns_security_audit 和 full_exposure_audit 有什么区别?
dns_security_audit 只查询 DNS 记录和 WHOIS,生成聚焦于错误配置的评分,涵盖电子邮件安全(SPF/DKIM/DMARC)、失效的 CNAME 和注册到期情况。它运行更快,费用相同($0.045)。如果只需要 DNS 卫生数据,请使用它。full_exposure_audit 会额外添加六种数据源,并生成完整的综合报告,涵盖技术漏洞和地理集中度维度。
技术栈与 CVE 的匹配如何运作? 服务会调用技术栈检测器,识别目标域名上的技术,然后使用域名或技术名称查询 NVD CVE 数据库。CRITICAL CVE 每个计 8 分,HIGH CVE 每个计 4 分。系统还会交叉比对 CISA KEV 目录,以确定哪些 CVE 已确认在实际攻击中遭到利用——这些 CVE 在评分模型中权重更高,并会触发立即采取行动的建议。
我可以评估自己公司的数字暴露情况吗?
可以,这是最常见的用例之一。对自有域名运行 full_exposure_audit,在外部人员发现之前识别未知子域名、缺失的 DNS 安全记录和技术栈漏洞。这相当于一个低成本的持续攻击面管理计划。
该服务支持通配符域名或 IP 范围吗?
该服务接受标准域名(例如,acmecorp.com)。internet_service_enumeration 工具接受 IP 范围以进行 Censys 查询。目前不支持将通配符域名(例如,*.acmecorp.com)作为输入——通过证书透明度发现子域名时,只需提供基础域名即可。
结果的准确性会保持多久? 证书透明度结果在证书签发后 24-48 小时内保持最新。DNS 记录会实时查询,反映当前区域数据。Censys 数据反映其最近一次全网扫描结果,对任何给定 IP 来说,数据可能已有 1-7 天。WHOIS 数据为实时数据。对于监控计划,建议每周重新审计。
我可以将暴露评分集成到 GRC 或 SIEM 平台吗? 可以。每个工具都会返回结构化 JSON。综合评分和各维度子评分都是顶层数值字段,便于写入数据库。使用 Apify API 或 Webhook,将结果传入 Splunk、Elastic、ServiceNow,或任何可通过 API 或 Webhook 接受 JSON 的 GRC 平台。
帮助我们改进
如果遇到问题,您可以在 Apify 账户中启用运行共享,帮助我们更快地排查问题:
- 前往 账户设置 > 隐私
- 启用 与公开 Actor 创建者共享运行记录
这样在出现问题时,我们就能查看您的运行详情,从而更快地修复问题。您的数据仅对 Actor 开发者可见,不会公开。
支持
发现了错误或有功能请求?请在此 Actor 页面上的 Issues 标签页中提交 issue。如需定制解决方案或企业集成,请通过 Apify 平台联系我们。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。