接入应用防护

通过在应用中集成RASP(Runtime Application Self-Protection)探针,应用防护能够实时监测并抵御恶意行为和安全威胁,确保应用持续稳定运行。本文介绍首次将应用接入应用防护的具体操作步骤。

RASP探针说明

支持防护的应用

应用防护功能通过在应用中安装RASP探针实现攻击检测和防护。应用防护仅支持防护满足以下条件的Java进程,即只支持在满足以下条件的业务进程中安装RASP探针。

  • JDK:JDK 6及以上版本,JDK 13和14暂不支持。

  • 中间件:对中间件类型和版本无特定要求,包括Tomcat、SpringBoot、Jboss、WildFly、Jetty、Resin、Weblogic、Websphere、Liberty、Netty、GlassFish、国产中间件等。

  • 操作系统:Linux(64位)、Windows(64位)。

资源使用量阈值说明

在主机、容器或JVM资源使用量超过一定阈值时,为了保证应用防护功能的正常运行,自动接入方式会暂停接入RASP探针,直到降到阈值以下才会继续安装RASP探针;手动接入方式无此限制。停止安装探针的具体阈值如下:

  • 主机或容器CPU占用超过98%,或剩余内存不足200 MB。

  • JVM堆内存剩余不足150 MB,元数据空间不足5 MB。

接入白名单说明

接入白名单定义了服务器自动接入应用防护的应用进程范围。为应用分组配置接入白名单后,只有匹配规则的应用进程才会接入应用防护。下述是接入白名单的生效说明:

  • 仅对0.9.4及以上的RASP探针版本生效。

  • 如果在主机资产接入前配置了接入白名单,则自动接入时该白名单会生效;如果在主机资产接入后配置了接入白名单,已成功接入的进程需等待下次应用进程重启后生效;对于接入失败或者接入跳过的进程,接入白名单会在下次自动接入时生效。

前提条件

  • 需接入应用所在服务器的云安全中心客户端为在线状态。

    您可以在资产中心 > 主机资产页面的服务器页签通过服务器客户端列图标的状态判断客户端是否在线,image..png图标表示在线。如果Agent离线,处理方法请参见客户端离线排查

  • 如果是以RAM用户身份使用应用防护功能,请确保RAM用户拥有AliyunYundunWAFFullAccessAliyunYundunSASFullAccess权限策略。授权的具体操作,请参见为RAM用户授权

1. 查看哪些应用可以接入

应用防护仅支持防护运行状态的Java应用。在购买应用防护授权数前,您可以参考下述步骤查看支持接入的应用数量和详细信息。

  1. 登录云安全中心控制台。在控制台左上角,选择需防护资产所在的区域:中国全球(不含中国)

  2. 在左侧导航栏,选择防护配置 > 应用防护

  3. 防护统计区域,单击立即扫描

    单击立即扫描后,云安全中心客户端将会对您资产中进程信息进行采集。

    说明

    免费版、仅采购增值服务版、防病毒版和高级版每天仅支持执行一次立即扫描操作。

  4. 查看您资产中存在的应用进程数量,您可以单击数字查看应用进程列表。应用进程列表提供了支持接入应用防护的应用进程所在服务器信息、进程名、PID(进程标识符)和启动参数。

    重要

    防护一个应用需消耗一个应用防护授权数。进程数量是动态变化的,此处采集的数据是执行扫描的时刻状态为启动中的进程。您可以根据这里的数量,预估需要购买的应用防护授权数。

    image.png

2. 购买应用防护授权数

您需要购买足够的应用防护授权数,才能将应用接入到应用防护中。在购买云安全中心时,选择需要的版本(任一版本)和应用防护授权数即可。具体操作,请参见购买云安全中心

说明

云安全中心免费试用支持免费获取10个应用防护授权数。如果您未购买过云安全中心,可申请免费试用。具体限制条件和操作,请参见开通7天免费试用

3. 接入应用防护

