去年10月,来自美国德州大学奥斯汀分校和斯坦福大学的研究人员分析了各种知名web服务,并发现暴露给第三方开发人员的接口存在重大漏洞。亚马逊和PayPal的支付服务、Trillian即时通讯服务、Chase手机银行服务和其他web应用程序在它们的SSL(安全套接字层)协议部署中都存在漏洞,当通过API访问时,这些应用程序将面临威胁。
其结果是,应用程序可能被诱骗为允许攻击者通过API访问客户数据。研究人员在其报告中表示:“大多数这些漏洞的根本原因是底层SSL库中API糟糕的设计。”
在2012年,API的问题其实就已经引起了一些关注。在11月份,安全研究人员Carlos Reventlov发现图片分享服务Instagram中存在一个漏洞,该漏洞将允许中间人攻击者访问或者删除个人的照片。在4月份,微软研究所发现Facebook、Google ID和PayPal的单点登陆服务中使用的逻辑存在严重漏洞。
Solutionary的安全工程技术研究小组(SERT)的威胁分析师Christopher Barber表示,这个问题的解决办法并不是什么新技术,而是在于对细节的关注。
Barber表示,“部署水平并没有达到我们期望的水平,非常参差不齐,在软件开发中,你必须在某个时间期限内实现某些功能,而安全总是被抛在脑后。”
按时完成Web应用程序的压力,加上部署SSL的复杂性,使创造安全的API非常具有挑战性。来自这两所大学的研究人员建议开发人员应该更加明确应该如何正确地使用其API和SSL库。此外,云服务应该定期对其代码进行黑盒测试或者模糊测试,来看看当攻击者试图攻击时应用程序的行为。
帮助客户管理API的公司Layer 7首席技术官K. Scott Morrison表示,就其性质而言,API给web应用程序带来更大的攻击风险。“对于攻击者而言,API是非常有指示性的工具,能够告诉你应用程序如何运行,”他表示,“它具有自我描述性,能够为应用程序提供路线图。”
除了正确加密和审计应用程序外,开发人员还需要考虑身份问题,谁在访问API以及他们被允许访问哪些类型的数据。让问题更加复杂的是,大部分时候是应用程序,而不是特定的人在访问数据。
最后,很多web开发人员类似黑客的态度并不是云服务供应商及其客户对处理API应该采取的方法。Morrison补充说,“我们做了很多重新使用的工作,我们的一些坏习惯也被带入API世界。不幸的是,这些习惯在网络世界在API世界将会带来非常破坏性的影响。”