Zuletzt überarbeitet am 27.1.2020
Für technisch weniger versierte:
English Version:
Was passiert ist:
Citrix Systems hat am 17.12.2019 eine Warnmeldung bezüglich der Sicherheitslücke CVE-2019-19781
in allen Citrix ADC- und Gateway-Plattformen veröffentlicht. Die Sicherheitslücke wurde mittlerweile über Medien und Fernsehen verbreitet.
Am Freitag den 10.1.2020 wurden mehrere funktionierende Exploits veröffentlicht. Seit deren Veröffentlichung hat die Anzahl an registrierten Attacken dramatisch zugenommen.
Die meisten dieser Attacken werden mit Tools durchgeführt denen es zwar gelingt Dateien auf den ADC hochzuladen, die aber ansonsten keinen Schaden anrichten.
Auch wenn die meisten der Attacken die seit Veröffentlichung der Sicherheitslücke auftreten keinen relevanten Schaden anrichten:
Die Sicherheitslücke besteht schon seit geraumer Zeit und es müssen unbedingt alle Citrix ADC überprüft werden um den entstandenen Schaden zu erheben, zu analysieren und die richtigen Schritte einzuleiten.
Betroffen von der Sicherheitslücke sind nur Virtuelle IP Adressen auf denen eine Authentifizierung über zum Beispiel SAML oder Form Based Authentication (Logon Seite) stattfinden.
Klassische „Load Balancing“ und „Reverse Proxy VIP`s“ ohne Authentifizierung sind NICHT betroffen.
Nur wenige Stunden später stieg die Anzahl an Attacken gegen ADC`s dramatisch an.
Welche Citrix ADC Versionen sind betroffen?
Die Sicherheitslücke betrifft alle unterstützten Produktversionen und alle unterstützten Plattformen:
• Citrix ADC und Citrix Gateway Version 13.0/ Sicherheits Update verfügbar!
• Citrix ADC und NetScaler Gateway Version 12.1/ Sicherheits Update verfügbar!
• Citrix ADC und NetScaler Gateway Version 12.0 / Sicherheits Update verfügbar!
• Citrix ADC und NetScaler Gateway Version 11.1/ Sicherheits Update verfügbar!
• Citrix ADC und NetScaler Gateway Version 10.5/ Sicherheits Update verfügbar!
Simple Test Methoden – ist mein Citrix ADC Angreifbar?
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 über Sicherheitslücke CVE-2019-19781 angreifbar ist, können Sie mittels eines simplen CURL Befehles feststellen (mein Testament ADC als Beispiel):
curl -v https://unigate.geldner.co.at/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
Auf jeden Fall sollten auch Systeme mit den vorhandenen Gegenmassnahmen gegen Sicherheitslücke CVE-2019-19781 einer eingehenden Überprüfung unterzogen werden.
Da die Schwachstelle schon seit längerem bekannt ist könnte die Umgebung schon vor längerer Zeit Kompromittiert worden sein.
Wurde mein System bereits angegriffen?
Citrix hat gemeinsam mit FireEye ein Python Script veröffentlicht mit dessen Hilfe automatisiert getestet werden kann ob ein ADC eventuell angegriffen worden sein könnte.
Wie das Tool funktioniert und wo es heruntergeladen werden kann finden Sie hier.
Detaillierte Test Methoden – wurde mein System bereits angegriffen?
Achtung: Sollte keine der hier Beschriebenen Überprüfungen ein positives Ergebnis liefern, so ist das ein gutes Zeichen aber KEINE GARANTIE das Ihr System nichterfolgreich angegriffen wurde
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.
Achtung: Der httpd dienst läuft unter dem user „nobody“
Überprüfen Sie Ihre HTTP access logs ob Verdächtige Zugriffe stattgefunden haben:
Mit hilfe der folgenden Befehle können Sie Überprüfen ob Ihr System mittels Sicherheitslücke CVE-2019-19781 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 nach Sicherheitslücke CVE-2019-19781 kann nachgewiesen werden indem Überprüft wird ob verdächtige .xml Dateien auf Ihren ADC hochgeladen wurden.
Sie können das mit Hilfe der folgenden Befehle ü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
Sehen Sie mehr als die „grep“ -Befehle selber, dann überprüfen Sie diese laufenden Skripte ob diese dort auch laufen sollten
Achtung:
Möglicherweise können auch mehrere systemeigene Citrix ADC-Aufgaben angezeigt werden.
Einige dieser Scripten werden nach Zeitplan ausgeführt.
Führen Sie die Abfrage einige Sekunden später noch einmal aus.
Laufen fremde Scripte. so wurde Ihr System attackiert/infiziert und Gegenmassnahmen müssen dringend ergriffen werden.
Ü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!
Was tun wenn der Verdacht einer Kompromittierung besteht?
Im Idealfall Kontaktieren Sie den Citrix ADC Experten Ihres Vertrauens um zu Überprüfen was passiert ist und um aus Sicherheitslücke CVE-2019-19781 Schäden zu beheben.
Sollten Sie den Verdacht haben, dass Ihre Infrastruktur kompromittiert wurde, sollten auf jeden Fall Maßnamen ergriffen werden.
Die möglichen zu ergreifenden Massnahmen können aus heutiger Sicht in 3 Stufen unterteilt werden:
- Stufe 1; Kann ich betroffen sein?
- Verwende ich AAA auf Citrix ADC Gateway oder über das AAA Modul? Falls nicht kann ich nicht betroffen sein.
- Sorgen Sie mittels der in diesem Artikels publizierten „Simple Test Methoden “ und „Simple Bereinigungs Methoden“ das Angreifer keinen weiteren Zugriff auf Ihre ADC`s mittels der bekannten Attacke oder über implementierten Schadcode erhalten können.
- Stufe 2; Ich bin mir nicht sicher oden bin Betroffen! Schritte die auf jeden Fall gegangen werden sollten:
- Schliessen Sie die Sicherheitslücke Wie das geht wir hier unter „Workaround um die Sicherheitslücke zu schliessen“ beschrieben
- Entfernen Sie jede Art Fremd Code der auf dem ADC hinterlegt wurde. Erste Hinweise finden Sie hier unter „Simple Test und Bereinigungs Methoden“
- Verhindern Sie auf Ihrer Firewall das Ihr ADC von sich aus (NSIP, SNIP..) ins Internet zugreifen kann.
- Überprüfen Sie ob die ns.conf verändert wurde. Falls ja, stellen sie ein sauberes Backup wieder her oder entfernen Sie unerwünschte Einträge in der ns.conf
- Rebooten Sie Ihre ADC`s. Dadurch wird die Ramdisk in der ADC läuft neu und sauber aufgebaut.
- Vor dem Reboot überprüfen Sie die rc.netscaler und den Crontab auf Schad-Code und entfernen diesen.
- Es besteht das Risiko das Ihre SSL Zertifikate kompromittiert wurden. Lassen Sie alle Zertifikate mit „neuen privaten Schlüsseldateien“ neu ausstellen und am ADC austauschen. Lassen sie alle alten Zertifikate revokieren damit diese nicht missbraucht werden können.
- We besteht ein Risiko das alle am ADC hinterlegten Kennwörter kompromittiert worden sind. Tauschen Sie alle hinterlegten Kennworte aus.
- Stufe 3; Ich bin mir nicht sicher oden bin Betroffen bin! Weitere Schritte um ganz sicher zu gehen:
- In bestimmten Fällen kann ein temporäres deaktivieren der betroffenen VIP
s, oder aller IP
`s notwendig sein bis alle Gefahren beseitigt wurden - In bestimmen Fällen kann eine Neuinstallation der ADC`s hilfreich sein oder muss durchgeführt werden
- In manchen Umgebungen in denen Sicherheit ein sehr kritisches Thema ist kann es notwendig sein die Festplatten der ADC`s auszutauschen oder die gesamte Hardware auszutauschen.
Bitte wenden Sie sich hierzu an Citrix Support.
- In bestimmten Fällen kann ein temporäres deaktivieren der betroffenen VIP
Wann wird die Sicherheitslücke behoben sein?
Citrix hat bezüglich der Sicherheitslücke CVE-2019-19781 Firmware Versionen released die die Sicherheitslücke schliessen.
Diese können auf der Citrix Download Webseite heruntergeladen und installiert werden.
Gerne helfen wir bei Analyse, Einschätzung und Behebung.
Workaround um die Sicherheitslücke zu schliessen:
Sie können noch nicht aktualisieren?
Mit Hilfe dieser Responder Policy (Das Feature muss am ADC verfügbar und aktiviert sein) kann die Sicherheitslücke CVE-2019-19781 temporär geschlossen werden.
Sollte Ihr System bereits vorher Kompromittiert worden sein ist es wichtig das System zu bereinigen.
Mit Hilfe dieser Responder Policy wird die Lücke auf Ebene AAA und ADC Gateway geschlossen:
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(\“/../\“))“ respondwith403
add responder policy ctx267027_a „http.REQ.HEADER(\“NSC_USER\“).CONTAINS(\“/../\“)||http.REQ.HEADER(\“NSC_NONCE\“).CONTAINS(\“.pl\“)“ respondwith403
bind responder global ctx267027 1 END -type REQ_OVERRIDE
bind responder global ctx267027_a 2 END -type REQ_OVERRIDE
save config
Achtung:
Citrix ADC Release 12.1 wird vor 51.16 erstellt. Es liegt ein Fehler vor, der sich auf die an virtuelle VPN-Server gebundenen Responder- und Umschreibungsrichtlinien auswirkt.
Dieser Fehler führt dazu, dass ADC die Pakete, die den Richtlinienregeln entsprachen, nicht verarbeitet.
Wes empfiehlt dringend, ein Update auf die neueste Version 12.1 durchzuführen, damit die Schritte zur Schadensbegrenzung wirksam werden.
Mit Hilfe dieser Shell Kommandos wird die Lücke auf Management GUI geschlossen:
shell nsapimgr_wr.sh -ys skip_systemaccess_policyeval=0
shell „echo ’nsapimgr_wr.sh -ys skip_systemaccess_policyeval=0′ >> /nsconfig/rc.netscaler“
reboot
Gerne unterstütze ich Sie bei der weiteren Analyse und Fehlerbehebung.