应用防护按应用分组执行防护策略,对应用分组内的Web业务进程提供安全防护。因此,您需要先创建应用分组,接入应用进程后,为分组内的业务进程配置统一的防护策略。

3.1 创建应用分组

  1. 登录云安全中心控制台。在控制台左上角,选择需防护资产所在的区域:中国全球(不含中国)

  2. 在左侧导航栏,选择防护配置 > 应用防护

  3. 应用配置页签,单击新建应用分组

  4. 新建应用分组向导页面,输入要新建的应用分组名称和备注信息,然后单击下一步

    建议您根据需要防护的Web业务进程设置应用分组名称,应用分组名称不可重复。完成该操作后,云安全中心会创建一个应用分组。

3.2 自动接入或手动接入

接入方式说明

RASP支持自动接入和手动接入方式,您可以根据下表的说明选择合适的接入方式。

接入方式

说明

应用场景

自动接入主机和容器(推荐)

以服务器为单位进行接入,服务器接入后,在应用程序运行时,应用防护功能会使用JVM Attach能力自动识别并接入服务器中的存在监听端口的Java进程(包括容器环境),将应用防护功能集成到应用程序中。

该方式可以在应用程序运行时动态地加载和卸载应用防护功能,无需重启应用进程,可以保障业务的连续性。

未自动接入过其他应用分组的服务器可以选择自动接入方式。

说明

如果您服务器中的部分应用进程已自动接入指定应用分组,现需要将该主机中的应用进程重新接入另一个应用分组,您可以先为该服务器关闭应用防护,从当前应用分组移除该服务器,再在新的应用分组开启自动接入。

手动接入

以应用为单位进行接入,需手动部署并重启应用。

  • 您的业务使用的框架为WebSphere时,需要使用手动接入方式,不支持自动接入。

  • 如果您主机中的部分应用进程已自动接入指定应用分组,需要将该主机中未接入防护的应用进程接入其他应用分组。

  • 如果需要将同一服务器接入多个应用分组时,您需要使用手动接入方式。

  • 您的Java应用无监听端口。

自动接入

重要
  • 建议首次自动接入时避开业务高峰期,分批次灰度执行并观察业务监控指标。自动接入过程中RASP会对应用进程进行埋点(即插入监控或防护代码),该过程中产生的退优化现象可能会有半分钟的CPU占用升高,平均影响10-20s,大型应用的影响小概率为数分钟,接入完成后自动恢复正常。

  • 一台主机仅支持自动接入到一个应用分组中,不支持同时自动接入多个应用分组。自动接入服务器时,仅支持选择未自动接入过其他应用分组且操作系统为64位的主机。

  • 已通过手动接入方式接入的主机,可以开启自动接入。当您卸载了手动接入的RASP探针后,应用防护会为您重新自动接入。

  • 自动接入只会接入有监听端口的Java应用。如果Java应用没有监听端口,则需要您进行手动接入。

  1. 自动/手动接入应用防护向导页面自动接入页签,单击选择资产接入应用防护

  2. 选择资产对话框选择需要接入的资产,并单击确定

    当您选择接入的主机后,应用防护功能会自动识别并接入防护主机上的Java服务进程(包括容器环境),无需重启进程。最多支持同时选择50台服务器。

  3. 根据需要接入的服务器数量,参考下述说明操作。

    • 仅需接入一台服务器时,打开该服务器应用防护列的开关,待RASP探针安装完成后,单击下一步

      自动接入控制台截图

    • 需要接入多台服务器时,选中需要接入的服务器,单击批量防护,然后单击下一步

      批量防护一次最多支持选择50台服务器。

    为单台服务器打开应用防护开关或者选中多台服务器并单击批量防护后,云安全中心会自动识别并主机上的Java进程接入防护(应用防护开关显示安装中),根据您的网络环境不同此过程可能会持续约10分钟。如果您的主机中有多个启动状态的Java进程,云安全中心会同时接入这些进程。

    接入成功后,应用防护列的开关为打开状态,您可以在应用防护接入状态列查看应用实例的接入状态。以下是应用防护接入状态的说明:

    • 未接入:表示该服务器未开启应用防护开关。

    • 接入失败:表示该服务器所有支持防护的应用都接入失败。

    • 部分接入:表示该服务器支持防护的应用部分接入成功,部分接入失败。

    • 全部接入:表示该服务器支持防护的Java应用均已接入应用防护,或者该服务器上无可接入的进程。

      说明

      应用防护接入状态显示为全部接入时,如果服务器上不存在可接入的进程,或者所属业务进程不在支持范围内,此时接入详情列表为空。如果后续该服务器上出现可接入的进程可自动接入应用防护。

    操作列单击详情,可以查看已接入的Java进程状态。

    说明

    如果您已为应用分组配置接入白名单,未命中接入白名单规则的进程会被跳过接入。

    接入详情

