长亭百川云 - 文章详情

jrasp如何定制web插件

RASP安全技术

58

2024-07-13

    JRASP 部署容易、接入便捷和安全插件面向开源社区等特点,得到越来越多的企业用户青睐,本文以 Undertow安全插件的视角来介绍下如何定制属于自己的插件。

undertow简介

    Undertow 是红帽公司开发的一款基于 NIO 的高性能 Web 嵌入式服务器。

特点 :

  • 轻量级:它是一个 Web 服务器,但不像传统的 Web 服务器有容器概念,它由两个核心 Jar 包组成,加载一个 Web 应用可以小于 10MB 内存

  • Servlet3.1 支持:它提供了对 Servlet3.1 的支持

  • WebSocket 支持:对 Web Socket 完全支持,用以满足 Web 应用巨大数量的客户端

  • 嵌套性:它不需要容器,只需通过 API 即可快速搭建 Web 服务器。

    springboot 默认内嵌的web容器是tomcat,可以替换为undertow

        `<dependency>`            `<groupId>org.springframework.boot</groupId>`            `<artifactId>spring-boot-starter-web</artifactId>`            `<exclusions>`                `<exclusion>`                    `<groupId>org.springframework.boot</groupId>`                    `<artifactId>spring-boot-starter-tomcat</artifactId>`                `</exclusion>`            `</exclusions>`        `</dependency>`        `<dependency>`            `<groupId>org.springframework.boot</groupId>`            `<artifactId>spring-boot-starter-undertow</artifactId>`        `</dependency>`

http request 类

    rasp检测到敏感行为时,可以获取关联到该请求的报文详情(http、socket、rpc等),hook 这些类是实现关联的基础。对于 undertow选择下面的4个类hook。

01

http info

**<1> io.undertow.servlet.handlers.ServletInitialHandler#**
**handleFirstRequest**
  

HttpServerExchange exchange 对象可以获取http请求的相关信息如cookie、header等
  

02

获取请求参数

**<2>io.undertow.server.HttpServerExchange#getQueryParameters**

03

截取http body

**<3>** io.undertow.servlet.spec.ServletInputStreamImpl#read

04

清除线程变量

**<4>** io.undertow.servlet.handlers.ServletInitialHandler
#dispatchRequest

    保存请求信息使用的是threadlocal,因为线程池的重用,在使用完成之后必须清除。

打包插件

    打包好的jar包上传到对象存储服务中(或者可以提供下载的服务上,并获取下载链接)

    并且计算jar包的hash (linux 平台使用 md5sum 命令、macos 使用md5命令,都是可以的,并且计算结果是一致的)。配置hash的原因是防止插件被篡改而加载后门等,保障插件的安全性。

如果插件有配置参数,也可以加上。

新建配置与配置下发

新增配置,将其勾选上,然后下发到指定机器上(无需重启java进程即可生效

配置下发:

测试插件是否生效

 请求关联信息上报正常

关于jrasp

  • 如需获取更多信息,请访问我们的官网(http://jrasp.com)

  • 使用请联系微信:sear2022

相关推荐
关注或联系我们
添加百川云公众号,移动管理云安全产品
咨询热线:
4000-327-707
百川公众号
百川公众号
百川云客服
百川云客服

Copyright ©2024 北京长亭科技有限公司
icon
京ICP备 2024055124号-2