Pi10

Politik, Medien, Gesellschaft und Krimskrams.
Recent Tweets @Vvvion

Liebe Journalisten und andere Interessierte,

die Staatstrojaner-Affäre hat hohe Wellen geschlagen und ist mittlerweile ohne technischen Background nicht mehr leicht nachzuvollziehen. Ich habe mir erlaubt, ein kleines FAQ zu verfassen, dass die technischen Aspekte hoffentlich verständlich erklärt. Der ganze Text steht unter CC-BY-SA, kann also gerne irgendwohin kopiert werden, wo er leichter zu finden ist. Denn es gibt journalistisch noch einige Fragen zu klären.

Was ist der Unterschied zwischen Quellcode und Binärcode?
Binärcode ist eine Zeichenkette aus Nullen und Einsen, die ein Computer als Befehlskette interpretieren kann. Deshalb wird der Binärcode auch als Maschinencode bezeichnet. Da Binärcode für Menschen aber nur sehr schwer verständlich ist, werden Programme in einer leichter verständlichen Sprache verfasst und dann in Binärcode übersetzt. Der Programmtext in dieser verständlichen Sprache wird Quelltext genannt. Um den Quelltext in Maschinensprache zu übersetzen gibt es passende Programme, Assembler oder Compiler genannt. Die Umkehrung ist allgemein nicht möglich. Aus einem vorliegenden Binärcode lässt sich der Quelltext nicht mehr rekonstruieren.
Oft wird der Quelltext als Bauplan beschrieben. Dies ist aber deshalb etwas irreführend, da der Binärcode dann ebenfalls ein Bauplan wäre, nur eben in einer anderen Sprache. Man kann sich das treffender als Gesetzestext vorstellen, der in einer menschlichen Sprache verfasst wurde und dann ins “Maschinesische” übersetzt wird.

Braucht man den Quellcode, um die Funktionsweisen überprüfen zu können?
Wenn man ausschließen möchte, dass ein Programm eine bestimmte Funktion enthält, ja. Da der Binärcode für Menschen kaum zu verstehen ist, ist eine Analyse in der Praxis kaum möglich. Selbst wenn man das Programm als Quellcode vorliegen hat (nach Aussage von DigiTask hatten die Behörden Einsicht in den Quellcode, nach Aussage der Behörden hatten sie dies nicht), ist es nicht in jedem Fall möglich, eine Nichtexistenz nachzuweisen.

Aber der Chaos Computer Club hat doch anhand des Binärcodes eine Analyse erstellt?
Im Gegensatz zu den Behörden, die durch eine Analyse hätten zeigen sollen, dass verfassungswidrige Funktionen nicht vorhanden sind, war der Chaos Computer Club mit der theoretisch und praktisch leichteren Aufgabe konfrontiert, die Existenz bestimmter Funktionen nachzuweisen. Dies kann man sowohl mittels des Quelltextes als auch des Maschinencodes machen. Bei letzterem ist es jedoch wesentlich schwieriger, weswegen spezielle Analyseprogramme zum Einsatz kommen. Eine solche Analyse wird nicht ohne Grund Computer-Forensik genannt.

Sie können das mit einer Kiste Lego vergleichen. Es ist leicht zu zeigen, dass man aus den vorhandenen Teilen ein Feuerwehrauto bauen kann, indem man die passenden Teile heraussucht und zusammenbaut. Zu zeigen, dass man, egal wie sehr man sich anstrengt, kein Feuerwehrauto bauen kann, ist jedoch fast unmöglich.

Was ist dann das Positivverfahren, dass die Bundesbehörden angewandt haben?
Die Behörden haben nach eigener Aussage so genannte Positivtests durchgeführt, um die Funktionalität des Trojaner zu prüfen. Ein anderer Begriff für einen solchen Test wäre “Ausprobieren”. Die geforderten Funktionen des Trojaner wurden in einer Testumgebung ausgelöst und anhand des Resultats getestet, ob sie vorhanden sind. Eine Aussage, ob darüber hinausgehende Funktionen vorhanden sind, kann man damit keinesfalls treffen.

Ist es technisch notwendig, dass der Trojaner eine Nachladefunktion hat?
Wenn man den Anspruch hat, auf jedes mögliche Update des zu bespitzelnden Programms zu reagieren, theoretisch ja. Updates, die einen gut programmierten Trojaner unbrauchbar machen, sind in der Praxis jedoch extrem selten.

