Manchmal ist die Idee so einfach und überzeugend, dass man sich fragt, wieso das nicht schon seit Jahrzehnten üblich ist. Wovon ist die Rede? Von der security.txt.

Eine einfache Textdatei hilft dabei, Sicherheitslücken in der eigenen Website oder generell in der eigenen Organisation schnell zu stopfen. Dazu gibt man an einem festgelegten Ort in einem festgelegten Format an, an wen sich beispielsweise Sicherheitsforschende wenden können, wenn sie auf eine potentielle Lücke gestoßen sind.

Gerade in einer großen Organisation kann es nicht ganz einfach sein, den richtigen Ansprechpartner zu finden. Oft gibt es, beispielsweise auf einer Kontakt-Unterseite der Website, eine zentrale Anlaufstelle. Die ist aber im Zweifel für alles und jedes zuständig. Wenn man dort eine potentielle Sicherheitslücke meldet, muss man darauf hoffen, dass die Nachricht innerhalb der Organisation an die richtige Stelle weitergeleitet wird. Das kann schon mal ein paar Anläufe brauchen, oder die Meldung versandet komplett. Und in der Zwischenzeit steht die Lücke weiterhin offen und kann potentiell ausgenutzt werden.

Die security.txt, seit 2022 standardisiert in RFC 9116, schafft hier Abhilfe. Das ist, wie bereits erwähnt, eine einfache Textdatei an einem festgelegten Ort in einem festgelegten Format, die die passenden Kontaktinformationen enthält. Dabei sollen die Informationen sowohl für Menschen als auch für Maschinen einfach zu verstehen sein.

Die Plaintext-Datei ist bevorzugt erreichbar unter /.well-known/security.txt, alternativ im Hauptverzeichnis der Website unter /security.txt. Die Datei muss mit HTTPS erreichbar sein. Jede Zeile in der Datei beginnt mit einer Direktive, gefolgt von einem Doppelpunkt und dem dazugehörigen Wert. Dabei sind die Direktiven Contact und Expires vorgeschrieben, weitere Direktiven sind optional.

Contact liefert die zentrale Information, nämlich die Kontaktmöglichkeit. Das kann eine Mailadresse sein, eine Telefonnummer oder auch eine URL, unter der man die Informationen findet. Die Direktive kann mehrfach angegeben werden, muss aber mindestens einmal vorhanden sein. Dabei stellt die oberste Zeile die präferierte Möglichkeit zur Kontaktaufnahme dar, die folgende Zeile die erste Alternative und so fort. Wenn die Kontaktmöglichkeit ein Link ist, muss er mit https:// beginnen. Eine Telefonnnummer beginnt mit tel:, eine Mailadresse mit mailto:. Ein beispielhafter Kontaktblock kann also etwa so aussehen:

Contact: mailto:security@meine-website.tld
Contact: tel:+49 00 12345678
Contact: https://meine-website.tld/security

In der Direktive Expires gibt man an, bis zu welchem Zeitpunkt die Informationen in der security.txt als aktuell und gültig betrachtet werden können. Nach diesem Zeitpunkt sollten Hinweisgeber davon ausgehen, dass die Informationen veraltet sind. Es ist empfehlenswert, den Zeitpunkt nicht zu weit in die Zukunft zu legen: Länger als ein Jahr sollte es nicht sein, so der Standard. Entsprechend muss man die security.txt in regelmäßigen Abständen überprüfen und wo nötig aktualisieren. Dann kann auch der Zeitpunkt in Expires wieder “weitergeschaltet” werden. Angegeben wird das “Ablaufdatum” nach ISO 8601-1 / ISO 8601-2:

Expires: 2025-01-01T00:00:00z

Eine gültige security.txt kann insgesamt also beispielsweise so aussehen:

Contact: mailto:security@meine-website.tld
Contact: tel:+49 00 12345678
Contact: https://meine-website.tld/security
Expires: 2025-01-01T00:00:00z

Zusätzlich dazu gibt es noch eine Reihe von Direktiven, mit denen man weitere Angaben machen kann. Dazu zählen etwa

  • Encryption verweist auf einen kryptographischen Schlüssel (public key), mit dem eine verschlüsselte Kommunikation möglich ist. Dabei wird nicht der Schlüssel selbst in der security.txt vermerkt, sondern beispielsweise eine URL, unter der der Schlüssel erreichbar ist, ein Verweis auf einen OPENPGPKEY-Eintrag im DNS oder der Fingerabdruck des Schlüssels.
  • Preferred-Languages liefert die Information, in welchen Sprachen Informationen über eine potentielle Sicherheitslücke am besten übermittelt werden. Dabei gibt man die Sprachen als kommagetrennte Liste von Sprachkürzeln nach RFC 5646 an. Ist diese Direktive nicht angegeben, fordert der Standard Hinweisgeber dazu auf, von Englisch als gewünschter Sprache auszugehen.
  • In Canonical steht die Information, wo die security.txt zu finden ist. Das mag auf den ersten Blick überflüssig erscheinen, schließlich ist der Speicherort ja gerade festgelegt. Allerdings könnte theoretisch ein Angreifer eine gefälschte security.txt in eine Website einschleusen mit falschen Angaben. Entsprechend fordert der Standard Hinweisgeber dazu auf, den Angaben nur dann zu vertrauen, wenn die security.txt auch unter der URL gefunden wurde, die in Canonical vermerkt ist.
  • Mit der Direktive Policy kann man einen Link zu einer URL setzen, unter der Sicherheitsforschende mehr zum Umgang der Organisation mit Sicherheitsproblemen erfahren können. Wie ist das Verfahren für solche Meldungen, was gilt es zu beachten und so weiter.
  • Die Direktive Acknowledgements liefert einen Link zu einer URL, unter der die Organisation Hinweisgeber aus der Vergangenheit nennt und würdigt.
  • Unter Hiring kann man einen Link auf eine URL angeben, wo es Information zu offenen Positionen in der Organisation im Sicherheitsbereich gibt.
  • CSAF bezieht sich auf das Common Security Advisory Framework. Das ist ein Standard für die Formulierung und Weitergabe von Security Advisories. Damit soll es beispielsweise erleichtert werden, Informationen über potentielle Lücken und deren Behebung automatisiert zu empfangen, zu verarbeiten und weiterzuleiten. Im Kontext der security.txt kann diese Direktive einen Link auf den sogenannten CSAF-Provider enthalten.

Idealerweise wird die gesamte security.txt mittels einer OpenPGP Klartext-Signatur noch digital signiert. Das gibt ein zusätzliches Maß an Vertrauen, dass die Angaben in der Datei tatsächlich echt und verlässlich sind.

Auch wenn der Standard noch recht jung ist, verwenden bereits eine ganze Reihe von Organisationen eine security.txt. Dazu gehört Google, Facebook, GitHub, aber auch zum Beispiel die Bundesregierung, das zentrale Portal für die deutsche Verwaltung, Volkswagen, die Deutsche Bahn, Rewe oder die schweizerische Bundesregierung. Und auch diese kleine Website ist dabei.

Tags:

Aktualisiert: