Napad ovisnosti omogućuje izvršavanje koda u PayPalu, Microsoftu, Appleu, Netflixu, Uberu i još 30 tvrtki

Prije nekoliko dana objavljena je iznenađujuće jednostavna metoda koja omogućuje napad na ovisnosti u aplikacijama koji su razvijeni pomoću internih spremišta paketa. Istraživači koji su identificirali problem mogli su pokrenuti vaš kôd na internim poslužiteljima 35 tvrtki, uključujući PayPal, Microsoft, Apple, Netflix, Uber, Tesla i Shopify.

Hakiranja su provedena u sklopu programa Bug Bounty, u koordinaciji s napadnutim tvrtkama, a počinitelji su već dobili 130.000 XNUMX dolara bonusa za prepoznavanje ranjivosti.

Metoda se temelji na činjenici da mnoge tvrtke koriste standardne ovisnosti o spremištima NPM-a, PyPI-a i RubyGems-a u svojim internim aplikacijama, kao i interne ovisnosti koje se ne distribuiraju javno niti preuzimaju iz vlastitih spremišta.

Problem je u tome što menadžeri paketa poput npm, pip i dragulja Pokušavaju preuzeti interne ovisnosti tvrtki, čak i iz javnih spremišta. Za napad, samo definirajte imena paketa s unutarnjim ovisnostima i stvorite vlastite pakete s istim imenima u javnim spremištima NPM-a, PyPI-a i RubyGems-a.

Problem nije specifičan za NPM, PyPI i RubyGems, a manifestira se i na drugim sustavima kao što su NuGet, Maven i Yarn.

Ideja za predloženu metodu došla je nakon što je istraživač slučajno primijetio da u javno dostupnom kodu objavljenom na GitHub-u, mnoge tvrtke ne uklanjaju spominjanje dodatnih ovisnosti iz svojih manifestnih datoteka koristi se u internim projektima ili prilikom primjene proširenih funkcionalnosti. Slični tragovi pronađeni su u JavaScript kodu za web usluge, kao i u projektima Node.JS, Python i Ruby mnogih tvrtki.

Glavna curenja bila su povezana s ugrađivanjem sadržaja iz datoteka package.json u javno dostupnom JavaScript kodu tijekom procesa izrade, kao i uz upotrebu stvarnih elemenata puta u pozivima require (), koji se mogu koristiti za procjenu imena ovisnosti.

Skeniranjem nekoliko milijuna korporativnih domena otkriveno je nekoliko tisuća naziva JavaScript paketa koji nisu bili u spremištu NPM-a. Sastavivši bazu podataka s internim imenima paketa, istraživač je odlučio provesti eksperiment za hakiranje infrastrukture tvrtki koje sudjeluju u programima Bug Bounty. Rezultati su bili iznenađujuće učinkoviti a istraživač je mogao pokretati svoj kod na mnogim razvojnim računalima i poslužiteljima odgovornim za izgradnju ili testiranje temeljeno na sustavima kontinuirane integracije.

Prilikom preuzimanja ovisnosti, upravitelji paketa npm, pip i gem uglavnom su instalirali pakete iz primarnih javnih spremišta NPM, PyPI i RubyGems, koji su smatrani većim prioritetom.

Prisutnost sličnih paketa s istim imenima u spremištima privatnih tvrtki ignorirana je bez pokazivanja upozorenja ili izazivanja rušenja koji bi mogli privući pažnju administratora. U PyPI-ju, na prioritet preuzimanja utjecao je broj verzije (neovisno o spremištu, preuzeta je najnovija verzija paketa). U NPM-u i RubyGems-u prioritet je bio samo ovisan o spremištu.

Istraživač je smjestio pakete u spremišta NPM, PyPI i RubyGems koji ukrštaju imena pronađenih unutarnjih ovisnosti, dodajući kod skripti koja se izvodi prije instalacije (unaprijed instaliranu u NPM) kako bi prikupio informacije o sustavu i poslao primljene informacije vanjski domaćin.

Da bi se prenijele informacije o uspjehu hakiranja, zaobilazni vatrozidi koji blokiraju vanjski promet, metoda organiziranja tajnih komunikacija putem DNS protokola. Kôd koji se izvodio razriješio je domaćina u napadačkoj domeni pod kontrolom napadačke domene, što je omogućilo prikupljanje podataka o uspješnim operacijama na DNS poslužitelju. Proslijeđene su informacije o hostu, korisničkom imenu i trenutnom putu.

75% svih zabilježenih izvršavanja koda povezano je s preuzimanjem NPM paketa, prvenstveno zbog činjenice da je bilo znatno više internih imena JavaScript modula od naziva ovisnosti Python i Ruby.

izvor: https://medium.com/


Ostavite svoj komentar

Vaša email adresa neće biti objavljen. Obavezna polja su označena s *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obvezi.
  5. Pohrana podataka: Baza podataka koju hostira Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.