Ein solches Nachladen des Trojaners als Reaktion z.B. auf ein Skypeupdate ist auch eher mit einer kompletten Neuinstallation eines anderen Trojaners zu vergleichen. Zum einen muss der Hersteller den Trojaner auf die neuen Begebenheiten einstellen und er müsste den kompletten Prüfprozess der Behörden erneut durchlaufen. An eine lückenlose Überwachung wäre nicht zu denken.


Ist die Nachladefunktion nur darauf ausgelegt, den Trojaner auf Updates des Zielcomputers zu reagieren?
Nein. So wie sie implementiert ist, ist dies technisch gar nicht möglich. Sobald man die Möglichkeit hat, Daten auf den PC zu übertragen und auszuführen, gibt es keine Grenzen für die Art der Module, die man auf den Zielrechner aufspielen kann.

Gäbe es eine andere Art, eine Nachladefunktion zu implemetieren, die nicht dafür gebraucht werden könnte, grundgesetzwidrige Module auszuführen?

Theoretisch ja, wenn man wüsste, auf welche Art von Updates man regieren muss. Die möglichen Programmpermutationen müssten schon beim Programmieren angelegt werden, was es sehr wahrscheinlich macht, dass ein Update die Grenzen dessen sprengt, auf was man den Trojaner anpassen kann.

Was ist die Keylogger?
Ein Keylogger zeichnet alle vom User gedrückten Tasten auf. Damit lassen sich vor allem Passwörter recht elegant auslesen, aber auch alle anderen Arten von Texten, die man privat verfasst. Der in Bayern eingesetzte Trojaner hatte eine entsprechende Funktion, die jedoch nicht ohne Update des Trojaners über die Nachladefunktion benutzt werden konnte.

Wieso sind Module im Programmcode enthalten, die nicht genutzt werden können?
Eine Möglichkeit wäre, dass die Programmierer aus einer umfassenderen Trojanerversion die entsprechenden Funktion schlampig entfernt und die Hauptroutinen im Programm gelassen haben. Die andere Möglichkeit wäre, dass dies ein bewusster Vorgang war um sie über die Nachladefunktion wieder aktivieren zu können.
In beiden Fällen stellt dies jedoch ein potentielles Einfalltor dar. Das kann man sich wie eine Bombe vorstellen, bei der man zum Entschärfen lediglich den Zünder entfernt, den Sprengstoff aber an Ort und Stelle lässt.

Was ist der Unterschied zwischen Applicationshot und Screenshot?
Screenshots sind Aufzeichnungen des gesamten Monitorbildes. Ein Applicationshot ist ein Bild ausschließlich vom aktuell im Vordergrund befindlichen Programmfenster. Der in Bayern eingesetzte Trojaner macht in regelmäßigen Abständen Applicationshots, zeichnet damit also zum Beispiel alles auf, was man im Internetbrowser macht. Je nach Nutzungsverhalten kann das ein Eingriff in den Kernbereich privater Lebensgestaltung sein.

Das baden-württembergische LKA sprach von einer Basisversion des Trojaners. Was ist das?
Das ist bis jetzt unklar, da sich noch kein LKA qualifiziert dazu geäußert hat, in welcher Weise sich der jeweils eingesetzte Trojaner von dem vom CCC untersuchten Bayerntrojaner unterscheidet. Der Begriff Basisversion ist deshalb irreführend, da Funktionsreste im Programmcode und die Werbung des Herstellers darauf hindeuten, dass die Standardversion des Trojaners einen weit über die Telekommunikaton hinausgehende Funktionalität hat - während man Basisversion normalerweise mit minimalen Funktionalität assoziiert.

Was ist das Halteproblem und warum wird es im Zusammenhang mit dem Trojaner genannt?
Das Halteproblem ist eine der wichtigsten Fragestellungen der Informatik. Es geht darum, ob man erkennen kann, ob ein Algorithmus stoppt oder unendlich weiterläuft. Alan Turing hat gezeigt, dass es kein generelles Verfahren gibt, mit dem man für alle Programme dieses Problem lösen kann. Das Halteproblem lässt sich auf viele andere Eigenschaften eines Programms übertragen. Im Grunde bedeutet dies, dass, selbst wenn man das Programm kennt, es teils sehr schwer ist, Aussagen darüber zu treffen, ob es gewisse Eigenschaften hat oder nicht. Im konkreten Fall des Trojaners heißt das, dass, selbst wenn man Einsicht in den Quelltext hat, es fast unmöglich ist, das Nichtvorhandensein von Funktion zu beweisen.

