了解“API安全产品”选型的6大关键功能,使您工作更轻松!

攻防
1年前

20230907121131.png

  API(应用程序编程接口)作为一种重要的数据交换信道,具备跨平台、跨服务、跨编程语言的特性。它为企业实现高效的数据共享、便捷的功能集成以及微服务架构改造等提供了技术支持,成为推动企业数字化转型的关键基础设施。

  随着开放API的不断演进,越来越多的企业将不同功能的API作为服务向外部开放,从而模糊了网络边界,增加了系统的攻击面。这也向外部暴露了新的入口,扩大了潜在的安全威胁。此外,随着企业业务的拓展,API的开发和管理不规范使得API安全治理变得更加复杂。

  鉴于确保API的安全性是一项复杂的任务,许多安全厂商逐步介入API安全管理领域,以解决企业在API管理和风险防范方面所面临的问题。在当前市场上,API安全产品应该具备以下功能,这些功能不仅是购买方在选择产品时需要考虑的,也是API安全厂商在开发产品时需要关注的要点。以下将介绍API安全产品应具备的六大功能要素。

01 API资产发现

  在实施API保护之前,对API资产的全面了解是至关重要的前提。然而,目前多数企业对自有的API资产并没有进行过有效的梳理,从而导致了僵尸API的出现。在这种情况下,这些API不会被纳入资产管理范畴,也不会受到安全与合规策略的管控,甚至其调用情况都难以追溯。因此,实现对API资产的全面发现成为确保API安全的首要步骤,并在任何优质API安全解决方案中都被视为核心功能。常规而言,传统的API资产发现手段包括自动化扫描器、API流量分析以及代码审计等方法。

  自动化扫描器主要借助主机扫描、端口扫描以及爬虫技术,然而,API接口是由技术研发团队按照特定格式规范进行应用开发的,并且通过URL进行访问。由此,大部分主机扫描、端口扫描和爬虫技术难以对应用网页、静态文件和API资源进行准确区分。因此,在API资产发现中,自动扫描器多是充当辅助手段的角色。

  流量分析通常被作为快速勾勒业务API资产全貌的首要手段。其采用API代理、旁路镜像或主机串联等方式,对流量进行持续监控分析,从而实现对API资产的自动识别与捕获。进而,结合人工梳理与鉴别的方法,构建起现有业务所涵盖API资产的管理库。

  然而,流量分析仅能发现仍在被调用的API资产,这使得已过期的API、未知的僵尸API等带来的风险难以被察觉。因此,仍然需要针对业务代码进行人工或半自动的审计,从而在源代码中寻找未被发现的API。随着机器学习、深度学习、自然语言处理等人工智能技术的发展与普及,它们可以从业务代码、API文档、开发文档等非结构化资源中提取深层特征,实现更快速、更精准、更全面的API资产发现,从而有效地提升API资产发现的效率与效果。

  此外,除了对企业内部开发的自有API资产进行发现和管理外,还需要将未记录且未跟踪的第三方API(通常称为"影子API")纳入API资产管理中心,以监测其行为,以防止潜在的数据污染和投毒等安全事件。

02 API资产管理

  API资产管理应该贯穿整个API生命周期,并建立完善的管理体系。在API设计阶段,应制定API规范化设计和流程,安全管理措施,安全编码规范以及风险评估规范等。在开发测试阶段,需要持续维护API资产清单,其中包括API配置文档、接口文档、访问策略以及各种日志的整理记录。在API上线运行后,需要进行全流程跟踪,包括API的上线、更新、熔断和下线停用,并实时监测API的性能和安全性,以确保开发和运维人员能够通过API资产管理系统全面了解和控制API的当前状态。

03 API访问控制

  API访问控制旨在确保只有经过授权的用户或系统,根据其权限设置和访问策略,得以访问API资源。在OWASP API TOP10所涵盖的多个风险中,许多都与API访问控制缺陷有着紧密关联。例如,失效的对象级授权、失效的用户身份验证、失效的功能级授权等风险都是由于身份认证和授权机制存在缺陷,从而为攻击者提供了越权访问的机会。

  身份认证是确认用户、应用、账户、设备等多维度身份主体的过程,其主要目的在于确保仅合法主体得以访问API资源。用户在访问API之前必须提供有效的凭据,例如用户名和密码、令牌、证书等,以证明他们有权访问API。常见的身份验证机制包括基本身份验证、OAuth、JWT等。

  授权是核实已认证用户是否有权限执行特定操作或访问特定资源的过程。一旦用户经过认证,系统需要确定他们能够执行哪些操作。授权机制基于用户或角色的权限来限制访问。通常使用的授权策略包括基于角色的访问控制(RBAC)、基于策略的访问控制(PBAC)等。

  越来越多的API安全解决方案已经整合零信任安全模型,模型基于“持续验证,永不信任”的防护理念,为攻击者设置障碍,以阻止其在环境中横向移动。然而,零信任安全的应用仍处于早期阶段,且建立一个成熟且可衡量的零信任计划需要时间和大量资金投入。因此,真正采用零信任模型在API安全领域的企业依然相对有限。

  此外,为了应对OWASP所指出的资源不足和速率限制风险,需通过设定访问控制策略来进行流量控制,使得强制限制客户端请求的内容长度、请求频率、请求连接数、访问时段等,可采取诸如利用API网关等措施,以防范潜在的拒绝服务攻击和暴力破解攻击。

