随着对企业网络的攻击愈趋复杂,公司企业纷纷购入最新防火墙技术、数据及终端防护、入侵预防技术等强化升级自身边界安全。但道高一尺魔高一丈,黑客们也迈向了新的弱点,找寻新的漏洞利用途径。很多安全专家认为,下一波企业黑客攻击事件将会通过应用程序编程接口(API)利用来进行。
事实上,网络罪犯们早已开始盘算利用API执行攻击了。Panera Bread 数据泄露事件就是其中一个案例。这家烘焙连锁店的网站上开放了一个未经验证的API终端,任何人都可以通过该API查看其客户信息,比如用户名、邮箱地址、电话号码、信用卡后四位、生日等等。最终,8个月的时间里,该公司3700万客户数据被泄。由此,如何在不影响敏捷开发与功能扩展效益的情况下最小化API相关网络安全风险的问题,引起了业界注意与讨论。
应用程序开发中的API使用已成为新的实际标准,通过集成第三方服务的功能,开发人员不用再从无到有自己构建所有功能。这么做可以加快新产品及服务的开发过程。消费研究公司 One Poll 的一项调查表明,公司企业平均管理着363个API,其中69%的公司会向公众及其合作伙伴开放这些API。开发人员可以通过搜索API库来增强其代码,比如 API Hound 库就使用机器扫描器收纳了5万多个API,ProgrammableWeb则维护着全球最大的人工收录的API目录(内含1.7万个以上API)。
尽管API支撑着用户早已习惯的互动式数字体验,是公司数字化转型的基础,但它们同时也为恶意黑客提供了访问公司数据的多种途径,甚至能被用于引发大范围业务中断。利用API的常见攻击方式包括:
- API参数篡改——黑客常用该技术逆向工程API或获得敏感数据的访问权。
- 会话cookie篡改——此类攻击试图利用cookie绕过安全机制或向应用服务器发送虚假数据。
- 中间人攻击——通过监听API客户端和服务器之间未经加密的连接,黑客可获取到敏感数据。
- 内容篡改——通过注入恶意内容(比如往 JSON Web 标记中下毒),攻击者能在后台部署并执行漏洞利用程序。
- DDoS攻击——攻击者可利用编写糟糕的代码通过发送无效输入参数来消耗计算机资源,造成基于API的Web应用服务中断。
公司企业可采取以下预防措施来减少API威胁风险:
1. 安全思维贯彻开发过程始终
一个很不幸的现状是,软件开发过程中DevSecOps(敏捷开发运维安全)往往被忽视,甚至面向公网的API安全也被忽视。开发人员需在整个开发过程中考虑API使用的安全影响,多想想API会在哪些方面被用于恶意目的。
API安全的基础在于实现可靠的身份验证和授权原则。开发人员常会使用来自外部过程(例如注册API时)的访问凭证,或通过单独的机制(例如OAuth)来访问API。凭证随每次访问请求发送给API,API在处理请求之前先验证凭证的有效性。
2. 应用行业安全最佳实践和标准
应用编码最佳实践并密切关注常见API漏洞(例如SQL/脚本注入和身份验证漏洞),应成为开发人员和DevSecOps人员的核心最佳操作。编码最佳实践和常见API漏洞信息可在开放Web应用安全计划(OWASP)中找到。
3. 通过API网关进行监视
将独立的API集中存储到应用代码库中,就可用API网关来监视、分析和限制流量,最小化DDoS风险,实现预设的安全策略(例如身份验证规则)。One Poll 数据显示,80%的公司企业使用公共云服务保护他们API背后的数据,大多数公司综合使用API网关(63.2%)和Web应用防火墙(63.2%)。
采用这些DevSecOps建议可以最小化与API暴露相关的安全风险,让应用程序免受网络安全事件侵害。
【本文是51CTO专栏作者“”李少鹏“”的原创文章,转载请通过安全牛(微信公众号id:gooann-sectv)获取授权】