Remote Code Execution

Der Schweregrad von Schwachstellen in Software wird normalerweise nach dem Common Vulnerability Scoring System (CVSS) bewertet. Ein CVSS Score von 1 ist in der Regel harmlos und kann allenfalls in Kombination mit anderen Schwachstellen zu einem Problem werden.

Remote Code Execution (RCE) ist die Ausführung von Programmen über die Ferne, die grösstmögliche Schwachstelle in Computersystemen. Nicht authentisierte RCE besitzt den maximalen CVSS Score von 10.

Lieferanten von sicherer Software haben Remote Code Execution bei ihren Kunden

Um Software sicher zu betreiben, müssen fortlaufend neu bekannte Schwachstellen aus  dieser entfernt werden. Dies geschieht mit Patches, die oft zusammen mit Updates vom Hersteller zur Verfügung gestellt werden. Auf Kundenseite wird der neue, korrigierte oder erweiterte Software-Code entweder manuell oder automatisch in das bestehende System eingefügt.

Der Softwarelieferant hat damit per se die notwendigen Voraussetzungen für Remote Code Execution.

In der Regel werden Updates als Maschinencode (binär, für normale Menschen unlesbar) ausgeliefert. In offenen Systemen ist es jedoch auch möglich, nur den jeweiligen Quellcode zu beziehen, diesen zu analysieren, zu modifizieren und anschliessend daraus den Maschinencode selbst zu erstellen. Theoretisch könnte man auch versuchen, den binären Maschinencode zu verstehen (es gibt Menschen, die sind gut darin), um Änderungen auf Plausibilität zu prüfen. Der Aufwand dazu ist jedoch um ein Vielfaches höher als wenn der Quellcode vorliegt. Zum Vergleich der Quellcode eines simplen Programms:

#include<stdio.h>

int main() {
	printf("Hello World\n");
	return 0;
}

und das erste Prozent des daraus erstellten Maschinencodes:

00000000: 7f45 4c46 0201 0100 0000 0000 0000 0000 .ELF............
00000010: 0300 3e00 0100 0000 5010 0000 0000 0000 ..>.....P.......
00000020: 4000 0000 0000 0000 5839 0000 0000 0000 @.......X9......
00000030: 0000 0000 4000 3800 0b00 4000 1e00 1d00 ....@.8...@.....
00000040: 0600 0000 0400 0000 4000 0000 0000 0000 ........@.......
00000050: 4000 0000 0000 0000 4000 0000 0000 0000 @.......@.......
00000060: 6802 0000 0000 0000 6802 0000 0000 0000 h.......h.......
00000070: 0800 0000 0000 0000 0300 0000 0400 0000 ................
00000080: a802 0000 0000 0000 a802 0000 0000 0000 ................
00000090: a802 0000 0000 0000 1c00 0000 0000 0000 ................

Es ist unschwer zu erkennen, dass Updates von komplexer Software zwar theoretisch analysiert werden können, praktisch aber nicht. Dafür ist schlicht die Menge an zu verarbeitenden Informationen zu gross. Man muss seinen Software-Lieferanten vertrauen.

Kaspersky

In einem komplexen Programm wie dem Kaspersky Virenscanner oder Microsoft Windows ist es damit faktisch unmöglich, Updates auf Gutartigkeit zu prüfen. Somit ist klar: Software-Lieferanten besitzen potentiell grosse Macht über die Infrastruktur ihrer Kunden. Je tiefer die Software im Betriebssystem operiert und je weiter sie in Kundennetzwerk verbreitet ist, desto grösser diese Macht.

