Problem von OS Fingerprinting Kaskadierung Marc Ruef | 17.02.2014 Im Rahmen von Sicherheitsüberprüfungen wird ist es von zentraler Wichtigkeit zu erkennen, welches Betriebssystem auf einem Zielsystem eingesetzt wird. Die Identifikation dessen wird als OS Fingerprinting bezeichnet. Mitunter bietet beispielsweise Nmap mit dem Paramter -O die Möglichkeit, eine entsprechende Auswertung vorzunehmen. Bei vielen Tests ist zu beobachten, dass fehlerhafte oder gar keine Resultate zusammengetragen werden. Aufgrund dessen wird gerne fälschlicherweise die Möglichkeit und Zuverlässigkeit des OS Fingerprinting in Frage gestellt. Das OS Fingerprinting, wie es heutzutage implementiert ist, basiert auf Pattern Matching. In einer Datenbank werden die Fingerabdrücke der jeweiligen Betriebssysteme festgehalten. Im Falle von Nmap ist dies in der Regel /usr/share/nmap/nmap-os.db. Umso mehr Übereinstimmungen ein Scan aufweist, umso eher kann anhand des Fingerabdrucks das System korrekt erkannt werden. Minime Abweichungen werden dabei unter Umständen vernachlässigt, um kleinere Änderungen am System bzw. dessen Konfiguration auszugleichen. Sind bei einem Scan zu wenige Übereinstimmungen identifiziert worden, kann das System nicht richtig bzw. gar nicht erkannt werden. Das ist natürlich dann der Fall, wenn ein komplett neues und damit in der Fingerprint-Datenbank noch nicht abgebildetes System gescannt wird. In diesem Fall muss natürlich zu erst ein neuer Datensatz für dieses System angelegt werden, um es von nun an erkennen zu können. Doch es kann auch zu Fehlinterpretationen kommen, wenn der richtige Datensatz vorhanden wäre. Und zwar dann, wenn der Fingerprint des Zielsystems durch ein Zwischensystem verändert wird. Dies ist vor allem dann der Fall, wenn das Zielsystem durch ein Firewall-Element (Paketfilter oder Application Gateway) geschützt wird. Die nachfolgende Abbildung zeigt auf, inwiefern ein Paketfilter partiellen Einfluss auf den Fingerprint des Zielsystems haben kann. Hierbei findet eine Kaskadierung des Zielsystems und damit eine (partielle) Überdeckung des Original-Fingerprints statt. Das Resultat einer solchen Überdeckung ist ein sehr ungenauer Fingerprint, bei dem zwei Fingerpints (Zielsystem und Zwischensystem) vermengt werden. Daraus können vier verschiedene Effekte entstehen: * Zielsystem wird mit verminderter Genauigkeit erkannt * Zwischensystem wird (in gewissen Punkten) als Zielsystem erkannt * Übereinstimmung ist zu gering und daher keine Erkennung * Vermengung führt zur falschen Identifikation eines anderen Systems Theoretisch besteht die Möglichkeit der Sondierung der vermengten Fingerprint-Elemente. Vor allem dann, wenn der exakte Fingerprint eines der Systeme bekannt ist, kann durch das Komplement die durch das andere System definierten Fingerprint-Elemente ausgemacht werden. Bisher existieren jedoch noch keine Lösungen, dieses Problem in effizienter und automatisierter Weise anzugehen. Dieses Problem besteht natürlich für alle Arten des Fingerprinting. Namentlich wurde es schon vor rund zwei Jahren im Artikel Erkennen von Kaskadierungen im Fingerprinting (http://www.computec.ch/news.php?item.303) in Bezug auf Application Fingerprinting am Beispiel von HTTP-Fingerprinting aufgegriffen (siehe ebenfalls (http://www.computec.ch/forum_viewtopic.php?5.21278#21284)). Doch nur weil das Problem noch nicht einheitlich gelöst wurde, heisst es nicht, dass Fingerprinting damit generell oder unter den skizzierten Umständen seinen Sinn verliert. Nach wie vor können mittels Fingerprinting eingesetzte Mechanismen erkannt werden. Durch Software-Lösungen kann dies in effizienter und automatisierter Weise geschehen, wobei in vielen Fällen eine manuelle Querprüfung empfohlen wird, um das gewünschte Mass an Genauigkeit erreichen zu können. Fingerprinting-Mechanismen auf Basis von Pattern Matching sind stets deterministisch anzusehen. Dies bedeutet, dass mit genügend Informationen auch immer eine exakte Aussage getroffen werden kann. Im Falle von (kommerziellen) Sicherheitsüberprüfungen bedeutet dies, dass wenn genügend Zeit vorhanden ist, sich auch fehlende oder vage Fingerprint-Identifikationen optimieren lassen. iDieser Beitrag ist ursprünglich in den scip Labs (http://www.scip.ch/?labs) erschienen./i