浅谈RASP技术攻防之实战[环境配置篇]
字数 1279 2025-08-26 22:11:40
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功能
目录结构说明
完成后的项目目录结构如下:
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自动打包
- 点击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开发的基础环境。下一阶段将进入实际的代码实现部分。