Wer einen Kaspersky Virenscanner auf seinem Computer hat, dessen Computer hat Kaspersky – und damit Russland – potentiell unter Kontrolle. Nur potentiell deshalb, weil man Kaspersky nicht per se schlechte Absichten unterstellen könnte. Das Geschäftsmodell von Kaspersky beruht darauf, seine Kunden zu schützen und nicht darauf, ihnen zu schaden. Rufschäden stellen für Kaspersky ein Geschäftsrisiko dar und Kaspersky wird grosse Anstrengungen unternehmen, damit nicht ein Mitarbeiter die mit dem Update-Prozess des firmeneigenen Virenscanners einhergehende Macht missbraucht. Jedoch braucht man sich keine Illusionen zu machen: Der Kaspersky Virenscanner ist eine potente Waffe. Ein Virenscanner ist so tief im System verwurzelt, dass er praktisch allmächtig ist. Wenn solche Software auf Pumpstationen von Wasserwerken oder Steuersystemen von Stromversorgungen installiert ist, dann gleicht sie einem Knopf, den Kaspersky drücken kann, um ebenjene Wasser- oder Stromversorgung lahmzulegen. Solche Aktionen mögen nicht im Geschäftsinteresse von Kaspersky liegen. Wenn jedoch russische Behörden nationales Interesse geltend machen und mit der Anwendung der umfangreichen Möglichkeiten russischer Sicherheitsdienste drohen, werden die russichen Mitarbeiter von Kaspersky einlenken müssen.

Mit dieser Feststellung wirft man dem Personal von Kaspersky kein llloyales Verhalten gegenüber seinen Kunden vor. Kaspersky hat schlicht nicht die Macht, sich über die Sicherheitsdienste seines Landes hinwegzusetzen.

Aus diesem Grund wurde Kaspersky aus den kritischen Infrastrukturen der USA verbannt. Ein guter und überfälliger Entscheid.

Nachtrag Juni 2024: Mittlerweile wurde Kaspersky-Antivirensoftware in den USA gänzlich verboten.

Windows

Mit Microsoft Windows verhält es sich gleich. Die Mitarbeiter von Microsoft geben sich alle Mühe, ihren Kunden gute Produkte und Dienstleistungen zu liefern. Und wenn die nationale Sicherheit es erfordert, werden die USA die Waffe Windows zu nutzen wissen.

Südkorea löst seine Windows 7 Clients durch ein Linux-basierendes Betriebssystem ab. China unternimmt Anstrengungen, den Gebrauch von Windows weiter einzuschränken. Und die Russen werden kaum so dumm sein, ihre kritischen Systeme mit Microsoft Windows zu betreiben. Deutschland und die Schweiz hingegen leben in einer anderen Welt.

Das Deutsche Bundesamt für Sicherheit in der Informationstechnik (BSI) hat Millionen investiert in den Versuch, den Netzwerkverkehr von Windows 10 einzuschränken. Das Resultat ist ein umfangreiches und nicht abschliessendes Dokument, dessen Implementierung einen immensen Aufwand bedeutet. Man muss sich das vorstellen: Ein Land bezieht bei seinem Lieferanten Software im Wert von hunderten Millionen Euro und anstatt darauf zu beharren, dass die Grundvoraussetzung für einen Kauf eine zuverlässige Option zur Deaktivierung sämtlicher Telemetrie wäre, nimmt dieser Staat nochmals Millionen in die Hand, um in einem herzlich aussichtslosen Unterfangen die intransparente und wuchernde Telemetrie unterbinden zu wollen.

Microsofts Marktanteil in Europa ist gewaltig, sogar grösser als in den USA. Wir Europäer bezahlen Milliarden, um uns im Zweifelsfall unsere Daten stehlen und unsere Computer fernsteuern zu lassen.

Weshalb tun wir uns das an?

