Vielleicht ist dir im Fehlerprotokoll des Apache-Webservers schon einmal eine Meldung mit der ID „AH02032“ untergekommen, die in etwa so aussieht:
[Fri Mar 08 05:20:26.997206 2024] [ssl:error] [pid XXX:tid XXXXX] [client 127.0.69.42:69420] AH02032: Hostname www.unbekannte-domain.com provided via SNI and hostname www.meine-domain.de provided via HTTP have no compatible SSL setup
(Die IP-Adresse (127.0.69.42
) und der Port (69420
) sind dabei beispielhaft und werden sich in deinem Logfile unterscheiden.)
Wenn dein Server andernfalls korrekt eingerichtet ist, kommt hier die gute Nachricht: Diese Meldung ist harmlos und bedeutet, dass ein Sicherheitsmechanismus ordnungsgemäß gegriffen hat. Du kannst die Meldung also ignorieren.
Was bedeutet der „AH02032“-Fehler?
Die Meldung meint genau das, was sie aussagt. Ein Verbindungsaufbau mit dem einer per HTTPS abgesicherten Domain beginnt mit einem Handshake. Welche Domain gemeint ist, bestimmt normalerweise der Host
-HTTP-Header. Dieser kann aber nicht gesendet werden, bevor ein TLS-Tunnel konstruiert ist. Mit Server Name Indication (SNI) kann der Client schon vorab „ankündigen“, wo er hin möchte. Außerdem erlaubt es SNI, verschiedene TLS-Konfigurationen für verschiedene Virtual Hosts zu nutzen.
Je nachdem, wie der Webserver konfiguriert ist, lassen sich interessante Dinge anstellen, wenn der Hostname vom SNI nicht mit jenem im HTTP-Header übereinstimmt.
Kurz gesagt handelt es sich hier um einen Versuch, eine Sicherheitslücke auszuloten.
Wo liegt der Reiz an der „Lücke“?
Im Dezember 2013 wurde eine Lücke bekannt, die als „Virtual Host Confusion“ bezeichnet wird. Ein Virtual Host ist die Information für den Webserver (beispielsweise Apache), welche Domain angefragt wird und entsprechend zu reagieren. Das erlaubt es, dass auf einem Server mehrere Domains gehostet werden.
Bei der „Virtual Host Confusion“ wird nun versucht, den Server zu „verwirren“. Einerseits wird per SNI vorab behauptet, man sei www.unbekannte-domain.com
(wohl um ein gültiges SSL-Zertifikat zu laden), andererseits wird in Wahrheit versucht, www.meine-domain.de
aufzurufen. Wenn die eigene Domain nicht genau überprüft, ob alle Informationen zusammenpassen, kann es sein, dass die Anfrage dennoch bereitwillig bearbeitet wird. Das würde es etwa erlauben, Cookies zu stehlen, obwohl diese auf eine HTTPS-Verbindung bestehen.
Offenbar waren um 2014 diverse Content Delivery Networks (CDNs) für einen solchen Angriff anfällig. Das ist zwar inzwischen kalter Kaffee und alle gängigen Webserver überprüfen vorab, ob sie belogen werden. Aber das hält einen Angreifer nicht davon ab, sein Glück dennoch zu versuchen.
Wenn du besagte „Fehlermeldung“ im Error-Log findest, sagt das aus, dass der Apache den Braten gerochen und den Angriff abgewehrt hat. Du kannst die Meldung also getrost ignorieren.