关于 defender-for-apis
用于通过 Microsoft Defender for APIs 保护 Azure API Management 中已发布 API 的工作流技能。它帮助安全团队按风险处理安全态势发现和运行时威胁;修复需通过 APIM 策略完成。
主要功能
- 01按暴露情况和风险排列 API
- 02通过 Defender for Cloud 接入 API
- 03检查安全态势发现和威胁警报
- 04使用 APIM 策略修复问题
- 05将检测结果发送至安全运营
适用场景
- 01确定暴露 API 的修复优先级
- 02检查敏感数据暴露问题
- 03检测 API 滥用并向 SOC 告警
- 04分级处理新接入的 API 清单
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ vinayaklatthe/ microsoft-security-skills --skill defender-for-apis安装后在 Claude Code 中输入/defender-for-apis确认已加载。
详细介绍
Microsoft Defender for APIs
Defender for APIs 是 Microsoft Defender for Cloud 的一项计划,可帮助你了解在 Azure API Management 中发布的 API 的安全态势,按风险确定优先级,并检测活跃威胁和滥用行为。它用于检测和态势管理,不是 WAF 或 API 网关。
适用场景
在保护已通过 Azure API Management 发布的 API,且需要基于风险确定优先级并检测运行时威胁时,使用此技能。
以下情况请勿使用此技能:
- 从头设计 API 安全(OWASP API Top 10 请使用
api-security-design) - 由 Application Gateway / Front Door 作为前端、但未使用 APIM 的 API(目前不在适用范围内)
- WAF 调优或速率限制设计(应使用 APIM 策略,而非 Defender)
确定优先保护哪些 API
Defender for APIs 默认会载入 APIM 中的所有 API。关键在于确定优先级。 使用此表为清单中的 API 排定优先级:
| 风险信号 | 优先级 | 为何应优先处理 |
|---|---|---|
| 面向外部且未经身份验证 | P0 - 本周 | 已构成攻击面;互联网上的一个恶意请求就可能造成问题 |
| 面向外部且处理敏感数据(PII、支付、健康信息) | P0 - 本周 | 存在敏感数据泄露(OWASP API3)和 BOLA 风险 |
| 面向外部且需要身份验证 | P1 - 本月 | 存在身份验证绕过 / 令牌滥用风险 |
| 内部使用且处理敏感数据 | P2 - 本季度 | 存在内部人员风险和横向移动场景 |
| 超过 90 天未活动或未使用 | 停用 | 可直接缩小攻击面 |
| 内部使用且不处理敏感数据 | P3 - 仅监控 | 即时风险较低 |
**经验法则:**如果 Defender for APIs 在第一天就显示超过 50 个发现项,不要试图全部修复。先筛选面向外部 + 敏感数据的 API——通常有 5-15 个 API,涵盖了 80% 的实际风险。
方法
- 在订阅范围启用计划 — Defender for APIs 是 Defender for Cloud 中按 API 计价的计划(按每百万次 API 调用计费)。在包含 APIM 实例的订阅上启用。前 30 天可免费试用。 验证:Defender for Cloud → 环境设置 → Defender 计划显示“APIs: On”。
- 将 API 载入计划 — 在 Defender for Cloud → 工作负载保护 → Defender for APIs → 载入 中选择 APIM 实例。载入无需重新部署 API。 验证:约 1 小时内填充 API 清单;每个 API 都会显示风险评分和发现项。
- 根据上方的风险表进行分类 — 将清单筛选为外部 + 未经身份验证和外部 + 敏感数据的发现项。将这些视为 P0。
- 在 APIM 层进行修复 — Defender 不会修复问题;应使用 APIM 策略。
- 未经身份验证 → 添加
<validate-jwt>或订阅密钥策略 - 敏感数据泄露 → 检查
set-body/ 响应屏蔽策略 - 过度枚举 → 添加
<rate-limit-by-key>策略 - 非活动 API → 弃用 API 或撤销产品可见性 验证:发布 APIM 策略后 24 小时内,重新扫描后发现项会消失。
- 未经身份验证 → 添加
- 将检测结果接入 SOC — Defender 警报会通过 Microsoft Defender XDR 连接器流入 Defender for Cloud、Defender XDR 和 Sentinel。针对未经身份验证的访问激增和凭据填充模式创建自动化规则。 验证:测试恶意请求(例如,来自单个 IP 的集中枚举请求)会在 15 分钟内于 Defender XDR 门户中触发警报。
- 每月迭代 — 会有新 API 出现,旧 API 会变为非活动状态。每月重新执行风险分类,确保风险优先级保持最新。
注意事项
- 仅限 APIM 范围。 Defender for APIs 只能检测由 Azure API Management 接入的 API。部署在 Application Gateway、Front Door 上或直接通过 App Service 暴露的 API 对它不可见——请将它们路由至 APIM,或使用其他控件。
- 检测不等于防护。 Defender 用于发现问题;APIM 策略用于修复问题。请将 Defender 视为优先级排序引擎,而不是安全边界。
- 定价随调用量变化。 高流量 API(每月数亿次调用)可能产生高额的 Defender for APIs 费用。扩展规模前,请使用 Azure 定价计算器。
- 敏感数据检测采用抽样方式。 Defender 会检查一定比例的 API 响应;不要将其视为完整的数据丢失防护控制——对于已知的敏感字段,请配合使用 APIM 响应屏蔽策略。
- 加入不会改变你的 API。 无需更改代码,也不会影响性能——Defender 会读取 APIM 遥测数据。可在生产环境中安全启用。
常见反模式
- “修复每项发现。” 第一天就会涌现大量发现;团队会因排查低风险内部 API 而疲惫不堪。请使用优先级表。
- “把 Defender for APIs 当作 WAF。” 它不是。WAF 部署在 Front Door、Application Gateway 或 APIM Premium 上。Defender 用于检测和安全态势管理。
- “跳过 APIM,直接调用 Defender for APIs。” 无法做到——APIM 是前提条件。
- “让非活动 API 继续发布。” Defender 会将其标记出来;忽略该标记会让已停用端点继续暴露在攻击面上。
- “加入后就置之不理。” 如果不进行每月排查,新 API 会在未受监控的情况下出现,发现项也会逐渐偏离实际情况。
示例提示词
将 API Management 中的 API 加入 Microsoft Defender for APIs。我应该先用 Defender for APIs 保护哪些 API?如何检测 API 滥用和 API 中的敏感数据暴露?审查 API 安全态势并确定发现项的优先级。在 Sentinel 中设置 API 攻击检测和警报。估算每月 5 亿次调用的 Defender for APIs 成本。
Microsoft Learn
- 概述:https://learn.microsoft.com/azure/defender-for-cloud/defender-for-apis-introduction
- 部署和加入:https://learn.microsoft.com/azure/defender-for-cloud/defender-for-apis-deploy
- 调查发现项(安全态势):https://learn.microsoft.com/azure/defender-for-cloud/defender-for-apis-posture
- API Management - 保护后端:https://learn.microsoft.com/azure/api-management/api-management-howto-protect-backend-with-aad
- API Management - 速率限制策略:https://learn.microsoft.com/azure/api-management/rate-limit-by-key-policy
- Defender for APIs 定价:https://learn.microsoft.com/azure/defender-for-cloud/defender-for-apis-deploy#prerequisites
评论
支持 Markdown