手动接入

您可以参考下述步骤手动将主机或容器中的应用接入应用防护。关于如何选择手动接入容器方式的说明如下:

  • 手动接入容器(一键推送):您已明确需要接入的服务器和应用范围时,可以直接使用该方式,直接完成安装包的推送。

  • 手动接入容器(自定义下载安装):如果需要其他人员协助安装RASP探针时,您可以使用该方式下载安装包,并将安装包分发给其他人员进行安装部署。

手动接入主机

  1. 接入管理面板手动接入主机接入指南子页签,单击一键推送

  2. 推送RASP探针对话框,选择需推送探针的服务器,并单击确定

  3. 根据应用运行环境类型参考控制台或下表中的说明在应用服务器中添加JVM参数。

    参考下表进行操作时,您需要使用控制台主机接入指南页签展示的应用ID替换下表中的{appId}。应用ID的位置如下图所示。应用ID位置

    运行环境

    参数配置说明

    Tomcat(Linux)

    在<Tomcat安装目录>/bin/setenv.sh文件中添加以下内容。

    export CATALINA_OPTS="$CATALINA_OPTS -javaagent:/usr/local/aegis/rasp/apps/{appId}/rasp.jar"

    如果您的<Tomcat安装目录>/bin/目录下没有setenv.sh配置文件,请在<Tomcat安装目录>/bin/目录下创建该文件。

    Tomcat(Windows)

    在<Tomcat安装目录>\bin\setenv.bat文件中添加以下内容。

    set CATALINA_OPTS=%CATALINA_OPTS% "-javaagent:C:\Program Files (x86)\Alibaba\Aegis\rasp\apps\{appId}\rasp.jar" 

    如果您的<Tomcat安装目录>\bin\目录下没有setenv.bat配置文件,请在<Tomcat安装目录>\bin\下创建该文件。

    Jetty

    在{JETTY_HOME}/start.ini配置文件中添加以下配置。

    --exec -javaagent:/usr/local/aegis/rasp/apps/{appId}/rasp.jar

    Spring Boot

    启动Spring Boot进程时,在启动命令后加上-javaagent参数。

    java -javaagent:/usr/local/aegis/rasp/apps/{appId}/rasp.jar

    例如,您在启动Spring Boot进程时修改前的命令为:

    java -jar app.jar

    需要安装RASP探针时启动Spring Boot进程执行的命令为:

    java -javaagent:/usr/local/aegis/rasp/apps/{appId}/rasp.jar -jar app.jar
    重要

    -javaagent参数应始终放在-jar参数之前。

    JBoss或WildFly

    • Standalone模式

      打开<Jboss安装目录>/bin/standalone.sh,在# Display our environment下面添加以下内容:

      JAVA_OPTS="${JAVA_OPTS} -javaagent:/usr/local/aegis/rasp/apps/{appId}/rasp.jar"
    • Domain模式

      打开<Jboss安装目录>/domain/configuration/domain.xml文件,找到<server-groups>标签,在需要安装RASP探针的<server-group>标签中找到<jvm>标签并添加以下内容:

      <jvm-options>
         <option value="-javaagent:/usr/local/aegis/rasp/apps/{appId}/rasp.jar"/>
      </jvm-options>

    Liberty

    在<Liberty安装目录>/${server.config.dir}路径下(默认路径为:/opt/ibm/wlp/usr/servers/defaultServer/jvm.options),创建或修改jvm.options文件 ,在文件中添加以下内容:

    -javaagent:/usr/local/aegis/rasp/apps/{appId}/rasp.jar

    Resin

    • Resin3

      在<Resin安装目录>/conf/resin.conf路径下,找到 <server-default> 标签下的 <jvm-arg>标签,在下面添加以下内容:

      <jvm-arg>-javaagent:/usr/local/aegis/rasp/apps/{appId}/rasp.jar</jvm-arg>
    • Resin4

      在<Resin安装目录>/conf/cluster-default.xml路径下,找到<server-default>标签下的<jvm-arg-line>标签,在下面添加以下内容:

      <jvm-arg>-javaagent:/usr/local/aegis/rasp/apps/{appId}/rasp.jar</jvm-arg>
  4. 在本地重启需接入的应用。

    应用重启后RASP防护可立即生效。您可以在应用配置页面,查看该应用分组下接入实例列表。