Die Bundesbehörden würden also etwas in der Informatik Unmögliches schaffen, wenn sie nachweisen könnten, dass der Bundestrojaner nicht über unerwünschte Funktionen verfügt?
Nein. Für ein einzelnes Programm ist kann es durchaus möglich sein, nachzuweisen, dass eine einzelne Funktion vorhanden oder nicht vorhanden ist. Dieser Beweis muss aber jedesmal neu erbracht werden. Es gibt keine allgemeine Methode, die man immer wieder für den Nachweis benutzen könnte.

Ist der Trojaner nicht DIN ISO 9000ff zertifiziert?

Nein. Nur die Dienststelle beim BKA, die für den Trojanereinsatz zuständig ist, ist mit dieser Norm zertifiziert. DIN ISO 9000ff ist ein Qualitätmanagementstandard, der einer Firma bescheiningt, ein Produkt herstellen oder eine Dienstleistung leisten zu können. Die Zertifizierung bedeutet nicht, dass der Trojaner selbst irgendeine Güteklasse hat.

Was ist AES?

AES bedeutet Advanced Encryption Standard und ist eine symmetrische Verschlüsselungstechnik, die – richtig implementiert – Daten sehr sicher verschlüsselt. Abfließende Daten vom Staatstrojaner wurden mit dieser Technik geschützt.

Was ist denn eine symmetrische Verschlüsseung?

Wenn ein und derselbe Schlüssel zum Chiffrieren und Dechiffrieren der Daten genutzt wird, spricht man von symmetrischer Verschlüsselung. AES ist ein solches symmetrisches Verfahren. Dieses Verfahren hat eine erhebliche Schwachstelle. Wenn man die Daten verschlüsselt muss man den Schlüssel entweder ebenfalls zum Empfänger senden oder er muss dem Empfänger schon bekannt sein.

Aber AES ist doch sicher?

Nur weil die Daten sicher verschlüsselt sind, heißt das aber nicht, dass die Daten auch sicher sind. Die Verschlüsselung ist schwer zu knacken, aber wer den Schlüssel hat, hat trotzdem Zugriff auf die Daten. Für eine zeitgemäße Verschlüsselung ist es deshalb ebenso wichtig zu verhindern, dass der Schlüssel in die falschen Hände gelangt. Genauso wie es empfehlenswert ist, das Passwort für seinen Arbeitsplatzrechner alle paar Wochen zu wechseln, sollte auch ein Schlüssel öfter gewechselt werden. Die Verschlüsselung ist nur bei der ersten Übertragung mit dem selben Schlüssel sicher. Je öfter man ihn verwendet, desto einfacher wird es, die Verschlüsselung zu knacken.

Üblicherweise wird heutzutage neben den Daten auch der Schlüssel versendet. Dieser ist wiederum mit einem langsamen, aber sichereren asymmetrischen Verfahren verschlüsselt.

Also ist die Sicherung des vom CCC untersuchten Trojaners nicht auf dem Stand der Technik?

Definitiv nicht. Da der Trojaner einen festen Schlüssel verwendet, der niemals geändert wird und selbst bei unterschiedlichen Trojanervarianten identisch ist, ist er sehr unsicher. Als Analogie bietet sich ein unknackbarer Banktresor an, auf den die Bankangestellten aus Faulheit einen Zettel mit der richtigen Kombination angebracht haben.

Aber vor drei Jahren war er auf dem Stand der Technik?
Nein, auch vor drei Jahren waren die Nachteile einer symmetrischen Verschlüsselung bekannt. Asymmetrische Verfahren wurden bereits in den 70ern entwickelt.
Davon abgesehen war der Trojaner auch 2010 noch im Einsatz und nach Aussage des BKA und der LKAs zutreffen, muss es sich dabei um eine aktuelle Version gehandelt habe, da der Trojaner für jeden Fall einzeln beschafft wurde.

