Gorodenkoff - stock.adobe.com
Anwendungssicherheit: Die Webserver richtig absichern
Beim Thema Anwendungssicherheit wird immer wieder ein besonders wichtiger Bereich übersehen: Eine umfassende Absicherung der Server, auf denen die einzelnen Applikationen laufen.
Anwendungssicherheit beziehungsweise Application Security ist ein äußerst komplexes Thema. Von den nur schwer zu entdeckenden Sicherheitslücken in modernen JSON Web Token Implementierungen bis zu den guten alten Eingabe-Schwachstellen, die bei SQL Injection auftreten, gibt es Tausende Dinge, die schiefgehen können. Nur wenn Sie alles testen, können Sie sicherstellen, dass Ihre Anwendungen auch wirklich so gut wie nur irgend möglich vor Angriffen geschützt sind.
Es gibt aber einen bedeutenden Bereich beim Thema Application Security, der oft übersehen oder als nicht wirklich wichtig eingeschätzt wird, der aber natürlich trotzdem einen erheblichen Einfluss auf die Sicherheit Ihrer Anwendungen hat: die Server, auf denen die einzelnen Applikationen laufen.
Viele Sicherheitsprobleme können auf Webservern und verwandten Systemen auftreten. Die wichtigsten Schwachstellen, die in der Praxis immer wieder anzutreffen sind, finden Sie hier aufgelistet:
Fehlende Patches, die zu Exploits führen: Dieses Problem kann zu Denial-of-Service-Attacken oder – noch schlimmer – zu einem möglichen Fernzugriff auf das betroffene System führen. Es tritt besonders häufig in auf Linux aufsetzenden Webumgebungen auf, da hier immer wieder OpenSSL, Apache und andere Software eingesetzt werden, die teilweise schon seit Jahren nicht mehr aktualisiert wurden.
Schwachstellen bei der Verschlüsselung: Dazu gehören ein Einsatz von SSL (Secure Sockets Layer) oder älteren Versionen von TLS (Transport Layer Security), aber auch eine schwache Verschlüsselung, die geknackt werden kann, wenn ein Angreifer nur genug Zeit und Ressourcen aufbringen kann. Glauben Sie es mir oder nicht, ich treffe in meiner Tätigkeit als Pentester immer wieder auf Anwendungen, teilweise sogar auf geschäftskritische Anwendungen, auf die weiterhin per HTTP zugegriffen werden kann und für die keine verschlüsselte Authentifizierung notwendig ist.
Nicht bearbeitete HTTP-Ausnahmen: Diese HTTP-500-Fehler können Informationen über die Konfiguration des Systems verraten und letztlich so zu einem Angriff via SQL Injection führen. Stellen Sie deswegen unbedingt sicher, dass Sie detaillierte Fehlermeldungen sowie Debugging-Funktionen auf dem Server-Level deaktiviert haben, so dass keine Nutzer Daten aus diesen Bereichen zu sehen bekommen.
Ungenügende Dateizugriffsrechte: Fehler in diesem Bereich können dazu führen, dass Angreifer auf wichtige Verzeichnisse und Dateien zugreifen können, die zum Webserver gehören und zum Beispiel zu seiner Konfiguration dienen. Wenn hier Zugriffe möglich sind, dann kann das zu weiteren Gefahren führen.
Aktivierte FTP-Dienste: Durch diese Dienste können Zugangsdaten in die falschen Hände geraten, da sie bei diesem Protokoll im Klartext übertragen werden. FTP (File Transfer Protocol) kann zudem Fehler in der Konfiguration haben, so dass nicht autorisierte Zugriffe durch entweder anonyme oder reguläre Nutzer-Accounts möglich sind. Diese Dienste lassen sich auch mit Tools zum Knacken von Passwörtern angreifen, da hier nur in den seltensten Fällen eine automatische Sperre von Eindringlingen aktiviert ist.
Offene Proxies: Diese sind meist keine direkte Gefahr für Ihre Anwendungen, aber sie sind ein Risiko für die gesamte Umgebung, da sie mit DoS-Attacken angegriffen werden können.
Mangel an Malware-Schutz: Das ist ein schwieriges Thema, da es durchaus Gründe dafür gibt, auf einem Webserver keine Antivirus-Lösung zu installieren. Aber was passiert, wenn Sie eine verwundbare Seite oder ein Formular haben, mit denen es möglich ist, schädliche Dateien auf den Server hochzuladen? Ab diesem Zeitpunkt ist das gesamte System in Gefahr. Sehr oft treffe ich auf ungeschützte Seiten und Formulare, die nicht nach Dateitypen filtern und die sich auf Webservern befinden, die keine Möglichkeit haben, Malware abzuwehren, die von Angreifern hochgeladen wurde.
Die gezeigten Probleme machen klar, dass Sie Ihre Applikations-Umgebung genauer unter die Lupe nehmen sollten. Also nicht nur den Layer 7, sondern alle Bereiche. Dazu gehören nicht nur die Entwicklung, sondern auch die produktiven Systeme und die zum Staging eingesetzten Maschinen. Außerdem sollten Sie sich um Serverschwachstellen kümmern, die von innerhalb des Netzwerks ausgenutzt werden können. Es sind nämlich nicht nur externe Angreifer, vor denen Sie sich in Acht nehmen müssen. Ein böswilliger Anwender innerhalb Ihres Netzwerks kann genauso viel, wenn nicht noch mehr Schaden als ein externer Angreifer anrichten.
Das Letzte, was Sie benötigen, ist eine Schwachstelle in Ihrem Webserver oder dem verwendeten Betriebssystem, die zu einem Zusammenbruch Ihres gesamten Unternehmens führt. Kümmern Sie sich deswegen um mehr als nur die Applikationsebene. Testen und härten Sie auch Ihre Server, wo immer es nötig und möglich ist.
Natürlich werden Sie nicht alle Schwachstellen beim ersten Mal oder gar auf einmal finden. Das ändert aber nichts daran, dass es für Ihr Unternehmen lebenswichtig sein kann, ein solides und kontinuierlich umgesetztes Programm mit Sicherheitstests Ihrer Anwendungsumgebung zu entwickeln, dass alle Bereiche umfasst. Auch wenn es manchmal nur kleine Schritte sind, sollten Sie Ihre Hausaufgaben regelmäßig und dauerhaft erledigen, wenn es um Anwendungssicherheit geht. Sorgen Sie insbesondere dafür, dass auch Ihre Server geschützt sind und dass darüber keine Angriffe auf Ihre Anwendungen gestartet werden können.