Contrôleur d'entrée Citrix ADC

Configurer les stratégies de gestion des bots avec le Citrix ingress controller

Un bot est une application logicielle qui automatise les tâches manuelles. En utilisant les stratégies de gestion des bots, vous pouvez autoriser des robots utiles à accéder à votre environnement natif du cloud et bloquer les robots malveillants.

Les définitions de ressources personnalisées (CRD) constituent le principal moyen de configurer des stratégies dans les déploiements cloud natifs. À l’aide du CRD de bot fourni par Citrix, vous pouvez configurer les stratégies de gestion des bots avec le Citrix ingress controller sur Citrix ADC VPX. Le CRD de bot permet la communication entre le Citrix ingress controller et Citrix ADC pour appliquer les stratégies de gestion des bots.

Dans un déploiement Kubernetes, vous pouvez appliquer la stratégie de gestion des bots sur les demandes et les réponses en provenance et à destination du serveur à l’aide du CRD de bot. Pour plus d’informations sur les failles de sécurité, consultez Détection des bots.

Avec le CRD de bot, vous pouvez configurer la stratégie de sécurité de gestion des bots pour les types de vulnérabilités de sécurité suivants pour les applications natives de Kubernetes :

  • Liste verte
  • Liste des blocages
  • Empreinte digitale du périphérique (DFP)
  • TPS pour les robots
  • insertion d’un piège
  • Réputation IP
  • Limite de taux

En fonction du type de protection requis, vous pouvez spécifier les métadonnées et utiliser les attributs CRD du fichier .yaml CRD du bot pour définir la stratégie de bot.

Définition du Bot CRD

Le CRD Bot est disponible dans le référentiel GitHub du Citrix ingress controller à l’adresse bot-crd.yaml. Le CRD de bot fournit des attributs pour les différentes options nécessaires pour définir les stratégies de gestion des bots sur Citrix ADC.

Attributs CRD des bots

Le tableau suivant répertorie les différents attributs fournis dans le CRD du bot :

Attribut CRD Description
security_checks Liste des contrôles de sécurité à appliquer pour le trafic entrant.
allow_list Liste des expressions IP, de sous-réseau et de stratégie autorisées.
block_list Liste des expressions IP, de sous-réseau et de stratégie non autorisées.
device_fingerprint Insère du javascript et collecte les paramètres du navigateur client et de l’appareil.
trap Insère des URL masquées dans la réponse.
tps Empêche les robots qui provoquent un pic inhabituel de demandes en fonction du pourcentage de variation configuré des transactions.
reputation Empêche l’accès aux mauvaises adresses IP selon les catégories de réputation configurées.
ratelimit Empêche les bots sur la base de la limite
redirect_url Redirigez l’URL lorsque le blocage est activé sur la protection.
servicenames Nom des services auxquels les stratégies de bot sont appliquées.
signatures Emplacement du fichier de signature du bot externe.
target Détermine le trafic à inspecter par le bot. Si vous ne spécifiez pas le trafic ciblé, chaque trafic est inspecté par défaut.
paths Liste des URL HTTP à inspecter.
method Liste des méthodes HTTP à inspecter.
header Liste des en-têtes HTTP à inspecter.

Déployer le CRD du bot

Effectuez les étapes suivantes pour déployer le CRD du bot :

  1. Téléchargez le fichier bot-crd.yaml.
  2. Déployez le CRD du bot à l’aide de la commande suivante :

kubectl create -f bot-crd.yaml

Par exemple,

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

Comment écrire une configuration de bot

Après avoir déployé le CRD de bot fourni par Citrix dans le cluster Kubernetes, vous pouvez définir la configuration de la stratégie de gestion des bots dans un fichier YAML. Dans le fichier YAML, spécifiez bot dans le champ type. Dans la section des spécifications, ajoutez les attributs CRD du bot en fonction de vos exigences pour la configuration de la stratégie.

Après avoir déployé le fichier YAML, le Citrix ingress controller applique la configuration du bot sur l’appareil Citrix ADC d’entrée.

Voici quelques exemples de configuration de stratégie de bot :

