 Staatstrojaner, also Schadsoftware im engeren Sinne bloß halt nicht solche kriminellen, sondern solche von Unternehmen, die das professionell mehr oder weniger legal machen. Staatstrojaner sollte man eigentlich 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 Burmaier, der in vielen anderen Fällen auch schon Rechtsbeistand für Klubthemen geleistet hat und Thorsten Schröder ist auch dabei, Old School Hacker, 20 Jahre dabei, 30 Jahre, weiß ich nicht und hat sich das angeschaut, was da in dieser Schadsoftware von Finnfischer eigentlich drinsteckt. Großen Applaus für Ulf Burmaier und Thorsten Schröder. Ja, hi. Schön, dass ihr da seid. Herzlich willkommen. Hallo, hallo. Hi, hi. Ja, herzlich willkommen zu Finnfischer CEO in Court. Falls es der eine oder andere kennt, eine amerikanische Bürgerrechtsorganisation hat Sie und 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 FISA-Software. Und bevor wir dazu kommen, auch ein klitzekleiner historischer Rückblick. Keine Sorge, das wird kein krasser Jorah-Talk, dafür birgt schon Thorsten. Ich versuche es. Aber in diesem Talk geht es um ein weiteres Kapitel im Kampf gegen digitales Ungeziefer, und zwar eine ganz besondere Form von digitalem Ungeziefer. Ja, Staats-Trojanern, 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. Ja, 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 25 C3. Da gab es nämlich eine gute Nachricht, aus Karlsruhe zu feiern. Vielleicht erinnert sich der ein oder andere noch daran, das Bundesverfassungsgericht hatte 2008 ein neues Grundrecht erfunden, nämlich das Grundrecht, das wir heute kennen, als das Computergrundrecht 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 Konz und ich diesen Talk gemacht haben vor dem roten Vorhang gehofft, dass dieses Grundrecht was ändern würde. Aber leider müssen wir sagen, Tartus nicht. Wir haben 2011 ein Staatstrojaner gefunden, der eben 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, was war das, der 28, ne, 28? Hier sieht man das, Jugendbildnisse von Trojanern. 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 irgendwie nur auf der Bühne, wenn es um Staatstrojaner geht. Ist auch der selbe schwarze Pulli bei mir, glaube ich. Ich habe den extra nochmal gewaschen. Sehr gut. 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 eben einen Rechner in eine Wand zu verwandelt und somit eben in jedem Teil der Wohnung auch abhören kann und man Software nachladen kann und so weiter. Ja, das mit dem Software nachladen war vielleicht so der krasseste Verstoß. Ja, also eigentlich hatte das Bundesverfassungsgericht nämlich sehr genau vorgeschrieben, was ein Trojaner so können darf und was nicht. Ja, 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 und Thorsten und ein paar andere Leute aus dem Club hatten ja sogar so eine Fernsteuer Software gebaut. Ihr konntet den quasi Fernsteuer mit so einer kleinen Windows Software. Also eigentlich sollte dieser Trojaner ja nur Skype abhören und vielleicht mal so ein bisschen die Chatlocks mitlesen. Bei der Analyse ist allerdings aufgefallen, dass der weit aus mehr kann. Eben unter anderem auch Software nachladen, aber eben auch Screenshots anfertigen und eben auch Screenshots von nicht abgeschickten E-Mails und Gedanken und was auch immer man halt in so einen Rechner so reintippt. Im Grunde genau das Grusel-Szenario, das wir gerade auch beim Club immer wieder kritisiert hatten, weswegen Staats Trojaner 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 Staats Trojaner einfach nicht kaputt zu bekommen. Und so haben wir in Deutschland seit 2017 wieder eine Rechtsgrundlage für Staats Trojaner, eine neue sogar nämlich dieses Mal im Strafverfahren. Also das Bundeskriminalamt darf die schon viel länger einsetzen seit 2009 allerdings nur zur Abwehr von Terrorismus und diesmal wirklich. Diesmal steht sogar im Gesetz. Aber seit 2017 gibt es eben ein neues Gesetz, dass das im Prinzip den meisten Strafverfahren erlaubt, so Trojaner einzusetzen. Deswegen hat die Gesellschaft für Freiheitsrechte dagegen geklagt. Darüber haben wir letztes Jahr schon kurz besprochen, weil wir sagen, was dieser Trojaner kann, ist weder mal verfassungswidrig. Und wir kritisieren aber nicht nur das, 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 es uns um die IT-Sicherheit insgesamt, weil wir uns fragen, welche Sicherheitslücken werden eigentlich frei gehalten, offengehalten, ganz bewusst, damit so ein Trojaner ins System eingespielt werden kann. Denn nur in Ausnahmefällen haben die Behörden direkt Zugriff aufs System. In aller Regel müssen die Trojaner aus der Ferne eingespielt werden. Und dazu braucht man eben Sicherheitslücken. Und 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, Sicherheitslücken, die eben dem Hersteller noch nicht bekannt sind, auch geheim zu halten. 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 Trojanereinsatzes ist bemerkenswertrot. Zumindest, was diese Finnfischer-Spyware angeht, gibt es hier halt vom Citizen Lab erstellt, diese Karte, wo diese Schadsoft wäre 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 halt noch lange nicht, dass wir das Problem los sind. Nein, ganz im Gegenteil. 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. 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 Finn Fischer steht. Oder Hamad bin Isa Al Khalifa, der sich selbst im Jahr 2002 zum König von Bahrein ausrief und bei der Rangliste der Pressefreiheit aus dem Jahr 2017 herausgegeben von Reporter ohne Grenzen, legt Bahrein den stolzen Platz 164 von 180 mit anderen Worten Pressefreiheit bedeutet, in diesem Land zu schreiben, was der Chef will. Die Presse in Bahrein gehört zu den Unfreisten 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 eben gezielt versucht wird, Menschen zu hacken, die sich kritisch äußern. Aber die Probleme beginnen direkt vor unserer Haustür. Ja, wir haben auch in Europa beziehungsweise den Anwärtern für die Europäische Union ja, Staatslenker, die auch ein Problem haben mit ihrer eigenen Bevölkerung und mit der Opposition. Und ja, nun gab es da halt diverse Unruhen. Also es gab einen Putschversuch im Sommer 2016. Gab es ein Putschversuch in der Türkei, die Türkei wandelte sich da nach zunehmendst in ein eher repressives Regime. 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 beschlossen. Es ist auch sehr, sehr auffällig, wie dringend immer darauf hingewiesen wird, dass die Leute, die dort inhaftiert sind, ja, unter Terrorverdacht stehen. Also jeder, der gerade zur falschen Zeit am falschen Ort ist, wird dann auch mit diesem Terrorismus verdacht. Erst mal weggesperrt. Ja, 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 sieht ja 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 und so, als wenn das Menschen wären, die hinter diesen Protesten stünden. Und auf dieser Seite, von der man denken könnte, sei eine Protest-Website, gibt 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 ein Messenger oder ein 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 eben als den Adalett-Trojaner bezeichnen. Die Frage ist nur, woher kommt der Trojaner? Wir sind der Meinung nach ihr 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. Wie so ein Verdacht. Ja, denn man kann sich das vorstellen. Anna Biselli hat es 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 Dollar-Bündeln wedelt, dann finden sich immer wieder zwielichtige Softwareunternehmen, die mit solchen Trojanern Geld verdienen wollen, Menschenrechte hin oder her. Beispielsweise die Unternehmensgruppe FindFisher aus München, Selbstbeschreibung, Excellence in Cyberinvestigation. 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, FindFisher 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 diesem Erfordernis, eine Genehmigung einzuholen, ausgenommen. Und nun hatten wir in dem Adalett-Fall einen sehr, sehr schönen Fall. Die türkische Regierung setzt ein 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 und der Koordination der Gesellschaft für Freiheitsrechte. Das hat da meine Kollegin Sarah Lincoln gemacht. Am 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 in diesem Sommer eingereicht, um zu erreichen, da das die Verantwortlichen bei der Firma Finfischer 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 eben in diesem Fall in der Türkei verletzt werden. Ja, hier haben wir nochmal so den Ablauf zusammengestellt. Ja, das sind jetzt die Timeline der Anzeige. Beziehungsweise wann das Sample, wir reden hier von einem Sample, wenn wir jetzt von so einem APK, von so einer Schadsoftware-Installation reden, wann das verbreitet wurde, das war dann im Juni 2017. Das ist definitiv nach Einführung der Exportrichtlinien. Man kann hier mit Gewissheit sagen, dass die Zielgruppe, die oppositionellen in der Türkei waren, das ergibt sich halt aus dem Kontext dieser Webseite und allem drum herum. Und ja, eben was ich sagte, es gab eine Anfrage an die Bundesregierung, die letztlich bestätigte, dass es also in diesem Zeitraum zwischen 2015 und 2017 keinerlei Genehmigungen in diese Richtung gab. 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 Finfischer 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. Also ich hoffe jedenfalls finanziell wird sich das nicht lohnen für die Abmahner. Aber klar, der Artikel ist zurzeit nicht verfügbar. Jedenfalls sich bei netzpolitik. Es soll ja in diesem Internet auch Archivseiten geben. Ja, und dort könnt ihr ihn nach wie vor lesen in seiner vollen Schönheit. Ja, Finfischer und Kohl schlagen zurück. Wir denken getroffene Hunde bellen. Und außerdem lassen wir uns davon natürlich nicht einschüchtern. Wir haben, wie heißt jetzt in diesem Fall die Gesellschaft für Freiheitsrechte, den Club gebeten, sich die bisherigen Beweismittel gegen Finfischer noch mal 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. Das ist also die Norm des deutschen Rechts, die ungenemigte Exporte unter Strafe stellt. Genau genommen parken auf 18 Absatz 2 Nummer 1 und Absatz 5 Nummer 1 dieses Außenwirtschaftsgesetzes. Ich erspare euch die juristischen Details. Das 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. Da kann man 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 Kars-Computer-Club, doch noch mal ganz genau sich diese Trojaner anzuschauen. Zwei rechtliche Fragen, wie soll ich sagen, zwei Tatsachenfragen, zwei Faktenfragen, die aber eine große rechtliche Bedeutung haben. Und zwar zum einen ... Zum einen eben der Herstellungszeitpunkt, was ja wichtig ist und relevant ist, wenn es darum geht, herauszufinden, wurde diese Software nach dem Stichtag, Mitte 2015 war das, glaube ich, hergestellt. Ja, genau. 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 halt den Anfangsverdacht, dass es sich hier bei Umfinnsball von Fynn Fischer handelt. Aber das ist eben die Frage, die geklärt werden sollte. Und das haben wir als Kars-Computer-Club dann einfach mal getan. Ja, und dazu gab es ja schon bisherige Analysen. Also andere Leute haben sich auch schon mal Fynn Fischer Samples oder Fynn Spice Samples angeschaut. Diese Analysen waren so auch für euch der Ausgangspunkt, ne? Genau, also 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 eben sehr viel von Citizen Lab, die haben halt sehr viel in der Richtung gemacht, nicht nur für Fynn Fischer Produkte werden da von denen analysiert, sondern auch noch andere. Dann ging es eben darum, zu prüfen, ob das anders plausibel ist, was da drin ist, ob man das alles reproduzieren kann, ob man das Ganze dann eben auch noch mal 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 eben sowas ähnliches auch schon getan haben. Also da gibt es eben schon ein Plausibilitätscheck aus 2018 von einer Firma. Und ja, 2018 hat AccessNau auch noch mal ein Bericht, eine Zusammenfassung all dessen veröffentlicht. Und ja, jetzt für die Klage gab es dann auch noch mal eine technische Analyse, ganz speziell dieses Adalett-Samples, also eben dem eigentlichen Gegenstand der ganzen Klage. Und ja, wir haben uns natürlich diese ganzen Dokumente angeguckt, haben halt geschaut, da sind da irgendwo noch vielleicht 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. Also wer jetzt hier erwartet, dass es irgendwie total bahnbrechende Neuigkeiten gibt über irgendwelche Fins-Buy oder Finsfischer, Trojaner, die Leute muss sich 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 manch andere Punkte, die halt in den Reports vorher genannt werden. Und die habt schon, finde ich, einige sehr, sehr spannende technische Details nach rausgekramt, zu denen wir gleich noch kommen. Zum Beispiel diese Provisionierung, wir werden die Trojaner eigentlich angepasst. Das fand ich schon ein sehr, sehr spannendes technisches Detail. Ja, ihr habt dann vorgestern, war es, nicht gestern war es, die Analyse des CCC veröffentlicht? 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 halt auch bewerten und wie wir die einzelnen Indizien gewichten und zu was für einem Schluss wiedergekommen sind. Ja, was wir auch noch, was uns halt sehr wichtig war in der Arbeit, wir haben am Ende auch alles veröffentlicht. Also im Gegensatz zu all den anderen Organisationen, die diese Arbeit auch schon und da auch sehr viel Arbeit investiert haben. Wir haben sämtliche Samples, diese Schadsoftware-Samples, das haben wir auf GitHub veröffentlicht, gibt es nachher noch einen Link. 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 auch 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 beschrieben, das muss eigentlich nicht. Sehr schön. Ja, und nochmal ganz kurz, der in Anführungsstrichen Auftrag. Selbstverständlich kann man dem CCC keinen Auftrag geben und insbesondere hat die GFF den CCC natürlich nicht bezahlt. Ja, das ist also ganz wichtig zu sagen, es ist jetzt 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 nochmal ganz kurz zusammenfassend eben 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 eben aus rechtlicher Perspektive. Wann ist dieser Adalet-Troyana 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. Hier auf GitHub. Genau, hier sehen wir jetzt kurz mal so ein Listing der Samples, die wir analysiert haben. Das sind auch die original Schadsoftware-Dateien. Da sind also diese Trojaner drinne. Das befindet sich hier gerade alles in dem GitHub-Repository von Linus Neumann, mit dem ich diese ganze Analyse auch durchgeführt habe. Vielen Dank auch nochmal an Linus. Wir haben einige Nächte... Einige Nächte verbracht mit diesen tollen Trojanern. Genau, auch eingesetzt wurden diese Samples eben in Türkei, sagst du, in Vietnam und in Myanmar. Das sind die Länder, wo wir es wissen, ne? Ja, was wir es wissen oder eben sehr stark annehmen, ist es nicht so leicht zu sagen, wo sie eingesetzt wurden, wer sie gekauft hat. Man kann das halt Schlussfolgern aus verschiedenen Indizien. Bei der Türkei ist es relativ leicht, sag ich mal, im Kontext gesehen, weil wir ja auch diese Webseite hatten, die sich dann auch gezielt gegen die Zielgruppe darrichtete. Es gibt auch Samples, wo man relativ sicher sagen kann, dass sie zum Beispiel in Myanmar eingesetzt wurden, weil da eben eine sehr bekannte bromästische Social-Plattform genutzt wurde, also dieser Name wurde genutzt, um dieses Sample sozusagen zu verbreiten. Das ist halt ein klares Indiz, dass das gegen diese Bevölkerungsgruppe ging. Bei Vietnam weiß ich halt nicht genau, dass man, diese Attribution 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 halt nicht viel aus. Dazu sehen wir gleich noch ein bisschen mehr, aber fangen wir doch vielleicht an mit der ersten zentralen Frage, nämlich der Feststellung des Herstellungszeitpunkts. Dazu habt ihr euch eine ganze Reihe Gedanken gemacht, wie man darauf kommen könnte. Ja, also die zentralen Fragen waren, wann wurde das hergestellt? Also haben wir uns all diese ganzen Samples angesehen und haben geguckt, ob wir da ein Indizien finden, dass dieses Software möglicherweise nach 2015 hergestellt wurde. Da gibt es verschiedene Möglichkeiten. Grundsätzlich alles, was wir jetzt in den Binarys und in diesen Shardsoftware-Samples finden, das ist dann so der frühestmögliche Zeitpunkt. Wenn ich beweisen kann, dass zum Beispiel eine Komponente dieser Shardsoftware erst im Mai 2016 überhaupt hergestellt oder veröffentlicht wurde, dann bedeutet das natürlich auch, dass das ganze Shardsoftware-Sample erst nach diesem Zeitpunkt hergestellt werden kann. Das ist also der frühestmögliche Zeitpunkt. Das kann also auch durchaus sein, dass es 2017 zusammengebaut und verschickt und verkauft wurde. Das wissen wir halt nicht so genau. Aber jedenfalls eine Library, die noch nicht veröffentlicht war, kann nicht eingebaut werden, ne? Genau, deswegen haben wir halt sehr geziert, gehen wir noch mal zurück, sehr geziert nach solchen Artifakten von Compiler angesucht oder irgendwelche Zeichenketten aus irgendwelchen Open-Source-Produkten. Es gibt aber auch in diesen APK-Dateien, das sind halt so diese 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 zum Beispiel 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 einen 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. Nur warum sollte man das tun? Warum sollte man das tun? Vielleicht gibt es einen guten Grund dafür, aber wir haben uns ja auch aus diesem Grund und eben genau deshalb Samples angeschaut, die bis ins Jahr 2012 zurückreichen. Also wir haben uns diese Trojana-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 halt schon fragen, ob das jetzt plausibel ist oder nicht. Ansonsten gibt es halt noch öffentliche Dokumentationen. Dazu gehört halt das Sample selber. Das haben wir auch noch aus dem Internet, aus verschiedenen Quellen aber gegeben. Deswegen ist es halt wichtig, sämtliche 28 Samples, die wir da hatten, anzuschauen, wann wurden die eigentlich am Einzelnen hergestellt? Ein Ansatzpunkt war eben der Herstellungszeitpunkt von Bibliotheken. Genau, hier sehen wir das Assembly 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-Bitcode 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 anderen Programmiersprachen, entwickelte Libraries, die halt mitgeliefert werden. Und in dem Fall war in diesem Sample, gab es noch so Shared Object Files. Das ist halt unter Linux Betriebsystemen, haben die die Änderung.so. Unter Windows gibt es ein ähnliches Konzept. Das sind dann halt dynamische Bibliotheken, die als DLL mitgeliefert werden. Und in dem Fall gab es halt 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 dran. Das ist SQLite, das ist ein Open-Source-Projekt, so eine Open-Source-Datenbank. Und die hinterlässt dann in diesem Compilat, 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 Prozent davon ausgehen, dass das hier sicherlich niemand ausgedacht hat im Jahr 2012. Das ist ziemlich unwahrscheinlich. Ich hoffe, das lasert dir nicht die Augen. Passt schon. Passt schon, ich schrei dann. Und dann habt ihr euch die Zertifikate angeschaut mit denen, die Software signiert worden ist, die einzelnen. 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 halt getan. Deswegen ist der Vorständigkeit teilweise in unserem Report natürlich auch noch mal 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, also was hätten wir jetzt hier, wenn wir da jetzt irgendwelche Werte manipulieren, wenn wir es zurückdatieren, OK, wenn noch einmal kurz zurück ist. Wenn wir es zurückdatieren, ist schön. Dann könnten wir Researcher an die Irre führen, wenn jetzt hier z.B. 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 Scharwerte hier. Das sind, das ist ein kryptografischer Hash über dieses Zertif, über den Key, über das Zertifikat. Und der ist einmalig. Also wenn wir uns jetzt in den 28 Samples alle Zertifikate angucken, dann vergleichen wir natürlich auch diesen Scharwert, weil man kann, das ist der Fingerprint, drückt das schon ganz gut aus. Das ist ein Fingerabdruck. Wenn wir genau diesen Fingerabdruck in einem anderen Sample auch 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 halt auch ein wichtiger Punkt für diese ganze Schlussfolgerung am Ende. 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 Adelaide-Sample jedenfalls nicht vor dem 18. Mai 2016 erstellt worden sein kann, einfach weil es da dieses Sikollite, das Bibliotheken noch nicht gab. Genau, also das ist ein so schweres Indiz, dass ich da definitiv sagen kann, dass es nicht vor Mai 2016 hergestellt wurden. Genau, und 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 Wort. Zweiter Aspekt, vielleicht noch wichtiger, die Feststellung der Herkunft. Was für ein Vieh war denn jetzt eigentlich dieses Adelaide-Troyanerchen? Genau, und dafür haben wir, wie ich sagte, über einen Zeitraum von 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 eben 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 so besonders große Rolle. Der Coding-Style ist auch eine wichtige Rolle. Wie ich schon sagte, diese APKs, diese Anwendungen sind 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 Business Assembly dieser Bibliotheken in gewissen Coding-Style ablesen. Man kann verschiedene variable Namen miteinander vergleichen, wenn keine Obfuscation am Start war, also eben 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 stand und sind die gleichen Funktionen auch vorhanden in der Anwendung, die aus 2014 stand und aus 2017 und so weiter. Das können wir schon miteinander vergleichen und auch diffs feststellen, also Unterschiede zwischen den Versionen. So können wir halt von einer Evolution sprechen oder eben eine Beobachtung dieser Evolution einer bestimmten Schadsoftware. Wir haben sehr stark auch mal darauf geachtet, ob wir zum Beispiel sehen können, welche Sprache, welche Muttersprache die Entwickler sprechen. Das sehen wir halt an manchen Stellen sehr deutlich. Komme ich nachher noch mit Beispielen zu. Genau, und dann schauen wir uns auch an, wann und wie die provisioniert wurden und ob es da irgendwelche Ähnlichkeiten gibt. Also 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 der unterschiedliche Parameter gesetzt. Dazu kommen wir auch gleich nach und 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. Ja, das heißt, wenn man weiß, bestimmte Samples gehören zusammen, gehören kommen aus dem selben Haus und man kann dann wenigstens ein Sample oder zwei Sample einem ganz konkreten Hersteller zuweisen, dann gilt es mit 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? Ja, Phineas Fischer hatte einen größeren Batzen Daten aus dem Hause von Fischer getragen und veröffentlicht. Das hat Tipp. Es gibt da ein 40 Gigabyte großes Pfeil, wo sehr viele Samples drin sind, die auch analysiert haben. Vielen Dank nochmal, Phineas Fischer. Mit anderen Worten, es ist für diese Analyse ein großer Vorteil, dass es bestimmte Samples gibt, die eben aus diesem Phineas Fischer Herk stammen und die man mit sehr großer Wahrscheinlichkeit aufgrund vieler Indizien dieser Firmengruppe Phin Fischer zuordnen kann. Das heißt, man hat quasi so zwei Anker, ich glaube zwei sind es, oder wie viele Samples sind da drin? Ja. Das heißt, man hat quasi zwei Ankerpunkte und kann sich dann von diesen Ankerpunkten über den Vergleich von Samples weiter vorhangeln. Aber das erinnert natürlich nichts daran. Attribution is hard. Sehr hard. Wir suchen also natürlich noch weiter nach Indizien, die auf den Urheber schließen lassen. Die Attributierung von Schadsoft wäre, wenn mal irgendwie wieder der Bundestag gehackt wurde oder irgendjemand anders. Da kommen dann immer ganz schnell Leute, die sagen, die Russen waren, die Chinesen waren es und so weiter. Das ist alles nicht so leicht. Wir müssen diese Attributierung hier allerdings ja auch ein Stück weit durchführen und hangeln uns dann aber auch entlang an den jeweiligen Kontext, zum Beispiel, wo so ein Sample eingesetzt wurde, wie dieses Adalett-Sample zum Beispiel. Ja, was, was hätten, es gibt ja grundsätzlich die Möglichkeit auch zu faken, dass das jetzt irgendwie, wenn ich sage, ich bin jetzt irgendwie irgendeiner Hackergruppe oder irgendein Konkurrenz von Phin Fischer, dann will ich die vielleicht in einem schlechteren Licht darstellen lassen und fake jetzt vielleicht mal irgendwie MyWare von denen und macht dann so Force-Fleck-Geschichten. Das ist natürlich alles möglich, aber in diesen einzelnen Fällen relativ unwahrscheinlich. Na auch sowas, könnte man theoretisch faken. Das kann man definitiv faken. Das ist jetzt, was wir jetzt hier sehen, ist die verarbeitete Ausgabe von so einer Konfiguration, also von so einer Provisionierung. Wie Ulf schon sagte, diese einzelnen Samples werden ja nicht jedes Mal neu kompelliert und neu entwickelt. Da gibt es dann einfach die verschiedenen Parameter, die für den Case, das jeweiligen Einsetzer notwendig sind. Und das wäre dann so eine Konfiguration. Da steht dann jetzt zum Beispiel, ja, der Proxy für das eine Hause telefonieren, hat die und die IP-Adresse oder den und den Hosten haben. Dann sieht man hier auch noch eine Target-ID, in dem Fall Adalad. Das hat halt, wer auch immer diesen Trojaner zusammengebaut hat, sich ausgedacht. Dann gibt es noch Telefonnummern, wo SMS geschickt werden oder wo angerufen werden kann. Und in dem Fall kann man halt ganz gut sehen, dass diese Attributierung schlecht hart ist. Denn die IP-Adresse stand aus Deutschland. Die Telefonnummer ist eine israelische. Und die andere Telefonnummer ist eine internationale Mehrwertrufnummer. Da lässt sich jetzt noch nicht so stark darauf schließen, dass es tatsächlich von türkischen Behörden eingesetzt wurde. Etwas anders sieht es aus bei der Familie der Samples, die ihr analysiert habt. Denn da hilft euch ja das Zettifikat, das zum Signieren verwendet worden. Genau, das sind dann ein paar Indizien, die wir da rausgepickt haben, anhand der wir halt irgendwie bestimmte Gruppen zusammenfassen können. Also was gehört definitiv zusammen, was nicht? In dieser Liste ist jetzt sehr will, sieht die aus. Was hier grün markiert ist, ist das Adalad-Sample, von dem wir quasi so ausgehen. Wir wollen also parallelen finden zu diesem Adalad-Sample. Alles, was hier rot markiert ist, hat eine Parallele. Das stammt nämlich alles aus dem League 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 Phin Fischer stammt. Wenn wir jetzt mal davon ausgehen, dass das hier aus dem Hause Phin Fischer stammt, weil es in dem League war, dann haben wir hier ein Sample, das nennt sich 421-AND. 421 scheint die Versionsnummer zu sein, AND heißt Android. Wir sehen hier, das ist dieser Fingerprint von diesem Zetifikat, 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. So, und dann haben wir hier oben dieses Android, 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, Web-Server-URLs, die halt auf Gamma International schließen lassen. Und es wurde aber auch noch ein In-The-Wild-Sample damit signiert, mit dem gleichen Zertifikat, dieses D-Rise, ist das, was in Vietnam identifiziert wurde. Und eben auch vietnamesische IP-Adressen, Telefonnummern und so weiter drin hat. Wie gesagt, Attributierung ist schwierig. Aber in dem Fall können wir auf jeden Fall sagen, dass hier Demo-Samples und In-The-Wild-Samples definitiv aus einem Hause stammen anhand dieser Zertifikats-Fringer-Prints. Ja, und 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. Genau, wir haben uns dann verschiedene Funktionen angeguckt und haben halt mal geguckt, was sehen wir so in 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 obfiskiert ist. Hier sehen wir diese zwei Samples. Und zwar das, was aus dem League stand von 2014, das ist auch irgendwie so eine Art Demo. Und 2016, also ich sage jetzt mal 2016, weil es definitiv nach 2016 hergestellt wurde, das Adderlet-Sample. Sie hatten hier so einen Refactoring durchgeführt, also eine Umbenennung aller Variablen und Funktionsnamen und so weiter. Das ist eine und dieselbe Funktion. Das kann man sehen, wenn man sich den Code durchliest. Jetzt wollte ich ja aber keinen Source-Code an die Wand werfen. Deswegen habe ich hier so ein Callflow abgeleitet aus dem Source-Code. Das ist eine Funktion namens Run. In dem Sample von 2014 liegt es in einer Klasse namens SMS. In dem Sample Adderlet liegt es in einer Klasse namens Sims, was an Leadspeak hingeschrieben 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 eben auch in 2016. Das ist die Information, was wir da eben rausziehen konnten. Und zugleich kann man ja Schlüsse ziehen aus diesem Leadspeak. Denn wenn man sich überlegt, der Begriff SMS ist was typisch Deutsches. Also man versteht es vielleicht noch in anderen Ländern, aber man spricht normalerweise nicht von SMS, jedenfalls mal nicht im englischen Sprachraum. Und insbesondere, wenn man dann noch das Verb Simsen sich überlegt. Also in Leadspeak dann S1MS, wie Simsen, das ist was ganz typisch Deutsches. Und ich jedenfalls kann mir nicht so richtig vorstellen, dass ein türkischer Programmierer mit einmal von Simsen spricht. Ja, 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 den Duden aufgenommen wurde. Und das Wort Simsen findet man halt wirklich nur im deutschen Sprachgebrauch. Und das ist schwer vorstellbar, dass jemand, der nicht Deutsch Muttersprache hat, Muttersprachler ist, dieses Wort in einem Kot verwenden würde, wenn es im Kontext um SMS-Abfang geht und das Ganze auch noch mit Leadspeak verschleiert wird. Aber ihr habt ja noch eine andere Technologie-Stichwort-Verschleierung gefunden, die außerordentlich pfiffig ist, muss man sagen. Ich war sehr beeindruckt, als ich diese Analyse gelesen habe, nämlich wie diese Daten, diese Parameter, die wir eben schon kurz gesehen haben, zur Provisionierung eigentlich in den Viren-Samples abgelegt oder eigentlich versteckt worden? Ja, da hat sich der Entwickler ein Verfahren ausgedacht, so eine Art Cover Channel, also ein versteckter Kanal, so ein bisschen ähnlich wie Steganographie, 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 müssen wir hier verstecken? Wie ich eben schon sagte, es gibt halt so diese Telefonnummern, die angerufen werden oder wo SMS geschickt werden. Es gibt IP-Adressen, zu denen sich die Schadsoftware verbindet, damit ein Control-Server da übernehmen kann und lenken kann und wie lange die Maßnahme dauert, etc. Das alles ist in einer Konfiguration abgespeichert, die irgendwie in dieses APK-Rein gedrückt werden muss. Und dabei ist euch aufgefallen, als ihr euch die Samples angesehen habt, dass alle ein identisches Verfahren einsetzen. Die benutzen alles identische Verfahren. Wir haben das jetzt auch nicht entdeckt, dieses Verfahren. Das haben andere, Josh Hunzweig, beispielsweise 2012, auch schon in einem Blockbeitrag veröffentlicht, als er es bei Samples analysiert hat. Das ist jetzt nicht beandrechnend das Neues, aber wir konnten zumindest jetzt einfach mal über die sieben Jahre hinweg beobachten, dass dieses Verfahren in allen Samples eingesetzt wird und damit, dass 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 da angeguckt haben, dass sie aus einem Hause stammen. Und wie sieht das jetzt genau aus? Das hier ist der Dateikopf? Nee, das ist nicht der Dateikopf, sondern? Das sind Teile eines, also ein APK ist, wie ich schon sagte, technisch gesehen nur ein ZIP-Archiv. Und in diesem ZIP-Archiv stecken Meterinformation über die im Archiv enthaltenen Dateien. Und dafür gibt es dann diese Central Directory Structure und verschiedene Felder. Das ist dann so eine Header. Da sind da so verschiedene Bytes und Bitfelder festgelegt, die Eigenschaften dieser im Archiv enthaltenen Datei beschreiben. Und eine wichtige Metainformation, die genutzt werden kann, um Daten zu transportieren, ohne dass man es leicht sieht, sind diese Dateisystem-Attribute. Die ZIP-Spezifikation sieht vor, dass es zwei Bytes oder 16 Bit für interne Fallattribute gibt. Und sie sieht vor, dass es 32 Bit für die Dateisystem-Attribute auf dem Zielbetriebssystem gibt. Somit haben wir hier 6 Bit pro Central Directory Structure zur Verfügung, um Daten zu verstecken. Denn wir können da beliebig idiotische Fallattribute setzen. Und das ist das, was Sie gemacht haben. Die ergeben dann zwar, wenn man die Dateien entpackt, auf dem Zielbetriebssystem 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 PK-Zip-Signatur, ganz am Anfang, die ist hier gelb markiert. Und ein Offset von 36 Bytes später kommen dann halt diese 6 Byte-Dateisystem-Attribute. Und wer sich so ein bisschen mit UNIX oder Dateisystem auskennt, sieht auch, dass das jetzt hier keine Bitfelder sind für Attribute, die Sinn ergeben. Nein, was wir hier sehen, sind Base64 kodierte Daten. Und wenn man jetzt durch dieses ZIP, wenn man dieses ZIP-File einmal passt und sich alle diese CDS-Signaturen rauspickt und dann diese Dateisystem, diese Datei-Attribute aneinander hängt, anschließend diesen ganzen String, der dabei rausfällt, Base64 dekuliert, dann fällt daraus später eine Binär-Datei, die genau die Konfiguration dieser Schad-Software beinhaltet. Das wurde, wie gesagt, alles schon mal dokumentiert. Wir haben das jetzt einfach auch alles noch mal nachvollzogen und auf alle Samples angewendet und geguckt, was dabei rauswählt. Das heißt, in dem ersten Schritt, wir müssen die Dateien extrahieren. In dem zweiten Schritt müssen wir die Dateien paarsen. Genau, und das Tool dazu findet sich jetzt wieder auf der Website. Das heißt, also es müsst ihr uns oder vor allem 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 lässt und wir hoffen eben, dass da auf diese Art und Weise noch weitere Samples analysiert werden können. Das ist jetzt noch mal so ein Überblick, wie sowas dann in der Gesamtheit aussehen kann. Wir müssen, glaube ich, so 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. Genau, das ist jetzt dieses Android-Beispiel, was 2012 schon auf VirusTotal gelandet ist. Hier sehen wir eben, wie ich schon angedeutet habe. Es gibt dann halt so Host-Namen, die schon den Namen beinhalten. Ich muss aber auch noch mal dazu sagen, es hat jetzt keine besonders große Aussagekraft, wenn man einen 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. Ja, 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 proprieteren Mechanismus und du sagst, das Format wurde aber weiterentwickelt. Es sieht ganz so nach aus. Also, wenn man sich dann den Inhalt dieser Binär-Datei anguckt, sie benutzen dann so eine Art Directory, um Nummern, bestimmten Funktionen oder variablen Namen zuzuweisen. Das ist auch der Punkt, was es halt einfach macht, diese Konfigurationen zu parsen, zu verarbeiten und herauszufinden, welche Werte bedeuten was. Genau, und diese Werte sind zum Beispiel diese? Beispielsweise das. Wir haben im Adalett-Sample, gibt es, wie ich vorhin schon gezeigt habe, verschiedene Werte, die jetzt auch nicht unbedingt auf die Türkei hindeuten. Dann gibt es aus dem gleichen Zeitraum, gibt es noch ein Flash-28-Sample, was große Ähnlichkeiten und Parallelen mit dem Adalett-Sample aufweist. Da wird zum Beispiel in Proxy aus Neuseeland genommen. Ansonsten die gleiche Telefonnummer. Ja, und dieses D-Rise-Sample hat, wie ich auch schon angedeutet habe, sämtliche Werte, die davon relevant sind, zeigen halt Richtung Vietnam, ob das jetzt was aussagt, keine Ahnung. In jedem Fall haben wir auch all das, diese ganzen Konfig, die wir daraus extrahiert haben, haben wir auch auf GitHub veröffentlicht. Das findet ihr bei Linus in der Finsbi-Dokumentation, wo auch der Bericht und alle anderen Samples liegen. Genau, und vielleicht mag sich ja mal jemand diese Telefonnummern anschauen. Vielleicht kennt ihr ja jemand aus irgendwelchen anderen Zusammenhängen. Das könnte noch ganz interessante Rückschlüsse werden. Da würden wir uns über Hinweise freuen. Und insgesamt sieht man dabei eben, dass es so ein bisschen die Übersicht über die Samples, die ihr analysiert habt. Na ja, ja, aber schon man sieht, denke ich, ganz gut, dass es da so was wie eine Familienstruktur gibt. Genau, der Einzige, der hier so ein bisschen aus der Reihe fällt, ist das Ding hier. Das Ding habe ich jetzt einfach mal Container genannt, weil es sonst keinen Namen hatte. Das ist eine 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 droppt, also das legt quasi so eine Schadsoftware APK überhaupt erst ab. In diesem grau markierten Sample gibt es einen lokalen Root-Curnal-Exploit gegen den Linux-Curnal auf Android-Devices. Die nutzen da als Dirty Cow bekannte Schwachstelle aus, um Root auf dem Telefon zu werden. Dann liegen da noch Werkzeuge, um Persistent-Root zu bleiben. Und dann liegt da halt auch noch ein Sample, nämlich dieses hier, dieses Piaf-App. Ich weiß nicht, wie man das ausspricht. Das ist das Ding, wo wir zum Beispiel davon ausgehen, dass es in diesem Kontext Myanmar zugeschrieben wird, weil Piaf eine sehr bekannte soziales Netzwerk in der Region ist. Und die Antwort aus technischer Perspektive. Vieles davon haben wir im Grunde schon gesagt. Aber in der Zusammenfassung? Ja, wie gesagt, die benutzen sämtliche Samples, die wir hier analysiert haben, benutzen den gleichen Mechanismus für die Provisionierung. Diese ganzen Konfigurationen liegen in einem sehr speziellen Bineer-Format vor. Das ist kein allgemeingültiges Format. Das muss also definitiv aus allem 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 Adalat-Sample frühestens im Jahr 2016 hergestellt wurde. Und ja, die Samples zwischen 2012 und 2014 können auch ganz eindeutig der Firma 5 Fischer 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 Gruppe 5 Fischer zugeordnet ist? Und all das könnt ihr noch mal 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 mal schon mal eine URL für ein Pad auf die Folie geworfen. Das Pad gibt es noch nicht. Das füllen wir noch aus mit einer Ro-Übersetzung aus Google Translate. Oder vielleicht mag das auch jemand von euch machen. Wir würden das gerne Crowdsourcen. Wir würden das nicht gerne Crowdsourcen. Das ist so ein bisschen die Idee dabei, weil das schon ein bisschen Arbeit ist und wir schaffen das einfach schnell. Jetzt wird das Kongressus nicht. Aber vielleicht hat jemand Lust, uns zu helfen. Das wird die URL. Ja, 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. Transparenz ist uns da halt 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 mal angucken. Und wir sind offen für Pull Requests. Genau. Ein Pull Request aus Wiesbaden. Das wäre doch mal eine gute Idee oder eben auch aus Berlin. Die Berliner haben den Vertrag. Ihr könnt auch Tor benutzen, das ist egal. Kein Probleme, sind wir ganz offen. Und das Berliner LKA könnte da auch mitmachen. Die haben ja auch mal ein Sample gekauft, das haben wir dann nie eingesetzt. Die brauchen das eh nicht mehr. Insofern, das hätten sie über. So, 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 Fin Fischer 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 Fin Fischer. 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 also quasi nicht irgendwie nachweisen, da ist der Agent mit dem schwarzen Aktentechchen 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 Kalaschnikovs verletzen, sondern selbstverständlich auch mit Staatstrojanern und dem muss ein Ende gemacht werden. Vielen Dank. Ja, ganz herzlichen Dank. Wir haben noch ganz bisschen Zeit, oder? Eure Applaus. Wunderschön. Dankeschön. Wir haben leider keine Zeit mehr für Fragen. Ich habe ganz zu Anfang vor diesem Talk erwähnt, dass die C3 Post gibt. Und die beiden Speaker haben erwähnt, dass sie auf dem 28. C3 einen Datenträger bekommen haben. Damals bestimmt anders zugestellt ist gerade noch eine C3 Post. Heute bin ich Postbote und ich darf zustellen. Ein Paket. Herzlichen Dank. Ups, also das ist der Entz. Erst nach dem Talk öffnen. Machen wir. Ganz herzlichen Dank. Dankeschön. Und wenn ihr für einen Malloway-Hersteller arbeitet, ich hoffe, dieses Paket enthält euren Albtraum für heute Nacht. Großen Applaus für Thorsten Schröder und Ulf Burmaier.