DongTai-agent-java 是洞态IAST 针对 Java 应用开发的数据采集端。在添加 iast-agent 代理的 Java 应用中,通过改写类字节码的方式采集所需数据,然后将数据发送至 DongTai-openapi 服务,再由云端引擎处理数据判断是否存在安全漏洞。
DongTai-agent-java 由agent.jar
、iast-core.jar
、iast-inject.jar
、dongtai-servlet.jar
四部分构成,其中:
agent.jar
用来管理 agent 的生命周期和配置。agent 的生命周期包括下载、安装、启动、停止、重启、卸载。agent 的配置包括配置应用启动模式、漏洞检验模式、是否开启代理等。iast-core.jar
是核心 jar 包,其主要功能是:字节码插桩、数据采集、数据预处理、数据上报、第三方组件管理等。iast-inject.jar
是间谍 jar 包,用于注入至BootStrap ClassLoader
,后续在目标应用中调用iast-core.jar
中的数据采集方法dongtai-servlet.jar
用于获取应用发送的请求以及收到的响应,用于数据展示以及请求重放功能。请参考:快速开始
Fork DongTai-agent-java 项目到自己的github仓库并 clone 项目:
git clone https://github.com/<your-username>/DongTai-agent-java
根据需求编写代码
使用 Maven 编译 DongTai-agent-java :
mvn clean package -Dmaven.test.skip=true
编译结束后会在项目根目录生成文件夹./release
:
release
├── iast-agent.jar
└── lib
├── dongtai-servlet.jar
├── iast-core.jar
└── iast-inject.jar
拷贝iast-core.jar
、iast-inject.jar
、dongtai-servlet.jar
到系统临时目录。获取系统临时目录可运行以下 Java 代码:
System.getProperty("java.io.tmpdir");
运行应用,测试代码(以SpringBoot应用为例):java -javaagent:/path/to/iast-agent.jar -Ddebug=true -jar app.jar
贡献代码。如果您想要向洞态 IAST 团队贡献代码,请阅读完整的贡献指南
notice: jdk 1.6
开发的Agent需要使用Maven 3.2.5
进行构建
注:为了方便大家阅读上一篇文章(解决pom配置编译javaAgent缺少依赖jar包的问题),特意转发另一个博主的文档,此文章非原创!!! 前言 介绍java agent之前也要介绍另一个概念JVMTI。JVMTI是JDK提供的一套用于开发JVM监控, 问题定位与性能调优工具的通用编程接口(API)。通过JVM TI,我们可以开发各式各样的JVMTI Agent。这个Agent的表现形式是一个以C
我已经编写了一个Java应用程序,它可以构建flume配置文件,并将它们写入Linux机器上的磁盘。然后,应用程序构建flume命令,并尝试通过运行以下代码中的命令来启动flume代理: 如果我接受flume命令并通过终端手动执行它,它工作得很好。当java应用程序尝试执行flume命令时,什么都没有发生。这是类路径问题吗? Flume Command here: /root/flume-flum
DongTai(洞态IAST)是一款开源的被动式交互式安全测试(IAST)产品,通过动态hook和污点跟踪算法等实现通用漏洞检测、多请求关联漏洞检测(包括但不限于越权漏洞、未授权访问)、第三方组件漏洞检测等,目前支持Java、Python两种语言的应用漏洞检测。 技术架构 "火线-洞态IAST"具有多个基础服务,包括:DongTai-web、DongTai-webapi、DongTai-opena
java 热更新插件,无需重启 java 进程实现代码更新,提高开发效率,节约时间去陪女朋友! 功能模块 hot-reload-core: 核心处理逻辑,编译&加载 class hot-reload-agent: javaagent 入口 hot-reload-watcher: 监听本地 java 和 class 文件变化,实现本地进程热更新 hot-reload-server: api serv
这是一个用来解析 User-Agent 字符串的 Java 类库。
由于我使用多个环境,我计划将App Insights检测键作为azure portal APP_SETTING的系统属性传递(值作为)。 我添加了所需的Maven依赖项,并且我的的App Insight instrumentation键引用为: 但不管用。当我直接硬编码密钥时,它起作用了。 在Spring中有没有具体的方法来引用系统属性以获取应用程序的洞察?
我有一个运行着OTel代理的Java应用程序,用于收集遥测数据并将其发送到New Relic平台。 OTel Java agent的配置: 此应用程序启动时发生错误: 如何解决这个问题?