手动接入容器(一键推送安装)

  1. 接入管理面板手动接入页签的容器接入指南子页签,单击一键推送

    您也可以在推送记录页签,单击推送RASP探针,为应用所在的主机或容器推送并安装RASP探针。

  2. 推送RASP探针对话框,选择需推送探针的服务器,并单击确定

  3. 启动RASP探针。

    • 方法一:写入Dockerfile方式

      1. 执行下述命令进入Dockerfile所在目录,并创建rasp目录。

        cd <Dockerfile所在目录>
        mkdir rasp
      2. 执行下述命令将推送到服务器上的RASP文件拷贝到新创建的rasp目录下。

        您可以在云安全中心控制台容器接入指南页签下,获取应用分组ID的值。

        cp -r /usr/local/aegis/rasp/apps/<应用分组ID>/* ./rasp
      3. 修改Dockerfile文件,将下载好的 rasp 安装包打包到容器镜像中。Dockerfile文件需要添加的内容如下。

        COPY rasp /rasp/
        重要

        您需要赋予指定用户读取和执行/rasp/目录以及目录下文件的权限。

      4. 通过Dockerfile 修改JVM启动参数,添加-javaagent:/rasp/rasp.jar。

        您需要使用容器接入指南页签展示的Dmanager.key值替换下表中的{manager.key}

        运行环境

        参数配置说明

        SpringBoot

        在镜像打包时安装RASP探针,您需要在Dockerfile上修改启动参数。启动应用的命令修改如下:

        修改前:

        CMD ["java","-jar","/app.jar"]

        修改后:

        CMD ["java","-javaagent:/rasp/rasp.jar","-Dmanager.key={manager.key}","-jar","/app.jar"]

        Tomcat

        • 在镜像打包时安装RASP探针,您需要在Dockerfile中添加以下内容。

          ENV JAVA_OPTS="-javaagent:/rasp/rasp.jar -Dmanager.key={manager.key}"
        • 在容器启动时安装RASP探针,您需要在启动时添加以下参数。

          docker --env JAVA_OPTS="-javaagent:/rasp/rasp.jar -Dmanager.key={manager.key}"

        例如,您的容器启动命令为docker -itd --name=test -P 镜像名,您需要在启动容器时安装RASP探针,则执行的命令需要修改为docker -itd --env JAVA_OPTS="-javaagent:/rasp/rasp.jar -Dmanager.key={manager.key}" --name=test -P 镜像名

        Weblogic

      5. 重新生成镜像,并启动容器。

    • 方法二:数据卷挂载方式

      1. 执行下述命令在创建容器时将服务器上的rasp目录挂载到容器指定目录。

        docker run -itd --privileged=true -v /usr/local/aegis/rasp/apps/<应用分组ID>:/rasp/ 镜像ID
      2. 执行下述命令进入容器。

        docker exec -it <容器ID> /bin/bash
      3. 在应用服务器的启动脚本中添加以下JVM参数以启动RASP探针。

        您需要参考下述参数结合自己的业务环境进行配置。您需要使用容器接入指南页签展示的Dmanager.key值替换下述{manager.key}

        -javaagent:/rasp/rasp.jar -Dmanager.key={manager.key}

手动接入容器(自定义下载安装)

  1. 接入管理面板手动接入页签的容器接入指南子页签,在下载安装RASP探针下方的下拉列表中选择自定义下载安装

    您也可以在推送记录页签,单击推送RASP探针,为应用所在的主机或容器推送并安装RASP探针。

    image

  2. 在下拉列表中,根据您需要安装RASP探针的服务器是否通过代理接入云安全中心,选择不接入代理自建代理集群

    选择自建代理集群后,您需要选择服务器接入的代理集群。关于代理接入的更多信息,请参见代理接入

  3. 单击RASP安装包右侧的下载,下载RASP安装包。

  4. 启动RASP探针。

    • 方法一:写入Dockerfile方式

      1. 执行下述命令进入Dockerfile所在目录。

        cd <Dockerfile所在目录>
      2. 将下载的RASP安装包上传到Dockerfile所在目录下,并解压RASP安装包到该目录。

        unzip <安装包名称> -d .
        说明

        安装包解压完成后会直接生成一个名称为rasp的目录。

      3. 修改Dockerfile文件,将下载好的 rasp 安装包打包到容器镜像中。Dockerfile文件需要添加的内容如下。

        COPY rasp /rasp/
        重要

        您需要赋予指定用户读取和执行/rasp/目录以及目录下文件的权限。

      4. 通过Dockerfile 修改JVM启动参数,添加-javaagent:/rasp/rasp.jar。

        您需要使用容器接入指南页签展示的Dmanager.key值替换下表中的{manager.key}

        运行环境

        参数配置说明

        SpringBoot

        在镜像打包时安装RASP探针,您需要在Dockerfile上修改启动参数。启动应用的命令修改如下:

        修改前:

        CMD ["java","-jar","/app.jar"]

        修改后:

        CMD ["java","-javaagent:/rasp/rasp.jar","-Dmanager.key={manager.key}","-jar","/app.jar"]

        Tomcat

        • 在镜像打包时安装RASP探针,您需要在Dockerfile中添加以下内容。

          ENV JAVA_OPTS="-javaagent:/rasp/rasp.jar -Dmanager.key={manager.key}"
        • 在容器启动时安装RASP探针,您需要在启动时添加以下参数。

          docker --env JAVA_OPTS="-javaagent:/rasp/rasp.jar -Dmanager.key={manager.key}"

        例如,您的容器启动命令为docker -itd --name=test -P 镜像名,您需要在启动容器时安装RASP探针,则执行的命令需要修改为docker -itd --env JAVA_OPTS="-javaagent:/rasp/rasp.jar -Dmanager.key={manager.key}" --name=test -P 镜像名

        Weblogic

      5. 重新生成镜像,并启动容器。

    • 方法二:数据卷挂载方式

      1. 将下载的RASP安装包上传到服务器指定的目录下,并执行解压操作。

        您需要根据具体环境替换user.path为正确的路径。

        unzip  zhh-php1-China.zip -d /<user.path>/
      2. 执行下述命令在创建容器时将服务器上的rasp目录挂载到容器指定目录。

        docker run -itd  -v /<user.path>/rasp:/rasp/ 镜像id 
      3. 执行下述命令进入容器。

        docker exec -it <容器ID> /bin/bash
      4. 在应用服务器的启动脚本中添加以下JVM参数以启动RASP探针。

        您需要参考下述参数结合自己的业务环境进行配置。您需要使用容器接入指南页签展示的Dmanager.key值替换下述{manager.key}

        -javaagent:/rasp/rasp.jar -Dmanager.key={manager.key}

3.3 设置防护策略

观察告警无误设置“防护”模式向导页面,设置防护策略,单击确定

重要

默认防护模式为监控模式,建议您先使用监控模式2~5天,如果在此期间未出现误告警您可以将防护模式修改为防护。如果出现误告警,您可以通过配置白名单规则,屏蔽产生误拦截的检测类型。具体操作,请参见将告警加入白名单

分类

配置项

说明

防护策略

应用分组名称

展示应用分组的名称,在此处不支持修改。

防护模式

选择应用分组的防护模式,可选项:

  • 监控:只监控攻击行为,不阻断攻击行为。检测到攻击行为时,会产生处理方式为监控的告警。

  • 防护:监控并阻断攻击行为,同时也会对应用实例的一些高危操作进行监控。阻断攻击行为的同时,会产生处理方式为阻断的告警。

  • 禁用:关闭当前应用分组内应用实例的防护功能,不检测也不阻断任何攻击行为。

防护策略组

默认的防护策略组是日常运行组。您可以在下拉列表中选择其他防护策略组。防护策略组的更多信息,请参见5. 管理防护策略组

检测类型

展示已选择的防护策略组支持的检测类型。

检测策略

弱点检测

选择是否为当前应用分组开启弱点检测。更多信息,请参见发现应用弱点

内存马检测

选择是否为当前应用分组开启内存马检测。更多信息,请参见内存马防御

常用配置

检测超时时间

攻击检测的最大时间,输入范围为1~60,000毫秒,默认设置为300毫秒。若攻击检测超过设置的时间,即使未完成检测逻辑也会继续执行原始业务逻辑。如无特殊原因,建议使用默认值。

源IP判断方式

  • 选择默认,系统会根据常规的源IP header值按照X-Real-IP、True-Client-IP、X-Forwarded-For的先后次序获取源IP,即当未获取到X-Real-IP的值时,会获取True-Client-IP的值作为源IP;如果X-Real-IP、True-Client-IP均未获取到,则获取X-Forwarded-For的值作为源IP。

  • 选择取自定义header的值,系统会优先根据自定义的header值获取源IP,设置多个header值时,按先后顺序依次尝试获取源IP。如果所有自定义header值未命中,则默认规则生效。

    说明

    最多支持设置5个自定义header值。

运行时熔断配置

开启该功能后,当服务器或进程的资源占用率超过CPU或内存任一熔断值时,RASP的实时防护能力、内存马检测和弱点检测能力将自动停止。当服务器或进程资源占用率低于设置的所有熔断值时,RASP的防护能力会自动恢复。

该功能可以保障业务在高峰情况下稳定运行,默认为关闭状态。如果您的应用为对性能敏感的计算型业务,可以开启该功能。配置说明如下:

  • 主机或容器环境CPU占比超过:可设置范围10%~99%,推荐配置95%。

  • JVM堆内存占比超过:可设置范围5%~99%,推荐配置98%。

  • JVM堆剩余内存小于:可设置范围10~99999 MB,推荐配置100 MB。

重要
  • 仅0.8.8及以上版本的RASP探针支持熔断功能。0.8.8以下版本的探针可通过重启应用进程自动升级到最新版。

  • 处于防护熔断状态的实例仍占用授权数。

3.4 配置自动接入白名单

如果您的业务较为敏感不想接入应用防护,或者想对特定业务进程做灰度接入,您可以通过配置接入白名单,设置白名单规则定义需要接入应用防护的进程列表。仅命中白名单规则的进程会接入应用防护。未配置白名单规则时,资产中的所有进程会全部自动接入。以下步骤介绍如何配置接入白名单,如果无需配置可跳过该步骤。

  1. 新建应用分组面板的自动接入页签,单击接入白名单

  2. 白名单列表页面接入白名单页签,单击配置接入白名单

  3. 配置接入白名单面板,配置下述参数,并单击确定

    配置项

    说明

    规则名称

    输入接入白名单规则的名称。

    加白模式

    选择白名单规则使用的加白模式。可选项:

    • cmdline:通过命令行参数匹配需接入的进程。该模式支持的匹配方式包括:

      • 包含

      • 包含多值之一

      • 不包含

      • 不包含任一值

    • 环境变量:通过进程访问的环境变量匹配需接入的进程。该模式支持的匹配方式为等于。

    • -D参数:通过Java程序启动时设置的系统属性匹配需接入的进程。该模式支持的匹配方式为等于。

    配置示例如下:

    • 仅接入tomcat相关进程

      • 加白模式选择为cmdline

      • 匹配方式选择为包含

      • 匹配内容选输入tomcat

    • 接入非apache和test的进程

      • 加白模式选择为cmdline

      • 匹配方式选择为不包含任一值

      • 匹配内容选输入apache,test

    匹配方式

    选择规则的匹配方式。

    匹配字段

    输入规则的匹配字段。

    说明

    加白模式选择环境变量-D参数时,需要配置该参数。

    匹配内容

    输入规则的匹配内容。

    生效应用分组

    选择接入白名单规则生效的应用分组。

4. 验证应用接入情况

如果应用进程的PID展示在应用分组的已授权实例列表中,则说明该应用已正常接入应用防护。参考以下步骤可查看已接入的应用列表。

  1. 应用防护页面的应用配置页签,单击目标应用分组已授权实例列下的数字。

  2. 在实例详情面板,查看已接入的应用列表。

    如果目标服务器的应用进程PID在应用列表中,则表示该应用已成功接入应用防护。

    image.png

5. 管理防护策略组

为满足不同业务情况下的安全需求,应用防护功能对攻击检测规则的能力进行分级,提供了防护策略组:业务优先组(默认宽松规则组)、正常运营组(默认标准规则组)和防护优先组(默认严格规则组)。

默认防护策略组中的规则的检测模式均相同,例如默认业务优先组(默认宽松规则组)内所有攻击规则的检测模式均为宽松;您可以根据实际需要使用对应规则组,或自定义规则组。

检测模式说明

为了平衡不同业务场景下误报率和攻击防护强度,应用防护功能定义了多种检测模式:宽松、标准和严格。这三种模式的防护能力从低到高逐级递增,误报率也是从低到高。

  • 宽松:只覆盖已知攻击特征,极少误报。

  • 标准(默认):覆盖常见攻击特征,并具有部分泛化推理能力,适用于日常运维场景。

  • 严格:支持识别更多隐蔽的攻击行为,适用于重保场景,但存在一定的误报风险。

image.png

新建防护策略组

  1. 应用防护页面的应用配置页签,单击防护策略组管理

  2. 单击新建防护策略组

  3. 新建防护策略组面板,输入防护策略组名称、备注,并单击检测类型右侧的选择配置检测类型。

    选择检测类型面板,选中需要的检测类型,并设置检测模式,选择完成后,单击确定

    例如,在已有的告警中,您发现SQL注入误报较多,您可以将SQL注入检测项的检测模式修改为宽松

    image.png

  4. 单击确定

相关操作

授权数管理

  • 查看应用防护剩余授权数

    防护一个应用进程实例会消耗一个授权数。在使用应用防护功能时,请确保您拥有充足的剩余授权数。购买应用防护授权数后,您可以在应用防护页面应用配置页签查看剩余授权数。

    image.png

    如果剩余授权数不足,即剩余授权数为0时:

    • 进行自动接入时,无法选择主机资产进行接入。

      说明

      如果在自动接入的过程中授权数消耗完,应用进程可正常接入,但是超出授权数部分的进程实例状态为未授权。

    • 使用手动接入方式可正常接入应用进程,但实例状态为未授权。未授权状态的实例没有受到防护。

    授权数不足时,建议您参考下文,扩充应用授权数。

  • 扩充应用防护授权数

    如果需要防护的应用实例数量大于剩余授权数,您需要在应用防护页面应用配置页签,单击剩余授权数右侧的升级,前往相应页面购买应用防护授权数。

修改应用分组的防护策略

您可以参考下述步骤修改应用分组的防护策略。

  1. 应用防护页面的应用配置页签,单击目标应用分组操作列的防护策略

  2. 防护策略面板,在防护策略组下拉列表中选择需生效的防护策略组。

  3. 单击确定

关闭应用防护

关闭单个应用的防护

应用防护页面应用配置页签,单击目标应用分组操作列的接入管理,在接入管理面板,根据您的应用接入方式参考以下说明卸载RASP探针:

  • 自动接入(云安全中心客户端在线):在自动接入页签,选中需要卸载实例的服务器,单击批量关闭防护。或关闭应用防护列的开关,卸载该服务器中的RASP探针。

    重要

    如果不再需要防护指定服务器,您可以在确保该服务器的应用防护开关为关闭状态时,删除该服务器。

    自动接入页签,单击目标服务器操作列的删除,或选中多个服务器后单击批量删除,在该应用分组下删除服务器。

  • 自动接入(云安全中心客户端离线):云安全中心客户端离线时,无法通过控制台自动卸载RASP探针,您需要参考以下步骤手动卸载RASP探针。

    1. 在服务器的终端或命令行界面中执行crontab -e

    2. 在定时任务列表中删除应用防护相关任务。应用防护相关任务如下所示。

      * * * * * bash -c /usr/local/aegis/rasp/apps/664dd403cd24364f9e******/attach/runJavaFinder.sh http://update-vpc.aegis.aliyuncs.com/rasp/plugin/v1/error/report aa97bdc587ac7ab37028506359****** 6901ad53-a454-4681-afdb-c894d2******
    3. 保存cron定时任务文件并退出。

      • 使用编辑器vivim,先按Esc键确保你处于正常模式,然后输入:wq并回车来保存并退出。

      • 使用编辑器nano,按Ctrl+O来保存更改,然后按Ctrl+X退出。

    4. 在业务低峰时期重启进程。

  • 手动接入:如果需要为目标应用卸载RASP探针,您需要手动删除在接入指南中添加的JVM参数,然后重启相关应用,即可取消接入应用防护功能。

