OpenRASP于2017年4月立项,其初衷是为了提供一套通用的安全框架,并提高应用对未知漏洞的防护能力。Struts2 系列漏洞属于典型的未知漏洞。从 S2-001 到最新的 S2-057,它的特点是请求特征在不断变化,最终通过某种方式执行OGNL语句或者反序列化,接着获取系统权限。
RASP防护引擎运行与应用内部,可以很好的解决这个问题。无论是何种漏洞,它的最终目的无非是: 执行系统命令、上传webshell、拖库等等。于是我们实现了这样的安全框架: 不依赖请求特征检测攻击,而是在应用执行上述关键操作时,执行一段自定义的逻辑检查是否存在异常。
本次发布 OpenRASP 1.2.1 版本,Java版本增加CPU熔断支持,修复多个已知问题
新增功能
通用改进
-
支持自定义 RASP ID
-
安装时使用
--rasp-id (PHP)
或者 -raspid (Java)
来设置
- 若没有指定,则按照先前的逻辑,根据网卡、RASP路径等信息计算一个
管理后台
- 增加报警日志去重,目前按照 request_id + stack_md5 进行去重
-
在 系统设置 -> 后台设置
界面,增加一键清理报警数据支持
-
主机管理界面,自动记住
主机状态
勾选情况
- 报警查看界面,支持按照报警消息、堆栈MD5搜索;Referer、URL 支持点击
Java 版本
-
增加 TongWeb 6.X 服务器部分支持, 来自 @superbaimo
-
简化 JBoss 7 以及更高版本的安装流程, 来自 @Lorisy
- 增加 HSQL 数据库 hook 点,可以检测 WebGoat SQL 注入漏洞
-
增加熔断支持
- 每隔一段时间采集一次单核CPU占用率,若超过阈值且连续3次,启动熔断机制
- 当下次采集到的占用率低于阈值,自动恢复防护
- 本功能默认关闭,采集间隔、CPU占用率均可配置
- 修复 plugin.filter 在 include hook 点不生效的问题
插件系统
- 命令执行检测点,增加环境变量信息
- SQL异常检测改为插件检测,且可在管理后台自定义要监控的错误代码
- 修复 command_reflect 算法,在某些情况下可能误报的问题
Bug 修复
通用修复
- 增加重新注册支持,当主机离线后被误删除,可自动恢复
Java 版本
- 修复当中间件支持 multipart 协议,但是用户没有使用文件时,会产生误报的问题
- 修复当服务器在启动一段时间后才与管理后台连通,Java Agent 不会再次获取注册IP的问题
- 修复某些情况下,由于 context.language 为空,不会拦截 WebSphere 反序列化命令执行的问题
- 修复心跳失败时,sleep 失效,会无限打印日志的问题
- 修复日志推送完毕后,log4j 缓存不会清理的问题(感谢 @忆相逢 反馈)
- 修复当有多个文件上传时,只会处理第一个文件的问题
- 修复配置更新失败时,缺少详情的问题
- 修复 request hook 点无法拦截的问题(感谢 @Looke 反馈)
- 修复 cloud.X 等配置可以远程下发的问题
- 修复 SQL prepared statements 产生异常时,不会进入检测插件、不会记录SQL异常的问题
PHP 版本
- 修复PDO异常监控没有过滤 error code,记录了多余的异常日志的问题
原文
https://www.oschina.net/news/110930/openrasp-1-2-1-released