Die Webseite des Ubuntu-Derivats Xubuntu wurde kürzlich manipuliert und lieferte Malware aus. Wer also in den vergangen drei Wochen etwas von der Webseite heruntergeladen hat, sollte nochmal nachschauen, was er sich denn konkret heruntergeladen hat. Nach jetziger Erkenntnis wurde wohl eine Windows-Malware (.exe) verbreitet, konkret ein sog. Crypto-Clipper, der nach dem Einnisten die Zwischenablage manipuliert, damit Kriminelle sich in Kryptowährungstranskationen als Empfänger eintragen.
Die Malware wurde zwar somit über die offiziellen Wege verteilt, aber ließ sich für den geübten Nutzer noch unterscheiden. Schlimmer wäre es gewesen, wenn eine manipulierte ISO-Datei verteilt worden wäre.
Aber was schützt uns überhaupt davor? Diese Frage ist tatsächlich gar nicht so einfach zu beantworten, wenn wir davon ausgehen müssen, dass Angreifer Zugang zur Homepage der Distribution erhalten.
Denn effektiv fällt die Checksum bzw. der Hash, sei sie MD5, SHA1, SHA256, SHA512, als Kriterium raus. Sie wird immerhin über den gleichen Weg übermittelt wie der Download selber und kann somit mitmanipuliert werden. Checksums eignen sich allenfalls zur Überprüfung, ob der Download vollständig ist. Damit erfüllen wir das Sicherheitsziel Integrität, aber nicht Authentizität.
Die richtige Antwort lautet natürlich Signatur, meist in Form einer GPG-Signatur, und birgt gleichzeitig eine neue Frage in sich: woher weiß ich denn, welchen Schlüssel bzw. Key das „echte“ Xubuntu-Team hat? Und damit drehen wir uns eigentlich wieder im Kreis, weil die Antwort in der Mehrzahl der Fälle wiederum auf eine Webseite hinausläuft, von der man sich den Key heruntergeladen hat.
An sich ist das aber ein altes Problem, für das es verschiedene dezentrale (Teil-)Lösungsvarianten gibt:
- TOFU, also Trust-on-first-Usage, importiert einfach den erstbesten verfügbaren Schlüssel, weil hier davon ausgegangen wird, dass eine Manipulation später erst auftritt, wenn man den Schlüssel schon importiert hat
- WoT, also Web of Trust, geht von transitiven Vertrauensankern aus, dass "wenn ich A vertraue und A B vertraut, ich auch B vertraue"
Jedes der Modelle hat Vor- und Nachteile und steht einer zentralisierten Struktur gegenüber: wir vertrauen einer CA und die sorgt schon davor, die Spreu vom Weizen zu trennen. Da landen wir bei EV-Zertifikaten oder Secure Boot.
Gibt es auf die Problematik eine allgemeine, zufriedenstellende Antwort? Wahrscheinlich nicht, wir mittelfristig keiner Distributionsseite mehr vertrauen können.
Im Falle von Ubuntu haben wir vereinfachende Bedingungen: Während die Webseite in Eigenregie durch das Xubuntu-Team läuft, wird für die ISOs die Infrastruktur von Ubuntu mitgenutzt, siehe releases.ubuntu.com oder cdimage.ubuntu.com. Darüber hinaus gibt es bei Ubuntu weitere Vertrauensanker, so hält z. B. Ubuntuusers auch eine Linksammlung vor.
Es zeigt aber, wie tiefgreifend Supply-Chain-Attacks ansetzen können. Das Beispiel warnt ähnlich wie bei der xz-Lücke, dass theoretische Angriffsszenarien mittlerweile mit hoher Wahrscheinlichkeit Realität werden. Und es wird auch hier wieder das schwächste Glied in der Kette angegriffen - nicht die (auch personell) gut bestückte Ubuntu-Infrastruktur selber mit der ISO-Datei, sondern die Webseite der Schwerdistribution, die dem Copyright zufolge ihre letzte große Überarbeitung in 2012 erfahren hat.