Moin!
Ich muss einen einfachen Webserver Scanner entwickeln, welcher Webserver (Apache oder IIS) auf Schwachstellen überprüft. Das Programm muss webbasiert laufen und soll im Hintergrund auf eine Datenbank mit bekannten Schwachstellen zurückgreifen können.
Du meinst, du willst "Nessus" neuimplementieren? Da hast du dir ja ganz schön was vorgenommen. Meinst du nicht, es wäre einfacher, einfach an Nessus anzudocken?
Um zum Beispiel die Konfiguration eines Apache Servers auszulesen, müsste ich also Zugriff auf dessen Konfigurationsdatei (httpd.conf) haben. Dies stelle ich mir nicht so einfach vor.
Korrekt. Denn es ist Kern jeder Sicherheitsstrategie, dass Außenstehende auf Konfigurationsdaten keinen Zugriff haben sollen - andernfalls wäre das eine zu bemängelnde Schwachstelle.
Andererseits: Was steht denn interessantes in der Config drin, was man nicht durch Online-Testen des Webservers auch herausfinden kann? Die Versionsnummer beispielsweise steht nicht drin.
Die ActiveX-Technologie kann ich soviel mir bekannt ist aus folgenden Gründen nicht einsetzen:
- Der Client welcher den webbasierten Webserver Schachstellen Scanner aufruft muss nicht zwingend der zu scannende Ziel-Rechner sein bzw. den zu analysierenden Webserver beinhalten.
Richtig! Auf Webservern surft man nicht.
- Ich vermute das ActiveX nur den Zugriff auf Windows-Systeme erlaubt. Oder liege ich da falsch?
Ebenfalls richtig! Auf allem anderen Betriebssystemen als Windows und mit allen anderen Browsern als dem IE steht ActiveX nicht zur Verfügung.
Habe auch schon über SSH (Secure Shell) nachgedacht. Doch das scheint auch nicht möglich zu sein da der zu analysierende Webserver ja nicht zwingend Shell Zugriff erlauben muss bzw. dafür konfiguriert sein müsste. Dies kann natürlich nicht vorausgesetzt werden.
Insbesondere hilft dir ein Shellzugang ja auch nicht weiter - oder wäre wieder einmal eine heftige Sicherheitslücke für das System.
Wobei wir zuerst zu der Frage kommen: Warum sollte jemand dir vertrauen? Wer ist so blöde und gibt dir außer der öffentlich für alle erreichbaren URL noch weitergehende Zugangsdaten für SEIN System?
Was für alternative Technologien gibt es? Hat mir jemand einen guten Ratschlag oder eine Idee wie ich da vorgehen könnte? Natürlich sollte ich zumindest das verwende Betriebsystem und die verwendete Webserver Version auslesen können um zu überprüfen ob z.B. der Webserver auf dem aktuellsten Stand ist.
Die Tatsache, dass auf einem System NICHT die neueste Version eingesetzt wird, bedeutet nicht, dass das System angreifbar ist. Einem Update wird üblicherweise die folgende Überlegung vorausgehen:
1. Werden sicherheitsrelevante Bugs geschlossen?
2. Werden andere relevante Bugs für die verwendete Plattform geschlossen?
3. Ändert sich das Verhalten der Software gegenüber anderen Anwendungen, die diese benutzen? Was müßte deshalb noch alles aktualisiert werden?
4. Bedeutet das Update größere Umstellungsarbeiten?
5. Bringt es erwünschte neue Features?
Anhand dieser Überlegungen ist jeweils abzuwägen.
- Sven Rautenberg