Webserver-SicherheitslĂŒcke: Heikle Konfigurations- und Statusdaten publiziert
Fehlkonfigurierte Webserver von Bundesbehörden und IT-Firmen prÀsentierten Besucher-IPs, Benutzernamen, Meeting-Kennungen und mehr offen im Internet.
Um Server zu debuggen und zu ĂŒberwachen, ist es nĂŒtzlich, Konfigurations- und Statusinformationen einfach abrufen zu können. Das geht leicht schief, wie weit verbreitete Konfigurationsfehler belegen. Der bekannte Webserver Apache bietet unter anderem die Module mod_info
und mod_status
an. Beide stellen HTML-Seiten bereit, die allerlei Daten ĂŒber den Server anzeigen und standardmĂ€Ăig unter den Pfaden /server-info
und /server-status
zu erreichen sind.
Seit Jahren kommt es immer wieder zu FÀllen, in denen Server falsch konfiguriert sind und die Seiten dieser Module unabsichtlich veröffentlicht werden. Das ist aber kein lÀssliches Kavaliersdelikt, das nur dröge Verwaltungsdaten betrifft. Konkrete Nachforschungen fördern oft sensible Information zutage, etwa Links, die unberechtigte Downloads erlauben, oder Kennungen, die Zugang zu internen Meetings verschaffen.
Weitverbreiteter Fehler
Das IT-Sicherheitsunternehmen "Deutsche Gesellschaft fĂŒr Cybersicherheit" wollte sich ein Bild der Lage verschaffen und hat alle .de-Domains systematisch gescannt. Das Ergebnis war verheerend. Die Fachleute fanden mehr als 70.000 Domains, die Informationen von mod_info
oder mod_status
veröffentlichten. Um der Problematik mehr Aufmerksamkeit zu verschaffen, wandten sie sich an cât.
Die Liste enthĂ€lt Systeme verschiedenster Betreiber. Stichproben fanden alles â von privaten Homepages ĂŒber kommunale Webseiten bis zu Servern groĂer Organisationen: Banken, IT-Firmen wie AVM oder G Data, das Bundesfinanzministerium und sogar CERT-Bund, das "Computer-Notfallteam des BSI", finden sich in der Liste.
Ursachenforschung
Dass die Fehlkonfigurationen so verbreitet sind, ist auf den ersten Blick verwunderlich. Die Apache-Dokumentation warnt davor [1], dass die beiden Module sicherheitsrelevante Auswirkungen haben können, und gibt auch Beispiele, die Zugriffe auf diese Module einschrĂ€nken. FĂŒr das Server-Status-Modul sieht das etwa so aus:
<Location "/server-status">
SetHandler server-status
Require local
</Location>
Die Direktive Require local
erzwingt, dass nur Anfragen, die vom Server selbst kommen, beantwortet werden. Allerdings ergeben sich unter UmstÀnden zwei Folgeprobleme, die viele Admins offenbar nicht im Auge haben: Zum einen befinden sich Webserver hÀufig hinter einem Loadbalancer oder einem anderen vorgeschalteten System, das oft auf der gleichen Maschine lÀuft. Aus Sicht des Webservers kommen dann aber alle Anfragen von der eigenen Maschine und entsprechend bekommt auch jedermann Zugriff auf die Status- und Infoseiten.

Das andere Problem ist, dass sich Apache-Server ihre Konfiguration aus verschiedenen Quellen zusammensammeln, die einander kompliziert ĂŒberlagern und ergĂ€nzen können. Eine Require-Anweisung an einer Stelle wird dadurch leicht mit einer anderen, die mehr Zugriff erlaubt, kombiniert und der Schutz wirkungslos.

