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

若发现不能拦截的攻击,或者误报的情况,请联系我们

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

OWASP TOP 10 覆盖说明

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

OpenRASP 零规则检测算法介绍

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

覆盖场景说明

1. 数据库: SQL注入

覆盖场景:

  • GET、POST、Header 注入
  • 其他数据类型注入

覆盖类型:

  • 盲注、UNION 注入、时间差注入、错误注入、多语句注入
  • SQL 异常监控,语法错误、密码错误等等
2. 数据库: 慢查询

覆盖场景

  • SELECT 语句执行时间超过 3s(可配置)
  • SELECT 语句一次读取数据超过 500 条(可配置)

尚未实现

  1. 慢查询 hook 点获取SQL语句较为困难
  2. 无法区分网络耗时和SQL执行时间
3. 任意文件上传

覆盖场景

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

覆盖场景

  • 通过扫描探测的方式,下载web目录下面的压缩包、SQL文件、其他用户文件等等
  • 利用任意文件下载漏洞,尝试跳出web目录下载系统文件,e.g /download.jsp?path=/../././//./.././/../../etc/hosts
5. 文件目录列出

覆盖场景

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

覆盖场景

  • 使用知名扫描器探测网站漏洞,e.g SQLMap、WVS 等等

说明

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

7. CSRF

覆盖场景

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

说明

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

覆盖场景

  • 修改cookie获取管理员权限
9. CRLF

暂无支持计划,原因如下

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

覆盖场景

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

覆盖场景

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

覆盖场景

  • Java
    • fastjson
    • transformer
    • xstream
    • ... (其他未知类型)
  • PHP
    • 待整理
12. Struts OGNL 代码执行

覆盖场景

  • Struts OGNL 系列所有代码执行漏洞

说明

虽然 S2-052 是 xstream 反序列化漏洞,OpenRASP 也可以检测

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 注入

敬请期待

19. DOS: Regex Group 攻击

覆盖场景

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

覆盖场景

  • 使用 log4j、java.util.logging 打印身份证、银行卡、信用卡等敏感信息
21. 文件包含

覆盖场景

  • 使用 include|include_once|require|require_once 等方式,包含日志、图片、文本文件等等
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. 资产弱点识别

覆盖场景

  • 使用存在已知漏洞的jar包(基于NVD数据库)
25. 后台爆破识别

覆盖场景

  • 无验证码的后台爆破