Závislost umožňuje útok na PayPal, Microsoft, Apple, Netflix, Uber a 30 dalších společností

Před pár dny byla vydána překvapivě jednoduchá metoda, která umožňuje útočit na závislosti v aplikacích které jsou vyvíjeny pomocí interních úložišť balíků. Vědci, kteří problém identifikovali byli schopni spustit váš kód na interních serverech 35 společností, včetně PayPal, Microsoft, Apple, Netflix, Uber, Tesla a Shopify.

Hacky byly prováděny v rámci programů Bug Bounty v koordinaci s napadenými společnostmi a pachatelé již obdrželi bonusy 130.000 XNUMX $ za identifikaci zranitelných míst.

Metoda je založena na skutečnosti, že mnoho společností používá ve svých interních aplikacích standardní závislosti repozitářů NPM, PyPI a RubyGems, jakož i interní závislosti, které nejsou veřejně distribuovány nebo stahovány z jejich vlastních úložišť.

Problém je v tom, že správci balíčků jako npm, pip a gem snaží se stáhnout vnitřní závislosti společností, a to i z veřejných úložišť. Za útok stačí definovat názvy balíčků s interními závislostmi a vytvořit si vlastní balíčky se stejnými názvy ve veřejných úložištích NPM, PyPI a RubyGems.

Problém není specifický pro NPM, PyPI a RubyGems a projevuje se také na jiných systémech, jako jsou NuGet, Maven a Yarn.

Myšlenka navrhované metody vznikla poté, co si výzkumník náhodou všiml, že ve veřejně dostupném kódu zveřejněném na GitHubu mnoho společností neodstraní zmínku o dalších závislostech ze svých souborů manifestů používané v interních projektech nebo při implementaci rozšířených funkcí. Podobné stopy byly nalezeny v kódu JavaScript pro webové služby a také v projektech Node.JS, Python a Ruby mnoha společností.

Hlavní úniky souvisely s vložením obsahu ze souborů package.json ve veřejně dostupném kódu JavaScriptu během procesu sestavování a také s použitím skutečných prvků cesty v volání require (), které lze použít k posouzení názvů závislostí.

Prohledání několika milionů podnikových domén odhalilo několik tisíc názvů balíčků JavaScript které nebyly v úložišti NPM. Po sestavení databáze interních názvů balíků se výzkumník rozhodl provést experiment s hacknutím infrastruktury společností účastnících se programů Bug Bounty. Výsledky byly překvapivě efektivní a výzkumník byl schopen spustit svůj kód na mnoha vývojových počítačích a serverech odpovědných za budování nebo testování na základě systémů nepřetržité integrace.

Při stahování závislostí správci balíků npm, pip a gem instalovali hlavně balíčky z primárních veřejných úložišť NPM, PyPI a RubyGems, které byly považovány za vyšší prioritu.

Přítomnost podobných balíčků se stejnými názvy v úložištích soukromých společností byla ignorována, aniž by zobrazovala varování nebo způsobovala selhání které by mohly přilákat pozornost správců. V PyPI byla priorita stahování ovlivněna číslem verze (bez ohledu na úložiště byla stažena nejnovější verze balíčku). V NPM a RubyGems byla priorita závislá pouze na úložišti.

Výzkumník umístil balíčky do repozitářů NPM, PyPI a RubyGems, které se protínají s názvy nalezených interních závislostí, a přidal kód do skriptu, který běží před instalací (předinstalovaný v NPM), aby shromáždil informace o systému a odeslal informace přijato externímu hostiteli.

Chcete-li sdělit informace o úspěchu hacku, obejít brány firewall blokující externí provoz, způsob organizace komunikace skrytých kanálů přes protokol DNS. Běžící kód vyřešil hostitele v útočící doméně pod kontrolou útočící domény, což umožnilo shromažďovat informace o úspěšných operacích na serveru DNS. Byly předány informace o hostiteli, uživatelském jménu a aktuální cestě.

75% všech zaznamenaných spuštění kódu bylo spojeno se stažením balíčků NPM, a to především kvůli skutečnosti, že v JavaScriptu bylo podstatně více interních názvů modulů než názvů závislostí v Pythonu a Ruby.

zdroj: https://medium.com/


Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Odpovědný za údaje: Miguel Ángel Gatón
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.