开启应用防护
操作场景
如果您需要防护Java应用,可为目标应用开启应用防护。开启防护过程中,HSS需要在您的应用中安装RASP防护探针。
开启方式说明
|
开启方式 |
优势 |
限制 |
操作 |
|---|---|---|---|
|
自动开启 |
|
|
|
|
手动开启 |
支持接入没有监听端口的Java应用。 |
需要用户手动为应用配置应用防护启动参数。 |
自动开启应用防护
- 登录企业主机安全控制台。
- 在控制台左上角,单击
图标,选择区域或项目。 - 选择,进入“防护资产”页面。
图1 查看防护资产
- (可选)如果您已开通企业项目,可在页面上方“企业项目”下拉框中选择企业项目,查看目标企业项目下的相关信息和数据。
- 单击“添加防护资产”,系统弹出“添加防护资产”页面。
- 选择操作系统类型和需要防护的资产,并单击“下一步”。
图2 选择防护资产
- 根据实际业务需求,配置防护策略。相关参数说明请参见表1。
图3 配置防护策略
表1 防护策略参数说明 参数
参数说明
取值样例
主机RASP动态防护
是否自动为主机应用开启动态防护。
如果启用此功能,系统会使用JVM Attach机制自动识别服务器内存在监听端口的Java应用并为其动态开启防护。该功能支持在Java应用运行时动态地加载和卸载RASP探针,无需重启Java应用,可以保障业务的连续性。
说明:该功能当前处于公测阶段,如需使用请提交工单申请开通。
,开启容器RASP动态防护
是否自动为容器应用开启动态防护。
如果启用此功能,系统会使用JVM Attach机制自动识别容器内存在监听端口的Java应用并为其动态开启防护。该功能支持在Java应用运行时动态地加载和卸载RASP探针,无需重启Java应用,可以保障业务的连续性。
说明:该功能当前处于公测阶段,如需使用请提交工单申请开通。
,开启配置RASP端口
RASP探针和HSS通信所使用的端口。
19999
选择防护策略
即选择应用防护策略。
系统提供了“默认策略”,默认策略包含的检测规则请参见默认策略。
如果“默认策略”不适用您的防护场景,您可以单击“新建策略”自定义创建一条防护策略,相关参数说明请参见添加防护策略。
默认策略
- 策略配置完成后,单击“确定”,完成资产添加。
- 在“防护资产”页面,查看目标资产“RASP防护状态”为“防护中”,表示服务器所有Java应用开启RASP防护成功。
手动开启主机应用防护
- 登录企业主机安全控制台。
- 在控制台左上角,单击
图标,选择区域或项目。 - 选择,进入“防护资产”页面。
图4 查看防护资产
- (可选)如果您已开通企业项目,可在页面上方“企业项目”下拉框中选择企业项目,查看目标企业项目下的相关信息和数据。
- 单击“添加防护资产”,系统弹出“添加防护资产”页面。
- 选择操作系统类型和需要防护的资产,并单击“下一步”。
图5 选择防护资产
- 根据实际业务需求,配置防护策略。相关参数说明请参见表2。
图6 配置防护策略
- 策略配置完成后,单击“确定”,完成资产添加。
- 在“防护资产”页面,查看目标资产的“RASP防护状态”,等待其变更为“未防护”状态。
- 单击“手动配置指导”,系统弹出“手动配置Web应用RASP应用防护”页面。
- 参考“主机”页面或下述说明为Java应用配置启动参数,开启应用防护。
- Tomcat(Windows)
请逐一为应用执行以下操作,开启RASP防护。
- 将以下参数复制粘贴到Tomcat bin目录下的setenv.bat启动脚本中。如果该脚本不存在,请手动创建该脚本。
call "C:\Program Files\HostGuard\rasp\secRASP\slave_agent\bin\set_java_opts.bat"
参数配置位置如图7所示。 - 重启应用,重启成功后,返回企业主机安全控制台。
- 在目标资产的所在行的“操作”列,单击“查看详情”,进入应用防护详情页面,查看目标应用的“RASP防护状态”为“防护中”,表示开启RASP防护成功。
- 将以下参数复制粘贴到Tomcat bin目录下的setenv.bat启动脚本中。如果该脚本不存在,请手动创建该脚本。
- Tomcat(Linux)
请逐一为应用执行以下操作,开启RASP防护。
-
将以下参数复制粘贴到Tomcat bin目录下的setenv.sh启动脚本中(如果脚本不存在,可手动创建该脚本)。
SEC_RASP_HOME=/usr/local/rasp/secRASP if [ -f "$SEC_RASP_HOME/slave_agent/bin/set_java_opts.sh" ]; then . $SEC_RASP_HOME/slave_agent/bin/set_java_opts.sh fi
参数配置位置如图8所示。
- 重启应用,重启成功后,返回企业主机安全控制台。
- 在目标资产的所在行的“操作”列,单击“查看详情”,进入应用防护详情页面,查看目标应用的“RASP防护状态”为“防护中”,表示开启RASP防护成功。
-
- Weblogic(Linux)
请逐一为应用执行以下操作,开启RASP防护。
- 将以下参数复制粘贴到Weblogic bin目录下的startWebLogic.sh启动脚本中。
SEC_RASP_HOME=/usr/local/rasp/secRASP if [ -f "$SEC_RASP_HOME/slave_agent/bin/set_java_opts.sh" ]; then . $SEC_RASP_HOME/slave_agent/bin/set_java_opts.sh fi
参数配置位置如图9所示。
- 重启应用,重启成功后,返回企业主机安全控制台。
- 在目标资产的所在行的“操作”列,单击“查看详情”,进入应用防护详情页面,查看目标应用的“RASP防护状态”为“防护中”,表示开启RASP防护成功。
- 将以下参数复制粘贴到Weblogic bin目录下的startWebLogic.sh启动脚本中。
- Netty(Linux)
请逐一为应用执行以下操作,开启RASP防护。
- 在Netty目录下(该目录包含*netty-xxx.jar文件)下创建一个start.sh文件,将以下配置内容复制粘贴到start.sh文件中,并将netty程序(.jar文件)的名称修改为实际使用的程序名称。
#!/bin/bash SEC_RASP_HOME=/usr/local/rasp/secRASP if [ -f "$SEC_RASP_HOME/slave_agent/bin/set_java_opts.sh" ]; then . $SEC_RASP_HOME/slave_agent/bin/set_java_opts.sh fi java ${JAVA_OPTS} -jar netty-target-1.0-SNAPSHOT.jar参数配置位置如图10所示,
- 重启应用,重启成功后,返回企业主机安全控制台。
- 在目标资产的所在行的“操作”列,单击“查看详情”,进入应用防护详情页面,查看目标应用的“RASP防护状态”为“防护中”,表示开启RASP防护成功。
- 在Netty目录下(该目录包含*netty-xxx.jar文件)下创建一个start.sh文件,将以下配置内容复制粘贴到start.sh文件中,并将netty程序(.jar文件)的名称修改为实际使用的程序名称。
- Jetty(Linux)
请逐一为应用执行以下操作,开启RASP防护。
- 在Jetty目录下(该目录包含start.jar)下创建一个start.sh文件,将以下配置内容复制粘贴到start.sh文件中。
#!/bin/bash SEC_RASP_HOME=/usr/local/rasp/secRASP if [ -f "$SEC_RASP_HOME/slave_agent/bin/set_java_opts.sh" ]; then . $SEC_RASP_HOME/slave_agent/bin/set_java_opts.sh fi java ${JAVA_OPTS} -jar start.jar参数配置位置如图11所示,
- 重启应用,重启成功后,返回企业主机安全控制台。
- 在目标资产的所在行的“操作”列,单击“查看详情”,进入应用防护详情页面,查看目标应用的“RASP防护状态”为“防护中”,表示开启RASP防护成功。
- 在Jetty目录下(该目录包含start.jar)下创建一个start.sh文件,将以下配置内容复制粘贴到start.sh文件中。
- Tomcat(Windows)
手动开启容器应用防护
- 登录企业主机安全控制台。
- 在控制台左上角,单击
图标,选择区域或项目。 - 选择,进入“防护资产”页面。
图12 查看防护资产
- (可选)如果您已开通企业项目,可在页面上方“企业项目”下拉框中选择企业项目,查看目标企业项目下的相关信息和数据。
- 单击“添加防护资产”,系统弹出“添加防护资产”页面。
- 选择操作系统类型和需要防护的资产,并单击“下一步”。
图13 选择防护资产
- 根据实际业务需求,配置防护策略。相关参数说明请参见表3。
图14 配置防护策略
表3 防护策略参数说明 参数
参数说明
取值样例
主机RASP动态防护
说明:该功能当前处于公测阶段,如需使用请提交工单申请开通。
无监听端口的Java应用不支持RASP动态防护。保持关闭状态即可。
,关闭容器RASP动态防护
说明:该功能当前处于公测阶段,如需使用请提交工单申请开通。
无监听端口的Java应用不支持RASP动态防护。保持关闭状态即可。
,关闭配置RASP端口
RASP探针和HSS通信所使用的端口。
19999
选择防护策略
即选择应用防护策略。
系统提供了“默认策略”,默认策略包含的检测规则请参见默认策略。
如果“默认策略”不适用您的防护场景,您可以单击“新建策略”自定义创建一条防护策略,相关参数说明请参见添加防护策略。
默认策略
- 策略配置完成后,单击“确定”,完成资产添加。
- 在“防护资产”页面,查看目标资产的“RASP防护状态”,等待变更为“未防护”状态。
- 单击“手动配置指导”,系统弹出“手动配置Web应用RASP应用防护”页面。
- 参考“容器”页面或下述说明为Java应用配置启动参数,开启应用防护。
- 使用docker直接启动容器
请逐一为应用执行以下操作,开启RASP防护。
- 根据实际情况,选择以下任一方式,添加JVM启动参数。
- 方式一:修改应用启动脚本的参数如表4所示。
表4 修改应用启动脚本参数 运行环境
参数配置说明
Tomcat(Linux)
将以下参数复制粘贴到Tomcat bin目录下的setenv.sh启动脚本中(如果脚本不存在,可手动创建该脚本)。SEC_RASP_HOME=/usr/local/rasp/secRASP if [ -f "$SEC_RASP_HOME/slave_agent/bin/set_java_opts.sh" ]; then . $SEC_RASP_HOME/slave_agent/bin/set_java_opts.sh fi
参数配置位置如图15所示。
Weblogic(Linux)
将以下参数复制粘贴到Weblogic bin目录下的startWebLogic.sh启动脚本中。SEC_RASP_HOME=/usr/local/rasp/secRASP if [ -f "$SEC_RASP_HOME/slave_agent/bin/set_java_opts.sh" ]; then . $SEC_RASP_HOME/slave_agent/bin/set_java_opts.sh fi
参数配置位置如图16所示。
Netty(Linux)
在Netty目录下(该目录包含*netty-xxx.jar文件)下创建一个start.sh文件,将以下配置内容复制粘贴到start.sh文件中,并将netty程序(.jar文件)的名称修改为实际使用的程序名称。#!/bin/bash SEC_RASP_HOME=/usr/local/rasp/secRASP if [ -f "$SEC_RASP_HOME/slave_agent/bin/set_java_opts.sh" ]; then . $SEC_RASP_HOME/slave_agent/bin/set_java_opts.sh fi java ${JAVA_OPTS} -jar netty-target-1.0-SNAPSHOT.jar参数配置位置如图17所示,
Jetty(Linux)
在Jetty目录下(该目录包含start.jar)下创建一个start.sh文件,将以下配置内容复制粘贴到start.sh文件中。#!/bin/bash SEC_RASP_HOME=/usr/local/rasp/secRASP if [ -f "$SEC_RASP_HOME/slave_agent/bin/set_java_opts.sh" ]; then . $SEC_RASP_HOME/slave_agent/bin/set_java_opts.sh fi java ${JAVA_OPTS} -jar start.jar参数配置位置如图18所示,
- 方式二:在docker启动命令中补充如下参数,添加环境变量。
--env JAVA_OPTS="-javaagent:/usr/local/rasp/secRASP/slave_agent/lib/secsoter.jar=socketType=0,socketFile=/usr/local/rasp/raspSocket/hss.rasp.socket,productScenario=HSS_Container,iVersion=V2"
- 方式一:修改应用启动脚本的参数如表4所示。
- 在docker启动命令中补充如下参数,挂载RASP目录。
-v /usr/local/rasp:/usr/local/rasp
- 启动容器,启动成功后,返回企业主机安全控制台。
- 在目标资产的所在行的“操作”列,单击“查看详情”,进入应用防护详情页面,查看目标应用的“RASP防护状态”为“防护中”,表示开启RASP防护成功。
- 根据实际情况,选择以下任一方式,添加JVM启动参数。
- 通过Dockerfile启动容器
请逐一为应用执行以下操作,开启RASP防护。
- 在镜像打包时,修改应用启动脚本,添加JVM启动参数。如表5所示。
表5 修改应用启动脚本 运行环境
参数配置说明
Tomcat(Linux)
将以下参数复制粘贴到Tomcat bin目录下的setenv.sh启动脚本中(如果脚本不存在,可手动创建该脚本)。SEC_RASP_HOME=/usr/local/rasp/secRASP if [ -f "$SEC_RASP_HOME/slave_agent/bin/set_java_opts.sh" ]; then . $SEC_RASP_HOME/slave_agent/bin/set_java_opts.sh fi
参数配置位置如图19所示。
Weblogic(Linux)
将以下参数复制粘贴到Weblogic bin目录下的startWebLogic.sh启动脚本中。SEC_RASP_HOME=/usr/local/rasp/secRASP if [ -f "$SEC_RASP_HOME/slave_agent/bin/set_java_opts.sh" ]; then . $SEC_RASP_HOME/slave_agent/bin/set_java_opts.sh fi
参数配置位置如图20所示。
Netty(Linux)
在Netty目录下(该目录包含*netty-xxx.jar文件)下创建一个start.sh文件,将以下配置内容复制粘贴到start.sh文件中,并将netty程序(.jar文件)的名称修改为实际使用的程序名称。#!/bin/bash SEC_RASP_HOME=/usr/local/rasp/secRASP if [ -f "$SEC_RASP_HOME/slave_agent/bin/set_java_opts.sh" ]; then . $SEC_RASP_HOME/slave_agent/bin/set_java_opts.sh fi java ${JAVA_OPTS} -jar netty-target-1.0-SNAPSHOT.jar参数配置位置如图21所示,
Jetty(Linux)
在Jetty目录下(该目录包含start.jar)下创建一个start.sh文件,将以下配置内容复制粘贴到start.sh文件中。#!/bin/bash SEC_RASP_HOME=/usr/local/rasp/secRASP if [ -f "$SEC_RASP_HOME/slave_agent/bin/set_java_opts.sh" ]; then . $SEC_RASP_HOME/slave_agent/bin/set_java_opts.sh fi java ${JAVA_OPTS} -jar start.jar参数配置位置如图22所示,
- 在docker启动命令中补充如下参数,挂载RASP目录。
-v /usr/local/rasp:/usr/local/rasp
- 启动容器,启动成功后,返回企业主机安全控制台。
- 在目标资产的所在行的“操作”列,单击“查看详情”,进入应用防护详情页面,查看目标应用的“RASP防护状态”为“防护中”,表示开启RASP防护成功。
- 在镜像打包时,修改应用启动脚本,添加JVM启动参数。如表5所示。
- 通过docker-compose启动容器
请逐一为应用执行以下操作,开启RASP防护。
- 在docker-compose的配置文件中增加如下配置,添加JVM启动参数。
environment: JAVA_OPTS: "-javaagent:/usr/local/rasp/secRASP/slave_agent/lib/secsoter.jar=socketType=0,socketFile=/usr/local/rasp/raspSocket/hss.rasp.socket,productScenario=HSS_Container,iVersion=V2"
- 在docker-compose的配置文件中增加如下配置,挂载RASP目录。
volumes: - /usr/local/rasp:/usr/local/rasp
- 启动容器,启动成功后,返回企业主机安全控制台。
- 在目标资产的所在行的“操作”列,单击“查看详情”,进入应用防护详情页面,查看目标应用的“RASP防护状态”为“防护中”,表示开启RASP防护成功。
- 在docker-compose的配置文件中增加如下配置,添加JVM启动参数。
- 通过k8s集群管理容器
请逐一为应用执行以下操作,开启RASP防护。
- 在k8s的配置文件中增加如下配置,添加JVM启动参数。
env: - name: JAVA_OPTS value: "-javaagent:/usr/local/rasp/secRASP/slave_agent/lib/secsoter.jar=socketType=0,socketFile=/usr/local/rasp/raspSocket/hss.rasp.socket,productScenario=HSS_Container,iVersion=V1" - 在k8s的配置文件中增加如下配置,挂载RASP目录。
volumeMounts: - name: rasp-volume mountPath: /usr/local/rasp - 更新集群,更新成功后,返回企业主机安全控制台。
- 在目标资产的所在行的“操作”列,单击“查看详情”,进入应用防护详情页面,查看目标应用的“RASP防护状态”为“防护中”,表示开启RASP防护成功。
- 在k8s的配置文件中增加如下配置,添加JVM启动参数。
- 使用docker直接启动容器
默认策略
|
检测规则标识 |
防护动作 |
检测规则描述 |
检测规则配置 |
|---|---|---|---|
|
CMDI |
告警 |
检测防御远程OS命令注入(OS Command Injection)攻击,同时检测Web应用是否存在对应漏洞。 |
- |
|
ExpressionInject |
告警 |
检测防御表达式注入攻击,检测Web应用是否存在对应漏洞。 |
- |
|
FileDirAccess |
告警 |
获取访问文件的路径或目录,匹配是否在敏感目录下或敏感文件。 |
路径检测黑名单:C:/Windows/system.ini;C:/Windows/system32/drivers/etc/hosts |
|
FilelessWebshell |
告警 |
实现对各类型JAVA无文件Webshell的检测。 |
- |
|
JNDI |
告警 |
检测防御JNDI注入攻击,检测web应用是否存在对应漏洞。 |
- |
|
Log4jRCE |
告警 |
检测记录日志时发起的JNDI解析。 |
- |
|
SQLI |
告警 |
检测防御SQL注入(SQL Injection)攻击,检测Web应用是否存在对应漏洞。 |
- |
|
SuspiciousBehavior |
告警 |
检测可疑行为。 |
- |
|
SuspiciousException |
告警 |
检测可疑异常。 |
- |
|
UntrustedDeserialization |
告警 |
检测使用了危险类的反序列化攻击。 |
- |
|
WebShellUpload |
告警 |
检测防御上传危险文件的攻击(主要针对jsp形式的webshell文件)或将已有文件改名为危险文件扩展名的攻击(主要针对jsp形式的webshell文件),同时检测Web应用是否存在对应漏洞。 |
文件后缀黑名单:.jspx;.jsp;.jar;.phtml;.asp;.php;.ascx;.ashx;.cer;.phar;.sh;.py;.pl;.rb;.exe;.scr;.vbs;.cmd;.bat;.so;.dll;.ps1;.war;authorized_key |
|
ZeroDay |
告警 |
检测执行命令的堆栈是否匹配0day漏洞的部分特征堆栈。 |
- |
相关操作
如果需要修改RASP防护端口,可在目标服务器所在行的“操作”列,单击“编辑端口”。端口修改完成后,系统将重启RASP插件,请耐心等待几分钟。