Was bedeutet hardcoded?

Wenn ein Parameter hardgecoded ist, wurde er direkt in den Programmcode integriert und muss nicht vom Anwender eingegeben, übertragen oder vom Programm ausgelesen werden. Solche Paramter sind für jeden auslesbar, der das Programm untersucht. Der Schlüssel der AES-Verschlüsseung des Trojaners bleibt also für die gesamte Lebensdauer unverändert.

Wenn die Verschlüsseung symmetrisch ist, dann werden also eingehende Daten als auch abgehende Daten verschlüsselt?

Nein. Der Datenstrom in eine Richtung ist symmetrisch verschlüsselt. Die Symmetrie bezieht sich ausschließlich auf den Schlüssel, der sowohl zum Chiffrieren als auch Dechiffrieren verwendet wird. Die Daten, die vom Trojaner empfangen wurden, also die Befehle, waren unverschlüsselt. Ausschließlich die ausgehenden Daten waren gesichert.

Muss sich der Absender der Befehle nicht authentifizieren?

In einem sicheren System, ja. Beim vorliegenden Trojaner war das nicht der Fall. Jeder Befehl, der von der richtigen Adresse kam, die man in etwa so leicht manipulieren kann wie die Absenderangaben beim Postbrief, wurde als legitim angesehen. Damit hatte jeder Zugriff auf den Trojaner, der den richtigen Schlüssel besaß, den man wiederum einfach aus dem Programmcode entnehmen konnte.

Weswegen konnte der Chaos Computer Club feststellen, dass es keine Authentifizierung gab? Ist es nicht fast unmöglich, die Nichtexistenz einer Funktion nachzuweisen?

Der CCC hat eines Steuerungsprogramm programmiert. Der Trojaner hat die Befehle ausgeführt, ohne eine Authentifizierung vom Steuerunsgprogramm zu verlangen.

Der Datenstrom war in eine Richtung mit AES verschlüsselt, aber die Verschlüsselung war durch ein stümperhaftes Sicherheitsdesign trotzdem unsicher?

Ja, absolut.


Was ist ein Proxy?

Ein Proxy-Server ist ein Rechner, über den eine Datenverbindung im Internet umgeleitet wird. Für den Empfänger der Daten sieht es so aus, als ob die Daten vom Proxy stammen. Damit lässt sich der eigentliche Absender verschleiern. Meist werden mehrere Proxies hintereinander benutzt um eine Rückverfolgung noch weiter zu erschweren.


Wieso ist es technisch bedeutend, dass ein Proxy in den USA steht?

Technisch ist das unbedeutend. Die Gründe, warum ein amerikanischer Server angemietet wurde, müssen anderer Natur sein.

Ist es nicht wichtig, dass die versendeten Daten in das gleiche Land gesendet werden wie das abgehörte Skype, um keinen Verdacht zu erzeugen?

Aus mehreren Gründen: Nein! Da nicht Skype, sondern der Trojaner die mitgeschnittenen Daten versendet, ist es unerheblich wohin diese verschickt werden. Sollte der bespitzelte Computernutzer bemerkt haben, dass ein ungewöhnlicher Datenstrom von einem ungewöhnlichen Prozess versendet wird, wird er sich eher über den ungwöhnlichen Prozess als den Zielrechner gedanken machen. Wahrscheinlich bringt er den Datenstrom gar nicht mit Skype in Verbindung. Deswegen ist es egal, wohin der Trojaner seine Daten sendet. Ein weiterer Grund ist, dass andere angezapfte Programme die Daten nicht zu einem amerikanischen Server schicken. Nach dieser verqueren Logik wäre der amerikanische Server sogar kontraproduktiv.

Ein Proxy-Server speichert aber keine Daten, oder?

Doch. Zwar nur für die kurze Zeit, die er zum weiterleiten braucht, aber die Daten werden zwischengespeichert. Da der Empfänger nicht weiß, wie lange Datenpakete irgendwo verweilen, kann man die Daten ungestört kopieren oder manipulieren.

  1. billie-cook hat diesen Eintrag von pi10 gerebloggt
  2. eliquidonlineshop hat diesen Eintrag von pi10 gerebloggt
  3. ostpirat hat diesen Eintrag von pi10 gerebloggt
  4. von pi10 gepostet