Juli 2023
Autor:in des Beitrags
Kevin
Senior Consultant
Veröffentlicht am
19.07.2023 von Kevin
Jetzt Blogbeitrag teilen
Xing LinkedIn Facebook Twitter
CVE-2023-3519, CVE-2023-3466, CVE-2023-3467

Kritische Schwachstellen in Citrix NetScaler ADC und Gateway

Citrix warnt seine Kunden vor den kritischen Sicherheitslücken CVE-2023-3519, CVE-2023-3466, CVE-2023-3467 in den Produkten NetScaler ADC und NetScaler Gateway (CTX561482).

Folgende Versionen sind betroffen:

  • NetScaler ADC und NetScaler Gateway 13.1 vor 13.1-49.13
  • NetScaler ADC und NetScaler Gateway 13.0 vor 13.0-91.13
  • NetScaler ADC 13.1-FIPS vor 13.1-37.159
  • NetScaler ADC 12.1-FIPS vor 12.1-65.36
  • NetScaler ADC 12.1-NDcPP vor 12.65.36
Hierzu gibt es von Citrix bereits eine Sicherheitsmeldung:

Sicherheitslücken wurden bereits von Angreifern missbraucht

Eine der Schwachstellen soll von Angreifern ausgenutzt worden sein, um ohne vorherige Anmeldung auf anfälligen Systemen schadhaften Code auszuführen. Dafür muss die jeweilige Appliance als Gateway (virtueller VPN-Server, ICA-Proxy, CVPN, RDP-Proxy) oder als virtueller Authentifizierungsserver (AAA-Server) konfiguriert sein. Eine weitere Sicherheitslücke erlaubt die Ausführung von Cross-Site-Scripting, sofern eine Person aus dem Zielsystem auf einen manipulierten Link klickt. Außerdem können angemeldete Nutzer, die Zugriff auf das Management-Interface von NSIP oder SNIP haben, ihre Rechte auf root respektive Administrator ausweiten.

Hierfür ist jedoch ein authentifizierter Zugang erforderlich.

Installation von Sicherheitsupdates dringend notwendig

Administratoren sollten deshalb schnellstmöglich ihr Security Bulletin überprüfen und die für die beiden Produkte bereitgestellten Sicherheitsupdates einspielen.
Citrix weist außerdem darauf hin, dass NetScaler ADC und Gateway 12.1. am End-of-Life angekommen sind und empfiehlt deshalb, ein Upgrade auf Appliances der noch unterstützten Versionen vorzunehmen.

Validierung von Sicherheitslücken

Es gibt von Citrix bislang keine Aussagen darüber, wie festgestellt werden kann, ob die Sicherheitslücke bereits ausgenutzt wurde.

Wir haben auf Basis unseres Verständnisses für NetScaler und die aktuelle Sicherheitslücke sowie verschiedenen Quellen im Internet mögliche Angriffspunkte des NetScalers identifiziert und ein Skript generiert, welches mögliche Manipulationen erkennt.

Disclaimer: Es handelt sich hierbei nicht um eine offizielle Lösung von Citrix. Daher können wir nicht vollständig ausschließen, dass die Sicherheitlücke dennoch ausgenutzt wurde.

Die folgende Anleitung erklärt das Verwenden des Skripts, das auf dem NetScaler auszuführen ist.

Einrichtung

Schritt 1: Auf dem NetScaler via SCP Tool (z.B. WinSCP) anmelden
Starte das SCP Tool (z.B. WinSCP) auf deinem Computer.

  • Gib die IP-Adresse oder den Hostnamen des NetScaler-Geräts ein.
    Wähle das Protokoll “SCP” (Secure Copy Protocol) aus.
  • Gib deine Anmeldeinformationen (Benutzername und Passwort) für den NetScaler ein.
  • Klicke auf “Verbinden”, um eine Verbindung zum NetScaler herzustellen

Schritt 2: In den Ordner “/tmp” wechseln

  • Nachdem die Verbindung hergestellt wurde, siehst du auf der linken Seite des WinSCP-Fensters dein lokales Dateiverzeichnis und auf der rechten Seite die Verzeichnisse des NetScalers.
  • Navigiere auf der rechten Seite zum Verzeichnis “/tmp”, indem du darauf klickst.

