Citrix ADC Ingress Controller

Konfigurieren von Bot-Verwaltungsrichtlinien mit dem Citrix Ingress Controller

Ein Bot ist eine Softwareanwendung, die manuelle Aufgaben automatisiert. Mithilfe von Bot-Verwaltungsrichtlinien können Sie nützlichen Bots den Zugriff auf Ihre Cloud-native Umgebung ermöglichen und die schädlichen Bots blockieren.

Benutzerdefinierte Ressourcendefinitionen (CRDs) sind die primäre Methode zur Konfiguration von Richtlinien in Cloud-nativen Bereitstellungen. Mit der von Citrix bereitgestellten Bot-CRD können Sie die Bot-Verwaltungsrichtlinien mit dem Citrix Ingress Controller auf dem Citrix ADC VPX konfigurieren. Die Bot-CRD ermöglicht die Kommunikation zwischen dem Citrix Ingress Controller und Citrix ADC zur Durchsetzung von Bot-Verwaltungsrichtlinien.

In einer Kubernetes-Bereitstellung können Sie mithilfe der Bot-CRD Bot-Verwaltungsrichtlinien für die Anforderungen und Antworten vom und an den Server durchsetzen. Weitere Informationen zu Sicherheitslücken finden Sie unter Bot-Erkennung.

Mit der Bot-CRD können Sie die Sicherheitsrichtlinie für die Bot-Verwaltung für die folgenden Arten von Sicherheitslücken für die Kubernetes-nativen Anwendungen konfigurieren:

  • Positivliste
  • Liste blockieren
  • Geräte-Fingerabdruck (DFP)
  • Bot-TPS
  • Trap-Einfügen
  • IP-Reputation
  • Ratenlimit

Je nach Art des erforderlichen Schutzes können Sie die Metadaten angeben und die CRD-Attribute in der .yaml Bot-CRD-Datei verwenden, um die Bot-Richtlinie zu definieren.

Bot-CRD-Definition

Die Bot-CRD ist im GitHub-Repository des Citrix Ingress Controller unter bot-crd.yamlverfügbar. Die Bot-CRD bietet Attribute für die verschiedenen Optionen, die zum Definieren der Bot-Verwaltungsrichtlinien auf Citrix ADC erforderlich sind.

Bot-CRD-Attribute

In der folgenden Tabelle sind die verschiedenen Attribute aufgeführt, die in der Bot-CRD bereitgestellt werden:

CRD-Attribut Beschreibung
security_checks Liste der Sicherheitsüberprüfungen, die für eingehenden Datenverkehr angewendet werden müssen.
allow_list Liste der zulässigen IP-, Subnetz- und Richtlinienausdrücke.
block_list Liste der unzulässigen IP-, Subnetz- und Richtlinienausdrücke.
device_fingerprint Fügt Javascript ein und sammelt den Clientbrowser und die Geräteparameter.
trap Fügt versteckte URLs in die Antwort ein.
tps Verhindert Bots, die aufgrund der konfigurierten prozentualen Änderung der Transaktionen einen ungewöhnlichen Anstieg der Anforderungen verursachen.
reputation Verhindert den Zugriff auf fehlerhafte IPs basierend auf konfigurierten Rufkategorien.
ratelimit Verhindert Bots basierend auf Ratenlimit.
redirect_url URL umleiten, wenn die Blockierung für den Schutz aktiviert ist.
servicenames Name der Dienste, auf die die Bot-Richtlinien angewendet werden.
signatures Speicherort der externen Bot-Signaturdatei.
target Bestimmt, welcher Verkehr vom Bot überprüft werden soll. Wenn Sie den Zielverkehr nicht angeben, wird standardmäßig jeder Verkehr überprüft.
paths Liste der zu prüfenden HTTP-URLs.
method Liste der zu prüfenden HTTP-Methoden.
header Liste der zu prüfenden HTTP-Header.

Stellen Sie die Bot-CRD bereit

Führen Sie die folgenden Schritte aus, um die Bot-CRD bereitzustellen:

  1. Laden Sie das bot-crd.yamlherunter.
  2. Stellen Sie die Bot-CRD mit dem folgenden Befehl bereit:

kubectl create -f bot-crd.yaml

Zum Beispiel:

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

Wie schreibe ich eine Bot-Konfiguration

Nachdem Sie die von Citrix bereitgestellte Bot-CRD im Kubernetes-Cluster bereitgestellt haben, können Sie die Konfiguration der Bot-Verwaltungsrichtlinie in einer YAML-Datei definieren. Geben Sie in der YAML-Datei den Bot im Feld “Art” an. Fügen Sie im Abschnitt “Spezifikationen” die Bot-CRD-Attribute basierend auf Ihren Anforderungen für die Richtlinienkonfiguration hinzu.

Nachdem Sie die YAML-Datei bereitgestellt haben, wendet der Citrix Ingress Controller die Bot-Konfiguration auf dem Ingress Citrix ADC-Gerät an.

Im Folgenden finden Sie einige Beispiele für Bot-Richtlinienkonfigurationen:

