开启应用防护
操作场景
如果您需要防护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=V1"
- 方式一:修改应用启动脚本的参数如表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=V1"
- 在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直接启动容器
相关操作
如果需要修改RASP防护端口,可在目标服务器所在行的“操作”列,单击“编辑端口”。端口修改完成后,系统将重启RASP插件,请耐心等待几分钟。