Microsoft heeft een langdurige operatie met kwaadaardige extensies in de Edge Add-ons store beëindigd. Deze extensies verstopten hun schadelijke code in gewone afbeeldings- en lettertypebestanden en activeerden pas dagen na installatie om inloggegevens te stelen en advertentiefraude uit te voeren. Het bedrijf noemt deze campagne StegoAd, een combinatie van steganografie en adware, en koppelt 119 extensies aan één enkele dreigingsactor die sinds minstens 2021 actief is.
De extensies waren populaire tools zoals adblockers, VPN’s, vertalers en video-downloaders, die hun beloofde functionaliteit leverden en positieve beoordelingen kregen. De kwaadaardige code bleef echter inactief totdat de extensie verschillende detectiecontroles had doorstaan, waardoor ze jarenlang in de store konden blijven staan. Gezamenlijk hadden deze 119 extensies tot 2,6 miljoen installaties, wat een maximumaantal gebruikers aangeeft, niet het aantal slachtoffers. Door vertragingen, servervalidaties en een beperkte activeringskans werd de schadelijke payload niet bij alle installaties uitgevoerd. Het exacte aantal slachtoffers is onbekend.
De gebruikte techniek, steganografie, houdt in dat uitvoerbare code wordt verborgen in bestanden die er normaal uitzien. De eerste varianten plaatsten JavaScript achter de IEND-marker van PNG-afbeeldingen, waardoor de afbeeldingen normaal werden weergegeven en scanners de code niet detecteerden. Toen de detectie verbeterde, schakelde de aanvaller over op WebP-afbeeldingen en later op WOFF2-lettertypebestanden, waarbij code werd verborgen in glyph-bereiken die als Aziatische tekst of lettertype-metadata werden geïnterpreteerd. Microsoft noemt deze schaal van steganografie zeldzaam binnen browserextensies.
Sommige varianten haalden de payload niet lokaal op, maar laadden een normaal uitziende afbeelding van een command-and-control-server. De extensie decodeerde deze via meerdere lagen van tekenswaps, Base64 en XOR, controleerde de inhoud met een handtekening en voerde de code pas uit als alles klopte. De C2-server gaf alleen het echte bestand aan verzoeken die voldeden aan fingerprint- en User-Agent-controles; anderen, inclusief onderzoekers, kregen een lege decoy-respons. Extensies hielden ook open DevTools in de gaten en verlengden hun sluimerperiode bij het detecteren van analyseactiviteiten.
De zichtbare impact was advertentiefraude: geïnjecteerde advertenties, gekaapte affiliate-commissies op Amazon, eBay en AliExpress, en omgeleide zoekopdrachten, wat geld afroomde en de browse-ervaring degradeerde. Microsoft ontdekte echter dat de payloads ook een backdoor voor remote code execution bevatten, waarmee willekeurige JavaScript-code vanaf de server kon worden uitgevoerd. Daarnaast werden Google-inloggegevens en tweefactorauthenticatiecodes gestolen, WordPress-adminlogins geoogst en cookies in bulk geëxfiltreerd voor sessiekaping. Zeven Google Analytics-tracking-ID’s dienden als geheime telemetrie, waarmee de aanvaller bijna realtime dashboards van de campagne via Google-infrastructuur kon inzien.
De infrastructuur was geavanceerd met meer dan tien C2-domeinen met automatische failover, verkeer via Cloudflare Workers en gebruik van GitHub Pages voor beacon-hosting. De polymorfe malware draaide in ongeveer 66 extensies onder meer dan 15 verschillende namen en migreerde van Manifest V2 naar V3 om platformwijzigingen te omzeilen.
Microsoft heeft alle 119 extensies verwijderd en meer dan 90 ontwikkelaarsaccounts geschorst. De volledige lijst met extensie-ID’s is beschikbaar in het technische rapport. Gebruikers wordt geadviseerd hun geïnstalleerde extensies via edge://extensions te controleren en bij een match of automatische verwijdering van Edge het systeem als gecompromitteerd te beschouwen. Het is belangrijk om wachtwoorden van Google, WordPress, bank- en andere gevoelige accounts te wijzigen, recente aanmeldactiviteiten te controleren en sterke tweefactorauthenticatie in te schakelen. Hardware security keys bieden extra bescherming tegen dit soort credential theft.
Reacties
Geef een reactie
Vereiste velden zijn gemarkeerd met *