Schritt 3: Das passende Script für die NetScaler-Version auswählen und hochladen

  • Entscheide dich basierend auf der Version deines NetScalers, welches Script du hochladen möchtest:
    – Wenn du die NetScaler-Version 13.1 verwendest, lade das Script “cve_13.1.py” hoch.
    – Wenn du die NetScaler-Versionen 12.1 und 13.0 verwendest, lade das Script “cve.py” hoch.
  • Navigiere auf der linken Seite zu dem Verzeichnis, in dem sich das entsprechende Script auf deinem Computer befindet.
  • Markiere die Datei des gewählten Scripts in deinem lokalen Verzeichnis.
  • Ziehe die Datei mit der Maus auf das Verzeichnis “/tmp” auf der rechten Seite des WinSCP-Fensters, um sie auf den NetScaler hochzuladen.

Alternativ:

Schritt 3: Code in die neu erstellte Datei “cve.py” einfügen (falls notwendig)

  • Solltest du eine neue Datei namens “cve.py” angelegt haben, doppelklicke darauf, um sie in einem Texteditor im WinSCP-Fenster zu öffnen.
  • Kopiere den entsprechenden Code für deine NetScaler-Version aus dem entsprechenden Script (entweder “cve_13.1.py” oder “cve.py”).
  • Füge den kopierten Code in den Texteditor ein.
  • Speichere die Datei “cve.py” im Verzeichnis “/tmp” auf dem NetScaler.

Nachdem du diese Schritte durchgeführt hast, sollte das Script “cve.py” (bzw. “cve_13.1.py”) erfolgreich auf dem NetScaler im Verzeichnis “/tmp” vorhanden sein. Beachte, dass dies nur die erste Phase der Installation ist. Je nachdem, was das Script tut, müssen möglicherweise weitere Schritte unternommen werden, um es auszuführen oder zu konfigurieren. Überprüfe dazu die Dokumentation des Scripts oder die Anweisungen des Entwicklers.

Verwendung

Anleitung zum Ausführen des Scripts “cve.py” auf dem NetScaler mittels SSH und der Konsole:

Schritt 1: Über ein SSH Tool (z.B. Putty) mit dem NetScaler verbinden

  • Starte das SSH Tool (z.B. Putty) auf deinem Computer.
    Gib die IP-Adresse oder den Hostnamen des NetScaler-Geräts ein.
  • Wähle das Protokoll “SSH” aus.
  • Klicke auf “Verbinden”, um eine SSH-Verbindung zum NetScaler herzustellen.
  • Gib deine Anmeldeinformationen (Benutzername und Passwort) für den NetScaler ein, wenn du dazu aufgefordert wirst.

Schritt 2: In der Konsole den Befehl “shell” eingeben, um in die Shell zu wechseln

  • Nachdem die SSH-Verbindung erfolgreich hergestellt wurde, siehst du eine Eingabeaufforderung in der Konsole.
  • Gebe den Befehl “shell” ein und drücke die “Enter”-Taste, um in die Shell des NetScalers zu wechseln.
  • Du befindest dich nun in der Betriebssystem-Shell des NetScalers.

Schritt 3: Mit dem Befehl “cd /tmp” in das Verzeichnis “/tmp” wechseln

  • In der NetScaler-Shell navigiere mit dem Befehl “cd /tmp” zum Verzeichnis “/tmp”.
  • Dieses Verzeichnis dient als Zielort, in dem du das Script “cve.py” hochgeladen hast.

Schritt 4: Das Script starten mit dem Befehl “python ./cve.py”

  • Um das Script “cve.py” auszuführen, verwende den Befehl “python ./cve.py” in der Konsole.
  • Drücke die “Enter”-Taste, um das Script zu starten.

Nachdem du den Befehl ausgeführt hast, sollte das Script “cve.py” gestartet werden und seine Aufgabe ausführen. Überprüfe die Ausgabe in der Konsole, um zu sehen, ob das Script wie erwartet funktioniert. Je nachdem, was das Script tut, können weitere Anweisungen oder Interaktionen erforderlich sein. Stelle sicher, dass du die Dokumentation des Scripts oder die Anweisungen des Entwicklers beachtest, um das gewünschte Ergebnis zu erzielen.

NetScaler Version 12.1 und 13.0

