Qakbot (aka QBot oder Pinkslipbot) ist ein Trojaner mit einer mittlerweile 15-jährigen Evolutionsgeschichte. Von den Ursprüngen als Banking-Trojaner folgte eine stetige Weiterentwicklung bis hin zu Malware, die heute für die laterale Verbreitung in einem Netzwerk und das Deployment von Ransomware eingesetzt wird.
Nach der Zerschlagung durch Strafverfolgungsbehörden im August 2023 wurde wenige Monate später die 5. Version von Qakbot veröffentlicht. Zscaler analysierte den Wandel einer resilienten, persistenten und innovativen Malware. Kürzlich haben die Sicherheitsforscher festgestellt, dass die Bedrohungsakteure ihre Codebasis aktualisiert haben, um 64-Bit-Versionen von Windows zu unterstützen. Zudem haben sie die Verschlüsselungsalgorithmen verbessert und weitere Verschleierungs-Techniken wurden hinzugefügt.
Die Geschichte eines Trojaners
Ursprünglich wurde die Malware 2008 als Banking-Trojaner entwickelt, um Anmeldeinformationen zu stehlen und ACH-(Automated clearing house), Überweisungs- und Kreditkartenbetrug durchzuführen. Die frühen Versionen von Qakbot enthielten einen Datumsstempel und noch keine Versionsnummer, werden aber in der Grafik der Klarheit halber als 1.0.0 bezeichnet. Zu Beginn wurde die Malware als Dropper eingesetzt mit zwei embedded Komponenten im Resource-Teil, die aus einer bösartigen DLL und einem Tool bestanden, das für die Injektion der DLL in laufende Prozesse eingesetzt wurde. Der Funktionsumfang war bereits zu Beginn umfangreich mit einem SOCKS5 Server, Funktionen zum Passwortdiebstahl oder zum Web Browser Cookies sammeln.
Diese frühe Version wurde ausgebaut und 2011 die Versionsbezeichnung 2.0.0 eingeführt. Es folgten Meilensteine der Entwicklung des Funktionsumfangs und 2019 setzte der Wechsel vom Bankbetrug zum Access Broker ein, der Ransomware wie Conti, ProLock, Egregor, REvil, MegaCortex und BlackBasta verbreitete. Im Laufe der Jahre wurden die Anti-Analyse-Techniken von Qakbot verbessert, um Malware-Sandboxen, Antiviren-Software und andere Sicherheitsprodukte zu umgehen. Heute ist die Malware modular aufgebaut und kann Plugins herunterladen um dynamisch neue Funktionen hinzuzufügen.
Jede Versionsnummer verdeutlichte die vorherrschenden Bedrohungstechniken der jeweiligen Periode. So gingen frühe Versionen noch mit hard-codierten Command-und-Controll-Server einher die mit Fortentwicklung der Erkennungstechniken und der Stilllegung von Schadcode-behafteten Domain-Namen abgelöst wurden. Als Antwort darauf wurde Netzwerk-Encryption und ein Domain-Generation Algorithmus (DGA) eingeführt. Allerdings ging mit der Anfrage von einer Bandbreite an Domains ein gewisses Grundrauschen einher und die Qakbot-Entwickler gingen zu einer neuen Multi-tiered Architektur über, die kompromittierte Systeme als Proxy-Server für die Weiterleitung des Datenverkehrs zwischen anderen infizierten Systemen einsetzte. Ein solches Design-Update adressierte das Problem des Single-Point of Failures, reduzierte das Datenaufkommen und half beim Verstecken der C2-Server.
Die Version 5.0 hat nun die vielleicht wichtigste Änderung am Algorithmus zur Verschlüsselung von Zeichenketten vorgenommen. Die Zeichenketten werden immer noch mit einem einfachen XOR-Schlüssel verschlüsselt. Allerdings ist der XOR-Schlüssel nicht mehr fest im Datenbereich kodiert. Stattdessen wird er mit AES verschlüsselt, wobei der AES-Schlüssel durch einen SHA256-Hash eines Puffers abgeleitet wird. Ein zweiter Puffer enthält den AES-Initialisierungsvektor (IV) als erste 16 Bytes, gefolgt von dem AES-verschlüsselten XOR-Schlüssel. Sobald der XOR-Schlüssel entschlüsselt wurde, kann der Block verschlüsselter Zeichenfolgen entschlüsselt werden.
Der hochentwickelte Trojaner hat sich innerhalb von 15 Jahren stark verändert hin zu einer sehr resilienten und persistenten Bedrohung. Trotz der Zerschlagung 2023 bleibt ist Malware-Gruppierung weiterhin aktiv und wird auch in absehbarer Zukunft ihr Gefährdungspotenzial ausspielen. Die mehrschichtig aufgebbaute Cloud Security Plattform von Zscaler erkennt die Payloads und kategorisiert sie unter dem Namen Win32.Banker.Qakbot.