检测能力说明(持续更新 ..)

本表格参考 OWASP TOP 10 2017 进行分类,如果你有任何疑惑,或者发现无法拦截的攻击,请联系我们;具体每种攻击覆盖哪些场景,可翻到最下面查看详细说明

OWASP TOP 10 覆盖说明

编号分类说明攻击类型危害说明
A1注入SQL注入高危
命令注入高危
LDAP 注入高危仅IAST商业版支持
NOSQL 注入高危仅IAST商业版支持
XPATH 注入高危仅IAST商业版支持
A2失效的身份认证和会话管理Cookie 篡改低危仅IAST商业版支持
后台爆破中危仅IAST商业版支持
A3敏感数据泄露敏感文件下载高危
任意文件读取高危
数据库慢查询高危
文件目录列出低危
A4XML 外部实体(XXE)XXE中危
A5失效的访问控制任意文件上传高危
CSRF中危仅IAST商业版支持
SSRF高危
文件包含高危
A6安全配置错误打印敏感日志信息低危
Struts OGNL 代码执行高危
远程命令执行高危
A7跨站脚本(XSS)反射型 XSS低危
存储型 XSS高危仅IAST商业版支持
A8不安全的反序列化反序列化用户输入高危
A9使用含有已知漏洞的组件资产弱点识别低危
A10不足的日志记录和监控WebShell 行为高危 

OpenRASP 零规则检测算法介绍

具体请查看以下几篇公众号文章

覆盖场景说明

1. 数据库: SQL注入

覆盖场景:

  • 来自 GET、POST、Header、JSON、Multipart 等参数的SQL注入
  • 其他类型的SQL注入,如二次注入、RPC接口SQL注入

覆盖类型:

  • 盲注、UNION 注入、时间差注入、错误注入、多语句注入
  • SQL 异常监控: 如语法错误、密码错误
2. 数据库: 慢查询(已废弃)

说明: 在SQL获取数据时,同时获取SQL语句较为困难,目前这个检测点已经废弃;另外,我们无法区分网络耗时和SQL执行时间,难以确认慢查询是不是真的慢查询

期望覆盖场景

  • SELECT 语句执行时间超过 N 秒
  • SELECT 语句一次读取数据超过 N 条(容易误报,如数据导出)
3. 任意文件上传

覆盖场景

  • HTTP PUT 方式上传脚本文件,比如 CVE-2017-12615
  • HTTP PUT + MOVE 方式,先上传普通文件,再重命名为脚本文件
  • 使用标准的 multipart 方式上传脚本文件
    • 支持 Java struts、spring、common.io 等框架
    • 支持 PHP $_FILES 方式
4. 敏感文件下载、任意文件读取

覆盖场景

  • 利用任意文件下载漏洞,尝试跳出web目录下载系统文件,e.g /download.jsp?path=/../././//./.././/../../etc/hosts
  • PHP webroot 下存在 .tar/.sql/.log/… 等敏感文件(仅做基线检测,不拦截)
5. 文件目录列出

覆盖场景

  • 使用 PHP WebShell 查看服务器的文件目录
  • 开启了 directory index,使得用户可以直接看到某个目录下的文件(此检查默认不开启)
  • 使用 ../ 获其他变形跳出前目录,查看其它目录内容
6. 扫描器探测行为 [官方插件不支持]

说明: 大部分情况下,发现扫描器行为不代表存在漏洞。这个功能不符合RASP的初衷,所以我们默认关闭了这个功能。若要开启,请下载 002-detect-scanner.js,并参考 检测插件配置 - 安装插件 文档,安装这个插件即可。

覆盖场景

  • 使用知名扫描器探测网站漏洞,e.g SQLMap、WVS 等等
7. CSRF [暂无计划支持]

说明

此类漏洞应该由开发框架来完成。RASP可以通过插入JS的方式来实现,即在JS里面监控form创建,插入csrf token,并在服务端进行token验证

覆盖场景

  • 使用 img/video/frame/.. 等方式,触发GET类型CSRF
  • Form 表单自动提交的方式
  • XHR 方式提交表单

