当企业考虑API安全性时,他们通常关注于保护内部编写的API。然而,并非企业使用的所有API都是内部开发的,有些是由其他企业设计和开发的。问题是,许多企业没有意识到使用第三方API可能会使他们的应用程序产生安全问题,例如恶意软件、数据泄露和未经授权的访问。
第三方API是软件接口,能够使企业在自己的网站或应用程序上利用第三方功能或数据。技术研究和咨询机构ISG公司的网络安全主管Phil Quitugua表示,这些第三方API使开发人员能够将他们的应用程序或系统与外部服务、数据或功能集成在一起。
一些市场流行的第三方API包括导航应用程序、社交媒体平台和数字支付处理工具。DataDome公司的产品副总裁Paul Scanlon表示:“这些API是谷歌公司或Facebook公司等第三方提供的,让用户可以在自己的网站或应用程序上访问他们的数据或功能。每个人都喜欢采用API。通过使各种设备和应用程序能够通过各种通信协议交换信息,API可以帮助开发人员更轻松、更有效地创造出色的用户体验。”
虽然API得以普及应用,但存在着安全的致命弱点——根据Saltsecurity公司发布的《2023年第一季度API安全状况》报告,在过去的一年中,大约94%的企业在生产API中遇到了安全问题,17%的企业遭遇了API相关的漏洞。因此,需要确保第三方API安全性。
为什么确保第三方应用程序的安全如此重要
NCC集团工业和运营技术业务总监Jim McKenney表示,第三方API需要强大的安全性,因为它们可能是弱点。如果它们不安全,可能会泄露敏感数据或导致原始软件出现问题。
McKenney说,“API安全保护程序之间的通信(例如OpenStreetMap的API)免受网络威胁。它可以抵御恶意攻击、未经授权的访问以及API滥用等新出现的威胁。API安全确保了应用程序之间安全可靠的对话。”
Capgemini公司旗下的Sogeti公司负责洞察和数据的副总裁Doug Ross表示,第三方API安全涉及实施认证、授权、加密和监控等措施,以确保API及其数据的隐私、完整性和可用性。Ross说,“API安全性是软件开发的一个关键方面,因为API经常充当不同系统之间的桥梁,并且越来越多地用于交换敏感和关键信息。”
出于许多原因,确保第三方API的安全性至关重要。一方面,API可以访问敏感信息,例如用户数据或支付信息。因此,如果第三方API遭到破坏,则可能导致数据泄露,从而影响最终用户和依赖API的业务。此外,不安全的API可能会使应用程序或系统暴露于漏洞和攻击之下,从而可能导致系统故障或对资源的不适当访问。
第三方API的安全性在维护合规性方面也很重要,因为许多行业都有严格的数据保护和隐私法规,例如欧盟的《通用数据保护条例》(GDPR)和美国的《健康保险流通与责任法案》。Ross表示,确保第三方API的安全性有助于企业遵守这些法规并避免监管机构的处罚。涉及第三方API的安全漏洞可能会损害企业的声誉,导致客户信任的丧失,并可能影响商业伙伴关系。
以下是确保第三方API安全性的五个最佳实践:
(1)维护包含第三方API的API清单
Bionic公司的安全研究员Jacob Garrison表示,维护API清单,使其在代码变化时自动更新,这是API安全程序的重要第一步。它应该区分第一方和第三方API。它还鼓励在不通知安全团队的情况下持续监控影子IT API。
Garrison说:“为了确保企业的库存稳健且可操作,应该跟踪哪些API传输关键业务信息,例如个人身份信息和支付卡数据。”他表示,API清单是对第三方风险管理的补充。当开发人员使用第三方API时,考虑供应商本身的风险评估是值得的。
他说,“例如,假设企业的数据工程团队想要发送个人身份数据到Tableau进行分析,在这种情况下,有必要评估该供应商的安全状况是否在企业的风险承受范围内。”
Invicti Security公司首席技术和安全研究主管Frank Catucci也认为,包括第三方API的清单是至关重要的。
他说:“企业需要让第三方API成为其整体API库的一部分,必须把它们视为自己拥有和负责的资产。所以,确保准确地了解哪些API在哪里运行以及它们在做什么是重要的第一步,因为人们无法保护自己看不到的物品。”
(2)调查第三方API供应商
McKenney表示,企业应该选择具有强大安全措施的信誉良好的提供商,监控可疑行为的API活动,并使用加密措施。例如,只使用来自可信提供者的支付处理API,定期监视API日志中任何异常活动,并确保通过API发送的所有敏感数据都是加密的。
Lexmark公司的首席信息安全官Bryan Willett表示,对于第三方来说,建立供应商安全管理流程非常重要。他说:“这个过程应该与企业的采购过程紧密结合起来,这样所有的供应商和合同都要经过这个过程。这个过程应该由几个子过程组成,包括供应商风险评估、供应商安全评分、持续监控以及合同审查,以确保条款符合企业的风险承受能力。”
(3)确保第三方API的供应商安全测试
Willett表示,重要的是,企业要建立供应商的通用安全控制,以及跨第三方API生命周期不同阶段的安全控制,以确保适当的保护符合他们的风险承受能力。
他说:“例如,人们希望看到安全开发生命周期从培训到整个交付过程根植于企业文化中,以确保从一开始就考虑到安全问题。”Willett表示,这些应该包括解决由供应商开发的源代码和产品中包含的开源库所产生的风险的实践。
Willett说:“用户希望看到供应商有良好的安全测试实践,使用最新的工具来执行静态代码分析、模糊测试和漏洞扫描。在运营领域,希望看到强有力的变更管理流程的证据,对数据进行适当的访问控制,并实施零信任原则。”
供应商还应该有成熟的漏洞管理程序来监控补丁的操作环境,并有一个明确的服务级别协议来确定何时修补漏洞。
(4)自己测试第三方API
Catucci表示即使企业不编写第三方API,也不控制它们,他们仍然可以像测试自己的API一样测试它们。例如,企业可以使用动态应用程序安全测试功能来扫描第三方API,以查找已知的漏洞、易受攻击的组件或可能存在于这些API中的过时组件。
他说,“即使用户没有拥有它们,也必须对它们进行测试,如果发现第三方API有特定的漏洞,用户可以阻止该功能,或者在修复之前不要使用这个API。”
(5)API密钥的轮换
Willett表示,另一个安全考虑是API密钥的轮换。当用户调用第三方API时,他们必须为他们的请求提供一个唯一的字符串,这称之为密钥。这个字符串告诉供应商哪个客户正在进行呼叫。有两个主要原因需要定期轮换密钥。
Willett说,“首先,恶意行为者拦截用户的API密钥,然后他们可以代表生成请求。根据第三方使用的安全协议,这个密钥可能足以提取与用户的帐户相关的敏感信息。其次,第三方API需要支付费用。API密钥用于计费目的。恶意行为者可以使用用户的密钥快速触发API请求,从而提高其账单。基于这两个原因,API安全程序应该包括定期的密钥轮换。”
企业需要保护API
基于API的网络攻击非常复杂,需要同样强大的防御。此外,ThreatX公司的安全策略总监兼首席信息安全官Jeremy Ventura表示,现在第三方入侵比以往任何时候都更加突出。
他说:“许多引人注目的安全漏洞(例如Peloton和Nissan)都是由未受保护的API造成的。攻击一些企业的供应链对那些想要进入网络的网络罪犯来说非常有吸引力。”
Ventura指出,对于企业来说,了解第三方API安全威胁不仅仅是一个IT问题,而且是一个影响所有企业和客户核心业务的至关重要的问题。