Ingress Controller de Citrix ADC

Configurar directivas de administración de bots con el Citrix Ingress Controller

Un bot es una aplicación de software que automatiza las tareas manuales. Con las directivas de administración de bots, puede permitir que los bots útiles accedan a su entorno nativo de la nube y bloqueen los bots maliciosos.

Las definiciones de recursos personalizadas (CRD) son la forma principal de configurar directivas en implementaciones nativas de la nube. Con la CRD de bots proporcionada por Citrix, puede configurar las directivas de administración de bots con el Citrix Ingress Controller en Citrix ADC VPX. La CRD de bots permite la comunicación entre el Citrix Ingress Controller de Citrix y Citrix ADC para aplicar las directivas de administración de bots.

En una implementación de Kubernetes, puede aplicar la directiva de administración de bots en las solicitudes y respuestas desde y hacia el servidor mediante la CRD de bots. Para obtener más información sobre las vulnerabilidades de seguridad, consulte Detección de bots.

Con el CRD de bots, puede configurar la directiva de seguridad de administración de bots para los siguientes tipos de vulnerabilidades de seguridad para las aplicaciones nativas de Kubernetes:

  • Lista de permitidos
  • Lista de bloqueados
  • Huella digital del dispositivo (DFP)
  • Bot TPS
  • Inserción de trampas
  • Reputación de IP
  • Límite de tarifa

Según el tipo de protecciones requeridas, puede especificar los metadatos y usar los atributos CRD en el archivo .yaml CRD de bot para definir la directiva de bots.

Definición de CRD de bot

La CRD de bots está disponible en el repositorio de GitHub Citrix Ingress Controller en bot-crd.yaml. La CRD de bots proporciona atributos para las diversas opciones que se requieren para definir las directivas de administración de bots en Citrix ADC.

Atributos CRD de bot

En la siguiente tabla se enumeran los diversos atributos proporcionados en el CRD de bots:

Atributo CRD Descripción
security_checks Lista de comprobaciones de seguridad que se aplicarán al tráfico entrante.
allow_list Lista de expresiones de IP, subred y directiva permitidas.
block_list Lista de expresiones de IP, subred y directiva no permitidas.
device_fingerprint Inserta javascript y recopila los parámetros del explorador y del dispositivo del cliente.
trap Inserta URL ocultas en la respuesta.
tps Evita que los bots provoquen picos inusuales en las solicitudes en función del cambio porcentual configurado en las transacciones.
reputation Impide el acceso a direcciones IP incorrectas según las categorías de reputación configuradas.
ratelimit Previene los bots según el límite de velocidad.
redirect_url Redirigir la URL cuando el bloqueo está habilitado en la protección.
servicenames Nombre de los servicios a los que se aplican las directivas de bots.
signatures Ubicación del archivo de firma de bot externo.
target Determina qué tráfico inspeccionará el bot. Si no especifica el tráfico objetivo, todo el tráfico se inspecciona de forma predeterminada.
paths Lista de URL HTTP que se inspeccionarán.
method Lista de métodos HTTP que se inspeccionarán.
header Lista de encabezados HTTP que se inspeccionarán.

Implementar el CRD de bots

Realice los siguientes pasos para implementar la CRD de bots:

  1. Descarga el archivo bot-crd.yaml.
  2. Implemente el CRD de bot con el siguiente comando:

kubectl create -f bot-crd.yaml

Por ejemplo:

root@master:~# kubectl create -f bot-crd.yaml
customresourcedefinition.apiextensions.k8s.io/bots.citrix.com created
<!--NeedCopy-->

Cómo escribir una configuración de bot

Después de implementar la CRD de bots proporcionada por Citrix en el clúster de Kubernetes, puede definir la configuración de la directiva de administración de bots en un archivo YAML. En el archivo YAML, especifique bot en el campo kind. En la sección de especificaciones, agregue los atributos de Bot CRD según sus requisitos para la configuración de la directiva.

Después de implementar el archivo YAML, el Citrix Ingress Controller aplica la configuración del bot en el dispositivo Citrix ADC de entrada.

A continuación se presentan algunos ejemplos de configuraciones de directivas de bots:

Bloquee el tráfico malicioso mediante expresiones de directivas de IP, subred o ADC conocidas

Cuando quiera definir y emplear una directiva de administración de bots web en Citrix ADC para permitir que el bot bloquee el tráfico malicioso, puede crear un archivo YAML llamado botblocklist.yaml y usar los atributos CRD adecuados para definir la directiva de bots de la siguiente manera:

apiVersion: citrix.com/v1
kind: bot
metadata:
    name: botblocklist
spec:
    servicenames:
        - frontend
    security_checks:
        block_list: "ON"
    bindings:
        block_list:
            - subnet:
                value:
                    - 172.16.1.0/12
                    - 172.16.2.0/12
                    - 172.16.3.0/12
                    - 172.16.4.0/12
                action:
                    - "drop"
            - ip:
                value: 10.102.30.40
            - expression:
                value:  http.req.url.contains("/robots.txt")
                action:
                    - "reset"
                    - "log"
<!--NeedCopy-->

Permitir el tráfico conocido sin comprobaciones de seguridad de bots**

Cuando quiera evitar las comprobaciones de seguridad para cierto tráfico, como el tráfico provisional o de confianza, puede evitar ese tráfico de las comprobaciones de seguridad. Puede crear un archivo YAML llamado botallowlist.yaml y usar los atributos CRD apropiados para definir la directiva de bots de la siguiente manera:

apiVersion: citrix.com/v1
kind: bot
metadata:
    name: botallowlist