cât 26/2020
Dieser Artikel stammt aus cât 26/2020 [2]. Darin hat die Redaktion den Bausatz fĂŒr das cât-Notfall-Windows aktualisiert, mit dem Sie einen bootfĂ€higen USB-Stick erzeugen können, um Daten zu retten, Viren zu jagen oder Bootprobleme zu lösen. AuĂerdem gibt es einen Test aktueller High-End-Smartphones, spannender Fitness-Tracker und Streaming-Sticks zum nach- und aufrĂŒsten von TV-Funktionen. Dazu gibt es weitere Tests, jede Menge Praxis und eine ganze Ladung voller Tipps zur Heimnetz-Verkabelung. c't 26/2020 ist ab sofort im Heise-Shop [3] und am gut sortierten Zeitschriftenkiosk erhĂ€ltlich.
Auswirkungen
Beabsichtigt war die Konfiguration in keinem von cât untersuchten Fall; nach der Kontaktaufnahme unsererseits haben alle hier genannten Organisationen ihre Serverkonfiguration schnell angepasst. Wie schwerwiegend die Auswirkungen solcher Fehlkonfigurationen sind, ist allerdings von Fall zu Fall ganz unterschiedlich und hĂ€ngt davon ab, welche anderen Probleme ein Server mit sich herumtrĂ€gt. Die von mod_info
exponierte Seite listet beispielsweise die Versionen des genutzten Apache-Servers sowie eingesetzter Module und SSL-Bibliotheken auf. Das ist fatal, wenn es sich um alte Versionen mit bekannten SicherheitslĂŒcken handelt.
Beim CERT-Bund â das mod_info
, aber nicht mod_status
exponiert hatte â war das nicht der Fall. Aber die Infoseite enthĂ€lt trotzdem zahlreiche Informationen, die man potenziellen Angreifern nicht liefern möchte. cât konnte so zum Beispiel nachvollziehen, wie mod_info
den ZugriffsbeschrÀnkungen beim CERT-Bund entgangen war.