禁用应用分组的防护

需要停止某个应用分组下的所有应用防护时,您可以在应用防护页面应用配置页签,单击目标应用分组操作列的防护策略,将防护模式修改为禁用,并单击确定

删除应用分组

重要

删除应用分组后,对该分组下所有实例的防护都会失效。请您在确认无需使用该应用分组下的所有RASP探针时,再执行删除操作。

在删除应用分组前,您需要确认当前应用分组下不存在已授权实例,或自动接入中所有服务器的应用防护开关均为关闭状态。

应用防护页面的应用配置页签,单击目标应用分组操作列的删除

查看探针版本

应用防护页面应用配置页签,单击目标应用分组接入实例列的数字,查看已接入的实例列表。如果应用实例RASP版本列右侧显示image.png图标,代表该应用实例安装的探针存在新版本,建议您通过重启应用来自动更新探针版本。image.png

查看实例状态

应用防护页面应用配置页签,单击目标应用分组接入实例列的数字,查看已接入的实例列表。

不同状态实例的具体含义如下:

  • 在线已授权:该实例已被正常防护。

  • 在线未授权:由于应用防护授权数不足,该实例虽已成功接入但未受到防护。您可以单击剩余授权数右侧的升级购买充足的应用防护授权数。

  • 离线:该实例未接入应用防护。

  • 在线防护熔断:该实例所在应用分组开启了运行时熔断配置,该实例的资源占用率已满足熔断条件,应用防护已停止对该实例的防护,处于该状态的实例会占用授权数。当该实例的资源占用率降低到所有熔断条件下时,应用防护会重新开启对该实例的防护,该实例状态将变更为在线已授权。

image

相关文档