Konkrete Kritik an CVSS4
Marc Ruef
Im Rahmen verschiedener Sicherheitsüberprüfungen führen wir ebenfalls sogenannte Configuration Reviews durch. Bei diesen wird die Konfiguration einer Komponente auf ihre Sicherheit hin untersucht. Das Prinzip einer solchen Analyse sowie die einhergehenden Schwierigkeiten sollen in diesem Beitrag illustriert werden.
Gehen wir davon aus, dass ein nicht näher bestimmtes Router-Produkt untersucht werden soll. Dieses pflegt Konfigurationseinstellungen auf der Kommandozeile entgegenzunehmen. Beispielsweise wird folgendes Kommando verwendet, um eine Netzwerkschnittstelle zu konfigurieren:
Router> add interface -name=eth0 -state=ENABLED -icmp=ENABLED -mgmtAccess=DISABLED |
In gleicher Weise wird die persistente Konfiguration einer Konfigurationsdatei abgelegt, die auf die gleiche sequentielle Eingabe der unterschiedlichen Einstellungen zurückgreift. Dabei entspricht jede Zeile in der Konfiguration einer einzelnen Eingabe. Eine einzelne Eingabe weist dabei beispielsweise die folgende Struktur auf (die einzelnen Objekte werden zur Vereinfachung der Illustration voneinander getrennt dargestellt):
add interface | -name=eth0 | -state=ENABLED | -icmp=ENABLED | -mgmtAccess=DISABLED |
Solche Konfigurationseinstellungen sind bei verschiedenen Netzwerkprodukten im professionellen Sektor zu sehen. Bei add
handelt es sich um ein Kommando, das verschiedene Argumente erwartet. Durch interface
wird die neue Netzwerkschnittstelle hinzugefügt.
Dabei kommen nun verschiedene Parameter zum Tragen, welche eine Attributisierung des neu hinzuzufügenden Objekts zulassen. So wird mit dem Attribut -name
der Name und mit -state=[ENABLED|DISABLED]
der Status definiert. Zusätzlich wird mit -icmp=[ENABLED|DISABLED]
die Unterstützung von ICMP-Kommunikationen und mit -mgmtAccess=[ENABLED|DISABLED]
die Aktivierung des Zugriffs auf die Management-Schnittstelle spezifiziert.
add
interface
name=<name>
state=[ENABLED|DISABLED]
icmp=[ENABLED|DISABLED]
mgmtAccess=[ENABLED|DISABLED]
Sicherheitstechnisch gesehen ist hierbei die Definition von -icmp
bedenklich. Denn durch das Aktivieren dessen Unterstützung mit dem Wert ENABLED
werden entsprechende protokollabhängige Angriffe möglich. Im Rahmen einer Config Review würde hier also besagte Einstellung beanstandet werden:
add interface | -name=eth0 | -state=ENABLED | -icmp=ENABLED | -mgmtAccess=DISABLED |
Um dieser Schwachstelle zu entgegnen, sollte ICMP deaktiviert werden, indem die Direktive -icmp=DISABLED
zum Tragen kommt.
Viele Administratoren haben die Angewohnheit, in der Konfiguration nur jene Einstellung vorzunehmen, die sie explizit definieren wollen. Alle Einstellungen, die nicht zwingend beeinflusst werden sollen, werden ignoriert. Viele Produkte erfordern aber eine explizite Definition einer Einstellung und verwenden beim Ausbleiben einer solchen die durch den Hersteller vordefinierte Standardeinstellung. Diese sähe in diesem Fall wie folgt aus (der Standard ist durch geschweifte Klammern dargestellt):
add interface | -name=eth0 | -state={ENABLED} | -icmp={ENABLED} | -mgmtAccess={DISABLED} |
Dies bedeutet, dass wenn also eine der Parameter -state
, -icmp
oder -mgmtAccess
nicht definiert ist, die Vorauswahl genutzt wird. In diesem Fall werden damit aber entsprechende Sicherheitsrisiken aufgetan, wenn auf die explizite Deaktivierung von ICMP verzichtet wird. Denn ohne eine Definition wird das Protokoll standardmässig unterstützt. (In diesem Beispiel weist -name
keine Standardeinstellung auf. Die Angabe ist entsprechend nicht optional. Sie hat jedoch keinen Einfluss auf die sicherheitsbezogene Analyse. Wir würden ein Ausbleiben jedoch aus betrieblichen Gründen dokumentieren.)
Standardeinstellungen erschweren Config Reviews entsprechend ungemein. Denn man muss nicht nur um alle möglichen Einstellungen und die definierten Einstellungen wissen, sondern es müssen ebenfalls die abwesenden Einstellungen und ihre Standardwerte bekannt sein. Jenachdem ist es jedoch besonders aufwendig, diese Standardwerte ausfindig zu machen. Sollte der Hersteller keine Dokumentation diesbezüglich vorweisen können, muss durch eine praktische Analyse des Produkts der aktuelle Stand determiniert werden.
Der generische Ablauf einer umfassenden Config Review gestaltet sich entsprechend wie folgt (unabhängig von Produkt und Format der Konfigurationsdateien):
Das Resultat einer Configuration Review eines Routing-Produkts könnte also folgendes Resultat zur Folge haben (Wir versuchen nach Möglichkeiten eine optische Darstellung von Fehleinstellungen bereitzustellen):
Interface | State | ICMP | mgmtAccess |
---|---|---|---|
eth0 | ENABLED | DISABLED | DISABLED |
eth1 | ENABLED | ENABLED | ENABLED |
eth2 | DISABLED | - | - |
eth3 | DISABLED | - | - |
Oftmals umfassen die zu untersuchenden Konfigurationsdateien mehrere hundert Zeilen mit einer Vielzahl an Anweisungen und expliziten bzw. impliziten Argumenten. Diese zu analysieren ist sodann mit einem sehr hohen Aufwand verbunden. Um die Effizienz sowie die Genauigkeit der Untersuchung zu verbessern, verwenden wir je nach Möglichkeit auf die zu untersuchenden Produkte zugeschnittene Parser (z.B. Cisco IOS/PIX/ASA, Nortel Alteon OS, Citrix Netscaler, etc.). Diese analysieren die Anweisungen und helfen entsprechend bei der Umsetzung der Schritte 2.1 bis 2.3.
Sicherheitsrelevante bzw. sicherheitskritische Objekte werden sodann gemeldet und einer manuellen Untersuchung durch den Fachspezialisten unterzogen. Dadurch kann einerseits eine hohe Verarbeitungsgeschwindigkeit (durch Automatisierung) aber auch eine umfassende Genauigkeit (durch manuelle Nachprüfung) gewährleistet werden.
Unsere Spezialisten kontaktieren Sie gern!
Marc Ruef
Marc Ruef
Marc Ruef
Marc Ruef
Unsere Spezialisten kontaktieren Sie gern!