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.

_images/GOS_architecture-de.png

Abb. 19.1 GOS-22.04-Architektur

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

_images/appliance_acting_as_client-de.png

Abb. 19.2 Appliance handelt 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

_images/appliance_acting_as_a_server-de.png

Abb. 19.3 Appliance handelt 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

_images/Master_Sensor_Communication-de.png

Abb. 19.4 Appliance-Master und -Sensor

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.