探索5类API漏洞及其防范方式 报告内容 前言3 什么是API漏洞?3 漏洞类型:已知漏洞4 如何防范5Akamai API Security如何为您提供帮助6 漏洞类型:影子API、恶意API、僵尸API和已弃用的API7 如何防范8Akamai API Security如何为您提供帮助8 漏洞类型:外部暴露 如何防范10Akamai API Security如何为您提供帮助10 漏洞类型:错误配置和操作员错误11 如何防范12Akamai API Security如何为您提供帮助12 漏洞类型:未发现的漏洞 如何防范13Akamai API Security如何为您提供帮助14 5种漏洞类型,5项防范原则15 前言 API可以帮助企业与合作伙伴、供应商及客户交换数据,从而连通企业的各个环节。但在大多数企业中,API安全防护仍然不够全面。事实上,对于众多公司来说,近年来易受攻击的API已然成为众矢之的,使得攻击者不断滥用它们来获取敏感数据,然后将这些数据出售给其他攻击者或者公之于众。2024年,消费者电信、企业计算和虚拟协作领域的全球众多品牌都遭遇了API攻击事件,大量客户数据及其他敏感数据遭到泄露,造成巨大经济和声誉损失。 什么是API漏洞? 简而言之,只要出现任何故意不当使用或滥用API的行为就表明存在API漏洞,而此类行为的目的通常是获取敏感数据。API漏洞的类型可以根据不同的标准进行细分。为了识别风险并避免生产运营中出现漏洞,可以考虑以下将风险分为五种类别的方案: 1.已知漏洞 •攻击者会利用尚未修补的已知漏洞。 2.影子API、恶意API、僵尸API和已弃用的API •不受管理以及被遗忘的API会导致运营容易受到攻击。 3.外部暴露 •凭据、密钥和其他暴露可能超出了您的控制范围。 4.错误配置和操作员错误 •基础架构和服务中的安全系统配置不当可能会为攻击者创造利用漏洞的入口点。 5.未发现的漏洞和错误 •即便您已经竭尽全力来建立安全屏障,但攻击者仍会想方设法从生产环境中找出任何可能的错误和漏洞。 本电子书将说明这五类API漏洞中发生安全故障的位置以及如何进行防范。另外还将帮助您重点关注API安全计划中的特定薄弱环节,以最大限度地提高API安全性并降低风险。 漏洞类型:已知漏洞 利用尚未修补的已知漏洞发起的API攻击屡见不鲜。如果犯罪分子想要获取您的数据,那么对他们来说,第一步往往是检查您的企业是否留有任何后门。 2024年1月,某个攻击者通过利用缺少身份验证控制措施的API端点,成功入侵一款使用广泛的项目管理工具。在入侵此API后,该攻击者未经授权便访问了数百万用户的信息,并且几个月后在互联网上泄露了超过21 GB的数据,包括电子邮件地址和董事会成员信息。 身份验证和授权问题是最常见的API问题之一。OWASP十大API安全风险提供了有关各企业必须防范的10个最严重API漏洞(包括失效身份验证)的信息。 除了保护API免受OWASP十大风险中各类风险的侵扰之外,各企业还应该保护API代码,使其免受常见漏洞和风险(CVE)完整列表中相关漏洞的影响,该列表由MITRE运营的美国国家网络安全联邦资助研究与发展中心(FFRDC)编制。您可能还记得广为人知的ApacheLog4j 2漏洞(CVE-2021-44228),它也称为“Log4Shell”。Log4j库是一个用于Java编程语言的热门开源日志记录库,由于该库中存在的一个缺陷,攻击者能够远程执行任意代码来获取系统访问权限。他们会定期探查企业系统中是否存在与之类似的已知漏洞。 在美国,网络安全和基础架构安全局(CISA)负责维护已知CVE的目录。其他国家或地区也可能维护着类似的目录。 OWASP十大API安全风险列表创建于2019年,并于2023年进行了更新。尽管它很有用,却跟不上攻击面的变化速度。仅在2024年,CISA的目录中就新增了24,000多个新的CVE,其中超过500个CVE与API相关(截至2024年8月中旬)。 若想全面保护贵企业免受已知漏洞的影响,需要双管齐下: 1.确保您的开发和测试过程足够可靠,能够避免将已知漏洞带入生产环境中。 2.在发现新的漏洞后,尽快修补这些漏洞。 很多企业都难以完成这两个步骤。除此之外,他们还使用来自第三方来源的API和代码,这可能会带来一些单独的漏洞。2022年,一个研究团队发现了一些严重API缺陷,这些缺陷影响了整个汽车行业中多家制造商。这些缺陷会暴露敏感的客户数据甚至车辆的位置,使攻击者能够通过被入侵的远程管理系统来解锁、启动汽车或使其无法运转。 如何防范 贵企业要抵御已知漏洞可能造成的API攻击,一个众所周知的方法就是在安全补丁发布后迅速更新软件和系统。另外,还必须确保您的开发和测试过程综合全面,并严格遵循API安全防护最佳实践。其中包括: •保护您的软件供应链:确保您使用的所有库、开源软件(OSS)和其他第三方代码都是安全的。•实施左移安全测试:将与API安全和软件测试相关的任务移至开发过程早期阶段。这可以帮助您发现一些漏洞,例如开发人员团队在需要快速发布软件或更新的压力下出现的代码编写错误和配置错误。•利用API安全态势管理:此功能将API发现与敏感数据识别及漏洞检测功能相结合,可确保修复工作首先集中在最关键的API上。 Akamai API Security如何为您提供帮助 借助Akamai API Security,您的团队可以减少每个新的构建版本中的已知漏洞,同时无需牺牲速度。API Security是一个专门构建的API安全测试解决方案,可全面覆盖API相关的漏洞。主动测试可帮助将API安全测试融入开发的每个阶段。 •根据对应用程序业务逻辑的了解,寻找并测试每个API。•通过集成到整个软件开发生命周期中来实现左移。在整个CI/CD流程中,团队可以跨多个状态和环境中获得动态的API监测能力。•为开发人员提供出色的可用性,包括简单的设置和自动化、联合测试结果以及用于修复已识别问题的情境指导。 此外,API Security的态势管理让您可以全面了解流量、代码和配置,以评估您的API安全态势。API Security会尽可能查看更广泛的来源以检测漏洞,包括日志文件、历史流量回放、配置文件等。它还会检测是否存在OWASP十大API安全风险中的漏洞(要详细了解态势管理,请参阅“错误配置和操作员错误”一节)。 漏洞类型:影子API、恶意API、僵尸API和已弃用的API 您无法保护看不见的资产,而在很多公司内,很大一部分API都不受管理,这使得影子API、恶意API、僵尸API和已弃用的API(请参阅下一页的侧栏)成为您的API资产中未被察觉或未加考虑的目标。此外,攻击者往往会查看某个企业已暴露的API,然后进行模糊测试或修改值以查找旧版本,从而搜寻可利用的API变体。 这正是澳大利亚一家大型电信公司的遭遇,他们意外暴露了超过1120万条客户记录,包括姓名、地址、出生日期和政府签发的一些身份证件号码,因此遭受了攻击。此次攻击利用了一个用于测试的API,而该API出于某种未知原因可通过开放的互联网进行访问。由于此异常API缺少身份验证检查,攻击者乘机请求并接收数百万条记录。 大多数企业在运营中会用到各种遗留API和新API。不幸的是,很多人都会发现自己身边存在着各种恶意API、僵尸API和影子API,而这些API导致企业面临一系列网络安全风险和运营难题。 这些被忽视的API有各种来源: •商业API:一些商业软件包会包含用于连接其他应用程序及外部数据源的API。这些API可能会被激活却无人觉察(这是可以通过全面API发现解决的问题)。•旧API版本:在很多情况下,某个API的旧版本可能安全防护能力较差或者存在已知漏洞,但从未被删除。在软件更新期间,旧版本可能需要与新版本共存一段时间,但当进程故障导致无法关闭旧API时,该API便会变为僵尸API。•走捷径和进程故障:那些虽被创建但未告知IT或安全团队的API就会形成影子API。例如,某个业务线团队可能会创建用于满足特定需求的API而未告知IT或安全团队,或者某个开发人员可能并未遵循相关过程。•继承的API:因合并或收购而继承的API也经常会被忽略而成为影子API。•重新激活的代码:在某些情况下,API的旧版本可能会意外被重新激活。 攻击者寻找的不受管理的高风险API 如何防范 若想通过手动API审核来记录必须准确清点的所有输入,可能需要花费几个小时的时间,考虑到还要评估和处理发现的每个API,所需时间会更多。这对本已负担过重的安全团队来说无疑是不现实的。为了保护您的企业免受恶意API、僵尸API和影子API被利用的影响,您需要能够识别正在使用的各类API的自动化API发现功能。然后通过它来找到并清点您的整个运营过程中的每个API,并且发现不受API网关管理的API和API域,这对您至关重要。 影子API(也称为“未明确记录的API”)存在并运行于企业官方监控的渠道之外。它们可能是善意的开发人员为了加快工作速度而创建的,也可能是先前的软件版本的残余部分。 恶意API是未经授权或恶意的API,会对系统或网络构成安全风险。 Akamai API Security如何为您提供帮助 API Security会利用广泛的集成来源来提取API数据,例如原始流量、日志记录等。利用从这些来源中得到的数据,API Security可以识别API及其错误配置和漏洞,以及API滥用。我们的发现工具可以检测是否存在OWASP十大API安全风险中的漏洞。 僵尸API包含被新版本或其他API完全取代后仍处于运行状态的任何API。 已弃用的API是由于API发生了变化而不再推荐使用的API。虽然已弃用的类、方法和字段仍处于实现状态,但它们可能会在未来的实现中被删除,因此您不应该在新代码中使用它们。 借助附加的发现功能,您可以: •找到并清点所有API,无论配置或类型如何(包括RESTful、GraphQL、SOAP、XML-RPC、JSON-RPC和gRPC) •发现休眠、遗留和僵尸API•识别被遗忘、被忽视或未知的影子域名•维护API清单并确保API文档记录准确无误 漏洞类型:外部暴露 外部的API漏洞通常由不良实践或程序错误所导致,例如API密钥和凭据泄露、API代码和架构暴露、文档管理松散和代码库漏洞。因此,使用合适的功能来发现运营边界外的潜在攻击媒介已成为当务之急。去年,多起备受瞩目的数据泄露事件就是外部来源的API密钥或其他凭据遭到意外暴露所致。例如,黑客使用网络钓鱼活动对Dropbox的130个源代码库进行了未经授权的访问。这让他们可以获取GitHub上未被妥善保存的API密钥。此类暴露已变得非常普遍,以至于GitHub不得不采取措施来阻止发生API密钥和其他密文泄露,但其他公共代码库可能仍然容易受到攻击。 在另一个广为人知的外部暴露示例中,研究人员发现超过3,000款移动应用程序将TwitterAPI密钥公之于众。出乎意料的是,此类错误很常见,因为在开发过程中,开发人员往往会为了方便而在应用程序代码中嵌入API密钥。如果他们未能在公开发布前移除这些嵌入的密钥,这便会成为密钥暴露的潜在来源。 如何防范 减少或消除这些类型的外部暴露需要采用双管齐下的方法: •加强对相关过程的管理,以识别和消除暴露来源,例如泄露的密钥和凭据、代码库的不当使用等。•定期扫描外部攻击面以检测和修复漏洞。 要保护您自己免受广泛API威胁的侵扰,您同时需要由内而外的发现(如“恶意API造成的漏洞”一节所述)以及由外而内的发现,这可以识别暴露问题并减小您的外部攻击面。 Akamai API Security如何为您提供帮助 API Security可模拟黑客使用的侦察技术并让您能够快速找到并修复问题,从而帮助您抢先一步防范攻击者的攻击。借助由外而内的发现