19 Architektur¶
19.1 GOS-Architektur¶
Das Greenbone Operating System (GOS) ist das Betriebssystem der Greenbone Enterprise Appliance. Hier ist eine Architekturübersicht für GOS 22.04.
Die GOS-Steuerungsebene ermöglicht den Zugriff auf die Administration des Greenbone Operating Systems (GOS). Nur ein einziger Systemadministrator wird unterstützt. Der Systemadministrator kann Systemdateien nicht direkt verändern, aber das System anweisen, Konfigurationen zu ändern.
GOS wird über eine menübasierte, grafische Oberfläche (GOS-Administrationsmenü) verwaltet. Der Systemadministrator muss nicht zwingend die Befehlszeile (Shell) für Konfigurations- oder Wartungsaufgaben nutzen. Zugriff auf die Shell ist nur für den Support und für die Problemlösung vorgesehen.
Für den Zugriff auf die Systemebene wird entweder ein Konsolenzugriff (seriell, Hypervisor oder Monitor/Tastatur) oder eine SSH-Verbindung benötigt.
Mit GOS können Nutzer alle Dienste der Greenbone Community Edition konfigurieren, starten und stoppen.
Greenbone Community Edition
Die Greenbone Community Edition besteht aus einem Framework mit verschiedenen Diensten. Sie wird als Teil der Greenbone-Enterprise-Produkte entwickelt.
Die Greenbone Community Edition wurde ursprünglich als Community-Projekt mit dem Namen „OpenVAS“ entwickelt und hauptsächlich von Greenbone weiterentwickelt. Sie besteht aus dem Greenbone Vulnerability Management Daemon (gvmd), dem Greenbone Security Assistant (GSA) mit dem Greenbone Security Assistant Daemon (gsad) und der ausführbaren Scan-Anwendung, die Schwachstellentests (VT) gegen Zielsysteme ausführt.
Die Greenbone Community Edition wird unter Open-Source-Lizenzen veröffentlicht. Mit ihrer Hilfe können Linux-Distributionen die Softwarekomponenten in Form von Installationspaketen erstellen und bereitstellen.
Greenbone Vulnerability Management Daemon (gvmd)
Der Greenbone Vulnerability Management Daemon (gvmd) – auch Greenbone Vulnerability Manager genannt – ist der zentrale Dienst, der einfache Schwachstellenscans zu einer vollständigen Schwachstellenmanagement-Lösung zusammenführt. gvmd steuert den OpenVAS-Scanner über das Open Scanner Protocol (OSP). Es ist XML-basiert, zustandslos und benötigt keine dauerhafte Kommunikationsverbindung.
Der Dienst selbst stellt das XML-basierte Greenbone Management Protocol (GMP) (siehe Kapitel 15) zur Verfügung. gvmd steuert außerdem eine SQL-Datenbank (PostgreSQL), in der alle Konfigurations- und Scanergebnisdaten zentral gespeichert werden. Darüber hinaus übernimmt gvmd auch die Benutzerverwaltung inklusive der Berechtigungssteuerung mit Gruppen und Rollen. Außerdem verfügt der Dienst über ein internes Laufzeitsystem für geplante Aufgaben und andere Ereignisse.
Greenbone Security Assistant (GSA)
Der Greenbone Security Assistant (GSA) ist die Web-Oberfläche, mit der ein Nutzer Scans steuert und auf Schwachstelleninformationen zugreift. Es ist der Hauptkontaktpunkt für einen Nutzer mit der Appliance. Er verbindet sich über den Webserver Greenbone Security Assistant Daemon (gsad) mit gvmd, um eine voll funktionsfähige Webanwendung für das Schwachstellenmanagement bereitzustellen. Die Kommunikation erfolgt über das Greenbone Management Protocol (GMP), mit dem der Nutzer auch direkt über verschiedene Tools kommunizieren kann.
OpenVAS Scanner
Der Hauptscanner OpenVAS-Scanner ist eine voll funktionsfähige Scan-Maschine, die Schwachstellentests (VTs) gegen Zielsysteme ausführt. Dazu nutzt er die täglich aktualisierten und umfangreichen Feeds: den vollumfänglichen, ausführlichen, kommerziellen Greenbone Enterprise Feed oder den frei verfügbaren Greenbone Community Feed.
Der Scanner besteht aus den Komponenten ospd-openvas und openvas-scanner. Der OpenVAS-Scanner wird über OSP gesteuert. Der OSP-Daemon für den OpenVAS-Scanner (ospd-openvas) kommuniziert über OSP mit gvmd: VT-Daten werden gesammelt, Scans werden gestartet und gestoppt und Scan-Ergebnisse werden über ospd an gvmd übertragen.
Notus-Scanner
Der Notus-Scanner scannt bei jedem regulären Scanvorgang, sodass keine Nutzerinteraktion erforderlich ist. Er bietet eine bessere Leistung, da er weniger Systemressourcen verbraucht und somit schneller scannt.
Der Notus-Scanner ersetzt die Logik potenziell aller NASL-basierten lokalen Sicherheitskontrollen (engl. local security checks, LSCs). Statt für jeden LSC ein VT-Skript auszuführen, wird ein Vergleich der auf einem Host installierten Software mit einer Liste bekannter anfälliger Software durchgeführt.
Der reguläre OpenVAS-Scanner lädt jeden NASL-LSC einzeln und führt ihn nacheinander für jeden Host aus. Eine einzelne bekannte Schwachstelle wird dann mit der installierten Software verglichen. Dies wird für alle LSCs wiederholt.
Mit dem Notus-Scanner wird die Liste der installierten Software auf die gleiche Weise geladen, aber direkt mit der gesamten bekannten anfälligen Software für das Betriebssystem des gescannten Hosts verglichen. Dadurch entfällt die Notwendigkeit, die LSCs auszuführen, da die Informationen über die bekannte anfällige Software in einer einzigen Liste gesammelt und nicht in einzelnen NASL-Skripten verteilt werden.
GMP Clients
Die Greenbone Vulnerability Management Tools (gvm-tools) sind eine Sammlung von Werkzeugen, die bei der Fernsteuerung einer Greenbone Enterprise Appliance und des zugrundeliegenden Greenbone Vulnerability Management Daemons (gvmd) helfen. Die Tools helfen beim Zugriff auf die Kommunikationsprotokolle GMP (Greenbone Management Protocol) und OSP (Open Scanner Protocol).
Dieses Modul besteht aus interaktiven und nicht interaktiven Clients. Die Programmiersprache Python wird direkt für die interaktive Skripterstellung unterstützt. Es ist aber auch möglich, Remote-GMP-/Remote-OSP-Befehle ohne Programmierung in Python zu erteilen.
19.2 Protokolle¶
Es gibt obligatorische und optionale Protokolle. Einige Protokolle werden nur in bestimmten Setups genutzt.
Die Appliance benötigt einige Protokolle um voll funktionsfähig zu sein. Diese Protokolle stellen Feed-Updates, die Domain-Name-System-Auflösung (DNS-Auflösung), die Zeit etc. bereit.
19.2.1 Appliance als Client¶
Die folgenden Protokolle werden von eigenständigen Systemen oder einer Master-Appliance genutzt, um Verbindungen als Client zu initiieren:
DNS – Namensauflösung
Verbindet zu 53/UDP und 53/TCP
Obligatorisch
Nicht verschlüsselt
Kann interne DNS-Server nutzen
NTP – Zeitsynchronisierung
Verbindet zu 123/UDP
Optional
Nicht verschlüsselt
Kann interne NTP-Server nutzen
Feeds (siehe unten)
Direkt
Verbindet zu 24/TCP oder 443/TCP, kann im GOS-Administrationsmenü gewählt werden
Direkter Internetzugang erforderlich
Über Proxy
Verbindet zu internem HTTP-Proxy, der CONNECT-Methode auf konfigurierbarem Port unterstützt
Verbindet zu feed.greenbone.net
Obligatorisch auf eigenständigen und Master-Appliances
Genutztes Protokoll ist SSH
Verschlüsselt und in beide Richtungen authentifiziert über SSH
Server: öffentlicher Schlüssel
Client: öffentlicher Schlüssel
DHCP
Verbindet zu 67/UDP und 68/UDP
Optional
Nicht verschlüsselt
Airgap FTP
Port kann im GOS-Administrationsmenü individuell festgelegt werden
Verbindet standardmäßig zu 20/TCP und 21/TCP
Optional
Nicht verschlüsselt
LDAPS – Benutzerauthentifizierung
Port kann über die Web-Oberfläche individuell festgelegt werden
Verbindet standardmäßig zu 636/TCP
Optional
Verschlüsselt und authentifiziert über SSL/TLS
Server: Zertifikat
Client: Benutzername/Passwort
Syslog – Remote-Protokollierung und -Benachrichtigungen
Port kann im GOS-Administrationsmenü individuell festgelegt werden
Verbindet standardmäßig zu 512/UDP oder 512/TCP
Optional
Nicht verschlüsselt
SNMP-Traps für Benachrichtigungen
Verbindet zu 162/UDP
Optional
Nur SNMPv1
Nicht verschlüsselt
SMTP(S) für E-Mail-Benachrichtigungen
Port kann im GOS-Administrationsmenü individuell festgelegt werden
Verbindet standardmäßig zu 465/TCP für SMTPS, zu 25/TCP für SMTP, verbindet alternativ zu 587/TCP
Optional
SMTPS kann erzwungen werden, damit es immer verwendet wird
Verschlüsselt über STARTTLS, falls SMTPS nicht erzwungen wird
Nicht verschlüsselt, falls Verschlüsselung über STARTTLS nicht möglich ist
SFTP für Backups
Port kann im GOS-Administrationsmenü individuell festgelegt werden
Verbindet standardmäßig zu 22/TCP
Optional
Verschlüsselt und in beide Richtungen authentifiziert über SSH
Server: öffentlicher Schlüssel
Client: öffentlicher Schlüssel
Cisco Firepower (Sourcefire) für IPS-Integration
Port kann über die Web-Oberfläche individuell festgelegt werden
Verbindet standardmäßig zu 8307/TCP
Optional
Verschlüsselt und in beide Richtungen authentifiziert über SSL/TLS
Server: Zertifikat
Client: Zertifikat
verinice.PRO
Verbindet zu 443/TCP
Optional
Verschlüsselt über SSL/TLS
Server: optional über Zertifikat
Client: Benutzername/Passwort
TippingPoint SMS
Verbindet zu 443/TCP
Optional
Verschlüsselt über SSL/TLS
Server: Zertifikat
Client: Zertifikat, Benutzername/Passwort
19.2.2 Appliance als Server¶
Die folgenden Verbindungen werden von einer Appliance, die als Server agiert, genutzt:
HTTPS – Web-Oberfläche
443/TCP
Obligatorisch auf eigenständigen und Master-Appliances
Verschlüsselt und authentifiziert über SSL/TLS
Server: optional über Zertifikat
Client: Benutzername/Passwort
SSH – CLI-Zugang und GMP
22/TCP
Optional
Verschlüsselt und authentifiziert über SSH
Server: öffentlicher Schlüssel
Client: Benutzername/Passwort
SNMP
161/UDP
Optional
Optional verschlüsselt, falls SNMPv3 genutzt wird
19.2.3 Master-Sensor-Setup¶
In einem Master-Sensor-Setup gelten die folgenden zusätzlichen Anforderungen. Der Master (Server) veranlasst bis zu drei zusätzliche Verbindungen zum Sensor (Client):
SSH für GOS-Upgrades, Feed-Updates, GMP und OSP
Verbindung standardmäßig über 22/TCP
Alternativ Verbindung über 9390/TCP für Abwärtskompatibilität
Obligatorisch
Verschlüsselt und in beide Richtungen authentifiziert über SSH
Server: öffentlicher Schlüssel
Client: öffentlicher Schlüssel
19.3 Hinweise zur Nutzung eines Sicherheitsgateways¶
Viele Unternehmen setzen Sicherheitsgateways ein, um den Internetzugang zu beschränken. Diese Sicherheitsgateways können als Paketfilter oder Gateways auf der Anwendungsebene wirken.
Einige Produkte unterstützen tiefgreifende Untersuchungen und versuchen das tatsächlich in den Kommunikationskanälen genutzte Protokoll zu bestimmen. Sie versuchen möglicherweise sogar, jede verschlüsselte Kommunikation zu entschlüsseln und zu analysieren.
19.3.1 Eigenständige oder Master-Appliance¶
Während viele Kommunikationsprotokolle, die die Appliance unterstützt, nur intern verwendet werden, benötigen manche Protokolle Zugang zum Internet. Diese Protokolle können möglicherweise durch solche Sicherheitsgateways gefiltert werden.
Beim Einsetzen einer Appliance als eigenständige Appliance oder als Master, muss die Appliance in der Lage sein, auf den Greenbone Enterprise Feed zuzugreifen. Der Greenbone Enterprise Feed kann direkt über die Ports 24/TCP oder 443/TCP oder durch Nutzung eines Proxys erreicht werden.
Bemerkung
In allen Fällen ist das genutzte Protokoll SSH, auch wenn der Port 443/TCP oder ein HTTP-Proxy genutzt wird.
Eine Deep-Inspection-Firewall könnte die Nutzung des SSH-Protokolls auf Port 443/TCP entdecken und den Verkehrt abbrechen oder blockieren.
Falls das Sicherheitsgateway versucht, den Verkehr mithilfe von Man-in-the-Middle-Techniken zu entschlüsseln, fällt die Kommunikation zwischen der Appliance und dem Feedserver aus. Das SSH-Protokoll, das eine doppeltgerichtete Authentifizierung basierend auf öffentlichen Schlüsseln nutzt, verhindert jeden Man-in-the-Middle-Angriff, indem es die Kommunikation beendet.
Zusätzliche Protokolle, die Internetzugang benötigen, sind DNS und NTP. Sowohl DNS als auch NTP können für die Nutzung von internen DNS- und NTP-Servern konfiguriert werden.
19.3.2 Sensor-Appliance¶
Falls Sicherheitsgateways zwischen dem Master und dem Sensor eingesetzt werden, muss das Sicherheitsgateway SSH-Verbindungen (22/TCP) vom Master zum Sensor erlauben.