OpenRASP 初探(一)之项目介绍

2023-10-24 22:33
文章标签 项目 介绍 初探 openrasp

本文主要是介绍OpenRASP 初探(一)之项目介绍,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

在这里首先感谢百度安全团队对安全事业的贡献精神,让我得以接触到这款国内为数不多的功能完善、成熟的RASP产品。其次也感谢百度安全团队的大牛 @c0de::bre@k 在我进行调研实施的时候,给予了最大的帮助和耐心的解答。

后面我将分几篇文章介绍我在调研Openrasp时的一些心得,希望对大家能有所帮助和启发。

公司的核心业务其实大部分使用python和go语言来进行开发,因此一直以来包括waf策略等防护手段更多针对python和go语言的特性做一些防护规则的配置,其他的技术栈关注较少。但使用较少不代表没有,前段时间经过对业务的排查梳理,意外发现支付业务等一系列应用其实还是使用了java技术栈,而恰恰这块安全的防护较为薄弱。此时恰好了解到openrasp项目,便由此想调研下这个项目是否适合公司的环境,也正好可以弥补java安全的短板。

一、项目背景

下面的内容呢大部分来自Openrasp的官网,了解一个项目最好的途径,莫过于看它的官方手册和指南。
详细内容大家可以直接访问官网,我这里只挑出一些重要的信息,帮大家快速了解。

OpenRASP 官网:https://rasp.baidu.com/
项目文档:https://rasp.baidu.com/doc/

OASES(Open AI System Security Alliance)智能终端安全生态联盟是国内首个致力于提升智能终端生态安全的联合组织,由百度、华为、中国信通院联合发起成立,成员包括安全厂商、行业安全专家、设备厂商、⾼校和各行业安全专家等。OASES 目前包含 KARMA、OASP、OpenRASP、MesaLink、MesaLock Linux 等几个子项目。其中,OpenRASP 主要应⽤于云端应用安全防护,以及上线前的应用安全测试。Gartner 在2014年提出了「 运行时应用自我保护」技术的概念,即对应⽤服务的保护,不应该依赖于外部系统;应⽤应该具备自我保护的能⼒。OpenRASP 是该技术的开源实现,它改变了防⽕墙依赖请求特征来拦截攻击的模式。以注入类的漏洞举例,Openrasp 可以识别用户输入的部分,并检查程序逻辑是否被修改。由于不依赖请求特征,确保每条告警都是有效的。

License:目前 OpenRASP 是开源项目,项目 license 是 Apache License 2.0,相对较为宽松。

目前项目主要由百度安全团队维护。

二、支持功能

1)web攻击检测:包含sql注入、命令注入、xss、敏感文件下载、任意文件读取、xxe、反序列化(fastjson等)、Struts OGNL 代码执行、ssrf、敏感日志打印等。另外还集成了一些 CVE 的检测。

2)服务器安全基线检查:关键 Cookie 是否开启 HttpOnly(Tomcat)、进程启动账号检查、后台密强度检查(Tomcat)、不安全的默认应用检查(Tomcat)、Directory Listing 检查(Tomcat)、数据库连接账号审计 (jdbc) 备注:基线检查会在应用服务启动时进行检查,可设置不符合检查项禁止启动。

3)应用加固:当应用收到请求,我们会通过输出响应头的方式,实现对应用的加固。
在这里插入图片描述4)openrasp-iast 灰盒扫描:openrasp-iast 作为 openrasp 的一个插件集成到 openrasp 中,采用被动扫描的方式,java 探针在请求结束后会将本次请求参数、hook 点信息提交给服务端进行分析并选择性的 fuzz 目标。openrasp 会根据 hook 点信息精确检测漏洞。

三、RASP 技术原理

在 Java 技术栈下,RASP 引擎以 javaagent 的形式实现,并运⾏在 JVM 之上。在应⽤服务器启动的时候,RASP 引擎借助 JVM 自身提供的 instrumentation 技术,通过替换字节码的方式对关键类⽅法进行挂钩。RASP 的技术原理与 APM 是一样的,只是挂钩的函数要少很多。以 OpenRASP 为例,我们挂钩了 SQL 查询、文件读写、反序列化对象、命令执⾏等关键操作,具体列表可参考:Hook 函数表。
在这里插入图片描述

四、openrasp-iast 技术原理

IAST(交互式扫描)技术是一种实时动态交互的漏洞检测技术,通过在服务端部署 agent 程序,收集、监控 Web 应用程序运行时函数执行、数据传输,并与扫描器端进行实时交互,高效、准确的识别安全缺陷及漏洞。目前 OpenRASP 项目已实现相当于 IAST agent端的 OpenRASP agent,在此基础上引入一个扫描端,即可实现一个完整的 IAST 扫描工具。