Blockieren Sie böswilligen Datenverkehr mithilfe bekannter IP-, Subnetz- oder ADC-Richtlinienausdrücke

Wenn Sie in Citrix ADC eine Webbotverwaltungsrichtlinie definieren und anwenden möchten, damit der Bot bösartigen Datenverkehr blockiert, können Sie eine YAML-Datei mit dem Namen erstellen botblocklist.yaml und die entsprechenden CRD-Attribute verwenden, um die Bot-Richtlinie wie folgt zu definieren:

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

Erlaube bekannten Datenverkehr ohne Bot-Sicherheitsprüfungen**

Wenn Sie Sicherheitsüberprüfungen für bestimmten Datenverkehr wie Staging oder vertrauenswürdigen Datenverkehr vermeiden möchten, können Sie diesen Datenverkehr durch Sicherheitsüberprüfungen vermeiden. Sie können eine YAML-Datei mit dem Namen botallowlist.yaml erstellen und die entsprechenden CRD-Attribute verwenden, um die Bot-Richtlinie wie folgt zu definieren:

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

Bot-Signaturen ermöglichen, Bots

Citrix bietet Tausende von eingebauten Signaturen, um Bots basierend auf Benutzeragenten zu erkennen. Das Citrix Threat Intelligence-Team aktualisiert und veröffentlicht alle zwei Wochen neue Bot-Signaturen. Die neueste Bot-Signaturdatei ist verfügbar unter: Bot-Signaturen. Sie können eine YAML-Datei mit dem Namen botsignatures.yaml erstellen und die entsprechenden CRD-Attribute verwenden, um die Bot-Richtlinie wie folgt zu definieren:

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

Den Fingerabdruck des Bot-Geräts aktivieren und die Aktion anpassen

Beim Geräte-Fingerabdruck wird ein JavaScript-Snippet in die HTML-Antwort an den Client eingefügt. Dieses JavaScript-Snippet sammelt, wenn es vom Browser auf dem Client aufgerufen wird, die Attribute des Browsers und des Clients. Und sendet mit diesen Informationen eine POST-Anfrage an Citrix ADC. Diese Attribute werden untersucht, um festzustellen, ob die Verbindung von einem Bot oder einem Menschen angefordert wird. Sie können eine YAML-Datei mit dem Namen botdfp.yaml erstellen und die entsprechenden CRD-Attribute verwenden, um die Bot-Richtlinie wie folgt zu definieren:

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

Aktiviere den Bot-TPS und passe die Aktion an

Wenn der Bot-TPS konfiguriert ist, erkennt er eingehenden Datenverkehr als Bots, wenn die maximale Anzahl von Anfragen oder die Erhöhung der Anforderungen das konfigurierte Zeitintervall überschreitet. Sie können die TPS-Grenzwerte gemäß Geolocation, Host, Quell-IPund URL im Abschnitt “ Bindungen “ konfigurieren. Sie können eine YAML-Datei mit dem Namen bottps.yaml erstellen und die entsprechenden CRD-Attribute verwenden, um die Bot-Richtlinie wie folgt zu definieren:

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

Aktivieren Sie den Einführschutz und passen Sie die Aktion an

Erkennt und blockiert automatisierte Bots, indem eine Trap-URL in der Kundenantwort angezeigt wird. Die URL ist unsichtbar und für den Client nicht zugänglich, wenn sie menschlich ist. Die Erkennungsmethode blockiert wirksam Angriffe von automatisierten Bots. Das Einfügen der Trap-URL in die URL-Antworten erfolgt zufällig. Sie können das Einfügen der Trap-URL in eine bestimmte URL-Antwort erzwingen, indem Sie die Trap-Bindungen konfigurieren. Sie können eine YAML-Datei mit dem Namen trapinsertion.yaml erstellen und die entsprechenden CRD-Attribute verwenden, um die Bot-Richtlinie wie folgt zu definieren:

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

IP-Reputation ermöglichen, Anfragen einer bestimmten Kategorie abzulehnen

Im Folgenden finden Sie ein Beispiel für eine Bot-CRD-Konfiguration, mit der nur bestimmte Bedrohungskategorien der IP-Reputation aktiviert werden können, die für die Benutzerumgebung geeignet sind. Sie können eine YAML-Datei mit dem Namen botiprepcategory.yaml erstellen und die entsprechenden CRD-Attribute verwenden, um die Bot-Richtlinie wie folgt zu definieren:

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

Ratenlimit zur Steuerung der Anforderungsrate

Im Folgenden finden Sie ein Beispiel für eine Bot-CRD-Konfiguration zur Durchsetzung der Anforderungsratenlimit mit dem Parameter: URL, Cookies und IP. Sie können eine YAML-Datei mit dem Namen botratelimit.yaml erstellen und die entsprechenden CRD-Attribute verwenden, um die Bot-Richtlinie wie folgt zu definieren:

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-->
Konfigurieren von Bot-Verwaltungsrichtlinien mit dem Citrix Ingress Controller