随着对企业网络的攻击愈趋复杂, 公司企业纷纷购入最新防火墙技术, 数据及终端防护, 入侵预防技术等强化升级自身边界安全. 但道高一尺魔高一丈, 黑客们也迈向了新的弱点, 找寻新的漏洞利用途径. 很多安全专家认为, 下一波企业黑客攻击事件将会通过应用程序编程接口 (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 暴露相关的安全风险, 让应用程序免受网络安全事件侵害.
来源: http://zhuanlan.51cto.com/art/201807/578117.htm