Wajam Internet Technologies ist ein im Dezember des Jahrs 2008 von Martin-Luc Archambault (berühmter Entrepreneur aus Quebec) gegründetes Start-up-Unternehmen aus Montreal in Kanada. Das bekannteste Produkt von Wajam ist eine Social Search Engine App. Damit kann man Inhalte von Freunden aus sozialen Netzwerken durchsuchen. Abbildung 1 zeigt ein Beispiel, wie Wajam nach der Installation in die Google-Suche integriert ist.
Jeder kann die Software kostenfrei auf seinem Rechner installieren. Umsatz generiert das Unternehmen, in dem kontextbezogene Werbeanzeigen in den Wajam-Suchergebnissen eingeblendet werden. Ursprünglich stand für die Computer-User bis zum Jahr 2014 eine Wajam-Browser-Erweiterung zur Verfügung. Heute wird die Software hauptsächlich mit Hilfe der Pay-per-Install-Abrechnungsmethode (PPI) distribuiert.
Das kanadische OPC (Office of the Privacy Commissioner) gab bekannt, dass Wajam zwischen 2011 und 2016 mehr als 50 verschiedene PPI-Anbieter verwendete. Bereits mehrere Male kritisierte man die Methode, da immer wieder gefälschte Adobe Flash Player oder Antiviren-Programme oder andere Software Installer auftauchten, um User zu täuschen und Ad- sowie Malware zu verbreiten.
Geschichtliches und User-Beschwerden
Die Unternehmensgeschichte von Wajam ist laut OPC-Bericht eher kurios. In der Veröffentlichung aus dem Jahr 2017 heißt es:
- Das Unternehmen entfernte schrittweise und stillschweigend die Möglichkeit, die Software mit Facebook-, LinkedIn- und Google+-Konten zu verknüpfen. Damit beschnitten sie die eigentliche Hauptfunktion von Wajam.
- Im Jahr 2012 begannen immer mehr User, sich über die stark häufenden Werbeeinblendungen zu beschweren sowie über die De-Installationsroutine.
- Nach Angaben von D&B Hoovers generierte das Unternehmen im Jahr 2013 einen Netto-Gewinn von rund 4,2 Millionen US-Dollar.
- Während der OPC-Untersuchungen wegen der Verletzung des PIPEDA (Personal Information Protection and Electronic Documents Act) aufgrund der Verwendung von persönlichen Daten, wurde das Unternehmen an eine neue Firma in Hongkong verkauft. Diese trägt den Namen Iron Mountain Technology Limited (IMTL).
Die Zeitleiste in Abbildung 6 fasst einige „Höhepunkte“ in der Unternehmensgeschichte zusammen.
Parallel dazu zeigen wir die zur Wajam-Software hinzugefügten Anti-Detection- und Anti-Analyse-Features im Zeitverlauf:
Allgemeine Beobachtungen in verschiedenen Wajam-Versionen
Im Verlauf der vergangenen Jahre erschienen zahlreiche Wajam-Versionen. Seitdem die Entwickler sich für eine Versionierung entschieden, ist es einfacher, gesammelte Samples zu klassifizieren. Die nachstehende Tabelle fasst die von uns identifizierten Samples zusammen. Die Datierungen sind nur ungefähre Zeiträume, in denen die Versionen von uns beobachtet wurden. Manche könnten auch schon früher verbreitet worden sein.
Internal name(s) | Major version number | Type | Period of distribution |
---|---|---|---|
Priam | 1 | Browser extension | Late-2011 to 2014 |
Wajam Internet Enhancer, Wajam Network Enhancer | 2 | Windows application | 2013 to 2016 |
Wajam Web Enhancer, Social2Search | 1 and 9 | Windows application | 2014 to 2017 |
Wajam Browser Enhancer, Social2Search, SearchAwesome | 3, 11 and 13 | Windows application | 2016 to present |
SearchPage | N/A | macOS application | 2017 to present |
Traffic injection
Jede Wajam-Version schleust dieselbe Payload in den Web-Traffic des Users ein. Ein Unterschied besteht also nur in der Technik des Zwischenschaltens und der Injection-Methode. Insgesamt gleicht die Herangehensweise im Laufe der Zeit immer mehr der von Malware-Entwicklern.
Ist Wajam erst einmal auf dem PC installiert, beginnt die Software sich in den Web-Traffic einzuklinken. Das Programm verhält sich wie folgt:
- Download einer Liste von unterstützten Webseiten (Abbildung 8) von einem Remote Server
- Die Liste ordnet jedem Domain Name einen Pfad zur einzufügenden JavaScript-Datei zu. Dazu kommen einige Webseiten-spezifische Einstellungen
- Wenn eine vom Benutzer angeforderte URL mit einem der Muster übereinstimmt, wird die entsprechende JavaScript-Datei eingeschleust (siehe Abbildung 9). Das Skript fügt kontextbezogene Werbung ein und zeigt, wenn es sich bei der Webseite um eine Suchmaschine handelt, auch Tweets an, in denen die vom User gesuchten Schlüsselwörter vorkommen.
- Anschließend wird die Liste vom Wajam Remote Server aktualisiert.
Durchsickern von personenbezogenen Daten
Wajam sammelt immer mehr Informationen über die Anwender:
- Einige IDs dienen der Identifizierung bestimmter User (siehe Abbildung 9).
- An die Wajam-Server werden während der Installation einige Log-Files geschickt, um sicherzugehen, dass alles problemlos verläuft (siehe Wireshark-Screenshot in Abbildung 10).
- Selbst spezifische Informationen, wie über das Setup des Benutzers (Liste über installierte Software oder PC-Modell) gelangen an die Wajam-Server.
Verbreitungsmechanismus von Wajam
Mit Ausnahme der Browser-Erweiterung wurden alle Versionen von Pay-Per-Install-Anbietern als NSIS-Installer verteilt. Die PDB-Pfade zeigen, wie die Entwickler ihre Software im Laufe der Jahre schrittweise immer stärker verschleierten. Man sieht, dass die späteren Versionen meistens viel längere PDB-Pfade aufweisen, bestehend aus ausschließlich zufälligen Zeichen.
Version | Year | PDB Path |
---|---|---|
1.24 | 2012 | C:\Users\guillaume\Desktop\branches\Wajam\guillaume-installer-ie11-fix\Clients\Extensions\IE_BHO\source\wajam\Release\priam_bho.pdb |
1.0 | 2014 | D:\jenkins\workspace\dll_injection\src\Release\wajam.pdb |
2.12 | #rowspan# | d:\jenkins\workspace\wajam-proxy-2.12-special-build-for-avs\WJProxy\obj\x86\Release\WajamInternetEnhancer.pdb |
1.71 | 2016 | D:\jenkins\workspace\stable-1.71-updates\src\Release\wajam.pdb |
2.40 | #rowspan# | D:\jenkins\workspace\stable-2.40-update\build-tools\brh\Release\brh.pdb |
3.5 | #rowspan# | D:\jenkins\workspace\stable-ndi-3.5\service\Win32\Release\service.pdb |
1.75 | 2017 | JTBEFHYO.pdb |
9.68 | #rowspan# | 213.pdb |
13.14 | 2018 | K:\ga3ENOmcbYZO\5KSW\LXp8N\8PAW5Gq\jilgGJGN\wpoaCyFg\PC\ryX9i9P5jRrW\yaG9wzTA\vev\v8Co9rukntHI\FkVb9h7W\LCJhFhGGbCeC\m1swYV.pdb |
13.14 | 2019 | C:\D6IMFxtAM\IrsnBhaB8\LpY2EgA6h6GILy\xnyDw\tB\6hQ5AYqFBonqUM\f6rO3gJCEu6c\AFDkjWdw\iWFUHutqE\ywARjkk\tLo4m0i4r6psP3EHIIy.pdb |
Priam: Die Browser-Erweiterung
Zwischen den Jahren 2011 und 2013 fand Wajam auch als Browser-Erweiterung einen gewissen Grad der Verbreitung. In der Manifest-File steht geschrieben, welche Webseiten zu „infizieren“ sind und wie der JavaScript-Code beim Webseiten-Besuch darin eingebettet werden soll. Wie man der Abbildung 11 entnehmen kann, wird das Skript in allen besuchten Webseiten implementiert, insofern möglich.
Eine ältere Version der Browser-Erweiterung enthält in einer korrespondieren DLL Überreste eines Screenshot-Plugins (Abbildung 12). Die dynamische Programmbibliothek greift auf die Netscape Plugin API (Chrome und Windows) bzw. auf ein Browser Helper Object (Internet Explorer) zurück.
In allen Versionen ist ein JavaScript-Code dafür verantwortlich, dass die Browser-Lesezeichen an die Wajam-Server gesendet werden. Egal ob Screenshots oder Lesezeichen, beides kann sehr persönliche Informationen enthalten. Sehr fragwürdig ist, was Wajam wohl mit den Informationen anstellte. Die aktuelle Version verfügt nicht mehr über dieses Datensammel-Feature.
Als die Wajam-Software von verschiedenen Sicherheitsprodukten als Adware eingestuft wurde, versuchten die Entwickler dieses rückgängig zu machen, indem sie sich direkt an die Antivirenprogramm-Hersteller wendeten (Abbildungen 13 und 14).
WJProxy
Im Jahr 2014 änderte sich die Strategie der Wajam-Akteure. Die Software war nicht länger als Browser-Erweiterung verfügbar; die Download-Links wurden entfernt. Eine neue Windows-Version mit integriertem Fiddler Web Proxy vertrieben wiederum PPI-Provider.
Unter den neuen Funktionen stachen drei besonders hervor:
- Mit Hilfe von SeDebugPrivilege startet man die ausführbare Hauptdatei mit Administrator-Zugriffsrechten.
- Das überarbeitete Programm generiert ein Zertifikat und fügt es der Stammzertifikatsliste unter Windows hinzu, um den SSL/TLS-Verkehr abzufangen. Dadurch werden Sicherheitswarnungen beim Einfügen von JavaScript-Code in Webseiten umgangen.
- Ein Proxy wird eingerichtet, der den gesamten Web Traffic, die Einstellungen der installierten Web-Browser abfängt sowie die Windows-Registry so manipuliert, dass stets der Proxy zum Einsatz kommt.
Wajam und Warhammer-Fantasy
Zur selben Zeit, zu der man WJProxy beobachtete, tauchte eine andere DLL-Version mit Injection-Fähigkeit auf. Anstelle eines Proxys eines Drittanbieters zu verwenden, wird eine DLL in den Web-Browser eingefügt, um den nicht verschlüsselten Traffic manipulieren zu können. Abbildung 15 zeigt die funktionelle Architektur der Version.
Interessanterweise benutzt diese Version Verschleierungstechniken wie Zeichenketten-Verschlüsselung (Abbildungen 16 und 17).
Auch die Dateien mit der Liste der unterstützten Webseiten und die Adressen der zu verbindenden Funktionen (siehe Abbildung 18) sind beide verschlüsselt (AES-256 CFB). Die Namen der Dateien, wie waaaghs und snotlings deuten einen Bezug zum Warhammer-Universum an. Darüber hinaus geben auch andere Namen (wajam_goblin.dll) einen Anlass, anzunehmen, dass die Wajam-Entwickler an Fantasy-Spielen oder Fiction interessiert zu sein scheinen.
Der DLL-Injection-Prozess kann, in Abhängigkeit von den für den „Injector“ angegebenen Parameter, auf unterschiedliche Weise erreicht werden.
Option flag | Technique used to inject the DLL |
---|---|
--set-windows-hook | SetWindowsHookEx technique |
--inject | CreateRemoteThread technique |
--manual_mapping_inject | Blackbone memory hacking library |
Wurde die Programmbibliothek hinzugefügt, überprüft der „Injector“, ob es sich beim anvisierten Prozess um einen Web-Browser handelt. Wenn diese Bedingung erfüllt ist, dienen MinHook und die entschlüsselte snotlings-Datei dazu, die (den unverschlüsselten Web-Traffic) manipulierenden Funktionen einzuschleusen.
Da die oben beschriebenen Methoden normalerweise von Malware verwendet wird, implementierte Wajam einige Tarn-Techniken, um sich vor Antivirenprogrammen zu schützen.
- Die Wajam-Software prüfte die Windows Registry auf vorhandene Schlüssel von Antivirenprogrammen (dazu siehe Abbildung 9) und sendete jeden gefundenen an Wajam-Server.
- Je nach Sample änderte sich der Name der Executable geringfügig, wie beispielsweise: WajWEnhance.exe, WaWEn.exe, WebEnhancer.exe, etc.
- Gegen Ende des Jahres 2015 enthielt Wajam einen minifilter-Treiber, um die Dateien der Software auf der Festplatte vor allen Prozessen zu verstecken, außer vor denen auf der Whitelist.
- Die Software erhielt regelmäßig Patches von den Wajam-Servern (RC4- oder XOR-verschlüsselt)
Chrome und Firefox blockieren seit Kurzem sogenannte Code-Injections von Drittanbietern, sodass diese Version von Wajam nicht mehr funktioniert. Voraussetzung ist natürlich die Verwendung der aktuellen Browser der Unternehmen.
Wajam dringt tief bis zum Kernel vor
Mit Blick auf neue Sicherheitsmechanismen wurde in der Mitte des Jahres 2016 eine weitere Wajam-Version veröffentlicht. Die Software wartete fortan mit zusätzlichen Features auf, wie einem NetFilter-Treiber, um Traffic direkt im Kernelspace abzufangen und einzuschleusen.
Eine der vielen weiteren Änderungen bei der 2016er-Version ist der Schutz vor der Erkennung durch Antivirenprogramme:
- Die Wajam-Software verwendet starke Code- und Datenverschleierung (Abbildungen 22 und 23). Einige Tarn-Techniken ähneln dem „Stunnix C/C++ Obfuscator“.
- Hinzufügen von Ausnahmen zum Windows Defender (in der Kommandozeile: -command Add-MpPreference -ExclusionPath)
- Windows Registry Einträge DontReportInfectionInformation und DontOfferThroughWUAU werden angelegt. Diese verhindern das Reporting einer Kompromittierung an Microsoft und MSRT (Malicious Software Removal Tool)
- Die Executables sind mit Hilfe von Zertifikaten signiert, deren Domain Names dem Wajam-Unternehmen zuzuordnen sind und sich regelmäßig ändern (siehe Abbildungen 24 und 25)
Diese Domain Names sind Marken von Wajam gemäß dem Quebec Enterprise Register (siehe Abbildung 26). Einige der Domain Names (weitere Beispiele im Abschnitt IoCs) gleichen Straßennamen in Montreal (wie beispielsweise „Adrien Provencher“, „Bernard“, „Mont-Royal“ usw.).
SearchPage: Wajam und Apple
Im Jahr 2017 tauchte eine neue von Wajam entwickelte Adware namens SearchPage auf, die auf MacOS-Systeme abzielt. Analysen zeigten, dass hier auf dieselben Domain Names zurückgegriffen wurden wie auch in der damals aktuellsten Windows-Version (Abbildung 24).
SearchPage wurde als macOS-Anwendungspaket mit dem Namen spiinstall.app verbreitet. Es installierte ein Safari-Plugin und ein Zertifikat in der Keychain (Wurzelzertifikate-Platzhalter unter macOS). Dieses Plugin schleust Traffic auf ähnliche Weise wie unter Windows ein.
Die spätere 2018er-Version verwendet zum Abfangen des Web-Traffics anstatt einer Safari-Erweiterung mitmproxy (in Python geschriebener Web Proxy). Abbildung 28 zeigt die Funktionsweise des Proxys sowie die hartcodierte durch Wajam registrierte URL.
Diese Malware wurde bereits durch MalwareBytes dokumentiert. Weitere Informationen dazu findet man unter: https://blog.malwarebytes.com/threat-analysis/2018/10/mac-malware-intercepts-encrypted-web-traffic-for-ad-injection/.
Fazit und Takeaways
Dieser Research beweist, dass Wajam trotz Eigentümerwechsel immer noch aktiv ist. Mittlerweile agiert das Hongkonger Unternehmen unter den Namen SearchAwesome, Social2Search, SearchPage etc. Verbreitet wird die Adware auch mit Hilfe sogenannter PPIs.
Der Fall „Wajam“ erinnert uns an die Grauzone, in der sich Adware und PUAs (Potenziell Unerwünschte Anwendungen) bewegen. Selbst wenn Techniken der Verschleierung zum Einsatz kommen, um sich vor Antivirenprogrammen zu verstecken, Werbe-Einblendungen nerven glücklicherweise mehr, als dass sie ernsthafte Schäden beim Computer-User verursachen. Trotzdem sollte man die Hartnäckigkeit, mit der einige Adware auf dem PC verbleibt, nicht unterschätzen.
Indicators of Compromise (IoCs)
Hashes
SHA-1 | Detection name |
---|---|
6a393ecb2861a27240d322dd407f6adb7218b0a5 | Win32/Adware.Wajam.A |
4793f3bdab6df0ac6481b3780a10bec0ac10dce1 | Win32/Adware.Wajam.BH |
7a45f4c7a7eeaa6ef97c036a7bfc992d405cd270 | Win32/Adware.Wajam.G |
89d03d810345f491e7999af04873932ce77f7cd1 | MSIL/Wajam.F |
f0c78bece6e447333bcb21972dc440aee723f12d | Win32/Adware.Wajam.AC |
b6733a21f5fbf34286374ed5cd02e86b6c369db1 | Win32/Adware.Wajam.BH |
3d29d74b68d749d45596eb04063c4640a523c0ba | Win32/Adware.Wajam.BH |
f216d986f3fdc838aaca05fafb8e5b728e36513b | Win32/Adware.Wajam.AN |
34ce5529ad0f9d0101f2ca635876082830b48b83 | Win32/Adware.Wajam.AL |
f5f71c6f6924fa94eb1f5a8c4a4b1775d64e9e87 | Win32/NetFilter.A |
336efd61ab265977144ca308e635cfbee29b86a8 | Win32/NetFilter.N |
a61a9262bc13c023750af89a483cb571663c8a0e | Win32/Adware.Zdengo.CA |
83e05c610d0fe6488183b7db812c69962180aabb | Win32/Adware.Zdengo.CPZ |
ae97c477f803121185f3c9f44c22934941df7e94 | Win64/Riskware.NetFilter.AA |
6da090ad4a324e12b03a492b62cb47d274b3cd6e | Win32/Adware.Zdengo.DED |
35530aa44220ae7e96de05fd90dd1e64bb6cd199 | Win32/Adware.Zdengo.COT |
6b626695d5d1c64376af81cef441e17cdc92f006 | Win32/Adware.Zdengo.CXG |
6725a7c721bea20494e2e6036b11bb6d0531f829 | Win32/Adware.Zdengo.CRR |
fb26f538384cd50988a2a5f27b6443f16a92cee1 | Win32/RiskWare.NetFilter.AY |
ecd1e57c1fdc32052f0be1241691e91f869ef026 | OSX/Adware.SearchPage.B |
ff6c756fc3cfa06c53fe9458d7608c7c350c83bb | OSX/Adware.SearchPage.B |
fea551bcfbdbaba20b0b6556649029928888faf2 | OSX/Adware.SearchPage.A |
IP addresses ranges
217.182.14.0/24 |
---|
131.153.5.192/29 |
198.24.161.72/29 |
Domain names (partial list)
adrienprovenchertechnology[.]com
armandlamoureuxtechnology[.]com
bernardtechnology[.]com
carmenbienvenuetechnology[.]com
cartiertechnology[.]com
chabaneltechnology[.]com
chaumonttechnology[.]com
colonialetechnology[.]com
cormacktechnology[.]com
customsearches[.]net
despinstechnology[.]com
hutchisontechnology[.]com
imt-dashboard[.]tech
jeanlesagetechnology[.]com
kingwintechnology[.]com
laubeyrietechnology[.]com
lauriertechnology[.]com
mansactechnology[.]com
mounactechnology[.]com
notification-results[.]com
notifications-page[.]com
notifications-service[.]info
notifications-service[.]io
papineautechnology[.]com
premiumsearchhub[.]com
premiumsearchresults[.]com
premiumsearchtech[.]com
preverttechnology[.]com
search-awesome[.]net
search-ology[.]com
search-technology[.]net
searchawesome-apps[.]com
searchawesome[.]net
searchawesome2[.]com
searchawesome3[.]com
searchesandfind[.]com
searchfeedtech[.]com
searchforall[.]net
searchforfree[.]net
searchnewsroom[.]com
searchnotifications[.]com
searchpage-results[.]com
searchpage-results[.]net
searchpage[.]com
searchpageresults[.]com
searchsymphony[.]com
searchtech[.]net
securesearch[.]xyz
seekoutresultz[.]com
sirwilfridlauriertechnology[.]com
social2search[.]com
tazotechnology[.]com
technologieadrienprovencher[.]com
technologieairflow[.]com
technologiearmandlamoureux[.]com
technologiebeaumont[.]com
technologiebernard[.]com
technologiecarmenbienvenue[.]com
technologiecartier[.]com
technologiechabanel[.]com
technologiechaumont[.]com
technologiecoloniale[.]com
technologiecormack[.]com
technologiedollard[.]com
technologieduluth[.]com
technologiehutchison[.]com
technologiejeanlesage[.]com
technologiekingwin[.]com
technologielaubeyrie[.]com
technologielaurier[.]com
technologiemansac[.]com
technologiemontroyal[.]com
technologiemounac[.]com
technologieoutremont[.]com
technologieprevert[.]com
technologierachel[.]com
technologieruso[.]com
technologiesaintdenis[.]com
technologiesaintdominique[.]com
technologiesaintjoseph[.]com
technologiesaintlaurent[.]com
technologiesainturbain[.]com
technologiesearchawesome[.]com
technologiesirwilfridlaurier[.]com
technologiestdenis[.]com
technologiestlaurent[.]com
technologiestuart[.]com
technologietazo[.]com
technologietravassac[.]com
technologietrudeau[.]com
technologievanhorne[.]com
technologiewiseman[.]com
technologieyvonlheureux[.]com
travassactechnology[.]com
trudeautechnology[.]com
wajam-download[.]com
yvonlheureuxtechnology[.]com
MITRE ATT&CK techniques
Tactic | ID | Name | Description |
---|---|---|---|
Persistence | T1179 | Hooking | Use MinHook to hook web browser functions and intercept web traffic. |
Privilege Escalation | T1134 | Access Token Manipulation | Obtain user token to execute itself with API call CreateProcessAsUserA under user’s context. |
Defense Evasion | T1014 | Rootkit | Use minifilter and NetFilter drivers to respectively hide its files and intercept web traffic. |
T1116 | Code Signing | Some samples are signed with different digital certificates. | |
T1089 | Disabling Security Tools | Add exclusions in Windows Defender and disable MRT updates. | |
T1130 | Install Root Certificate | Install a root certificate to aid in man-in-the-middle actions. | |
T1027 | Obfuscated Files or Information | Most of the strings are encrypted with an XOR-based algorithm and some payloads are encrypted with AES-256 or RC4. | |
T1055 | Process Injection | Inject a DLL in web browsers (CreateRemoteThread, SetWindowsHookEx or BlackBone library) to intercept web traffic. | |
Discovery | T1063 | Security Software Discovery | Attempt to detect several antivirus products. |