Certificate-Transparency-Logs für die eigene Domain beobachten

Jedes öffentliche Zertifikat steht in einem Log. So finden Sie damit vergessene Subdomains, bemerken unerwartete Ausstellungen und sehen Abläufe kommen.

7 Min. Lesezeit

Seit 2018 verlangen Browser, dass jedes öffentlich vertrauenswürdige Zertifikat in mindestens zwei öffentlichen, nur erweiterbaren Logs verzeichnet ist, bevor sie es akzeptieren. Das System heißt Certificate Transparency, und es gibt es, damit ein irrtümlich oder betrügerisch ausgestelltes Zertifikat auffallen kann. Der Nebeneffekt ist eine vollständige, öffentliche, durchsuchbare Geschichte jedes Hostnamens, der je ein Zertifikat hatte, für jede Domain, auch für Ihre.

Diese Geschichte ist der nützlichste kostenlose Datensatz der externen Sicherheit. Perimetry liest ihn bei jedem Audit. Dieser Leitfaden erklärt, was er zeigt und wie der Bericht ihn nutzt.

Drei Dinge, die die Logs verraten

1. Jede Subdomain, die Sie je sichtbar gemacht haben

Jeder Hostname, der ein Zertifikat erhalten hat, steht in den Logs, ob es ihn noch gibt oder nicht: staging.ihre-domain.de, altes-crm.ihre-domain.de, test-2019.ihre-domain.de. Entwicklungsserver bekommen automatisch Zertifikate von Let’s Encrypt und sind einen Monat später vergessen; der Logeintrag bleibt für immer. Die Liste ist der Ausgangspunkt der Prüfung auf Übernahme von Subdomains und der Suche nach Hosts, an deren Betrieb sich niemand mehr erinnert.

Wildcard-Zertifikate (*.ihre-domain.de) verbergen einzelne Namen vor den Logs, was manchmal als Datenschutzgrund für sie genannt wird. Der Preis: Der private Schlüssel eines Wildcard-Zertifikats funktioniert, wenn er gestohlen wird, für jede Subdomain.

2. Wer Zertifikate für Ihre Namen ausgestellt hat, und wann

Jeder Logeintrag nennt die Zertifizierungsstelle und das Datum. Zeigt eine Domain, die von Let’s Encrypt bedient wird, plötzlich ein Zertifikat einer anderen Stelle, verdient das eine Frage: Hat eine Kollegin einen neuen Dienst eingerichtet, hat ein Hoster die Stelle gewechselt, oder hat jemand anderes ein Zertifikat für einen Namen unter Ihrer Domain erhalten? Im letzten Fall wird eine Übernahme einer Subdomain oder eine Kaperung des DNS meist so sichtbar: Der Angreifer braucht ein Zertifikat, um HTTPS auszuliefern, und das Zertifikat ist binnen Minuten öffentlich.

Perimetry vergleicht jede ausstellende Stelle mit Ihrem CAA-Eintrag (siehe DNSSEC und CAA) und meldet Ausstellungen durch eine Stelle, die der Eintrag nicht erlaubt.

3. Wann Zertifikate ablaufen

Die Logs verzeichnen den Gültigkeitszeitraum. Für die Hosts, mit denen sich das Audit tatsächlich verbindet, liest Perimetry stattdessen das aktive Zertifikat, was verlässlicher ist, und meldet einen Ablauf innerhalb von 30 Tagen als hoch und einen Ablauf innerhalb von 7 Tagen oder ein bereits abgelaufenes Zertifikat als kritisch. Für Hosts, die nicht mehr antworten, sagt das geloggte Zertifikat immerhin, was dort war.

Warum das in eine Sicherheitsdokumentation gehört

Zertifikate und ihre Schlüssel sind Teil des Kryptokonzepts, im IT-Grundschutz-Kompendium des BSI der Baustein CON.1 „Kryptokonzept“. Für Einrichtungen unter NIS2 nennt § 30 Abs. 2 Nr. 8 BSIG Konzepte und Verfahren für den Einsatz kryptografischer Verfahren ausdrücklich unter den Mindestmaßnahmen. Eine laufende Beobachtung der Logs liefert dafür zwei Belege: ein Inventar dessen, was tatsächlich ausgestellt wurde, und den Nachweis, dass unerwartete Ausstellungen bemerkt werden.