# -*- coding: utf-8 -*-

import os
import time
from datetime import datetime
import subprocess
import gzip
import StringIO

cve_analyse_file = “/tmp/cve-analyse.txt”

def check_adc():
print(“Start ADC Check”)
print(“Create Analyse”)
create_analyse()

print(“Get Last Update Conf Backup”)
latest_file, latest_mtime = get_update_date()
formatted_date = time.strftime(“%m/%d/%Y”, time.localtime(latest_mtime))
file_name_content = “Die neueste Datei ist: ” + latest_file
file_date_content = “Das Datum der letzten Aenderung ist: ” + formatted_date
extend_analyse(file_name_content)
extend_analyse(file_date_content)

print(“Check nobody CronJobs”)
try:
crontab_process = subprocess.Popen([“crontab”, “-l”, “-u”, “nobody”], stderr=subprocess.STDOUT, stdout=subprocess.PIPE, stdin=subprocess.PIPE)
crontab_output, _ = crontab_process.communicate()
crontab_output = crontab_output.decode(“utf-8”)
print(crontab_output)
extend_analyse(“CronJobs fuer nobody:”)
extend_analyse(crontab_output)
except subprocess.CalledProcessError as e:
extend_analyse(“Es wurde kein CronJob fuer nobody gefunden”)

print(“Pruefung der bekannten Verzeichnisse (ohne NSGUI)”)
extend_analyse(“Pruefung der bekannten Verzeichnisse (ohne NSGUI)”)
folders_to_check = [“/var/python”, “/var/vpn”, “/var/netscaler/logon/”]
for folder in folders_to_check:
newer_files = check_folder(folder, latest_mtime)
extend_analyse(“Fuer den Ordner ” +folder + ” gefundene Dateien.”)
for file_path in newer_files:
extend_analyse(“Datei Gefunden: ” +file_path + “”)

print(“Pruefung des Datum vom NS_Gui Ordner”)
nsgui_change_date = check_nsgui_folder()
extend_analyse(“Der NS_GUI Ordner wurde zuletzt an folgenden Datum geaendert: ” +nsgui_change_date + “”)

print(“Pruefung der HTTP Error Logs”)
extend_analyse(“Pruefung der HTTP Error Logs”)
loglines = check_http_error_logs()
for line in loglines:
extend_analyse(line)

print(“Pruefung der SH Logs”)
extend_analyse(“Pruefung der SH Logs”)
loglines = check_http_error_logs()
for line in loglines:
extend_analyse(line)

print(“Pruefung der setui”)
extend_analyse(“Pruefung der setui”)
setuid_result = check_setuid(formatted_date)
extend_analyse(setuid_result)

def create_analyse():
with open(cve_analyse_file, “w”) as cve_analyse:
content = “Analyse zum NetScaler CVE-2023-3466, CVE-2023-3467, CVE-2023-3519”
cve_analyse.write(content + “\n\n”)

def extend_analyse(content):
with open(cve_analyse_file, “a”) as cve_analyse:
cve_analyse.write(content + “\n”)

def get_update_date():
folder_path = “/nsconfig”
prefix = “ns.conf.NS”
matching_files = [file for file in os.listdir(folder_path) if file.startswith(prefix)]
if not matching_files:
return None, None

file_with_mtime = [(file, os.path.getmtime(os.path.join(folder_path, file))) for file in matching_files]
file_with_mtime.sort(key=lambda x: x[1], reverse=True)
latest_file = file_with_mtime[0][0]
latest_mtime = file_with_mtime[0][1]
return latest_file, latest_mtime

def check_folder(folder, latest_mtime):
newer_files = []
print(“Checking files in folder: ” +folder + “”)
for root, _, files in os.walk(folder):
for file in files:
file_path = os.path.join(root, file)
file_mtime = os.path.getmtime(file_path)
if file_mtime > latest_mtime:
newer_files.append(file_path)
return newer_files

def check_nsgui_folder():
folder_path = “/netscaler/ns_gui/”
try:
last_mod_time = os.path.getmtime(folder_path)
formatted_date = time.strftime(“%m/%d/%Y %H:%M:%S”, time.localtime(last_mod_time))
except FileNotFoundError:
print(“Folder ‘” +folder_path + “‘ not found.”)
return formatted_date

