Web 应用服务涉及大量的 API,他们被用于客户端和服务端建连并传输数据。WAF 提供 API 防护能力,用于检测和监控业务 API 的异常情况,并根据防护策略对异常 API 执行流量拦截动作,提升 API 安全。本文介绍如何使用 API 防护功能提升业务 API 安全。
API 攻击可能会涉及未经授权的访问、数据泄露、拒绝服务或操控 API 按非预期方式运行等问题。
API 防护策略是指 WAF 能根据设定的 API 格式和参数,对请求 API 流量进行检查,以过滤和拦截满足规则的非法 API 请求。
您已将需要防护的网站接入 WAF 实例。接入相关操作,请参见接入方式概述。
开启后,在域名列表中域名的 API 图标将会显示为绿色,表示当前域名已开启 API 防护功能。
您可以通过人工登记的方式,设置针对特定 API 路径和请求方法的 API 防护策略,也可以使用 API 自动发现功能,自动记录存在风险的 API 请求行为。
如果您已明确存在风险的 API 路径,可通过手动添加或者 JSON 文件上传的方式,将具有固定特征的 API 记录为资产。
手动添加:手动设置 API 资产。
参数 | 说明 | 配置示例 |
---|---|---|
API 名称 | API 请求动作的名称。 说明
| 删除文件 |
API 描述 | 填写 API 资产的相关备注。 | 用于防护未经授权的删除操作 |
API 路径 | 填写 API 请求路径。最多 128 个字符,须符合 swagger PATH 格式,不包含域名和参数。 | /api/v1/delete_project_file |
请求方法 | 选择 API 请求方法,支持 GET、PUT、POST、DELETE、OPTIONS、HEAD、PATCH 和 TRACE。 | DELETE |
执行动作 | 当请求命中 API 参数异常的规则后,WAF 执行的动作。
| 拦截 |
规则开关 | 开启或关闭资产对应的规则。 | 开启 |
API 参数 |
|
|
文件上传:批量导入 JSON 格式的 API 文件。
说明
配置完成后,可在 API 防护列表查看 API 信息。人工登记的 API 默认状态为“已确认”。
WAF 基于智能检测和学习能力,自动发现 API 资产和参数信息,并记录在资产列表中。API 自动发现可在人工登记的基础上,补充和完善您的 API 防护资产,提升防护能力。
自动添加的资产默认为“已发现”状态,且默认执行“观察”动作。您可以手动确认资产信息和修改执行动作,确认后资产将切换为“已确认”状态。
注意
该功能处于限时免费阶段,当前仅面向企业版及以上规格开放。
开启后,在域名列表中域名的 AI 图标将会显示为绿色,表示当前域名已开启 API 防护自动发现功能。
说明
如果暂未开启 API 防护策略开关,AI 图标显示为黄色,此时 API 自动发现不生效。
如果 WAF 发现了存在风险的 API 请求,会自动生成一条 API 资产,该资产的状态为“发现中”。
未登记 API 是指既没有通过人工方式添加,也不在 API 自动发现列表中的 API 资产,即对“已发现”和“已确认”之外状态的 API 路径访问请求执行路由检查策略。您可以为这类 API 设置统一的处置动作,包括观察、不检查或拦截,默认执行动作为不检查。
如果暂不确定是否存在风险但又担心影响正常访问,您可以先设置动作为观察。然后根据调用量、QPS 峰值和日志分析来判断是否可以直接放行。
例如,某域名开启 API 自动发现功能后,生成一条名为/passport/proto******
的 API,且展示为“发现中”状态。您已确认该 API 为需要补齐的资产,可以参考以下链路处置。
说明
人工登记的 API 处置方式类似,但不需要手动确认,支持编辑和废弃操作。
单击 API 操作列对应的确认。
按照下图确认 API 名称、描述、执行动作、参数等信息。
单击确定。
说明
API 状态切换为“已确认”,WAF 按照更新后的规则执行检测。后续请求的执行动作为“观察”,即相关请求被放行。
观测 API 的调用量、QPS 峰值和日志分析数据。
如果发现确实有攻击存在 ,建议调整对应规则的执行动作以防护业务安全。
例如该 API 的调用量、QPS 峰值明显高于其他 API 接口,且在日志检索中发现对应的 API 参数异常和 API 敏感信息攻击行为日志,则需要将 API 参数异常和 API 敏感信息策略的处置动作调整为“拦截”。
API 参数异常策略处理:直接在 API 防护列表中将对应 API 资产的执行动作设置为拦截即可。
API 敏感信息策略处理:
* **拦截该敏感信息**:拦截敏感标签对应的内容。 * **仅删除标签,不拦截敏感信息**:将敏感信息标签从规则中删除,放行对应内容。
WAF API 防护包括以下四种策略类型,即检测到以下四种情况时,相关请求行为会被判定为 API 攻击,并执行对应防护动作。
策略类型 | 说明 | 支持的操作 |
---|---|---|
API 路由异常 |
|
|
API 参数异常 | 如果请求参数的是否必选和参数类型属性与配置规则中的参数信息不一致,则该请求会被判定为参数异常。支持设置以下两种执行动作。
|
|
API 废弃资产 | 如果某 API 资产被标记为废弃,则该 API 资产将禁止被访问,发起相关请求时会触发“API 废弃资产”规则。 | 废弃 |
API 敏感信息 |
|
|
API 策略配置完成后,会在API 防护策略列表生成对应的资产。其中人工登记的 API 资产,其状态显示为“已确认”;API 自动发现首次生成的资产,其状态显示为“发现中”。您可以参考下方说明了解 API 防护资产的不同状态,以及可执行的操作。
状态 | 说明 | 规则是否执行 | 下一步操作说明 |
---|---|---|---|
发现中 |
| 否 |
|
已发现 |
| 是 |
|
已确认 |
| 是 |
|
已忽略 |
| 否 |
|
已废弃 |
| 否 |
|
状态 | 说明 | 规则是否执行 | 下一步操作说明 |
---|---|---|---|
已确认 |
| 是 |
|
已废弃 |
| 否 |
|
自动发现的 API 首次生成时,并未得到验证和确认。如果您没有手动确认,WAF 会通过业务流量数据继续发现该 API。
已经忽略或废弃的 API 资产不会展示在 API 防护策略列表中,您可以通过以下方式查看。
登录 Web 应用防火墙控制台。
在顶部菜单栏选择实例所属地域。
在左侧导航选择防护策略>API 防护。
选择目标域名。
在 API 规则列表上方单击查看。
说明
如果当前域名下暂时没有被忽略或者废弃的 API,则页面不展示该入口。
查看被废弃或忽略的 API。