Der Änderungsteil

Der Wert der Logs liegt im Unterschied zwischen zwei Lesungen. Der wöchentliche Bericht listet unter Seit dem letzten Audit:

  • Hostnamen, die zum ersten Mal in den Logs erscheinen (neue Subdomains),
  • Hostnamen, die sich nicht mehr auflösen lassen (verschwundene Subdomains, Kandidaten für das Aufräumen von Einträgen),
  • seit dem vorherigen Audit ausgestellte Zertifikate, mit ihrer ausstellenden Stelle und den abgedeckten Namen,
  • Verlängerungen bestehender Zertifikate, die normal sind und kurz aufgeführt werden.

Ein neues Zertifikat für einen Namen, den Sie nicht kennen, von einer Stelle, die Sie nicht nutzen, ist die Zeile eines Berichts, aus der am meisten folgt; deshalb behandelt Perimetry neue Zertifikate als Teil der Änderungen, statt sie in einer Liste zu verstecken.

Von Hand nachsehen

Zwei öffentliche Dienste indexieren die Logs und lassen sich ohne Konto durchsuchen:

  • crt.sh, betrieben von Sectigo, nimmt eine Domain entgegen und liefert jeden passenden Eintrag, mit der Suche %.ihre-domain.de für alle Subdomains.
  • Cert Spotter von SSLMate bietet eine JSON-API und einen kostenpflichtigen Benachrichtigungsdienst.

Beide sind die Quellen, die Perimetry abfragt. Die Suche von Hand reicht für ein einmaliges Inventar; der wöchentliche Vergleich ist es, wofür sich ein Dienst lohnt.

Was mit den Funden zu tun ist

  • Vergessener Host, der noch auflöst: Entscheiden Sie, ob es ihn geben soll. Wenn nicht, löschen Sie seinen DNS-Eintrag und schalten Sie ab, was dort antwortet.
  • Vergessener Host, der nicht mehr auflöst: Heute nichts zu tun; prüfen Sie, dass kein verwaister CNAME- oder NS-Eintrag zurückgeblieben ist (die Prüfung auf Übernahme deckt das ab).
  • Unerwartete ausstellende Stelle: Finden Sie heraus, wer das Zertifikat beantragt hat. Hat es niemand getan, behandeln Sie es als Sicherheitsvorfall: Prüfen Sie die DNS-Einträge des Namens auf dem Zertifikat, prüfen Sie Ihr Konto beim Registrar und bitten Sie die Stelle, das Zertifikat zu widerrufen; Zertifizierungsstellen müssen auf Widerrufsanträge des Domaininhabers reagieren. Ob ein solcher Vorfall nach § 32 BSIG meldepflichtig ist, hängt davon ab, ob er erheblich ist; die Frist für die erste Meldung beträgt 24 Stunden.
  • Ablauf innerhalb von 30 Tagen: Prüfen Sie, ob die automatische Verlängerung funktioniert. Ein Zertifikat, das 30 Tage vor Ablauf nicht verlängert ist, bedeutet meist, dass der Verlängerungsjob kaputt ist.

So sieht der Bericht aus

Zertifikat läuft in 9 Tagen ab: shop.ihre-domain.de — hoch Ausgestellt von Let’s Encrypt am 3. August, gültig bis 12. November. Zertifikate von Let’s Encrypt werden normalerweise 30 Tage vor Ablauf verlängert; der Verlängerungsjob scheint stehen geblieben zu sein.

Neues Zertifikat einer Stelle, die nicht in Ihrem CAA-Eintrag steht — mittel Ein Zertifikat für dateien.ihre-domain.de wurde am 29. Oktober geloggt, ausgestellt von einer Stelle, die Ihr CAA-Eintrag (issue "letsencrypt.org") nicht erlaubt. Entweder ist der Eintrag unvollständig, oder das Zertifikat wurde nicht von Ihnen beantragt.

Certificate Transparency wurde gebaut, um Zertifizierungsstellen ehrlich zu halten. Jede Woche für eine Domain gelesen, hält es auch ein Unternehmen ehrlich darüber, was es noch betreibt.