Citrix ADC mit Google Chrome 80

Citrix ADC mit Google Chrome 80

Erstellt: Mittwoch 19. Februar 2020
Version: 1.0

Problembeschreibung

Die bevorstehende Chrome-Version, Chrome 80, wird das standardmäßige domänenübergreifende Verhalten von Cookies ändern. Diese Änderung wird die Sicherheit erhöhen, erfordert jedoch, dass Kunden und Partner Citrix ADC-Bereitstellungen, die auf Cookies basieren, testen.

Hinweis: Chrome 80 wird voraussichtlich am 4. Februar veröffentlicht, obwohl die Änderungen an den Cookies nur in einer begrenzten Phase ab dem 17. Februar erfolgen werden.
https://www.chromium.org/updates/same-site/

Auswirkungen auf den ADC

Mit dem Citrix ADC können 2 Arten von Cookies im Spiel sein:

  • Fall 1: APP-Cookie: Cookie, das vom Backend-Anwendungsserver eingefügt wird.
  • Fall 2: ADC-Cookie: Cookie eingefügt/im Besitz der Citrix ADC-Appliance

Wenn eine Anwendung nach dem Chrome-Update das Einfügen von Citrix ADC- (oder APP-) Cookies durch den Browser in einem standortübergreifenden Kontext erfordert (im Abschnitt «Hintergrund» weiter unten erläutert), wird der Chrome-Browser dies in wenigen Szenarien mit dem Chrome 80-Update nicht tun.

  • Wenn APP-Cookies fehlen, kann dies zu einem Abbruch des Anwendungsflusses führen.
  • Wenn ein ADC-Cookie in der nachfolgenden Anfrage fehlt, würde ADC es als eine neue Benutzeranfrage behandeln, und Persistenz wird nicht berücksichtigt, was zu einer Unterbrechung der Anwendung führt.

Impact auf Gateway und AAA

Für alle VPN- und AAA-Bereitstellungen nur innerhalb eines Iframe mit standortübergreifendem Kontext, die das Einfügen von Citrix Gateway- oder AAA-Cookies durch den Browser erfordern, gibt der Google-Chrome-Browser nach der Aktualisierung keine standortübergreifenden Cookies frei, was sich nur auf diese speziellen Bereitstellungen auswirkt und die Iframe-Komponente der Website nicht lädt.

Alle VPN– und AAA-Bereitstellungen mit demselben Website-Kontext oder ohne Iframes haben keine Auswirkungen und funktionieren nach dem Chrome-Update problemlos.

Hintergrund

Derzeit enthalten typische Browser das Cookie in HTTP-Anfragen in 2 Kontexten.

  • Kontext der gleichen Website: Hier fordert der Benutzer den Browser auf, ihn zu einer bestimmten Domain zu bringen, für die der Browser das Cookie zuvor gespeichert hat.
  • Website-übergreifender Kontext: Hier leitet eine Website eines Dritten den Benutzer zu einer Domäne um, für die der Browser das Cookie gespeichert hat, und der Browser schließt das Cookie bei der Anforderung der Webseite ein.

Im standortübergreifenden Kontext kann es zu CSRF-Angriffen (Cross Site Request Forgery) kommen, die dazu führen können, dass ein Angreifer die Sitzung des Benutzers stiehlt, um unerwünschte Aktionen im Namen des Benutzers durchzuführen. Um dies zu verhindern, empfiehlt RFC6265 bis, ein neues Attribut «SameSite» in das Cookie einzufügen, das dem Browser anzeigt, ob das Cookie für den Cross-Site-Kontext oder nur für den Kontext der gleichen Website verwendet werden kann. Auch wenn eine Anwendung beabsichtigt, im standortübergreifenden Kontext aufgerufen zu werden, kann sie dies nur über eine https-Verbindung tun.

Das SameSite-Attribut kann die folgenden Optionen annehmen.

  • SameSite=Keine; Sicher
    • Zeigt dem Browser an, dass der Cookie nur bei sicheren Verbindungen im standortübergreifenden Kontext verwendet wird.
  • SameSite=Lax
    • Zeigt dem Browser an, dass er das Cookie für Anfragen auf der gleichen Domäne verwenden soll, und dass nur sichere HTTP-Methoden wie die GET-Anfrage das Cookie verwenden können.
  • SameSite=Streng
    • Verwenden Sie das Cookie nur, wenn der Benutzer die Domäne explizit anfordert.

Hinweis: Wenn kein SameSite-Attribut im Cookie vorhanden ist, übernimmt der Chrome-Browser ab Februar 2020 die Funktionalität von SameSite=Lax. Der aktuelle Standardwert der SameSite-Einstellung ist None, was dem Browser die Verwendung von Cookies im Kontext von Drittanbietern ermöglicht.

Lösung

