jrasp如何定制web插件

admin 2022年6月13日11:38:31评论137 views字数 1557阅读5分11秒阅读模式

    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

jrasp如何定制web插件

http info

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

jrasp如何定制web插件

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

jrasp如何定制web插件


02

jrasp如何定制web插件

获取请求参数

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

jrasp如何定制web插件


03

jrasp如何定制web插件

截取http body

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

jrasp如何定制web插件


04

jrasp如何定制web插件

清除线程变量

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

jrasp如何定制web插件

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

打包插件

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

jrasp如何定制web插件


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

 

jrasp如何定制web插件

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


新建配置与配置下发

 

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


jrasp如何定制web插件


配置下发:

jrasp如何定制web插件


测试插件是否生效

 请求关联信息上报正常

jrasp如何定制web插件


jrasp如何定制web插件


关于jrasp

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

  • 使用请联系微信:sear2022


原文始发于微信公众号(RASP安全技术):jrasp如何定制web插件

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年6月13日11:38:31
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   jrasp如何定制web插件http://cn-sec.com/archives/1111346.html

发表评论

匿名网友 填写信息