def check_http_error_logs():
search_directory = ‘/var/log/’
file_patterns = [‘httperror.log’]
line_patterns = [‘.sh’, ‘.php’]
matching_files = search_files_for_patterns(search_directory, file_patterns)
matching_lines = search_lines_in_files(matching_files, line_patterns)
return matching_lines

def check_sh_logs():
search_directory = ‘/var/log/’
file_patterns = [‘sh.log’]
line_patterns = [‘/flash/nsconfig/keys’]
matching_files = search_files_for_patterns(search_directory, file_patterns)
matching_lines = search_lines_in_files(matching_files, line_patterns)
return matching_lines

def search_files_for_patterns(directory, filename_patterns):
matching_files = []
for root, _, files in os.walk(directory):
for file in files:
if all(pattern in file for pattern in filename_patterns):
matching_files.append(os.path.join(root, file))
return matching_files

def open_file(file_path):
if file_path.lower().endswith(‘.gz’):
return gzip.open(file_path, ‘rb’)
else:
return open(file_path, ‘r’)

def search_lines_in_files(files, patterns):
matching_lines = []
for file in files:
try:
with open_file(file) as f:
if isinstance(f, gzip.GzipFile):
gzip_content = f.read()
f_text = StringIO.StringIO(gzip_content)
for line in f_text:
if any(pattern in line for pattern in patterns):
matching_lines.append(line.strip())
else:
for line in f:
if any(pattern in line for pattern in patterns):
matching_lines.append(line.strip())
except IOError:
pass
return matching_lines

def check_setuid(last_update):
search_path = “/netscaler/ns_gui/”
php_files_pattern = “*.php”
update_date_str = last_update

update_date = datetime.strptime(update_date_str, “%m/%d/%Y”).strftime(“%Y-%m-%d”)

command = “find ” +search_path + ” -type f -name ‘” +php_files_pattern + “‘ -newermt ” +update_date + ” -exec ls -l ” +” + + ” + ” \\;”

try:
process = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True)
output, error = process.communicate()

if process.returncode != 0:
print(“Fehler bei der Ausfuehrung des Befehls: ” + error)
return None

setuid_result = output
return setuid_result
except subprocess.CalledProcessError as e:
print(“Fehler bei der Ausfuehrung des Befehls: ” + str(e))
return None

 

if __name__ == ‘__main__’:
check_adc()

NetScaler Version 13.1

# -*- coding: utf-8 -*-

import os
import time
from datetime import datetime
import subprocess
import gzip

cve_analyse_file = “/tmp/cve-analyse.txt”

def check_adc():
print(“Start ADC Check”)
print(“Create Analyse”)
create_analyse()

print(“Get Last Update Conf Backup”)
latest_file, latest_mtime = get_update_date()
formatted_date = time.strftime(“%m/%d/%Y”, time.localtime(latest_mtime))
file_name_content = “Die neueste Datei ist: ” + latest_file
file_date_content = “Das Datum der letzten Aenderung ist: ” + formatted_date
extend_analyse(file_name_content)
extend_analyse(file_date_content)

print(“Check nobody CronJobs”)
try:
crontab_output = subprocess.check_output([“crontab”, “-l”, “-u”, “nobody”], stderr=subprocess.STDOUT, text=True, encoding=”utf-8″)
print(crontab_output)
extend_analyse(“CronJobs fuer nobody:”)
extend_analyse(crontab_output)
except subprocess.CalledProcessError as e:
extend_analyse(“Es wurde kein CronJob fuer nobody gefunden”)

print(“Pruefung der bekannten Verzeichnisse (ohne NSGUI)”)
extend_analyse(“Pruefung der bekannten Verzeichnisse (ohne NSGUI)”)
folders_to_check = [“/var/python”, “/var/vpn”, “/var/netscaler/logon/”]
for folder in folders_to_check:
newer_files = check_folder(folder, latest_mtime)
extend_analyse(f”Fuer den Ordner {folder} gefundene Dateien.”)
for file_path in newer_files:
extend_analyse(f”Datei Gefunden: {file_path}”)

print(“Pruefung des Datum vom NS_Gui Ordner”)
nsgui_change_date = check_nsgui_folder()
extend_analyse(f”Der NS_GUI Ordner wurde zuletzt an folgenden Datum geaendert: {nsgui_change_date}”)

