浅谈RASP技术攻防之实战[环境配置篇]
字数 1279 2025-08-26 22:11:40

RASP技术攻防实战:环境配置篇

概述

本文是RASP技术攻防系列的第一篇,主要介绍如何使用IDEA和Maven配置RASP开发环境。本教程将详细指导您完成从项目初始化到环境配置的全过程,为后续的RASP代码实现打下基础。

开发环境准备

  • 开发工具:IntelliJ IDEA
  • 构建工具:Maven
  • Java版本:1.6(兼容性考虑)

项目初始化步骤

1. 创建主项目

  1. 在IDEA中新建一个Maven项目
  2. 项目命名为JavawebAgent
  3. 初始目录结构创建完成后,删除src目录

2. 创建模块

Agent模块

  1. 右键项目 → New → Module
  2. 选择Maven项目
  3. 在ArtifactId处填入agent
  4. 点击确定完成创建

测试模块

  1. 再次新建Module
  2. 选择Maven项目
  3. ArtifactId填入test
  4. Module Name改为test-struts2
  5. 点击确定完成创建

注:test-struts2模块是可选的,主要用于测试RASP功能

目录结构说明

完成后的项目目录结构如下:

JavawebAgent/
├── agent/          # RASP核心实现模块
└── test-struts2/   # 测试Web应用模块

Agent模块配置

1. POM文件配置

agent/pom.xml需要包含以下关键配置:

<dependencies>
    <dependency>
        <groupId>org.ow2.asm</groupId>
        <artifactId>asm-all</artifactId>
        <version>5.1</version>
    </dependency>
</dependencies>

<build>
    <finalName>agent</finalName>
    <plugins>
        <!-- 编译器插件 -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
            </configuration>
        </plugin>
        
        <!-- JAR包插件 -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>2.3.2</version>
            <configuration>
                <archive>
                    <manifestFile>src/main/resources/MANIFEST.MF</manifestFile>
                </archive>
            </configuration>
        </plugin>
        
        <!-- Shade插件 -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-shade-plugin</artifactId>
            <version>2.3</version>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>shade</goal>
                    </goals>
                    <configuration>
                        <artifactSet>
                            <includes>
                                <include>commons-io:commons-io:jar:*</include>
                                <include>org.ow2.asm:asm-all:jar:*</include>
                            </includes>
                        </artifactSet>
                    </configuration>
                </execution>
            </executions>
        </plugin>
        
        <!-- 测试插件 -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.21.0</version>
            <configuration>
                <skipTests>true</skipTests>
            </configuration>
        </plugin>
    </plugins>
</build>

2. MANIFEST.MF文件配置

agent/src/main/resources/目录下创建MANIFEST.MF文件,内容如下:

Manifest-Version: 1.0
Can-Retransform-Classes: true
Can-Redefine-Classes: true
Can-Set-Native-Method-Prefix: true

这些属性是RASP Agent的关键配置:

  • Can-Retransform-Classes: 允许类重转换
  • Can-Redefine-Classes: 允许类重定义
  • Can-Set-Native-Method-Prefix: 允许设置本地方法前缀

3. 配置Maven自动打包

  1. 点击IDEA右上角的"Add Configurations"
  2. 在弹出的窗口中点击左上角的"+",选择"Maven"
  3. 配置项:
    • ① 选择工作目录(项目根目录)
    • ② 选择agent模块
    • ③ 填入命令:clean install
  4. 点击OK保存配置

配置完成后,IDEA右上角会出现Maven构建按钮,每次修改Agent代码后都需要重新构建。

创建代码包结构

  1. agent/src/main/java目录下右键
  2. 选择"New" → "Package"
  3. 输入包名,例如:cn.org.javaweb.agent

注意事项

  1. ASM版本:教程中使用的是ASM 5.1版本,这是实现字节码操作的关键依赖
  2. Java兼容性:配置为Java 1.6以确保广泛兼容性
  3. 每次修改后:必须重新构建Agent才能使更改生效
  4. 测试模块test-struts2模块的代码可以从项目GitHub仓库直接获取

后续步骤

完成环境配置后,可以继续学习《浅谈RASP技术攻防之实战[代码实现篇]》,了解如何实现具体的RASP功能。

资源链接

通过以上步骤,您已经成功配置好了RASP开发的基础环境。下一阶段将进入实际的代码实现部分。

RASP技术攻防实战:环境配置篇 概述 本文是RASP技术攻防系列的第一篇,主要介绍如何使用IDEA和Maven配置RASP开发环境。本教程将详细指导您完成从项目初始化到环境配置的全过程,为后续的RASP代码实现打下基础。 开发环境准备 开发工具 :IntelliJ IDEA 构建工具 :Maven Java版本 :1.6(兼容性考虑) 项目初始化步骤 1. 创建主项目 在IDEA中新建一个Maven项目 项目命名为 JavawebAgent 初始目录结构创建完成后, 删除src目录 2. 创建模块 Agent模块 右键项目 → New → Module 选择Maven项目 在ArtifactId处填入 agent 点击确定完成创建 测试模块 再次新建Module 选择Maven项目 ArtifactId填入 test Module Name改为 test-struts2 点击确定完成创建 注: test-struts2 模块是可选的,主要用于测试RASP功能 目录结构说明 完成后的项目目录结构如下: Agent模块配置 1. POM文件配置 agent/pom.xml 需要包含以下关键配置: 2. MANIFEST.MF文件配置 在 agent/src/main/resources/ 目录下创建 MANIFEST.MF 文件,内容如下: 这些属性是RASP Agent的关键配置: Can-Retransform-Classes : 允许类重转换 Can-Redefine-Classes : 允许类重定义 Can-Set-Native-Method-Prefix : 允许设置本地方法前缀 3. 配置Maven自动打包 点击IDEA右上角的"Add Configurations" 在弹出的窗口中点击左上角的"+",选择"Maven" 配置项: ① 选择工作目录(项目根目录) ② 选择 agent 模块 ③ 填入命令: clean install 点击OK保存配置 配置完成后,IDEA右上角会出现Maven构建按钮,每次修改Agent代码后都需要重新构建。 创建代码包结构 在 agent/src/main/java 目录下右键 选择"New" → "Package" 输入包名,例如: cn.org.javaweb.agent 注意事项 ASM版本 :教程中使用的是ASM 5.1版本,这是实现字节码操作的关键依赖 Java兼容性 :配置为Java 1.6以确保广泛兼容性 每次修改后 :必须重新构建Agent才能使更改生效 测试模块 : test-struts2 模块的代码可以从项目GitHub仓库直接获取 后续步骤 完成环境配置后,可以继续学习《浅谈RASP技术攻防之实战[ 代码实现篇 ]》,了解如何实现具体的RASP功能。 资源链接 项目GitHub地址: java_ rasp_ example 作者博客: Sky's自留地 通过以上步骤,您已经成功配置好了RASP开发的基础环境。下一阶段将进入实际的代码实现部分。