API资产发现:看不见的接口才是最大的风险
接口数量往往超出预期
随着前后端分离和移动端应用普及,系统的接口数量远超页面数量。一个业务系统可能有数百个接口,其中一部分是历史遗留、仅供内部使用,或者仅用于某次活动。这些接口往往缺少文档、没有维护责任人,也很少被纳入安全测试范围。攻击者不需要找到复杂漏洞,只要发现一个未做鉴权的历史接口,就能直接获取数据。
发现方法
第一,流量分析。通过镜像流量或网关日志识别实际存在的接口,包括路径、方法、参数结构和调用来源。这种方式能发现未被文档记录但仍在使用的接口。
第二,代码与配置扫描。从代码路由定义、网关配置和接口文档中提取接口清单,与流量结果做比对,找出差异。
第三,域名与子域名枚举。结合证书透明度日志、域名解析记录和公开信息,发现可能存在的测试环境和旧版本站点,这些环境往往防护较弱。
第四,移动端分析。移动应用的接口地址可能与其他端不同,需要单独提取并纳入清单。
治理流程
第一,建立台账。为每个接口记录路径、方法、用途、所属系统、责任人、认证方式和数据敏感级别。台账是后续所有工作的基础。
第二,分类处置。对确认不再使用的接口下线或从外部访问路径中移除;对内部接口限制来源;对外提供的接口核查认证与授权是否完整。
第三,统一入口。通过网关统一管理,集中实施认证、限流、参数校验和日志记录,避免接口直接暴露在后端服务上。
第四,持续发现。接口变更是常态,发现机制需要持续运行,在新增接口上线时自动纳入台账并触发安全评审。
第五,定期测试。对高敏感接口定期做越权与参数篡改测试,验证权限校验逻辑是否仍然有效。
结语
API治理的第一步是知道有什么。清晰完整的接口台账,既是安全工作的基础,也能帮助研发团队识别冗余和可下线的能力。