Closed-source ist nie und nimmer ein Vorteil Marc Ruef | 12.10.2005 Ein jeder, der sich intensiver für Computersicherheit interessiert, kennt die Software Nessus (http://www.nessus.org). Das ursprünglich von Renaud Deraison ins Leben gerufene Projekt versuchte seit Ende der 90er Jahre einen auf Open-source basierenden Security Scanner zur Verfügung zu stellen. Gerade weil es eine freie und offene Lösung ist, konnte sie ein Höchstmass an Akzeptanz in der Branche erreichen. Ich kenne eigentlich keinen Penetration Tester, der nicht früher oder später auf Nessus zurückgreift. Im Dezember 2004 liess Tenable Network Security (http://www.tenablesecurity.com), ein von Renaud gegründetes Sicherheitsunternehmen, eine kleine Bombe platzen. Von nun an sollten die Plugins, mit denen die einzelnen Sicherheitschecks umgesetzt werden, nicht mehr sofort für jedermann zugänglich sein. Stattdessen werden die hauseigenen Plugins nur noch mit einer Verzögerung von 7 Tagen publiziert. Lediglich bezahlende Kunden können unverzüglich auf die Checks von Tenable zurückgreifen. Eine grundsätzliche Registrierung, will man denn auf das automatisierte Aktualisieren der Plugins nicht verzichten, ist unumgänglich. Man kann diesen Schritt zu einem gewissen Punkt verstehen, muss schliesslich auch Tenable das kapitalistische Spiel umsetzen und früher oder später Geld verdienen. Dass sie dies mit der Erstellung neuer Plugins machen wollen, scheint nicht verwerflich. Wirklich kritisch wurde das Nessus Projekt jedoch, als im Oktober 2005 von Renaud in der Nessus-Mailingliste (http://mail.nessus.org/pipermail/nessus/2005-October/msg00035.html) bekanntgegeben wurde, dass die Version 3.0 des Scanners closed-source sein wird. Damit verliert das Nessus Projekt meines Erachtens einen Grossteil seiner Sympathie. Die zusätzliche fehlende Transparenz, die ich zwingend von einer professionellen Testing-Lösung erwarte, ist ebenfalls verloren. War es denn bei der open-source Variante möglich, etwaige false positives oder Fehler eigenhändig zu ermitteln, gestaltet sich dies bei einer geschlossenen Lösung enorm schwierig. Die beiden US-amerikanischen Autoren Stephen Northcutt und Judy Novak schrieben eben nicht umsonst in ihrem Bestseller "Network Intrusion Detection", dass sich eine gute Lösung durch quelloffene Teile auszeichnet. Nessus hat sich dadurch meines Erachtens einen weiteren Todesstoss versetzt. Das Produkt unterscheidet sich sodann nicht mehr von geschlossenen Produkten wie Symantec NetRecon (http://www.computec.ch/download.php?view.469), ISS Internet Scanner (http://www.computec.ch/download.php?view.468) und GFI LANguard (http://www.computec.ch/download.php?view.470), die für viel Geld bezahlt werden wollen. Es scheint unausweichlich, dass eine neue Lösung Nessus den Rang ablaufen und damit den Thron der Vulnerability Scanner besteigen wird. Dies stimmt mich nur bedingt traurig, denn so muss ich wahrhaftig gestehen, dass ich schon seit längerer Zeit auf Kriegsfuss mit Nessus stand. Grundlegende Designprobleme machten dem Projekt stets zu schaffen und verhinderten eine Weiterentwicklung. Zum Beispiel ist es seit jeher unmöglich, eingefrorene Checks abzubrechen (nur ganze Scan-Zugriffe). Erst mit der 2er Version wurde es wenigstens über die Shell erlaubt, einzelne Plugin-Aufrufe mit dem kill-Kommando abzubrechen. Eine unkomfortable Frickelei die einem da jedes Mal in grösseren Audits begleitete. Das grösste Problem von Nessus ist jedoch seine Plugin-Architektur. Das dedizierte Speichern einzelner Tests in separate Dateien ist keine schlechte Idee, erreicht man mit dieser Modularität sowohl in der Administration als auch der Nutzung ein hohes Mass an Komfortabelität. Jedoch gibt die Nessus Attack Scripting Language (NASL) designmässig nicht viel her. Die Daten werden in den Programmcode verwoben und das explizite Auslesen (und damit auch das Sortieren/Filtern) von einzelnen Checks wird zur Parsing-Mühseligkeit, die selbst den besten Pattern-Matching Profi zur Verzweiflung bringen kann. Ich wünsche Nessus 3.0 viel Erfolg und hoffe, dass Tenable nicht nocheinmal die gleichen Fehler gemacht hat, wie vor einigen Jahren in den ersten Releases der Software. Werden diese ausgemerzt, kann sich das Produkt zur Nummer 1 im kommerziellen Bereich mausern. Andernfalls wird es nur ein unergonomischer und undurchdachter Abklatsch des schwerfälligen ISS Internet Scanner. Zudem hoffe ich wirklich, dass eine neue offene Lösung nachziehen wird, die ebenfalls nicht wieder die gleichen Fehler wie das junge Nessus Projekt dazumals machte. Dedizierte Plugins, bestmöglich in einer Datenbankstruktur verwaltet, explizite Unterteilung zwischen Code und Daten sowie ein besseres Mass an Ergonomie und Transparenz während der Programmausführung. Wer weiss, vielleicht kann ich mit meiner PHP-Portierung des ATK-Projekts (Attack Tool Kit) (http://www.computec.ch/projekte/atk/) eben diese Ziele erreichen. Auf dem Papier sieht alles jedenfalls sehr schön aus...