04 API模式验证

  攻击者经常试图利用无效或错误的输入来违规使用API,导致其产生异常输出。例如,开发人员为了提高开发效率,可能会将用户输入直接与内部对象和代码变量绑定,但这也为攻击者提供了潜在入口。攻击者通过分析API结构和对象关系,有可能篡改被隐藏的对象属性。一旦攻击者成功修改敏感对象的属性,他们就可能升级权限、绕过安全检查并篡改核心数据。这正是OWASP API TOP10中所提及的API批量分配风险。

  因此,确保所有API请求和响应都遵循严格的模式和规范,成为保护API免受攻击和滥用的至关重要的一环。这也是各API安全提供商亟需解决的难题之一。API模式验证作为一项关键技术手段,用于验证传入和传出API数据的合法性。其核心目标在于验证传入数据与API所期望的数据结构和类型是否相匹配,从而消除潜在的错误或数据不一致性。通常,API模式验证使用结构化描述语言(如JSON模式、XML模式等)进行定义,这些描述语言能够定义数据结构、类型、约束和验证规则。当API接收到数据时,可以利用预定义的模式进行验证,以核实数据是否符合预期的格式和规范。如果数据不符合要求,API将能够拒绝处理数据并向请求方返回详细的错误信息。这种方法有助于预防安全漏洞,提升整个系统的稳定性和可靠性。

05 API敏感数据保护

  在API环境中,数据泄露的根源可以追溯到OWASP API TOP10中所提到的过度数据暴露风险。在进行API设计的初期阶段,开发人员为降低API数量,可能会倾向于构建某些通过一个API接口返回所有查询信息的方案。这种设计期望客户端能够在展示数据前自行过滤掉不必要的内容,然而这种设计方案存在潜在的风险,因为这些信息既包含了用户可查看的信息,也可能包含用户本不该获取到的敏感信息。因此,攻击者可以直接调用API获取到敏感数据。

  为确保API的安全性和数据保密性,应在API设计阶段就考虑数据访问权限的严格控制。开发者应避免通过一个集成API暴露过多敏感信息,而是应该根据用户角色和需求设计多个精细化的API接口,以确保每个用户只能访问其合法权限范围内的数据。同时,结合身份验证和授权机制的访问控制,以及模式验证限定API输入输出共同保证敏感数据的安全。

  此外,为保证敏感数据在传输链路机密性和完整性,应为API服务提供加密传输和数字签名算法(如SSL/TLS协议)。

06 API攻击发现与防护

  API同样容易受到XSS、CRSF、注入等漏洞的影响,因此成熟的API安全解决方案应包括对行为分析、恶意用户检测、攻击防护从防患未然到化险为夷。

  行为分析技术通过监控API的实际使用情况来检测异常行为。它通常采用对以往的API日志进行机器学习,从而绘制出API的日常行为,并提供生成和分析  关键指标的机会,如请求大小和响应大小、有无数据的延迟、请求率和错误率,以及响应吞吐量。通过分析正常的API使用模式,行为分析可以帮助发现潜在的攻击行为,例如暴力破解、数据滥用或未经授权的访问。这种技术的优势在于能够实时监控和自适应学习,从而及时识别新的威胁。

  恶意用户检测技术专注于识别使用API的恶意用户。它利用用户的身份验证信息、行为历史和设备信息等因素来确定是否有可疑活动。通过实时监控用户活动,该技术可以识别被劫持的账户、盗用的凭证以及其他恶意行为。这有助于迅速封锁潜在攻击者的访问权限,保护API的安全。

  通过行为分析、恶意用户检测以及威胁情报等手段,一旦发现监测到的SQL注入、XSS攻击、命令执行和代码执行等攻击行为,立即判断威胁来源,并借助精细化的策略控制能力,对受攻击的API进行IP封禁、限流限速等紧急处理。


数世咨询点评

  总结而言,API安全目前仍处于早期发展阶段,是一个复杂而新颖的安全研究领域,也是企业数字化转型中的主要安全挑战。

  为确保API的安全性,现代API安全产品需要整合六大关键功能:API资产发现、API资产管理、API访问控制、API模式验证、API敏感数据保护以及API攻击检测与防护。

  这样的综合联动有助于降低安全风险,保障数据的完整性和安全性,为企业数字化转型提供了可靠的技术支持和保障。

— 【 THE END 】—