加入今天

走在API安全的前面

这是ScotlandIS成员的最新博客, 速度反盗版, 强调了增强API安全性以保护关键基础设施的必要性.

API安全性对于保护任何组织的IT基础设施都至关重要. 如果网络攻击者能够滥用api,他们就可以从前门侵入组织.

这就是为什么ciso(首席信息安全官)和他们的团队越来越多地在API安全上投入资金. 根据 未来市场洞察据估计,美国的需求将以惊人的26%的复合年增长率增长.预计到2032年将达到100亿美元.

API安全性需求
API滥用

api(应用程序编程接口)允许软件与它所使用的后端服务进行通信, 而不暴露服务的所有内部细节或其工作原理. 例如, 手机银行应用程序将通过银行的API与银行系统对话,获取账户信息并发出交易请求. 这使得api对网络攻击者非常有吸引力,并且从网络安全的角度来看风险很高.

API滥用分为两类:

  • 未经授权的访问. 这是指api按照设计使用,但被不应该被允许使用它们的人使用. 通过对API的未经授权访问,攻击者可以恶意访问服务和数据.
  • 漏洞剥削. APIs are software; and like all software are prone to defects (bugs). 攻击者试图识别打开非预期功能的漏洞. 如果他们能让API以一种对他们有用的方式运行, 这就给了他们破坏组织的手段.

保护api的传统方法是在服务器中构建防御. 这些防御措施监视来自API的流量——根据通过API的数据做出允许或不允许的决定. 如果数据看起来正确,则允许它通过. 如果攻击者可以伪造看起来正确的消息, 然后他们就可以访问API和API背后的服务.

这并不意味着这些防御措施本质上是不好的. 恰恰相反:它们是网络安全难题的重要组成部分,而且往往非常复杂. 他们面临的挑战是,他们只看到了更大图景的一部分.

我们的产品管理总监, Neal米奇, 谈到了如何“成为你的DevSecOps团队的英雄” droidcon伦敦 2023.

客户端身份验证增强API安全性

服务器端防御看不到的一个重要方面是谁在发送数据. 因此,通过添加连接到API的客户机的身份验证,可以大大增强安全性. 将流量限制在合法和已知的客户端对阻止API滥用有很长的路要走.

对客户机进行身份验证的经典方法是使用API Key. 这是客户端在连接时传递给服务器的共享秘密(实际上是密码). 因为只有授权的客户端应该知道API密钥, 应该只允许授权的客户端连接到API. 所有其他连接将立即被拒绝.

重放攻击危险

这种方法的挑战与任何密码一样:一旦攻击者知道API密钥, 他们可以随心所欲地将其“重放”回服务器. 这允许他们对任何设备或脚本进行身份验证,就像它是一个合法的客户端应用程序一样.

API密钥可以通过多种方式公开. 常见的方法包括逆向工程(稍后会详细介绍)或简单地从线路上嗅探密钥. 这样的工具 打嗝套件 允许攻击者对他们控制的应用程序实例进行中间人(MitM)攻击. MitM攻击使威胁参与者能够看到所有网络流量,包括API密钥.

使用加密技术防止重放攻击

经过验证的重放攻击的解决方案是加密挑战响应. 这确保了每个身份验证请求都是唯一的.

在实践中,这意味着:

  1. 服务器生成唯一且不可预测的挑战,并将其发送给客户端.
  2. 客户端使用私钥对挑战进行加密签名,并将响应发送给服务器.
  3. 服务器使用与客户端持有的私钥相关联的公钥对响应进行加密验证.

因此,不再需要每次都向服务器发送一个固定的秘密. 相反,客户端发送一个只有服务器才能验证的动态响应值.

逆向工程的危险

到目前为止一切顺利, 但是让我们看看客户机不是另一个服务器的情况, 而是在边缘运行的软件, e.g.桌面应用程序、移动应用程序或物联网设备. 在这种情况下,包含私钥的软件很容易被攻击者访问.

软件不是一个锁着的盒子. 它可以很容易地被攻击者打开和分析,使用一种称为逆向工程的过程. 从一系列设备中提取软件的工具是免费的, 将代码反编译回可读的内容, 仪器执行代码,以完全理解它在做什么.

使用逆向工程, 攻击者可以快速且相对容易地从软件中提取加密密钥. 然后,它们可以生成对服务器请求的有效响应, 对自己进行身份验证并欺骗服务器授予访问权限.

在Android应用程序中查找加密密钥
使用开源工具Jadx在Android应用程序中找到的加密密钥

这就是为什么,在 2024年版的十佳手机榜单OWASP识别 不正确的凭证使用 as the number one threat to mobile apps; with hardcoded credentials the top scenario described. 当然,这种风险并不只适用于移动应用. 它存在于任何软件在边缘运行的地方,因此存在被威胁行为者分析的风险.

对白盒密码术的需求

从密码学上讲,这是使用服务器验证客户机的正确解决方案. 这种应用程序内加密的问题在于,在客户端软件中仍然存在一个秘密值:私钥. 与API密钥一样,私钥也可以很容易地公开. 这是 应用内加密的危险.

为了解决这种危险,必须结合加密密钥保护. 白盒密码, 从移动支付到视频DRM,这是一个在各种现实环境中得到验证的解决方案, 有效地防止在代码中发现加密密钥.

PACE开发了第三代白盒 白盒的作品. 这是一个软件开发工具,PACE的客户使用它来保护他们的高价值算法和数据,无论他们的软件在哪里运行.

传统的白盒库产品是单一且不灵活的sdk. 这意味着它们迫使开发人员将他们的架构屈从于白盒SDK. 与此形成鲜明对比的是, 像白盒的作品这样的第三代白盒增强了开发人员的能力, 允许他们设计符合他们用例的软件架构.

要了解更多关于使用白盒加密进入API安全的知识, 联系PACE与我们的专家交谈.

本文于2024年3月20日更新,包含了2024年OWASP移动十大应用程序的详细信息.

滚动到顶部
X