Závislosť umožňuje útok na PayPal, Microsoft, Apple, Netflix, Uber a 30 ďalších spoločností

Pred pár dňami bola vydaná prekvapivo jednoduchá metóda, ktorá umožňuje útočiť na závislosti v aplikáciách ktoré sa vyvíjajú pomocou interných archívov balíkov. Vedci, ktorí identifikovali problém dokázali spustiť váš kód na interných serveroch 35 spoločností vrátane PayPal, Microsoft, Apple, Netflix, Uber, Tesla a Shopify.

Hacky boli vykonané v rámci programov Bug Bounty v koordinácii s napadnutými spoločnosťami a páchatelia už dostali 130.000 XNUMX dolárov ako bonusy za identifikáciu zraniteľných miest.

Metóda je založená na skutočnosti, že veľa spoločností používa vo svojich interných aplikáciách štandardné závislosti repozitárov NPM, PyPI a RubyGems, ako aj interné závislosti, ktoré nie sú verejne distribuované alebo sťahované z vlastných úložísk.

Problém je v tom, že správcovia balíkov ako npm, pip a gem Pokúšajú sa prevziať interné závislosti spoločností, a to aj z verejných archívov. Za útok, stačí definovať názvy balíkov s internými závislosťami a vytvoriť si vlastné balíčky s rovnakými názvami vo verejných úložiskách NPM, PyPI a RubyGems.

Problém nie je špecifický pre NPM, PyPI a RubyGems a prejavuje sa aj na iných systémoch, ako sú NuGet, Maven a Yarn.

Myšlienka navrhovanej metódy prišla po tom, čo si výskumník náhodne všimol, že vo verejne dostupnom kóde zverejnenom na GitHube veľa spoločností neodstráni zmienku o ďalších závislostiach zo svojich súborov manifestov použité v interných projektoch alebo pri implementácii rozšírených funkcionalít. Podobné stopy sa našli v kóde webových služieb JavaScript, ako aj v projektoch Node.JS, Python a Ruby mnohých spoločností.

Hlavné úniky súviseli s vložením obsahu zo súborov package.json vo verejne dostupnom kóde JavaScript počas procesu zostavovania, ako aj s použitím skutočných prvkov cesty vo volaniach require (), ktoré sa dajú použiť na posúdenie mien závislostí.

Skenovanie niekoľkých miliónov podnikových domén odhalilo niekoľko tisíc názvov balíkov JavaScriptu ktoré sa nenachádzali v úložisku NPM. Po zostavení databázy interných názvov balíkov sa výskumník rozhodol uskutočniť experiment s hacknutím infraštruktúry spoločností zúčastňujúcich sa na programoch Bug Bounty. Výsledky boli prekvapivo efektívne a výskumník dokázal spustiť svoj kód na mnohých vývojových počítačoch a serveroch zodpovedných za budovanie alebo testovanie na základe systémov kontinuálnej integrácie.

Pri sťahovaní závislostí správcovia balíkov npm, pip a gem nainštalovali hlavne balíčky z primárnych verejných úložísk NPM, PyPI a RubyGems, ktoré boli považované za vyššiu prioritu.

Prítomnosť podobných balíkov s rovnakými názvami v archívoch súkromných spoločností bola ignorovaná bez zobrazenia varovania alebo zlyhania ktoré by mohli prilákať pozornosť správcov. V PyPI bola priorita sťahovania ovplyvnená číslom verzie (bez ohľadu na úložisko bola stiahnutá najnovšia verzia balíka). V NPM a RubyGems bola priorita závislá iba na úložisku.

Výskumník umiestnil balíčky do repozitárov NPM, PyPI a RubyGems, ktoré krížia názvy nájdených vnútorných závislostí, a pridal kód do skriptu, ktorý beží pred inštaláciou (predinštalovaný v NPM), aby zhromaždil informácie o systéme a odoslal prijaté informácie do externého hostiteľa.

Ak chcete sprostredkovať informácie o úspechu hacku, obíďte brány firewall blokujúce externú komunikáciu, spôsob organizácie komunikácie skrytých kanálov cez protokol DNS. Spustený kód vyriešil hostiteľa v útočiacej doméne pod kontrolou útočiacej domény, čo umožnilo zhromaždiť informácie o úspešných operáciách na serveri DNS. Informácie o hostiteľovi, používateľskom mene a aktuálnej ceste boli odovzdané.

75% všetkých zaznamenaných spustení kódu bolo spojených so sťahovaním balíkov NPM, a to predovšetkým kvôli skutočnosti, že interných názvov modulov JavaScriptu bolo podstatne viac ako mien závislostí Pythonu a Ruby.

Fuente: https://medium.com/


Zanechajte svoj komentár

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *

*

*

  1. Zodpovedný za údaje: Miguel Ángel Gatón
  2. Účel údajov: Kontrolný SPAM, správa komentárov.
  3. Legitimácia: Váš súhlas
  4. Oznamovanie údajov: Údaje nebudú poskytnuté tretím stranám, iba ak to vyplýva zo zákona.
  5. Ukladanie dát: Databáza hostená spoločnosťou Occentus Networks (EU)
  6. Práva: Svoje údaje môžete kedykoľvek obmedziť, obnoviť a vymazať.