带你走进API安全的知识海洋(二)

带你走进API安全的知识海洋(二)
最新回答
烟花○的眼泪

2024-03-06 05:46:02

带你走进API安全的知识海洋(二)

Q1:为什么需要API安全?为什么必须将API安全放在首位?

企业使用API连接服务和传输数据,许多重大数据泄露问题源于API遭到破坏、泄露或攻击。受攻击的API会暴露敏感的医疗、金融和个人数据,被不法分子利用。不同数据需不同防护方式,取决于传输的数据种类。

  • 数字化转型推动API增长:近年来,数字化转型以及API在移动应用程序和物联网中的核心作用,使API发展实现天文数字般的增长,这让API安全成为首要问题。
  • Gartner的预测与建议:Gartner在“如何建立有效的API安全策略”报告中预测,到2022年,API滥用将成为导致企业Web应用程序数据泄露的最常见攻击媒介。为保护自己免受API攻击,Gartner建议采用连续的方法在API开发和交付周期中实现API安全,并在API中直接设计安全性。
  • 关键角色与专门方法:API在数字转换中扮演关键角色,对敏感数据和系统有访问权限,因此需要专门的安全性和合规性方法。

Q2:API安全需要有什么?

API安全防护需要一个具有验证和授权策略的可信环境,以下是一些最常见的加强API安全性的方法:

  • 使用令牌:建立可信身份,通过分配给这些身份的令牌控制对服务和资源的访问。
  • 使用加密和签名:通过TLS等方式加密数据,要求使用签名确保只有有权限的用户能解密和修改数据。
  • 识别漏洞:确保操作系统、网络、驱动程序和API组件保持最新状态,了解协同工作方式,识别薄弱之处,使用嗅探器检测安全问题并跟踪数据泄露。
  • 使用配额和限流:对API调用频率设置限额,跟踪使用记录。指定限流规则,防止调用激增和拒绝服务攻击。
  • 使用API网关:API网关是主要的API流量策略执行点,能帮助验证流量使用者身份,控制和分析API使用情况。

API安全性通常取决于良好的API管理,许多API管理平台支持三种防护方案:

  • API密钥:单一令牌字符串,提供唯一身份验证信息的小型硬件设备。
  • 基础身份验证(APP ID / APP密钥):双令牌字符串解决方案,即用户名和密码。
  • OpenID Connect(OIDC):基于主流OAuth框架的简单身份层,通过获取基本配置集信息和使用身份验证服务器来验证用户。

选择API管理器时,要清楚其可处理的防护方案,并制定计划纳入上述API安全防护实践。

Q3:API安全的难点有哪些?

API为软件和开发社区带来诸多便利,如文档完备、可公开获取、标准化、无处不在、高效且易于使用等。但攻击者正利用API实施自动化的“高效攻击”,目标从Web应用程序到云计算服务。

  • API的安全悖论:安全从业者建议隐藏资源减少暴露面和攻击面,但业务上成功部署的API却倾向使资源更加开放和可用,这是API的安全困局,也是现代IT面临的共性问题。对于安全团队而言,制定平衡的、良好的API风险缓解策略尤为重要。
OWASP清单:十大API安全风险
  • 损坏的对象级别授权:API暴露处理对象识别的端点,造成攻击面访问控制问题,应在每个能访问用户输入数据的功能中考虑对象级别授权检查。
  • 损坏的用户身份验证:身份验证机制实施不正确,攻击者可破坏身份验证令牌或利用实施缺陷假冒其他用户身份,损害系统识别客户端/用户的能力,整体损害API安全性。
  • 数据泄露过多:开发人员公开所有对象属性而不考虑个体敏感性,依靠客户端执行数据过滤并显示。
  • 缺乏资源和速率限制:API通常不对客户端/用户可请求的资源大小或数量施加限制,影响API服务器性能,导致拒绝服务(DoS),还为暴力破解等身份验证漏洞敞开大门。
  • 功能级别授权已损坏:复杂访问控制策略和管理功能与常规功能之间的模糊不清,往往导致授权缺陷,攻击者可访问其他用户资源和/或管理功能。
  • 批量分配:将客户端提供的数据绑定到数据模型,没有基于白名单的适当属性过滤,会导致批量分配,攻击者可修改权限之外的对象属性。
  • 安全性配置错误:包括不安全的默认配置、不完整或临时配置、开放的云存储、错误配置的HTTP标头、不必要的HTTP方法、跨域资源共享(CORS)以及包含敏感信息的冗长错误消息等。
  • 注入:当不受信任的数据作为命令或查询的一部分发送到解释器时发生注入缺陷,如SQL、NoSQL的命令注入等,攻击者的恶意数据可能诱使解释器执行非预期命令或未经授权访问数据。
  • 资产管理不当:API倾向于公开更多端点,文档的准确性和及时更新尤为重要,健康的主机和最新的API版本可减轻API版本过期以及调试端点暴露等安全问题。
  • 日志和监控不足:日志和监控不足,加上事件响应的缺失或无效集成,使攻击者可进一步攻击系统,长期驻留并横向移动到更多系统篡改、提取或破坏数据,检测入侵平均时间超过200天,且入侵检测警告通常来自外部第三方。

