API(Application Programming Interface)应用程序接口,可以应用于所有计算机平台和操作系统,以不同的格式连接数据调用数据。比如,用户可以跟踪电商平台购买的货物位置,就是电商平台与物流公司之间使用了API位置实时调用产生的效果。,许多组织更关注于快速的API和应用程序交付,而忽视了API安全保护,这也是近几年来API攻击和数据泄露的主要原因。本文将从API常见类型、API攻击、API安全测试、API安全建设这几个角度做简单分享。,说到API攻击不得不说,开放式Web应用程序安全项目(OWASP)的非营利组织,多年来应用安全十大排名在安全行业中经常被引用。,在2019年,OWASP发布了API Security Top 10,描述了十个最常见的API缺陷。,它作为培训和提高认识的辅助工具非常有用,也可以作为一个轻量级的分类标准,对API中的问题进行分类,下面将从用例和预防展开说明。,攻击者在 API 调用中将自己资源的ID替换为属于另一个用户的资源的 ID。缺乏适当的授权检查允许攻击者访问指定的资源。这种攻击也称为IDOR(InsecureDirect Object Reference)。,用例:,预防:,较弱的API身份验证允许攻击者冒充其他用户的身份。,用例:,· 被视为“内部”的未受保护API· 弱密码、纯文本密码、弱哈希密码、共享密码或默认密码· 缺失验证码或没有账号锁定机制,攻击者可以对同一用户账号进行暴力破解· URL中包含令牌凭证和密码· 接受未签名或弱签名的JWT令牌(“alg”:“none”),或未校验令牌过期时间。,预防:,· 检查所有可能的方式来对所有API进行身份验证· 使用标准身份验证、令牌生成、密码存储和多因素身份验证 (MFA)· 使用短期访问令牌· 验证您的应用程序(以便知道谁在与您交谈)· 对身份验证使用更严格的速率限制,并实施锁定策略和弱密码检查· 使用OWASP Authentication Cheat Sheet(身份验证备忘单)https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Authentication_Cheat_Sheet.md。,API可能会暴露比客户端合法需要之外的更多数据。,用例:,预防:,API无法防止过多的调用和载荷大小。攻击者会使用拒绝服务 (DoS),造成API无响应或不可用。,用例:,预防:,攻击者找出“隐藏”的管理API方法并直接调用它们。,用例:,预防:,在API中容易利用批量分配,因为,它们通过设计公开了应用程序隐含的实现方法以及属。,性名称。现代框架鼓励开发人员使用来自客户端的输入自动绑定到代码变量和内部对象中的功能。攻击者可以使用这种方法来更新或覆盖开发人员从未打算公开的敏感对象属性。,用例:,攻击者可以通过仔细阅读配套文档,来推测出对象的属性、查找到不同的 API 端点、或在请求负载中发掘额外的属性,进而对它们进行篡改。,· 与权限相关的属性:user.isadmin、 user.isvip仅应由管理员设置· 与流程相关的属性:user.cash仅应在付款验证后在内部设置· 内部属性:article.created_time仅应在应用程序内部设置。,预防:,API 服务器的不良配置允许攻击者利用它们,用例:,预防:,攻击者通过任何可用的注入方法(如,直接输入、参数、集成服务等)向API提供恶意数据,并期望这些恶意数据被发送至解释器执行。,用例:,预防:,攻击者通过发现API的非生产版本(例如,临时的、测试版或更早期的版本),他们没有如生产环境API那样受到良好保护,将通过这些渠道进行发起攻击。,用例:,预防:,缺乏适当的日志记录、监控和警报会导致攻击和攻击者被忽视。,用例:,预防:,中文详细参考链接:,http://www.owasp.org.cn/OWASP-CHINA/owasp-project/OWASPAPITop102019.pdf,在左移的API安全实践中,一个重点是确保构建管道的安全,需要企业将安全工具嵌入持续集成/持续交付(CD/CD)中,以及基于git的开发人员工作流程中。以下列出了两类安全测试工具。,用于分析原始代码的潜在弱点和漏洞,通常在代码被提交到版本控制或构建阶段时运行。,GitHub code scanning、Coverity Scan Static Analysis、reshift、Xanitizer、HCL AppScan CodeSweep,用来分析运行中的应用,以发现可利用的漏洞,通常在生产交付前启动,或在生产中持续使用。,开源软件:OWASP ZAP、StackHawk、Arachni、sec-helpers、OWASPPurpleteam。,缺点:当然以上工具也有其弱点,比如SAST工具误报率会较高,涉及人工复核成本。DAST工具运行时间会较长,需提前预留时间,以免耽误发布。,需要承认的是扫描器工具并不能用来检测所有类型的问题,比如一些滥用的业务逻辑缺陷。,来源参考:,https://owasp.org/www-community/Free_for_Open_Source_Application_Security_Tools,(以上链接的中文翻译),架构设计对于有效的保护API安全至关重要,架构中需要具备捕获和分析所有API流量的产品。,需要有丰富的数据引擎、基于API Security Top10威胁、算法识别等技术来检测暴露的分析,并进行有效的拦截,以及提供加固补救措施。,流程和人员设计同样重要,在发现、测试和保护API时,补救措施以及各内部角色和第三方组织的协同。,需要支持现代云架构和传统的基础设施架构。,由于API发开、API集成和第三方API依赖,使得API清单不断发展,必须有不断识别API端点和参数(不仅是IP和主机名,还需要功能、路径、信息主体),未知影子API,过期或者废弃的僵尸API。特别是敏感数据发现能力,比如个人身份信息,因为这块会涉及监管合规问题。持续检测数据权限、口令认证等缺陷,并能及时感知API的攻击存在。,能够与负载均衡、API网关、WAF、漏洞管理平台(VM)、DevOps套件、ITSM等平台集成。,在生产交付前扫描可能存在的缺陷,以减少攻击者发现可利用条件的可能。,API安全专业知识可能分散在开发、基础设施、运营、安全或者API产品团队中,需要去梳理,以便在发现、测试、保护和事件响应方面进行合作。
© 版权声明
文章版权归作者所有,未经允许请勿转载。