linux环境OpenRASP使用教程,OpenRASP技术分析
阅读:
11,455
OpenRASP 将新兴的RASP(Runtime Application Self-Protection)安全防护技术普及化,使其迅速成为企业Web安全防护中的一个重要武器,有效增强防御体系纵深和对漏洞防护的适应能力。本文主要针对OpenRASP进行原理介绍和应用。
OpenRASP介绍
百度云分析团队开源的自适应安全产品
https://rasp.baidu.com/ 文档 https://rasp.baidu.com/doc/;
目前只支持JAVA; 以-javaagent 方式启动Tomcat。
安装
java –jar raspInstall.jar 可源码安装;
攻击检测告警日志(XSS):
安全基线检查告警日志:
OpenRASP – 初始化流程
OpenRASP – 类字节码修改流程(instrument方式)
OpenRASP – 攻击检测流程
在进入到被修改类的函数时,调用事先注入的检测函数,最终调用pluginCheck函数。
1.pluginCheck(CheckParameter.Type type, Object params);
(type为检查的挂载点类型,params为函数原始调用参数)
2.遍历执行该挂载点类型的所有JavaScript检测函数;
3.如果检测函数没有返回block,继续执行;
4.否则记录攻击日志到alarm.log中,并执行Block操作(重定向到一个提示异常的页面)
(重定向的异常页面可通过配置修改)
OpenRASP防护原理
Tomcat安全基线检查
启动Tomcat时检查允许环境和配置是否符合安全规范
检测类:org/apache/catalina/startup/Catalina
检测函数:start (Tomacat的启动函数)
检测挂载点:startup
检测方法:没有使用js插件函数,直接通过代码检测。
是否以admin启动
是否开启http only
tomacat管理员是否有弱密码
是否删除默认webapps
SQL权限控制
检测类:java/sql/DriverManage
检测函数:getConnection
检测挂载点:sql(但没有使用)
检测方法:没有使用js插件函数,直接通过代码检测。
解析数据库类型、登录用户,限制通过管理员用户登录。
SQL慢查询检测
SELECT语句执行时间超过3s(尚未实现)
SELECT语句一次读取数据行数超过配置的阈值
检测类:select查询结果返回的类,每种数据库的类不同,如PostgreSql的ResultSet类
检测函数:next(取下一条记录的函数)
检测挂载点:sql_result_set (但没有使用)
检测方法:没有使用js插件函数,直接通过代码检测。
如果返回结果大于配置值,认为是慢查询,提示告警:
SQL注入检测
检测类:sql语句执行类,每种数据库的类不同,如PostgreSql的PgStatement类
检测函数:execute/executeUpdate
/executeQuery/addBatch
检测挂载点:sql
检测方法:使用js插件函数检测
如下params.query为sql语句
params.server为sql数据库类型
context.parameter为http请求实体
SQL注入检测
方法一:结合Hook截获的http请求参数做检测
如果请求参数中包含了sql语句,认为是webshell-数据库管理器,block掉
从SQL语句中去掉用户输入,再和原语句进行比较,关键字个数相差太多则认为查询逻辑变化,block掉
方法二:数据库语句异常检测
禁止多条sql语句;
禁止16禁止字符串;
禁止MySQL版本号注释/*!
禁止常量比较操作
禁止执行敏感函数
方法三:简单正则匹配检测/\bupdatexml\s*\(|\bextractvalue\s*\(|\bunion.*select.*(from|into|benchmark).*\b/i
任意文件上传检测
原理:
攻击者通过上传木马文件,直接得到WEBSHELL
形成原因:
代码作者没有对访客提交的数据进行检验或者过滤不严,可以直接提交修改过的数据绕过扩展名的检验。
危害:
可以得到WEBSHELL;
上传木马文件,可以导致系统瘫痪
检测类:org/apache/commons/fileupload/disk/DiskFileItem
检测函数:setHeaders
检测挂载点:fileUpload
检测方法:使用js插件函数检测,判断文件名后缀是否合法
var scriptFileRegex= /\.(jspx?|php[345]?|phtml)\.?$/i
var ntfsRegex= /::\$(DATA|INDEX)$/i//其他的stream都没啥用
远程命令执行检测
检测类:java/lang/ProcessBuilder
检测函数:start
检测挂载点:command
检测方法:使用js插件函数检测
(不允许远程执行命令)
XSS跨站攻击检测
检测类:apache/catalina/core/ApplicationFilterChain
检测函数:doFilter
检测挂载点:request
检测方法:使用js插件函数检测
(检查http参数中是否含有特殊字段)
反序列化用户输入检测
检测类:java/io/ObjectInputStream
检测函数:resolveClass
检测挂载点:deserialization
检测方法:使用js插件函数检测
(检查反序列化的类名是否合法,使用黑名单检验)
ObjectOutputStream类的writeObject()方法实现序列化;ObjectInputStream类的readObject()方法用于反序列化。
Struts 2的Ognl表达式执行漏洞检测
OGNL是Object-Graph Navigation Language的缩写,全称为对象图导航语言,是一种功能强大的表达式语言,它通过简单一致的语法,可以任意存取对象的属性或者调用对象的方法,能够遍历整个对象的结构图,实现对象属性类型的转换等功能。
检测类:ognl/Ognl
检测函数:parseExpression(在此函数中执行表达式)
检测挂载点:ognl
检测方法:使用js插件函数检测
(检查structpayload中是否含有非法信息)
SIEM
security information and event management(安全信息和事件管理)
OpenRASP 支持两种类型的SIEM插件,分别是 Splunk 和 Kibana,它们采集OpenRASP的日志并展示。
支持邮件告警
OneASP
总结
ØOpenRASP框架已完成,并支持大部分攻击类型的检查
Ø可新增JS插件和HooK类进行二次开发
Ø深入了解每种攻击类型,常见攻击方法,再丰富插件和代码
Ø对应用程序的性能影响需要测试
Ø管理平台: 探针的管理、插件的管理、WEB展现
Ø结合自身与WAF的优点,联合WAF进行防护
linux环境OpenRASP使用教程,OpenRASP技术分析相关推荐
- Linux 环境下的高级隐藏技术
摘要:本文深入分析了Linux环境下文件.进程及模块的高级隐藏技术,其中包括:Linux可卸载模块编程技术.修改内存映象直接对系统调用进行修改技术,通过虚拟文件系统proc隐藏特定进程的技术. 隐藏技 ...
- 理解 Linux 网络栈(2):非虚拟化Linux 环境中的 Segmentation Offloading 技术
本系列文章总结 Linux 网络栈,包括: (1)Linux 网络协议栈总结 (2)非虚拟化Linux环境中的网络分段卸载技术 GSO/TSO/UFO/LRO/GRO (3)QEMU/KVM + Vx ...
- linux目录隐藏技术,Linux环境下的高级隐藏技术
摘要:本文深入分析了Linux环境下文件.进程及模块的高级隐藏技术,其中包括:Linux可卸载模块编程技术.修改内存映象直接对系统调用进行修改技术,通过虚拟文件系统proc隐藏特定进程的技术. 隐藏技 ...
- linux服务器环境配置教程,在Linux 环境搭建discuz教程
想在Linux 环境下搭建属于自己的discuz论坛吗?那就跟我来吧! 一.系统约定 软件源代码包存放位置:/usr/local/src 源码包编译安装位置(prefix):/usr/local/so ...
- Linux系统漏洞复现分析,Linux环境下常见漏洞利用技术
记得以前在drops写过一篇文章叫 linux常见漏洞利用技术实践 ,现在还可以找得到(https://woo.49.gs/static/drops/binary-6521.html), 不过当时开始 ...
- awstats linux日志分析,Linux环境下安装部署AWStats日志分析系统实例
AWStats是使用Perl语言开发的一款开放性日志分析系统,可分析Apache网站服务器的访问日志,还可以用来分析Samba.Vsftpd.IIS等日志信息. 此文章主要讲解如何在linux系统下安 ...
- Linux环境下安装部署AWStats日志分析系统实例
AWStats是使用Perl语言开发的一款开放性日志分析系统,可分析Apache网站服务器的访问日志,还可以用来分析Samba.Vsftpd.IIS等日志信息. 此文章主要讲解如何在lin ...
- 绿盟科技 linux漏洞,绿盟科技发布LINUX内核本地提权漏洞技术分析与防护方案
Linux内核的内存子系统在处理写时拷贝(Copy-on-Write,缩写为COW)时存在条件竞争漏洞,导致可以破坏私有只读内存映射.一个低权限的本地用户能够利用此漏洞获取其他只读内存映射的写权限,进 ...
- ESP32+CAM Linux 环境搭建配置教程
本文参考博客: https://blog.csdn.net/xh870189248/article/details/80208099 https://blog.csdn.net/solar_lan/a ...
最新文章
- 阿里巴巴为什么能抗住90秒100亿?看完这篇你就明白了!
- hdu 3579(中国剩余定理非互质)
- 360的驱动(qutmdrv.sys)分页内存泄露
- java实现动态验证码源代码——绘制验证码的jsp
- MacBook搭建go语言开发环境
- iOS-仿智联字符图片验证码
- bond解除 centos7_centos7上实现bonding
- bottomTagFragment
- 一段看不懂的乱码字符_字符乱码的解读
- 虚拟机安装苹果系统(Mac OSX 10.15包含所有资源)
- C++经典编程题目(九)玩火柴棍游戏
- 不靠谱的InetAddress.isReachable,解决办法
- 维拉智能管家机器人_识人又认家 弗徕威智能机器人维拉三代正式发布
- 定时任务Alarm的深入理解
- CVPR 2022 | 美团技术团队精选论文解读
- EChat(简易聊天项目)七、保存聊天记录
- linux 造字程序下载,truetype造字程序
- 二级域名 文件服务器,自建DNS服务器使用二级域名转发内网服务器
- wifiadbtool下载_私享空间-中兴B860Av1.1免拆机仅安装APP教程 - 中国电信悦me盒子
- ADC VS参考电压在测量时和AD值的大小对应关系
热门文章
- 使用caffe训练时Loss变为nan的原因
- 动态数组的定义和声明(c++)
- Spire.Doc 教程:用C#识别Word中的合并字段名称
- Android基于mAppWidget实现手绘地图(三)--环境搭建
- 算法练习:将字符串中所有的空格替换为'%20'(只用基本数据结构)
- 信息网络安全技术知识
- windows10下Anaconda spyder安装CRF++的python接口
- C#实现的三种方式实现模拟键盘按键
- Oracle Pipelined Table Functions简介
- mysql标准化存储结构_Atitit.自定义存储引擎的接口设计 api 标准化 attilax 总结 mysql...