灰盒扫描工具采用 Python3 实现,数据库采用 MySQL,通讯采用 HTTP+JSON 的方式。整体架构图如下:
在这里插入图片描述工具分为扫描器端和 agent 端,Agent 端用于收集 web 应用的运行信息,扫描器端用于处理插件产生的请求信息,并完成整个 IAST 扫描逻辑。

五、部署方式/架构

目前 openRASP 支持单机部署和大规模部署(支持容器化部署)。部署架构可参见下图,在每个应用节点需安装 agent,管理后台负责策略下发和节点的集中管理。

在这里插入图片描述参考链接:1. 大规模(容器)部署
2. agent工作机制流程

这篇关于OpenRASP 初探(一)之项目介绍的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/278211

相关文章

一文详解如何在idea中快速搭建一个Spring Boot项目

《一文详解如何在idea中快速搭建一个SpringBoot项目》IntelliJIDEA作为Java开发者的‌首选IDE‌,深度集成SpringBoot支持,可一键生成项目骨架、智能配置依赖,这篇文... 目录前言1、创建项目名称2、勾选需要的依赖3、在setting中检查maven4、编写数据源5、开启热

SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志

《SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志》在SpringBoot项目中,使用logback-spring.xml配置屏蔽特定路径的日志有两种常用方式,文中的... 目录方案一:基础配置(直接关闭目标路径日志)方案二:结合 Spring Profile 按环境屏蔽关

MybatisPlus service接口功能介绍

《MybatisPlusservice接口功能介绍》:本文主要介绍MybatisPlusservice接口功能介绍,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友... 目录Service接口基本用法进阶用法总结:Lambda方法Service接口基本用法MyBATisP

MySQL复杂SQL之多表联查/子查询详细介绍(最新整理)

《MySQL复杂SQL之多表联查/子查询详细介绍(最新整理)》掌握多表联查(INNERJOIN,LEFTJOIN,RIGHTJOIN,FULLJOIN)和子查询(标量、列、行、表子查询、相关/非相关、... 目录第一部分:多表联查 (JOIN Operations)1. 连接的类型 (JOIN Types)

MySQL版本问题导致项目无法启动问题的解决方案

《MySQL版本问题导致项目无法启动问题的解决方案》本文记录了一次因MySQL版本不一致导致项目启动失败的经历,详细解析了连接错误的原因,并提供了两种解决方案:调整连接字符串禁用SSL或统一MySQL... 目录本地项目启动报错报错原因:解决方案第一个:第二种:容器启动mysql的坑两种修改时区的方法:本地

springboot项目中使用JOSN解析库的方法

《springboot项目中使用JOSN解析库的方法》JSON,全程是JavaScriptObjectNotation,是一种轻量级的数据交换格式,本文给大家介绍springboot项目中使用JOSN... 目录一、jsON解析简介二、Spring Boot项目中使用JSON解析1、pom.XML文件引入依

java中BigDecimal里面的subtract函数介绍及实现方法

《java中BigDecimal里面的subtract函数介绍及实现方法》在Java中实现减法操作需要根据数据类型选择不同方法,主要分为数值型减法和字符串减法两种场景,本文给大家介绍java中BigD... 目录Java中BigDecimal里面的subtract函数的意思?一、数值型减法(高精度计算)1.

使用vscode搭建pywebview集成vue项目实践

《使用vscode搭建pywebview集成vue项目实践》:本文主要介绍使用vscode搭建pywebview集成vue项目实践,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录环境准备项目源码下载项目说明调试与生成可执行文件核心代码说明总结本节我们使用pythonpywebv

Pytorch介绍与安装过程

《Pytorch介绍与安装过程》PyTorch因其直观的设计、卓越的灵活性以及强大的动态计算图功能,迅速在学术界和工业界获得了广泛认可,成为当前深度学习研究和开发的主流工具之一,本文给大家介绍Pyto... 目录1、Pytorch介绍1.1、核心理念1.2、核心组件与功能1.3、适用场景与优势总结1.4、优

Maven项目中集成数据库文档生成工具的操作步骤

《Maven项目中集成数据库文档生成工具的操作步骤》在Maven项目中,可以通过集成数据库文档生成工具来自动生成数据库文档,本文为大家整理了使用screw-maven-plugin(推荐)的完... 目录1. 添加插件配置到 pom.XML2. 配置数据库信息3. 执行生成命令4. 高级配置选项5. 注意事