print(“Pruefung der HTTP Error Logs”)
extend_analyse(f”Pruefung der HTTP Error Logs”)
loglines = check_http_error_logs()
for line in loglines:
extend_analyse(line)

print(“Pruefung der SH Logs”)
extend_analyse(f”Pruefung der SH Logs”)
loglines = check_http_error_logs()
for line in loglines:
extend_analyse(line)

print(“Pruefung der setui”)
extend_analyse(f”Pruefung der setui”)
setuid_result = check_setuid(formatted_date)
extend_analyse(setuid_result)

def create_analyse():
with open(cve_analyse_file, “w”) as cve_analyse:
content = “Analyse zum NetScaler CVE-2023-3466, CVE-2023-3467, CVE-2023-3519”
cve_analyse.write(content + “\n\n”)

def extend_analyse(content):
with open(cve_analyse_file, “a”) as cve_analyse:
cve_analyse.write(content + “\n”)

def get_update_date():
folder_path = “/nsconfig”
prefix = “ns.conf.NS”
matching_files = [file for file in os.listdir(folder_path) if file.startswith(prefix)]
if not matching_files:
return None, None

file_with_mtime = [(file, os.path.getmtime(os.path.join(folder_path, file))) for file in matching_files]
file_with_mtime.sort(key=lambda x: x[1], reverse=True)
latest_file = file_with_mtime[0][0]
latest_mtime = file_with_mtime[0][1]
return latest_file, latest_mtime

def check_folder(folder, latest_mtime):
newer_files = []
print(f”Checking files in folder: {folder}”)
for root, _, files in os.walk(folder):
for file in files:
file_path = os.path.join(root, file)
file_mtime = os.path.getmtime(file_path)
if file_mtime > latest_mtime:
newer_files.append(file_path)
return newer_files

def check_nsgui_folder():
folder_path = “/netscaler/ns_gui/”
try:
last_mod_time = os.path.getmtime(folder_path)
formatted_date = time.strftime(“%m/%d/%Y %H:%M:%S”, time.localtime(last_mod_time))
except FileNotFoundError:
print(f”Folder ‘{folder_path}’ not found.”)
return formatted_date

def check_http_error_logs():
search_directory = ‘/var/log/’
file_patterns = [‘httperror.log’]
line_patterns = [‘.sh’, ‘.php’]
matching_files = search_files_for_patterns(search_directory, file_patterns)
matching_lines = search_lines_in_files(matching_files, line_patterns)
return matching_lines

def check_sh_logs():
search_directory = ‘/var/log/’
file_patterns = [‘sh.log’]
line_patterns = [‘/flash/nsconfig/keys’]
matching_files = search_files_for_patterns(search_directory, file_patterns)
matching_lines = search_lines_in_files(matching_files, line_patterns)
return matching_lines

def search_files_for_patterns(directory, filename_patterns):
matching_files = []
for root, _, files in os.walk(directory):
for file in files:
if all(pattern in file for pattern in filename_patterns):
matching_files.append(os.path.join(root, file))
return matching_files

def search_lines_in_files(files, patterns):
matching_lines = []
for file in files:
try:
with gzip.open(file, ‘rt’, encoding=’utf-8′) as f:
for line in f:
if any(pattern in line for pattern in patterns):
matching_lines.append(line.strip())
except OSError:
with open(file, ‘r’, encoding=’utf-8′) as f:
for line in f:
if any(pattern in line for pattern in patterns):
matching_lines.append(line.strip())
return matching_lines

def check_setuid(last_update):
search_path = “/netscaler/ns_gui/”
php_files_pattern = “*.php”
update_date_str = last_update

update_date = datetime.strptime(update_date_str, “%m/%d/%Y”).strftime(“%Y-%m-%d”)
command = f”find {search_path} -type f -name ‘{php_files_pattern}’ -newermt {update_date} -exec ls -l {{}} \\;”

try:
result = subprocess.run(command, shell=True, check=True, capture_output=True, text=True)
output_lines = result.stdout.splitlines()
setuid_result = “\n”.join(output_lines)
return setuid_result
except subprocess.CalledProcessError as e:
print(f”Fehler bei der Ausfuehrung des Befehls: {e}”)
return None