Q4:API滥用实例有哪些呢?

API的无状态设计使其假定初始请求和响应独立且包含完成任务所需的所有信息,可改善用户体验和整体性能,但攻击者也容易编写脚本自动执行攻击。

  • 账户接管和浪漫欺诈:Zoosk约会应用程序的攻击者反编译其应用程序发现账户登录API,使用自动化攻击工具包执行账户接管攻击,被盗用账户用于建立个人关系网络后实施诈骗,实施Cequence前平均每次作案收益高达1.2万美元,加强API安全后此类攻击几乎消失,增强了用户信心和品牌知名度。
  • 账户接管和财务欺诈:某大型金融服务客户发现攻击者锁定其移动应用程序登录API环节执行账户接管,成功后通过开放资金转账(OFX)API进行转账实施财务欺诈,OFX是公开可用且文档齐全的行业标准API。

API的无处不在和无状态本质带来传统安全技术无法解决的挑战,其没有客户端组件,传统防御技术(如Captchas或JavaScript)和移动SDK工具无法有效防止自动攻击,重定向和cookie分配无指定浏览器或移动应用,导致API和关联应用程序未受到充分保护。

API安全的未来

目前,API安全网关是企业保护API安全的有效手段,它可利用流量过滤以及监控等方式检测入侵并防止黑客攻击。但市场上在API海量数据中检测威胁并进行防护面临挑战,在复杂多样环境下防护难以做到智能化,且攻击者攻击手段变化快,设计弹性的管理系统对API服务进行安全监控是未来需解决的问题。

未来智能API安全解决方案将成为有效方法,使用人工智能和机器学习技术在海量API流量中进行威胁发现和安全防护,利用AI模型的学习能力在不同环境下动态学习API正常行为模式,积累前置知识,自适应识别并阻断API异常活动,实现智能安全防护策略。

API的安全展望

  • 聚焦安全的API设计:API设计的易用性和可扩展性是吸引开发人员和用户的关键。在设计公开的API时应考虑安全性,融入用户隐私管控,节省后续补救与整改的时间和资源。RestCase API平台可通过AI和复杂算法帮助用户在设计阶段检查和验证API,并给出安全性处置建议。
  • 人工智能(AI)驱动的API安全性:开发人员将系统API与海量数据集成,在不同行业得到商业智能化应用和对发展趋势的预判。应利用数据资源,运用AI趋势分析能力对调用API的流量进行深度分析,侦测历史攻击与异常,通过自动化修补措施防止后续攻击再次发生。例如,某些针对特定API的DoS攻击源会攻击设计方案欠佳且未实施流速限制的API,经验丰富的攻击者会利用算力消耗资源的API节点发送垃圾邮件拖垮或破坏系统。
  • 机器学习(ML)驱动的API安全性:AI主要用于智能判断攻击,ML则用于提取威胁特征。开发带有ML功能的智能API,运维人员能有效管理挑战性和新出现的威胁模型,准确识别和标记异常行为,判断恶意攻击发展趋势,识别和阻止多种环境下针对API的攻击行为模式。持续学习功能加持的API可在无法预知攻击源和预设应对策略的情况下,及时识别正在发生的异常行为。目前广泛用于API安全的机器学习算法包括朴素贝叶斯、KNN最近邻、决策树、随机森林、支持向量机、深度学习和神经网络等。

小结

随着现代化技术的发展,API安全性已成为网络应用的主要技术需求之一。AI和ML作为有效且智能的工具,已逐渐应用到协议栈的各个层面上实现API全栈安全防护。开发人员需进一步加大对API业务模型、分析能力、技术蓝图以及合规性与标准化方面的深入研究与开发。

欢迎登录安全客 -有思想的安全新媒体

http://www.anquanke.com/
加入QQ交流群1015601496获取更多最新资讯

原文链接:

https://www.anquanke.com/post/id/242547