WAF可以对网站进行扫描,识别API漏洞。
API安全
如何设置API安全_Web应用防火墙-阿里云帮助中心
API安全如何划分API业务用途?
-
登录认证
-
手机验证码认证
-
数据保存
-
数据查询
-
数据导出
-
数据分享
-
数据更新
-
数据删除
-
数据增加
-
下线注销
-
信息发送
-
信息认证
-
邮件信息发送
-
邮箱验证码认证
-
账号密码认证
-
账号注册
API安全支持检测哪些敏感数据?
敏感数据级别 | 敏感数据类型 |
非敏感数据(N) | 不涉及。 |
特级敏感数据(L0) | 与一级敏感数据(L1)或二级敏感数据(L2)相同。
|
一级敏感数据(L1) | 身份证、储蓄卡、手机号、护照号、港澳通行证、车牌号、军官证、身份证(中国香港)、身份证(马来西亚)、身份证(新加坡)、信用卡、SSN、JDBC连接串、PEM证书、KEY私钥、Linux-Passwd文件、Linux-Shadow文件。 |
二级敏感数据(L2) | 姓名(简体中文)、地址(中国内地)、邮箱、电话号码(中国内地)、姓名(中文繁体)、姓名(英文)、电话号码-美国、宗教信仰、IP地址、MAC地址、IPv6地址、GPS位置、IMEI、营业执照号码、税务登记证号码、组织机构代码、统一社会信用代码、车辆识别代码。 |
三级敏感数据(L3) | 性别、民族、省份(中国内地)、城市(中国内地)、未校验的身份证号、SwiftCode、日期、URL链接。 |
API安全支持检测哪些API风险类型?
风险类型 | 说明 |
疑似内部接口暴露 | 内部接口(例如用于内部办公、开发测试、运营管理的接口)暴露在公网。 |
缺乏访问限速机制 | 接口在应对高频访问时,缺少安全防护机制,可能导致暴力破解、恶意爬虫等。 |
敏感数据过度暴露 | 接口暴露过多的敏感数据,可能导致大规模数据泄漏。 |
缺乏异常处理机制 | 检测到程序报错信息,可能存在SQL注入、泄漏应用配置等风险。 |
缺乏访问控制机制 | 接口对不符合日常基线的访问(例如异常地区访问)缺乏控制机制。 |
敏感数据接口缺乏鉴权机制 | 接口缺少鉴权机制,可以被未授权的访问者访问,用于获取敏感数据。 |
API安全支持检测哪些异常事件类型?
事件类型 | 说明 |
来自异常地区的接口调用 | 例如,日常访问该接口的请求集中在北京地区,某天发现来自美国的请求调用了该接口。 |
来自异常源IP的接口调用 | 例如,日常访问该接口的IP集中在192.0.XX.XX,某天发现192.1.XX.XX调用了该接口。 |
来自异常终端的接口调用 | 例如,日常访问该接口的客户端主要是浏览器,某天发现有请求通过Python脚本调用了该接口。 |
来自异常时段的接口调用 | 例如,日常访问该接口的请求活跃时间集中在09:00~17:00,某天发现有请求在03:00调用了该接口。 |
针对登录接口的暴力破解 | 有攻击者暴力破解了账号密码。 |
针对登录接口的撞库攻击 | 有攻击者批量登录,试图撞库。 |
未授权访问获取敏感信息 | 有调用者在未授权的情况下,访问接口获取了敏感数据。 |
过多的敏感数据获取 | 某调用者通过该接口获取了大量的敏感数据。 |
异常的批量注册行为 | 该接口上发生了大量账号注册行为,疑似垃圾注册。 |
异常的批量导出行为 | 该接口上发生了大量下载或导出文件的行为。 |
异常的高频访问行为 | 该接口被调用的频率远高于正常频率。 |
验证码暴力破解 | 该接口上发生了暴力破解验证码的行为。 |
短信接口资源滥用 | 短信发送接口被高频调用,导致短信资源被恶意消耗。 |
邮箱接口资源滥用 | 邮件发送接口被高频调用,可能遭受了邮件炸弹攻击。 |
遍历爬取接口数据 | 该接口上发生了遍历某个参数,高频爬取接口数据的行为。 |
不符合规范的接口调用 | 调用请求中的某个参数不符合接口参数规范,例如,正常情况下参数A是整数格式,但发现调用请求中的参数A使用了字符串格式。 |
监控与告警
常用监控指标
监控指标 | 释义 | 建议阈值 | 处理建议 |
---|---|---|---|
200 | 服务器已成功处理请求,返回了请求的数据。 | 初始化正常业务时,200状态码的告警监控阈值可以配置为90%,具体根据实际业务情况调整。 | 如果发现低于监控比例,需要分析比例下降的原因,例如是否因为其他错误状态码比例增加。 |
request_time_msec | 客户端请求到返回结果的请求耗时。 | 按实际业务请求所需耗时,设置合适的超时告警监控阈值。 | 如果发现域名请求耗时较长,需要检查客户端-WAF-源站整体网路链路质量,并排查源站响应状态是否正常。 |
upstream_response_time | 请求回源时,源站返回数据的响应时间。 | ||
ssl_handshake_time | HTTPS协议请求时,客户端与WAF的SSL握手时间。 | ||
status:302 and block_action:tmd/status:200 and block_action:tmd | 人机校验JS请求状态码,302表示触发默认策略,200表示触发自定义CC防护策略。 | 初始化时,建议配置5%~10%的告警阈值比例,后续运营期间可以根据业务拦截情况灵活调整。 |
|
status:200 and block_action:antifraud | 被数据风控规则拦截。 | 测试可用后再上线,如弹出率过高,说明场景可能有问题,建议联系阿里云研发团队进行确认。 | |
status:404 | 服务器找不到请求的资源。 | 查询触发告警的IP。
| |
status:405 | 被Web应用防护规则或精准访问控制规则拦截。 | 通过全量日志分析拦截的规则、请求行为,判断是正常拦截还是误拦截。 | |
status:444 | 被WAF CC自定义规则拦截。 |
| |
status:499 | 客户端发起请求,服务端未返回数据,超过客户端设置的等待时间后,客户端主动断链,服务端返回给客户端该状态码。 |
| |
status:500 | (Internal Server Error)服务器内部错误,无法完成请求。 | 建议检查源站处理资源负载、数据库等情况。 | |
status:502 | (Bad Gateway)错误网关, 服务器作为网关或代理,从上游服务器收到无效响应。一般由于回源网络质量变差、回源链路有访问控制拦截回源请求导致源站无响应。 |
| |
status:503 | (Service Unavailable)服务不可用,由于超载或停机维护,服务器目前无法使用。 | 建议检查源站是否异常。 | |
status:504 | (Gateway Timeout)网关超时,服务器作为网关或代理,但是没有及时从上游服务器收到请求。 | 根据以下可能的原因进行排查:
|