spec:
    servicenames:
        - frontend
    security_checks:
        allow_list: "ON"
    bindings:
        allow_list:
            - subnet:
                value:
                    - 172.16.1.0/12
                    - 172.16.2.0/12
                    - 172.16.3.0/12
                    - 172.16.4.0/12
                action:
                    - "log"
            - ip:
                value: 10.102.30.40
            - expression:
                value:  http.req.url.contains("index.html")
                action:
                    - "log"
<!--NeedCopy-->

Habilitar firmas de bots para detectar bots

Citrix proporciona miles de firmas incorporadas para detectar bots en función de los agentes de usuario. El equipo de inteligencia de amenazas de Citrix sigue actualizando y publicando nuevas firmas de bots cada dos semanas. El archivo de firma de bot más reciente está disponible en: Firmas de bots. Puede crear un archivo YAML llamado botsignatures.yaml y usar los atributos CRD apropiados para definir la directiva de bots de la siguiente manera:

apiVersion: citrix.com/v1
kind: bot
metadata:
    name: botsignatures
spec:
    servicenames:
        - frontend
    redirect_url: "/error_page.html"
    signatures: "http://10.106.102.242/ganeshka/bot_sig.json"
<!--NeedCopy-->

Habilite la huella digital del dispositivo bot y personalice la acción

La toma de huellas digitales del dispositivo implica insertar un fragmento de JavaScript en la respuesta HTML al cliente. Este fragmento de JavaScript, cuando el explorador lo invoca en el cliente, recopila los atributos del explorador y el cliente. Y envía una solicitud POST a Citrix ADC con esa información. Estos atributos se examinan para determinar si la conexión se solicita a un bot o a un ser humano. Puede crear un archivo YAML llamado botdfp.yaml y usar los atributos CRD apropiados para definir la directiva de bots de la siguiente manera:

apiVersion: citrix.com/v1
kind: bot
metadata:
    name: botdfp
spec:
    servicenames:
        - frontend
    redirect_url: "/error_page.html"
    security_checks:
       device_fingerprint:
           action:
               - "log"
               - "drop"
<!--NeedCopy-->

Habilite el TPS del bot y personalice la acción

Si el TPS del bot está configurado, detecta el tráfico entrante como bots si el número máximo de solicitudes o el aumento de solicitudes excede el intervalo de tiempo configurado. Puede configurar los límites de TPS según la geolocalización, el host, la IP de origen y la URL en la sección bindings. Puede crear un archivo YAML llamado bottps.yaml y usar los atributos CRD apropiados para definir la directiva de bots de la siguiente manera:

apiVersion: citrix.com/v1
kind: bot
metadata:
    name: bottps
spec:
    servicenames:
        - frontend
    redirect_url: "/error_page.html"
    security_checks:
        tps: "ON"
    bindings:
        tps:
            geolocation:
                threshold: 101
                percentage: 100
            host:
                threshold: 10
                percentage: 100
                action:
                    - "log"
                    - "mitigation"
<!--NeedCopy-->

Habilite la protección de inserción de trampas y personalice la acción

Detecta y bloquea los bots automatizados anunciando una URL de captura en la respuesta del cliente. La URL es invisible y el cliente no puede acceder a ella, si es humana. El método de detección es eficaz para bloquear los ataques de los bots automatizados. La inserción de la URL de captura en las respuestas de URL es aleatoria. Puede aplicar la inserción de URL de captura a una respuesta de URL en particular configurando los enlaces de captura. Puede crear un archivo YAML llamado trapinsertion.yaml y usar los atributos CRD apropiados para definir la directiva de bots de la siguiente manera:

apiVersion: citrix.com/v1
kind: bot
metadata:
    name: trapinsertion
spec:
    servicenames:
        - frontend
    redirect_url: "/error_page.html"
    security_checks:
       trap:
         action:
           - "log"
           - "drop"
    bindings:
      trapinsertion:
        urls:
          - "/index.html"
          - "/submit.php"
          - "/login.html"
<!--NeedCopy-->

Habilitar la reputación de IP para rechazar solicitudes de una categoría en particular

A continuación se muestra un ejemplo de una configuración de CRD de bot para habilitar solo categorías de amenazas específicas de reputación de IP que son adecuadas para el entorno de usuario. Puede crear un archivo YAML llamado botiprepcategory.yaml y usar los atributos CRD apropiados para definir la directiva de bots de la siguiente manera:

apiVersion: citrix.com/v1
kind: bot
metadata:
    name: botiprepcategory
spec:
    servicenames:
        - frontend
    redirect_url: "/error_page.html"
    security_checks:
       reputation: "ON"
    bindings:
      reputation:
        categories:
            - SPAM_SOURCES:
                action:
                    - "log"
                    - "redirect"
            - MOBILE_THREATS
            - SPAM_SOURCES
<!--NeedCopy-->

Habilitar límite de velocidad para controlar la tasa de solicitudes

A continuación se muestra un ejemplo de configuración de CRD de bot para aplicar el límite de tasa de solicitudes mediante los parámetros: URL, cookies e IP. Puede crear un archivo YAML llamado botratelimit.yaml y usar los atributos CRD apropiados para definir la directiva de bots de la siguiente manera:

apiVersion: citrix.com/v1
kind: bot
metadata:
  name: botratelimit
spec:
  servicenames:
    - frontend
  redirect_url: "/error_page.html"
  security_checks:
    ratelimit: "ON"
  bindings:
    ratelimit:
      - url:
          value: index.html
          rate: 2000
          timeslice: 1000
      - cookie:
          value: citrix_bot_id
          rate: 2000
          timeslice: 1000
      - ip:
          rate: 2000
          timeslice: 1000
          action:
              - "log"
              - "reset"
<!--NeedCopy-->
Configurar directivas de administración de bots con el Citrix Ingress Controller