if __name__ == ‘__main__’:
check_adc()

Analyse

Anleitung zur Analyse der Script Findings auf dem NetScaler:

Schritt 1: Erneut via SCP Client (z.B. WinSCP) auf dem NetScaler einloggen

  • Starte das SCP Client (z.B. WinSCP) auf deinem Computer.
  • Gib die IP-Adresse oder den Hostnamen des NetScaler-Geräts ein.
  • Wähle das Protokoll “SCP” (Secure Copy Protocol) aus.
  • Gib deine Anmeldeinformationen (Benutzername und Passwort) für den NetScaler ein.
  • Klicke auf “Verbinden”, um eine Verbindung zum NetScaler herzustellen.

Schritt 2: In den Ordner “/tmp” wechseln

  • Nachdem die Verbindung hergestellt wurde, siehst du auf der linken Seite des WinSCP-Fensters dein lokales Dateiverzeichnis und auf der rechten Seite die Verzeichnisse des NetScalers.
  • Navigiere auf der rechten Seite zum Verzeichnis “/tmp”, indem du darauf klickst.

Schritt 3: Die Datei “cve-analyse.txt” herunterladen

  • Markiere die Datei “cve-analyse.txt” in dem “/tmp”-Verzeichnis auf der rechten Seite des WinSCP-Fensters.
  • Ziehe die Datei mit der Maus auf das lokale Verzeichnis auf der linken Seite des WinSCP-Fensters, um sie herunterzuladen.

Schritt 4: Die Datei “cve-analyse.txt” öffnen und den Inhalt auswerten

  • Öffne die heruntergeladene Datei “cve-analyse.txt” mit einem Texteditor auf deinem Computer.

Inhalte auswerten

a. Check “nobody CronJobs”:
Wenn es Ergebnisse unter diesem Punkt gibt, bedeutet dies, dass der NetScaler möglicherweise kompromittiert wurde. Du solltest sofort Maßnahmen ergreifen, um die Sicherheit wiederherzustellen.

b. Prüfung der bekannten Verzeichnisse (ohne NSGUI):
Hier können diverse Ergebnisse auftauchen, wo der NetScaler gegen sich selber (127.0.0.2) anfragen stellt. Diese sind idr. Unbedenklich. Verdächtige Aktivitäten sollten genauer untersucht werden.

c. Der NS_GUI Ordner wurde zuletzt an folgendem Datum geändert:
Vergleiche dieses Datum mit dem letzten Boot des ADCs. Wenn der letzte Boot früher als diese Änderung erfolgt ist, sollte dies genauer untersucht werden. Es könnte auf unbefugte Änderungen hindeuten.

d. Prüfung der HTTP Error Logs:
Hier können diverse Ergebnisse auftauchen, wo der NetScaler gegen sich selber (127.0.0.2) anfragen stellt. Diese sind in der Regel unbedenklich. Verdächtige Aktivitäten sollten genauer untersucht werden.

e. Prüfung der setuid:
Es werden wahrscheinlich Ergebnisse erscheinen, die mit dem Datum des letzten Bootvorgangs des NetScalers übereinstimmen sollten. Wenn die Ergebnisse nicht mit diesem Datum übereinstimmen, sollte dies genauer geprüft werden, da es auf potenziell verdächtige Aktivitäten hindeuten könnte.

Hinweis: Wenn du unsicher bist oder verdächtige Aktivitäten feststellst, solltest du sofort weitere Schritte unternehmen, um die Sicherheit des NetScalers zu gewährleisten. Es könnte ratsam sein, die Ergebnisse mit einem erfahrenen Sicherheitsexperten zu teilen, um eine detaillierte Analyse und entsprechende Maßnahmen durchzuführen.

