- 检测能力说明(持续更新 ..)
- OWASP TOP 10 覆盖说明
- OpenRASP 零规则检测算法介绍
- 覆盖场景说明
- 1. 数据库: SQL注入
- 2. 数据库: 慢查询(已废弃)
- 3. 任意文件上传
- 4. 敏感文件下载、任意文件读取
- 5. 文件目录列出
- 6. 扫描器探测行为 [官方插件不支持]
- 7. CSRF [暂无计划支持]
- 8. Cookie 篡改
- 9. CRLF [暂无计划支持]
- 10. XXE
- 11. 反序列化漏洞
- 12. Struts OGNL 代码执行
- 13. WebShell 行为
- 14. 远程命令执行
- 15. 命令注入
- 16. XSS: 反射形式
- 17. XSS: 存储型(尚未发布)
- 18. LDAP 注入 [仅商业版支持]
- 19. DOS: Regex Group 攻击 [仅商业版支持]
- 20. 打印敏感日志信息
- 21. 文件包含
- 22. NTLM 信息泄露攻击
- 23. SSRF
- 24. 资产弱点识别 [开源版本仅采集信息,商业版支持漏洞识别]
- 25. 后台爆破识别
检测能力说明(持续更新 ..)
若发现不能拦截的攻击,或者误报的情况,请联系我们
本表格参考 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 零规则检测算法介绍
具体请查看以下几篇公众号文章
- OpenRASP v1.3.0 正式发布 | 数据泄露检测、类库版本查询、检测能力加强
- OpenRASP v1.2.0 正式发布 | 发布DevSecOps轻量级解决方案,Java内存占用减少一半
- 那些年我们堵住的洞 – OpenRASP纪实
- OpenRASP v1.0 正式版发布 | 数据库异常监控与WebLogic支持如约而至
- OpenRASP v0.40 发布 | 正式支持 PHP 7
- OpenRASP v0.30 发布 | PHP 支持,堆栈异常和用户输入识别
- OpenRASP v0.23 发布 | 性能提升与SSRF检测
- OpenRASP v0.21 发布 | 拖库检测与数据安全
- OpenRASP v0.20 发布 | 性能提升与零规则漏洞检测
覆盖场景说明
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 方式提交表单
8. Cookie 篡改
覆盖场景
- 修改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 注入 [仅商业版支持]
覆盖场景
- 通过注入修改LDAP查询逻辑
19. DOS: Regex Group 攻击 [仅商业版支持]
覆盖场景
- 常见 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://0x7f001
、http://0x7f.0x0.0x0.0x1
- 访问保留地址,e.g
http://0/
- 使用
- 常见场景
- 尝试访问 aws metadata,e.g
http://169.254.169.254/latest/meta-data/
- 尝试访问已知的回显服务,e.g
*.burpcollaborator.net
、requestb.in
- 尝试使用
gopher://
、dict
等不常见协议 - (Java)使用JSTL import方式访问内网资源
- 尝试访问 aws metadata,e.g
24. 资产弱点识别 [开源版本仅采集信息,商业版支持漏洞识别]
覆盖场景
- 采集 composer/pom 信息
- 使用存在已知漏洞的类库
25. 后台爆破识别
覆盖场景
- 无验证码的后台爆破