WEBVTT
00:00:00.000 --> 00:00:18.580
36C3 Vorspanngeräusche
00:00:18.580 --> 00:00:23.160
Herald: Heute Abend geht es in diesem Saal
über Staatstrojaner, also Trojaner, also
00:00:23.160 --> 00:00:27.090
Schadsoftware im engeren Sinne, bloß halt
nicht solche von Kriminellen, sondern
00:00:27.090 --> 00:00:30.980
solche von Unternehmen, die das
professionell mehr oder weniger legal
00:00:30.980 --> 00:00:34.810
machen. Staatstrojaner sollte man gar
nicht erst bauen, wenn man sie baut,
00:00:34.810 --> 00:00:38.270
kommen sie in die falschen Hände. Wie das
passiert und wie man dann unser
00:00:38.270 --> 00:00:43.070
Rechtssystem und unsere Gerichte nutzen
kann, um etwas dagegen zu tun auf dem
00:00:43.070 --> 00:00:47.850
vernünftigen rechtsstaatlichen Weg, das
erklärt uns unser Ulf Buermeyer, der in
00:00:47.850 --> 00:00:52.079
vielen anderen Fällen auch schon
Rechtsbeistand für Clubthemen geleistet
00:00:52.079 --> 00:00:57.680
hat. Und Thorsten Schröder ist auch dabei.
Oldschool Hacker, 20 Jahre dabei, 30 Jahre
00:00:57.680 --> 00:01:02.100
weiß ich nicht. Und hat sich das
angeschaut, was da in dieser Schadsoftware
00:01:02.100 --> 00:01:06.030
von FinFisher eigentlich drinsteckt.
Großen Applaus für Ulf Buermeyer und
00:01:06.030 --> 00:01:11.820
Thorsten Schröder.
Applaus
00:01:11.820 --> 00:01:18.539
Ulf Buermeyer: Hi, schön, dass ihr da
seid, herzlich willkommen!
00:01:18.539 --> 00:01:22.229
Thorsten Schröder: Hallo, hallo.
U: Ja, herzlich willkommen zu „FinFisher,
00:01:22.229 --> 00:01:26.500
See You in Court!“ Falls es der eine oder
andere kennt, eine amerikanische
00:01:26.500 --> 00:01:31.440
Bürgerrechtsorganisation hat „See you in
Court!“ mal zu Donald Trump gesagt, als er
00:01:31.440 --> 00:01:35.770
illegal versucht hat, Immigration in die
Vereinigten Staaten zu verhindern. Und wir
00:01:35.770 --> 00:01:40.440
widmen uns genau dem umgekehrten Thema,
nämlich der illegalen Auswanderung von
00:01:40.440 --> 00:01:45.880
fieser Software. Und bevor wir dazu
kommen, noch ein klitzekleiner historischer
00:01:45.880 --> 00:01:53.200
Rückblick. Keine Sorge, das wird kein
krasser Juratalk, dafür bürgt schon
00:01:53.200 --> 00:01:55.520
Thorsten.
T: Ich versuch’s.
00:01:55.520 --> 00:02:00.640
U: Aber in diesem Talk geht es um ein
weiteres Kapitel im Kampf gegen digitales
00:02:00.640 --> 00:02:06.610
Ungeziefer, und zwar eine ganz besondere
Form von digitalem Ungeziefer.
00:02:06.610 --> 00:02:12.890
T: Staatstrojaner, die wir auch schon vor
ein paar Jahren mal auf einem Kongress
00:02:12.890 --> 00:02:18.739
bereits besprochen haben. Aber eben
Software, die von Staaten eingesetzt
00:02:18.739 --> 00:02:22.650
werden, gegen Kriminelle, gegen
Oppositionelle und so weiter.
00:02:22.650 --> 00:02:26.569
U: Thorsten hat schon gesagt, das ist ein
Thema, das den Club und auch mich
00:02:26.569 --> 00:02:32.401
persönlich schon seit Jahren beschäftigt.
Das Foto zum Beispiel ist vom 25C3. Da gab
00:02:32.401 --> 00:02:36.620
es nämlich eine gute Nachricht aus
Karlsruhe zu feiern. Vielleicht erinnert
00:02:36.620 --> 00:02:42.000
sich der eine oder andere noch daran. Das
Bundesverfassungsgericht hatte 2008 ein
00:02:42.000 --> 00:02:47.090
neues Grundrecht erfunden, nämlich das
Grundrecht, das wir heute kennen als das
00:02:47.090 --> 00:02:53.060
Computer Grundrecht oder, auf schlau,
das Grundrecht auf Integrität und
00:02:53.060 --> 00:02:58.860
Vertraulichkeit informationstechnischer
Systeme. Eine Bezeichnung, auf die nur
00:02:58.860 --> 00:03:03.540
Menschen kommen können, die viel zu lange
Jura studiert haben. Jedenfalls hatten wir
00:03:03.540 --> 00:03:07.660
damals, als Conz und ich diesen Talk
gemacht haben, vor dem roten Vorhang
00:03:07.660 --> 00:03:12.380
gehofft, dass dieses Grundrecht etwas
ändern würde. Aber leider müssen wir
00:03:12.380 --> 00:03:22.269
sagen …
T: Tat es nicht. Wir haben 2011 einen
00:03:22.269 --> 00:03:26.930
Staatstrojaner gefunden, der genau diese
Rechte nicht eingehalten hat.
00:03:26.930 --> 00:03:30.601
Möglicherweise war das zu dem Zeitpunkt
bei diesen Entwicklern auch noch nicht
00:03:30.601 --> 00:03:35.959
angekommen. Diesen Trojaner hatten wir
einmal auf einer Festplatte in einem
00:03:35.959 --> 00:03:43.600
braunen Umschlag zugetragen bekommen. Ja,
den haben wir dann analysiert und einen
00:03:43.600 --> 00:03:51.270
sehr ausführlichen Bericht auch dazu
verfasst und einen Talk auf dem 28c3.
00:03:51.270 --> 00:03:54.210
U: Hier sieht man das,
Jugendbildnisse von Thorsten und mir.
00:03:54.210 --> 00:03:58.080
T: Da war ich noch richtig jung, wie man
sieht. Da habe ich auch das erste Mal mit
00:03:58.080 --> 00:04:01.220
Ulf auf einer Bühne gestanden.
Lustigerweise stehen wir nur auf der
00:04:01.220 --> 00:04:04.840
Bühne, wenn’s um Staatstrojaner geht.
U: Das ist auch derselbe schwarze Pulli
00:04:04.840 --> 00:04:07.550
bei mir, glaube ich. Ich habe den extra
nochmal gewaschen.
00:04:07.550 --> 00:04:11.170
T: Ja, da haben wir den Staatstrojaner
vorgestellt und nicht nur beschrieben,
00:04:11.170 --> 00:04:15.970
sondern auch demonstrieren können, wie der
gegen diese Grundrechte verstößt, indem er
00:04:15.970 --> 00:04:24.960
einen Rechner in eine Wanze verwandelt und
somit in jedem Teil der Wohnung auch
00:04:24.960 --> 00:04:28.330
abhören kann und man Software
nachladen kann und so weiter.
00:04:28.330 --> 00:04:31.750
U: Mit dem Software nachladen war
vielleicht der krasseste Verstoß.
00:04:31.750 --> 00:04:34.789
Eigentlich hatte das
Bundesverfassungsgericht nämlich sehr
00:04:34.789 --> 00:04:39.620
genau vorgeschrieben, was ein Trojaner so
können darf und was nicht. Es hatte diese
00:04:39.620 --> 00:04:42.890
Trojaner eben nicht grundsätzlich
verboten, aber relativ hohe Hürden
00:04:42.890 --> 00:04:49.020
aufgestellt. Und diese Hürden allerdings
hat der Trojaner aus dem Hause DigiTask
00:04:49.020 --> 00:04:53.699
damals nicht eingehalten. Thorsten und ein
paar andere Leute aus dem Club hatten ja
00:04:53.699 --> 00:04:57.359
sogar so eine Fernsteuersoftware gebaut,
ihr konntet den quasi fernsteuern mit
00:04:57.359 --> 00:05:00.749
einer kleinen Windowssoftware.
T: Also eigentlich sollte dieser Trojaner
00:05:00.749 --> 00:05:04.609
ja nur Skype abhören und vielleicht mal so
ein bisschen die Chatlogs mitlesen. Bei
00:05:04.609 --> 00:05:08.380
der Analyse ist allerdings aufgefallen,
dass er weitaus mehr kann, unter anderem
00:05:08.380 --> 00:05:12.979
auch Software nachladen, aber eben auch
Screenshots anfertigen und auch
00:05:12.979 --> 00:05:18.050
Screenshots von nicht abgeschickten Emails
und Gedanken und was auch immer man in so
00:05:18.050 --> 00:05:22.009
einen Rechner auch reintippt.
U: Im Grunde genau das Gruselszenario,
00:05:22.009 --> 00:05:26.699
das wir gerade auch beim Club immer wieder
kritisiert hatten, weswegen Staatstrojaner
00:05:26.699 --> 00:05:30.880
so gefährlich sind. Das war nun leider
allerdings nicht das Ende der Debatte, wie
00:05:30.880 --> 00:05:35.029
es sich für so einen richtigen Zombie
gehört, sind Staatstrojaner einfach nicht
00:05:35.029 --> 00:05:39.639
kaputt zu bekommen. Und so haben wir in
Deutschland seit 2017 wieder eine
00:05:39.639 --> 00:05:44.759
Rechtsgrundlage für Staatstrojaner, eine
neue sogar, nämlich dieses Mal im
00:05:44.759 --> 00:05:49.809
Strafverfahren. Das Bundeskriminalamt darf
die schon viel länger einsetzen seit 2009
00:05:49.809 --> 00:05:54.111
allerdings nur zur Abwehr von Terrorismus
und diesmal wirklich. Diesmal steht es
00:05:54.111 --> 00:05:59.759
sogar im Gesetz. Aber seit 2017 gibt’s ein
neues Gesetz, das im Prinzip in den
00:05:59.759 --> 00:06:04.539
meisten Strafverfahren erlaubt, so
Trojaner einzusetzen. Deswegen hat die
00:06:04.539 --> 00:06:08.770
Gesellschaft für Freiheitsrechte dagegen
geklagt. Darüber haben wir letztes Jahr
00:06:08.770 --> 00:06:13.249
schon kurz gesprochen, weil wir sagen, was
dieser Trojaner kann, ist wieder mal
00:06:13.249 --> 00:06:18.509
verfassungswidrig. Und wir kritisieren
aber nicht nur, dass der die Grenzen nicht
00:06:18.509 --> 00:06:24.749
einhält, die das Bundesverfassungsgericht
aufgestellt hat, sondern wir fragen uns,
00:06:24.749 --> 00:06:30.020
wie kommt der Trojaner eigentlich rein ins
System? Wie kommt er eigentlich rein? Bin
00:06:30.020 --> 00:06:34.919
ich denn etwa schon drin? Damit geht’s uns
um die IT-Sicherheit insgesamt, weil wir
00:06:34.919 --> 00:06:40.249
uns fragen, welche Sicherheitslücken
werden eigentlich freigehalten, offen
00:06:40.249 --> 00:06:44.400
gehalten, ganz bewusst, damit so ein
Trojaner ins System eingespielt werden
00:06:44.400 --> 00:06:48.879
kann. Denn nur in Ausnahmefällen haben die
Behörden direkt Zugriff auf das System. In
00:06:48.879 --> 00:06:52.979
aller Regel müssen die Trojaner aus der
Ferne eingespielt werden und dazu braucht
00:06:52.979 --> 00:06:58.120
man eben Sicherheitslücken. Deswegen die
Minimalforderung der GFF in diesem
00:06:58.120 --> 00:07:03.229
Verfahren: Das geht gar nicht! Wenn man
schon eine Rechtsgrundlage für Trojaner
00:07:03.229 --> 00:07:07.619
schafft, dann muss man auch klare
Spielregeln aufstellen, welche
00:07:07.619 --> 00:07:11.789
Sicherheitslücken eigentlich ausgenutzt
werden dürfen. Denn sonst gibt es einen
00:07:11.789 --> 00:07:15.241
großen Anreiz 0-days oder
Sicherheitslücken, die dem Hersteller noch
00:07:15.241 --> 00:07:18.689
nicht bekannt sind, geheimzuhalten.
Und damit werden alle Computer
00:07:18.689 --> 00:07:23.960
auf der Welt die Sicherheitslücke
weiter aufweisen. Apropos auf der Welt:
00:07:23.960 --> 00:07:29.539
nicht nur deutsche Behörden finden
Trojaner außerordentlich sexy. Ganz im
00:07:29.539 --> 00:07:34.789
Gegenteil. Die Weltkarte des Trojaner-
Einsatzes ist bemerkenswert rot.
00:07:34.789 --> 00:07:41.189
T: Zumindest was diese FinFisher Spyware
angeht, gibt es hier vom Citizen Lab
00:07:41.189 --> 00:07:47.280
erstellt, diese Karte, wo diese
Schadsoftware schon überall gefunden bzw.
00:07:47.280 --> 00:07:53.240
eingesetzt wurde. Das ist natürlich schön,
dass wir uns in Deutschland darum bemühen,
00:07:53.240 --> 00:07:57.082
da entsprechende Rechtsgrundlagen zu
schaffen. Wenn wir das hinkriegen, dass es
00:07:57.082 --> 00:08:00.890
so eine Rechtsgrundlage gibt oder eben
diesen Schutz der Privatsphäre, dann heißt
00:08:00.890 --> 00:08:03.319
das noch lange nicht, dass
wir das Problem los sind.
00:08:03.319 --> 00:08:06.960
U: Ganz im Gegenteil!
T: Das Ding ist halt, dass gerade in
00:08:06.960 --> 00:08:11.909
diesem Fall wir davon ausgehen können,
dass diese Software, die hier weltweit
00:08:11.909 --> 00:08:17.410
eingesetzt wird, um Leute
auszuspionieren, Made in Germany ist.
00:08:17.410 --> 00:08:21.650
U: Das ist genau das Problem. Made in
Germany, aber eben nicht nur eingesetzt in
00:08:21.650 --> 00:08:26.080
Deutschland, sondern auch in Staaten, wo
es mit der Rechtsstaatlichkeit vielleicht
00:08:26.080 --> 00:08:30.639
nicht ganz so entspannt zugeht. Denn
besonders spannend sind Trojaner natürlich
00:08:30.639 --> 00:08:35.430
für Menschen, die aus guten Gründen Stress
haben mit ihrer Opposition. Zum Beispiel
00:08:35.430 --> 00:08:42.169
hier Präsident José Eduardo dos Santos aus
Angola. Der, jedenfalls nach Berichten,
00:08:42.169 --> 00:08:49.870
auf der Kundenliste von FinFisher steht.
Oder Hamad bin Isa Al Chalifa, der sich
00:08:49.870 --> 00:08:55.529
selbst im Jahr 2002 zum König von Bahrain
ausrief. Und bei der Rangliste der
00:08:55.529 --> 00:09:00.319
Pressefreiheit aus dem Jahr 2017,
herausgegeben von Reporter ohne Grenzen,
00:09:00.319 --> 00:09:07.180
belegt Bahrain den stolzen Platz 164 von
180. Mit anderen Worten: Pressefreiheit
00:09:07.180 --> 00:09:10.949
bedeutet in diesem Land, zu schreiben, was
der Chef will. Die Presse in Bahrain
00:09:10.949 --> 00:09:15.370
gehört zu den unfreiesten der Welt. Zensur
und repressive Gesetzgebung verhindern
00:09:15.370 --> 00:09:20.089
freien Journalismus. Sechs Blogger und
Bürgerjournalisten sitzen in Haft, und das
00:09:20.089 --> 00:09:24.769
alles wird unter anderem ermöglicht
dadurch, dass gezielt versucht wird,
00:09:24.769 --> 00:09:32.120
Menschen zu hacken, die sich kritisch
äußern. Aber, die Probleme beginnen direkt
00:09:32.120 --> 00:09:41.700
vor unserer Haustür.
T: Ja, wir haben auch in Europa, bzw. den
00:09:41.700 --> 00:09:48.370
Anwärtern für die Europäische Union,
Staatslenker, die auch ein Problem haben
00:09:48.370 --> 00:09:55.880
mit ihrer eigenen Bevölkerung und mit der
Opposition. Und nun gab es da halt diverse
00:09:55.880 --> 00:10:01.160
Unruhen. Es gab einen Putschversuch. Im
Sommer 2016 gab es einen Putschversuch in
00:10:01.160 --> 00:10:07.790
der Türkei. Die Türkei wandelte sich
danach zunehmend in ein eher repressives
00:10:07.790 --> 00:10:11.720
Regime.
U: Und nach dem gescheiterten
00:10:11.720 --> 00:10:17.779
Putschversuch wurden insgesamt mehr als
50 000 Menschen verhaftet. Mehr als 140 000
00:10:17.779 --> 00:10:21.550
Menschen wurden aus ihren Berufen
entfernt. Die Türkei ist inzwischen das
00:10:21.550 --> 00:10:27.050
Land geworden, in dem im Verhältnis zur
Bevölkerungszahl weltweit die meisten
00:10:27.050 --> 00:10:31.069
Journalisten und Journalistinnen
inhaftiert sind. Eine lupenreine
00:10:31.069 --> 00:10:35.500
Demokratie? Zurzeit befinden sich
mindestens 34 Journalisten in politischer
00:10:35.500 --> 00:10:40.360
Gefangenschaft. Hunderte Zeitungen und
andere Medienorgane wurden geschlossen.
00:10:40.360 --> 00:10:45.360
T: Es ist auch sehr, sehr auffällig, wie
dringend immer darauf hingewiesen wird,
00:10:45.360 --> 00:10:50.990
dass die Leute, die dort inhaftiert sind,
unter Terrorverdacht stehen. Jeder, der
00:10:50.990 --> 00:10:54.410
gerade zur falschen Zeit am falschen
Ort ist, wird dann auch mit diesem
00:10:54.410 --> 00:10:56.850
Terrorismusverdacht erst
einmal weggesperrt.
00:10:56.850 --> 00:11:01.220
U: Erfreulicherweise allerdings gibt es
trotz aller Repressalien auch in der
00:11:01.220 --> 00:11:05.040
Türkei noch eine Oppositionsbewegung.
Beispielsweise, das sieht man auf diesem
00:11:05.040 --> 00:11:12.310
Bild im Sommer 2017, als Oppositionelle in
der Türkei unter dem Motto adalet auf die
00:11:12.310 --> 00:11:17.680
Straße gingen, um gegen das Regime zu
protestieren. Daraufhin allerdings hatte
00:11:17.680 --> 00:11:23.170
der türkische Geheimdienst eine besonders
perfide Idee. Denn Demonstrationen gegen
00:11:23.170 --> 00:11:28.610
den großen Meister gehen natürlich gar
nicht. Deswegen stellte der Geheimdienst
00:11:28.610 --> 00:11:34.380
eine Website ins Netz, die – das seht ihr
auf dem Bild – auf den ersten Blick so
00:11:34.380 --> 00:11:38.519
aussieht, als könnte das eine
Organisations-Website der
00:11:38.519 --> 00:11:43.170
Oppositionsbewegung sein. Das sieht ja so
aus mit dem Logo und dem Bild, als wenn
00:11:43.170 --> 00:11:48.380
das Menschen wären, die hinter diesen
Protesten stünden. Und auf dieser Seite,
00:11:48.380 --> 00:11:52.050
von der man denken könnte, es sei eine
Protestwebsite, gab es dann diesen
00:11:52.050 --> 00:11:57.160
schönen Button unten rechts, der so
aussieht, als ginge es dort in den Google
00:11:57.160 --> 00:12:02.689
Play Store. Dort wurde eine Android-
Software, so eine APK-Datei, also eine
00:12:02.689 --> 00:12:08.910
Android-Installationsdatei, zum Download
bereitgehalten für einige Wochen. Das
00:12:08.910 --> 00:12:12.839
Problem ist nur, ihr ahnt es schon: es
handelte sich nicht etwa um einen
00:12:12.839 --> 00:12:17.410
Messenger oder eine Kalender-App, mit der
die Oppositionellen sich hätten
00:12:17.410 --> 00:12:23.089
organisieren können. In Wirklichkeit
handelte es sich dabei um einen Android-
00:12:23.089 --> 00:12:30.759
Trojaner, den wir im weiteren als den
adalet-Trojaner bezeichnen. Die Frage ist
00:12:30.759 --> 00:12:37.570
nur …
T: Woher kommt der Trojaner? Wir sind der
00:12:37.570 --> 00:12:42.379
Meinung, nach aktuellem Stand, dass dieser
Trojaner, der in der Türkei gegen diese
00:12:42.379 --> 00:12:47.730
Bewegung eingesetzt wurde, dass er aus
Deutschland stammt. Und wir haben einiges
00:12:47.730 --> 00:12:54.670
an Arbeit investiert, um das auch mit
vielen Belegen begründen zu können, diesen
00:12:54.670 --> 00:12:57.759
Verdacht.
U: Denn: Man kann sich das vorstellen,
00:12:57.759 --> 00:13:01.779
Anna Biselli hat das so schön gesagt vor
zwei Tagen, wenn irgendwo ein Trog ist,
00:13:01.779 --> 00:13:06.000
dann sind die Schweine nicht weit. Und
ebenso ist es bei Cyberwaffen. Wenn ein
00:13:06.000 --> 00:13:11.120
Diktator mit Dollarbündeln wedelt, dann
finden sich immer wieder zwielichtige
00:13:11.120 --> 00:13:15.040
Software-Unternehmen, die mit solchen
Trojanern Geld verdienen wollen.
00:13:15.040 --> 00:13:19.170
Menschenrechte hin oder her.
Beispielsweise die Unternehmensgruppe
00:13:19.170 --> 00:13:26.340
FinFisher aus München. Selbstbeschreibung:
Excellence in Cyber Investigation. Gegen
00:13:26.340 --> 00:13:31.900
solche Trojaner-Hersteller vorzugehen ist
rechtlich schwierig. Das Problem dabei ist
00:13:31.900 --> 00:13:36.279
nämlich, dass solche Trojaner unter
bestimmten Voraussetzungen ja legal
00:13:36.279 --> 00:13:41.050
eingesetzt werden können. Das heißt
einfach nur Trojaner zu bauen ist nicht
00:13:41.050 --> 00:13:45.579
illegal. Das gilt ganz besonders, wenn
auch deutsche Behörden zur dankbaren
00:13:45.579 --> 00:13:50.540
Kundschaft gehören, beispielsweise nach
Presseberichten von Netzpolitik.org, das
00:13:50.540 --> 00:13:55.160
Bundeskriminalamt, aber auch das Berliner
Landeskriminalamt. Mit anderen Worten:
00:13:55.160 --> 00:14:01.110
FinFisher hat beste Beziehungen zu
deutschen Behörden. Aber man darf diese
00:14:01.110 --> 00:14:09.630
Trojaner nicht einfach so exportieren,
denn sie gelten als Cyberwaffen. Der
00:14:09.630 --> 00:14:14.529
Export von Trojanern ist zwar nicht
generell verboten, aber sie stehen auf der
00:14:14.529 --> 00:14:19.769
sogenannten Ausfuhrliste. Das bedeutet,
man braucht vor dem Export von Trojanern
00:14:19.769 --> 00:14:24.170
normalerweise eine Genehmigung der
Bundesregierung. Nur die EU-Staaten und
00:14:24.170 --> 00:14:28.660
einige weitere Länder sind von dieser
Erfordernis, eine Genehmigung einzuholen,
00:14:28.660 --> 00:14:34.259
ausgenommen. Und nun hatten wir in dem
adalet-Fall einen sehr, sehr schönen Fall.
00:14:34.259 --> 00:14:38.620
Die türkische Regierung setzt einen
Trojaner gegen ihre Opposition ein. Mit
00:14:38.620 --> 00:14:42.499
der türkischen Regierung gab es ohnehin
schon Stress genug. Und dieser Trojaner
00:14:42.499 --> 00:14:48.790
stammt nun auch noch mutmaßlich aus
Deutschland. Und der Export war auch noch
00:14:48.790 --> 00:14:52.529
illegal, weil es dafür keine Genehmigung
gab. Jedenfalls sagt das die
00:14:52.529 --> 00:14:57.990
Bundesregierung. Und daher war für uns,
das heißt in diesem Fall Netzpolitik.org
00:14:57.990 --> 00:15:02.529
zum Beispiel und die Gesellschaft für
Freiheitsrechte, ganz schnell klar, das
00:15:02.529 --> 00:15:05.490
muss ein Fall für die
Staatsanwaltschaft werden. Wir haben
00:15:05.490 --> 00:15:11.220
deswegen eine Koalition geschmiedet gegen
den illegalen Export von Staatstrojanern
00:15:11.220 --> 00:15:15.280
unter Koordination der Gesellschaft für
Freiheitsrechte. Das hat da meine Kollegin
00:15:15.280 --> 00:15:21.199
Sarah Lincoln gemacht. Reporter ohne
Grenzen, Netzpolitik.org und das ECCHR aus
00:15:21.199 --> 00:15:24.889
Berlin – das European Center for
Constitutional and Human Rights – ihre
00:15:24.889 --> 00:15:28.870
Kompetenz gebündelt, und wir haben
gemeinsam eine Strafanzeige geschrieben
00:15:28.870 --> 00:15:33.899
und sie hier in diesem Sommer eingereicht,
um zu erreichen, dass die Verantwortlichen
00:15:33.899 --> 00:15:38.120
bei der Firma FinFisher zur Rechenschaft
gezogen werden. Weil wir finden, genauso
00:15:38.120 --> 00:15:42.499
wie deutsche Waffen nicht auf der ganzen
Welt mitmorden dürfen, genauso dürfen auch
00:15:42.499 --> 00:15:46.459
nicht mit deutschen Trojanern
Menschenrechte weltweit oder in diesem
00:15:46.459 --> 00:15:58.060
Fall in der Türkei verletzt werden.
Applaus
00:15:58.060 --> 00:16:01.930
U: Hier haben wir nochmal
den Ablauf zusammengestellt.
00:16:01.930 --> 00:16:12.010
T: Das ist jetzt die Timeline der Anzeige
bzw. wann das Sample, wir reden hier von
00:16:12.010 --> 00:16:15.912
einem Sample, wenn wir jetzt von so einem
APK, so einer Schadsoftwareinstallation
00:16:15.912 --> 00:16:22.139
reden, wann das verbreitet wurde, das war
dann im Juni 2017. Das ist definitiv nach
00:16:22.139 --> 00:16:27.140
Einführung der Export-Richtlinien. Man
kann hier mit Gewissheit sagen, dass die
00:16:27.140 --> 00:16:30.819
Zielgruppe die Oppositionellen in der
Türkei waren. Das ergibt sich aus dem
00:16:30.819 --> 00:16:38.990
Kontext dieser Website und allem
drumherum. Und ja, es gab eine Anfrage an
00:16:38.990 --> 00:16:43.429
die Bundesregierung, die letztlich
bestätigte, dass es in diesem Zeitraum
00:16:43.429 --> 00:16:48.720
zwischen 2015 und 2017 keinerlei
Genehmigungen in dieser Richtung gab.
00:16:48.720 --> 00:16:53.320
U: Damit war für uns klar, das reicht
jedenfalls für eine Strafanzeige.
00:16:53.320 --> 00:16:57.458
Natürlich müssen noch ein paar Fakten
ermittelt werden. Aber jedenfalls reicht
00:16:57.458 --> 00:17:01.879
es, um die Staatsanwaltschaft auf diesen
Fall aufmerksam zu machen. Und wir haben
00:17:01.879 --> 00:17:05.809
auch eine ganze Reihe von Indizien, dass
der Fall sehr ernst genommen wird. Im
00:17:05.809 --> 00:17:11.008
September 2019 haben wir diese
Strafanzeige dann veröffentlicht, unter
00:17:11.008 --> 00:17:15.968
anderem auch auf Netzpolitik.org. Und wir
können mit Sicherheit davon ausgehen, dass
00:17:15.968 --> 00:17:20.550
das die Herrschaften hinter FinFisher
nicht begeistert hat. Denn sie haben
00:17:20.550 --> 00:17:26.051
Netzpolitik.org abgemahnt und dazu
gezwungen, den Artikel vorzeitig vom Netz
00:17:26.051 --> 00:17:30.071
zu nehmen. Erfreulicherweise allerdings
hatte die Spendenkampagne von Netzpolitik
00:17:30.071 --> 00:17:33.830
einigen Erfolg. Ich hoffe jedenfalls,
finanziell wird sich das nicht lohnen für
00:17:33.830 --> 00:17:37.737
die Abmahner, aber klar, der Artikel ist
zurzeit nicht verfügbar, jedenfalls nicht
00:17:37.737 --> 00:17:42.195
bei Netzpolitik. Es soll ja in diesem
Internet auch Archivseiten geben. Und dort
00:17:42.195 --> 00:17:47.280
könnt ihr ihn nach wie vor lesen in seiner
vollen Schönheit. FinFisher und Kohl
00:17:47.280 --> 00:17:54.142
schlagen zurück. Wir denken, getroffene
Hunde bellen. Und außerdem lassen wir uns
00:17:54.142 --> 00:17:58.300
davon natürlich nicht einschüchtern. Wir
haben – Wir heißt in diesem Fall die
00:17:58.300 --> 00:18:02.820
Gesellschaft für Freiheitsrechte – den Club
gebeten, sich die bisherigen Beweismittel
00:18:02.820 --> 00:18:06.678
gegen FinFisher nochmal ganz genau
anzusehen und zu überlegen, ob es nicht
00:18:06.678 --> 00:18:12.851
noch weitere Beweise geben könnte. Und das
Ziel dieser Mission war, noch genauer
00:18:12.851 --> 00:18:16.740
nachzuweisen, dass tatsächlich die
Voraussetzungen vorliegen für den
00:18:16.740 --> 00:18:20.764
Straftatbestand aus dem
Außenwirtschaftsgesetz. Ja, das ist die
00:18:20.764 --> 00:18:25.691
Norm des deutschen Rechts, die
ungenehmigte Exporte unter Strafe stellt,
00:18:25.691 --> 00:18:30.609
genaugenommen §18, Absatz 2, Nr. 1
und Absatz 5 Nr. 1 dieses
00:18:30.609 --> 00:18:34.748
Außenwirtschaftsgesetzes. Ich erspare euch
die juristischen Details. Es ist im
00:18:34.748 --> 00:18:37.430
Einzelnen ziemlich komplex.
Diese Norm verweist auf die
00:18:37.430 --> 00:18:41.660
Außenwirtschaftsverordnung und die
wiederum auf einen langen Anhang, wo dann
00:18:41.660 --> 00:18:47.015
quasi einzelne Kategorien von Gütern
aufgeführt sind, vom Kampfpanzer bis zum
00:18:47.015 --> 00:18:49.720
Staatstrojaner kann man
dann nachlesen, was man
00:18:49.720 --> 00:18:54.705
alles nur mit Genehmigung ausführen darf.
Und wir sind der Auffassung, dagegen wurde
00:18:54.705 --> 00:19:00.539
verstoßen. Zwei rechtliche Fragen standen
im Mittelpunkt unserer Bitte an den Chaos
00:19:00.539 --> 00:19:04.890
Computer Club, doch noch einmal ganz
genau, sich diese Trojaner anzuschauen.
00:19:04.890 --> 00:19:09.680
Zwei rechtliche Fragen, oder, wie soll ich
sagen, zwei Tatsachenfragen, zwei Fakten-
00:19:09.680 --> 00:19:13.870
Fragen, die aber eine große rechtliche
Bedeutung haben. Und zwar zum einen …
00:19:13.870 --> 00:19:20.340
T: Zum einen der Herstellungszeitpunkt,
was wichtig ist und relevant ist, wenn es
00:19:20.340 --> 00:19:27.244
darum geht herauszufinden: wurde diese
Software nach dem Stichtag Mitte 2015
00:19:27.244 --> 00:19:30.680
hergestellt?
U: Ja, genau.
00:19:30.680 --> 00:19:35.252
T: Wenn wir nachweisen können, dass eine
Software erst zu einem bestimmten
00:19:35.252 --> 00:19:38.966
Zeitpunkt hergestellt wurde, dann können
wir auch davon ausgehen, dass sie erst
00:19:38.966 --> 00:19:44.795
anschließend exportiert oder verkauft oder
eingesetzt wird. Und die zweite wichtige
00:19:44.795 --> 00:19:49.402
Frage, wenn wir da jetzt mal ganz neutral
an die Sache rangehen. Wer hat dieses
00:19:49.402 --> 00:19:52.830
Sample hergestellt? Es gibt den
Anfangsverdacht, dass es sich hierbei um
00:19:52.830 --> 00:19:57.495
FinSpy von FinFischer handelt. Aber das
ist eben die Frage, die geklärt werden
00:19:57.495 --> 00:20:02.470
sollte. Und das haben wir als Chaos
Computer Club dann einfach mal getan.
00:20:02.470 --> 00:20:07.023
U: Und dazu gab es ja schon bisherige
Analysen. Andere Leute haben sich auch
00:20:07.023 --> 00:20:12.571
schon mal FinFischer-Samples oder FinSpy-
Samples angeschaut. Diese Analysen waren
00:20:12.571 --> 00:20:16.552
auch für euch der Ausgangspunkt.
T: Genau, so ganz am Anfang hieß es ja
00:20:16.552 --> 00:20:20.308
auch, vor allen Dingen könnt ihr euch
nicht mal diese ganzen Analysen anschauen,
00:20:20.308 --> 00:20:24.140
die da bisher veröffentlicht wurden, unter
anderem sehr viel von Citizen Lab. Die
00:20:24.140 --> 00:20:28.389
haben sehr viel in diese Richtung gemacht,
nicht nur FinFischer Produkte werden da
00:20:28.389 --> 00:20:33.703
von denen analysiert, sondern auch noch
andere. Dann ging es eben darum, zu prüfen,
00:20:33.703 --> 00:20:37.550
ob das alles plausibel ist, was da drin
ist, ob man das alles reproduzieren kann,
00:20:37.550 --> 00:20:41.356
ob man das Ganze dann auch nochmal als
Bericht so zusammenfassen kann, dass es
00:20:41.356 --> 00:20:46.250
für deutsche Ermittlungsbehörden und ein
deutsches Gericht auch verwertbar ist.
00:20:46.250 --> 00:20:50.600
Dazu haben wir uns dann auch noch ein
Gutachten von anderen Dritten angeschaut,
00:20:50.600 --> 00:20:54.370
die so etwas ähnliches auch schon getan
haben. Da gibt es schon einen
00:20:54.370 --> 00:21:02.902
Plausibilitätscheck aus 2018 von einer
Firma. Und 2018 hat Access Now auch noch
00:21:02.902 --> 00:21:08.989
einmal einen Bericht, eine Zusammenfassung
all dessen veröffentlicht. Und jetzt für
00:21:08.989 --> 00:21:15.030
die Klage gab es dann auch nochmal eine
technische Analyse. Ganz speziell dieses
00:21:15.030 --> 00:21:21.150
adalet-Samples. Also dem eigentlichen
Gegenstand der ganzen Klage. Und wir haben
00:21:21.150 --> 00:21:26.929
uns natürlich diese ganzen Dokumente
angeguckt, haben halt geschaut, sind da
00:21:26.929 --> 00:21:30.594
irgendwo vielleicht noch Lücken, die wir
füllen können? Gibt es Dinge, die wir
00:21:30.594 --> 00:21:34.072
ausführlicher beschreiben können,
transparenter machen können? Und das war
00:21:34.072 --> 00:21:38.290
dann letztlich die Hauptarbeit, die wir
dabei geleistet haben. Wer jetzt erwartet,
00:21:38.290 --> 00:21:42.060
dass es irgendwie total bahnbrechende
Neuigkeiten gibt über irgendwelche FinSpy-
00:21:42.060 --> 00:21:47.374
oder FinFisher Trojaner, die Leute muss
ich leider enttäuschen. Wir haben halt
00:21:47.374 --> 00:21:51.471
sehr viel der Arbeit anderer Leute
verifiziert. Wir haben aber auch noch ein
00:21:51.471 --> 00:21:56.891
paar andere Indizien gefunden, die sehr
viel schwerer wiegen als manche andere
00:21:56.891 --> 00:21:59.530
Punkte, die in den Reports vorher genannt
werden.
00:21:59.530 --> 00:22:03.304
U: Und ihr habt schon, finde ich, einige
sehr, sehr spannende technische Details
00:22:03.304 --> 00:22:07.162
noch rausgekramt, zu denen wir gleich noch
kommen. Z. B diese Provisionierung, wie
00:22:07.162 --> 00:22:10.690
werden die Trojaner eigentlich angepasst?
Das fand ich schon ein sehr, sehr
00:22:10.690 --> 00:22:14.861
spannendes technisches Detail. Ihr habt
dann vorgestern war es, ne, gestern war
00:22:14.861 --> 00:22:19.005
es, die Analyse des CCC veröffentlicht.
T: Genau das haben wir gestern schon
00:22:19.005 --> 00:22:22.953
veröffentlicht, damit man ein bisschen
Material hat. Ich hoffe auch, dass es,
00:22:22.953 --> 00:22:27.233
wenn es die Zeit erlaubt, im Anschluss an
diesen Talk noch ein bisschen Q&A gibt.
00:22:27.233 --> 00:22:31.859
Ja, wir haben einen sehr ausführlichen
Bericht darüber geschrieben, wie wir das
00:22:31.859 --> 00:22:35.945
Ganze bewerten und wie wir die einzelnen
Indizien gewichten und zu was für einem
00:22:35.945 --> 00:22:43.575
Schluss wir da gekommen sind. Was uns halt
sehr wichtig war an der Arbeit: Wir haben
00:22:43.575 --> 00:22:47.845
am Ende auch alles veröffentlicht, im
Gegensatz zu all den anderen
00:22:47.845 --> 00:22:51.940
Organisationen, die diese Arbeit auch
schon und auch sehr viel Arbeit investiert
00:22:51.940 --> 00:22:57.388
haben. Wir haben sämtliche Samples, diese
Schadsoftware-Samples haben wir auf GitHub
00:22:57.388 --> 00:23:01.580
veröffentlicht. Gibt’s nachher
noch einen Link.
00:23:01.580 --> 00:23:09.172
Applaus
T: Es gibt auch in diesem GitHub
00:23:09.172 --> 00:23:14.997
Repository gibt es auch sämtliche
Werkzeuge und Zwischenergebnisse, die wir
00:23:14.997 --> 00:23:21.016
in unseren Analysen erlangt haben und
entwickelt haben. Mit dem Ziel, dass jeder
00:23:21.016 --> 00:23:26.497
in der Lage ist, unsere Ergebnisse zu
reproduzieren. Das heißt, ihr habt die
00:23:26.497 --> 00:23:30.780
Samples, ihr habt die Werkzeuge und die
Vorgehensweise, die wir ausführlich in
00:23:30.780 --> 00:23:36.130
diesen 60 Seiten Bericht beschrieben
haben. Und ihr könnt das alles
00:23:36.130 --> 00:23:41.776
nachvollziehen. Transparenz von unserer
Seite. Wir haben eine lückenfüllende
00:23:41.776 --> 00:23:47.817
Zusammenfassung geschrieben.
U: Und nochmal ganz kurz der „Auftrag“
00:23:47.817 --> 00:23:51.278
Selbstverständlich kann man
dem CCC keinen Auftrag geben.
00:23:51.278 --> 00:23:54.599
Insbesondere hat die GFF den CCC
natürlich nicht bezahlt. Ja, das ist
00:23:54.599 --> 00:23:58.200
ganz wichtig zu sagen. Es ist nicht
irgendwie eine gekaufte Stellungnahme,
00:23:58.200 --> 00:24:01.928
sondern wir haben einfach nur gebeten,
wenn ihr euch dafür interessiert, schaut
00:24:01.928 --> 00:24:05.637
euch das doch mal an. Das wäre wahnsinnig
hilfreich. Und ich finde in der Tat
00:24:05.637 --> 00:24:09.480
großartig, dass der Club jetzt in der
Person von Thorsten insbesondere sich die
00:24:09.480 --> 00:24:13.810
Zeit genommen hat. Ja, das ist nochmal
ganz kurz zusammenfassend der Auftrag.
00:24:13.810 --> 00:24:17.718
Analysen verifizieren, die es schon gibt,
Lücken schließen in der Indizienkette und
00:24:17.718 --> 00:24:21.580
natürlich weitere Samples gezielt
analysieren und die beiden zentralen
00:24:21.580 --> 00:24:26.670
Fragestellungen aus rechtlicher
Perspektive: Wann ist dieser adalet-
00:24:26.670 --> 00:24:30.710
Trojaner aus der Türkei oder der in der
Türkei eingesetzt wurde, hergestellt
00:24:30.710 --> 00:24:36.260
worden und wo kommt er tatsächlich her?
Ja, und das sind jetzt eine ganze Reihe
00:24:36.260 --> 00:24:40.000
von Samples, die hier auf GitHub.
T: Genau das. Hier sehen wir jetzt kurz
00:24:40.000 --> 00:24:45.120
mal so ein Listing der Samples, die wir
analysiert haben. Das sind auch die
00:24:45.120 --> 00:24:51.770
Original Schadsoftwaredateien. Da ist also
dieser Trojaner drinne, das befindet sich
00:24:51.770 --> 00:24:55.820
gerade alles in dem GitHub Repository von
Linus Neumann, mit dem ich diese ganze
00:24:55.820 --> 00:25:00.990
Analyse durchgeführt habe. Vielen
Dank auch nochmal an Linus.
00:25:00.990 --> 00:25:09.010
Applaus
TS: Wir haben einige Nächte verbracht mit
00:25:09.010 --> 00:25:13.930
diesen tollen Trojanern.
U: Eingesetzt wurden diese Samples eben
00:25:13.930 --> 00:25:17.868
in Türkei, sagst du, in Vietnam und in
Myanmar. Das sind so die Länder, wo wir es
00:25:17.868 --> 00:25:20.310
wissen.
T: Ja, was heißt Wissen, oder eben sehr
00:25:20.310 --> 00:25:24.640
stark annehmen. Es ist nicht so leicht zu
sagen, wo sie eingesetzt wurden, wer sie
00:25:24.640 --> 00:25:30.250
gekauft hat. Man kann das schlussfolgern
aus verschiedenen Indizien. Bei der Türkei
00:25:30.250 --> 00:25:36.890
ist es relativ leicht, sag ich mal im
Kontext gesehen, weil wir ja auch diese
00:25:36.890 --> 00:25:41.371
Website hatten, die sich dann auch gezielt
gegen die Zielgruppe richtete. Es gibt
00:25:41.371 --> 00:25:46.920
auch Samples, wo man relativ sicher sagen
kann, dass sie z. B. in Myanmar eingesetzt
00:25:46.920 --> 00:25:55.150
wurden, weil da eine sehr bekannte,
burmesische Social Platform genutzt wurde.
00:25:55.150 --> 00:25:59.830
Also, dieser Name wurde genutzt, um dieses
Sample zu verbreiten. Das ist ein klares
00:25:59.830 --> 00:26:04.351
Indiz, dass das gegen diese
Bevölkerungsgruppe ging. Bei Vietnam weiß
00:26:04.351 --> 00:26:09.370
ich nicht genau. Diese Atrribution ist
halt eh schon ein schwieriges Thema.
00:26:09.370 --> 00:26:13.110
Genauso schwierig ist es eben
herauszufinden, wo es eingesetzt wurde,
00:26:13.110 --> 00:26:17.091
weil die ganzen Metadaten, die man dann in
den Samples findet, IP-Adressen,
00:26:17.091 --> 00:26:20.350
Telefonnummern und so weiter. Die
sagen am Ende nicht viel aus.
00:26:20.350 --> 00:26:23.595
U: Dazu sehen wir gleich noch ein
bisschen mehr. Aber fangen wir doch
00:26:23.595 --> 00:26:27.244
vielleicht an mit der ersten zentralen
Frage, nämlich der Feststellung des
00:26:27.244 --> 00:26:31.116
Herstellungszeitpunktes. Dazu habt ihr
euch eine ganze Reihe Gedanken gemacht,
00:26:31.116 --> 00:26:35.023
wie man darauf kommen könnte.
T: Die zentralen Fragen waren, wann wurde
00:26:35.023 --> 00:26:38.800
das hergestellt? Also haben wir uns all
diese ganzen Samples angesehen und haben
00:26:38.800 --> 00:26:45.797
geguckt, ob wir da Indizien finden, dass
diese Software möglicherweise nach 2015
00:26:45.797 --> 00:26:50.820
hergestellt wurde. Da gibt es verschiedene
Möglichkeiten. Grundsätzlich alles, was
00:26:50.820 --> 00:26:57.194
wir jetzt in den Binaries und in diesen
Schadsoftware-Samples finden. Das ist dann
00:26:57.194 --> 00:27:01.490
so der frühestmögliche Zeitpunkt. Wenn ich
beweisen kann, dass zum Beispiel eine
00:27:01.490 --> 00:27:06.470
Komponente dieser Schadsoftware erst im
Mai 2016 überhaupt hergestellt oder
00:27:06.470 --> 00:27:10.640
veröffentlicht wurde, dann bedeutet das
natürlich auch, dass das ganze
00:27:10.640 --> 00:27:15.270
Schadsoftware-Sample erst nach diesem
Zeitpunkt hergestellt werden kann. Das ist
00:27:15.270 --> 00:27:19.142
der frühestmöglichen Zeitpunkt. Das kann
also auch durchaus sein, dass es 2017
00:27:19.142 --> 00:27:23.039
zusammengebaut und verschickt und verkauft
wurde. Das wissen wir nicht so genau.
00:27:23.039 --> 00:27:26.750
U: Aber jedenfalls, eine Library, die
noch nicht veröffentlicht war, kann nicht
00:27:26.750 --> 00:27:29.750
eingebaut werden, ne?
T: Genau deswegen haben wir sehr gezielt,
00:27:29.750 --> 00:27:34.280
geh nochmal zurück, sehr gezielt nach
solchen Artefakten von Compilern gesucht
00:27:34.280 --> 00:27:38.570
oder irgendwelche Zeichenketten aus
irgendwelchen Open-Source Produkten. Es
00:27:38.570 --> 00:27:43.770
gibt aber auch in diesen APK-Dateien. Das
sind halt so die Android-Apps, liegen als
00:27:43.770 --> 00:27:48.420
APK vor, das ist technisch gesehen nichts
weiter als ein ZIP-Archiv, was
00:27:48.420 --> 00:27:53.330
wahrscheinlich alle von euch kennen
dürften. Und in diesen Archiven liegen
00:27:53.330 --> 00:27:57.570
dann auch Zertifikate der Entwickler, die
dieses Paket veröffentlichen. Und anhand
00:27:57.570 --> 00:28:03.250
dieser Zertifikate kann man z. B. auch
einen Zeitstempel einsehen, wann dieses
00:28:03.250 --> 00:28:10.230
Zertifikat erstellt wurde. Das sagt jetzt
für unsere juristische Sichtweise nicht
00:28:10.230 --> 00:28:13.640
besonders viel aus, weil man kann
ja ein Zertifikat mit einem beliebigen
00:28:13.640 --> 00:28:18.990
Zeitstempel herstellen. Ich kann ja sagen,
ich gehe zurück in die Vergangenheit, oder
00:28:18.990 --> 00:28:21.750
ich erstelle das in der Zukunft.
Das kann man alles machen.
00:28:21.750 --> 00:28:25.150
U: Nur warum sollte man das tun?
T: Warum sollte man das tun? Vielleicht
00:28:25.150 --> 00:28:28.926
gibt’s einen guten Grund dafür. Aber wir
haben uns ja auch aus diesem Grund und
00:28:28.926 --> 00:28:33.900
genau deshalb Samples angeschaut, die bis
ins Jahr 2012 zurückreichen. Also wir
00:28:33.900 --> 00:28:43.740
haben uns diese Trojaner-APKs angesehen,
die 2012 bis 2019 in die Öffentlichkeit
00:28:43.740 --> 00:28:49.909
gelangten. Und wir können zumindest sagen,
wenn wir jetzt im Jahr 2019 sehen oder ein
00:28:49.909 --> 00:28:53.340
Muster erkennen können, dass bestimmte
Zertifikate vielleicht auch in der
00:28:53.340 --> 00:28:56.880
Vergangenheit genutzt wurden, dann kann
man sich schon fragen, ob das jetzt
00:28:56.880 --> 00:29:02.400
plausibel ist oder nicht. Ansonsten gibt
es noch öffentliche Dokumentation. Dazu
00:29:02.400 --> 00:29:06.810
gehörte das Sample selber. Das haben wir
auch nur aus dem Internet aus
00:29:06.810 --> 00:29:12.790
verschiedenen Quellen, aber gegeben.
Deswegen ist es wichtig, sämtliche 28
00:29:12.790 --> 00:29:16.560
Samples, die wir da hatten, anzuschauen:
Wann wurden die eigentlich im Einzelnen
00:29:16.560 --> 00:29:20.470
hergestellt?
U: Ein Ansatzpunkt war der
00:29:20.470 --> 00:29:26.430
Herstellungszeitpunkt von Bibliotheken.
T: Genau, hier sehen wir ein disassembly
00:29:26.430 --> 00:29:31.676
von einem Shared Object, was da
mitgeliefert wurde, das bedeutet, diese
00:29:31.676 --> 00:29:38.810
Android-Anwendungen sind ja eigentlich nur
Java-Anwendungen. Das heißt, da liegt Java
00:29:38.810 --> 00:29:44.759
Bytecode drin und in Java hat man auch die
Möglichkeit, über das Java Native
00:29:44.759 --> 00:29:50.390
Interface auch anderen Code aufzurufen,
der zum Beispiel vom Betriebssystem
00:29:50.390 --> 00:29:55.755
bereitgestellt wird, oder eben in C, also
mit anderen Programmiersprachen
00:29:55.755 --> 00:29:59.940
entwickelte Libraries, die mitgeliefert
werden und in dem Fall war; in diesem
00:29:59.940 --> 00:30:05.470
Sample gab’s noch so Shared Object Files.
Das ist halt unter Linux-Betriebssysten haben
00:30:05.470 --> 00:30:09.591
sie die Endung .so, unter Windows gibt's
ein ähnliches Konzept. Das sind dann
00:30:09.591 --> 00:30:13.361
dynamische Bibliotheken, die als DLL
mitgeliefert werden. Und in dem Fall gab
00:30:13.361 --> 00:30:19.656
es eine Bibliothek, in der wir bestimmte
Zeichenketten gefunden haben, die darauf
00:30:19.656 --> 00:30:26.431
hindeuten, dass das definitiv erst 2016
hergestellt worden sein kann. Das sieht
00:30:26.431 --> 00:30:30.400
man hier daran, das ist SQLite das ist ein
Open-Source-Projekt, so eine Open-Source
00:30:30.400 --> 00:30:35.929
Datenbank. Und die hinterlässt dann in
diesem Kompilat diesen String. Das ist ein
00:30:35.929 --> 00:30:41.303
Datum und irgendein Hash. Und wenn wir
uns dann mal anschauen, okay, wann taucht
00:30:41.303 --> 00:30:45.370
denn dieser String eigentlich auf? Dann
können wir uns auf der Open-Source-Projekt-
00:30:45.370 --> 00:30:52.731
Webseite anschauen, dass da tatsächlich
die SQLite Version 3.13 im Mai 2016
00:30:52.731 --> 00:30:57.830
veröffentlicht wurde. Und lustigerweise
sehen wir hier genau diese Checksumme mit
00:30:57.830 --> 00:31:03.730
genau dem gleichen String und somit können
wir eigentlich 100% davon ausgehen, dass
00:31:03.730 --> 00:31:07.160
das hier sich sicherlich niemand
ausgedacht hat im Jahr 2012.
00:31:07.160 --> 00:31:10.110
Ulf lacht
TS: Es ist ziemlich unwahrscheinlich.
00:31:10.110 --> 00:31:17.100
Applaus
T: Ich hoffe ich laser dir nicht die Augen.
00:31:17.100 --> 00:31:20.310
UB: Passt schon, ich schrei dann.
Und dann habt ihr euch die
00:31:20.310 --> 00:31:23.973
Zertifikate angeschaut,
mit denen die Software signiert worden
00:31:23.973 --> 00:31:27.800
ist, ne, die einzelnen Zertifizierungen?
T: Das haben wir auch gemacht, das haben
00:31:27.800 --> 00:31:31.752
aber auch die anderen Researcher gemacht,
die sich das vor uns angeschaut haben. Die
00:31:31.752 --> 00:31:35.400
haben das natürlich genauso analysiert.
Aber wir wollten ja auch die Analysen
00:31:35.400 --> 00:31:38.970
analysieren, und das haben wir getan.
Deswegen der Vollständigkeit halber in
00:31:38.970 --> 00:31:42.740
unserem Report natürlich auch nochmal ein
Zeitstrahl. Wir haben später noch eine
00:31:42.740 --> 00:31:48.630
schöne Tabelle, wo man das gut sehen kann.
Hier sehen wir den Output, wenn man sich
00:31:48.630 --> 00:31:52.900
dieses Zertifikat mal anschaut, was der
Entwickler genutzt hat, um dieses Paket zu
00:31:52.900 --> 00:32:00.091
signieren. Hier sehen wir, dass es erzeugt
wurde im Oktober 2016. Passt also
00:32:00.091 --> 00:32:04.130
zeitlich, wenn wir davon ausgehen, dass
das Zertifikat erstellt wurde, als dieses
00:32:04.130 --> 00:32:10.400
Sample zusammengebaut wurde. Liegt halt
auch nach Mai 2016. Bis wann das gültig
00:32:10.400 --> 00:32:16.230
ist, ist eigentlich völlig egal. Ja, das
Schöne wäre jetzt eigentlich, was hätten
00:32:16.230 --> 00:32:20.010
wir jetzt hier, wenn wir da jetzt
irgendwelche Werte manipulieren, wenn wir
00:32:20.010 --> 00:32:27.220
es zurück datieren? Schön. Dann könnten
wir Researcher in die Irre führen, wenn
00:32:27.220 --> 00:32:31.460
jetzt hier zum Beispiel stehen würde, das
Zertifikat wurde 2012 erstellt. Dann
00:32:31.460 --> 00:32:35.737
könnten wir überhaupt gar nichts darüber
aussagen. So vielleicht schon eher, was
00:32:35.737 --> 00:32:39.360
hier noch auffällig ist, das wird später
noch relevant, es gibt auch diese
00:32:39.360 --> 00:32:44.790
Fingerprints für diese Zertifikate. Das
sind diese langen SHA-Werte hier. Das ist
00:32:44.790 --> 00:32:51.710
ein kryptographischer Hash über dieses
Zertifikat, über den key und der ist
00:32:51.710 --> 00:32:59.024
einmalig. Also, wenn wir uns jetzt in den
28 Samples alle Zertifikate angucken, dann
00:32:59.024 --> 00:33:03.831
vergleichen wir natürlich auch diesen
SHA-Wert, weil das ist der Fingerprint,
00:33:03.831 --> 00:33:07.830
das drückt das schon ganz gut aus. Das ist
ein Fingerabdruck, wenn wir genau diesen
00:33:07.830 --> 00:33:12.080
Fingerabdruck in einem anderem Sample
finden, dann können wir zumindest auch
00:33:12.080 --> 00:33:16.280
eine Aussage darüber treffen, dass beide
Samples, unabhängig davon, wann sie
00:33:16.280 --> 00:33:20.140
jeweils veröffentlicht wurden, dass beide
vom gleichen Hersteller stammen. Und das
00:33:20.140 --> 00:33:23.890
ist auch ein wichtiger Punkt für diese
ganze Schlussfolgerung am Ende.
00:33:23.890 --> 00:33:28.450
U: Zunächst mal aber können diese beiden
Aspekte, die du genannt hast, die
00:33:28.450 --> 00:33:34.740
Bibliotheken und die Zertifikate im Grunde
den Schluss tragen, dass dieses adalet-
00:33:34.740 --> 00:33:39.800
Sample jedenfalls nicht vor dem 18. Mai
2016 erstellt worden sein kann. Einfach
00:33:39.800 --> 00:33:42.720
weil es da diese SQlite-Bibliothek
noch nicht gab.
00:33:42.720 --> 00:33:47.460
T: Genau, das ist ein so schweres Indiz,
dass ich definitiv sagen kann, dass es
00:33:47.460 --> 00:33:51.310
nicht vor Mai 2016 hergestellt worden ist.
UB: Damit liegt dieses Datum jedenfalls
00:33:51.310 --> 00:33:55.090
nach dem Inkrafttreten der Verbote, von
denen ich anfangs gesprochen habe. Das
00:33:55.090 --> 00:33:58.928
heißt also, dieses Sample wäre dann, wenn
es tatsächlich in die Türkei exportiert
00:33:58.928 --> 00:34:04.470
worden ist, unter Verstoß dagegen
exportiert worden. Zweiter Aspekt
00:34:04.470 --> 00:34:09.118
vielleicht noch wichtiger, die
Feststellung der Herkunft. Was für ein
00:34:09.118 --> 00:34:13.263
Vieh war denn jetzt eigentlich dieses
adalet-Trojanerchen?
00:34:13.263 --> 00:34:20.649
T: Dafür haben wir, wie ich sagte,
Samples aus dem Zeitraum von sieben Jahren
00:34:20.649 --> 00:34:25.369
uns angeschaut und geguckt. Was haben die
für Gemeinsamkeiten? Was lässt darauf
00:34:25.369 --> 00:34:29.290
schließen, dass die aus einem Hause
stammen? Da braucht uns in dem Moment noch
00:34:29.290 --> 00:34:34.181
gar nicht interessieren, wie dieses Haus
überhaupt heißt. Uns ist nur wichtig
00:34:34.181 --> 00:34:37.850
gewesen herauszufinden, ob die einen
Zusammenhang haben. Dafür haben wir diese
00:34:37.850 --> 00:34:41.521
Code-Signing-Zertifikate miteinander
verglichen, wie ich eben schon sagte. Es
00:34:41.521 --> 00:34:45.041
gibt noch ein paar andere Indizien
übrigens, für diese Zeitgeschichte. Aber
00:34:45.041 --> 00:34:48.609
die spielt jetzt hier keine besonders
große Rolle. Der Coding-Style ist auch
00:34:48.609 --> 00:34:52.220
eine wichtige Rolle. Wie ich schon sagte,
diese APKs, diese Anwendungen, sind
00:34:52.220 --> 00:34:57.511
eigentlich in Java programmiert. Man kann
auch noch Shared-Object-Bibliotheken
00:34:57.511 --> 00:35:01.250
daneben legen, die vielleicht in anderen
Programmiersprachen entwickelt wurden.
00:35:01.250 --> 00:35:07.550
Aber man kann sowohl im Dekompilat des
Java-Codes als auch im Disassembly dieser
00:35:07.550 --> 00:35:13.508
Bibliotheken einen gewissen Coding-Style
ablesen. Man kann verschiedene
00:35:13.508 --> 00:35:17.470
Variablennamen miteinander vergleichen,
wenn keine Obfuscation am Start war. Also
00:35:17.470 --> 00:35:24.210
Mittel, um Code-Herkunft und Code-Struktur
zu verschleiern. Wir können die Code-Basis
00:35:24.210 --> 00:35:27.990
miteinander vergleichen, also auf einer
rein funktionellen Ebene. Wir können uns
00:35:27.990 --> 00:35:31.720
anschauen. Sind die Funktionen in der
einen Anwendung vorhanden, die aus dem
00:35:31.720 --> 00:35:35.190
Jahr 2012 stammt, und sind die gleichen
Funktionen auch vorhanden in der
00:35:35.190 --> 00:35:40.500
Anwendung, die aus 2014 stammt und 2017
und so weiter? Das können wir schon
00:35:40.500 --> 00:35:45.070
miteinander vergleichen und auch Diffs
feststellen, also Unterschiede zwischen
00:35:45.070 --> 00:35:49.440
den Versionen. So können wir von einer
Evolution sprechen oder eine Beobachtung
00:35:49.440 --> 00:35:55.500
dieser Evolution einer bestimmten
Schadsoftware. Wir haben sehr stark darauf
00:35:55.500 --> 00:36:01.550
geachtet, ob wir zum Beispiel sehen
können, welche Sprache, welche
00:36:01.550 --> 00:36:07.640
Muttersprache die Entwickler sprechen. Das
sehen wir an manchen Stellen sehr
00:36:07.640 --> 00:36:11.620
deutlich. Komme ich nachher noch mit
Beispielen zu. Dann schauen wir uns auch
00:36:11.620 --> 00:36:14.760
an, wann und wie die
provisioniert wurden und ob es
00:36:14.760 --> 00:36:18.490
da irgendwelche Ähnlichkeiten gibt.
U: Provisionierung bedeutet quasi, dass
00:36:18.490 --> 00:36:22.270
dieser Trojaner jeweils angepasst wurde
für den spezifischen Einsatzzweck. Das
00:36:22.270 --> 00:36:26.170
heißt, dieser Trojaner ist im Prinzip eine
Massenware oder jedenfalls eine vielfach
00:36:26.170 --> 00:36:29.770
eingesetzte Software. Aber für das
jeweilige Land wurden dann
00:36:29.770 --> 00:36:33.850
unterschiedliche Parameter gesetzt. Dazu
kommen wir auch gleich noch. Das Spannende
00:36:33.850 --> 00:36:37.622
dabei ist, was Thorsten gerade beschrieben
hat. Das sind zunächst mal vor allem
00:36:37.622 --> 00:36:41.210
Parallelen zwischen unterschiedlichen
Samples. Das heißt, da kann man sagen,
00:36:41.210 --> 00:36:44.880
diese Samples kommen wohl mehr oder
weniger aus derselben Küche. Aber das sagt
00:36:44.880 --> 00:36:48.740
ja zunächst mal noch nicht, welche Küche
das ist. Um das sagen zu können, braucht
00:36:48.740 --> 00:36:53.650
es noch einen zweiten Schritt, nämlich das
Finden von Samples bestätigter Herkunft.
00:36:53.650 --> 00:36:57.350
Das heißt, wenn man weiß, bestimmte
Samples gehören zusammen, kommen aus
00:36:57.350 --> 00:37:01.450
demselben Haus, und man kann dann
wenigstens ein Sample oder zwei Samples
00:37:01.450 --> 00:37:05.490
einem ganz konkreten Hersteller zuweisen.
Dann gilt es, jedenfalls mit sehr hoher
00:37:05.490 --> 00:37:10.780
Wahrscheinlichkeit, auch für alle anderen
Samples aus dieser Herstellungslinie. Und
00:37:10.780 --> 00:37:14.380
da muss man ganz ehrlich sagen, sind wir
zu großer Dankbarkeit verpflichtet.
00:37:14.380 --> 00:37:21.870
T: Ja, Phineas Fisher hatte einen
größeren Batzen Daten aus dem Hause
00:37:21.870 --> 00:37:24.720
FinFisher getragen und veröffentlicht.
U: Tipp!
00:37:24.720 --> 00:37:29.660
T: Es gibt da ein 41 Gigabyte großes
File, wo sehr viele Samples drinne sind,
00:37:29.660 --> 00:37:32.200
die wir auch analysiert haben.
U: Hier sieht man das.
00:37:32.200 --> 00:37:37.090
T: Vielen Dank nochmal Phineas Fisher!
Applaus
00:37:37.090 --> 00:37:43.440
U: Mit anderen Worten, es ist für diese
Analyse ein großer Vorteil, dass es
00:37:43.440 --> 00:37:48.900
bestimmte Samples gibt, die aus diesem
Phineas Fisher Hack stammen und die man
00:37:48.900 --> 00:37:52.430
mit sehr großer Wahrscheinlichkeit
aufgrund vieler Indizien dieser
00:37:52.430 --> 00:37:57.137
Firmengruppe FinFisher zuordnen kann. Das
heißt, man hat 2 Anker, oder wieviele
00:37:57.137 --> 00:37:59.330
Samples sind da drin? 2?
T: Jaja.
00:37:59.330 --> 00:38:03.580
U: Das heißt, man hat quasi 2 Ankerpunkte
und kann sich dann von diesen Ankerpunkten
00:38:03.580 --> 00:38:08.220
über den Vergleich von Samples weiter
vorhangeln. Aber das ändert natürlich
00:38:08.220 --> 00:38:13.780
nichts daran: Attribution is hard.
T: Sehr hart. Wir suchen also natürlich
00:38:13.780 --> 00:38:18.360
noch weiter nach Indizien, die auf den
Urheber schließen lassen. Die
00:38:18.360 --> 00:38:22.420
Attributierung von Schadsoftware, wenn mal
irgendwie wieder der Bundestag gehackt
00:38:22.420 --> 00:38:26.370
wurde oder irgendjemand anders, da kommen
dann immer ganz schnell Leute, die sagen,
00:38:26.370 --> 00:38:30.130
die Russen waren es, die Chinesen waren es
und so weiter. Das ist alles nicht so
00:38:30.130 --> 00:38:34.020
leicht. Wir müssen diese Attributierung
allerdings auch ein Stück weit durchführen
00:38:34.020 --> 00:38:39.110
und hangeln uns dann aber auch entlang an
dem jeweiligen Kontext, zum Beispiel, wo
00:38:39.110 --> 00:38:47.520
so ein Sample eingesetzt wurde. Wie dieses
adalet-Sample zum Beispiel. Es gibt ja
00:38:47.520 --> 00:38:52.120
grundsätzlich die Möglichkeit, das auch zu
faken. Wenn ich sage, ich bin jetzt
00:38:52.120 --> 00:38:57.020
irgendwie irgendeine Hackergruppe oder ein
Konkurrent von FinFisher, dann will ich
00:38:57.020 --> 00:39:01.620
die vielleicht in einem schlechteren Licht
dastehen lassen. Und fake jetzt vielleicht
00:39:01.620 --> 00:39:05.880
mal irgendwie Malware von denen und mache
dann so False-FlagGeschichten. Das ist
00:39:05.880 --> 00:39:10.470
natürlich alles möglich, aber in diesen
einzelnen Fällen relativ unwahrscheinlich.
00:39:10.470 --> 00:39:12.670
U: Auch sowas könnte
man theoretisch faken.
00:39:12.670 --> 00:39:18.240
T: Das kann man definitiv faken. Das ist
jetzt, was wir jetzt hier sehen, die
00:39:18.240 --> 00:39:21.290
verarbeitete Ausgabe von so einer
Konfiguration, von so einer
00:39:21.290 --> 00:39:25.261
Provisionierung. wie Ulf schon sagte,
diese einzelnen Samples werden ja nicht
00:39:25.261 --> 00:39:28.800
jedes Mal neu kompiliert und neu
entwickelt. Da gibt es dann einfach
00:39:28.800 --> 00:39:33.390
verschiedene Parameter, die für den Case
des jeweiligen Einsatzes notwendig sind.
00:39:33.390 --> 00:39:38.180
Und das wäre dann so eine Konfiguration.
Da steht dann jetzt zum Beispiel, ja der
00:39:38.180 --> 00:39:42.680
Proxy fürs nach-Hause-Telefonieren hat die
IP-Adresse oder den Hostnamen. Dann sieht
00:39:42.680 --> 00:39:49.400
man hier auch noch eine TargetID, in dem
Fall adalet. Das hat, wer auch immer
00:39:49.400 --> 00:39:53.000
diesen Trojaner zusammengebaut hat, sich
ausgedacht. Dann gibt es noch
00:39:53.000 --> 00:39:58.140
Telefonnummern, wo SMS hingeschickt werden
oder wo angerufen werden kann. Und in dem
00:39:58.140 --> 00:40:03.070
Fall kann man ganz gut sehen, dass diese
Attributierung schlecht, hard ist. Denn
00:40:03.070 --> 00:40:07.450
die IP-Adresse stammt aus Deutschland. Die
Telefonnummer ist eine israelische, und
00:40:07.450 --> 00:40:12.980
die andere Telefonnummer ist eine
internationale Mehrwert-Rufnummer. Da
00:40:12.980 --> 00:40:18.300
lässt sich jetzt noch nicht so stark
darauf schließen, dass das tatsächlich von
00:40:18.300 --> 00:40:21.880
türkischen Behörden eingesetzt wurde.
U: Etwas anders sieht es aus bei der
00:40:21.880 --> 00:40:26.260
Familie der Samples, die ihr analysiert
habt. Denn da hilft euch ja das
00:40:26.260 --> 00:40:28.490
Zertifikat, das zum Signieren verwendet
wurde.
00:40:28.490 --> 00:40:32.300
T: Genau das sind ein paar Indizien, die
wir da herausgepickt haben, anhand derer
00:40:32.300 --> 00:40:36.110
wir irgendwie bestimmte Gruppen
zusammenfassen können. Also was gehört
00:40:36.110 --> 00:40:42.640
definitiv zusammen, was nicht? Diese Liste
sieht jetzt sehr wirr aus. Was hier grün
00:40:42.640 --> 00:40:46.613
markiert ist, ist das adalet-Sample, von
dem wir quasi so ausgehen. Wir wollen also
00:40:46.613 --> 00:40:53.560
Parallelen finden zu diesem adalet-Sample.
Alles, was hier rot markiert ist, hat eine
00:40:53.560 --> 00:40:57.671
Parallele. Das stammt nämlich alles aus
dem Leak von Phineas Fischer. Alles was da
00:40:57.671 --> 00:41:04.960
oben gelb markiert ist, wurde 2012
schon mal veröffentlicht und es gibt
00:41:04.960 --> 00:41:09.121
entsprechende Analysen und verschiedene
Indizien, die darauf hinweisen, dass es
00:41:09.121 --> 00:41:13.960
auch aus dem Hause FinFischer stammt. Wenn
wir jetzt mal davon ausgehen, dass das
00:41:13.960 --> 00:41:17.780
hier aus dem Hause FinFisher stammt, weil
es in dem Leak war, dann haben wir hier
00:41:17.780 --> 00:41:23.560
ein Sample, das nennt sich „421and“. „421“
scheint die Versionsnummer zu sein, „and“
00:41:23.560 --> 00:41:30.740
heißt Android. Wir sehen hier, das ist
dieser Fingerprint von diesem Zertifikat,
00:41:30.740 --> 00:41:34.820
was ich vorhin noch erklärt habe. Diesen
Fingerprint finden wir hier oben wieder.
00:41:34.820 --> 00:41:40.550
Zwei Jahre vorher sind da oben schon
Samples in die Öffentlichkeit gelangt, die
00:41:40.550 --> 00:41:45.020
genau den gleichen Fingerprint haben. Und
dann haben wir hier oben dieses „Andriod“.
00:41:45.020 --> 00:41:49.070
Das ist ein Tippfehler, aber der stammt
halt so von denen. Das muss ein Demo-
00:41:49.070 --> 00:41:56.280
Sample sein. Da hat diese Firma offenbar
mal gezeigt, was dieser Trojaner so kann.
00:41:56.280 --> 00:42:01.220
Und dann haben sie den halt so
provisioniert, mit Zeichenketten, also
00:42:01.220 --> 00:42:07.710
Webserver-URLs, die auf Gamma
International schließen lassen. Und es
00:42:07.710 --> 00:42:11.870
wurde aber auch noch ein in-the-wild-
Sample damit signiert, mit dem gleichen
00:42:11.870 --> 00:42:17.630
Zertifikat. Dieses „derise“ ist das, was
in Vietnam identifiziert wurde und auch
00:42:17.630 --> 00:42:23.940
vietnamesische IP-Adressen, Telefonnummern
und so weiter drinne hat. Wie gesagt
00:42:23.940 --> 00:42:28.230
Attributierung ist schwierig, aber an dem
Fall kann man auf jeden Fall sagen, dass
00:42:28.230 --> 00:42:34.870
hier Demo-Samples und in-the-wild-Samples
definitiv aus einem Hause stammen, anhand
00:42:34.870 --> 00:42:41.150
dieser Zertifikats-Fingerprints.
U: Der nächste Schritt, den ihr gemacht
00:42:41.150 --> 00:42:45.420
habt, ist tatsächlich euch mal die Struktur
der einzelnen Samples anzuschauen, also
00:42:45.420 --> 00:42:49.850
insbesondere wie diese Software von ihrem
logischen Ablauf her funktioniert.
00:42:49.850 --> 00:42:53.660
T: Genau. Wir haben uns dann verschiedene
Funktionen angeguckt und haben halt mal
00:42:53.660 --> 00:42:56.940
geguckt „Was sehen wir so an den
Funktionen?“. Ich habe ja gesagt, wir
00:42:56.940 --> 00:43:00.760
schauen uns auch so ein bisschen diesen
Coding-Style an, was für Variablen werden
00:43:00.760 --> 00:43:04.420
da genommen, wenn wir uns Java-Code
angucken können, der nicht obfuskiert ist.
00:43:04.420 --> 00:43:10.640
Hier sehen wir zwei Samples und zwar das,
was aus dem Leak stammt von 2014. Das ist
00:43:10.640 --> 00:43:17.460
auch irgendwie so eine Art Demo. Und 2016
– also, ich sage jetzt mal 2016, weil das
00:43:17.460 --> 00:43:23.670
definitiv noch 2016 hergestellt wurde –
das adalet-Sample. Sie hatten hier so ein
00:43:23.670 --> 00:43:26.940
Refactoring durchgeführt. Also eine
Umbenennung aller Variablen und
00:43:26.940 --> 00:43:33.290
Funktionsnamen und so weiter. Das ist ein
und dieselbe Funktion, das kann man sehen,
00:43:33.290 --> 00:43:37.200
wenn man sich den Code durchliest. Jetzt
wollte ich hier aber keinen Source Code an
00:43:37.200 --> 00:43:42.740
die Wand werfen. Deswegen habe ich hier so
einen Call Flow, abgeleitet aus dem Source
00:43:42.740 --> 00:43:49.440
Code. Das ist eine Funktion namens Run. In
dem Sample von 2014 liegt das in einer
00:43:49.440 --> 00:43:55.310
Klasse namens SMS. In dem Sample adalet
legt es in einer Klasse namens s1ms, was
00:43:55.310 --> 00:44:01.650
in Leetspeak hin geschrieben wurde. Und
wir sehen hier ganz klar, dass in dieser
00:44:01.650 --> 00:44:05.560
Funktion effektiv der gleiche Code
ausgeführt wird mit ganz marginalen
00:44:05.560 --> 00:44:11.250
Abweichungen. Das kann, zumindest nach
unserer Einschätzung, definitiv kein
00:44:11.250 --> 00:44:16.510
Zufall sein. Das heißt, das ist eine
Weiterentwicklung der ganzen Samples aus
00:44:16.510 --> 00:44:22.480
dem Jahr 2012, 2014 und jetzt auch in
2016. Das ist die Information, was wir da
00:44:22.480 --> 00:44:27.290
rausziehen konnten.
U: Und zugleich kann man ja auch Schlüsse
00:44:27.290 --> 00:44:32.280
ziehen aus diesem Leetspeak. Denn wenn man
sich überlegt: der Begriff SMS ist etwas
00:44:32.280 --> 00:44:35.810
typisch Deutsches. Man versteht es
vielleicht noch in anderen Ländern, aber
00:44:35.810 --> 00:44:40.780
man spricht normalerweise nicht von SMS.
Jedenfalls nicht im englischen Sprachraum
00:44:40.780 --> 00:44:45.260
und insbesondere, wenn man dann noch das
Verb „simsen“ sich überlegt. Also in
00:44:45.260 --> 00:44:51.170
Leetspeak dann „S 1 M S“ wie simsen. Das
ist was ganz typisch deutsches. Und ich
00:44:51.170 --> 00:44:54.369
jedenfalls kann mir nicht so richtig
vorstellen, dass ein türkischer
00:44:54.369 --> 00:44:56.650
Programmierer mit einem Mal von "simsen"
spricht.
00:44:56.650 --> 00:45:00.090
T: Genauso wenig kann ich mir vorstellen,
dass das ein englischsprachiger
00:45:00.090 --> 00:45:05.030
Programmierer tut. Dieses Wort „simsen“
wurde irgendwann mal modern und jeder hat
00:45:05.030 --> 00:45:09.380
es benutzt sodass es sogar in den Duden
aufgenommen wurde. Und das Wort simsen
00:45:09.380 --> 00:45:12.921
findet man halt wirklich nur im deutschen
Sprachgebrauch, und es ist schwer
00:45:12.921 --> 00:45:16.910
vorstellbar, dass jemand, der nicht
Deutsch-Muttersprachler ist, dieses Wort
00:45:16.910 --> 00:45:23.260
in einem Code verwenden würde, wenn es im
Kontext um SMS abfangen geht und das Ganze
00:45:23.260 --> 00:45:27.100
auch noch mit Leetspeak verschleiert wird.
U: Aber ihr habt ja noch eine andere
00:45:27.100 --> 00:45:31.020
Technologie, Stichwort Verschleierung,
gefunden, die außerordentlich pfiffig ist,
00:45:31.020 --> 00:45:34.890
muss man sagen. Jedenfalls ich war sehr
beeindruckt, als ich diese Analyse gelesen
00:45:34.890 --> 00:45:38.760
habe, nämlich wie eigentlich diese Daten,
diese Parameter, die wir eben schon kurz
00:45:38.760 --> 00:45:42.900
gesehen haben zur Provisionierung
eigentlich in den Viren-Samples abgelegt
00:45:42.900 --> 00:45:47.600
oder eigentlich versteckt worden.
T: Da hat sich der Entwickler ein
00:45:47.600 --> 00:45:51.320
Verfahren ausgedacht, das ist so eine Art
Covered Channel, also ein versteckter
00:45:51.320 --> 00:45:54.790
Kanal, so ein bisschen ähnlich wie
Steganografie, wenn man das kennt. Ich
00:45:54.790 --> 00:45:58.200
verstecke Informationen in
Dateistrukturen, sodass man das
00:45:58.200 --> 00:46:03.010
automatisiert oder mit bloßem Auge nicht
besonders leicht erkennen kann. Was für
00:46:03.010 --> 00:46:06.940
Konfigurationen muss man hier verstecken?
Wie ich schon sagte, es gibt halt so die
00:46:06.940 --> 00:46:10.864
Telefonnummern, die angerufen werden oder
wo SMS hin geschickt werden. Es gibt IP-
00:46:10.864 --> 00:46:15.130
Adressen, zu denen sich die Schadsoftware
verbindet, damit ein Command-and-Control-
00:46:15.130 --> 00:46:20.100
Server da übernehmen und lenken kann. Und
wie lange die Maßnahme dauert et cetera.
00:46:20.100 --> 00:46:24.770
Das alles ist in einer Konfiguration
abgespeichert, die irgendwie in dieses APK
00:46:24.770 --> 00:46:28.510
rein gedrückt werden muss.
U: Und dabei ist euch aufgefallen, als
00:46:28.510 --> 00:46:32.580
ihr euch die Samples angesehen habt, dass
alle ein identisches Verfahren einsetzen.
00:46:32.580 --> 00:46:36.200
T: Die benutzen alle das identische
Verfahren. Also, wir haben das jetzt auch
00:46:36.200 --> 00:46:40.100
nicht entdeckt. Dieses Verfahren haben
andere, Josh Grunzweig beispielsweise
00:46:40.100 --> 00:46:44.860
2012, auch schon in einem Blog-Beitrag
veröffentlicht, als er FinSpy-Samples
00:46:44.860 --> 00:46:49.880
analysiert hat. Das ist nichts
bahnbrechendes Neues, aber wir konnten
00:46:49.880 --> 00:46:56.390
zumindest jetzt einfach mal über die
7 Jahre hinweg beobachten, dass dieses
00:46:56.390 --> 00:46:59.910
Verfahren in allen Samples eingesetzt
wird. Und damit, da es eben auch kein
00:46:59.910 --> 00:47:03.761
Standardverfahren ist, um in irgendwelchen
APKs Schadsoftware zu verstecken oder
00:47:03.761 --> 00:47:08.360
überhaupt Daten zu verstecken, können wir
im Grunde genommen davon ausgehen, dass
00:47:08.360 --> 00:47:13.070
diese Technologie wirklich von einem
Hersteller stammt. Das heißt, dass all
00:47:13.070 --> 00:47:17.030
diese Samples, diese 28 Stück, die wir uns
angeguckt haben, dass die aus einem Hause
00:47:17.030 --> 00:47:19.370
stammen.
U: Und wie sieht das jetzt genau aus? Das
00:47:19.370 --> 00:47:22.610
hier ist der Datei-Kopf. Nee, das ist
nicht der Datei-Kopf sondern …
00:47:22.610 --> 00:47:26.420
T: Das sind Teile eines … Also ein APK
ist, wie ich schon sagte, technisch
00:47:26.420 --> 00:47:30.850
gesehen nur ein ZIP-Archiv. Und in diesem
ZIP-Archiv stecken Metainformationen über
00:47:30.850 --> 00:47:37.180
die im Archiv enthaltenen Dateien. Und
dafür gibt es dann diese Central Directory
00:47:37.180 --> 00:47:42.810
Structure und verschiedene Felder. Das ist
dann so ein Header. Da sind verschiedene
00:47:42.810 --> 00:47:49.430
Bytes und Bitfelder festgelegt, die die
Eigenschaften dieser im Archiv enthaltenen
00:47:49.430 --> 00:47:56.300
Datei beschreiben. Eine wichtige
Metainformation, die genutzt werden kann,
00:47:56.300 --> 00:48:00.671
um Daten zu transportieren, ohne dass man
es leicht sieht, sind diese
00:48:00.671 --> 00:48:08.290
Dateisystemattribute. Die ZIP-
Spezifikation sieht vor, dass es 2 Byte
00:48:08.290 --> 00:48:14.380
oder 16 Bit für interne File-Attribute
gibt. Und sie sieht vor, dass es 32 Bit
00:48:14.380 --> 00:48:20.000
für die Dateisystemattribute auf dem Ziel-
Betriebssystem gibt. Somit haben wir hier
00:48:20.000 --> 00:48:26.700
6 Byte pro Central Directory Structure zur
Verfügung, um Daten zu verstecken, denn
00:48:26.700 --> 00:48:30.710
wir können da ja beliebig idiotische File-
Attribute setzen. Und das ist das, was sie
00:48:30.710 --> 00:48:34.710
gemacht haben. Die ergeben dann zwar, wenn
man die Dateien entpackt, auf dem Ziel-
00:48:34.710 --> 00:48:38.530
Betriebssystem keinen Sinn mehr, müssen
sie aber auch nicht, weil die Daten gar
00:48:38.530 --> 00:48:42.380
nicht genutzt werden. Das sind einfach
irgendwelche Dummy-Dateien. Das sieht man
00:48:42.380 --> 00:48:48.380
hier. Hier sehen wir im Hex-Editor so ein
APK und diese Strukturen. Wir haben diese
00:48:48.380 --> 00:48:53.550
Signatur, diese PKZIP-Signatur ganz am
Anfang, die ist hier gelb markiert, und
00:48:53.550 --> 00:49:00.500
ein Offset von 36 Byte später, kommen dann
diese 6 Byte Dateisystemattribute. Und wer
00:49:00.500 --> 00:49:05.050
sich so ein bisschen mit Unix oder
Dateisystemen auskennt, sieht auch, dass
00:49:05.050 --> 00:49:11.250
das jetzt hier keine Bitfelder sind für
Attribute, die Sinn ergeben. Nein, was wir
00:49:11.250 --> 00:49:19.141
hier sehen, sind BASE64 codierte Daten.
Und wenn man jetzt dieses ZIP-File einmal
00:49:19.141 --> 00:49:25.510
parst und sich alle diese CDS-Signaturen
herauspickt und dann diese Dateisystem …
00:49:25.510 --> 00:49:32.810
diese Dateiattribute aneinander hängt,
anschließend diesen ganzen String, der
00:49:32.810 --> 00:49:39.920
dabei herausfällt BASE64-dekodiert, dann
fällt daraus später eine Binärdatei, die
00:49:39.920 --> 00:49:44.470
genau die Konfiguration dieser
Schadsoftware beinhaltet. Das wurde,
00:49:44.470 --> 00:49:47.910
wie gesagt, alles schon mal
dokumentiert, wir haben das jetzt einfach
00:49:47.910 --> 00:49:51.860
alles noch einmal nachvollzogen und auf
alle Samples angewendet und geguckt, was
00:49:51.860 --> 00:49:55.300
dabei rausfällt. Das heißt dann im ersten
Schritt: Wir müssen die Dateien
00:49:55.300 --> 00:49:58.510
extrahieren. In einem zweiten Schritt
müssen wir die Dateien parsen.
00:49:58.510 --> 00:50:02.360
U: Und das Tool dazu findet sich jetzt
wieder auf der Website. Das heißt, das
00:50:02.360 --> 00:50:06.180
müsst ihr uns oder vorallem Thorsten und
Linus nicht glauben. Das könnt ihr alles
00:50:06.180 --> 00:50:09.900
selber nachprüfen, wenn ihr eines der
Samples runterladet und die Tools darüber
00:50:09.900 --> 00:50:13.630
laufen lasst. Und wir hoffen, dass auf
diese Art und Weise noch weitere Samples
00:50:13.630 --> 00:50:17.460
analysiert werden können. Das ist jetzt
noch mal ein Überblick, wie sowas dann in
00:50:17.460 --> 00:50:21.410
der Gesamtheit aussehen kann. Wir müssen
ein ganz bisschen springen an der Stelle
00:50:21.410 --> 00:50:25.430
und schauen, wo wir dann weitermachen.
Genau das ist dann so eine Konfiguration,
00:50:25.430 --> 00:50:28.950
wie sie in der Summe aussieht.
T: Genau, das ist jetzt dieses „Andriod“
00:50:28.950 --> 00:50:34.290
Beispiel, was 2012 schon auf VirusTotal
gelandet ist. Hier sehen wir, wie ich
00:50:34.290 --> 00:50:38.637
schon angedeutet habe, es gibt dann so
Hostnamen, die schon den Namen beinhalten.
00:50:38.637 --> 00:50:42.020
Ich muss aber auch nochmal dazusagen: Es
hat jetzt keine besonders große
00:50:42.020 --> 00:50:45.830
Aussagekraft, wenn man ein Sample für sich
betrachtet und solche Zeichenketten da
00:50:45.830 --> 00:50:50.030
drin findet. Denn Josh Grunzweig, der das
schon 2012 in seinem Blog dokumentiert
00:50:50.030 --> 00:50:53.490
hat, hat auch schon ein Tool
veröffentlicht auf GitHub, womit man genau
00:50:53.490 --> 00:50:59.671
so eine Konfiguration herstellen kann und
in so ein APK reindrücken kann. Das heißt,
00:50:59.671 --> 00:51:02.550
man könnte im Grunde
genommen sowas auch faken.
00:51:02.550 --> 00:51:07.030
U: Das heißt, die Aussage ist tatsächlich
weniger „Was steht drin in diesen
00:51:07.030 --> 00:51:11.700
versteckten Konfigurationsinformationen?“
Sondern die Aussage ist: Alle Samples
00:51:11.700 --> 00:51:15.820
verwenden die gleiche Technik, die gleiche
proprietäre und auch ziemlich ausgefuchste
00:51:15.820 --> 00:51:20.540
Technik, um diese Daten zu verstecken in
der APK-Datei. Und diese Gleichheit ist
00:51:20.540 --> 00:51:24.993
die eigentliche Aussage dieser Analyse.
Alle untersuchten Samples nutzen eben
00:51:24.993 --> 00:51:28.260
diesen proprietären Mechanismus. Und du
sagst, das Format wurde aber
00:51:28.260 --> 00:51:32.760
weiterentwickelt?
T: Es sieht ganz danach aus, wenn man,
00:51:32.760 --> 00:51:36.980
sich den Inhalt dieser Binärdatei anguckt.
Sie benutzen dann so eine Art Directory,
00:51:36.980 --> 00:51:42.661
um Nummern bestimmten Funktionen oder
Variablennamen zuzuweisen. Das ist auch
00:51:42.661 --> 00:51:47.080
der Punkt, was es einfach macht, diese
Konfiguration zu parsen, zu verarbeiten
00:51:47.080 --> 00:51:50.300
und herauszufinden, welche
Werte bedeuten was.
00:51:50.300 --> 00:51:53.070
U: Diese Werte sind zum
Beispiel diese hier.
00:51:53.070 --> 00:51:56.711
T: Beispielsweise das. Im adalet-Sample
gibt es, wie ich vorhin schon gezeigt
00:51:56.711 --> 00:52:00.600
habe, verschiedene Werte, die jetzt auch
nicht unbedingt auf die Türkei hindeuten.
00:52:00.600 --> 00:52:04.720
Dann gibt es auch aus dem gleichen
Zeitraum noch einen flash28-Sample, was
00:52:04.720 --> 00:52:08.770
große Ähnlichkeiten und Parallelen mit dem
adalet-Sampel aufweist. Da wird z. B. ein
00:52:08.770 --> 00:52:14.170
Proxy aus Neuseeland genommen, ansonsten
die gleiche Telefonnummer und dieses
00:52:14.170 --> 00:52:19.640
derise-Sample hat, wie ich auch schon
angedeutet habe, sämtliche Werte, die
00:52:19.640 --> 00:52:23.860
davon relevant sind, zeigen Richtung
Vietnam. Ob das etwas aussagt? Keine
00:52:23.860 --> 00:52:27.920
Ahnung. In jedem Fall haben wir auch all
das, diese ganzen Configs, die wir daraus
00:52:27.920 --> 00:52:35.400
extrahiert haben, haben wir auch auf
GitHub veröffentlicht. Das findet ihr bei
00:52:35.400 --> 00:52:39.110
Linus in der FinSpy-Dokumentation, wo
auch der Bericht und alle anderen Samples
00:52:39.110 --> 00:52:41.310
liegen.
U: Genau und vielleicht mag sich ja mal
00:52:41.310 --> 00:52:44.750
jemand diese Telefonnummern anschauen,
vielleicht kennt die ja jemand aus
00:52:44.750 --> 00:52:48.130
irgendwelchen anderen Zusammenhängen. Das
könnten noch ganz interessante
00:52:48.130 --> 00:52:51.900
Rückschlüsse werden. Da würden wir uns
über Hinweise freuen. Und insgesamt sieht
00:52:51.900 --> 00:52:58.970
man dabei – das ist die Übersicht über die
Samples, die ihr analysiert habt. Aber man
00:52:58.970 --> 00:53:03.010
sieht, denke ich, ganz gut, dass es da so
etwas wie eine Familienstruktur gibt.
00:53:03.010 --> 00:53:06.820
T: Genau. Der einzige, der hier so ein
bisschen aus der Reihe fällt, ist das Ding
00:53:06.820 --> 00:53:10.640
hier. Das Ding, hab ich jetzt einfach mal
Container genannt, weil es sonst keinen
00:53:10.640 --> 00:53:14.170
Namen hatte. Das ist ein APK, was
überhaupt keine Parallelen zu den anderen
00:53:14.170 --> 00:53:18.031
aufweist. Aber dieses eine Sample hebt
sich insofern von den anderen ab, als dass
00:53:18.031 --> 00:53:21.980
wir das jetzt hier noch mit aufgenommen
haben, das dropped, also legt, quasi eine
00:53:21.980 --> 00:53:26.700
Schadsoftware APK überhaupt erst ab. In
diesem grau markierten Sample gibt es
00:53:26.700 --> 00:53:32.380
einen lokalen Root Kernel Exploit gegen
den Linux-Kernel auf Android-Devices. Die
00:53:32.380 --> 00:53:38.110
nutzen da die als „Dirty COW“ bekannte
Schwachstelle aus, um Root auf dem Telefon
00:53:38.110 --> 00:53:42.170
zu werden. Da liegen dann noch Werkzeuge,
um persistent Root zu bleiben. Und dann
00:53:42.170 --> 00:53:47.800
liegt da halt auch noch ein Sample,
nämlich dieses hier, dieses PyawApp. Ich
00:53:47.800 --> 00:53:52.859
weiß nicht, wie man das ausspricht. Das
ist das Ding, wo wir davon ausgehen, dass
00:53:52.859 --> 00:53:58.120
es in diesem Kontext Myanmar zugeschrieben
wird. Weil Pyaw ein sehr bekanntes
00:53:58.120 --> 00:54:03.490
soziales Netzwerk in der Region ist.
U: Und die Antwort aus technischer
00:54:03.490 --> 00:54:08.280
Perspektive. Vieles davon haben wir im
Grunde schon gesagt. Aber in der
00:54:08.280 --> 00:54:12.430
Zusammenfassung …
T: Wie gesagt, sämtliche Samples, die wir
00:54:12.430 --> 00:54:15.440
hier analysiert haben, benutzen den
gleichen Mechanismus für die
00:54:15.440 --> 00:54:19.530
Provisionierung. Diese ganzen
Konfigurationen liegen in einem sehr
00:54:19.530 --> 00:54:25.550
speziellen, Binärformat vor. Das ist kein
allgemeingültiges Format, muss also
00:54:25.550 --> 00:54:29.300
definitiv aus einem Hause stammen. Wir
haben große Ähnlichkeiten auch unterhalb
00:54:29.300 --> 00:54:34.600
des Java-Codes, wo es auch Hinweise darauf
gibt, dass es aus deutschem Hause stammt.
00:54:34.600 --> 00:54:42.980
Wir können ganz genau sagen, dass das
adalet-Sample frühestens im Jahr 2016
00:54:42.980 --> 00:54:49.160
hergestellt wurde. Und die Samples
zwischen 2012 und 2014 können auch ganz
00:54:49.160 --> 00:54:53.510
eindeutig der Firma FinFisher zugeordnet
werden, weswegen da eigentlich in der
00:54:53.510 --> 00:54:57.420
Schlussfolgerung auch klar gesagt werden
kann, dass all diese Samples, die wir uns
00:54:57.420 --> 00:55:02.300
zwischen 2012 und 2019 angeguckt haben,
der Firma oder der Firmengruppe FinFisher
00:55:02.300 --> 00:55:04.760
zuzuordnen ist.
U: Und all das könnt ihr nochmal im
00:55:04.760 --> 00:55:09.310
Detail nachlesen in der Studie des CCC,
die schon veröffentlicht wurde gestern und
00:55:09.310 --> 00:55:13.660
wie gesagt, ganz wichtig, wir möchten die
eigentlich gerne noch auf Englisch
00:55:13.660 --> 00:55:17.330
publizieren. Wir haben deswegen schon mal
eine URL für ein Pad auf die Folie
00:55:17.330 --> 00:55:20.779
geworfen. Das Pad gibt’s da nicht, das
füllen wir noch aus mit einer Roh-
00:55:20.779 --> 00:55:24.440
Übersetzung aus Google Translate. Oder
vielleicht mag das auch jemand von euch
00:55:24.440 --> 00:55:26.730
machen.
T: Wir würden das gerne crowdsourcen.
00:55:26.730 --> 00:55:30.460
U: Das ist ein bisschen die Idee dabei,
weil das schon ein bisschen Arbeit ist,
00:55:30.460 --> 00:55:34.210
und wir schaffen das einfach schnell,
jetzt, während des Kongresses nicht. Aber
00:55:34.210 --> 00:55:37.880
vielleicht hat jemand Lust uns zu helfen.
Das wird die URL. Und vor allem ganz
00:55:37.880 --> 00:55:41.740
wichtig: Check the facts! Das werden wir
natürlich aus GFF-Perspektive machen. Wir
00:55:41.740 --> 00:55:45.241
gehen davon aus, dass es auch die
Staatsanwaltschaft machen wird. Aber ich
00:55:45.241 --> 00:55:49.040
persönlich finde es großartig, dass der
CCC die Tools und die ganzen Unterlagen,
00:55:49.040 --> 00:55:52.859
die zur Analyse vorlagen, ins Netz
gestellt hat. Einfach, damit man das nicht
00:55:52.859 --> 00:55:56.390
unbedingt glauben muss, sondern dass man
selber sich davon überzeugen kann.
00:55:56.390 --> 00:56:00.400
T: Transparenz ist uns sehr wichtig. Und
hier auch noch ein kleiner Gruß ans BKA
00:56:00.400 --> 00:56:07.100
und LKA. Ihr habt diese Samples ja auch in
einer ganz neuen Version. Vielleicht könnt
00:56:07.100 --> 00:56:10.710
ihr euch das ja mal angucken, und wir sind
offen für Pull-Requests.
00:56:10.710 --> 00:56:21.670
Applaus
U: Ein Pull-Request aus Wiesbaden? Das
00:56:21.670 --> 00:56:24.340
wäre doch mal eine gute Idee oder eben
auch aus Berlin.
00:56:24.340 --> 00:56:26.450
T: Ihr könnt auch Tor benutzen, das ist
egal.
00:56:26.450 --> 00:56:30.020
U: Kein Problem, da sind wir ganz offen.
Und das Berliner LKA könnte da auch
00:56:30.020 --> 00:56:33.649
mitmachen. Die haben ja auch mal ein
Sample gekauft, das aber nie eingesetzt.
00:56:33.649 --> 00:56:37.369
Sie brauchen das eh nicht mehr. Insofern,
das hätten sie über. Was bedeutet das
00:56:37.369 --> 00:56:41.040
jetzt alles für das Strafverfahren? Aus
unserer Perspektive als GFF: Wir haben
00:56:41.040 --> 00:56:44.890
keine Zweifel und natürlich auch aus der
Perspektive des Clubs, dass der deutsche
00:56:44.890 --> 00:56:48.740
Trojaner FinFisher gegen die türkische
Opposition eingesetzt wurde, davon sind
00:56:48.740 --> 00:56:52.880
wir fest überzeugt. Irgendwie muss dieser
Trojaner aus München in die Hände
00:56:52.880 --> 00:56:56.660
türkischer Behörden gelangt sein oder
sonst aus den Händen der Firmengruppe
00:56:56.660 --> 00:57:00.800
FinFisher. Und diese Verstoße gegen die
Exportkontrollvorschriften wären auch noch
00:57:00.800 --> 00:57:04.550
nicht verjährt. Und deswegen liegt der
Ball jetzt bei der Staatsanwaltschaft
00:57:04.550 --> 00:57:09.740
München 1. Denn eine Frage ist noch offen:
Wie genau ist eigentlich der Trojaner in
00:57:09.740 --> 00:57:14.230
die Türkei gelangt? Wir können jetzt quasi
nicht irgendwie nachweisen, da ist der
00:57:14.230 --> 00:57:18.710
Agent mit dem schwarzen Aktentäschchen
nach Istanbul gereist, oder da ist der
00:57:18.710 --> 00:57:24.080
USB-Stick geflogen, sondern das müssten
die Strafverfolger noch aufklären. Aber
00:57:24.080 --> 00:57:27.300
wie gesagt, dafür haben wir die
Strafanzeige gestellt. Dazu hat die
00:57:27.300 --> 00:57:31.080
Staatsanwaltschaft alle Mittel. Und wir
hoffen, dass sie das sehr konsequent tun
00:57:31.080 --> 00:57:34.710
wird. Denn eins ist klar: Menschenrechte
kann man nicht nur mit Kalaschnikows
00:57:34.710 --> 00:57:39.250
verletzen, sondern selbstverständlich auch
mit Staatstrojanern. Und dem muss ein Ende
00:57:39.250 --> 00:57:40.840
gemacht werden. Vielen Dank!
00:57:40.840 --> 00:57:43.600
Applaus
00:57:43.600 --> 00:57:53.830
U: Herzlichen Dank, wir haben noch ganz
ein wenig Zeit, oder?
00:57:53.830 --> 00:57:56.770
T: Naja, eine Minute.
Herald: Euer Applaus. Wunderschön!
00:57:56.770 --> 00:58:00.290
U: Dankeschön!
Herald: Wir haben leider keine Zeit mehr
00:58:00.290 --> 00:58:05.640
für Fragen. Ich habe ganz zu Anfang vor
diesem Talk erwähnt, dass es die C3 Post
00:58:05.640 --> 00:58:11.849
gibt. Und die beiden Speaker haben
erwähnt, dass sie am 28C3 einen
00:58:11.849 --> 00:58:16.550
Datenträger bekommen haben. Damals
bestimmt anders zugestellt, es gab noch
00:58:16.550 --> 00:58:20.910
keine C3 Post. Heute bin ich Postbote, und
ich darf zustellen. Ein Paket.
00:58:20.910 --> 00:58:26.110
U: Herzlichen Dank, ach so, das ist deins.
Erst nach dem Talk öffnen, machen wir,
00:58:26.110 --> 00:58:30.330
ganz herzlichen Dank.
T: Dankeschön.
00:58:30.330 --> 00:58:33.570
Applaus
00:58:33.570 --> 00:58:39.771
Herald: Und wenn ihr für einen Malware-
Hersteller arbeitet, ich hoffe, dieses
00:58:39.771 --> 00:58:45.580
Paket enthält euren Albtraum für heute
Nacht. Großen Applaus für Thorsten
00:58:45.580 --> 00:58:47.930
Schröder und Ulf Buermeyer!
00:58:47.930 --> 00:58:49.990
Applaus
00:58:49.990 --> 00:58:53.340
Abspannmusik
00:58:53.340 --> 00:59:05.730
Untertitel erstellt von c3subtitles.de
im Jahr 2020. Mach mit und hilf uns!