Haftungsausschluss: Dieser Beitrag dient ausschließlich Bildungs- und Informationszwecken. Die hier gezeigten Informationen und Angriffe dürfen niemals für illegale Zwecke oder auf Systemen, für die keine explizite Erlaubnis eingeräumt wurde, verwendet werden. Solche Handlungen können gegen geltende Gesetze verstoßen und schwerwiegende rechtliche Konsequenzen nach sich ziehen.

Zusammenfassung

Dieser Beitrag fasst einige Security-Hardening-Maßnahmen zusammen, die dazu dienen, die externe Angriffsfläche zu minimieren. Dieses SecCore Essential ist implementiert, wenn die folgenden Punkte zutreffen:

  • Alle extern auffindbaren Services und (Sub)Domains sind bekannt.
  • Offene Ports sind auf ein Minimum reduziert.
  • Zuständigkeiten für Dienste sind festgehalten und werden regelmäßig aktualisiert.

Einleitung

Externe Assets wie Webseiten oder Dienste sind aus der heutigen digitalen Welt nicht mehr wegzudenken. Da allerdings oft unerwartet ein Dienst ins Internet exponiert oder eine Subdomain für Testzwecke gekauft, konfiguriert und anschließend wieder vergessen wird, ist es wichtig, alle externen Angriffspunkte zu kennen und zu protokollieren.

Häufige Angriffsvektoren

Die folgenden Abschnitte beschreiben verschiedene Angriffsvektoren auf externe Assets eines Unternehmens.

Unbekannte Subdomains und Services

Oft werden verschiedene Anwendungen innerhalb eines Unternehmens verwendet, um beispielsweise Daten mit externen Parteien auszutauschen oder interne Tools bereitzustellen. Diese Anwendungen werden häufig unter Subdomänen einer Unternehmensdomäne registriert und zugänglich gemacht. Geraten diese Dienste in Vergessenheit und werden nicht mehr auf dem aktuellen Stand gehalten, sind sie ein leichtes Ziel für Angreifer.

Zur Enumeration von Subdomänen stehen Angreifern mehrere Möglichkeiten zur Verfügung:

  • Certificate Transparency Logs: Jedes öffentlich ausgestellte TLS-Zertifikat wird in öffentlichen Logs und auf Portalen wie crt.sh1 protokolliert. Subdomänen, für die ein Zertifikat ausgestellt wurde, sind dadurch öffentlich einsehbar, auch wenn der DNS-Eintrag nicht mehr aktiv ist.
  • Passive DNS-Datenbanken: Dienste wie VirusTotal2 speichern historische DNS-Auflösungen und ermöglichen so das Auffinden von Subdomänen, die nie aktiv beworben wurden.
  • Spezielle Tools: Tools wie Subfinder3 oder amass4 kombinieren mehrere passive Quellen und können so schnell Hunderte von Subdomänen eines Unternehmens aufdecken. Auch aktives Brute-Forcing von Subdomänen wird oft durchgeführt. Dabei werden häufig genutzte Namen wie "dev", "test" etc. mit der Hauptdomain kombiniert, um so weitere Subdomänen zu entdecken.

Subdomain Takeover

Eine besonders gefährliche Konsequenz vergessener Subdomänen ist Subdomain Takeover. Dieser tritt auf, wenn eine Subdomain per DNS noch auf einen externen Dienst (z.B. GitHub Pages, Heroku, Azure) zeigt, der Dienst dort jedoch nicht mehr aktiv betrieben wird. Da auf der Zielplattform nun kein Inhalt mehr für diese Subdomain beansprucht wird, kann ein Angreifer dort einen eigenen Dienst registrieren und so die Subdomain des Unternehmens übernehmen.

Unter dieser übernommenen Subdomain können beliebige Inhalte ausgeliefert werden, was für folgende Szenarien missbraucht werden kann:

  • Phishing: Eine übernommene legitime Subdomain wirkt auf den ersten Blick vertrauenswürdig und erhöht die Erfolgsrate von Phishing-Angriffen erheblich.
  • Cookie-Diebstahl: Da sich Subdomänen häufig den Cookie-Scope mit der Hauptdomain teilen, können Session-Cookies unter Umständen abgegriffen werden.
  • Reputation: E-Mails, die von einer übernommenen Subdomain versendet werden, können in manchen Fällen SPF- und DKIM-Prüfungen bestehen und so als legitim erscheinen.

Uneingeschränkte offene Ports

Werden Dienste exponiert, müssen auf der Firewall Ports geöffnet werden. Wird dies zu großzügig gehandhabt oder werden die dahinterliegenden Applikationen vergessen und nicht regelmäßig aktualisiert, können diese als Einfallstore dienen.

Suchmaschinen wie Shodan5 oder Censys6 indexieren kontinuierlich den gesamten IPv4-Adressraum und katalogisieren alle erreichbaren Ports, Banner und Dienste. Ein Angreifer kann so mit einfachen Suchanfragen sämtliche exponierten Dienste eines Unternehmens nach IP-Adresse oder ASN filtern, einschließlich Versionsinformationen, die auf bekannte Schwachstellen hinweisen.

