网络安全 频道

如何确保API在企业的安全使用(二)

  API安全问题以及如何避免它们

  除了诸多优点外,应用编程接口也存在安全问题,正如最近的安全泄露事故所显示的。安全问题通常不在于API背后的概念,而在于它的编码方式。很多应用开发人员在编写或使用API时没有考虑安全因素,使得应用和数据处于危险之中。当涉及API时,糟糕编写的代码很快就会变成危险代码。

  所幸的是,企业及其开发人员可以采取一些措施来加强和确保API在企业环境的安全性。

  在开发过程(当然是在发布应用之前)中,安全专家应该手动检查API代码,以测试它是否可能被攻击者滥用或误用。文档记录也很关键,清楚记录的代码让安全人员可以看到API应该以及不应该做什么,并让整合API到应用的人了解如何正确部署API。

  在文档中,开发人员应该明确如何调用API、哪些数据将被返回以及以何种格式,还有可能出现什么错误消息。内部记录还应该指明谁可以访问API以及哪些信息将被记录以确定哪些资源出于审计目的被谁在何时访问。在访问的话题上,在适当的时候,机器ID应补充身份验证检查。并且,还应该检查每个API调用以确保用户或设备有正确的权限来查看、编辑或删除所需信息。然而,在用户身份验证后,很多开发人员通常省去了二次访问控制检查。

  对于检查API如何处理突发性输入和请求,黑盒测试和模糊测试是关键。同样重要的是,通过数据验证例程来防止标准注入漏洞和跨站请求伪造攻击,因为调用API可能来自不受信任的来源。此外,应该在所有类型的端点进行测试,而不只是对web浏览器。通过非浏览器应用(例如移动应用)访问时,很多API未能部署SSL,所以一定要确保数据始终是加密状态--当没有要求纯文本格式时。渗透测试和漏洞评估也应该侧重于API,因为它们是应用的接入点。

  试图利用第三方的API的企业必须确保其开发人员完全了解如何安全地部署它们,并验证所有来自这些API的响应。很多开发人员(无论是来自第三方还是内部开发人员)喜欢重复使用互联网发现的代码,特别是涉及如何调用特定API时。然而,复制和粘贴代码,而不检查它是否适合于特定内容,这是API相关漏洞进入应用的常见情况。

  企业必须记住:虽然开发速度可能很重要,但对细节的注意也很重要。开发人员必须仔细阅读API文档,永远不要依赖于互联网上的道听途说。企业的开发时间表应该给开发人员足够的时间来了解如何正确地部署API,以及了解API可能带来的潜在风险—特别是当涉及共享用户数据时。糟糕编写或部署的API可能引入攻击向量,并增加了与机密性、完整性、可用性和可问责性的风险,因为它们是企业资源的网关。并且,企业应该尽可能地避免没有开放的丰富文档的API。如果加密密钥被用作调用API的访问和身份验证机制,它们必须根据政策安全地存储,永远不要硬编码到配置文件或其他脚本。

  API的问题不太可能会很快消失;并且API正在成为现代开放企业的基石。鉴于其重要性,API应该得到创建和使用API的人的更多重视。如果安全地部署,API可以让企业充分利用其自己和其他人的数据,同时确保便利性和安全性。如果部署不当,API可能被攻击者利用来攻击企业及其用户。

0
相关文章