常见的 API 安全漏洞类型
根据安全漏洞发生的机理和原因,对 API 安全漏洞做归类分析,常见的类型如下。
未受保护 API:在现行的 Open API 开放平台中,一般需要对第三方厂商的 API 接入身份进行监管和审核,通过准入审核机制来保护 API。当某个 API 因未受保护而被攻破后,会直接导致对内部应用程序或内部 API 的攻击。比如因 REST、SOAP 保护机制不全使攻击者透明地访问后端系统即属于此类。
弱身份鉴别:当 API 暴露给公众调用时,为了保障用户的可信性,必须对调用用户进行身份认证。因设计缺陷导致对用户身份的鉴别和保护机制不全而被攻击,比如弱密码、硬编码、暴力破解等。
中间人劫持:因 API 的通信链路安全机制不全,攻击者通过攻击手段将自己成为 API 链中的某个受信任链,从而拦截数据以进行数据篡改或加密卸载。此类攻击,通常发生在网络链路层。
传统 Web 攻击:在这里主要是指传统 Web 攻击类型,通过攻击 HTTP 协议中不同的参数,来达到攻击目的,比如 SQL 注入、LDAP 注入、XXE 等。而攻击者在进一步攻击中,会利用权限控制缺失、CSRF 进行横向移动,从而获取更大的战果。
弱会话控制:有时 API 身份鉴别没有问题,但对会话过程安全保护不足,比如会话令牌(Cookie、一次性 URL、SAML 令牌和 OAuth 令牌)的保护。会话令牌是使 API 服务器知道谁在调用它的主要(通常是唯一的)方法,如果令牌遭到破坏、重放或被欺骗,API 服务器很难区分是否是恶意攻击行为。
反向控制:与传统的交互技术不同,API 通常连接着两端。传统的应用中大多数安全协议都认为信任服务器端是可信的,而在 API 中,服务器端和客户端都不可信。如果服务器端被控制,则反向导致调用 API 的客户端出现安全问题,这是此类安全问题出现的原因。
框架攻击:在 API 安全威胁中,有一些特殊存在的攻击场景,它们是 API 规范、架构设计导致的安全问题,这类威胁统称为框架攻击。最常见的比如同一 API 存在不同版本,导致攻击者攻击低版本 API 漏洞;同一 API 的不同客户端调用,可能 PC 端没有安全问题而移动端存在安全问题等。
版权声明: 本文为 InfoQ 作者【阿泽🧸】的原创文章。
原文链接:【http://xie.infoq.cn/article/194e2815b3215a3c7b87a6543】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论