如今,随着对企业网络的网络攻击变得越来越复杂,很多企业通过投资最新的防火墙、数据和端点保护以及入侵防御技术来提高周边安全性。作为回应,黑客正在走上防范阻力最小的道路,并寻找新的开发途径。许多安全专家认为,下一波的黑客攻击将通过利用应用程序编程接口(API)来实现。
实际上,网络攻击者在计划攻击时已经瞄准了API这个目标。面包店咖啡连锁店Panera Bread公司的数据泄露就是一个很好的例子,该公司在其网站上留下了未经验证的API端点,允许任何人查看客户信息,如用户名、电子邮件地址、电话号码、信用卡的最后四位数字、出生日期等。最终,在8个多月的时间内有3700万客户数据被泄露。这就提出了一个问题:如何最大限度地减少与API相关的不断增长的网络安全风险,而不会妨碍他们在敏捷开发和扩展功能方面提供的好处。
API在应用程序开发中的应用已经成为新的事实标准,开发人员利用从第三方提供的服务集成功能,而不是从头构建所需的全部功能。这为新产品和服务提供了更灵活的开发流程。根据One Poll公司的调查研究,每个企业平均管理363种不同的API,其中这些企业的三分之二以上(69%)将其API向公众和他们的合作伙伴开放。开发人员可以通过搜索诸如API Hound之类的API库来扩充他们的代码,API Hound使用机器扫描程序来查找其50,000多个API,或ProgrammableWeb,它维护着世界上最大的人工策略API目录,现在已超过17,000个。
虽然API支持用户已经习惯了这种对企业数字化转型至关重要的交互式数字体验,但是它们为黑客提供了多个可以访问企业数据的场所,甚至可能会导致大规模业务中断。而利用API的常见攻击方法包括:
- API参数篡改 - 黑客通常使用这种技术对API进行反向工程或获得对敏感数据的进一步访问。
- 会话Cookie篡改 - 这些攻击尝试利用cookie来绕过安全机制或向应用程序服务器发送错误数据。
- 中间人攻击 - 通过窃听API客户端和服务器之间的未加密连接,黑客可以访问敏感数据。
- 内容操作 - 通过注入恶意内容(例如,中毒JSON Web令牌),可以在后台分发和执行漏洞利用程序。
- DDoS攻击 - 通过发送无效的输入参数,可能会使用编写不佳的代码来占用计算机资源,从而导致API支持的Web应用程序中断。
为了尽量减少他们对基于API的威胁的暴露程度,组织应采取以下预防措施:
1. 思维安全
不幸的是,DevOps安全(或者现在所称的DevSecOps )在软件开发过程中经常被低估,包括确保面向公众的API。开发人员需要考虑整个开发过程中API使用的安全影响,其中包括API可用于恶意目的的方式。
保护API的基本组成部分在于实现可靠的身份验证和授权原则。对于API,开发者通常使用通过外部过程(例如,在注册API时)或通过单独的机制(例如,OAuth)获得的访问令牌。该令牌与每个请求一起传递给API,并在处理请求之前由API进行验证。
2. 应用通用的行业安全最佳实践和标准
遵守编码最佳实践并密切关注最常见的API漏洞(例如,SQL/脚本注入和身份验证漏洞)应成为开发人员和DevSecOps人员的核心最佳实践。开放Web应用程序安全项目(OWASP)是此类信息的良好来源。
3. 通过API网关进行监控
将不同的API存储在应用程序代码库中时,API网关可用于监控、分析和限制流量,从而将DDoS攻击的风险降至最低,并执行预设的安全策略(例如,身份验证规则)。One Poll公司表示,80%的组织使用公共云服务来保护API背后的数据,大多数企业使用API网关(63.2%)和Web应用防火墙(63.2%)的组合。
采用这些DevSecOps建议可以最大限度地降低与API暴露相关的安全风险,并使应用程序免受网络安全漏洞的威胁。