覆盖场景

  • 修改cookie获取管理员权限
9. CRLF [暂无计划支持]

说明: HTTP header CRLF 注入漏洞大多已经在API层面被修复,我们没有支持的计划;然而在一些非HTTP协议里依然存在,比如最近爆出的 Java FTP 协议CRLF注入。由于我们没有足够的案例,所以暂时不打算支持。

覆盖场景

  • 在设置 HTTP header,或者处理其他TCP流时(比如FTP协议),插入换行符
10. XXE

说明: PHP无法挂钩xml检测点,暂不支持

覆盖场景

  • 通过 org.apache.xerces 引用外部实体
    • 访问 ftp/dict/gopher/expect/.. 等不常见协议,实现OOB攻击
    • 使用 file 协议读取敏感文件
11. 反序列化漏洞

覆盖场景

  • Java
    • fastjson
    • transformer
    • xstream(如 S2-052)
    • … (其他未知类型,具体看检测插件 command_reflect 算法)
  • PHP
    • 待整理
12. Struts OGNL 代码执行

覆盖场景

  • Struts OGNL 系列所有代码执行漏洞
  • OGNL 语句注入攻击
13. WebShell 行为

覆盖场景

  • 使用SQL管理器访问数据库
  • 使用文件管理器下载敏感文件
  • 使用中国菜刀执行命令
14. 远程命令执行

覆盖场景

  • 使用 Runtime.exec() 类执行命令
  • 使用 system/passthru/shell_exec/proc_open/pcntl_exec/.. 等函数执行命令
  • 通过反序列化等方式执行命令
15. 命令注入

覆盖场景

  • 使用 &|; 等符号截断、拼接命令
  • 使用 $(xxx)、反引号等方式注入命令
  • 在命令注入攻击时,产生了语法错误
16. XSS: 反射形式

覆盖场景

  • 使用 PHP echo 函数直接输出 GPC
  • 用户输入含有HTML标签的内容,且直接输出到页面中
17. XSS: 存储型(尚未发布)

覆盖场景

  • 后台盲打
18. LDAP 注入 [仅IAST商业版支持]

覆盖场景

  • 通过注入修改LDAP查询逻辑
19. DOS: Regex Group 攻击 [仅IAST商业版支持]

覆盖场景

  • 常见 Regex DOS 攻击,e.g (a+)+(a|aa)+
20. 打印敏感日志信息

覆盖场景

  • 使用 log4j、java.util.logging 打印身份证、银行卡、信用卡等敏感信息
  • HTTP响应(html/json/xml/等等)返回了未打码的敏感信息
21. 文件包含

覆盖场景

  • PHP 使用 include|include_once|require|require_once 等方式,包含日志、图片、文本文件等等
  • Java 使用 jstl 等方式包含文件
22. NTLM 信息泄露攻击

覆盖场景(仅限 Windows)

  • MySQL DNS 方式脱裤
  • 使用 302重定向到file/smb/scp协议 方式,泄露NTLM key
23. SSRF

覆盖场景

  • 绕过
    • 使用 10.10.10.10.xip.io / *.vcap.me 等已知域名访问内网资源
    • 使用 302 重定向方式访问 file:// 域的资源
    • 尝试混淆访问的目标地址,且是内网IP,e.g http://0x7f001http://0x7f.0x0.0x0.0x1
    • 访问保留地址,e.g http://0/
  • 常见场景
    • 尝试访问 aws metadata,e.g http://169.254.169.254/latest/meta-data/
    • 尝试访问已知的回显服务,e.g *.burpcollaborator.netrequestb.in
    • 尝试使用 gopher://dict 等不常见协议
    • (Java)使用JSTL import方式访问内网资源
24. 资产弱点识别 [开源版本仅采集信息,商业版支持漏洞识别]

覆盖场景

  • 采集 composer/pom 信息
  • 使用存在已知漏洞的类库
25. 后台爆破识别

覆盖场景

  • 无验证码的后台爆破