Wenn wir an die Sicherheit von Websites denken, stellen wir uns oft komplexe Firewalls, mehrschichtige Verteidigungsmechanismen und robuste Verschlüsselung vor. Aber manchmal ist das schwache Glied in Ihrer Sicherheitskette nicht so offensichtlich. Es kann so einfach sein wie eine verlegte Konfiguration oder eine ungeschützte Versionsnummer. Lose Konfigurationseinstellungen können auch zum Untergang von Websites führen. In diesem Blog erfahren Sie, wie ungeschützte Versionsnummern in Ihrem Tech-Stack zu ernsthaften Schwachstellen führen können und was Sie tun können, um die Sicherheit zu erhöhen.
Ein Beispiel aus der Praxis: Offengelegte PHP-Version
Bei einer routinemäßigen Sicherheitsüberprüfung entdeckten wir eine veraltete PHP-Version, für die in der Serverkonfiguration einer Website offen geworben wurde. Das ist ein Paradebeispiel dafür, was man nicht tun sollte. Mit Hilfe von Tools wie Wappalyzer zeigte ein kurzer Blick die PHP-Version: 8.2.19. Oberflächlich betrachtet mag dies wie ein kleines Versehen erscheinen, aber die Auswirkungen können schwerwiegend sein.
Diese spezielle PHP-Version weist mehrere kritische Sicherheitslücken auf. Eine der besorgniserregendsten ist CVE-2024-4577, die es einem Angreifer unter Umständen ermöglicht, beliebigen Code aus der Ferne auszuführen. Mit anderen Worten: Wenn die Website einfach offenlegt, dass sie diese PHP-Version verwendet, könnte sie genauso gut ein "Willkommen Hacker"-Schild an ihre Eingangstür hängen.
Weitere Einzelheiten zu den mit dieser Version verbundenen Schwachstellen finden Sie in der Analyse von Tenable.
Warum sind offengelegte Versionsnummern wichtig?
Jede Technologie - sei es ein CMS, ein Server oder eine Skriptsprache - hat einen Lebenszyklus. Neue Versionen kommen regelmäßig heraus, um Schwachstellen zu beheben und die Leistung zu verbessern. Wenn eine Website jedoch die genauen Versionen offenlegt, auf denen sie ausgeführt wird, können böswillige Akteure leicht Querverweise auf bekannte Schwachstellen für jede Version ziehen und ihre Angriffe entsprechend anpassen. Dies ist ein so genannter Cyber-Supply-Chain-Angriff - Angreifer zielen auf bestimmte Softwareversionen innerhalb des technischen Stapels eines Unternehmens ab, um dessen Gesamtsicherheit zu gefährden.
Eine praktische Lösung: Aus losen Lippen werden feste Lippen
Wie können Sie also sicherstellen, dass Ihre Website diese wichtigen Informationen nicht weitergibt? Überprüfen Sie zunächst Ihre Serverkonfigurationen und stellen Sie sicher, dass keine sensiblen Daten an die Welt weitergegeben werden. Lassen Sie uns eine schnelle Lösung für einen der häufigsten Übeltäter finden: PHP.
- Finden Sie Ihr
php.ini
Konfigurationsdatei. Diese Datei steuert viele der PHP-Einstellungen und befindet sich oft unter/usr/local/lib/php.ini
. - Lokalisieren Sie die Leitung die lautet:
expose_php = On
- Ändern Sie die Einstellung zu:
expose_php = Off
- Starten Sie Ihren HTTP-Dienst neu, um die Änderungen zu übernehmen.
Mit dieser kleinen Änderung verhindern Sie effektiv, dass Ihr Server seine PHP-Version weitergibt. Das ist zwar eine einfache Lösung, aber sie kann Ihre Angriffsfläche erheblich reduzieren.
Jenseits der Versionsverschleierung: Umfassende LAMP-Stack-Sicherheit
Die Verschleierung Ihrer Versionsnummern ist ein guter erster Schritt, aber echte Sicherheit erfordert einen ganzheitlichen Ansatz. Wenn Sie einen LAMP-Stack (Linux, Apache, MySQL und PHP) einsetzen, müssen Sie jede einzelne Komponente absichern, um zu verhindern, dass Angreifer weitere Einstiegspunkte finden. Das bedeutet, dass Sie die Konfigurationen verschärfen, Berechtigungen verwalten und Tools wie Firewalls und Intrusion-Detection-Systeme implementieren müssen.
Wenn Sie zum Beispiel sicherstellen, dass Ihre MySQL-Installation gesperrt ist, können Sie Datenbankangriffe verhindern, die sensible Daten gefährden könnten. In ähnlicher Weise kann die Einrichtung angemessener Dateiberechtigungen und die Deaktivierung ungenutzter Module in Apache die Reichweite eines Angreifers begrenzen, selbst wenn er einen Weg hinein findet.
Eine weitere Maßnahme, die Sie ergreifen können, ist die Implementierung einer Firewall wie unserer Web Application Firewall, um den Datenverkehr zu Ihrem Server zu kontrollieren, zusammen mit Fail2Ban, um automatisch IP-Adressen zu blockieren, die Anzeichen für ein Brute-Forcing Ihres SSH-Logins aufweisen.
Regelmäßige Audits und bewährte Praktiken
Die Absicherung Ihres LAMP-Stacks ist keine einmalige Aufgabe. Regelmäßige Überprüfungen mit Werkzeugen wie Lynis oder MySQL Security Tools können dazu beitragen, Schwachstellen in Ihrer Konfiguration zu identifizieren und Ihren Stack vor neuen Bedrohungen zu schützen. Das bedeutet, dass Sie System-Scans durchführen, Protokolle analysieren und Ihre Konfiguration laufend auf potenzielle Lücken testen.
Beim Schutz Ihrer Website geht es um mehr als nur um das Verbergen von Versionsnummern. Offengelegte Versionen sind zwar eine häufige Schwachstelle, aber nur ein Teil des Puzzles. Um Ihren LAMP-Stack vollständig zu schützen, müssen Sie einen umfassenden Ansatz wählen, der Konfigurationsmanagement, Zugriffskontrolle und kontinuierliche Überwachung umfasst.
Wenn Sie tiefer in die Absicherung der einzelnen Teile Ihres LAMP-Stacks eintauchen möchten - vom Sperren von SSH über die Verschärfung der MySQL-Berechtigungen bis hin zur Implementierung erweiterter Sicherheitsregeln für Apache-, lesen Sie den vollständigen Leitfaden zur Absicherung Ihres LAMP-Stacks. Er enthält Schritt-für-Schritt-Anleitungen und fortgeschrittene Techniken, um Ihren Server von Grund auf zu schützen und eine robuste und sichere Grundlage für Ihre Webanwendungen zu gewährleisten.
Kommentare