最近 API 的增长带来了许多新的安全挑战。虽然 API 渗透测试与应用程序渗透测试有很多共同之处,但这些评估并不总是涵盖新的和独特的漏洞。
这种差距要求一个新的、更专业的 API 渗透测试流程。
什么是 API 渗透测试?
API 渗透测试是识别 API 中安全漏洞的过程。它旨在确定 API 是否容易受到可能包含以下内容的漏洞的影响:
敏感信息泄露。
接口批量分配。
绕过访问控制。
身份验证中断。
SQL 注入和其他输入验证缺陷。
API 渗透测试在各种协议和方案(包括 REST、SOAP 和 RPC)上执行。
API 渗透测试与应用程序渗透测试
API 渗透测试是与应用程序渗透测试密切相关的评估。但是,尽管在这些评估中执行的许多任务重叠,但 API 框架和设计模式存在一些独特的关键差异。
在许多情况下,“API 渗透测试”是作为应用程序渗透测试的一部分隐式执行的。但其他时候,独立的API可能需要更量身定制的API渗透测试。
这通常是在范围界定过程中确定的。
API 渗透范围界定
与应用程序渗透测试一样,API 渗透测试范围与渗透测试本身一样重要。必须做好关键准备,例如:
确定是否需要客户端来生成请求并将其发送到 API。
了解存在哪些 API 文档以及可以提供哪些文档。
了解角色、身份验证方法和 API 设计。
在聘请渗透测试公司时,对于渗透测试如何执行和交付,需要做出许多关键决策。
常见的接口漏洞
API 渗透测试通常会揭示 API 独有的几个漏洞。
信息披露
API 通常会显示比它们应该显示的更多的信息。API 响应因泄露过多且有时是危险数量的信息而臭名昭著。
API 批量分配是客户端可以覆盖应用程序不应允许的服务器端变量的情况。这通常是一个高风险漏洞,可能允许用户提升权限和操作业务逻辑。
API 身份验证漏洞
API 身份验证方案也具有独特的安全要求。整体 API 渗透测试应审查访问令牌的生成和撤销方式,并深入了解这些令牌的特定弱点。
原料药渗透测试和 XSS
跨站点脚本 (XSS) 是渗透测试报告中普遍存在的漏洞。正如您可能已经猜到的那样,此问题仍然与API非常相关。但是,在处理API时,事情并不是那么黑白分明。
例如,您能否判断以下响应是否表示存在 XSS 漏洞?
HTTP/1.1 200 OK
[..]
{&#34;name&#34;:&#34;bob<script>alert(1)</script>&#34;}答案实际上取决于标题。如果设置了以下内容,则 API 不会容易受到攻击:
Content-Type: application/json; charset=utf-8但是,将响应视为 HTML 实际上容易受到攻击:
Content-Type: text/html原料药渗透测试和企业社会责任基金
跨站点请求伪造 (CSRF) 也可能在 API 渗透测试期间被识别出来。与 XSS 一样,必须检查许多行为以确定发现是否有效。
这些行为包括:
该接口是否需要 JSON?或者可以替换 POST 参数吗?
是否强制执行请求标头(如)?Content-Typeapplication/json
是否正在使用 Cookie,它们是否使用属性?SameSite
应用程序是否拒绝格式错误的 JSON?
跨源资源共享 (CORS) 也是配置错误的常见来源。CORS 是放宽浏览器强制实施的策略的规范。
必须注意确保过于宽松的 CORS 策略不会破坏 API 的安全性。
接口渗透测试工具
在某些时候,大多数基于API Web的应用程序将“绑定”数据。这需要 API 响应,并将其包含在屏幕上向用户显示的 DOM 中。
对于使用 API 的基于 Web 的应用程序,数据绑定方法可能是一个关键的安全领域。这也凸显了基于 Web 的客户端与其 API 之间存在的重要关系。
让我们比较一下绑定用户名的 API 响应的安全和危险方法:
&#34;username&#34;:&#34;pentest<b>user1</b>&#34;
当 API 存储脚本或 HTML 内容时,必须评估 Web 应用程序以确定此数据如何绑定到 DOM。虽然这在API本身中很少被认为是一个漏洞,但它是一个重要的关系,应该在渗透测试期间进行分析。
接口速率限制
API 经常成为滥用的目标,尤其是当用于公共用途时。速率限制已成为大型 API 提供商阻止机器人和其他自动攻击的重要防御措施。
API渗透测试旨在识别可能容易受到自动攻击的端点,并相应地建议速率限制。
下面显示了对过多请求的响应示例:
HTTP/1.1 429 Too Many Requests
Content-Type: text/html
Retry-After: 3600结论
API 渗透测试是一个复杂的过程,并且对每个 API 的设计具有高度主观性。这些主题应有助于为执行或收缩更好的 API 渗透测试提供指导。 参考:virtuesecurity