Origin-IP hinter einem CDN: wie sie leckt und wie Sie sie sperren
Ein bestandener Scan Ihres Hostnamens prüft das Edge des CDN. Der Origin ist meist über das eigene DNS der Domain auffindbar, also finden Sie ihn, scannen Sie ihn und sperren Sie ihn auf das CDN.
In diesem Artikel 5 Abschnitte
- Ein Scan des öffentlichen Hostnamens läuft durch das CDN und berichtet über das CDN. Er sagt nichts über den Server dahinter.
- Die Adresse des Origin wird meist von der Domain selbst veröffentlicht: der SPF-Eintrag, die MX-Hosts, eine Subdomain ohne Proxy, ein Zertifikat in den Transparency-Logs, ein Received-Header in ausgehender E-Mail.
- Finden Sie sie so, wie ein Angreifer es tut, pinnen Sie sie fest, scannen Sie den Server selbst von außen, und sperren Sie dann die Firewall des Origin auf die Adressbereiche des CDN und authentifizieren Sie die Origin-Pulls, damit die Adresse nutzlos ist, selbst wenn sie bekannt wird.
Die Vordertür und die Hintertür
Ein CDN oder eine Cloud-WAF sitzt vor dem Server und bedient den Hostnamen. Richten Sie einen Scanner auf diesen Hostnamen, und die Anfrage geht an das Edge: das TLS des Edge, die Header des Edge, die Rate-Limits und Regeln des Edge. Ein grüner Bericht ist ein Bericht über das Edge. Der Origin, der eigentliche Server, wurde von diesem Scan nicht berührt, und was er direkt exponiert, bleibt für jeden exponiert, der ihn über die Adresse statt über den Namen erreicht.
| Was gescannt wird | Was es prüft | Was es über den Origin beweist |
|---|---|---|
| Der öffentliche Hostname, durch das CDN | Das Edge: seine WAF, sein TLS und seine Rate-Limits | Nichts |
| Die gepinnte Adresse des Origin | Den Server selbst, so wie ein Angreifer ihn erreicht | Was ein Fremder im Internet anfassen kann |
Wo der Origin leckt
Die Adresse ist selten gut versteckt, weil die Domain sie zu anderen Zwecken veröffentlicht. Der SPF-Eintrag ist der häufige Fall. Eine SPF-Richtlinie, die den Mechanismus a verwendet, autorisiert den eigenen A-Eintrag der Domain zum Versand von E-Mail, und dieser A-Eintrag ist der Origin hinter dem CDN. Der Mechanismus mx zeigt auf die Mail-Hosts, die oft im selben Bereich liegen. Ein wörtliches ip4: schreibt sie aus.
$ dig +short TXT example.com
"v=spf1 a mx ip4:<address> include:_spf.<mail-provider> ~all"
$ dig +short MX example.com
$ dig +short A mail.example.com ftp.example.com staging.example.com origin.example.comJenseits von SPF: Subdomains, die nie hinter das CDN gestellt wurden (mail, ftp, ein Control Panel, staging, ein nackter Origin-Host) und direkt auf den Server auflösen. Certificate-Transparency-Logs, die jedes für einen Namen ausgestellte Zertifikat aufzeichnen, einschließlich dessen auf dem Origin-Host. Passive-DNS-Datenbanken, die den A-Eintrag aus der Zeit vor Einführung des CDN aufbewahren. Die Received-Header jeder E-Mail, die der Webserver versendet, die den Host nennen, von dem sie kam. Und Anwendungsfunktionen, die den Server auf Anfrage nach außen verbinden lassen, wie Pingbacks und Webhook-Tests, die dem Empfänger des Aufrufs die verbindende Adresse zeigen.
Den Origin pinnen und scannen, was ein Angreifer scannt
Sobald die Adresse bekannt ist, bringen Sie die Werkzeuge dazu, das CDN zu ignorieren. curl kann das pro Anfrage. Scanner, die es nicht können, bekommen einen Eintrag in der hosts-Datei. Führen Sie das von einer Maschine aus, die weder in Ihrem eigenen Netzwerk noch auf einer Allowlist steht, der der Origin vertraut, denn ein Scan von einer vertrauenswürdigen Adresse berichtet, was vertrauenswürdige Adressen sehen.
# per request, no hosts-file change
$ curl --resolve example.com:443:<address> -sI https://example.com/
# for tools without --resolve
$ echo "<address> example.com" | sudo tee -a /etc/hostsFühren Sie im Ergebnis zwei Spalten. Die Infrastrukturspalte: welche Ports antworten, welche TLS-Versionen akzeptiert werden, ob Banner Softwarenamen preisgeben. Die Anwendungsspalte: nicht authentifizierte Endpoints, die Benutzer aufzählen, Debug- oder Logdateien, die im Web-Root lesbar sind, administrative Pfade, die ohne zweiten Faktor erreichbar sind, Komponenten hinter ihrem aktuellen Release. Eine gehärtete Maschine, die eine offene Anwendung ausliefert, ist keine sichere Site, und die beiden Spalten werden nicht zu einem Urteil verrechnet.
Den Origin auf das CDN sperren
Die strukturelle Korrektur findet am Origin statt, nicht am Edge. Die Web-Ports antworten nur noch den veröffentlichten Adressbereichen des CDN, alles andere wird standardmäßig abgewiesen. Auf einem Host mit firewalld:
# load the CDN's published ranges into an ipset, then allow only them on 443
$ firewall-cmd --permanent --new-ipset=cdn-v4 --type=hash:net
$ firewall-cmd --permanent --ipset=cdn-v4 --add-entries-from-file=cdn-ranges-v4.txt
$ firewall-cmd --permanent --zone=public --remove-service=http
$ firewall-cmd --permanent --zone=public --remove-service=https
$ firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source ipset="cdn-v4" port port="443" protocol="tcp" accept'
$ firewall-cmd --reload
$ firewall-cmd --ipset=cdn-v4 --get-entriesZwei Details entscheiden, ob das hält. Die Bereiche des CDN ändern sich, also wird die Datei nach Zeitplan aus der veröffentlichten Liste des CDN aufgefrischt und das ipset damit neu geladen. Und jedes Präfix in einer Allowlist wird nach dem Laden zurückgelesen: Eine um ein Zeichen vertippte Präfixlänge lässt einen großen Teil des Internets herein und sieht in der Datei normal aus.
Adressbereiche sind das erste Schloss, nicht das einzige. Die meisten CDNs können ihre Pulls zum Origin mit einem Client-Zertifikat authentifizieren. Verlangen Sie es am Webserver, damit eine Anfrage aus einem CDN-Bereich, die das Zertifikat nicht vorlegt, trotzdem abgewiesen wird. Beseitigen Sie dann die verbleibenden Lecks: ein SPF-Eintrag, der nur die Hosts nennt, die E-Mail versenden, keine Subdomains ohne Proxy, die auf den Origin zeigen, und, wo praktikabel, eine neue Origin-Adresse, sobald das Schloss sitzt, denn die alte bleibt auf unbestimmte Zeit im Passive DNS.
Von außen verifizieren
Führen Sie den gepinnten Scan vom selben nicht vertrauenswürdigen Standpunkt erneut aus. Der Origin verweigert die Verbindung auf 443, und der Hostname wird weiterhin über das CDN ausgeliefert. Wiederholen Sie das nach jeder Änderung an den Bereichen oder an der Webserver-Konfiguration. Wie daraus eine ständige Prüfung statt einer einmaligen Aktion wird, ist das Thema von Beweisen Sie von außen, dass zu ist.
$ curl --resolve example.com:443:<address> -m 5 -sI https://example.com/ ; echo "exit $?"
exit 28
# a timeout (28) or a refused connection (7) is the correct answer from the locked originKlare Antworten
Schützt ein CDN meinen Origin-Server?+
Nur für den Traffic, der durch das CDN läuft. WAF, TLS und Rate-Limits greifen am Edge. Eine Anfrage direkt an die Origin-Adresse trifft auf nichts davon, also muss der Origin alles abweisen, was nicht das CDN ist.
Wie findet ein Angreifer die Origin-IP hinter einem CDN?+
Am häufigsten über das eigene DNS der Domain: ein SPF-Eintrag mit den Mechanismen a, mx oder ip4, MX-Hosts im selben Bereich, Subdomains, die nie hinter einen Proxy gestellt wurden. Außerdem über Certificate-Transparency-Logs, Passive-DNS-Historie und die Header der E-Mails, die der Server versendet. Gehen Sie davon aus, dass sie gefunden wird, und sperren Sie den Origin, als wäre sie es bereits.
Was ist der Unterschied zwischen einem Scan des Hostnamens und einem Scan des Origin?+
Der Hostname löst auf das CDN auf, also prüft der Scan das Edge. Der Origin ist der Server. Die Origin-Adresse mit curl --resolve oder einem Eintrag in der hosts-Datei zu pinnen, aus einem Netzwerk, dem der Origin nicht vertraut, prüft das, was ein Angreifer prüft.
Spielt das SPF-Leck noch eine Rolle, sobald der Origin auf das CDN gesperrt ist?+
Die Web-Ports antworten nicht mehr, aber die Adresse ist weiterhin bekannt, und jeder andere Dienst darauf (SSH, E-Mail, ein Control Panel) bleibt erreichbar, wenn er nicht ebenfalls eingeschränkt wird. Ziehen Sie den SPF-Eintrag auf die echten Mail-Hosts zusammen, verschieben Sie den Origin, wo praktikabel, auf eine frische Adresse, und setzen Sie die verbleibenden Dienste auf eine Allowlist.
Soll der Origin von jemandem gefunden, gepinnt und gesperrt werden, der von außerhalb Ihres Netzwerks arbeitet?
Sprechen Sie mit einem Ingenieur.
Mit einem Ingenieur sprechenSie haben das Ende erreicht.
Setzen Sie das Gelesene um
Was betreiben Sie?
Erzählen Sie uns von Workload, Traffic und Anforderungen an die Wiederherstellung. Beginnen Sie mit dem Server-Konfigurator oder besprechen Sie die Details mit einem Ingenieur.
Geschrieben von den Ingenieuren, die die beschriebene Infrastruktur bauen und betreiben.Mit einem Ingenieur sprechen
