转载

OpenRASP新增JNI防护、黑链定位支持 | 获得大型金融企业用户致谢

OpenRASP新增JNI防护、黑链定位支持 | 获得大型金融企业用户致谢

OpenRASP 是百度安全推出的一款开源、免费的自适应安全产品,目前与国际知名非盈利安全组织 OWASP(Open Web Application Security Project)达成深度合作,现已加入到OWASP全球技术项目中,在全球范围内进行大规模推广。OpenRASP将新兴的RASP(Runtime Application Self-Protection)安全防护技术普及化,使其迅速成为企业Web安全防护中的一个重要武器,有效增强防御体系纵深和对漏洞防护的适应能力。由于OpenRASP直接在Web服务应用内部对漏洞脆弱环节做针对性防护,所以防护效能与传统WAF等手段相比有着革命性提升。OpenRASP通过开源社区迅速推广和成熟,解决了商业RASP长期以来难以克服的稳定性和兼容性问题,成为目前业界应用最广泛的RASP方案。

随着OpenRA SP用户的逐渐增多,安全社区对OpenRASP的讨论也多了起来,我们也收到了用户的致谢,这里一并总结下。

OpenRASP新增JNI防护、黑链定位支持 | 获得大型金融企业用户致谢

JNI 防护的讨论

首先是  WeirdBird 发起的JNI防护讨论。 在  webshell中的分离免杀实践-java篇 一文中,他提出了两种免杀思路:

  • 通过 URLClassLoader 远程加载菜刀后门,关键代码不落地

  • 通过JNI实现自定义Java方法,通过对popen包装实现命令执行后门

对于方案1,由于是内存加载,对基于恶意payload特征的查杀工具比较有效; 如果EDR强行查杀URLClassLoader,则会有误报风险。 而对于OpenRASP来讲,由于攻击者最终还是要调用 java.lang.ProcessBuilder,所以无法绕过OpenRASP目前已有的命令执行检测点。

对于方案2,作者放弃使用 java.lang.ProcessBuilder,改用自定义的JNI函数实现命令执行,因此绕过了OpenRASP的检测点。 另外,作者建议将JNI类库放到远程共享服务器,并使用UNC路径(如 //8.8.8.8/bds.dll)加载,来进一步减少在目标主机上的痕迹。

为了缓解上述绕过,我们在即将发布的 v1.2 版本里加入了  System.loadSystem.loadlibrary 两个方法的hook点,并新增两个检测算法:

  • loadLibrary_unc: 若在请求来之后发生JNI加载且路径为UNC地址,拦截请求

  • loadLibrary_other: 若在请求来之后发生其他JNI加载事件,可以记录日志或者直接阻断

OpenRASP新增JNI防护、黑链定位支持 | 获得大型金融企业用户致谢

定位黑链来源的难题

某用户在OpenRASP技术讨论群里求助,在自家网站发现黑链,使用多种工具扫描都没查出webshell。 为了定位后门文件,我们帮助用户编写了一个简单的插件,当PHP-FPM尝试修改指定文件时,打印报警:

plugin.register('writeFile', function (params, context) {

// 为了保护客户隐私,我们简化了路径

if (params.realpath.indexOf('/compiled/test.js') != -1) {

return {

action:  'log',

message: 'Opened ' + params.realpath + ' for writing'

}

}

return clean

})

通过排查报警日志,我们最终定位到了后门。 由于该文件仅用于更新黑链,不具备webshell常见功能,所以市面上的webshell扫描器未能检出。 当然,使用系统机制如audit、ETW监控文件写入事件,手动关联访问日志也能得出一些结论,只是无法像OpenRASP这样一步到位。

OpenRASP新增JNI防护、黑链定位支持 | 获得大型金融企业用户致谢

Xstream、Jackson 反序列化漏洞

最后是关于Jackson、Xstream最近爆出的反序列化漏洞的讨论。 在网上公开的PoC后,我们第一时间进行了测试,并更新了官方插件:

  • Jackson CVE-2019-12384 - 增加 com.fasterxml.jackson.databind 检测,可以防护所有基于databind的命令执行利用,如CVE-2017-7525

  • Xstream CVE-2019-10173 - 无需更新,已经支持防护(即 command_reflect 算法)

目前 v1.2.0 还在稳定性测试中,即将发布。 最新的 2019-0726-1200 插件可以在  https://github.com/baidu/openrasp/blob/1.2/plugins/official/plugin.js  下载。

OpenRASP新增JNI防护、黑链定位支持 | 获得大型金融企业用户致谢

获得大型金融企业用户致谢

在今年的某网络安全攻防演练中,百度安全基于OpenRASP给某大型金融企业用户云平台基础设施运行提供了安全保障,安全监控与审计等技术支撑工作,保障了该行的信息系统安全稳定运行,未发生重大网络安全事件。 在演练结束后,OpenRASP获得了用户的 书面致谢 这也是开源安全软件首次获得国内头部大型金融企业的致谢。

OpenRASP新增JNI防护、黑链定位支持 | 获得大型金融企业用户致谢

写在最后

OpenRASP 是百度AIoT安全解决方案的重要组成部分,也是百度下一代AI安全技术栈的核心技术之一。 从新一代安全技术的研发与开源,到为行业提供一体化安全解决方案,再到促进学术、企业、机构间多层面协作,百度安全实验室正在升级打造AI时代的安全生态,打破产业隔阂,避免生态碎片化,以此推动AI时代的安全生态建设。

在攻防需求急剧提升的今天,最让人头疼的就是没有源码的老系统,或者没法及时修复漏洞的系统。 尤其是金融行业,大量系统是外包开发或者外购商业系统。 在这种情况下可以考虑部署OpenRASP系统来进行防护,很多用户的实战经验都表明OpenRASP起到了非常出色的防护效果。

另外,本月我们会发布基于RASP技术的DevSecOps社区版方案,之后的版本会加入 污点追踪支持 (精确到字符串索引级别,支持PHP、Java)。 若想在第一时间了解我们的动态,请加入QQ技术讨论群  259318664  讨论, 微信群 由于超过人数需要联系QQ群主加入。 若需要进一步 线下交流 ,可单独联系QQ群主(仅限北京地区)。

更多内容请移步:

  • OpenRASP 项目主页:  https://rasp.baidu.com

  • GitHub 源代码:  https://github.com/baidu/openrasp

  • 百度安全的OpenRASP项目,究竟是什么?

*点击阅读原文进入项目主页

OpenRASP新增JNI防护、黑链定位支持 | 获得大型金融企业用户致谢

原文  http://mp.weixin.qq.com/s?__biz=MzA3NTQ3ODI0NA==&mid=2247485114&idx=1&sn=1f2e88178fa131442db171ac65f7171f
正文到此结束
Loading...