Tidligere denne uken rapporterte sikkerhetsverktøyet Socket at en rekke populære NPM-pakker ble kompromittert, noe som sannsynligvis kompromitterte utviklermaskiner. La oss se hvordan denne utnyttelsen fungerte og hvordan du kan beskytte deg mot den 👇
Trinn 1: NPM-publisisttilgang Hackerne brukte phishing for å kompromittere kontoer med publiseringsrettigheter til disse pakkene. Dette tillot hackerne å publisere ondsinnede versjoner av disse populære NPM-pakkene.
Trinn 2: Avhengighetsinstallasjon laster ned skadelig programvare Når en utvikler deretter installerer den nye ondsinnede versjonen, kjører et "postinstall"-skript i NPM-pakken etter installasjonen, og laster ned + kjører skadelig programvare på utviklermaskinen. Dette kan kompromittere ytterligere utviklerkontoer eller stjele legitimasjon fra datamaskinen.
Hvordan kan vi holde oss trygge mot denne typen utnyttelse? Som pakkeforfatter: Bruk 2FA slik at det er mindre sannsynlig at phishing-kampanjer kompromitterer publiseringsrettighetene til pakkene dine. Som utvikler: 1. Lås avhengigheter. Dette er heldigvis allerede standard praksis, ellers ville virkningen av denne utnyttelsen vært mye høyere. 2. Unngå etterinstallasjonsskript der det er mulig. De fleste pakker trenger ikke et postinstall-skript for å fungere, så det anbefales å slå dem av. MetaMask har laget et flott åpen kildekode-verktøy for dette kalt LavaMoat. 3. Revisjonsavhengigheter. Den beste måten å beskytte seg mot denne typen utnyttelser på er å være forsiktig med avhengighetene du legger til prosjektet ditt i utgangspunktet. Socket er et veldig nyttig verktøy for å hjelpe med å automatisere den typen revisjon.
311