网防 G01 V3-JspAgent 使用说明 V2.0
一、简介
JSPAgent 主要功能有两项:
1、 漏洞防护功能 :
1) 针对 Struts2 远程命令执行和文件上传漏洞的防护。
2) 针对 WebLogic 对象反序列化漏洞的防护。
3) 针对命令执行漏洞的防护
4) 针对任意文件读取漏洞的防护
5) 针对文件上传漏洞的防护
6) 针对 SQL 注入漏洞的防护
2、 动态(基于行为)识别 JSP 类型的 Webshell。
注意 :
1、Web 容器使用的 Java(jdk 或 jre)的版本需 1.6 及 以上。
2、SQL 注入防护目前支持的数据库包括:Mysql、 Oracle、 Sqlserver、 Postgresql 四种。
二、工作原理
利用 JAVA 虚拟机 启动选项 :-javaagent, 使 jspAgent.jar 可以跟踪处理 web 请求上下文, 并针对可疑行为, 做出相应的动作。
三、安装说明
G01 安装包会提供一个名为 jspAgent 的目录,目录结构:
Linux 版:
/jspAgent/JSPAgent.jar
/jspAgent/libJSPAgent.so
/jspAgent/liblitexml_linux.so
Windows 版:
/jspAgent/JSPAgent.jar
/jspAgent/JSPAgent.dll
/jspAgent/msvcp100.dll
/jspAgent/msvcr100.dll
/jspAgent/litexml.dll
/jspAgent/x64/JSPAgent.dll
/jspAgent/x64/msvcp100.dll
/jspAgent/x64/msvcr100.dll
/jspAgent/x64/litexml.dll
以下是针对各类型的 web 容器, 分平台(Linux 、Windows)分别进行说明:
Linux 版
1、Tomcat/Tomee
假设 tomcat 的工作目录为 : CATALINA_HOME=/usr/local/tomcat/
1)拷贝 jspAgent 目录到 ${CATALINA_HOME} 下。
2)修改 ${CATALINA_HOME}/bin/catalina.sh 中的 JAVA 启动参数, 附加上
-javaagent 选项。
过程如下:定位到 elif [ "$1" = "start" ] ; then,
其下追加一行:
JAVA_OPTS="-javaagent:${CATALINA_HOME}/jspAgent/JSPAgent.jar ${JAVA_OPTS}"
3)重启 tomcat。
2、WebLogic
1)首先获取 startWebLogic.sh 位置:
#ps -elf | grep startWebLogic.sh /bin/sh ./root/wls12130/user_projects/domains/mydomain/startWebLo gic.sh /bin/sh /root/wls12130/user_projects/domains/mydomain/bin/startWebLogic.sh
由此确定 工作目录为 :
DOMAIN_HOME =/root/wls12130/user_projects/domains/mydomain
2)拷贝 jspAgent 目录到 ${DOMAIN_HOME} 下。
3)修改 ${DOMAIN_HOME}/bin/ startWebLogic.sh 中 JAVA 启动参数,定位到 JAVA_OPTIONS="${SAVE_JAVA_OPTIONS},其下追加一行 :
JAVA_OPTIONS="-javaagent:${DOMAIN_HOME}/jspAgent/JSPAgent.jar ${JAVA_OPTIONS}"
4) 重启 weblogic。
3、Jboss/wildfly
假设 Jboss 工作目录 : JBOSS_HOME= /root/jboss-as-7.1.1.Final
1)拷贝 jspAgent 目录到 $JBOSS_HOME 下。
2)根据你自己的使用模式, 修改 $JBOSS_HOME/bin/standalone.sh 或者 $JBOSS_HOME /bin/domain.sh 中 JAVA 启动参数,定位字符串 # Display our environment, 在其上追加一行 :
JAVA_OPTS="-javaagent:$JBOSS_HOME/jspAgent/JSPAgent.jar $JAVA_OPTS"
3) 重启 Jboss。
4、Glassfish
假设 Glassfish 的工作目录 :
GLASSFISH_HOME= /usr/local/glassfish/glassfish
1)拷贝 jspAgent 目录到 ${GLASSFISH_HOME} 下。
2) 登录 Glassfish 控制台 : https://IP:4848,
Configurations-> server-config-> JVM Settings-> JVM Options-> Add JVM Option, 新增一项 :
-javaagent:/usr/local/glassfish/glassfish/jspAgent/JSPAgent.jar
3) 重启 Glassfish。
5、TongWeb
假设 TongWeb 工作目录 : TWNS_HOME=/root/TongWeb5.0
1)拷贝 jspAgent 目录到 ${TWNS_HOME} 下。
2) 登录控制台 : http://IP:9060/twns, 服务器配置->启动参数, 新增一项:
-javaagent:${TWNS_HOME}/jspAgent/JSPAgent.jar
3) 重启 TongWeb。
6、Jetty
假设 Jetty 的工作目录 : JETTY_HOME= /usr/local/jetty
1)拷贝 jspAgent 目录到 $JETTY_HOME 下。
2) 启动命令修改:java -jar $JETTY_HOME/start.jar 修改为
java -javaagent:$JETTY_HOME/jspAgent/JSPAgent.jar -jar $JETTY_HOME/start.jar
Windows 版
提示 : 配置 -javaagent 时, 如果使用绝对路径,由于 windows 下路径可能含有空格,所以 配置的路径需要用双引号括起来。
1、Tomcat/Tomee
官网 tomcat 版本:
假设 tomcat 工作目录 :CATALINA_HOME =C:\Program Files\Apache Software Foundation\Tomcat 6.0
1)拷贝 jspAgent 目录到 %CATALINA_HOME% 下。
2)修改 JAVA 启动参数:修改注册表 HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Procrun 2.0\tomcat6\Parameters\Java (64 位的操作 系统则为 :HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Apache Software Foundation\Procrun 2.0\tomcat6\Parameters\Java) 修改 Options 的值,
如下所示:
-Dcatalina.home=C:\Program Files\Apache Software Foundation\Tomcat 6.0
-Dcatalina.base=C:\Program Files\Apache Software Foundation\Tomcat 6.0
-Djava.endorsed.dirs=C:\Program Files\Apache Software Foundation\Tomcat 6.0\endorsed
-Djava.io.tmpdir=C:\Program Files\Apache Software Foundation\Tomcat 6.0\temp
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
-Djava.util.logging.config.file=C:\Program Files\Apache Software Foundation\Tomcat6.0\conf\logging.properties
------追加下面这一行--- -javaagent:C:\Program Files\Apache Software Foundation\Tomcat 6.0\jspAgent\JSPAgent.jar
3) 重启 tomcat。
JTM 套件:
假定 tomcat 的工作目录 :CATALINA_HOME=C:\JTM\tomcat
1)拷贝 jspAgent 目录到 %CATALINA_HOME% 下。
2)修改 JAVA 启动参数:%CATALINA_HOME%\bin\service.bat 中, 定位 ++JvmOptions, 追加
-javaagent:%CATALINA_HOME%\jspAgent\JSPAgent.jar;
形如 :
"%EXECUTABLE%" //US//%SERVICE_NAME% ++JvmOptions "-Djava.io.tmpdir=%CATALINA_BASE%\temp;-Djava.util.logging.manage r=org.apache.juli.ClassLoaderLogManager;-Djava.util.logging.confi g.file=%CATALINA_BASE%\conf\logging.properties" --JvmMs 128 --JvmMx 512 --Startup=auto
修改为 :
"%EXECUTABLE%" //US//%SERVICE_NAME% ++JvmOptions "-javaagent:%CATALINA_HOME%\jspAgent\JSPAgent.jar;-Djava.io.tmpdi r=%CATALINA_BASE%\temp;-Djava.util.logging.manager=org.apache.jul i.ClassLoaderLogManager;-Djava.util.logging.config.file=%CATALINA _BASE%\conf\logging.properties" --JvmMs 128 --JvmMx 512 --Startup=auto
3) 重启 tomcat 。
其他版本:
观察你的 tomcat 的启动脚本, 如果最终调用了 %CATALINA_HOME% /bin/catalina.bat,那么也可以在这个文件中修改,定位到 :execCmd, 在其下追加 一行:
set JAVA_OPTS=-javaagent:%CATALINA_HOME%\jspAgent\JSPAgent.jar %JAVA_ OPTS%
2、WebLogic
假定 WebLogic 的工作目录 : DOMAIN_HOME=C:\Oracle\Middleware\user_projects\domains\cluster_do main
1)拷贝 jspAgent 目录到 %DOMAIN_HOME% 下。
2) 修改 %DOMAIN_HOME%\bin\startWebLogic.cmd,
定位到set JAVA_OPTIONS=%SAVE_JAVA_OPTIONS%,
在其下追加一行 :
set JAVA_OPTIONS=-javaagent:%DOMAIN_HOME%\jspAgent\JSPAgent.jar %JAVA _OPTIONS%
3) 重启 WebLogic。
3、Jboss/wildfly
假设 Jboss 工作目录 : JBOSS_HOME= C:\jboss-as-7.1.1.Final
1)拷贝 jspAgent 目录到 %JBOSS_HOME% 下。
2)根据你自己的使用模式, 修改 % JBOSS_HOME %/bin/standalone.bat 或者 % JBOSS_HOME %/bin/domain.bat 中 JAVA 启动参数,
定位字符串 if "x%JBOSS_CONFIG_DIR%" == "x" (, 其后追加一行 :
set "JAVA_OPTS=-javaagent:%JBOSS_HOME%\jspAgent\JSPAgent.jar %JAVA_OP TS%"
3) 重启 Jboss。
4、Glassfish
假设 Glassfish 的工作目录 :GLASSFISH_HOME= C:\glassfish4
1)拷贝 jspAgent 目录到 %GLASSFISH_HOME% 下。
2)登录 Glassfish 控制台 : https://IP:4848,Configurations-> server-config-> JVM Settings-> JVM Options-> Add JVM Option, 新增一项 :
-javaagent: C:\glassfish4\jspAgent\JSPAgent.jar
3) 重启 Glassfish。
5、TongWeb
假定 TongWeb 的工作目录 : TWNS_HOME=C:\TongWeb5.0
1)拷贝 jspAgent 目录到 %TWNS_HOME% 下。
2)登录控制台 : http://IP:9060/twns, 服务器配置->启动参数, 新增一项:
-javaagent:%TWNS_HOME%\jspAgent\JSPAgent.jar 或 绝对路径的写法:
-javaagent:" C:\TongWeb5.0\jspAgent\JSPAgent.jar
3) 重启 TongWeb 。
6、Jetty
假定 Jetty 的工作目录:JETTY_HOME= C:/Program Files (x86)/jetty-distribution-8.1.17/jetty-distribution-8.1.17.v201504 15
1)拷贝 jspAgent 目录到 %JETTY_HOME% 下。
2) 启动命令修改:java -jar %JETTY_HOME%\start.jar 修改为 java
-javaagent:%JETTY_HOME%\jspAgent\JSPAgent.jar
-jar %JETTY_HOME%\start.jar
了解网防G01安装、使用相关问题,请关注微信公众号:EM-Lab