抵御攻击的关键——保护API

标签:安全云计算产品

访客:43320  发表于:2015-12-04 10:10:28

自1960年代结构化编程出现以来,API一直是软件开发的重要因素。API是一组函数或例行程序,其目的是完成特定任务或提供一种简单方法来与软件组件交互,这通常允许对通用流程进行自动化以更好地与在其他机器运行的服务交互。

抵御攻击的关键——保护API

现在,保护API变得越来越重要。虽然API已经被使用了几十年,而近年来Web 2.0和云计算的到来让API的数量和使用都大幅增加,目前有超过14万公共API。其中Facebook、谷歌、Twitter、eBay和Amazon提供的API可能是最著名的,还有很多其他企业也通过提供API来提供对其内部数据的访问。例如,Salesforce公司的客户可以使用其API来整合Salesforce服务到他们的系统,正如Facebook Platform API让开发人员可以创建数千应用和服务来访问Facebook数据一样。

API带来的商业机会几乎是不可抗拒的,但API提供商和API消费者需要确保API部署的安全性,让攻击者无法使用它们来攻击企业或其用户。根据云安全联盟表示,不安全的API是云计算面临的最大的威胁之一。

API安全风险的性质

API提供了对应用功能的访问权限,这意味着它们增加了攻击面,并且,攻击者会尽全力滥用或寻找流行API代码中的漏洞,因为它们可以被用来攻击大量应用和用户。为了说明这一点,让我们假设一个虚构的公司:MashOurDataInc公司,该公司提供API以允许开发人员从其数据中心提取数据。攻击者已经成功地将恶意脚本注入到主要数据库,如果MashOurDataInc公司的API代码在响应API请求发送数据之前没有清洗数据,那么,攻击者的恶意脚本可能会发送到使用MashOurDataInc的API的任意应用,这意味着成千上万的用户将受到影响。

保护API来降低风险

如果开发人员在构建应用或服务时通过API使用第三方数据,那么,在代码中使用这些API之前,开发人员必须完全明白它们的工作原理以及应该如何调用它们,以免制造潜在的漏洞。这就是说,开发人员需要阅读所有相关的API文档,其中应该包含保护API函数或例行程序的部分,例如如何调用API、需要怎样的身份验证、哪些数据将会返回以及以何种格式,可能出现哪些错误。

对正在使用的API构建威胁模型可以帮助企业了解攻击面,并确定潜在的安全问题,从而在一开始就可以构建适当的安全缓解措施。Firebug和Chrome Developer Tools等调试工具可以帮助确定和检查API生成的数据流,并突出应如何保护API。

如果应用接收第三方传输的数据,则不应该认为这些数据已经被清洗或正确验证。开发人员必须构建数据清洗和验证例行程序以防止标准注入漏洞和跨站请求伪造攻击,特别是对于传输JSON和XML消息或用户生成的内容的API,因为所有这些数据都来自不受信任来源。此外,在调用API之前,企业还需要验证用户或设备具有正确的权限来查看、编辑或删除请求的数据;很多开发人员在用户经过身份验证后没有进行二次访问控制检查。

企业开发API以允许他人来访问其内部数据系统时,应该专注于构建和测试控件来管理对API的访问权限。这些控制应该明确他人对不同类别的数据可以做什么以及不能做什么。此外,在允许查看、编辑或删除数据前应该进行二次访问控制检查。

企业还应该记录保护API的要求,这会让企业更容易确保后续代码更改仍然满足针对个人或敏感信息的数据处理政策要求。同时,企业还需要记录哪些信息应该进行日志记录以捕捉谁、什么以及何时在访问API,以满足审计要求。企业应该分析这些日志记录--最好通过安全信息和事件管理工具,从而检测和阻止任何异常行为(例如暴力攻击)。

API可以创造无数的机会来提高客户服务和互动,并可帮助提高生产效率和利润;它们甚至成为有些公司立足的产品或服务。然而,考虑到API带来的潜在风险,企业应该将风险缓解作为任何API集成战略的核心。

评论(0)

您可以在评论框内@您的好友一起参与讨论!

<--script type="text/javascript">BAIDU_CLB_fillSlot("927898");