We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

Finfisher verklagen

00:00

Formal Metadata

Title
Finfisher verklagen
Subtitle
Rechtsbrüche beim Export von Überwachungssoftware
Title of Series
Number of Parts
254
Author
License
CC Attribution 4.0 International:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Identifiers
Publisher
Release Date
Language

Content Metadata

Subject Area
Genre
Abstract
Die GFF hat gemeinsam mit Reporter ohne Grenzen (ROG), dem European Center for Constitutional and Human Rights (ECCHR) und netzpolitik.org Strafanzeige gegen die Geschäftsführer der Unternehmen FinFisher GmbH, FinFisher Labs GmbH und Elaman GmbH erstattet. Es liegen dringende Anhaltspunkte dafür vor, dass das Münchener Firmenkonglomerat die Spionagesoftware FinSpy ohne Genehmigung der Bundesregierung an die türkische Regierung verkauft und so zur Überwachung von Oppositionellen und Journalist*innen in der Türkei beigetragen hat.
Keywords
47
72
Thumbnail
1:02:13
82
Thumbnail
1:02:15
99
144
157
162
175
179
187
246
253
Physical quantityComputer animationJSONLecture/Conference
Android (robot)Neumann boundary conditionSoftwareState of matterXMLComputer animationLecture/Conference
Information and communications technologySystems <München>Lecture/Conference
Hard disk driveSoftware developerLecture/Conference
SoftwareSkypeHausdorff spaceCalculationTouchscreenWINDOWS <Programm>EmailLecture/Conference
Computer animationDrawingLecture/Conference
Systems <München>Vulnerability (computing)ZugriffPhysical quantityMeeting/InterviewComputer animationLecture/Conference
SpywareSpywareState of matterSoftwareSet (mathematics)
Business reportingGoogle BloggerWordListe <Informatik>Lecture/ConferenceMeeting/Interview
Organic computingListe <Informatik>Lecture/Conference
GoogleWebsiteMobile appDownloadGoogleComputer fileInstallation artComputer animationLecture/Conference
Trojanisches Pferd <Informatik>Lecture/ConferenceXML
CoalitionWordTrojanisches Pferd <Informatik>ARC <Programmiersprache>CoalitionPlane (geometry)Lecture/ConferenceComputer animation
Grand Unified TheoryCategory of beingSample (statistics)InternetSeries (mathematics)SoftwareNorm <Mathematik>Direction (geometry)Web pageLecture/ConferenceComputer animation
Sample (statistics)SoftwareHand fanSample (statistics)Computer animationLecture/Conference
ACCESS <Programm>PlausibilitätMathematical analysisProduct (category theory)Sample (statistics)Direction (geometry)Similarity (geometry)PlausibilitätFormal verificationComputer animationLecture/Conference
World Wide WebSoftwareAndroid (robot)Link (knot theory)Software repositorySample (statistics)WeightComputer animation
Sample (statistics)Series (mathematics)Perspective (visual)Lecture/ConferenceComputer animation
Software repositoryComputer fileInferenceWeb pageTrojanisches Pferd <Informatik>Sample (statistics)Computing platformMetadataSeries (mathematics)SoftwareIP addressRow (database)Computer animationLecture/Conference
SoftwareSample (statistics)Series (mathematics)SoftwareVersion <Informatik>Public key certificateString (computer science)ARCHIVE <Programm>Component-based software engineeringCompilerSpring (hydrology)TimestampSound <Multimedia>InternetMobile appProduct (category theory)Computer animationLecture/Conference
DebuggerHydraulic jumpDCE <Programm>CodeSample (statistics)Programming languageOperating systemLINUXRoute of administrationSQLiteString (computer science)WINDOWS <Programm>Dynamische Link-BibliothekSimilarity (geometry)Web pageComputer animationLecture/Conference
DCE <Programm>Hydraulic jumpDebuggerSQLUser interfaceHash functionString (computer science)Public key certificateAdaptive behaviorSoftwareComputer animation
Version <Informatik>FingerprintRSA (algorithm)AlgorithmSoftwarePublic key certificateSample (statistics)Complete metric spaceTable (information)Lecture/ConferenceJSON
Sample (statistics)CodeRSA (algorithm)Version <Informatik>FingerprintAlgorithmPublic key certificateSet (mathematics)Hash functionSample (statistics)InferenceFingerprintPrint <4->JSON
SQLiteSample (statistics)Set (mathematics)CodeAlgorithmPseudopotenzialPlane (geometry)Function (mathematics)Programming languageVariable (mathematics)Zusammenhang <Mathematik>Sample (statistics)Route of administrationHausdorff spaceParallelenMoment (mathematics)Public key certificateSimilarity (geometry)Parameter (computer programming)SoftwareMittelungsverfahrenObject (grammar)Computer animation
Set (mathematics)AlgorithmAgent <Informatik>Hospital information systemWINDOWS <Programm>Windows MobileSample (statistics)LiniePhysical quantityHausdorff spaceHacker (term)Configuration spaceAttribute grammarInternetHerleitungComputer animationLecture/Conference
PorePositionProxy serverProxy serverConfiguration spaceIP addressSample (statistics)TOUR <Programm>Hausdorff spaceParameter (computer programming)Source code
DECAndroid (robot)Kooperatives InformationssystemFingerprintHausdorff spaceParallelenSample (statistics)Android (robot)Server (computing)WEBMittelungsverfahrenDemosceneUniform resource locatorVariable (mathematics)Function (mathematics)String (computer science)SoftwareComputer animationTable
Sample (statistics)DemosceneVariable (mathematics)Function (mathematics)SoftwareCode refactoringCodeSocial classDataflowComputer animationLecture/Conference
CodeSoftware developerInferenceSample (statistics)InformationComputer animation
Configuration spaceMetadataElectronic signatureFront and back endsProxy serverVideo trackingSample (statistics)Mechanism designSample (statistics)CodeParameter (computer programming)BitConfiguration spaceComputer fileMechanism designFunction (mathematics)SoftwareInformationBinary fileBlogWritingSummationWebsiteInstallable File SystemUNIXString (computer science)Attribute grammarMetreHausdorff spaceOperating systemSteganographyTurtle graphicsMathematical structureBlock (periodic table)Electronic signatureLecture/Conference
Proxy serverService (economics)Configuration spaceProxy serverSimilarity (geometry)Sample (statistics)Zusammenhang <Mathematik>ParallelenDirection (geometry)Lecture/ConferenceComputer animation
Configuration spaceSample (statistics)ParallelenSeries (mathematics)Computer animationTable
Mechanism designSample (statistics)Neumann boundary conditionVersion <Informatik>Android (robot)UploadingPerspective (visual)Sample (statistics)Mechanism designInferenceUniform resource locatorVersion <Informatik>Similarity (geometry)GoogleHausdorff spaceEckeLecture/ConferenceComputer animationTable
Sample (statistics)Perspective (visual)Agent <Informatik>Lecture/ConferenceComputer animation
Neumann boundary conditionAgent <Informatik>USB-StickMittelungsverfahrenData storage deviceComputer animation
Physical quantityData storage deviceLecture/Conference
openSUSEComputer animation
Transcript: German(auto-generated)
Staatstrojaner, also Trojaner, also Schadsoftware im engeren Sinne bloß halt nicht solche von Kriminellen, sondern solche von Unternehmen, die das professionell mehr oder weniger legal machen. Staatstrojaner sollte man 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 Burmeier, der in vielen anderen Fällen auch schon Rechtsbeistand für Clubthemen geleistet hat und Thorsten Schröder ist auch dabei, oldschool Hacker, 20 Jahre dabei, 30 Jahre, weiß ich nicht, und hat sich das angeschaut, was da in
dieser Schadsoftware von Finn Fischer eigentlich drinsteckt. Großen Applaus für Ulf Burmeier und Thorsten Schröder. Ja, hi, schön, dass ihr da seid. Herzlich willkommen. Hallo, hallo. Hi, hi.
Herzlich willkommen zu Finn Fischer CEO in Court. Falls das der eine oder andere kennt, eine amerikanische Bürgerrechtsorganisation hat CEO in Court mal zu Donald Trump gesagt, als er illegal versucht hat, Immigration in die Vereinigten Staaten zu verhindern. Und wir widmen uns genau dem umgekehrten Thema, nämlich der illegalen Auswanderung
von fieser Software. Und bevor wir dazu kommen, noch ein klitzekleiner historischer Rückblick. Keine Sorge, das wird kein krasser Juratalk. Dafür birgt schon, Thorsten. 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, Staatstrojanern, 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 C 3. Da gab es nämlich eine gute Nachricht aus Karlsruhe zu feiern. Vielleicht erinnert sich der eine oder andere noch daran, dass 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, tat es nicht. Wir haben 2011 einen Staats-Trojaner 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. 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
Staats-Trojaner geht. Ist auch derselbe schwarze Pulli bei mir, glaube ich. Ich habe den extra noch mal gewaschen jetzt. Sehr gut. Ja, da haben wir den Staats-Trojaner vorgestellt und nicht nur beschrieben, sondern auch demonstrieren können, wie der gegen diese Grundrechte verstößt, indem er eben einen Rechner in eine Wanze 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, das 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 Fernsteuern mit so einer kleinen Windows-Software. Also eigentlich sollte dieser Trojaner ja nur Skype abhören
und vielleicht mal so ein bisschen die Chat-Logs mitlesen. Bei der Analyse ist allerdings aufgefallen, dass er weitaus 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 Gruselszenario, das wir gerade
auch beim Club immer wieder kritisiert hatten, weswegen Staatstrojaner so gefährlich sind. Das war nun leider allerdings nicht das Ende der Debatte. Wie es sich für so einen richtigen Zombie gehört, sind Staatstrojaner einfach nicht kaputt zu bekommen. Und so haben wir in Deutschland seit 2017 wieder eine Rechtsgrundlage für Staatstrojaner.
Eine neue sogar, nämlich dieses Mal im Strafverfahren. Also das Bundeskriminalamt darf die schon viel länger einsetzen, seit 2009 allerdings nur zur Abwehr von Terrorismus und diesmal wirklich. Diesmal steht es sogar im Gesetz. Aber seit 2017 gibt es eben ein neues Gesetz, das das im Prinzip in den meisten Strafverfahren
erlaubt, so Trojaner einzusetzen. Deswegen hat die Gesellschaft für Freiheitsrechte dagegen geklagt. Darüber haben wir letztes Jahr schon kurz besprochen, weil wir sagen, was dieser Trojaner kann, ist weder mal verfassungswidrig. Und wir kritisieren aber nicht nur, dass der die Grenzen nicht einhält, die das Bundesverfassungsgericht
aufgestellt hat, sondern wir fragen uns, wie kommt der Trojaner eigentlich rein ins System? Wie kommt er eigentlich rein? Bin ich denn etwa schon drin? Damit geht es uns um die IT-Sicherheit insgesamt, weil wir uns fragen, welche Sicherheitslücken werden eigentlich freigehalten, offen gehalten, ganz bewusst,
damit so ein Trojaner ins System eingespielt werden kann? Denn nur in Ausnahmefällen haben die Behörden direkt Zugriff aufs System. In aller Regel müssen die Trojaner aus der Ferne eingespielt werden. Und dazu braucht man eben Sicherheitslücken. Deswegen die Minimalforderung der GFF in diesem Verfahren. Das geht gar nicht.
Wenn man schon eine Rechtsgrundlage für Trojaner schafft, dann muss man auch klare Spielregeln aufstellen, welche Sicherheitslücken eigentlich ausgenutzt werden dürfen. Denn sonst gibt es einen großen Anreiz, ODays, Sicherheitslücken, die eben dem Hersteller noch nicht bekannt sind, auch geheim zu halten. Und damit werden alle Computer auf der Welt diese Sicherheitslücke weiter aufweisen.
Apropos auf der Welt, nicht nur deutsche Behörden finden Trojaner außerordentlich sexy. Ganz im Gegenteil, die Weltkarte des Trojaner-Einsatzes ist bemerkenswert rot. Zumindest was diese Finfisher Spyware angeht, gibt es hier halt vom Citizen Lab erstellt, diese Karte,
wo diese Schadsoftware schon überall gefunden bzw. eingesetzt wurde. Das ist natürlich schön, dass wir uns in Deutschland darum bemühen, da entsprechende Rechtsgrundlagen zu schaffen. Wenn wir das hinkriegen, dass es so eine Rechtsgrundlage gibt oder eben diesen Schutz der Privatsphäre, dann heißt das 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 Bahrain ausrief. Und bei der Rangliste der Pressefreiheit aus dem Jahr 2017 herausgegeben von Reporter ohne Grenzen belegt Bahrain den stolzen
Platz 164 von 180 mit anderen Worten Pressefreiheit bedeutet, in diesem Land zu schreiben, was der Chef will. Die Presse in Bahrain gehört zu den 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 einen Putschversuch in der Türkei?
Die Türkei wandelte sich danach zunehmend in ein eher repressives Regime. Und ja, 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. Ja, eine lupenreine Demokratie zurzeit befinden sich mindestens 34 Journalisten in politischer Gefangenschaft. Hunderte Zeitungen und andere Medienorgane wurden geschlossen.
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 Terrorismusverdacht 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 Organisationswebsite 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, es sei eine Protestwebsite, gab es dann diesen schönen Button. Unten rechts, der so aussieht, als ginge es dort in den Google Play Store. Dort wurde eine Android-Software, so eine APK-Datei,
also eine Android-Installations-Datei zum Download bereitgehalten für einige Wochen. Das Problem ist nur, ihr ahnt es schon, es handelte sich nicht etwa um einen Messenger oder einen 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 Adalet-Trojaner bezeichnen. Die Frage ist nur, woher kommt der Trojaner? Wir sind der Meinung, nach aktuellem Stand, dass dieser Trojaner, der in der Türkei gegen diese Bewegung
eingesetzt wurde, dass er aus Deutschland stammt. Und wir haben einiges an Arbeit investiert, um das auch mit vielen Belegen begründen zu können, diesen Verdacht. 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 Dollarbündeln wedelt, dann finden sich immer wieder zwielichtige Software-Unternehmen, die mit solchen Trojanern Geld verdienen wollen, Menschenrechte hin oder her. Beispielsweise die Unternehmensgruppe Finn Fischer aus München.
Selbstbeschreibung Excellence in Cyber Investigation. Gegen solche Trojaner-Hersteller vorzugehen, ist rechtlich schwierig. Das Problem dabei ist nämlich, dass solche Trojaner unter bestimmten Voraussetzungen ja legal eingesetzt werden können. Das heißt, einfach nur Trojaner zu bauen, ist nicht illegal.
Das gilt ganz besonders, wenn auch deutsche Behörden zur dankbaren Kundschaft gehören. Beispielsweise nach Presseberichten von Netzpolitik.org, das Bundeskriminalamt, aber auch das Berliner Landeskriminalamt. Mit anderen Worten, Finn Fischer 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 Adalet-Fall einen sehr, sehr schönen Fall. Die türkische Regierung setzt einen Trojaner gegen ihre Opposition ein. Mit der türkischen Regierung gab es ohnehin schon Stress genug.
Und dieser Trojaner stammt nun auch noch mutmaßlich aus Deutschland. Und der Export war auch noch illegal, weil es dafür keine Genehmigung gab. Jedenfalls sagt das die Bundesregierung. Und daher war für uns, das heißt in diesem Fall Netzpolitik.org zum Beispiel und die Gesellschaft für Freiheitsrechte ganz schnell klar,
das muss ein Fall für die Staatsanwaltschaft werden. Wir haben deswegen eine Koalition geschmiedet gegen den illegalen Export von Staatstrojanern unter Koordination der Gesellschaft für Freiheitsrechte. Das hat da meine Kollegin Sarah Lincoln gemacht. Am Reporter Unter Grenzen Netzpolitik.org und das EZCHR 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 Fynn Fischer zur Rechenschaft gezogen werden. Weil wir finden, genauso wie deutsche Waffen nicht auf der ganzen Welt mit morden 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 bzw. 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 oppositionell 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 dieser 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 Fynn Fischer 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 Abmaner. Aber klar, der Artikel ist zurzeit nicht verfügbar. Jedenfalls nicht 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, Fynn Fischer und Kohl schlagen zurück. Wir denken getroffene Hunde bellen. Und außerdem lassen wir uns davon natürlich nicht einschüchtern. Wir haben wir heißt jetzt in diesem Fall die Gesellschaft für Freiheitsrechte den Club gebeten,
sich die bisherigen Beweismittel gegen Fynn Fischer nochmal ganz genau anzusehen und zu überlegen, ob es nicht noch weitere Beweise geben könnte. Und das Ziel dieser Mission war noch genauer nachzuweisen, dass tatsächlich die Voraussetzungen vorliegen für den Straftatbestand aus dem Außenwirtschaftsgesetz.
Das ist also die Norm des deutschen Rechts, die ungenehmigte Exporte unter Strafe stellt. Genau genommen § 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 eben bis zum Staatstrojaner. Kann man danach lesen, was man eben alles nur mit Genehmigung ausführen darf. Und wir sind der Auffassung, dagegen wurde verstoßen. Zwei rechtliche Fragen standen im Mittelpunkt unserer Bitte an den Chaos Computer Club
doch noch mal ganz genau, sich diese Trojaner anzuschauen. Zwei rechtliche Fragen oder zwei, 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 hierbei um FinSpy von Finn Fischer handelt. Aber das ist eben die Frage, die geklärt werden sollte. Und das haben wir als Chaos Computer Club dann
einfach mal getan. Ja, und dazu gab es ja schon bisherige Analysen. Also andere Leute haben sich auch schon mal Finn Fischer Samples oder FinSpy Samples angeschaut. Diese Analysen waren so auch für euch der Ausgangspunkt. 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 CitizenLab. Die haben halt sehr viel in der Richtung gemacht. Also nicht nur Finn Fischer. Produkte werden da von denen analysiert, sondern auch noch andere. Dann ging es eben darum, zu prüfen, ob das alles plausibel ist, was da drin ist, ob man das alles reproduzieren kann, ob man das Ganze dann 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 in Gutachten von anderen Dritten angeschaut, die eben so was Ähnliches auch schon getan haben. Also da gibt es eben schon einen Plausibilitätscheck aus 2018 von einer Firma.
Und ja, 2018 hat ExcessNow auch noch mal einen Bericht, eine Zusammenfassung all dessen veröffentlicht. Und ja, jetzt für die 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, sind da irgendwo noch vielleicht Lippen, 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
Finn Spy oder Finn Fischer Trojaner. Die Leute muss ich leider enttäuschen. Wir haben 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 du hast schon, finde ich, einige sehr, sehr spannende
technische Details noch rausgekramt, zu denen wir gleich noch kommen. Zum Beispiel diese Provisionierung, wie werden die Trojaner eigentlich angepasst? Das fand ich schon ein sehr, sehr spannendes technisches Detail. Ja, ihr habt dann vorgestern war es 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. 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 wieder gekommen 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 haben wir auf GitHub veröffentlicht. Gibt es nachher noch einen Link. Es gibt, 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ühlende Zusammenfassung beschrieben. Sehr schön. Ja, und nochmal ganz kurz. Der Auftrag, selbstverständlich kann man dem CCC keinen Auftrag geben und insbesondere hat die GFF den CCC natürlich nicht bezahlt. Das ist also ganz wichtig zu sagen. Es ist nicht irgendwie eine gekaufte Stellungnahme, sondern wir haben einfach nur gebeten, wenn ihr euch dafür interessiert,
schaut euch das doch mal an. Das wäre wahnsinnig hilfreich. Und ich finde in der Tat großartig, dass der Club jetzt in der Person von Thorsten insbesondere sich die Zeit genommen hat. Ja, das noch mal 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 diese ist dieser Adalet Trojaner aus der Türkei oder der in der Türkei eingesetzt wurde, hergestellt worden? Und wo kommt er tatsächlich her? Ja, und das sind jetzt eine ganze Reihe von Samples hier auf GitHub. Genau das 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 drinnen. 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, eingesetzt wurden diese Samples eben in Türkei, sagst du, in Vietnam und in Myanmar. Das sind die Länder, wo wir es wissen. Ja, was heißt wissen oder eben sehr stark annehmen.
Es ist nicht so leicht zu sagen, wo sie eingesetzt wurden, wer sie gekauft hat. Man kann das halt Schlussfolgern aus verschiedenen Indizien. Bei der Türkei ist es relativ leicht, sage ich mal, im Kontext gesehen, weil wir ja auch diese Webseite hatten, die sich dann auch gezielt gegen die Zielgruppe da richtete.
Es gibt auch Samples, wo man relativ sicher sagen kann, dass sie zum Beispiel in Myanmar eingesetzt wurden, weil da eben eine sehr bekannte burmesische 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 Attribution als 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 Herstellungszeitpunkt. 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 diese Software möglicherweise nach 2015 hergestellt wurde. Da gibt es verschiedene Möglichkeiten. Grundsätzlich alles, was wir jetzt in den Binaries und in diesen Schadsoftware Samples finden, das ist dann so der frühestmögliche Zeitpunkt. Wenn ich beweisen kann, dass zum Beispiel eine Komponente
dieser Schadsoftware erst im Mai 2016 überhaupt hergestellt oder veröffentlicht wurde, dann bedeutet das natürlich auch, dass das ganze Schadsoftware Sample erst nach diesem Zeitpunkt hergestellt werden kann. Das ist also der frühestmögliche Zeitpunkt. Das kann also auch durchaus sein, dass es eben 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. Genau, deswegen haben wir halt sehr gezielt, gehen wir nochmal zurück, sehr gezielt nach solchen Artefakten von Compilern gesucht oder irgendwelche Zeichenketten aus irgendwelchen Open-Source-Produkten. Es gibt aber auch in diesen APK-Dateien,
das sind halt so 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 ein Zertifikat mit einem beliebigen Zeitstempel herstellen. Ich kann ja sagen, ich gehe zurück in die Vergangenheit oder ich erstelle das in der Zukunft.
Das kann man alles machen. 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 Trojaner-APKs angesehen,
die 2012 bis 2019 in die Öffentlichkeit gelangten. Und wir können zumindest sagen, wenn wir jetzt im Jahr 2019 sehen oder ein Muster erkennen können, dass bestimmte Zertifikate vielleicht auch in der Vergangenheit genutzt wurden, dann kann man sich halt schon fragen, ob das jetzt plausibel ist oder nicht. Ja, ansonsten gibt es halt noch öffentliche Dokumentationen.
Dazu gehört halt das Sample selber. Das haben wir auch nur aus dem Internet, aus verschiedenen Quellen. Aber deswegen ist es halt wichtig, sämtliche 28 Samples, die wir da hatten, anzuschauen, wann wurden die eigentlich im 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-Bycode 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-Betriebssystem haben die die Endung Punkt 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 Kompilat diesen String. Das ist ein Datum und irgendein Hash. Und wenn wir uns dann mal anschauen,
okay, wann taucht denn dieser String eigentlich auf? Dann können wir uns auf der Open-Source-Projekt-Webseite anschauen, dass da tatsächlich die SQLite-Version 3.13 im Mai 2016 veröffentlicht wurde. Und lustigerweise sehen wir hier genau diese Check-Summe 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, ich lasere dir nicht die Augen weg. Ja, passt schon, ich schrei dann. Und dann habt ihr euch die Zertifikate angeschaut,
mit denen die Software signiert worden ist, die einzelnen Zertifikate. 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 der Vollständigkeit halber in unserem Report natürlich auch nochmal ein Zeitstrahl.
Wir haben später noch eine schöne Tabelle, wo man das gut sehen kann. Hier sehen wir den Output, wenn man sich dieses Zertifikat mal anschaut, was der Entwickler genutzt hat, um dieses Paket zu signieren. Hier sehen wir, dass es erzeugt wurde im Oktober 2016. Passt also zeitlich, wenn wir davon ausgehen, dass das Zertifikat erstellt wurde,
als dieses Sample halt auch zusammengebaut wurde. Liegt halt auch nach Mai 2016. Bis wann das gültig ist, ist eigentlich völlig egal. 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, okay, wenn du noch einmal kurz zurückgehst.
Wenn wir es zurückdatieren, ist schön, dann könnten wir Researcher in die Irre führen. Wenn jetzt hier zum Beispiel stehen würde, das Zertifikat wurde 2012 erstellt, dann könnten wir überhaupt gar nichts darüber aussagen. So vielleicht schon eher. Was hier noch auffällig ist, das wird halt später noch relevant, es gibt auch diese Fingerprints für diese Zertifikate.
Das sind diese langen Scharwerte hier. Das ist ein kryptographischer Hasch ü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 diese Secolyte-Bibliothek noch nicht gab.
Genau. Also das ist ein so schweres Indiz, dass ich da definitiv sagen kann, dass es nicht vor Mai 2016 hergestellt wurde. Genau. Und damit liegt dieses Datum jedenfalls nach dem Inkrafttreten der Verbote, von denen ich anfangs gesprochen habe. Das heißt also, diese Sample wäre dann, wenn es tatsächlich in die Türkei exportiert worden ist, unter Verstoß dagegen exportiert worden.
Zweiter Aspekt, vielleicht noch wichtiger, die Feststellung der Herkunft. Was für ein Vieh war denn jetzt eigentlich dieses Adelaide-Trojanerchen? Genau. Und dafür haben wir, wie ich sagte, über Samples aus einem 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 Codesigning-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 sind eigentlich, also 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 Disassembly dieser Bibliotheken einen gewissen Coding-Style ablesen. Man kann verschiedene Variablen 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 stammt und sind die gleichen Funktionen auch vorhanden in der Anwendung, die aus 2014 stammt und aus 2017 und so weiter. Das können wir schon miteinander vergleichen und auch DIVs feststellen,
also Unterschiede zwischen den Versionen. So können wir halt von einer Evolution sprechen oder eben eine Beobachtung dieser Evolution einer bestimmten Shared Software. Wir haben sehr stark auch mal darauf geachtet, ob wir zum Beispiel sehen können, 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 jeweils eine vielfach eingesetzte Software, aber für das jeweilige Land wurden dann da unterschiedliche Parameter gesetzt, dazu kommen wir auch gleich nach. 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 gibt da ein 40 Gigabyte großes File, wo sehr viele Samples drin sind, die da 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 Hack stammen und die man mit sehr großer Wahrscheinlichkeit aufgrund vieler Indizien dieser Firmengruppe FINN Fischer zuordnen kann. Das heißt, man hat quasi so zwei Ankerpunkte und kann sich dann von diesen Ankerpunkten
über den Vergleich von Samples weiter vorhangeln. Aber das ändert natürlich nichts daran. Sehr hart. Wir suchen also natürlich noch weiter nach Indizien, die auf den Urheber schließen lassen. Die Attributierung von Schadsoftware, wenn mal irgendwie wieder der Bundestag gehackt wurde oder irgendjemand anders,
da kommen dann immer ganz schnell Leute, die sagen, die Russen waren, die Chinesen waren usw. 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. Es gibt ja grundsätzlich die Möglichkeit auch zu faken, wenn ich sage, ich bin jetzt irgendeiner Hackergruppe oder irgendeinem Konkurrent von FINN Fischer, dann will ich die vielleicht in einem schlechteren Licht dastehen lassen und fake jetzt vielleicht mal irgendwie malware von denen und mache dann so Force-Flag-Geschichten.
Das ist natürlich alles möglich, aber in diesen einzelnen Fällen relativ unwahrscheinlich. Auch sowas könnte man theoretisch faken. Das kann man definitiv faken. 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 des jeweiligen Einsetzers notwendig sind. Und das wäre dann so eine Konfiguration. Da steht denn jetzt zum Beispiel, ja, der Proxy fürs Nachhause telefonieren hat die und die IP-Adresse oder den und den Hostnamen. Dann sieht man hier auch noch eine Target-ID,
in dem Fall Adalett. Das hat halt der, wer auch immer diesen Trojaner zusammengebaut hat, sich ausgedacht. Dann gibt es noch Telefonnummern, wo SMS hingeschickt werden oder wo angerufen werden kann. Und in dem Fall kann man ganz gut sehen, dass diese Attributierung schlecht hart ist.
Denn die IP-Adresse stammt 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 das 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 Zertifikat, das zum Signieren verwendet wurde. Genau, das sind ein paar Indizien, die wir da rausgepickt haben, anhand derer wir halt irgendwie bestimmte Gruppen zusammenfassen können. Also was gehört definitiv zusammen, was nicht. In diese Liste ist jetzt sehr wirr, sieht die aus.
Was hier grün markiert ist, ist das Adalett-Sample, von dem wir quasi so ausgehen. Wir wollen also Parallelen finden zu diesem Adalett-Sample. Alles, was hier rot markiert ist, hat eine Parallele. Das stammt nämlich alles aus dem Leak von Phineas Fischer. Alles, was da oben gelb markiert ist, wurde 2012 schon mal veröffentlicht.
Und es gibt entsprechende Analysen und verschiedene Indizien, die darauf hinweisen, dass es auch aus dem Hause Phineas Fischer stammt. Wenn wir jetzt mal davon ausgehen, dass das hier aus dem Hause Phineas Fischer stammt, weil es in dem Leak 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 Zertifikat, was ich vorhin noch erklärt habe. Diesen Fingerprint finden wir hier oben wieder. Zwei Jahre vorher sind da oben schon Samples in die Öffentlichkeit gelangt,
die genau den gleichen Fingerprint haben. Und dann haben wir hier oben dieses 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 Derise 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-Fingerprints. Ja, und der nächste Schritt, den ihr gemacht habt, ist tatsächlich euch mal die Struktur
der einzelnen Samples anzuschauen. Also insbesondere, wie dieses 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 Leak stand von 2014. Das ist auch irgendwie so eine Art Demo. Und 2016, also ich sage jetzt mal 2016, weil das definitiv nach 2016 hergestellt wurde, das Adalett-Sample.
Sie hatten hier so ein Refactoring durchgeführt, also eine Umbenennung aller Variablen und Funktionsnamen und so weiter. Das ist ein und dieselbe Funktion. Das kann man sehen, wenn man sich den Code durchliest. Jetzt wollte ich hier aber keinen Source-Code an die Wand werfen. Deswegen habe ich hier so einen Call Flow abgeleitet aus dem Source-Code.
Das ist eine Funktion namens Run. In dem Sample von 2014 liegt das in einer Klasse namens SMS. In dem Sample Adalett liegt das in einer Klasse namens Sims, was in 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 ein 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 auch Schlüsse ziehen aus diesem LeadSpeak. Denn wenn man sich überlegt, der Begriff SMS ist etwas 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 etwas 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, so dass es sogar in den Duden aufgenommen wurde. Und das Wort Simsen findet man halt wirklich nur im deutschen Sprachgebrauch. Und es ist schwer vorstellbar, dass jemand, der nicht Deutsch Muttersprachler ist, dieses Wort in einem Code verwenden würde. Wenn es im Kontext um SMS abfangen geht und das Ganze auch noch mit LeadSpeak verschleiert wird.
Aber ihr habt ja noch eine andere Technologie, Stichwort Verschleierung gefunden, die außerordentlich pfiffig ist, muss man sagen. Jedenfalls ich war sehr beeindruckt, als ich diese Analyse gelesen habe. Nämlich wie eigentlich diese Daten, diese Parameter, die wir eben schon kurz gesehen haben, zur Provisionierung eigentlich in den Viren-Samples abgelegt oder eigentlich versteckt wurden.
Ja, da hat sich der Entwickler ein Verfahren ausgedacht, so eine Art Cover Channel, also ein versteckter Kanal, so ein bisschen ähnlich wie Steganografie, wenn man das kennt. Ich verstecke Informationen in Dateistrukturen, sodass man das automatisiert oder mit bloßem Auge nicht besonders leicht erkennen kann.
Was für Konfigurationen müssen wir hier verstecken? Wie ich eben schon sagte, es gibt halt so diese Telefonnummern, die angerufen werden oder wo SMS hingeschickt werden. Es gibt IP-Adressen, zu denen sich die Shared Software verbindet, damit ein Command- und 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 reingedrü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, also wir haben das jetzt auch nicht entdeckt, dieses Verfahren. Das haben andere, Josh Hunzweig beispielsweise 2012 auch schon in einem Blogbeitrag veröffentlicht, als er FinSpy Samples analysiert hat.
Das ist jetzt nicht bahnbrechendes Neues, aber wir konnten zumindest jetzt einfach mal über die 7 Jahre hinweg beobachten, dass dieses Verfahren in allen Samples eingesetzt wird und damit, da es eben auch kein Standardverfahren ist,
um in irgendwelchen APKs Shared Software 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 die aus einem Hause stammen. Und wie sieht das jetzt genau aus? Das hier ist der Dateikopf, ne, 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 Metainformationen ü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 dann so verschiedene Bits und Bitfelder festgelegt,
die 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, sind Dateisystem-Attribute.
Die ZIP-Spezifikation sieht vor, dass es 2 Byte oder 16 Bit für interne File-Attribute gibt. Und sie sieht vor, dass es 32 Bit für die Dateisystem-Attribute auf dem Zielbetriebssystem gibt. Somit haben wir hier 6 Byte pro Central Directory Structure zur Verfügung, um Daten zu verstecken.
Denn wir können da ja beliebig idiotische File-Attribute setzen. Und das ist das, was Sie gemacht haben. Die ergeben dann zwar, wenn man die Dateien entpackt auf dem 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 Struktur. Wir haben diese Signatur, diese PK-ZIP-Signatur ganz am Anfang, die ist hier gelb markiert. Und ein Offset von 36 Byte 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-File einmal passt und sich alle diese CDS-Signaturen rauspickt
und dann diese Dateisystem, diese Datei-Attribute aneinanderhängt, anschließend diesen ganzen String, der dabei rausfällt, Base64 dekodiert, dann fällt daraus später eine Binärdatei, die genau die Konfiguration dieser Chart-Software beinhaltet.
Das wurde, wie gesagt, alles schon mal dokumentiert. Wir haben das jetzt einfach auch alles nochmal nachvollzogen und auf alle Samples angewendet und geguckt, was da da rausfällt. Das heißt, im ersten Schritt, wir müssen die Dateien extrahieren. Im zweiten Schritt müssen wir die Dateien parsen. Genau, und das Tool dazu findet sich jetzt wieder auf der Website.
Das heißt, das 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 da drü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 nochmal 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 nochmal dazu sagen, es hat jetzt keine besonders große Aussagekraft, wenn man ein Sample für sich betrachtet
und solche Zeichenketten da drinnen 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 einen APK reindrücken kann. Das heißt, man könnte im Grunde genommen sowas auch faken.
Das heißt, die Aussage ist tatsächlich weniger, was steht drin in diesen versteckten Konfigurationsinformationen, sondern die Aussage ist, alle Samples verwenden die gleiche Technik, die gleiche proprietäre und auch ziemlich ausgefuchste Technik, um diese Daten zu verstecken in der APK-Datei. Und diese Gleichheit ist die eigentliche Aussage dieser Analyse.
Alle untersuchten Samples nutzen eben diesen proprietären Mechanismus. Und du sagst, das Format wurde aber weiterentwickelt? Es sieht ganz danach aus, wenn man sich dann den Inhalt dieser Binärdatei anguckt, sie benutzen dann da so eine Art Directory, um Nummern bestimmten Funktionen oder variable Namen zuzuweisen.
Das ist auch der Punkt, was es halt einfach macht, diese Konfiguration zu parsen, zu verarbeiten und herauszufinden, welche Werte bedeuten was. Genau, und diese Werte sind zum Beispiel diese hier? 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.
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 ein Proxy aus Neuseeland genommen. Ansonsten die gleiche Telefonnummer. Und dieses DeRise-Sample hat, wie ich auch schon angedeutet habe, sämtliche Werte, die davon relevant sind, zeigen halt Richtung Vietnam.
Ob das jetzt was aussagt, keine Ahnung. In jedem Fall haben wir auch all das, diese ganzen Configs, die wir daraus extrahiert haben, haben wir auch auf GitHub veröffentlicht. Das findet ihr bei Linus in der FinSpy-Dokumentation, wo auch der Bericht und alle anderen Samples liegen. Genau, und vielleicht mag sich ja mal jemand diese Telefonnummer anschauen.
Vielleicht kennt ihr ja jemand aus irgendwelchen anderen Zusammenhängen. Das könnten noch ganz interessante Rückschlüsse werden. Da würden wir uns über Hinweise freuen. Und insgesamt sieht man dabei eben, das ist so ein bisschen die Übersicht über die Samples, die ihr analysiert habt. Na ja. Aber schon, man sieht, denke ich, ganz gut,
dass es da so etwas 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-Kernel-Exploit gegen den Linux-Kernel auf Android-Devices. Die nutzen da die Dirty Cow, als Dirty Cow bekannte Schwachstelle aus, um Root auf dem Telefon zu werden. Da liegen da noch Werkzeuge, um persistent Root zu bleiben.
Und dann liegt da halt auch noch ein Sample, nämlich dieses hier, dieses Piav-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 Piav 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, sie benutzen sämtliche Samples, die wir hier analysiert haben. Wir benutzen den gleichen Mechanismus für die Provisionierung. Diese ganzen Konfigurationen liegen in einem sehr speziellen Binärformat vor.
Das ist kein allgemeingültiges Format. Das muss also definitiv aus einem Hause stammen. Wir haben große Ähnlichkeiten auch unterhalb des Java-Codes, wo es auch Hinweise darauf gibt, dass es aus deutschem Hause stammt. Wir können ganz genau sagen, dass das Adalett-Sample frühestens im Jahr 2016 hergestellt wurde.
Die Samples zwischen 2012 und 2014 können auch ganz eindeutig der Firma Fünffischer 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 Firmengruppe Fünffischer zu zuordnen 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 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 Rohübersetzung aus Google Translate.
Oder vielleicht mag das auch jemand von euch machen. Wir würden das gerne Crowdsourcen. Wir würden das gerne Crowdsourcen. Das ist so ein bisschen die Idee dabei, weil das schon ein bisschen Arbeit ist. Und wir schaffen das einfach schnell. Jetzt während des Kongresses nicht. Aber vielleicht hat jemand Lust, uns zu helfen. Das wird die URL. Ja, und vor allem ganz wichtig, check the facts. Das würden 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 ja mal angucken. Und wir sind offen für Pull Requests. 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. Ist egal. Kein Problem. Sind wir ganz offen. Und das Berliner LKA könnte da auch mitmachen. Die haben ja auch mal ein Sample gekauft, das haben wir da 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 Finn 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 Finn 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 eins. 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 Akten-Täschchen nach Istanbul gereist. Oder da ist der USB-Stick geflogen.
Sondern das müssten die Strafverfolger noch aufklären. Aber wie gesagt, dafür haben wir die Strafanzeige gestellt. Dazu hat die Staatsanwaltschaft alle Mittel. Und wir hoffen, dass sie das sehr konsequent tun wird. Denn eins ist klar, Menschenrechte kann man nicht nur mit Kalaschnikows verletzen, sondern selbstverständlich auch mit Staatstrojanern. Und dem muss ein Ende gemacht werden.
Vielen Dank. Ja, ganz herzlichen Dank. Wir haben noch ein bisschen Zeit, oder? Eure Applaus. Wunderschön. Danke schön. Wir haben leider keine Zeit mehr für Fragen.
Ich habe ganz zu Anfang vor diesem Talk erwähnt, dass es die C3-Post gibt. Und die beiden Speaker haben erwähnt, dass sie auf dem 28.C3 einen Datenträger bekommen haben. Damals bestimmt anders zugestellt. Es gab noch keine C3-Post. Heute bin ich Postbote und ich darf ein Paket zustellen.
Herzlichen Dank. Ach so, das ist deins. Erst nach dem Talk öffnen. Machen wir. Ganz herzlichen Dank. Danke schön. Und wenn ihr für einen Malway-Hersteller arbeitet, ich hoffe, dieses Paket enthält euren Albtraum für heute Nacht.
Großen Applaus für Torsten Schröder und Ulf Burmeier.