Onderzoekers van Socket hebben twee kwaadaardige NPM-pakketten ontdekt die zich voordoen als legitieme WhatsApp-developmenttools, maar in werkelijkheid destructieve code bevatten die bestanden op het systeem van de ontwikkelaar verwijdert.Â
De pakketten, naya-flore en nvlore-hsc, werden gepubliceerd in het NPM-register en sinds vorige maand meer dan 1.100 keer gedownload. Hoewel Socket verzoeken tot verwijdering indiende en de uitgever nayflore markeerde, zijn de pakketten nog steeds beschikbaar.
Dezelfde uitgever heeft nog meer pakketten in het NPM-register geplaatst, waaronder nouku-search, very-nay, naya-clone, node-smsk en @veryflore/disc. Deze vertonen momenteel geen kwaadaardig gedrag. Een update kan echter op ieder moment schadelijke code toevoegen.Â
Alle pakketten bootsen legitieme WhatsApp-ontwikkelaarsbibliotheken na die worden gebruikt voor het bouwen van bots en automatiseringstools rond de WhatsApp Business API. De vraag naar dergelijke bibliotheken nam de afgelopen periode sterk toe doordat steeds meer bedrijven de WhatsApp Cloud API inzetten voor klantcommunicatie.
De kwaadaardige pakketten bevatten een functie genaamd requestPairingCode die normaal gesproken verantwoordelijk zou zijn voor de WhatsApp-koppeling. In werkelijkheid haalt deze functie een base64-gecodeerd JSON-bestand op van een GitHub-adres. Dat bestand bevat een lijst met Indonesische telefoonnummers die dienen als kill switch.
Slapende functie
Wanneer het telefoonnummer van de gebruiker op de lijst staat, wordt de schadelijke functionaliteit overgeslagen. In alle andere gevallen voert de code het commando rm -rf * uit, waarmee alle bestanden in de huidige map recursief worden verwijderd. Daarnaast is er een slapende functie aanwezig, generateCreeds, die in staat zou zijn het telefoonnummer van het slachtoffer, het apparaat-ID, de status en een hardgecodeerde sleutel te exfiltreren. Deze functie is in beide pakketten uitgecommentarieerd en daardoor momenteel uitgeschakeld.
Naast deze NPM-pakketten ontdekte Socket ook elf kwaadaardige Go-pakketten die gebruikmaken van string-array-verhulling om op de achtergrond tijdens runtime externe payloads uit te voeren. Deze pakketten starten een shell, halen een tweede-stadium script of uitvoerbaar bestand op van .icu- of .tech-domeinen en voeren dit direct in het geheugen uit. Daarbij worden zowel Linux CI-servers als Windows-werkstations als doelwit gekozen.
Het merendeel van deze pakketten maakt gebruik van typosquatting, waarbij ontwikkelaars worden misleid door pakketten met namen die sterk lijken op populaire, legitieme bibliotheken. Omdat veel van deze pakketten nog actief zijn, wordt ontwikkelaars geadviseerd hun afhankelijkheden zorgvuldig te controleren voordat zij deze in hun omgeving inzetten.