Gegenmaßnahmen bei betroffenen Systemen

  • NetScaler-Instanz vom Netzwerk nehmen
  • Änderung der Kennwörter aller auf dem NetScaler gespeicherten LDAP oder anderen AD / Netzwerkkonten
  • Erstellung eines neuen SSL-Zertifikats und einer neuen Key-Datei für alle Client SSL-Dateien auf dem Gerät (Die Schlüssel sind in Dateien auf dem NetScaler gespeichert, die theoretisch vom Angreifer ausgelesen werden könnten)
  • Wenn es eine VPX Appliance ist und Snapshots des Geräts (älter als 3 Monate) vorhanden sind, kann es sich lohnen, diese zuerst wiederherzustellen, aber dies ist KEINE GARANTIE für die Sicherheit
    • Um ganz sicher zu gehen, die Konfigurationsdatei des betroffenen Systems exportieren und in eine neue frische VPX Appliance kopieren / wiederherzustellen
    • Beachtet hierbei das die gleiche Hardware-Adresse genutzt wird, sonst ist die Lizenz ungültig und muss neu angefordert / eingespielt werden
    • Trennt das Netzwerk vor dem Start
    • Startet die Appliance und überprüft über die Konsole, dass der VPX nicht kompromittiert ist
    • Ändert das nsroot-Passwort
    • Nur das interne Netzwerk anschließen
    • Das externe Netzwerk anschließen
    • Behaltet die Protokolle und die Responder Hits im Auge
  • Ersetzt die SSL Zertifikate auf der Appliance zum frühestmöglichen Zeitpunkt
  • Widerruf der kompromittierten SSL-Zertifkate und SSL Keys

Quelle: Checkliste für NetScaler (Citrix ADC) CVE-2023-3519 – Deyda.net

Sie möchteN mehr infos?

Wir sind für SIE da.

Auch für Ihre Herausforderung bieten wir die passende Lösung. Zögern Sie nicht uns zu kontaktieren. Wir unterstützen Sie gerne.

FLORIAN RZYTKI | Head of Sales

+49 89 71040920

florian@provectus.de

Zum Kontaktformular

Das könnte dich auch interessieren

Echt Ich

Echt Ich Matthias

In ECHT ICH erfahrt ihr mehr über Matthias, seinen Arbeitsalltag , seine Hobbys und seine Motivation für einen Job bei Provectus.
Weiterlesen
Blogbeitrag

Passkeys: Die Schlüssel zu einer sichereren und passwortlosen Zukunft

Die Frequenz von Phishing-Attacken steigt immer weiter. Wie sieht also die Authentifizierung der Zukunft aus?
Weiterlesen
Echt Ich

Echt Ich Svenja

In ECHT ICH erfahrt ihr mehr über Svenja, ihren Arbeitsalltag , ihre Rolle im Team und ihre Gründen für einen Job bei Provectus.
Weiterlesen
Blogbeitrag

Entra Private Access – Zero Trust für den hybriden Arbeitsplatz?

Mit Entra Private Access entwickelt Microsoft derzeit die wohl weitsichtigste Lösung für einem Hybriden Arbeitsplatz.
Weiterlesen
Blogbeitrag

Microsoft Copilot

Microsoft läutet mit dem Copiloten eine neue Ära der KI ein. Der Copilot ist mit dem neusten 23H2-Feature-Update für Windows 11 verfügbar und beinhaltet mehr als 150 neue Funktionen.
Weiterlesen
Whitepaper

Lizenzänderungen bei Citrix – Was Sie jetzt wissen müssen

In unserem kostenfreien Whitepaper bringen wir Licht ins Dunkle und erklären Ihnen, was Sie über die aktuelle Situation bei Citrix und die damit einhergehenden Änderungen wissen müssen.
Weiterlesen
Blogbeitrag

Datenschutzkonformer Einsatz von Microsoft 365 bei Sozialdatenträgern

Wir erklären, was Sie beachten sollten, wenn Sie Microsoft 365 als Sozialdatenträger DSGVO-konform einsetzen möchten.
Weiterlesen
Blogbeitrag

Verlängerter Support für Windows Server 2012/R2

Der Support für Windows Server 2012/R2 läuft aus, was bedeutet, dass Microsoft keine Sicherheitsupdates mehr bereitstellt.
Weiterlesen
Blogbeitrag

Verified Credentials

In diesem Beitrag geht es um die Konfiguration der Verified Credentials und die dafür benötigten Azure-Komponenten.
Weiterlesen
Blogbeitrag

Neuer Angemessenheits-beschluss für den Datenverkehr EU-USA

Die EU-Kommission hat einen neuen Angemessenheitsbeschluss für den transatlantischen Datenschutzrahmen EU-USA angenommen,
Weiterlesen
Jetzt Blogbeitrag teilen
Xing LinkedIn Facebook Twitter