OpenRASP 是百度安全推出的一款面向网站安全的一款免费、开源 的应用运行时自我保护产品,OpenRASP 是一个百度安全旗下的免费开源安全项目,全称应该是:Opensource Runtime Application Self-Protection 开源实时程序自保护系统。它隶属于百度 OAESE 智能终端安全生态联盟,是其中五大开放技术之一。随着Web应用攻击手段变得复杂,基于请求特征的防护手段,已经不能满足企业安全防护需求。Gartner在2014年提出了应用自我保护技术(RASP)的概念,即将防护引擎嵌入到应用内部,不再依赖外部防护设备。OpenRASP是该技术的开源实现,可以在不依赖请求特征的情况下,准确的识别代码注入、反序列化等应用异常,很好的弥补了传统设备防护滞后的问题,百度安全的 OpenRASP 项目,究竟是什么? 以及 OpenRASP 最佳实践。
OpenRASP 抛弃了传统防火墙依赖请求特征检测攻击的模式,创造性的使用RASP技术(应用运行时自我保护),直接注入到被保护应用的服务中提供函数级别的实时防护,可以在不更新策略以及不升级被保护应用代码的情况下检测/防护未知漏洞,尤其适合大量使用开源组件的互联网应用以及使用第三方集成商开发的金融类应用。
另外,OpenRASP 提供的IAST解决方案,相比于与传统的DAST方案有着革命性提升。漏洞检测无需动态爬虫或者旁路代理,扫描更全面;结合应用探针准确的识别漏洞类型,通过针对性扫描大幅度提升检测效率;
保护引擎深度集成
挂钩关键函数,深度监控应用执行流。在数据库、网络、文件系统等多个层面,对应用进行全面的监控和防护。零规则检测漏洞
发生攻击时,自动识别用户输入。结合语义引擎、应用堆栈、请求上下文,零规则检测威胁。具体请看说明文档。高性能
高并发压力下,接口响应时间延迟 1~7ms,可接受。具体请看性能测试报告。可定制化更强
检测逻辑由JavaScript插件实现,全平台复用;日志可以通过http/syslog/kafka等方式推送,与SIEM系统完美集成。OpenRASP和WAF的区别在哪里?
WAF 在请求层进行过滤,而RASP技术则是根据应用行为进行过滤。这种技术具有如下优势,
只有成功的攻击才会触发RASP的报警,而WAF是只要匹配特征就会报警 …
WAF很难完全兼容后端应用的特性,导致防护引擎绕过;而RASP不受影响 ..
可以实现应用热补丁,比如永久免疫 Struts OGNL 系列漏洞,WAF只能不断加规则 …
可定制安全编码规范、服务器安全基线,WAF做不了 …OpenRASP 可以检测哪些攻击类型?
OpenRASP 有着多种独特的检测算法,可以防护常见的 Web 攻击类型。另外,为了验证检测算法的实际效果和兼容性,我们搭建环境并测试了大量已知的CVE漏洞。具体请查看 攻击检测能力说明 和 CVE 漏洞覆盖说明 两个页面。OpenRASP 是否会影响服务器的性能?
高压力情况下,OpenRASP 对服务器的性能影响通常在 1~4% 之间,请求时延在 1-8ms 之间,具体可查看我们的性能报告。若性能问题,请联系我们进行调试。为什么选择用 JavaScript 插件实现检测逻辑?
未来,OpenRASP会支持 NodeJS、Python、Ruby、Golang、DotNet 等多种开发语言。为了避免在不同平台上重新实现检测逻辑,我们决定引入插件系统。选择JS作为插件开发语言,是因为它更加友好(相比于Lua),成熟的实现也多。安全检测插件是否支持实时更新?
OpenRASP 会监控插件目录,当插件发生变化,就会立即重新加载。若某个插件有语法错误,会打印错误信息并忽略这个插件。
需要注意的是,当你在Linux虚拟机里开发插件,请不要把插件目录放在VMWare共享文件夹里,这会让inotify失效。解决方法是将整个应用目录复制到虚拟机里。百度安全的OpenRASP项目,究竟是什么?点我查看了解
OpenRASP 官方网站 https://rasp.baidu.com/
如果使用的BT面板的话很简单直接后台搜索 OpenRASP 管理器 安装即可,支持Centos6到Centos7 全版本(64位系统),Ubuntu 16.04 到 Ubuntu 18.04 全版本(64位系统) 首次安装会特别慢。因为需要下载一个200M的压缩包。所以会很慢。
如果实在下载慢的话。可以手动下载压缩包,执行如下操作的就可以了
这款工具很强大检测能力,覆盖场景,以及零规则算法介绍
1. 数据库: SQL注入
覆盖场景:来自 GET、POST、Header、JSON、Multipart 等参数的SQL注入
其他类型的SQL注入,如二次注入、RPC接口SQL注入
覆盖类型:盲注、UNION 注入、时间差注入、错误注入、多语句注入
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 等等
无验证码的后台爆破等等
具体更多可以查看官方说明 https://rasp.baidu.com/doc/usage/web.html