Veröffentlichte IP-Adressen
Schlimmer sind hÀufig die Auswirkungen von mod_status
. Das Modul zeigt zwar weniger Konfigurationsdetails an, veröffentlicht standardmĂ€Ăig aber aktuelle Requests. Die Requests geben zum einen Aufschluss ĂŒber IP-Adressen, die einen Server kontaktieren. Dabei handelt es sich ĂŒblicherweise um personenbezogene Daten, die nicht ohne Weiteres veröffentlicht werden dĂŒrfen.
Ironischerweise helfen hier Systeme wie Loadbalancer, obwohl sie, wie gesagt, die LĂŒcke oft ĂŒberhaupt erst aufreiĂen: Bei Requests, die durch so ein System gehen, sieht der Apache-Server nur die feste IP-Adresse dieses Systems und nicht die Adressen der Besucher. Etwa bei einem Server des Bundesfinanzministeriums verhinderte ein so vorgeschalteter Cache, dass Besucheradressen öffentlich wurden.
Vertrauliche URLs
Neben den IP-Adressen zeigt die Request-Liste der Statusseite auch die genutzten URLs an. Es ist keine gute Praxis, aber oft enthalten URLs sensible Informationen, welche die Server-Status-Seite dann publiziert.
GröĂeren Problemen gerade noch entgangen ist die Sparda-Bank MĂŒnchen. Deren System publizierte URLs mit Teilen von IBANs. Dabei handelte es sich allerdings nur um die vordere HĂ€lfte der Nummern, womit sich Land und Bank identifizieren lassen, aber keine Konten.
Schlechter sah es bei der IT-Security-Firma G Data aus. Der betroffene Server wurde zum Dateiaustausch im Unternehmen genutzt und publizierte ĂŒber die URLs unter anderem Benutzernamen von Firmenmitarbeitern. Die entsprachen oft den Klarnamen der Mitarbeiter nach dem Schema "Vorname.Nachname" und erlaubten so zumindest RĂŒckschlĂŒsse auf Unternehmenszugehörigkeiten. AuĂerdem fanden sich in den URLs Datei-Hashes. DarĂŒber war es sogar möglich, die jeweiligen Dateien unbefugt herunterzuladen. G Data betont allerdings, dass diese Dateien keine personenbezogenen Daten enthielten. Personenbezogene Daten wĂŒrden grundsĂ€tzlich nur in Dateien mit einem Passwortschutz geteilt.
Problematisch war auch ein System des Fritzbox-Herstellers AVM. Es exponierte den Server-Status eines Jitsi-Servers fĂŒr Videokonferenzen zwischen Mitarbeitern. Die Namen der virtuellen KonferenzrĂ€ume waren dadurch frei zugĂ€nglich und jedermann konnte an Konferenzen teilnehmen, die nicht individuell passwortgeschĂŒtzt waren. Gerade in gröĂeren Konferenzen kann es leicht passieren, dass solche unerbetenen GĂ€ste nicht weiter auffallen und dem internen Meeting ungestört beiwohnen können.
Serverkonfiguration prĂŒfen
AVM, G Data und das BSI zeigen, dass niemand gegen Unachtsamkeit gefeit ist. Zehntausende weitere Systeme sind noch betroffen und die Experten der Gesellschaft fĂŒr Cybersicherheit wollen bald mit einer aktualisierten Liste an die Ăffentlichkeit gehen. Zeit also, sich die Konfigurationen der eigenen Server sorgfĂ€ltig anzusehen und nicht nur schnell die Pfade /server-info
und /server-status
zu testen. Es lassen sich auch andere Pfade nutzen und es gibt Àhnliche Probleme mit anderen Statusseiten: Der Hoster von CERT-Bund schaffte es offenbar, den öffentlichen Zugang zu /server-info
abzudrehen und dabei zu ĂŒbersehen, dass auf die gleiche Weise auch Statusinformationen eines Perl-Interpreters unter /perl-status
publiziert wurden. Nach einem weiteren Hinweis von cât wurde auch dieses Verhalten korrigiert.
Apache Module mod_info [5]
Allgemeine Dokumentation zum Modul mod_info.
Apache Module mod_status [6]
Allgemeine Dokumentation zum Modul mod_status.
Apache Module mod_authz_core / Require Directive [7]
ErklĂ€rungen zur Require-Direktive und wie sich mehrere davon ĂŒberlagern können.
Configuration Sections / How the sections are merged [8]
Beschreibung wie sich Konfigurationssektionen in Apaches Konfiguration ĂŒberlagern.
Apache Module [9] m [10]od_authz_core [11] / AuthMerging Directive [12]
Ăber die AuthMerging-Direktive lĂ€sst sich definieren, wie Authorisierungseinstellungen verschiedener Konfigurationssektionen miteinander kombiniert werden.
Apache Module mod_remoteip [13]
Das Module Remote IP ist nĂŒtzlich, wenn sich Apache-Server hinter Load-Balancern, Caches oder Reverse-Proxys befinden, und dennoch auf die IP-Adresse des Besuchers reagieren sollen.
(syt [14])
URL dieses Artikels:
https://www.heise.de/-4971830
Links in diesem Artikel:
[1] https://httpd.apache.org/docs/2.4/mod/mod_info.html#security
[2] https://www.heise.de/select/ct/2020/26
[3] https://shop.heise.de/c-t-26-2020
[4] https://www.heise.de/ct
[5] https://httpd.apache.org/docs/2.4/mod/mod_info.html
[6] https://httpd.apache.org/docs/2.4/mod/mod_status.html
[7] https://httpd.apache.org/docs/2.4/mod/mod_authz_core.html#require
[8] https://httpd.apache.org/docs/2.4/sections.html#merging
[9] https://httpd.apache.org/docs/2.4/mod/mod_authz_core.html#authmerging
[10] https://httpd.apache.org/docs/2.4/mod/mod_authz_core.html#authmerging
[11] https://httpd.apache.org/docs/2.4/mod/mod_authz_core.html#authmerging
[12] https://httpd.apache.org/docs/2.4/mod/mod_authz_core.html#authmerging
[13] https://httpd.apache.org/docs/2.4/mod/mod_remoteip.html
[14] mailto:syt@ct.de
Copyright © 2020 Heise Medien