 Möchte ich euch noch begrüßen zur deutschen Übersetzung des Talks Silivaxin Nordkoreas Waffe der Massentediction oder wie ich gelernt habe mir keine Sorgen zu machen und die Backdoor zu lieben. Die deutsche Übersetzung wird euch präsentiert von Mia Myrion und von Brad on Toast und wir hoffen, dass wir euch helfen können diesen Talk zu genießen. Fangen wir mit einem kurzen Video an. Guten Abend Bürgern der Nation. Heute präsentieren wir euch Stolz Silivaxin. Komplett mit dem großen Aufwand unserer Kameradenprogrammierer entwickelt ist es das beste Antivierenprogramm der Welt. Wir haben es über alle Computer in der demokratischen Republik Nordkorea getestet und es hat toll funktioniert. Es ist ein wahrlich großartiges Programm. Silivaxin wird uns von den gefährlichen Viren des Westens schützen. Lang lebe unser glorreicher Führer. Meine Damen und Herren, wer das nicht weiß, die Dame ist Region He, die Hauptnachrichtensprecherin von Nordkorea und wurde in diesem Jahr 75 Jahre alt und geben wir einen großen Applaus für ihre passionierte Einleitung zu Silivaxin. Ich lüge natürlich nicht meine Freundin. Sie hat nie über Silivaxin geredet, aber war eine gute Aufmerksamkeitsheiserin. Hallo zusammen. Danke, dass ihr alle hier seid. Für diesen Talk Silivaxin Nordkoreas war für der Massentetektion. Lass mich euch zuerst mal über die Story der Forschung erzählen. Es gibt einerseits diese Dissidenten, die hinter dieser Forschung stehen. Der eine davon bin ich, das ist maglechtig. Ich bin der Malware Forschungsteamleiter bei Checkpoint und mein Partner in Crime für dieses Projekt ist Michael Cajlotti. Er konnte leider nicht hier sein, weil er in den Ferien ist, in Hawaii. Wahrscheinlich aus einer Kokosnuss ein Smoothie trinkend, also habe ich ein besseres Bild für ihn gebastelt. Michael, genieß deine Ferien, kommen gut wieder zurück. Und pass auf vor Koreanern, die dich seltsam anstarren. Wir arbeiten beide bei Checkpoint, wie ich bereits event habe. Lass mich euch ein bisschen Hintergrund für diese Forschung geben. Also das Ganze beginnt etwa im März dieses Jahres, als ich noch etwas gesucht habe, was ich auf Twitter gelesen habe. Und da habe ich diesen Artikel gefunden innerhalb von Nordkoreas Hacker Army. Und das ist ein ziemlich guter Artikel, den würde ich weiter empfehlen. Der bespricht das so einen bestimmten nordkaranischen Befektor, der für diese Regierungsagentur gearbeitet hat. Und der Geld machte über das Hacking für die nordkoreanische Regierung. Und was mir dabei aufgefallen ist, durch diesen ganzen Artikel, ist, dass der Auto hier so eine Geschichte erzählen wollte über diese nordkoreanischen staatsgesponserten Hackingaktivitäten. Und er wiederholt dabei auch die offizielle Position der nordkoreanischen Regierung zu gewischen Hackingaktivitäten. Und formell leugnet Nordkorea diese Anschuldigungen und betrachtet diese als Propaganda und konzentriert sich angeblich auch darauf, im Ausland seine anti-viren Software anzupreisen, inklusive der einen genannt Silivaxin. Und im Moment ist Silivaxin ein anti-viren Programm, das exklusiv in Nordkorea verwendet wird. Ich nenne es den King Jong Un-Virus. Offensichtlich ist dies ein seltenes Produkt oder ein seltenes Software und es gibt, dieses gibt es nur in der Republik Nordkorea. So wie ich das mitbekommen habe, ist es in Jahr 2003 entwickelt worden und aktuell ist es in der Version 4.0 seit 2013. Wir besitzen auch eine andere Version aus dem Jahr 2005, welches eine sehr frühe Version von Silivaxin war. Wenn man etwas über Nordkorea weiß, dann ist es, dass es kein Internet in Nordkorea gibt. Stattdessen gibt es etwas, was sich ein Intranet nennt, was ein begrenztes, eine begrenzte und gelobte Nordkoreanisches Netzwerk ist und man könnte jetzt denken, warum benutzt Nordkorea überhaupt ein Anti-Virus-Software. Das erste, die mehr exotische Grund ist, dass man sich schützen möchte vor Viren, die durch fremde Software eingeschmuggelt werden. Und das zweite ist das westliche Medien den Weg nach Nordkorea finden und diese werden dann verkauft auf dem Schwarzmarkt und es klingt ziemlich abgefuckt und um euch davon zu überzeugen, möchte ich euch diese Webseite hier zeigen, die eine Gekraut fundete Webseite ist, in welcher es versteckten Inhalt aus dem Westen gibt, welcher nach Nordkorea geschmuggelt wurde. Ein Fun Fact hier, wenn ihr Probleme mit eurem lokalen Internet-Service-Provider habt, dann habt ihr dann keine Sorge. Bezüglich des Inhalts, es enthält allen möglichen Inhalt wie Wikipedia und südkoreanische Soap-Operas, die scheinbar das nordkoreanische Regime gefährden. Aber es gibt auch noch eine andere Erklärung dafür, dass dieser Anti-Virus existiert und das ist, dass man Geld für das Regime sammeln möchte, dadurch dass man dieses Software verkauft. Diese Software gibt es sowohl in koreanisch wie auch auf englisch und man wollte es dadurch ein bisschen mehr ansprechen für englischsprachendige Nutzer machen. Jetzt müsstet ihr euch fragen, wie kommt man überhaupt dahin, dass es dieses Software gibt. Und die Antwort liegt in diesem Bloomberg-Article, den ich bereits erwähnt habe, der von Martin Williams in einen Blog-Post verlinkt wurde. Er hat das antivieren. Er ist ein Journalist, der solche Neuigkeiten über Nordkorea behandelt. Und er hat diese Software durch ein etwas verdächtiges E-Mail von einem Sicherheitsforscher aus Japan erhalten. Merkt euch dieses E-Mail darüber, werden wir noch sprechen. Nun, er war natürlich nett genug, um das mit uns zu teilen und darum sage ich ihm an dieser Stelle Danke, weil er das Ganze möglich gemacht. Nun, was wollten wir hier eigentlich rausfinden? Wir wollten die technische Struktur der Software verstehen, wie sie gebaut wurde und dadurch wollten wir einen gewissen Einblick erhalten in die Praktiken, die von Nordkoreanischen Programmieren endlich verwendet werden. Wie nehmen Software-Engineers mit solchen eingeschränkten Ressourcen ein so großes Projekt wie einen antivierenden Software in Angriff. Wir wollten auch sehen, ob da noch irgendwelche versteckten Ideen drinstecken bleiben, einen Backdoor beispielsweise oder Überwachungsmöglichkeiten oder so. Und das im Kopf behalten, schauen wir uns mal an, wie die Architektur dieses Antivierenprogramms ausschaut. Und da schauen wir uns mal die Bibliotheken an. Und da hat seine grundsätzliche Shell Extension drin und damit wird im Kontextmenü dieser Eintrag eingefügt. Und damit kann man einen manuellen Scale auf eine Datei mit Silivaxen machen. Und wir haben das Versuch zu testen. Wir haben hier eine Malware, wir klicken da rechts drauf und nichts passiert. Das scheint in den Box zu sein, den wir direkt von Beginn wegsehen können. Spoilers, es gibt mehr Box, aber machen wir mal weiter im Text. Die nächste Library, die wir hier sehen, ist svkernal.dll und das ist die Datei Scanning Engine dieses Antivierenprogramms. Und das ist wirklich die Kernfunktionalität und hier wird der Virus gern implementiert. Damit werden rund 20 Exportfunktionen exponiert, die werden super benannt, Funktionen 1 bis 20 und die prüfen mit Signaturen und mustern, ob eine gegebene Datei böseartig ist oder nicht. Dann gibt es eine weitere selbsterklärende Komponente und das ist das Traymenü. Das sieht man auf der rechten Seite des Bildschirms. Da kann man über die weiteren GUI Menus der Applikationen verfügen. Man kann das SV Main Fenster starten, da kann man einen Follenscan über das Dateisystem starten, man kann mit der Konfiguration rumspielen, man kann auch gewöses Whitelisting betreiben, das ist das zentrale GUI, von hier aus kann man alles über das Antivierensystem machen. Bevor wir jetzt vom Rest reden, das kommuniziert mit einem Treiber namens SVHook.sys und dieser Treiber soll aus einem Kernelspace gewisse Informationen an SV Main übertragen und darüber sprechen wir im Datei dann noch später. Dann gibt es den Update Mechanismus, welcher updated the Binarys, updated the Signaturen und so weiter und so fort runterlädt. Der hat eine Integritätsprüfung und das alles hier ist in dem Internet von Nordkorea und der wird mit einem Server in Nordkorea kommunizieren und macht das über ein customisiertes Update Protokoll. Hier sieht man einige der Nachrichten, die hier ausgetauscht werden und was ich euch hier zeigen möchte ist, wie viel Informationen hier ausgetauscht wird. Man kann hier Seriennummern sehen, Interface-IDs, IPs, das ist alles etwas verdächtig sagen wir mal. Warum brauchen Sie diese ganze Information für die Updates? Aber wir haben keinen Zugang zum Server, wir haben keine Ahnung, wie ein Benutzer mit dem Server kommunizieren würde, wissen wir nicht, warum diese Information gesammelt wird. Also lassen wir das mal einfach so stehen. Was ganz interessant ist, dass das ganze Update Protokoll wurde handimplementiert von den Entwicklungen und sie haben ein paar interessante Fehler gemacht. Die Content-Length-Felder des Headers wurde hier mit einem Unterstrich geschrieben, das ist ein bisschen falsch, das sollte nicht so sein und die Autoren wollten auch die Identität des Update Clients an den Server zu prüfen. Also haben Sie das nicht über den User Agent gelöst, was ja noch typisch wäre. Sie haben noch ein zusätzliches Feld den User Dealer eingeführt und ich habe keine Ahnung, was für ein Dealer die da mit meinen. Aber wir gehen davon aus, dass es nichts mit dem HTTP-Protokoll zu tun hat. Während wir von dem Dealer sprechen, dort ist eine weitere Komponente, das ist der SD Dealer, das ist der Antibarus, den man über das Menü aktivieren kann. Dieser Komponente benutzt eine andere Komponente, den SVSYS und es gibt Zugang zum Dateisystem und gibt eine Datei frei, um gescannt zu werden. Wiederum werden wir diesen Treiber später diskutieren. Ich sollte anmerken, dass diese beiden Komponenten offensichtlich müssen sie die Dateiscannung benutzen, die durch eine Reihe von Dateien eine andere Sache, die wir haben als Treiber über die wir sprechen müssen, ist ein Treiber namens STD IAS-Durzis, welches ein Netzwerkfiltertreiber ist. Dieses Modul ist komplett in Ordnung, weil es macht eigentlich überhaupt nichts, außer dass es Informationen sammelt über TCP-Verbindungen sammelt, aber es sollte aufgerufen werden, doch niemand ruft es auf. Von daher gehen wir davon aus, dass es wahrscheinlich ein Überbleibsel ist von einer früheren Version von Silivaxin. Wir lassen es daher einfach liegen. Ein anderer Punkt ist, dass viele Komponenten hier aus einer kommerziellen Software stammen, falls ihr davon gehört habt, aber es ist ziemlich schwierig diesen zu Reverseingenieren. Man kann es entpacken mit so mittlerem Aufwand. Das hier ist dann im großen und Ganzen die Architektur des Antivirus-Programms. Ich werde da jetzt nicht weiter drauf eingehen, aber ihr könnt das nachlesen in einer Veröffentlichung von uns. Im Spezellen möchte ich jetzt auf etwas Spezielles mich konzentrieren, nämlich auf die Komponente, die wir bereits diskutiert haben. Das ist die Dateis, der Dateis-Scannenbibliothek. Und das ist warum wir darüber reden. Worüber ich als erstes reden möchte, ist das, worauf jeder Reverse- Ingenieur reden möchte oder worauf er zuerst guckt. Das ist, wir haben die Datei geöffnet und haben auf die Strings geguckt. Und wie jeder professionelle Reverse-Ingenieur, haben wir erst mal nachgeguckt, was Google dazu sagt. Und das hier ist das, wo es Ladies und Gentlemen, wo es wirklich interessant wird. Wenn man auf Google guckt, findet man eine andere Datei und diese Datei, was macht die? Sie, es stellt sich heraus, es ist wiederum eine Dateis-Scannen-Engine, die zu einer großen, zu einem großen Unternehmen gehört, aus dem Sicherheitsbereich, nämlich Trent Michael. Wir fanden das jetzt erstmal überraschend. So, bedeutet das, dass diese DLL bestimmte Elemente dieser Software implementiert, benutzt? Nun, lassen wir uns das mal rausfinden. So, auf dem Bildschirm könnt ihr jetzt sehen, was etwas sehen, was ein Binary Diff heißt, von diesen beiden, von diesen beiden Engines. Auf der rechten Seite die Trent Michael, auf der linken Seite die Silivaxin, oh, Entschuldigung, genau umgekehrt. Und was man sieht, es ist, es gibt ein hundertprozentiger Übereinstimmung über mehr als tausend Funktionen. Und außerdem kann man sehen, dass da ein hundertprozentiger, eine hundertprozentige Gleichheit in den Exportfunktionen ist. Und wenn man sich das genau anguckt, dann sieht man, dass diese Funktionen ganz genau dieselben von Trent Michael sind. Und wenn man diese sich dann wiederum anguckt, genau in den Kernfunktionen, dann sieht man wiederum, dass auch diese sehr, sehr ähnlich sind. Jetzt gucken wir uns die ganz, die Nuancen an die kleinen, die kleinen Unterfunktionen. Dann sieht man etwas ganz Interessantes. Das während Trent Micro Engine größtenteils Lipsi Functions benutzt, dass man die vergleichbaren bzw. gleichen Funktionen sieht, dass diese Inline Functions sind, die dieselben Funktionen übernehmen. Und das bedeutet im Großen und Ganzen, dass die Entwickler von Silivaxin den Trent Micro Code möglicherweise rekompiliert haben aus der originalen Engine. Ein Beispiel dafür sieht man genau hier in der Memcopy Funktion und klucken uns jetzt ein anderes Pärchen an, die wiederum ein anderes Artifakt, was überall geblieben ist, sieht man hier. Es zeigt sich, dass dieses spezielle Feld, das in diesem Struct eingebunden ist, die Engine Version des Antivirus darstellt. Und es stellt sich heraus, dass die Engine Version in Silivaxin 891010 ist, die von Trent Micro in 2008 veröffentlicht worden ist. Erinnern wir uns jetzt, dass diese Software aus 2015 stammt, bedeutet, dass wer auch immer diese Software geschrieben hat, eine fünf Jahre alte Software benutzt. Und zu guter Letzt gucken wir uns nochmal ein paar an. Wiederum sieht man hier eine Aufruf einer properitären Funktion von Trent Micro. Das ist in diesem Fall eine Clean-Up Funktion, die im Grunde genommen nichts zu tun hat mit Trent Micro. Aber wiederum sieht man, wir können spekulieren, dass wenn als Silivaxin kompelliert wurde, benutzt man eine spezielle Komponente von Trent Micro. Was ich jetzt noch anmerken möchte, ist, dass dies nicht das einzige Mal war, dass wir in Silivaxin eine Trent Micro Funktion gefunden haben oder Komponenten gefunden haben. In einer anderen Version haben wir wiederum den TNT Filter.cis gefunden, was eine Kernelmodus-Engine ist. Und hier dies zeigt ganz genau, dass hier definitiv häufiger als einmal copyright verletzt wurde. Wir haben uns mit Trent Micro in Kontakt gesetzt und fassen wir jetzt mal kurz zusammen, Trent Micro sagt, dass Silivaxin mehr als zehn Jahre alte Version ihrer Engine benutzen. Sie sagen, what the fuck wir machen keine Geschäfte mit Nordkorea. Abgesehen davon sagen sie, dass sie keine Idee haben, wie ihre Engine in die Hände von Nordkorea fielen. Aber sie haben wohl mit einigen OEM-Herstellern in der Zeit zusammen gearbeitet. Abgesehen davon, dass dies eine ziemlich geheimen Herstellung des Antivirus war, haben wir festgestellt, dass dort einige Mechanismen waren, die es verstecken sollten, dass sie ein Dritt-Party-Produkt benutzt haben. Wir sehen, dass sie zwar eigentlich einen Trent Micro Engine verwenden, heißt das, dass sie auch diese gleichen Signaturen verwenden. Und wenn wir das auf der Oberfläche vergleichen, dann sieht es noch ein Nein aus. Silivaxin hat einen Haufen an Muster-Dateien, während Trent Micro eine hat und da scheint keine Ähnlichkeit auf dem Bineerebene zu sein. Wenn wir allerdings ein bisschen genauer hinschauen, dann sehen wir im Code, wo diese Muster-Dateien geladen werden. Das passiert in der Funktion SW-Funk 19. Und was hier passiert, ist, dass der Name berechnet wird, einer bestimmten Muster-Datei. Dann wird diese Datei geöffnet, gelesen, entschlüsselt. Der entschlüsselte Datei kommt dann in den Buffer hinten dran und dann wird das wiederholt. Was diese Datei also macht, ist, sie lädt alle Pattern-Dateien, entschlüsselt sie und hängt sie aneinander. Also sprechen wir kurz mal über den Verschlüsselungsschlüssel, weil das ist interessant. Das ist der Schlüssel, das scheint ein zufälliger Schlüssel zu sein. Heißt das irgendwas in koreanisch? Nein, in keiner Sprache. Aber wenn man das auf ein koreanisch-englisches Keyboard überträgt und das mal eintiebt, wenn man nicht auf Englisch gestaltet hat, kriegt man diesen String. Und wenn man diesen String auf Englisch übersetzt, dann heißt es wortwörtlich Muster-Verschlüsselung. Wir haben uns also entschieden, das Ganze etwas genauer anzuschauen und wir haben einen Haufen Verschlüsselungsmechanismen gesehen. Einige davon sehen so ein bisschen nach Schau 1 aus und alles andere. Wir haben uns da nicht die Mühe gemacht, das Ganze zu verstehen in die Tiefe, weil eigentlich waren für uns nur die entschlüsselten Muster-Dateien interessant und die haben wir aus dem Speicher gezogen. Und nachdem wir sie aus dem Speicher gezogen haben, haben wir die Dateien wieder miteinander verglichen und jetzt sehen wir, dass die im Hader zumindest sehr ähnlich aussehen und wenn wir ein bisschen weiter runter scrollen, dann sehen wir einige Strings, die zusammen passen und wenn wir ehrlich sind, dann ist das ein über 90% Match zwischen den Dateien und die Unterschiede sind wahrscheinlich Versionsbasiert. Das ist aber nicht das Ende. Wir haben uns überlegt, dass wir dieses Ding testen würden. Wir haben einige Dateien getestet mit Silivaxin und die wurden alle entdeckt. Und wir haben sie mit Trend Microcoscanned und da gibt es einen gewissen Unterschied und obwohl sie die gleichen Signaturen und die gleichen Strings finden, sind die Entdeckungsnamen komplett unterschiedlich. Und das ist verdächtig und dafür gibt es einen Grund und der Grund ist simpel. Silivaxin benennt die detektierten Dateien um, bevor sie sich anzeigen. Und das läuft so. Silivaxin kriegt den Namen von Trend Micro, nämlich hier Troj Unterstrich Stil-1 und ersetzt die Unterstriche und Striche durch Punkte und macht dann noch so ein paar Verschönerungen und verwandelt den Suffix aus einer Zahl in einem Buchstaben und steckt das Ganze dann wieder zusammen mit Punkten und so kommt man auf den Silivaxin Signaturen. Also schaut das so aus, als ob die Autoren hier irgendetwas verstecken wollen. Also zusammenfassend. Alle die Dateien sind geschützt mit dem Thermida-Product, einen kommerziellen Dateishutztool. Das heißt, die Binnertateien haben keine String-Artifacte, die uns helfen zu verstehen, was das Ganze macht. Die Musterdateien sind verschlüsselt, das heißt, man kann auch nicht aus den Signature-Dateien auslesen, was da läuft. Und die malware Signaturen sind in Echtzeit unbenannt, damit man nicht mal im laufenden Betrieb sehen kann, was für Signaturen hier dahinter stecken. Also sollte man hier auf keinen Fall rausfinden können, dass Trendmike oder hintersteckt, was ein bisschen verwirrend ist. Also gehen wir hier ein bisschen weiter rein. Was wir hier ganz viel gesehen haben, ist diese String mal.nukrp.f. Und wir gehen davon aus, dass es eine gewisse Signatur sein muss, anhand von dem, was wir bereits gesehen haben. Wir haben unseren Algorithmus rückwärts ausgeführt und haben den folgenden Detektionsnamen entdeckt. Was ist bei dem hier speziell? Was macht den anders als die anderen? Und was man hier sehen kann, ist, dass, wenn eine Datei gefunden wird, und entschieden wird, ob sie böseartig ist oder nicht, dann wird noch überprüft, ob, wenn es eine böseartige Datei ist, dass es auf diesen String passt. Und wenn ja, dann wird es einfach ignoriert. Das ist verdächtig. Nun, das wollten wir testen. Also haben wir das gegen sechs Dateien, welche mit diesem Namen entdeckt werden sollten von Trendmike. Haben wir das getestet. Trendmike hat sie alle entdeckt. CD-Vaxin hat keine einzige davon entdeckt. Das ist etwas überraschend, weil wir ein bisschen Qualitätstesting gemacht und in den meisten Fällen ist es eigentlich okay. Aber in einer Stelle haben sie einen Typeo gemacht und mal.nukrp.f gesucht. Und dann stellt sich schlussendlich einfach die Frage, was ist das eigentlich genau? Und Trendmike, was scheinbar ein Ding ist, ist das eine Signatur, welche zu Altamallware namens Nuware, Teebs oder Zellhardt passt. Die haben alle keine Verleihverbindungen zu Nordkorea. Aber wenn man diesen Signaturnamen genau anschaut, dann zeigt es, dass diese Malprefix eine generische Detektion ist und das könnte ein ganzes Spektrumanteil entdecken. Nur darauf basiert, wissen wir nicht, was für Malware hier genau entdeckt wird oder ob das überhaupt Malware ist. Wir können uns jetzt natürlich fragen, warum dieses Weitesten gemacht wird. Die offensichtlichste Frage ist, na, das ist ein existierendes nordkoreanisches Werkzeug, das installiert ist und die Atoren wollten halt nicht, dass das ein Alarm auslöst. Potenziell wollten sie so ein Tool in der Zukunft entwickeln und wollten das dann über diese Signatur in der Zukunft auch verstecken. Es ist auch möglich, dass das, weil hier eine Drittpartei Software, die Trendmike-Range, inzuzukommt, dass sie verhindern wollen, dass eine komponente, eine ursprüngliche komponente von Ziliverxin als Malware entdeckt werden könnte und darum dieses Signatur geweitelst haben. Oh, eventuell ist es auch einfach ein dummes, false positive Management, aber das halte ich für sehr unwahrscheinlich. Also sprechen wir kurz noch über die Kernelsite von Ziliverxin. Ziliverxin hat drei Kernelmode und Treiber, aber nur zwei davon werden überhaupt verwendet. SV Filter und SV Hookpunkts ist und fokussieren wir uns also darum auf die zwei. Wir haben mal angefangen darin rumzuschnüffeln. Und da haben wir schon etwas seltsames Entdeck, nämlich dass der Einstiegspunkt in der Relock-Sektion ist und dass hier ein gewisses Paket namens Bob Crypt verwendet wird. Und das haben wir uns angeschaut und das scheint ein alter russischer PE Packer zu sein mit so Polymorphencode und so das sind eigentlich schlechte Neuigkeiten, weil wer will schon Polymorphencode in den Kernel laden? Also haben wir gesagt, Moment, bevor wir uns das da so genau anschauen, vielleicht finden wir eine Antwort, wenn wir die Datei von außen anschauen. Und die Antwort war tatsächlich genau dort. Und die Antwort ist 42. Okay, es ist Hex 42. Dieses ganze verrückte Schutzschema hier mit der Textdatei, die den eigentlichen Tribal ist, einfach mit 42 Hex geixort. Das heißt, dieser verrückte Schutzmechanismus konnten wir umgehen und den Tribal selber direkt anschauen. Und der Ersten davon, das ist einfach ein Dateisystem Filter-Tribal. Der wird von SV Dealer geladen. Das ist das Echtzeit-Scan-System. Das hat zwei Hauptfunktionitäten. Das kann das Echtzeit-Scan machen und fängt alle Aktivitäten auf den Dateisystem ab und sendet die Dateien an SV Dealer, um gescannt zu werden. Und es schützt auch die Binarys des Antivierenprogramms selber, um Fehlfunktionen oder Manipulationen durch den User zu verhindern. Und das braucht uns einige Zeit, bis wir herausgefunden haben, dass wirklich die einzigen zwei Sachen sind, die dieses Binary macht, weil der Code ist ein Durcheinander. Und wir haben das jetzt etwas vereinfacht und so funktioniert SV Filter. Das erste, was es tut, ist es verschwendet Time, Zeit. Es macht eine ganze Menge an wiederholenden Checks und dann versucht es zu gucken, ob die gescannte Datei eine Binary Datei ist. Und dann denight is access. Also. Und im Anschluss verschwendet es viel mehr weitere Time. Zeit. Zu guter Letzt an einem bestimmten Zeitpunkt wird es tatsächlich eine Datei nehmen und scannen. Und wenn die Software dann herausfindet, dass es eine schädliche Datei ist, verwehrt es den Zugriff und ansonsten gibt es die Datei frei. Dann gibt es einen weiteren Teiber, der SV Hook Sys. Wenn man sich den Namen anguckt, okay, es scheint wahrscheinlich an irgendetwas zu binden, aber nein, es tut es nicht. Es ist procediert, Daten aus dem Kernel. Und es scheint in etwa 13 Input-Out-Controls zu haben, aber nur drei werden überhaupt genutzt. Das ist alles in allem ziemlich buggy, fehlerhaft. Und wir haben geguckt, wo eine solche Funktion aufgerufen wird für den Treiber. Und es scheint so, als ob diese beiden Komponenten von zwei verschiedenen Entwicklern geschrieben worden sind. Hier sieht man, dass der Programmierer, der diesen speziellen Aufruf geschrieben hat, einen Buffer der Größe 12 genutzt hat. Jetzt würde man annehmen, dass die beiden Entwickler sich darauf geeinigt haben, dass das die Buffer-Sys ist. Aber wie auch immer, der andere Entwickler war sich darüber wohl nicht im Clan und überprüft erst mal, dass die Buffer-Größe wirklich 12 ist. Und daraufhin passiert natürlich nichts. Es ist also ziemlich, ziemlich erschrodkot. Und während wir da rein, da rein weitergeguckt haben, haben wir versucht, weiter unten zu graben und haben geguckt, warum diese Fehler passieren und glauben einen Fehler entdeckt zu haben. Wenn man dann ein bisschen rum scrollt, dann sieht man, wenn man darauf guckt, dass man eine ganze Menge und Debug Trends bekommt und dass Teile dessen, worauf man referenziert wird, ist underscore 80. Und das scheint mir anstatt, dass man auf richtigen Code guckt, dass man hier, dass man hier einen reverse-ingenierten Treiber nochmal reverse-ingeniert hat. Und dass der Entwickler, dementsprechend einen speziellen Treiber genommen hat, rekompiliert hat, dann eine Menge an Rebug-Prints eingebaut hat und wiederkompiliert hat, um zu sehen, um zu versuchen zu sehen, was da tatsächlich passiert. Dann aber wiederum nicht wirklich erkannt hat, was das für Aufrufe waren, was seine großartigen Programmierkenntnisse zeigt. Und wir sind jetzt nun ziemlich am Ende, beenden den Programmierpart des Vortrags und gucken uns jetzt an, was die Software wirklich tut. Erst mal gucken wir uns an, wer ist überhaupt dahinter. Um das herauszufinden, gucken wir uns die Versions, haben wir uns die Versionsinfo angeguckt und einen Manifest gefunden, das verschiedene, verschiedene Firmen benennt, unter anderem PGI. Und es scheint eine Einrichtung in Nordkorea zu sein, die sich auf Sicherheitssoftware spezialisiert hat, aber interessanter wiederum ist die Firma STS Tech Service, die so eine Art seltsame, shady Firma ist. Wir konnten nichts Wirkliches dazu finden, was dieses Unternehmen tut und überhaupt was hinter der Firma steckt. Wir konnten aber trotzdem einige Dinge finden, und zwar, dass STS Tech Service scheinbar in der Republik Nordkorea sitzt und wir haben hier auch von einer Messe in Pyongyang ein Screenshot, das in dieser, auf dieser speziellen Messe die Firma STS Tech teilgenommen haben und wir haben die Organisatoren der Messe kontaktiert und sie haben uns bestätigt, dass sie aus Nordkorea kamen. Es scheint also eine private Firma zu sein, gibt es das dort überhaupt? Oder ist es eine Regierungs Einrichtung? Eine andere Quelle sagte uns, dass diese Firma möglicherweise eine Untereinrichtung der Armee in Nordkorea ist. Wenn man sich daran erinnert, dass Trent Michael sagte, dass die Engine möglicherweise durch eine dritte Partei nach Nordkorea gekommen ist, stellt sich natürlich die Frage, könnte diese Firma die spezielle Partei sein? Und dann fragt sich, ob es eine Verbindung zwischen Nordkorea und Japan gibt. Wir haben ja unter anderem schon gesehen, dass SV Colonel eine modifizierte Version von Trent Michael's Engine ist, aber wir haben auch gesehen, dass STS Tech Service eine Kooperation mit einer Firma in Japan hatte und tatsächlich haben sie nicht genau mit diesen nach Firma kooperiert, sondern mit einer anderen Unterfirma aus Japan und es stellt sich heraus, dass diese beiden Firmen Silverstar und Magnolia dieselbe Adresse in Japan haben. Alle diese drei Firmen auch STS kooperieren wohl mit der KCC einer berühmten nordkoreanischen Forschungseinrichtung und wir könnten jetzt ziemlich einfach zu dem Ergebnis kommen. Das ist hier eine Kooperation gehabt, aber Nordkorea und Japan sind jetzt nicht wirklich Freunde, deshalb könnte dies einfach auch nur komplett eine zufällige Verbindung sein im dichten Netzwerk der Firmen. Wir konnten jetzt Spuren von Bösartigkeit in diesem Paket finden, aber an diesem Punkt dachten wir uns, wir sind wohl fertig mit der Research, aber kann es wirklich sein, dass es keine Backdoor hier gibt, aber wenn man jetzt nochmal zurückguckt auf die E-Mail, die uns von einem japanischen Engineer geschickt worden ist und uns die Installierpart der Software finden, dann finden wir, dass diese Datei eine selbst extrahierende Datei ist, die eine Version von Silly Vaccine enthält, aber noch wiederum eine andere Datei, die SV Patch. Und wenn man dort auf die Metadaten guckt, dann ist es wohl verbunden mit dem Microsoft automatischem Update, was wiederum ziemlich shady ist. Wenn man jetzt tiefer in die Datei guckt, dann stellt sich heraus, dass es eine signed binary ist und man stellt fest, dass diese Signatur von Kaspersky ausgestellt worden ist. Wiederum tiefer in der Datei, haben wir herausgefunden, dass dies wiederum eine Mailbox ist, von einer relativ bekannten Gruppe dort, von Jakku. Jakku wiederum ist wohl ein Botnet, eine Botnet-Kampagne, die speziell auf Nordkorea und Japan sich ausgerichtet hatte und deren spätere Abteilung, späteren Versionen, sich nur noch gegen Nordkorea richteten. Die Verbindung, die wir jetzt gefunden haben, ist, dass es dort eine interessante Verbindung zusätzlich zu diesem Zertifikat gibt. Wer könnte da das Ziel sein? Es könnte sein, dass jede Silivaxin-Version mit dieser Malwehr infiziert ist. Der Entdecker war Martin Williams und es ist möglich, dass diese spezielle Software gegen ihn benutzt worden ist. Und so, das ist jetzt so ziemlich das Ende. Ich möchte jetzt noch mal alles zusammenfassen und das ist im Rückblick, dass Silivaxin wohl ein illegal Trend-Micros-Engine nutzt und das über viele Jahre und viele Versionen. Außerdem haben wir gesehen, dass die Outworn von Silivaxin versucht haben, das zu verstecken mit einigen interessanten Mechanismen und wir haben gesehen, dass es eine explizierte Weitlist gibt für spezifische Signaturen und dass die Silivaxin-Installation zusammen mit einiger Schadsoftware von Jakku kommt. Es gibt weiterhin einige unbeantwortete Fragen, nämlich wir haben gesehen, dass es einige Artifakts gibt, dass es möglicherweise weitere Komponenten gibt, die nicht aus Trend-Micros-Software stammen. Jetzt ist die Frage, wie kamen sie zu diesen Komponenten? Außerdem hatte diese Weitlist-Signaturen, von denen wir nichts sagen konnten, was sie genau sind. Sie sind heuristisch und möglicherweise wollten sie Weitlisten, das ein einigen eigenen Code und dann war da diese Jakku-Malware, die aus 2013, die, ob sie möglicherweise mit allen Versionen von Silivaxin kommt oder nur mit dieser Speziellen. Und wir können das nicht genau beantworten, aber wir haben gesehen, dass da einiges an Arbeit reingeflossen ist. Über unsere Nachforschung sind wir über einige ziemlich seltsame und nicht so legale Dinge gestoßen, die in der Entwicklung stattgefunden haben. Und gleichzeitig könnte man das alles vollkommen legitim gemacht haben. Also vielen Dank für eure Aufmerksamkeit in unserem Talk. Habt ihr irgendeine Ahnung, warum Trend-Micro ausgesucht worden ist für die Engine? Nein, keine Ahnung. Wenn ihr was wisst, dann sagt es mir bitte. Habt ihr geguckt auf den Fakt, dass dieser Antivirus für Windows funktioniert, obwohl Nordkorea Red Star OS benutzt? Soweit ich gesehen habe mit den Leuten, die ich gesprochen habe, wird Red Star OS nicht groß verwendet in Nordkorea, weil es halt scheiße ist. Was sie tatsächlich verwenden, scheinen chinesische Version von Windows XP und Windows 7 zu sein und entsprechend läuft Silivaxin auf diesen Version. Wie seid ihr an die 2005 Version von Silivaxin gekommen? Kommt später bei mir vorbei, dann sag ich dir. Ich wollte wissen, wie ihr überprüft habt, dass die Jako-Mailware nicht von der White List kam. Wir haben sie überprüft und wurden schlicht nicht detektiert. Es war nicht Teil der White List, aber es wurde halt überhaupt nicht entdeckt von wer von Trennmike und noch sonstigen Wehmunden. Darum wissen wir, dass es nicht Teil der White List war.