Optionen auf Konfigurationsebene zur Anpassung an diese Änderung werden in den Versionen 13.0, 12.1, 12.0 und 11.1 verfügbar sein, die bis zum 6. März 2020 veröffentlicht werden sollen.

Workaround

Workaround in Chrome

In Chrome 80 gibt es eine Option, die es Ihnen ermöglicht, zum alten Cookie-Verhalten zurückzukehren. Diese wird für mindestens 12 Monate nach der Veröffentlichung von Chrome 80 stabil verfügbar sein.
Weitere Informationen finden Sie unter SameSite Updates.

Workaround Steps for Case: 1 App cookie

Man kann eine antwortbasierte Neuschreibrichtlinie so konfigurieren, dass sie sich den «Set-Cookie»-Header in der vom Backend-Server gesendeten Antwort ansieht und das «SameSite»-Cookie-Attribut anhängt.
Ein Beispiel für eine Rewrite-Richtlinie sieht so aus:

add rewrite action rewrite_http_header replace_all http.RES.full_Header "\"SameSite=None; Secure; path=/\"" -search "regex(re!(path=/\\; SameSite)|(path=/)!)" add rewrite policy append_samesite_cookie "http.RES.HEADER(\"Set-Cookie\").EXISTS" rewrite_http_header

obige Umschreibungsrichtlinien müssen anwendungsspezifische virtuelle Server auf Citrix ADC gebunden werden.

Workaround Steps for Case: 2 ADC cookie (Persistence Use case)

Derzeit gibt es zwei Workarounds, um einen eventuellen Bruch (aufgrund des Chrom-Updates) von Anwendungen mit COOKIEINSERT-Persistenz, die auf LB vserver konfiguriert sind, zu verhindern.

1. Verwenden Sie eine RULE-basierte Persistenz der Antwort

Wenn die Backend-Anwendung ein eindeutiges Cookie für jede der Client-Sitzungen sendet, kann Citrix ADC diesen eindeutigen Cookie-Wert als Schlüssel verwenden und einen RULE-basierten Persistenzeintrag erstellen, der die Backend-Server-Informationen speichert, die dem empfangenen Cookie entsprechen. Wenn die Clientanforderung mit diesem Cookie zurückkommt, verwendet Citrix ADC den Cookie-Wert als Schlüssel und holt den entsprechenden Backend-Server, um die Anforderung weiterzuleiten, wodurch die durch die COOKIEINSERT-Persistenz erreichte Klebrigkeit beibehalten wird. Dieser Ansatz funktioniert nur dann, wenn der Backend-Server für jeden Client in der Antwort ein eindeutiges Cookie-Schlüssel/Wert-Paar sendet.

Unten finden Sie eine Beispielkonfiguration, bei der der Back-End-Server ein Cookie mit dem Schlüssel als SESSIONID sendet. Die SESSIONID in der folgenden Konfiguration muss durch den vom Backend gesendeten eindeutigen Cookie-Schlüssel ersetzt werden.

set lb vserver lbvs -persistenceType RULE -rule "HTTP.REQ.COOKIE.VALUE(\"SESSIONID\")" -resRule "HTTP.RES.SET_COOKIE.COOKIE(\"SESSIONID\").VALUE(0)"

2. Zweistufige Topologie mit einer neuen Citrix ADC-Front, die die bestehenden Citrix ADCs beendet

Der Kunde kann eine zweistufige Topologie mit einer neuen Citrix ADC-Front haben, die den Datenverkehr für den Tier-2-Citrix ADC (bestehender Citrix ADC) beendet. Der erste Citrix ADC der ersten Schicht schreibt die Antwort neu, um das SameSite-Attribut für alle Cookies, die vom Tier-2-Citrix ADC empfangen werden, zu berücksichtigen.
Für das Tier-2-Citrix-ADC sind keine Konfigurationsänderungen erforderlich.

Unten ist eine Beispielkonfiguration für das Tier-1-Citrix-ADC aufgeführt.

enable feature lb rewrite
add lb vserver tier-1-lb <protocol> <IP> <port>
add service tier-2-lb-svc <tier-2-vserver-IP> <tier-2-vserver-protocol> <tier-2-vserver-port>
bind lb vserver tier-1-lb tier-2-lb-svc
add rewrite action rewrite_http_header replace_all http.RES.full_Header "\"SameSite=None; Secure; path=/\"" -search "regex(re!(path=/\\; SameSite)|(path=/)!)"
add rewrite policy append_samesite_cookie "http.RES.HEADER(\"Set-Cookie\").EXISTS" rewrite_http_header
bind lb vserver tier-1-lb -policyname append_samesite_cookie -priority 10 -type RESPONSE

Hinweis: Dies sollte auch dann funktionieren, wenn der Back-End-Server kein eigenes Cookie enthält.