Besonders kritisch sind dabei Dienste, die nicht für die Öffentlichkeit bestimmt sind, wie zum Beispiel:

  • Fernwartungszugänge: Zugänge über das Remote Desktop Protocol (RDP) oder SSH, die Brute-Force-Angriffen oder dem Ausnutzen bekannter Schwachstellen ausgesetzt sind, sollten nur über eine VPN-Verbindung erreichbar sein.
  • Datenbanken: Dienste wie unter anderem MSSQL, MySQL oder MongoDB sollten niemals direkt aus dem Internet erreichbar sein.
  • Unsichere Legacy-Protokolle: Daten sollten nicht unverschlüsselt oder über veraltete Protokolle wie zum Beispiel Telnet oder FTP übertragen werden.

Veraltete Dienste

Auch bekannte und dokumentierte Dienste können zu einem Risiko werden, wenn sie nicht regelmäßig aktualisiert werden. Publizierte CVEs für gängige Software wie VPN-Gateways, Webserver oder Mail-Server werden aktiv von Angreifern genutzt, um großflächig nach anfälligen Versionen zu suchen. Veraltete Softwareversionen sind im HTTP-Response-Header, in Bannern oder über Fingerprinting-fähige Verhaltensweisen oft direkt erkennbar. Mehr zum Thema Vulnerability Management ist in unserem SecCore Essential zu diesem Thema zu finden.

Angriffsszenario

Dieser Abschnitt zeigt, wie eine Domäne enumeriert werden kann, um vergessene Dienste offenzulegen. Dazu wird ein Portscan mittels nmap7 durchgeführt. Durch das Kommando nmap -p- demo.lab.local werden alle TCP-Ports gescannt, wodurch die folgenden als zugänglich festgestellt wurden: nmap scan zum Herausfinden der offenen Ports Das Aufrufen der Applikation auf Port 8080 zeigt ein vergessenes und undokumentiertes Loginportal: Vergessenes Loginportal Da die standardmäßigen Zugangsdaten noch nicht umkonfiguriert waren, wurde so Zugriff auf den dahinterliegenden Service erlangt.

Gegenmaßnahmen

Um die externe Angriffsfläche dauerhaft zu minimieren, müssen Unternehmen diese regelmäßig aus der Perspektive eines Angreifers betrachten. Die Gegenmaßnahmen lassen sich in drei Bereiche unterteilen: Erkennung, Reduktion und Prozesse.

Externe Reconnaissance als Verteidiger

Unternehmen sollten dieselben Tools und Quellen nutzen, die auch Angreifern zur Verfügung stehen, um ihre eigene externe Angriffsfläche zu kennen. Dazu gehören:

  • Subdomain-Enumeration, um alle aktiven Subdomänen zu inventarisieren.
  • Certificate Transparency Monitoring über Dienste wie crt.sh1, um auf neu ausgestellte Zertifikate für die eigene Domain aufmerksam zu werden.
  • Monitoring durch Shodan5 oder Censys6 für die eigenen IP-Adressbereiche und ASNs, um unerwartete oder neu exponierte Ports und Dienste sofort zu erkennen.

Diese Maßnahmen sollten automatisiert und regelmäßig (z.B. wöchentlich) durchgeführt werden, da sich die Angriffsfläche durch Cloud-Deployments, CI/CD-Pipelines und Mitarbeiteraktivitäten ständig verändert.

Reduktion der Angriffsfläche

Alle gefundenen, extern erreichbaren Dienste und Subdomänen sollten bewertet werden:

  • Nicht mehr benötigte DNS-Einträge müssen entfernt werden, insbesondere CNAME-Einträge, die auf externe Plattformen zeigen, da diese einen Subdomain Takeover ermöglichen können.
  • Firewall-Regeln sollten nach dem Prinzip der minimalen Exposition konfiguriert werden: Verwaltungszugänge wie RDP oder SSH sollten nur über VPN oder IP-Allowlists erreichbar sein.
  • Unsichere Protokolle (Telnet, FTP, unverschlüsseltes HTTP für Logins) sollten durch sichere Alternativen (SSH, SFTP/FTPS, HTTPS) ersetzt werden.
  • Softwareversionen auf extern exponierten Diensten müssen regelmäßig aktualisiert werden, um bekannte CVEs zu schließen.

Asset-Inventar und Zuständigkeiten

Ein vollständiges und aktuelles Inventar aller extern erreichbaren Ressourcen ist die Grundvoraussetzung für effektives Management der Angriffsfläche. Dieses Inventar sollte folgendes enthalten:

  • Alle registrierten Domains und Subdomänen mit zugehörigen DNS-Einträgen.
  • Alle extern erreichbaren IP-Adressen und offenen Ports.
  • Für jeden Eintrag: eine klar definierte Zuständigkeit (Team oder Person), den Zweck des Dienstes sowie das Datum der letzten Überprüfung.

Ohne festgelegte Zuständigkeiten werden Dienste erfahrungsgemäß nicht aktualisiert oder beim Wegfall ihres Zwecks nicht ordnungsgemäß abgebaut. Eine regelmäßige Überprüfung, idealerweise quartalsweise, stellt sicher, dass das Inventar mit der tatsächlichen Netzwerksituation übereinstimmt.