Et avhengighetsangrep tillater kjøring av kode hos PayPal, Microsoft, Apple, Netflix, Uber og 30 andre selskaper

Noen dager siden en overraskende enkel metode ble gitt ut som gjør det mulig å angripe avhengigheter i applikasjoner som er utviklet ved bruk av interne pakkelager. Forskerne som identifiserte problemet de var i stand til å kjøre koden din på de interne serverne til 35 selskaper, inkludert PayPal, Microsoft, Apple, Netflix, Uber, Tesla og Shopify.

Hackene ble utført som en del av Bug Bounty-programmene, i samordning med de angrepne selskapene, og gjerningsmennene har allerede mottatt $ 130.000 XNUMX i bonuser for å identifisere sårbarheter.

Metoden er basert på at mange selskaper bruker standard depotavhengigheter av NPM, PyPI og RubyGems i sine interne applikasjoner, så vel som interne avhengigheter som ikke distribueres offentlig eller lastes ned fra deres egne arkiver.

Problemet er at pakkeforvaltere som npm, pip og perle de prøver å laste ned de interne avhengighetene til selskapene, til og med fra offentlige arkiver. For et angrep, bare definer navnene på pakkene med interne avhengigheter og lag dine egne pakker med samme navn i de offentlige depotene til NPM, PyPI og RubyGems.

Problemet er ikke spesifikt for NPM, PyPI og RubyGems, og det manifesterer seg også på andre systemer som NuGet, Maven og Garn.

Ideen til den foreslåtte metoden kom etter at en forsker ved et uhell la merke til at i offentlig tilgjengelig kode lagt ut på GitHub, mange selskaper fjerner ikke omtale av ekstra avhengigheter fra manifestfilene sine brukes i interne prosjekter eller ved implementering av utvidede funksjoner. Lignende spor er funnet i JavaScript-kode for webtjenester, så vel som i Node.JS-, Python- og Ruby-prosjektene fra mange selskaper.

De viktigste lekkasjene var relatert til innholdsinnbetting fra package.json-filer i offentlig tilgjengelig JavaScript-kode under byggeprosessen, samt ved bruk av faktiske baneelementer i krever () samtaler, som kan brukes til å bedømme avhengighetsnavn.

Skanning av flere millioner bedriftsdomener avslørte flere tusen JavaScript-pakkenavn som ikke var i NPM-depotet. Etter å ha samlet en database med interne pakkenavn, bestemte forskeren seg for å gjennomføre et eksperiment for å hacke infrastrukturen til selskaper som deltar i Bug Bounty-programmer. Resultatene var overraskende effektive og forskeren var i stand til å kjøre koden sin på mange utviklingsdatamaskiner og servere som var ansvarlige for å bygge eller teste basert på kontinuerlige integreringssystemer.

Ved nedlasting av avhengigheter installerte pakkeforvalterne npm, pip og perle hovedsakelig pakker fra de primære offentlige depotene NPM, PyPI og RubyGems, som ble ansett som høyere prioritet.

Tilstedeværelsen av lignende pakker med samme navn i arkivene til private selskaper ble ignorert uten å vise advarsler eller forårsake krasj. som kan tiltrekke seg administrators oppmerksomhet. I PyPI ble nedlastingsprioriteten påvirket av versjonsnummeret (uavhengig av lageret ble den siste versjonen av pakken lastet ned). I NPM og RubyGems var prioriteten bare depotavhengig.

Forskeren har plassert pakker i NPM, PyPI og RubyGems repositories som krysser navnene på de interne avhengighetene som er funnet, og legger til kode i skriptet som kjører før installasjon (forhåndsinstallert i NPM) for å samle informasjon om systemet og sende informasjonen mottatt til den eksterne verten.

For å formidle informasjon om suksessen til hacket, omgå brannmurer som blokkerer ekstern trafikk, metoden for å organisere skjult kanalkommunikasjon over DNS-protokollen. Koden som kjørte løste verten i det angripende domenet under kontroll av det angripende domenet, noe som gjorde det mulig å samle informasjon om vellykkede operasjoner på DNS-serveren. Informasjon om vert, brukernavn og nåværende sti ble passert.

75% av alle registrerte kodekjøringer var assosiert med nedlastinger av NPM-pakker, hovedsakelig på grunn av det faktum at det var betydelig flere interne JavaScript-modulnavn enn Python- og Ruby-avhengighetsnavn.

Fuente: https://medium.com/


Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.