Permanente Fixes für CVE-2019-19781 verfügbar

Permanente Fixes für CVE-2019-19781 verfügbar

Letzte Aktualisierung: Samstag-25.1.2020 – 20:15
Version: 1.0

Permanete Fixes für Citrix ADC verfügbar

Die Fixes sind für alle Citrix ADC/Gateway Virtual Appliances (VPX, und Citrix ADC Service Delivery Appliances (SDX) verfügbar.

Verfügbare Versionen

Seit Freitag ebenfalls verfügbar:

  • Citrix ADC (10.5, 11.1, 12.0, 12.1, and 13.0)
  • Citrix Gateway (10.5, 11.1, 12.0, 12.1, and 13.0)
  • SD-WAN WANOP (10.2.6 and 11.0.3)

Alle Versionen können unter diesem Link heruntergeladen werden:

Schwachstelle in Citrix NetScaler und Citrix Gateway

Schwachstelle in Citrix NetScaler und Citrix Gateway

Letzte Aktualisierung: Samstag-25.1.2020 – 20:15
Version: 1.5

Problembeschreibung

In Citrix Application Delivery Controller (ADC), früher bekannt als NetScaler ADC und Citrix Gateway, wurde eine Schwachstelle entdeckt, die, wenn sie ausgenutzt wird, einem nicht authentifizierten Angreifer die Ausführung von beliebigem Code ermöglichen könnte.
Die Schwachstelle wurde mit der folgenden CVE-Nummer versehen: CVE-2019-19781

Betroffene Systeme

  • Citrix ADC und Citrix Gateway Version 13.0 alle unterstützten Builds
  • Citrix ADC und NetScaler Gateway Version 12.1 alle unterstützten Builds
  • Citrix ADC und NetScaler Gateway Version 12.0 alle unterstützten Builds
  • Citrix ADC und NetScaler Gateway Version 11.1 alle unterstützten Builds
  • Citrix NetScaler ADC und NetScaler Gateway Version 10.5 alle unterstützten Builds

Citrix Patch verfügbar

Citrix hat diese Woche begonnen die Patches für alle verfügbaren Version zu veröffentlichen. Es stehen nun für alle Citrix ADC Versionen, sowie Citrix SD-WAN ein Patch zum download zur Verfügung.

Weiter Informationen entnehmen Sie bitte dem nachfolgenden Artikerl.


Wichtiger Nachtrag!

Bitte kontrollieren Sie ob bei Ihnen folgender Release zum Einsatz kommt:
Citrix ADC 12.1 51.16/51.19
Citrix ADC 12.1 50.31

Bei diesen beiden Versionen funktionieren die hier beschriebene Lösungsansatz NICHT! Bitte aktualisieren Sie auf die aktuelle 12.1 Version. Danach können Sie mit dem Workaround weiterfahren. Bitte beachten Sie, dass auch diese Version noch immer den eigentlichen Fehler beinhaltet.


Ist mein System betroffen?

Die starke Medienpräsenz hat dazu geführt, dass sich die Angriffe potentiell erhöht haben. Da viele Systeme, die bis zum heutigen Tag noch nicht abgesichert wurden, tatsächlich gehackt wurden, besteht dringender Bedarf bei allen Betreibern eines Citrix ADC zu analysieren ob Sie betroffen sind und Gegenmassnahmen einzuleiten.

Ob Ihr ADC angreifbar ist, können Sie mittels eines simplen CURL Befehles feststellen

curl -v https://MeineGatewayURL.company.com/vpn/../vpns/cfg/smb.conf –path-as-is

Ausserdem wurden folgende Test Methoden beschrieben und veröffentlicht:
• https://github.com/projectzeroindia/CVE-2019-19781
• https://github.com/trustedsec/cve-2019-19781/
• https://support.citrix.com/article/CTX267027
• https://www.virustotal.com/gui/file/2052f1e7830e2d86a356a0532d3c2728b88d674a4384727ea7df1d3522a5ed05

Wurden vom Attacker CronTab Jobs hinterlegt?

Überprüfen Sie ob Angreifer auf Ihre  Cron-Jobs“ im BSD Zugriff erhalten haben um Zugriff auch  dann weiterhin zu erhalten nachdem  wenn die Lücke  behoben wurde. Überprüfen Sie Ihre Crontab-Datei:

cat /etc/crontab
crontab -l -u nobody

Finden Sie crontab jobs die unter dem Benutzer “nobody laufen” oder die sich nicht kennen und die dort nicht hingehören  so wurde Ihr System gehackt und Gegenmassnahmen müssen getroffen werden.

Überprüfen Sie Ihre HTTP access logs ob Verdächtige Zugriffe stattgefunden haben:

Mithilfe der folgenden Befehle können Sie Überprüfen ob Ihr System kompromittiert wurde:

gzcat /var/log/httpaccess.log.*.gz | grep vpns | grep xml
gzcat /var/log/httpaccess.log.*.gz | grep “/\.\./”
cat /var/log/httpaccess.log | grep vpns | grep xml
cat /var/log/httpaccess.log | grep “/\.\./”

Sehen Sie verdächtige .xml uploads in den Logs oder sehen Sie Zugriffe die in den URLs /../ enthalten, so wurde Ihr System attackiert und Gegenmassnahmen müssen dringend ergriffen werden.

Überprüfen der Template Dateien:

Die am häufigsten gesehene Attacke kann nachgewiesen werden, indem überprüft wird, ob verdächtige .xml Dateien auf Ihren ADC hochgeladen wurden.

Mit Hilfe der folgenden Befehle können Sie das überprüfen:

ls -lh /var/vpn/bookmark/*.xml
ls -lh /netscaler/portal/templates/*.xml
ls -lh /var/tmp/netscaler/portal/templates

Finden Sie in den Verzeichnissen verdächtige .html, .html.ttc2 oder andere Dateien die dort nicht liegen sollten 
so wurde Ihr System attackiert und Gegenmassnahmen müssen dringend ergriffen werden.

Überprüfen ob Backdoor Skripte  Implementiert wurden:

Backdoor Skripten oder anderen böswilligen Aufgaben können  als Perl- oder Python-Skript Ihr System Infizieren.
So überprüfen Sie, ob aktive Perl- oder Python-Tasks ausgeführt werden:

ps -aux | grep python
ps -aux | grep perl

Überprüfen ob fremde Dienste oder Crypto Miner  Implementiert wurden:

In einigen Fällen wurde versucht Crypto Miner und andere Dienste zu installieren.
Sie können diese identifizieren, indem Sie sich die CPU-intensiven Prozesse ansehen und bewerten:

top -n 10

Sollten Sie andere Prozesse als NSPPE-00, NSPPE-01, NSPPE-002 NSPPE-03, NSPPE-04, NSPPE-05 sehen, die eine hohe CPU-Auslastung aufweisen,
so haben Sie möglicherweise einen Crypto Miner gefunden!

Problembehebung

Die folgenden Konfigurationsänderungen dienen der Abschwächung der oben genannten Schwachstelle.

Standalone System

Führen Sie die folgenden Befehle über die Befehlszeilenschnittstelle der Appliance aus, um eine Responder-Aktion und -Richtlinie zu erstellen:

enable ns feature responder
add responder action respondwith403 respondwith "\"HTTP/1.1 403 Forbidden\r\n\r\n\""
add responder policy ctx267027 "HTTP.REQ.URL.DECODE_USING_TEXT_MODE.CONTAINS(\"/vpns/\") && (!CLIENT.SSLVPN.IS_SSLVPN || HTTP.REQ.URL.DECODE_USING_TEXT_MODE.CONTAINS(\"/../\")) || http.req.header(\"NSC_USER\").Contains(\"/../\") || http.req.header(\"NSC_NONCE\").Contains(\".pl\")" respondwith403
bind responder global ctx267027 1 END -type REQ_OVERRIDE
save config .

Stellen Sie sicher, dass die Änderungen auch für die Management-Schnittstellen gelten. Führen Sie von der Kommandozeilenschnittstelle aus die folgenden Befehle aus.

shell nsapimgr_wr.sh -ys skip_systemaccess_policyeval=0
shell "echo 'nsapimgr_wr.sh -ys skip_systemaccess_policyeval=0' >> /nsconfig/rc.netscaler"
reboot

HA Pair

On Primary:

enable ns feature responder
add responder action respondwith403 respondwith "\"HTTP/1.1 403 Forbidden\r\n\r\n\""
add responder policy ctx267027 "HTTP.REQ.URL.DECODE_USING_TEXT_MODE.CONTAINS(\"/vpns/\") && (!CLIENT.SSLVPN.IS_SSLVPN || HTTP.REQ.URL.DECODE_USING_TEXT_MODE.CONTAINS(\"/../\")) || http.req.header(\"NSC_USER\").Contains(\"/../\") || http.req.header(\"NSC_NONCE\").Contains(\".pl\")" respondwith403
bind responder global ctx267027 1 END -type REQ_OVERRIDE
save config 
shell nsapimgr_wr.sh -ys skip_systemaccess_policyeval=0
shell "echo 'nsapimgr_wr.sh -ys skip_systemaccess_policyeval=0' >> /nsconfig/rc.netscaler"
reboot

Auf dem sekundären System, nachdem das primäre System wieder erreichbar ist:

shell nsapimgr_wr.sh -ys skip_systemaccess_policyeval=0
shell "echo 'nsapimgr_wr.sh -ys skip_systemaccess_policyeval=0' >> /nsconfig/rc.netscaler"
reboot