本文来自安全牛。
作为数字经济和信息社会的核心资源,数据对国家治理、经济运行机制、社会生活方式等产生着深刻影响。数据在流动、分享、加工和处理的过程中创造价值,但其前提是保障数据安全无虞。因为庞大的数据足以勾勒出数以亿计的人物画像,而支撑这些庞大数据高速传输的重要通道,便是API。因此,API接口安全将很大程度决定了互联网数据的安全。
PART1
API资产不明引发安全困境
据《Salt Labs State of API Security Report,Q1 2022》报告,在受访者最关心的API安全问题中,僵尸API以43%占比高居第一;远超过以22%的占比位居第二的账户接管/滥用;还有83%的受访者对组织API资产清单是否完整没有信心。
为何企业对僵尸API及API清单完整度有如此大的担忧?安全隐患往往藏于“未知”,未知的僵尸API、未知的影子API、未知的敏感数据暴露等,根源都在于企业对API资产全貌的未知。安全的管理与防护始于“已知”和“可见”,人们难以掌控那些被遗忘的、看不见摸不着的资产安全状况。然而正是这些被人遗忘、不可管控的API,因其往往潜藏着未被修复的漏洞,备受攻击者青睐。
即便是企业已经开始重视并着手治理僵尸API问题,也仍有一处容易被忽略的巨大风险——僵尸参数。不同于那些被彻底遗忘的僵尸API,这些僵尸参数有可能还存在于当前仍在服务且持续维护的API接口中。常见的僵尸参数,例如在开发测试周期内设置的调试参数、系统属性参数,它们在接口正式上线后未对外暴露给用户,但仍能被暗处的攻击者恶意调用。攻击者基于僵尸参数,能够利用批量分配等漏洞获得越权的响应。一旦这些未知的API脆弱点被恶意利用,背后的核心业务数据、平台用户数据等海量敏感数据在黑客面前就宛如“裸奔”了,再无秘密可言。
PART2
API资产的可知、可视、可管
如何更好地管理API全貌资产,而非仅是管理“已知”资产?传统的API管理方案往往是通过API网关进行资产管理与更新,业务开发人员在开发过程中需及时将新开发的API注册在API网关上,并在API内容发生改变时同步更新API定义内容。在这种资产维护方式下,资产清单的准确性与有效性完全依赖于人工管理。
随着企业业务快速扩张,开发人员在不可避免地需要交付更多功能、加快发布速度以适应千变万化的市场,不断上线大量新版本API。如此快速的迭代对API资产维护提出了很高的要求,一旦人工维护出现纰漏,僵尸API、僵尸参数等便会不断积聚,造成恶性循环。
另需注意的一点是,关注僵尸API、影子API等API资产管理漏洞的往往是企业的安全人员,而API网关通常由业务部门维护。也就是说,安全人员对API风险的防控工作,是以业务人员的API资产维护工作为基础的,这之间就存在跨部门协作的壁垒问题。
那么,如何解决上述的API资产清单人工维护成本高且准确性难以保障的问题?如何打破安全部门与业务部门在API资产管理协作上的壁垒?面对这两大问题,传统的API网关管理模式已不再有效,需要引入新的管理模式——API资产发现,实现对全貌API资产的自动盘点与分析。
PART3
API资产发现的应用实践
为了实现API的安全应用,企业组织需要进行全面的API资产发现,从API资产盘点,到API路径折叠与规范化,再到进一步的敏感数据暴露面清点。基于以上设计思路,网宿安全在API防护产品上进行应用实践,已可较好实现API资产的可知、可视、可管。
1.全自动的资产盘点
基于流量数据分析,无需改变用户现有部署架构,实时盘点流量中的API资产。全自动梳理API列表资产、API参数资产、API调用方法等多维度API资产清单。根据预定义的API流量请求特征,结合机器学习的API流量基线,持续性地捕获流量中的API资源。区别于普通URL资源,API在数据传输格式、资源/操作定义等方面具有其鲜明的特性。通过对全量API列表资产进行进一步分析,描绘其请求趋势、响应状态、被调用方法等接口活跃状态,即可令API列表资产可视、可知。
API资产自动盘点的范围不仅限于API列表资产,清点参数资产同样重要。针对捕获到的API列表清单,API防护产品需要能够通过建立正常用户数据传输基线,识别API调用需携带的参数名称、参数位置、参数类型、是否为必带参数等,甚至提炼请求Body的数据结构,从而为企业充分清点全量API列表资产中正被使用的参数资产,发现僵尸参数或是攻击伪造的恶意参数。
2.API路径折叠与规范化
API资产中,存在众多类似“api/test/111”与“api/test/112”这样路径高度重合的API端点。进一步观测这些近似的API端点,会发现它们往往也具有相同的用途。这些API端点往往仅有固定位置的路径参数不同,而路径参数的变量多达成百上千。
这类路径、用途高度重合的API端点若全盘列出,可能会造成API资产列表过于庞大的问题。充斥着这些冗余数据的海量列表给管理增加了难度,甚至难以完成人工确认。因此,API防护产品需要能够持续分析这类高重合度的API端点,将这些端点在API资产列表中进行折叠,并将路径中的变量规范为路径参数,以进一步联动后续防护模块进行参数合规检测。
3.敏感数据暴露面清点
各类敏感数据在接口传输过程中飞速流转,有些敏感数据是必要传输内容,但有部分敏感数据因接口的过度暴露而遭到不必要的泄露。在实际应用中,敏感数据暴露面的清点可有助发现此现象。敏感数据识别引擎实时分析、判别请求数据与响应数据中流转的敏感参数信息,智能识别身份证、手机号、银行卡号等敏感数据,分析与统计全盘API敏感数据暴露态势,帮助企业摆脱敏感数据“灯下黑”的困境。