转载

OpenRASP v1.2 发布,降低 Java 内存占用,发布灰盒安全测试工具

OpenRASP于2017年4月立项,其初衷是为了提供一套通用的安全框架,并提高应用对未知漏洞的防护能力。Struts2 系列漏洞属于典型的未知漏洞。从 S2-001 到最新的 S2-057,它的特点是请求特征在不断变化,最终通过某种方式执行OGNL语句或者反序列化,接着获取系统权限。

RASP防护引擎运行与应用内部,可以很好的解决这个问题。无论是何种漏洞,它的最终目的无非是: 执行系统命令、上传webshell、拖库等等。于是我们实现了这样的安全框架: 不依赖请求特征检测攻击,而是在应用执行上述关键操作时,执行一段自定义的逻辑检查是否存在异常。

本次发布 OpenRASP 1.2 版本,大幅度降低 Java v8 内存占用,同时发布灰盒测试工具第一版。

重大变更

通用变更

  • 删除 enforce_policy 配置,基线检测不再支持拦截
  • 去除 MySQL duplicated key 错误监控
  • 删除报警日志里的 stack_trace 字符串字段,统一使用 attack_params.stack 获取堆栈
    • 若 Java/PHP agent 升级到 v1.2.0,那管理后台也必须升级,否则前端堆栈将展示为空值

新增功能

通用改进

  • 主机名发生变化时,同步到管理后台
  • 增加 host_type 字段,以标识是否为docker容器

管理后台

  • 修复登录后无法跳回原URL的问题

插件系统

  • 增加 requestEnd hook 点,请求结束时调用一次
  • 增加 RASP.request() 接口,可在插件里发送 HTTP 请求
  • 增加 RASP.get_version() 接口,可获取 agent 版本信息
  • 增加 context.requestId 等多个字段
  • 文件上传增加 dest_path/dest_realpath 两个参数(仅PHP版本)
  • 新增 loadLibrary_unc 算法,当要加载的类库来自 UNC 路径时拦截

PHP 版本

  • 增加 eval/assert hook 点
  • 增加 debuglevel 配置,避免打印多余日志

Java 版本

  • 对 JBoss、WebLogic 增加集群支持
  • 增加关键hook点检查: requestEnd, request.parameterMap 不存在时拒绝启动
  • 心跳间隔下限改为 10s
  • 优化内存占用,减少50%左右
  • 启动时打印 RASP ID,方便排查
  • 解决当 Tomcat 主动 flush() 时不会检测 XSS 的问题
    • 同时优化了XSS检测效率
    • XSS 拦截时不再抛出异常(其他攻击类型还是会抛出)

自动安装程序

  • 增加 SpringBoot 半自动安装,即只释放文件并修改配置,参数名为 -nodetect
  • 增加对 yum 安装的 tomcat 的支持,即 bin 目录与 tomcat_home 分离的情况
  • 增加  -prepend  参数,若开启则将  -javaagent  参数放在最前面
    • 默认在后面附加
    • 解决 jacoco 的兼容性问题

灰盒扫描工具

  • 发布第一版,结合RASP挖掘漏洞的扫描器

Bug 修复

Java 版本

  • 解决 JRockit 兼容性问题,改为 jni 获取网卡信息
  • 解决 org.elasticsearch.client.RestClient 兼容性问题
  • 解决 XXE 代码安全开关和 taglib 不兼容的问题
  • 屏蔽 V8 execstack warning

PHP 版本

  • 修复报警日志里PHP版本号不对的问题

插件系统

  • 修复  001-dir-1.jsp  即使在插件里关闭  all_log  也不会拦截的问题
原文  https://www.oschina.net/news/109657/openrasp-1-2-released
正文到此结束
Loading...