Gründe dafür könnten fehlendes Sicherheitsbewusstsein und organisches Wachstum sein. In den letzten dreissig Jahren sind Belange der Sicherheit in Europa in den Hintergrund gerückt. Gleichzeitig sind IT-Infrastrukturen in enormem Tempo gewachsen. Netzwerkeffekte führen zu einer Konsolidierung der Anbieter. Mittlerweile hat es sich in der Schweiz eingependelt, dass eine normale Firma eine Windows-Infrastruktur besitzt. Bereits in den Schulen werden Kinder auf Windows trainiert. Daraus wieder auszubrechen, ist extrem schwierig. Je mehr die Netzwerke auf Windows abstützen, desto schwieriger wird ein Umbau. Die komplexen Systeme sind in vielerlei Hinsicht eng verzahnt und gerade auch die Tatsache, dass Windows nicht transparent ist, macht eine schrittweise Ablösung sehr schwierig. Nicht nur auf technischer Ebene greift der «Vendor Lock-In»: Auch das Personal ist bestens auf den Umgang mit Windows geschult. Es entsteht viel Unmut bei ziemlich jedem Ersatz von bestehender Software, ganz zu schweigen bei einem Wechsel weg von Windows.

Und trotzdem kann es so nicht weitergehen.

Wir geben Geld dafür aus, unseren Kindern nicht primär Informatikkenntnisse, sondern Kenntnisse im Anklicken von bunten Windows-Buttons zu vermitteln. Wir geben Unsummen dafür aus, dass die USA uns informationstechnisch in der Tasche haben.

Vielleicht ist die physische Distanz zu den USA mitunter ein Grund, weshalb die Schweiz diese Abhängigkeit dermassen auf die leichte Schulter nimmt.

Die Ablehnung einer zu grossen Abhängigkeit von den USA ist keine Absage an transatlantische Freundschaft. Man darf jedoch Freundschaft nicht mit Vasallentum vergleichen. Genauso wie die Schweiz enge Beziehungen zu Deutschland unterhält, eine Minimaldistanz jedoch jederzeit vehement verteidigt, sollte sie dies auch im Verhältnis zu den USA tun.

Open Source

Was tun? Chinesische oder russische Software kaufen? Wohl kaum. Das Problem würde dadurch nicht gelöst, sondern unsere Abhängigkeit bloss verlagert auf Akteure, die von Menschenrechten und Demokratie weniger halten als die USA.

Die Schweiz muss eine Open-Source Strategie fahren. Bei staatlich neu angeschafften Systemen muss der Quellcode veröffentlicht werden. Selbst oder insbesondere bei sensiblen Systemen zur automatischen Personenerkennung. Es ist im ureigenen Interesse der Schweiz, dass Erdogan, Putin oder Trump keinen exklusiven Drücker in sensiblen Bereichen besitzen.

Wenn der Quellcode nicht öffentlich ist, wird vielleicht und wirklich nur vielleicht ein Penetration Test des System durchgeführt. Da das System durch Updates dauernd im Wandel ist, ja sein muss, wäre es jedoch auch nach einem unrealistisch perfekten Penetration Test irgendwann wieder verwundbar. Kritische Systeme müssen auf Quellcode basieren, der breit genutzt, öffentlich einsehbar und mithilfe von Bug Bounty Programmen permanent auditiert ist.

Insbesondere Schulen müssen anfangen, eine Open Source Strategie zu fahren. Einerseits, um zukünftige Generationen aus dem Vendor Lock-In der Grosskonzerne zu befreien. Andererseits, um das Abschöpfen der persönlichen Daten unserer Nachkommen zu unterbinden.

Die Daten unserer Kinder gehören auf Systemen verarbeitet und gespeichert, die zumindest den Anspruch haben, diese Daten adäquat zu schützen. Es darf nicht sein, dass internationale Konzerne ein Verzeichnis aller Kinder in diesem Land, deren Begabungen und Schwächen, deren geistige Schöpfungen haben – und wir dafür sogar noch bezahlen.

Zusammengefasst

Lieferanten insbesondere von Closed-Source Software haben weitgehende Kontrolle über die Systeme ihrer Kunden. Closed-Source Software darf daher in kritischer Infrastruktur nicht eingesetzt werden.

Als Voraussetzung für langfristig grössere informationstechnische Souveränität müssen Schulen mit einer Open-Source Strategie vorangehen.