Bloquer le trafic malveillant à l’aide d’expressions de stratégie IP, de sous-réseau ou d’ADC connues

Lorsque vous souhaitez définir et utiliser une stratégie de gestion des bots Web dans Citrix ADC pour permettre au bot de bloquer le trafic malveillant, vous pouvez créer un fichier YAML appelé botblocklist.yaml et utiliser les attributs CRD appropriés pour définir la stratégie de bot comme suit :

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-->

Autoriser le trafic connu sans contrôles de sécurité des bots**

Lorsque vous souhaitez éviter les contrôles de sécurité pour certains trafics tels que le trafic intermédiaire ou approuvé, vous pouvez éviter ce trafic à partir de contrôles de sécurité. Vous pouvez créer un fichier YAML appelé botallowlist.yaml et utiliser les attributs CRD appropriés pour définir la stratégie de bot comme suit :

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-->

Activer les signatures de bots pour détecter les bots

Citrix fournit des milliers de signatures intégrées pour détecter les bots en fonction des agents utilisateurs. L’équipe Citrix Threat Intelligence continue de mettre à jour et de publier de nouvelles signatures de robots toutes les deux semaines. Le dernier fichier de signature de bot est disponible à l’adresse suivante : Signatures de robots. Vous pouvez créer un fichier YAML appelé botsignatures.yaml et utiliser les attributs CRD appropriés pour définir la stratégie de bot comme suit :

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-->

Activez l’empreinte digitale du robot et personnalisez l’action

L’empreinte digitale du périphérique implique l’insertion d’un extrait de code JavaScript dans la réponse HTML envoyée au client. Cet extrait de code JavaScript, lorsqu’il est invoqué par le navigateur sur le client, collecte les attributs du navigateur et du client. Et envoie une demande POST à Citrix ADC avec ces informations. Ces attributs sont examinés pour déterminer si la connexion est demandée à un robot ou à un être humain. Vous pouvez créer un fichier YAML appelé botdfp.yaml et utiliser les attributs CRD appropriés pour définir la stratégie de bot comme suit :

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-->

Activez le TPS du bot et personnalisez l’action

Si le TPS du bot est configuré, il détecte le trafic entrant en tant que bots si le nombre maximum de demandes ou l’augmentation du nombre de demandes dépasse l’intervalle de temps configuré. Vous pouvez configurer les limites TPS en fonction de la géolocalisation, de l’ hôte, de l’ adresse IP sourceet de l’ URL dans la section des liaisons . Vous pouvez créer un fichier YAML appelé bottps.yaml et utiliser les attributs CRD appropriés pour définir la stratégie de bot comme suit :

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-->

Activez la protection contre l’insertion du piège et personnalisez l’action

Détecte et bloque les robots automatisés en annonçant une URL d’interruption dans la réponse du client. L’URL est invisible et n’est pas accessible au client, s’il s’agit d’un humain. La méthode de détection est efficace pour bloquer les attaques des robots automatisés. L’insertion de l’URL d’interruption dans les réponses d’URL est aléatoire. Vous pouvez appliquer l’insertion d’URL d’interruption à une réponse URL particulière en configurant les liaisons d’interruption. Vous pouvez créer un fichier YAML appelé trapinsertion.yaml et utiliser les attributs CRD appropriés pour définir la stratégie de bot comme suit :

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-->

Permettre à la réputation IP de rejeter les demandes d’une catégorie particulière

Voici un exemple de configuration de CRD de bot pour activer uniquement des catégories de menaces spécifiques de réputation IP adaptées à l’environnement utilisateur. Vous pouvez créer un fichier YAML appelé botiprepcategory.yaml et utiliser les attributs CRD appropriés pour définir la stratégie de bot comme suit :

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-->

Activer la limite de débit pour contrôler le taux de demandes

Voici un exemple de configuration de CRD de bot pour appliquer la limite de taux de demande à l’aide des paramètres : URL, cookies et IP. Vous pouvez créer un fichier YAML appelé botratelimit.yaml et utiliser les attributs CRD appropriés pour définir la stratégie de bot comme suit :

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-->
Configurer les stratégies de gestion des bots avec le Citrix ingress controller