-
36C3 Vorspanngeräusche
-
Herald: Heute Abend geht es in diesem Saal
über Staatstrojaner, also Trojaner, also
-
Schadsoftware im engeren Sinne, bloß halt
nicht solche von Kriminellen, sondern
-
solche von Unternehmen, die das
professionell mehr oder weniger legal
-
machen. Staatstrojaner sollte man gar
nicht erst bauen, wenn man sie baut,
-
kommen sie in die falschen Hände. Wie das
passiert und wie man dann unser
-
Rechtssystem und unsere Gerichte nutzen
kann, um etwas dagegen zu tun auf dem
-
vernünftigen rechtsstaatlichen Weg, das
erklärt uns unser Ulf Buermeyer, der in
-
vielen anderen Fällen auch schon
Rechtsbeistand für Clubthemen geleistet
-
hat. Und Thorsten Schröder ist auch dabei.
Oldschool Hacker, 20 Jahre dabei, 30 Jahre
-
weiß ich nicht. Und hat sich das
angeschaut, was da in dieser Schadsoftware
-
von FinFisher eigentlich drinsteckt.
Großen Applaus für Ulf Buermeyer und
-
Thorsten Schröder.
Applaus
-
Ulf Buermeyer: Hi, schön, dass ihr da
seid, herzlich willkommen!
-
Thorsten Schröder: Hallo, hallo.
U: Ja, herzlich willkommen zu „FinFisher,
-
See You in Court!“ Falls es der eine oder
andere kennt, eine amerikanische
-
Bürgerrechtsorganisation hat „See you in
Court!“ mal zu Donald Trump gesagt, als er
-
illegal versucht hat, Immigration in die
Vereinigten Staaten zu verhindern. Und wir
-
widmen uns genau dem umgekehrten Thema,
nämlich der illegalen Auswanderung von
-
fieser Software. Und bevor wir dazu
kommen, noch ein klitzekleiner historischer
-
Rückblick. Keine Sorge, das wird kein
krasser Juratalk, dafür bürgt schon
-
Thorsten.
T: Ich versuch’s.
-
U: Aber in diesem Talk geht es um ein
weiteres Kapitel im Kampf gegen digitales
-
Ungeziefer, und zwar eine ganz besondere
Form von digitalem Ungeziefer.
-
T: Staatstrojaner, die wir auch schon vor
ein paar Jahren mal auf einem Kongress
-
bereits besprochen haben. Aber eben
Software, die von Staaten eingesetzt
-
werden, gegen Kriminelle, gegen
Oppositionelle und so weiter.
-
U: Thorsten hat schon gesagt, das ist ein
Thema, das den Club und auch mich
-
persönlich schon seit Jahren beschäftigt.
Das Foto zum Beispiel ist vom 25C3. Da gab
-
es nämlich eine gute Nachricht aus
Karlsruhe zu feiern. Vielleicht erinnert
-
sich der eine oder andere noch daran. Das
Bundesverfassungsgericht hatte 2008 ein
-
neues Grundrecht erfunden, nämlich das
Grundrecht, das wir heute kennen als das
-
Computer Grundrecht oder, auf schlau,
das Grundrecht auf Integrität und
-
Vertraulichkeit informationstechnischer
Systeme. Eine Bezeichnung, auf die nur
-
Menschen kommen können, die viel zu lange
Jura studiert haben. Jedenfalls hatten wir
-
damals, als Conz und ich diesen Talk
gemacht haben, vor dem roten Vorhang
-
gehofft, dass dieses Grundrecht etwas
ändern würde. Aber leider müssen wir
-
sagen …
T: Tat es nicht. Wir haben 2011 einen
-
Staatstrojaner gefunden, der genau diese
Rechte nicht eingehalten hat.
-
Möglicherweise war das zu dem Zeitpunkt
bei diesen Entwicklern auch noch nicht
-
angekommen. Diesen Trojaner hatten wir
einmal auf einer Festplatte in einem
-
braunen Umschlag zugetragen bekommen. Ja,
den haben wir dann analysiert und einen
-
sehr ausführlichen Bericht auch dazu
verfasst und einen Talk auf dem 28c3.
-
U: Hier sieht man das,
Jugendbildnisse von Thorsten und mir.
-
T: Da war ich noch richtig jung, wie man
sieht. Da habe ich auch das erste Mal mit
-
Ulf auf einer Bühne gestanden.
Lustigerweise stehen wir nur auf der
-
Bühne, wenn’s um Staatstrojaner geht.
U: Das ist auch derselbe schwarze Pulli
-
bei mir, glaube ich. Ich habe den extra
nochmal gewaschen.
-
T: Ja, da haben wir den Staatstrojaner
vorgestellt und nicht nur beschrieben,
-
sondern auch demonstrieren können, wie der
gegen diese Grundrechte verstößt, indem er
-
einen Rechner in eine Wanze verwandelt und
somit in jedem Teil der Wohnung auch
-
abhören kann und man Software
nachladen kann und so weiter.
-
U: Mit dem Software nachladen war
vielleicht der krasseste Verstoß.
-
Eigentlich hatte das
Bundesverfassungsgericht nämlich sehr
-
genau vorgeschrieben, was ein Trojaner so
können darf und was nicht. Es hatte diese
-
Trojaner eben nicht grundsätzlich
verboten, aber relativ hohe Hürden
-
aufgestellt. Und diese Hürden allerdings
hat der Trojaner aus dem Hause DigiTask
-
damals nicht eingehalten. Thorsten und ein
paar andere Leute aus dem Club hatten ja
-
sogar so eine Fernsteuersoftware gebaut,
ihr konntet den quasi fernsteuern mit
-
einer kleinen Windowssoftware.
T: Also eigentlich sollte dieser Trojaner
-
ja nur Skype abhören und vielleicht mal so
ein bisschen die Chatlogs mitlesen. Bei
-
der Analyse ist allerdings aufgefallen,
dass er weitaus mehr kann, unter anderem
-
auch Software nachladen, aber eben auch
Screenshots anfertigen und auch
-
Screenshots von nicht abgeschickten Emails
und Gedanken und was auch immer man in so
-
einen Rechner auch reintippt.
U: Im Grunde genau das Gruselszenario,
-
das wir gerade auch beim Club immer wieder
kritisiert hatten, weswegen Staatstrojaner
-
so gefährlich sind. Das war nun leider
allerdings nicht das Ende der Debatte, wie
-
es sich für so einen richtigen Zombie
gehört, sind Staatstrojaner einfach nicht
-
kaputt zu bekommen. Und so haben wir in
Deutschland seit 2017 wieder eine
-
Rechtsgrundlage für Staatstrojaner, eine
neue sogar, nämlich dieses Mal im
-
Strafverfahren. Das Bundeskriminalamt darf
die schon viel länger einsetzen seit 2009
-
allerdings nur zur Abwehr von Terrorismus
und diesmal wirklich. Diesmal steht es
-
sogar im Gesetz. Aber seit 2017 gibt’s ein
neues Gesetz, das im Prinzip in den
-
meisten Strafverfahren erlaubt, so
Trojaner einzusetzen. Deswegen hat die
-
Gesellschaft für Freiheitsrechte dagegen
geklagt. Darüber haben wir letztes Jahr
-
schon kurz gesprochen, weil wir sagen, was
dieser Trojaner kann, ist wieder mal
-
verfassungswidrig. Und wir kritisieren
aber nicht nur, dass der die Grenzen nicht
-
einhält, die das Bundesverfassungsgericht
aufgestellt hat, sondern wir fragen uns,
-
wie kommt der Trojaner eigentlich rein ins
System? Wie kommt er eigentlich rein? Bin
-
ich denn etwa schon drin? Damit geht’s uns
um die IT-Sicherheit insgesamt, weil wir
-
uns fragen, welche Sicherheitslücken
werden eigentlich freigehalten, offen
-
gehalten, ganz bewusst, damit so ein
Trojaner ins System eingespielt werden
-
kann. Denn nur in Ausnahmefällen haben die
Behörden direkt Zugriff auf das System. In
-
aller Regel müssen die Trojaner aus der
Ferne eingespielt werden und dazu braucht
-
man eben Sicherheitslücken. Deswegen die
Minimalforderung der GFF in diesem
-
Verfahren: Das geht gar nicht! Wenn man
schon eine Rechtsgrundlage für Trojaner
-
schafft, dann muss man auch klare
Spielregeln aufstellen, welche
-
Sicherheitslücken eigentlich ausgenutzt
werden dürfen. Denn sonst gibt es einen
-
großen Anreiz 0-days oder
Sicherheitslücken, die dem Hersteller noch
-
nicht bekannt sind, geheimzuhalten.
Und damit werden alle Computer
-
auf der Welt die Sicherheitslücke
weiter aufweisen. Apropos auf der Welt:
-
nicht nur deutsche Behörden finden
Trojaner außerordentlich sexy. Ganz im
-
Gegenteil. Die Weltkarte des Trojaner-
Einsatzes ist bemerkenswert rot.
-
T: Zumindest was diese FinFisher Spyware
angeht, gibt es hier vom Citizen Lab
-
erstellt, diese Karte, wo diese
Schadsoftware schon überall gefunden bzw.
-
eingesetzt wurde. Das ist natürlich schön,
dass wir uns in Deutschland darum bemühen,
-
da entsprechende Rechtsgrundlagen zu
schaffen. Wenn wir das hinkriegen, dass es
-
so eine Rechtsgrundlage gibt oder eben
diesen Schutz der Privatsphäre, dann heißt
-
das noch lange nicht, dass
wir das Problem los sind.
-
U: Ganz im Gegenteil!
T: Das Ding ist halt, dass gerade in
-
diesem Fall wir davon ausgehen können,
dass diese Software, die hier weltweit
-
eingesetzt wird, um Leute
auszuspionieren, Made in Germany ist.
-
U: Das ist genau das Problem. Made in
Germany, aber eben nicht nur eingesetzt in
-
Deutschland, sondern auch in Staaten, wo
es mit der Rechtsstaatlichkeit vielleicht
-
nicht ganz so entspannt zugeht. Denn
besonders spannend sind Trojaner natürlich
-
für Menschen, die aus guten Gründen Stress
haben mit ihrer Opposition. Zum Beispiel
-
hier Präsident José Eduardo dos Santos aus
Angola. Der, jedenfalls nach Berichten,
-
auf der Kundenliste von FinFisher steht.
Oder Hamad bin Isa Al Chalifa, der sich
-
selbst im Jahr 2002 zum König von Bahrain
ausrief. Und bei der Rangliste der
-
Pressefreiheit aus dem Jahr 2017,
herausgegeben von Reporter ohne Grenzen,
-
belegt Bahrain den stolzen Platz 164 von
180. Mit anderen Worten: Pressefreiheit
-
bedeutet in diesem Land, zu schreiben, was
der Chef will. Die Presse in Bahrain
-
gehört zu den unfreiesten der Welt. Zensur
und repressive Gesetzgebung verhindern
-
freien Journalismus. Sechs Blogger und
Bürgerjournalisten sitzen in Haft, und das
-
alles wird unter anderem ermöglicht
dadurch, dass gezielt versucht wird,
-
Menschen zu hacken, die sich kritisch
äußern. Aber, die Probleme beginnen direkt
-
vor unserer Haustür.
T: Ja, wir haben auch in Europa, bzw. den
-
Anwärtern für die Europäische Union,
Staatslenker, die auch ein Problem haben
-
mit ihrer eigenen Bevölkerung und mit der
Opposition. Und nun gab es da halt diverse
-
Unruhen. Es gab einen Putschversuch. Im
Sommer 2016 gab es einen Putschversuch in
-
der Türkei. Die Türkei wandelte sich
danach zunehmend in ein eher repressives
-
Regime.
U: Und nach dem gescheiterten
-
Putschversuch wurden insgesamt mehr als
50 000 Menschen verhaftet. Mehr als 140 000
-
Menschen wurden aus ihren Berufen
entfernt. Die Türkei ist inzwischen das
-
Land geworden, in dem im Verhältnis zur
Bevölkerungszahl weltweit die meisten
-
Journalisten und Journalistinnen
inhaftiert sind. Eine lupenreine
-
Demokratie? Zurzeit befinden sich
mindestens 34 Journalisten in politischer
-
Gefangenschaft. Hunderte Zeitungen und
andere Medienorgane wurden geschlossen.
-
T: Es ist auch sehr, sehr auffällig, wie
dringend immer darauf hingewiesen wird,
-
dass die Leute, die dort inhaftiert sind,
unter Terrorverdacht stehen. Jeder, der
-
gerade zur falschen Zeit am falschen
Ort ist, wird dann auch mit diesem
-
Terrorismusverdacht erst
einmal weggesperrt.
-
U: Erfreulicherweise allerdings gibt es
trotz aller Repressalien auch in der
-
Türkei noch eine Oppositionsbewegung.
Beispielsweise, das sieht man auf diesem
-
Bild im Sommer 2017, als Oppositionelle in
der Türkei unter dem Motto adalet auf die
-
Straße gingen, um gegen das Regime zu
protestieren. Daraufhin allerdings hatte
-
der türkische Geheimdienst eine besonders
perfide Idee. Denn Demonstrationen gegen
-
den großen Meister gehen natürlich gar
nicht. Deswegen stellte der Geheimdienst
-
eine Website ins Netz, die – das seht ihr
auf dem Bild – auf den ersten Blick so
-
aussieht, als könnte das eine
Organisations-Website der
-
Oppositionsbewegung sein. Das sieht ja so
aus mit dem Logo und dem Bild, als wenn
-
das Menschen wären, die hinter diesen
Protesten stünden. Und auf dieser Seite,
-
von der man denken könnte, es sei eine
Protestwebsite, gab es dann diesen
-
schönen Button unten rechts, der so
aussieht, als ginge es dort in den Google
-
Play Store. Dort wurde eine Android-
Software, so eine APK-Datei, also eine
-
Android-Installationsdatei, zum Download
bereitgehalten für einige Wochen. Das
-
Problem ist nur, ihr ahnt es schon: es
handelte sich nicht etwa um einen
-
Messenger oder eine Kalender-App, mit der
die Oppositionellen sich hätten
-
organisieren können. In Wirklichkeit
handelte es sich dabei um einen Android-
-
Trojaner, den wir im weiteren als den
adalet-Trojaner bezeichnen. Die Frage ist
-
nur …
T: Woher kommt der Trojaner? Wir sind der
-
Meinung, nach aktuellem Stand, dass dieser
Trojaner, der in der Türkei gegen diese
-
Bewegung eingesetzt wurde, dass er aus
Deutschland stammt. Und wir haben einiges
-
an Arbeit investiert, um das auch mit
vielen Belegen begründen zu können, diesen
-
Verdacht.
U: Denn: Man kann sich das vorstellen,
-
Anna Biselli hat das so schön gesagt vor
zwei Tagen, wenn irgendwo ein Trog ist,
-
dann sind die Schweine nicht weit. Und
ebenso ist es bei Cyberwaffen. Wenn ein
-
Diktator mit Dollarbündeln wedelt, dann
finden sich immer wieder zwielichtige
-
Software-Unternehmen, die mit solchen
Trojanern Geld verdienen wollen.
-
Menschenrechte hin oder her.
Beispielsweise die Unternehmensgruppe
-
FinFisher aus München. Selbstbeschreibung:
Excellence in Cyber Investigation. Gegen
-
solche Trojaner-Hersteller vorzugehen ist
rechtlich schwierig. Das Problem dabei ist
-
nämlich, dass solche Trojaner unter
bestimmten Voraussetzungen ja legal
-
eingesetzt werden können. Das heißt
einfach nur Trojaner zu bauen ist nicht
-
illegal. Das gilt ganz besonders, wenn
auch deutsche Behörden zur dankbaren
-
Kundschaft gehören, beispielsweise nach
Presseberichten von Netzpolitik.org, das
-
Bundeskriminalamt, aber auch das Berliner
Landeskriminalamt. Mit anderen Worten:
-
FinFisher hat beste Beziehungen zu
deutschen Behörden. Aber man darf diese
-
Trojaner nicht einfach so exportieren,
denn sie gelten als Cyberwaffen. Der
-
Export von Trojanern ist zwar nicht
generell verboten, aber sie stehen auf der
-
sogenannten Ausfuhrliste. Das bedeutet,
man braucht vor dem Export von Trojanern
-
normalerweise eine Genehmigung der
Bundesregierung. Nur die EU-Staaten und
-
einige weitere Länder sind von dieser
Erfordernis, eine Genehmigung einzuholen,
-
ausgenommen. Und nun hatten wir in dem
adalet-Fall einen sehr, sehr schönen Fall.
-
Die türkische Regierung setzt einen
Trojaner gegen ihre Opposition ein. Mit
-
der türkischen Regierung gab es ohnehin
schon Stress genug. Und dieser Trojaner
-
stammt nun auch noch mutmaßlich aus
Deutschland. Und der Export war auch noch
-
illegal, weil es dafür keine Genehmigung
gab. Jedenfalls sagt das die
-
Bundesregierung. Und daher war für uns,
das heißt in diesem Fall Netzpolitik.org
-
zum Beispiel und die Gesellschaft für
Freiheitsrechte, ganz schnell klar, das
-
muss ein Fall für die
Staatsanwaltschaft werden. Wir haben
-
deswegen eine Koalition geschmiedet gegen
den illegalen Export von Staatstrojanern
-
unter Koordination der Gesellschaft für
Freiheitsrechte. Das hat da meine Kollegin
-
Sarah Lincoln gemacht. Reporter ohne
Grenzen, Netzpolitik.org und das ECCHR aus
-
Berlin – das European Center for
Constitutional and Human Rights – ihre
-
Kompetenz gebündelt, und wir haben
gemeinsam eine Strafanzeige geschrieben
-
und sie hier in diesem Sommer eingereicht,
um zu erreichen, dass die Verantwortlichen
-
bei der Firma FinFisher zur Rechenschaft
gezogen werden. Weil wir finden, genauso
-
wie deutsche Waffen nicht auf der ganzen
Welt mitmorden dürfen, genauso dürfen auch
-
nicht mit deutschen Trojanern
Menschenrechte weltweit oder in diesem
-
Fall in der Türkei verletzt werden.
Applaus
-
U: Hier haben wir nochmal
den Ablauf zusammengestellt.
-
T: Das ist jetzt die Timeline der Anzeige
bzw. wann das Sample, wir reden hier von
-
einem Sample, wenn wir jetzt von so einem
APK, so einer Schadsoftwareinstallation
-
reden, wann das verbreitet wurde, das war
dann im Juni 2017. Das ist definitiv nach
-
Einführung der Export-Richtlinien. Man
kann hier mit Gewissheit sagen, dass die
-
Zielgruppe die Oppositionellen in der
Türkei waren. Das ergibt sich aus dem
-
Kontext dieser Website und allem
drumherum. Und ja, es gab eine Anfrage an
-
die Bundesregierung, die letztlich
bestätigte, dass es in diesem Zeitraum
-
zwischen 2015 und 2017 keinerlei
Genehmigungen in dieser Richtung gab.
-
U: Damit war für uns klar, das reicht
jedenfalls für eine Strafanzeige.
-
Natürlich müssen noch ein paar Fakten
ermittelt werden. Aber jedenfalls reicht
-
es, um die Staatsanwaltschaft auf diesen
Fall aufmerksam zu machen. Und wir haben
-
auch eine ganze Reihe von Indizien, dass
der Fall sehr ernst genommen wird. Im
-
September 2019 haben wir diese
Strafanzeige dann veröffentlicht, unter
-
anderem auch auf Netzpolitik.org. Und wir
können mit Sicherheit davon ausgehen, dass
-
das die Herrschaften hinter FinFisher
nicht begeistert hat. Denn sie haben
-
Netzpolitik.org abgemahnt und dazu
gezwungen, den Artikel vorzeitig vom Netz
-
zu nehmen. Erfreulicherweise allerdings
hatte die Spendenkampagne von Netzpolitik
-
einigen Erfolg. Ich hoffe jedenfalls,
finanziell wird sich das nicht lohnen für
-
die Abmahner, aber klar, der Artikel ist
zurzeit nicht verfügbar, jedenfalls nicht
-
bei Netzpolitik. Es soll ja in diesem
Internet auch Archivseiten geben. Und dort
-
könnt ihr ihn nach wie vor lesen in seiner
vollen Schönheit. FinFisher und Kohl
-
schlagen zurück. Wir denken, getroffene
Hunde bellen. Und außerdem lassen wir uns
-
davon natürlich nicht einschüchtern. Wir
haben – Wir heißt in diesem Fall die
-
Gesellschaft für Freiheitsrechte – den Club
gebeten, sich die bisherigen Beweismittel
-
gegen FinFisher nochmal ganz genau
anzusehen und zu überlegen, ob es nicht
-
noch weitere Beweise geben könnte. Und das
Ziel dieser Mission war, noch genauer
-
nachzuweisen, dass tatsächlich die
Voraussetzungen vorliegen für den
-
Straftatbestand aus dem
Außenwirtschaftsgesetz. Ja, das ist die
-
Norm des deutschen Rechts, die
ungenehmigte Exporte unter Strafe stellt,
-
genaugenommen §18, Absatz 2, Nr. 1
und Absatz 5 Nr. 1 dieses
-
Außenwirtschaftsgesetzes. Ich erspare euch
die juristischen Details. Es ist im
-
Einzelnen ziemlich komplex.
Diese Norm verweist auf die
-
Außenwirtschaftsverordnung und die
wiederum auf einen langen Anhang, wo dann
-
quasi einzelne Kategorien von Gütern
aufgeführt sind, vom Kampfpanzer bis zum
-
Staatstrojaner kann man
dann nachlesen, was man
-
alles nur mit Genehmigung ausführen darf.
Und wir sind der Auffassung, dagegen wurde
-
verstoßen. Zwei rechtliche Fragen standen
im Mittelpunkt unserer Bitte an den Chaos
-
Computer Club, doch noch einmal ganz
genau, sich diese Trojaner anzuschauen.
-
Zwei rechtliche Fragen, oder, wie soll ich
sagen, zwei Tatsachenfragen, zwei Fakten-
-
Fragen, die aber eine große rechtliche
Bedeutung haben. Und zwar zum einen …
-
T: Zum einen der Herstellungszeitpunkt,
was wichtig ist und relevant ist, wenn es
-
darum geht herauszufinden: wurde diese
Software nach dem Stichtag Mitte 2015
-
hergestellt?
U: Ja, genau.
-
T: Wenn wir nachweisen können, dass eine
Software erst zu einem bestimmten
-
Zeitpunkt hergestellt wurde, dann können
wir auch davon ausgehen, dass sie erst
-
anschließend exportiert oder verkauft oder
eingesetzt wird. Und die zweite wichtige
-
Frage, wenn wir da jetzt mal ganz neutral
an die Sache rangehen. Wer hat dieses
-
Sample hergestellt? Es gibt den
Anfangsverdacht, dass es sich hierbei um
-
FinSpy von FinFischer handelt. Aber das
ist eben die Frage, die geklärt werden
-
sollte. Und das haben wir als Chaos
Computer Club dann einfach mal getan.
-
U: Und dazu gab es ja schon bisherige
Analysen. Andere Leute haben sich auch
-
schon mal FinFischer-Samples oder FinSpy-
Samples angeschaut. Diese Analysen waren
-
auch für euch der Ausgangspunkt.
T: Genau, so ganz am Anfang hieß es ja
-
auch, vor allen Dingen könnt ihr euch
nicht mal diese ganzen Analysen anschauen,
-
die da bisher veröffentlicht wurden, unter
anderem sehr viel von Citizen Lab. Die
-
haben sehr viel in diese Richtung gemacht,
nicht nur FinFischer Produkte werden da
-
von denen analysiert, sondern auch noch
andere. Dann ging es eben darum, zu prüfen,
-
ob das alles plausibel ist, was da drin
ist, ob man das alles reproduzieren kann,
-
ob man das Ganze dann auch nochmal als
Bericht so zusammenfassen kann, dass es
-
für deutsche Ermittlungsbehörden und ein
deutsches Gericht auch verwertbar ist.
-
Dazu haben wir uns dann auch noch ein
Gutachten von anderen Dritten angeschaut,
-
die so etwas ähnliches auch schon getan
haben. Da gibt es schon einen
-
Plausibilitätscheck aus 2018 von einer
Firma. Und 2018 hat Access Now auch noch
-
einmal einen Bericht, eine Zusammenfassung
all dessen veröffentlicht. Und jetzt für
-
die Klage gab es dann auch nochmal eine
technische Analyse. Ganz speziell dieses
-
adalet-Samples. Also dem eigentlichen
Gegenstand der ganzen Klage. Und wir haben
-
uns natürlich diese ganzen Dokumente
angeguckt, haben halt geschaut, sind da
-
irgendwo vielleicht noch Lücken, die wir
füllen können? Gibt es Dinge, die wir
-
ausführlicher beschreiben können,
transparenter machen können? Und das war
-
dann letztlich die Hauptarbeit, die wir
dabei geleistet haben. Wer jetzt erwartet,
-
dass es irgendwie total bahnbrechende
Neuigkeiten gibt über irgendwelche FinSpy-
-
oder FinFisher Trojaner, die Leute muss
ich leider enttäuschen. Wir haben halt
-
sehr viel der Arbeit anderer Leute
verifiziert. Wir haben aber auch noch ein
-
paar andere Indizien gefunden, die sehr
viel schwerer wiegen als manche andere
-
Punkte, die in den Reports vorher genannt
werden.
-
U: Und ihr habt schon, finde ich, einige
sehr, sehr spannende technische Details
-
noch rausgekramt, zu denen wir gleich noch
kommen. Z. B diese Provisionierung, wie
-
werden die Trojaner eigentlich angepasst?
Das fand ich schon ein sehr, sehr
-
spannendes technisches Detail. Ihr habt
dann vorgestern war es, ne, gestern war
-
es, die Analyse des CCC veröffentlicht.
T: Genau das haben wir gestern schon
-
veröffentlicht, damit man ein bisschen
Material hat. Ich hoffe auch, dass es,
-
wenn es die Zeit erlaubt, im Anschluss an
diesen Talk noch ein bisschen Q&A gibt.
-
Ja, wir haben einen sehr ausführlichen
Bericht darüber geschrieben, wie wir das
-
Ganze bewerten und wie wir die einzelnen
Indizien gewichten und zu was für einem
-
Schluss wir da gekommen sind. Was uns halt
sehr wichtig war an der Arbeit: Wir haben
-
am Ende auch alles veröffentlicht, im
Gegensatz zu all den anderen
-
Organisationen, die diese Arbeit auch
schon und auch sehr viel Arbeit investiert
-
haben. Wir haben sämtliche Samples, diese
Schadsoftware-Samples haben wir auf GitHub
-
veröffentlicht. Gibt’s nachher
noch einen Link.
-
Applaus
T: Es gibt auch in diesem GitHub
-
Repository gibt es auch sämtliche
Werkzeuge und Zwischenergebnisse, die wir
-
in unseren Analysen erlangt haben und
entwickelt haben. Mit dem Ziel, dass jeder
-
in der Lage ist, unsere Ergebnisse zu
reproduzieren. Das heißt, ihr habt die
-
Samples, ihr habt die Werkzeuge und die
Vorgehensweise, die wir ausführlich in
-
diesen 60 Seiten Bericht beschrieben
haben. Und ihr könnt das alles
-
nachvollziehen. Transparenz von unserer
Seite. Wir haben eine lückenfüllende
-
Zusammenfassung geschrieben.
U: Und nochmal ganz kurz der „Auftrag“
-
Selbstverständlich kann man
dem CCC keinen Auftrag geben.
-
Insbesondere hat die GFF den CCC
natürlich nicht bezahlt. Ja, das ist
-
ganz wichtig zu sagen. Es ist nicht
irgendwie eine gekaufte Stellungnahme,
-
sondern wir haben einfach nur gebeten,
wenn ihr euch dafür interessiert, schaut
-
euch das doch mal an. Das wäre wahnsinnig
hilfreich. Und ich finde in der Tat
-
großartig, dass der Club jetzt in der
Person von Thorsten insbesondere sich die
-
Zeit genommen hat. Ja, das ist nochmal
ganz kurz zusammenfassend der Auftrag.
-
Analysen verifizieren, die es schon gibt,
Lücken schließen in der Indizienkette und
-
natürlich weitere Samples gezielt
analysieren und die beiden zentralen
-
Fragestellungen aus rechtlicher
Perspektive: Wann ist dieser adalet-
-
Trojaner aus der Türkei oder der in der
Türkei eingesetzt wurde, hergestellt
-
worden und wo kommt er tatsächlich her?
Ja, und das sind jetzt eine ganze Reihe
-
von Samples, die hier auf GitHub.
T: Genau das. Hier sehen wir jetzt kurz
-
mal so ein Listing der Samples, die wir
analysiert haben. Das sind auch die
-
Original Schadsoftwaredateien. Da ist also
dieser Trojaner drinne, das befindet sich
-
gerade alles in dem GitHub Repository von
Linus Neumann, mit dem ich diese ganze
-
Analyse durchgeführt habe. Vielen
Dank auch nochmal an Linus.
-
Applaus
TS: Wir haben einige Nächte verbracht mit
-
diesen tollen Trojanern.
U: Eingesetzt wurden diese Samples eben
-
in Türkei, sagst du, in Vietnam und in
Myanmar. Das sind so die Länder, wo wir es
-
wissen.
T: Ja, was heißt Wissen, oder eben sehr
-
stark annehmen. Es ist nicht so leicht zu
sagen, wo sie eingesetzt wurden, wer sie
-
gekauft hat. Man kann das schlussfolgern
aus verschiedenen Indizien. Bei der Türkei
-
ist es relativ leicht, sag ich mal im
Kontext gesehen, weil wir ja auch diese
-
Website hatten, die sich dann auch gezielt
gegen die Zielgruppe richtete. Es gibt
-
auch Samples, wo man relativ sicher sagen
kann, dass sie z. B. in Myanmar eingesetzt
-
wurden, weil da eine sehr bekannte,
burmesische Social Platform genutzt wurde.
-
Also, dieser Name wurde genutzt, um dieses
Sample zu verbreiten. Das ist ein klares
-
Indiz, dass das gegen diese
Bevölkerungsgruppe ging. Bei Vietnam weiß
-
ich nicht genau. Diese Atrribution ist
halt eh schon ein schwieriges Thema.
-
Genauso schwierig ist es eben
herauszufinden, wo es eingesetzt wurde,
-
weil die ganzen Metadaten, die man dann in
den Samples findet, IP-Adressen,
-
Telefonnummern und so weiter. Die
sagen am Ende nicht viel aus.
-
U: Dazu sehen wir gleich noch ein
bisschen mehr. Aber fangen wir doch
-
vielleicht an mit der ersten zentralen
Frage, nämlich der Feststellung des
-
Herstellungszeitpunktes. Dazu habt ihr
euch eine ganze Reihe Gedanken gemacht,
-
wie man darauf kommen könnte.
T: Die zentralen Fragen waren, wann wurde
-
das hergestellt? Also haben wir uns all
diese ganzen Samples angesehen und haben
-
geguckt, ob wir da Indizien finden, dass
diese Software möglicherweise nach 2015
-
hergestellt wurde. Da gibt es verschiedene
Möglichkeiten. Grundsätzlich alles, was
-
wir jetzt in den Binaries und in diesen
Schadsoftware-Samples finden. Das ist dann
-
so der frühestmögliche Zeitpunkt. Wenn ich
beweisen kann, dass zum Beispiel eine
-
Komponente dieser Schadsoftware erst im
Mai 2016 überhaupt hergestellt oder
-
veröffentlicht wurde, dann bedeutet das
natürlich auch, dass das ganze
-
Schadsoftware-Sample erst nach diesem
Zeitpunkt hergestellt werden kann. Das ist
-
der frühestmöglichen Zeitpunkt. Das kann
also auch durchaus sein, dass es 2017
-
zusammengebaut und verschickt und verkauft
wurde. Das wissen wir nicht so genau.
-
U: Aber jedenfalls, eine Library, die
noch nicht veröffentlicht war, kann nicht
-
eingebaut werden, ne?
T: Genau deswegen haben wir sehr gezielt,
-
geh nochmal zurück, sehr gezielt nach
solchen Artefakten von Compilern gesucht
-
oder irgendwelche Zeichenketten aus
irgendwelchen Open-Source Produkten. Es
-
gibt aber auch in diesen APK-Dateien. Das
sind halt so die Android-Apps, liegen als
-
APK vor, das ist technisch gesehen nichts
weiter als ein ZIP-Archiv, was
-
wahrscheinlich alle von euch kennen
dürften. Und in diesen Archiven liegen
-
dann auch Zertifikate der Entwickler, die
dieses Paket veröffentlichen. Und anhand
-
dieser Zertifikate kann man z. B. auch
einen Zeitstempel einsehen, wann dieses
-
Zertifikat erstellt wurde. Das sagt jetzt
für unsere juristische Sichtweise nicht
-
besonders viel aus, weil man kann
ja ein Zertifikat mit einem beliebigen
-
Zeitstempel herstellen. Ich kann ja sagen,
ich gehe zurück in die Vergangenheit, oder
-
ich erstelle das in der Zukunft.
Das kann man alles machen.
-
U: Nur warum sollte man das tun?
T: Warum sollte man das tun? Vielleicht
-
gibt’s einen guten Grund dafür. Aber wir
haben uns ja auch aus diesem Grund und
-
genau deshalb Samples angeschaut, die bis
ins Jahr 2012 zurückreichen. Also wir
-
haben uns diese Trojaner-APKs angesehen,
die 2012 bis 2019 in die Öffentlichkeit
-
gelangten. Und wir können zumindest sagen,
wenn wir jetzt im Jahr 2019 sehen oder ein
-
Muster erkennen können, dass bestimmte
Zertifikate vielleicht auch in der
-
Vergangenheit genutzt wurden, dann kann
man sich schon fragen, ob das jetzt
-
plausibel ist oder nicht. Ansonsten gibt
es noch öffentliche Dokumentation. Dazu
-
gehörte das Sample selber. Das haben wir
auch nur aus dem Internet aus
-
verschiedenen Quellen, aber gegeben.
Deswegen ist es wichtig, sämtliche 28
-
Samples, die wir da hatten, anzuschauen:
Wann wurden die eigentlich im Einzelnen
-
hergestellt?
U: Ein Ansatzpunkt war der
-
Herstellungszeitpunkt von Bibliotheken.
T: Genau, hier sehen wir ein disassembly
-
von einem Shared Object, was da
mitgeliefert wurde, das bedeutet, diese
-
Android-Anwendungen sind ja eigentlich nur
Java-Anwendungen. Das heißt, da liegt Java
-
Bytecode drin und in Java hat man auch die
Möglichkeit, über das Java Native
-
Interface auch anderen Code aufzurufen,
der zum Beispiel vom Betriebssystem
-
bereitgestellt wird, oder eben in C, also
mit anderen Programmiersprachen
-
entwickelte Libraries, die mitgeliefert
werden und in dem Fall war; in diesem
-
Sample gab’s noch so Shared Object Files.
Das ist halt unter Linux-Betriebssysten haben
-
sie die Endung .so, unter Windows gibt's
ein ähnliches Konzept. Das sind dann
-
dynamische Bibliotheken, die als DLL
mitgeliefert werden. Und in dem Fall gab
-
es eine Bibliothek, in der wir bestimmte
Zeichenketten gefunden haben, die darauf
-
hindeuten, dass das definitiv erst 2016
hergestellt worden sein kann. Das sieht
-
man hier daran, das ist SQLite das ist ein
Open-Source-Projekt, so eine Open-Source
-
Datenbank. Und die hinterlässt dann in
diesem Kompilat diesen String. Das ist ein
-
Datum und irgendein Hash. Und wenn wir
uns dann mal anschauen, okay, wann taucht
-
denn dieser String eigentlich auf? Dann
können wir uns auf der Open-Source-Projekt-
-
Webseite anschauen, dass da tatsächlich
die SQLite Version 3.13 im Mai 2016
-
veröffentlicht wurde. Und lustigerweise
sehen wir hier genau diese Checksumme mit
-
genau dem gleichen String und somit können
wir eigentlich 100% davon ausgehen, dass
-
das hier sich sicherlich niemand
ausgedacht hat im Jahr 2012.
-
Ulf lacht
TS: Es ist ziemlich unwahrscheinlich.
-
Applaus
T: Ich hoffe ich laser dir nicht die Augen.
-
UB: Passt schon, ich schrei dann.
Und dann habt ihr euch die
-
Zertifikate angeschaut,
mit denen die Software signiert worden
-
ist, ne, die einzelnen Zertifizierungen?
T: Das haben wir auch gemacht, das haben
-
aber auch die anderen Researcher gemacht,
die sich das vor uns angeschaut haben. Die
-
haben das natürlich genauso analysiert.
Aber wir wollten ja auch die Analysen
-
analysieren, und das haben wir getan.
Deswegen der Vollständigkeit halber in
-
unserem Report natürlich auch nochmal ein
Zeitstrahl. Wir haben später noch eine
-
schöne Tabelle, wo man das gut sehen kann.
Hier sehen wir den Output, wenn man sich
-
dieses Zertifikat mal anschaut, was der
Entwickler genutzt hat, um dieses Paket zu
-
signieren. Hier sehen wir, dass es erzeugt
wurde im Oktober 2016. Passt also
-
zeitlich, wenn wir davon ausgehen, dass
das Zertifikat erstellt wurde, als dieses
-
Sample zusammengebaut wurde. Liegt halt
auch nach Mai 2016. Bis wann das gültig
-
ist, ist eigentlich völlig egal. Ja, das
Schöne wäre jetzt eigentlich, was hätten
-
wir jetzt hier, wenn wir da jetzt
irgendwelche Werte manipulieren, wenn wir
-
es zurück datieren? Schön. Dann könnten
wir Researcher in die Irre führen, wenn
-
jetzt hier zum Beispiel stehen würde, das
Zertifikat wurde 2012 erstellt. Dann
-
könnten wir überhaupt gar nichts darüber
aussagen. So vielleicht schon eher, was
-
hier noch auffällig ist, das wird später
noch relevant, es gibt auch diese
-
Fingerprints für diese Zertifikate. Das
sind diese langen SHA-Werte hier. Das ist
-
ein kryptographischer Hash über dieses
Zertifikat, über den key und der ist
-
einmalig. Also, wenn wir uns jetzt in den
28 Samples alle Zertifikate angucken, dann
-
vergleichen wir natürlich auch diesen
SHA-Wert, weil das ist der Fingerprint,
-
das drückt das schon ganz gut aus. Das ist
ein Fingerabdruck, wenn wir genau diesen
-
Fingerabdruck in einem anderem Sample
finden, dann können wir zumindest auch
-
eine Aussage darüber treffen, dass beide
Samples, unabhängig davon, wann sie
-
jeweils veröffentlicht wurden, dass beide
vom gleichen Hersteller stammen. Und das
-
ist auch ein wichtiger Punkt für diese
ganze Schlussfolgerung am Ende.
-
U: Zunächst mal aber können diese beiden
Aspekte, die du genannt hast, die
-
Bibliotheken und die Zertifikate im Grunde
den Schluss tragen, dass dieses adalet-
-
Sample jedenfalls nicht vor dem 18. Mai
2016 erstellt worden sein kann. Einfach
-
weil es da diese SQlite-Bibliothek
noch nicht gab.
-
T: Genau, das ist ein so schweres Indiz,
dass ich definitiv sagen kann, dass es
-
nicht vor Mai 2016 hergestellt worden ist.
UB: Damit liegt dieses Datum jedenfalls
-
nach dem Inkrafttreten der Verbote, von
denen ich anfangs gesprochen habe. Das
-
heißt also, dieses Sample wäre dann, wenn
es tatsächlich in die Türkei exportiert
-
worden ist, unter Verstoß dagegen
exportiert worden. Zweiter Aspekt
-
vielleicht noch wichtiger, die
Feststellung der Herkunft. Was für ein
-
Vieh war denn jetzt eigentlich dieses
adalet-Trojanerchen?
-
T: Dafür haben wir, wie ich sagte,
Samples aus dem Zeitraum von sieben Jahren
-
uns angeschaut und geguckt. Was haben die
für Gemeinsamkeiten? Was lässt darauf
-
schließen, dass die aus einem Hause
stammen? Da braucht uns in dem Moment noch
-
gar nicht interessieren, wie dieses Haus
überhaupt heißt. Uns ist nur wichtig
-
gewesen herauszufinden, ob die einen
Zusammenhang haben. Dafür haben wir diese
-
Code-Signing-Zertifikate miteinander
verglichen, wie ich eben schon sagte. Es
-
gibt noch ein paar andere Indizien
übrigens, für diese Zeitgeschichte. Aber
-
die spielt jetzt hier keine besonders
große Rolle. Der Coding-Style ist auch
-
eine wichtige Rolle. Wie ich schon sagte,
diese APKs, diese Anwendungen, sind
-
eigentlich in Java programmiert. Man kann
auch noch Shared-Object-Bibliotheken
-
daneben legen, die vielleicht in anderen
Programmiersprachen entwickelt wurden.
-
Aber man kann sowohl im Dekompilat des
Java-Codes als auch im Disassembly dieser
-
Bibliotheken einen gewissen Coding-Style
ablesen. Man kann verschiedene
-
Variablennamen miteinander vergleichen,
wenn keine Obfuscation am Start war. Also
-
Mittel, um Code-Herkunft und Code-Struktur
zu verschleiern. Wir können die Code-Basis
-
miteinander vergleichen, also auf einer
rein funktionellen Ebene. Wir können uns
-
anschauen. Sind die Funktionen in der
einen Anwendung vorhanden, die aus dem
-
Jahr 2012 stammt, und sind die gleichen
Funktionen auch vorhanden in der
-
Anwendung, die aus 2014 stammt und 2017
und so weiter? Das können wir schon
-
miteinander vergleichen und auch Diffs
feststellen, also Unterschiede zwischen
-
den Versionen. So können wir von einer
Evolution sprechen oder eine Beobachtung
-
dieser Evolution einer bestimmten
Schadsoftware. Wir haben sehr stark darauf
-
geachtet, ob wir zum Beispiel sehen
können, welche Sprache, welche
-
Muttersprache die Entwickler sprechen. Das
sehen wir an manchen Stellen sehr
-
deutlich. Komme ich nachher noch mit
Beispielen zu. Dann schauen wir uns auch
-
an, wann und wie die
provisioniert wurden und ob es
-
da irgendwelche Ähnlichkeiten gibt.
U: Provisionierung bedeutet quasi, dass
-
dieser Trojaner jeweils angepasst wurde
für den spezifischen Einsatzzweck. Das
-
heißt, dieser Trojaner ist im Prinzip eine
Massenware oder jedenfalls eine vielfach
-
eingesetzte Software. Aber für das
jeweilige Land wurden dann
-
unterschiedliche Parameter gesetzt. Dazu
kommen wir auch gleich noch. Das Spannende
-
dabei ist, was Thorsten gerade beschrieben
hat. Das sind zunächst mal vor allem
-
Parallelen zwischen unterschiedlichen
Samples. Das heißt, da kann man sagen,
-
diese Samples kommen wohl mehr oder
weniger aus derselben Küche. Aber das sagt
-
ja zunächst mal noch nicht, welche Küche
das ist. Um das sagen zu können, braucht
-
es noch einen zweiten Schritt, nämlich das
Finden von Samples bestätigter Herkunft.
-
Das heißt, wenn man weiß, bestimmte
Samples gehören zusammen, kommen aus
-
demselben Haus, und man kann dann
wenigstens ein Sample oder zwei Samples
-
einem ganz konkreten Hersteller zuweisen.
Dann gilt es, jedenfalls mit sehr hoher
-
Wahrscheinlichkeit, auch für alle anderen
Samples aus dieser Herstellungslinie. Und
-
da muss man ganz ehrlich sagen, sind wir
zu großer Dankbarkeit verpflichtet.
-
T: Ja, Phineas Fisher hatte einen
größeren Batzen Daten aus dem Hause
-
FinFisher getragen und veröffentlicht.
U: Tipp!
-
T: Es gibt da ein 41 Gigabyte großes
File, wo sehr viele Samples drinne sind,
-
die wir auch analysiert haben.
U: Hier sieht man das.
-
T: Vielen Dank nochmal Phineas Fisher!
Applaus
-
U: Mit anderen Worten, es ist für diese
Analyse ein großer Vorteil, dass es
-
bestimmte Samples gibt, die aus diesem
Phineas Fisher Hack stammen und die man
-
mit sehr großer Wahrscheinlichkeit
aufgrund vieler Indizien dieser
-
Firmengruppe FinFisher zuordnen kann. Das
heißt, man hat 2 Anker, oder wieviele
-
Samples sind da drin? 2?
T: Jaja.
-
U: Das heißt, man hat quasi 2 Ankerpunkte
und kann sich dann von diesen Ankerpunkten
-
über den Vergleich von Samples weiter
vorhangeln. Aber das ändert natürlich
-
nichts daran: Attribution is hard.
T: Sehr hart. Wir suchen also natürlich
-
noch weiter nach Indizien, die auf den
Urheber schließen lassen. Die
-
Attributierung von Schadsoftware, wenn mal
irgendwie wieder der Bundestag gehackt
-
wurde oder irgendjemand anders, da kommen
dann immer ganz schnell Leute, die sagen,
-
die Russen waren es, die Chinesen waren es
und so weiter. Das ist alles nicht so
-
leicht. Wir müssen diese Attributierung
allerdings auch ein Stück weit durchführen
-
und hangeln uns dann aber auch entlang an
dem jeweiligen Kontext, zum Beispiel, wo
-
so ein Sample eingesetzt wurde. Wie dieses
adalet-Sample zum Beispiel. Es gibt ja
-
grundsätzlich die Möglichkeit, das auch zu
faken. Wenn ich sage, ich bin jetzt
-
irgendwie irgendeine Hackergruppe oder ein
Konkurrent von FinFisher, dann will ich
-
die vielleicht in einem schlechteren Licht
dastehen lassen. Und fake jetzt vielleicht
-
mal irgendwie Malware von denen und mache
dann so False-FlagGeschichten. Das ist
-
natürlich alles möglich, aber in diesen
einzelnen Fällen relativ unwahrscheinlich.
-
U: Auch sowas könnte
man theoretisch faken.
-
T: Das kann man definitiv faken. Das ist
jetzt, was wir jetzt hier sehen, die
-
verarbeitete Ausgabe von so einer
Konfiguration, von so einer
-
Provisionierung. wie Ulf schon sagte,
diese einzelnen Samples werden ja nicht
-
jedes Mal neu kompiliert und neu
entwickelt. Da gibt es dann einfach
-
verschiedene Parameter, die für den Case
des jeweiligen Einsatzes notwendig sind.
-
Und das wäre dann so eine Konfiguration.
Da steht dann jetzt zum Beispiel, ja der
-
Proxy fürs nach-Hause-Telefonieren hat die
IP-Adresse oder den Hostnamen. Dann sieht
-
man hier auch noch eine TargetID, in dem
Fall adalet. Das hat, wer auch immer
-
diesen Trojaner zusammengebaut hat, sich
ausgedacht. Dann gibt es noch
-
Telefonnummern, wo SMS hingeschickt werden
oder wo angerufen werden kann. Und in dem
-
Fall kann man ganz gut sehen, dass diese
Attributierung schlecht, hard ist. Denn
-
die IP-Adresse stammt aus Deutschland. Die
Telefonnummer ist eine israelische, und
-
die andere Telefonnummer ist eine
internationale Mehrwert-Rufnummer. Da
-
lässt sich jetzt noch nicht so stark
darauf schließen, dass das tatsächlich von
-
türkischen Behörden eingesetzt wurde.
U: Etwas anders sieht es aus bei der
-
Familie der Samples, die ihr analysiert
habt. Denn da hilft euch ja das
-
Zertifikat, das zum Signieren verwendet
wurde.
-
T: Genau das sind ein paar Indizien, die
wir da herausgepickt haben, anhand derer
-
wir irgendwie bestimmte Gruppen
zusammenfassen können. Also was gehört
-
definitiv zusammen, was nicht? Diese Liste
sieht jetzt sehr wirr aus. Was hier grün
-
markiert ist, ist das adalet-Sample, von
dem wir quasi so ausgehen. Wir wollen also
-
Parallelen finden zu diesem adalet-Sample.
Alles, was hier rot markiert ist, hat eine
-
Parallele. Das stammt nämlich alles aus
dem Leak von Phineas Fischer. Alles was da
-
oben gelb markiert ist, wurde 2012
schon mal veröffentlicht und es gibt
-
entsprechende Analysen und verschiedene
Indizien, die darauf hinweisen, dass es
-
auch aus dem Hause FinFischer stammt. Wenn
wir jetzt mal davon ausgehen, dass das
-
hier aus dem Hause FinFisher stammt, weil
es in dem Leak war, dann haben wir hier
-
ein Sample, das nennt sich „421and“. „421“
scheint die Versionsnummer zu sein, „and“
-
heißt Android. Wir sehen hier, das ist
dieser Fingerprint von diesem Zertifikat,
-
was ich vorhin noch erklärt habe. Diesen
Fingerprint finden wir hier oben wieder.
-
Zwei Jahre vorher sind da oben schon
Samples in die Öffentlichkeit gelangt, die
-
genau den gleichen Fingerprint haben. Und
dann haben wir hier oben dieses „Andriod“.
-
Das ist ein Tippfehler, aber der stammt
halt so von denen. Das muss ein Demo-
-
Sample sein. Da hat diese Firma offenbar
mal gezeigt, was dieser Trojaner so kann.
-
Und dann haben sie den halt so
provisioniert, mit Zeichenketten, also
-
Webserver-URLs, die auf Gamma
International schließen lassen. Und es
-
wurde aber auch noch ein in-the-wild-
Sample damit signiert, mit dem gleichen
-
Zertifikat. Dieses „derise“ ist das, was
in Vietnam identifiziert wurde und auch
-
vietnamesische IP-Adressen, Telefonnummern
und so weiter drinne hat. Wie gesagt
-
Attributierung ist schwierig, aber an dem
Fall kann man auf jeden Fall sagen, dass
-
hier Demo-Samples und in-the-wild-Samples
definitiv aus einem Hause stammen, anhand
-
dieser Zertifikats-Fingerprints.
U: Der nächste Schritt, den ihr gemacht
-
habt, ist tatsächlich euch mal die Struktur
der einzelnen Samples anzuschauen, also
-
insbesondere wie diese Software von ihrem
logischen Ablauf her funktioniert.
-
T: Genau. Wir haben uns dann verschiedene
Funktionen angeguckt und haben halt mal
-
geguckt „Was sehen wir so an den
Funktionen?“. Ich habe ja gesagt, wir
-
schauen uns auch so ein bisschen diesen
Coding-Style an, was für Variablen werden
-
da genommen, wenn wir uns Java-Code
angucken können, der nicht obfuskiert ist.
-
Hier sehen wir zwei Samples und zwar das,
was aus dem Leak stammt von 2014. Das ist
-
auch irgendwie so eine Art Demo. Und 2016
– also, ich sage jetzt mal 2016, weil das
-
definitiv noch 2016 hergestellt wurde –
das adalet-Sample. Sie hatten hier so ein
-
Refactoring durchgeführt. Also eine
Umbenennung aller Variablen und
-
Funktionsnamen und so weiter. Das ist ein
und dieselbe Funktion, das kann man sehen,
-
wenn man sich den Code durchliest. Jetzt
wollte ich hier aber keinen Source Code an
-
die Wand werfen. Deswegen habe ich hier so
einen Call Flow, abgeleitet aus dem Source
-
Code. Das ist eine Funktion namens Run. In
dem Sample von 2014 liegt das in einer
-
Klasse namens SMS. In dem Sample adalet
legt es in einer Klasse namens s1ms, was
-
in Leetspeak hin geschrieben wurde. Und
wir sehen hier ganz klar, dass in dieser
-
Funktion effektiv der gleiche Code
ausgeführt wird mit ganz marginalen
-
Abweichungen. Das kann, zumindest nach
unserer Einschätzung, definitiv kein
-
Zufall sein. Das heißt, das ist eine
Weiterentwicklung der ganzen Samples aus
-
dem Jahr 2012, 2014 und jetzt auch in
2016. Das ist die Information, was wir da
-
rausziehen konnten.
U: Und zugleich kann man ja auch Schlüsse
-
ziehen aus diesem Leetspeak. Denn wenn man
sich überlegt: der Begriff SMS ist etwas
-
typisch Deutsches. Man versteht es
vielleicht noch in anderen Ländern, aber
-
man spricht normalerweise nicht von SMS.
Jedenfalls nicht im englischen Sprachraum
-
und insbesondere, wenn man dann noch das
Verb „simsen“ sich überlegt. Also in
-
Leetspeak dann „S 1 M S“ wie simsen. Das
ist was ganz typisch deutsches. Und ich
-
jedenfalls kann mir nicht so richtig
vorstellen, dass ein türkischer
-
Programmierer mit einem Mal von "simsen"
spricht.
-
T: Genauso wenig kann ich mir vorstellen,
dass das ein englischsprachiger
-
Programmierer tut. Dieses Wort „simsen“
wurde irgendwann mal modern und jeder hat
-
es benutzt sodass es sogar in den Duden
aufgenommen wurde. Und das Wort simsen
-
findet man halt wirklich nur im deutschen
Sprachgebrauch, und es ist schwer
-
vorstellbar, dass jemand, der nicht
Deutsch-Muttersprachler ist, dieses Wort
-
in einem Code verwenden würde, wenn es im
Kontext um SMS abfangen geht und das Ganze
-
auch noch mit Leetspeak verschleiert wird.
U: Aber ihr habt ja noch eine andere
-
Technologie, Stichwort Verschleierung,
gefunden, die außerordentlich pfiffig ist,
-
muss man sagen. Jedenfalls ich war sehr
beeindruckt, als ich diese Analyse gelesen
-
habe, nämlich wie eigentlich diese Daten,
diese Parameter, die wir eben schon kurz
-
gesehen haben zur Provisionierung
eigentlich in den Viren-Samples abgelegt
-
oder eigentlich versteckt worden.
T: Da hat sich der Entwickler ein
-
Verfahren ausgedacht, das ist so eine Art
Covered Channel, also ein versteckter
-
Kanal, so ein bisschen ähnlich wie
Steganografie, wenn man das kennt. Ich
-
verstecke Informationen in
Dateistrukturen, sodass man das
-
automatisiert oder mit bloßem Auge nicht
besonders leicht erkennen kann. Was für
-
Konfigurationen muss man hier verstecken?
Wie ich schon sagte, es gibt halt so die
-
Telefonnummern, die angerufen werden oder
wo SMS hin geschickt werden. Es gibt IP-
-
Adressen, zu denen sich die Schadsoftware
verbindet, damit ein Command-and-Control-
-
Server da übernehmen und lenken kann. Und
wie lange die Maßnahme dauert et cetera.
-
Das alles ist in einer Konfiguration
abgespeichert, die irgendwie in dieses APK
-
rein gedrückt werden muss.
U: Und dabei ist euch aufgefallen, als
-
ihr euch die Samples angesehen habt, dass
alle ein identisches Verfahren einsetzen.
-
T: Die benutzen alle das identische
Verfahren. Also, wir haben das jetzt auch
-
nicht entdeckt. Dieses Verfahren haben
andere, Josh Grunzweig beispielsweise
-
2012, auch schon in einem Blog-Beitrag
veröffentlicht, als er FinSpy-Samples
-
analysiert hat. Das ist nichts
bahnbrechendes Neues, aber wir konnten
-
zumindest jetzt einfach mal über die
7 Jahre hinweg beobachten, dass dieses
-
Verfahren in allen Samples eingesetzt
wird. Und damit, da es eben auch kein
-
Standardverfahren ist, um in irgendwelchen
APKs Schadsoftware zu verstecken oder
-
überhaupt Daten zu verstecken, können wir
im Grunde genommen davon ausgehen, dass
-
diese Technologie wirklich von einem
Hersteller stammt. Das heißt, dass all
-
diese Samples, diese 28 Stück, die wir uns
angeguckt haben, dass die aus einem Hause
-
stammen.
U: Und wie sieht das jetzt genau aus? Das
-
hier ist der Datei-Kopf. Nee, das ist
nicht der Datei-Kopf sondern …
-
T: Das sind Teile eines … Also ein APK
ist, wie ich schon sagte, technisch
-
gesehen nur ein ZIP-Archiv. Und in diesem
ZIP-Archiv stecken Metainformationen über
-
die im Archiv enthaltenen Dateien. Und
dafür gibt es dann diese Central Directory
-
Structure und verschiedene Felder. Das ist
dann so ein Header. Da sind verschiedene
-
Bytes und Bitfelder festgelegt, die die
Eigenschaften dieser im Archiv enthaltenen
-
Datei beschreiben. Eine wichtige
Metainformation, die genutzt werden kann,
-
um Daten zu transportieren, ohne dass man
es leicht sieht, sind diese
-
Dateisystemattribute. Die ZIP-
Spezifikation sieht vor, dass es 2 Byte
-
oder 16 Bit für interne File-Attribute
gibt. Und sie sieht vor, dass es 32 Bit
-
für die Dateisystemattribute auf dem Ziel-
Betriebssystem gibt. Somit haben wir hier
-
6 Byte pro Central Directory Structure zur
Verfügung, um Daten zu verstecken, denn
-
wir können da ja beliebig idiotische File-
Attribute setzen. Und das ist das, was sie
-
gemacht haben. Die ergeben dann zwar, wenn
man die Dateien entpackt, auf dem Ziel-
-
Betriebssystem keinen Sinn mehr, müssen
sie aber auch nicht, weil die Daten gar
-
nicht genutzt werden. Das sind einfach
irgendwelche Dummy-Dateien. Das sieht man
-
hier. Hier sehen wir im Hex-Editor so ein
APK und diese Strukturen. Wir haben diese
-
Signatur, diese PKZIP-Signatur ganz am
Anfang, die ist hier gelb markiert, und
-
ein Offset von 36 Byte später, kommen dann
diese 6 Byte Dateisystemattribute. Und wer
-
sich so ein bisschen mit Unix oder
Dateisystemen auskennt, sieht auch, dass
-
das jetzt hier keine Bitfelder sind für
Attribute, die Sinn ergeben. Nein, was wir
-
hier sehen, sind BASE64 codierte Daten.
Und wenn man jetzt dieses ZIP-File einmal
-
parst und sich alle diese CDS-Signaturen
herauspickt und dann diese Dateisystem …
-
diese Dateiattribute aneinander hängt,
anschließend diesen ganzen String, der
-
dabei herausfällt BASE64-dekodiert, dann
fällt daraus später eine Binärdatei, die
-
genau die Konfiguration dieser
Schadsoftware beinhaltet. Das wurde,
-
wie gesagt, alles schon mal
dokumentiert, wir haben das jetzt einfach
-
alles noch einmal nachvollzogen und auf
alle Samples angewendet und geguckt, was
-
dabei rausfällt. Das heißt dann im ersten
Schritt: Wir müssen die Dateien
-
extrahieren. In einem zweiten Schritt
müssen wir die Dateien parsen.
-
U: Und das Tool dazu findet sich jetzt
wieder auf der Website. Das heißt, das
-
müsst ihr uns oder vorallem Thorsten und
Linus nicht glauben. Das könnt ihr alles
-
selber nachprüfen, wenn ihr eines der
Samples runterladet und die Tools darüber
-
laufen lasst. Und wir hoffen, dass auf
diese Art und Weise noch weitere Samples
-
analysiert werden können. Das ist jetzt
noch mal ein Überblick, wie sowas dann in
-
der Gesamtheit aussehen kann. Wir müssen
ein ganz bisschen springen an der Stelle
-
und schauen, wo wir dann weitermachen.
Genau das ist dann so eine Konfiguration,
-
wie sie in der Summe aussieht.
T: Genau, das ist jetzt dieses „Andriod“
-
Beispiel, was 2012 schon auf VirusTotal
gelandet ist. Hier sehen wir, wie ich
-
schon angedeutet habe, es gibt dann so
Hostnamen, die schon den Namen beinhalten.
-
Ich muss aber auch nochmal dazusagen: Es
hat jetzt keine besonders große
-
Aussagekraft, wenn man ein Sample für sich
betrachtet und solche Zeichenketten da
-
drin findet. Denn Josh Grunzweig, der das
schon 2012 in seinem Blog dokumentiert
-
hat, hat auch schon ein Tool
veröffentlicht auf GitHub, womit man genau
-
so eine Konfiguration herstellen kann und
in so ein APK reindrücken kann. Das heißt,
-
man könnte im Grunde
genommen sowas auch faken.
-
U: Das heißt, die Aussage ist tatsächlich
weniger „Was steht drin in diesen
-
versteckten Konfigurationsinformationen?“
Sondern die Aussage ist: Alle Samples
-
verwenden die gleiche Technik, die gleiche
proprietäre und auch ziemlich ausgefuchste
-
Technik, um diese Daten zu verstecken in
der APK-Datei. Und diese Gleichheit ist
-
die eigentliche Aussage dieser Analyse.
Alle untersuchten Samples nutzen eben
-
diesen proprietären Mechanismus. Und du
sagst, das Format wurde aber
-
weiterentwickelt?
T: Es sieht ganz danach aus, wenn man,
-
sich den Inhalt dieser Binärdatei anguckt.
Sie benutzen dann so eine Art Directory,
-
um Nummern bestimmten Funktionen oder
Variablennamen zuzuweisen. Das ist auch
-
der Punkt, was es einfach macht, diese
Konfiguration zu parsen, zu verarbeiten
-
und herauszufinden, welche
Werte bedeuten was.
-
U: Diese Werte sind zum
Beispiel diese hier.
-
T: Beispielsweise das. Im adalet-Sample
gibt es, wie ich vorhin schon gezeigt
-
habe, verschiedene Werte, die jetzt auch
nicht unbedingt auf die Türkei hindeuten.
-
Dann gibt es auch aus dem gleichen
Zeitraum noch einen flash28-Sample, was
-
große Ähnlichkeiten und Parallelen mit dem
adalet-Sampel aufweist. Da wird z. B. ein
-
Proxy aus Neuseeland genommen, ansonsten
die gleiche Telefonnummer und dieses
-
derise-Sample hat, wie ich auch schon
angedeutet habe, sämtliche Werte, die
-
davon relevant sind, zeigen Richtung
Vietnam. Ob das etwas aussagt? Keine
-
Ahnung. In jedem Fall haben wir auch all
das, diese ganzen Configs, die wir daraus
-
extrahiert haben, haben wir auch auf
GitHub veröffentlicht. Das findet ihr bei
-
Linus in der FinSpy-Dokumentation, wo
auch der Bericht und alle anderen Samples
-
liegen.
U: Genau und vielleicht mag sich ja mal
-
jemand diese Telefonnummern anschauen,
vielleicht kennt die ja jemand aus
-
irgendwelchen anderen Zusammenhängen. Das
könnten noch ganz interessante
-
Rückschlüsse werden. Da würden wir uns
über Hinweise freuen. Und insgesamt sieht
-
man dabei – das ist die Übersicht über die
Samples, die ihr analysiert habt. Aber man
-
sieht, denke ich, ganz gut, dass es da so
etwas wie eine Familienstruktur gibt.
-
T: Genau. Der einzige, der hier so ein
bisschen aus der Reihe fällt, ist das Ding
-
hier. Das Ding, hab ich jetzt einfach mal
Container genannt, weil es sonst keinen
-
Namen hatte. Das ist ein APK, was
überhaupt keine Parallelen zu den anderen
-
aufweist. Aber dieses eine Sample hebt
sich insofern von den anderen ab, als dass
-
wir das jetzt hier noch mit aufgenommen
haben, das dropped, also legt, quasi eine
-
Schadsoftware APK überhaupt erst ab. In
diesem grau markierten Sample gibt es
-
einen lokalen Root Kernel Exploit gegen
den Linux-Kernel auf Android-Devices. Die
-
nutzen da die als „Dirty COW“ bekannte
Schwachstelle aus, um Root auf dem Telefon
-
zu werden. Da liegen dann noch Werkzeuge,
um persistent Root zu bleiben. Und dann
-
liegt da halt auch noch ein Sample,
nämlich dieses hier, dieses PyawApp. Ich
-
weiß nicht, wie man das ausspricht. Das
ist das Ding, wo wir davon ausgehen, dass
-
es in diesem Kontext Myanmar zugeschrieben
wird. Weil Pyaw ein sehr bekanntes
-
soziales Netzwerk in der Region ist.
U: Und die Antwort aus technischer
-
Perspektive. Vieles davon haben wir im
Grunde schon gesagt. Aber in der
-
Zusammenfassung …
T: Wie gesagt, sämtliche Samples, die wir
-
hier analysiert haben, benutzen den
gleichen Mechanismus für die
-
Provisionierung. Diese ganzen
Konfigurationen liegen in einem sehr
-
speziellen, Binärformat vor. Das ist kein
allgemeingültiges Format, muss also
-
definitiv aus einem Hause stammen. Wir
haben große Ähnlichkeiten auch unterhalb
-
des Java-Codes, wo es auch Hinweise darauf
gibt, dass es aus deutschem Hause stammt.
-
Wir können ganz genau sagen, dass das
adalet-Sample frühestens im Jahr 2016
-
hergestellt wurde. Und die Samples
zwischen 2012 und 2014 können auch ganz
-
eindeutig der Firma FinFisher zugeordnet
werden, weswegen da eigentlich in der
-
Schlussfolgerung auch klar gesagt werden
kann, dass all diese Samples, die wir uns
-
zwischen 2012 und 2019 angeguckt haben,
der Firma oder der Firmengruppe FinFisher
-
zuzuordnen ist.
U: Und all das könnt ihr nochmal im
-
Detail nachlesen in der Studie des CCC,
die schon veröffentlicht wurde gestern und
-
wie gesagt, ganz wichtig, wir möchten die
eigentlich gerne noch auf Englisch
-
publizieren. Wir haben deswegen schon mal
eine URL für ein Pad auf die Folie
-
geworfen. Das Pad gibt’s da nicht, das
füllen wir noch aus mit einer Roh-
-
Übersetzung aus Google Translate. Oder
vielleicht mag das auch jemand von euch
-
machen.
T: Wir würden das gerne crowdsourcen.
-
U: Das ist ein bisschen die Idee dabei,
weil das schon ein bisschen Arbeit ist,
-
und wir schaffen das einfach schnell,
jetzt, während des Kongresses nicht. Aber
-
vielleicht hat jemand Lust uns zu helfen.
Das wird die URL. Und vor allem ganz
-
wichtig: Check the facts! Das werden wir
natürlich aus GFF-Perspektive machen. Wir
-
gehen davon aus, dass es auch die
Staatsanwaltschaft machen wird. Aber ich
-
persönlich finde es großartig, dass der
CCC die Tools und die ganzen Unterlagen,
-
die zur Analyse vorlagen, ins Netz
gestellt hat. Einfach, damit man das nicht
-
unbedingt glauben muss, sondern dass man
selber sich davon überzeugen kann.
-
T: Transparenz ist uns sehr wichtig. Und
hier auch noch ein kleiner Gruß ans BKA
-
und LKA. Ihr habt diese Samples ja auch in
einer ganz neuen Version. Vielleicht könnt
-
ihr euch das ja mal angucken, und wir sind
offen für Pull-Requests.
-
Applaus
U: Ein Pull-Request aus Wiesbaden? Das
-
wäre doch mal eine gute Idee oder eben
auch aus Berlin.
-
T: Ihr könnt auch Tor benutzen, das ist
egal.
-
U: Kein Problem, da sind wir ganz offen.
Und das Berliner LKA könnte da auch
-
mitmachen. Die haben ja auch mal ein
Sample gekauft, das aber nie eingesetzt.
-
Sie brauchen das eh nicht mehr. Insofern,
das hätten sie über. Was bedeutet das
-
jetzt alles für das Strafverfahren? Aus
unserer Perspektive als GFF: Wir haben
-
keine Zweifel und natürlich auch aus der
Perspektive des Clubs, dass der deutsche
-
Trojaner FinFisher gegen die türkische
Opposition eingesetzt wurde, davon sind
-
wir fest überzeugt. Irgendwie muss dieser
Trojaner aus München in die Hände
-
türkischer Behörden gelangt sein oder
sonst aus den Händen der Firmengruppe
-
FinFisher. Und diese Verstoße gegen die
Exportkontrollvorschriften wären auch noch
-
nicht verjährt. Und deswegen liegt der
Ball jetzt bei der Staatsanwaltschaft
-
München 1. Denn eine Frage ist noch offen:
Wie genau ist eigentlich der Trojaner in
-
die Türkei gelangt? Wir können jetzt quasi
nicht irgendwie nachweisen, da ist der
-
Agent mit dem schwarzen Aktentäschchen
nach Istanbul gereist, oder da ist der
-
USB-Stick geflogen, sondern das müssten
die Strafverfolger noch aufklären. Aber
-
wie gesagt, dafür haben wir die
Strafanzeige gestellt. Dazu hat die
-
Staatsanwaltschaft alle Mittel. Und wir
hoffen, dass sie das sehr konsequent tun
-
wird. Denn eins ist klar: Menschenrechte
kann man nicht nur mit Kalaschnikows
-
verletzen, sondern selbstverständlich auch
mit Staatstrojanern. Und dem muss ein Ende
-
gemacht werden. Vielen Dank!
-
Applaus
-
U: Herzlichen Dank, wir haben noch ganz
ein wenig Zeit, oder?
-
T: Naja, eine Minute.
Herald: Euer Applaus. Wunderschön!
-
U: Dankeschön!
Herald: Wir haben leider keine Zeit mehr
-
für Fragen. Ich habe ganz zu Anfang vor
diesem Talk erwähnt, dass es die C3 Post
-
gibt. Und die beiden Speaker haben
erwähnt, dass sie am 28C3 einen
-
Datenträger bekommen haben. Damals
bestimmt anders zugestellt, es gab noch
-
keine C3 Post. Heute bin ich Postbote, und
ich darf zustellen. Ein Paket.
-
U: Herzlichen Dank, ach so, das ist deins.
Erst nach dem Talk öffnen, machen wir,
-
ganz herzlichen Dank.
T: Dankeschön.
-
Applaus
-
Herald: Und wenn ihr für einen Malware-
Hersteller arbeitet, ich hoffe, dieses
-
Paket enthält euren Albtraum für heute
Nacht. Großen Applaus für Thorsten
-
Schröder und Ulf Buermeyer!
-
Applaus
-
Abspannmusik
-
Untertitel erstellt von c3subtitles.de
im Jahr 2020. Mach mit und hilf uns!