Napad odvisnosti omogoča izvajanje kode v PayPal, Microsoft, Apple, Netflix, Uber in 30 drugih podjetjih

Pred nekaj dnevi izdana je bila presenetljivo preprosta metoda, ki omogoča napad na odvisnosti v aplikacijah ki so razviti z uporabo notranjih skladišč paketov. Raziskovalci, ki so ugotovili težavo lahko so zagnali vašo kodo na notranjih strežnikih 35 podjetij, med njimi PayPal, Microsoft, Apple, Netflix, Uber, Tesla in Shopify.

Vdori so bili izvedeni v okviru programov Bug Bounty v sodelovanju z napadenimi podjetji, storilci pa so za prepoznavanje ranljivosti že prejeli 130.000 ameriških dolarjev.

Metoda temelji na dejstvu, da mnoga podjetja v svojih internih aplikacijah uporabljajo standardne odvisnosti NPM, PyPI in RubyGems od repozitorija, pa tudi notranje odvisnosti, ki niso javno distribuirane ali prenesene iz lastnih skladišč.

Težava je v tem, da so skrbniki paketov kot npm, pip in gem poskušajo prenesti notranje odvisnosti podjetij, tudi iz javnih skladišč. Za napad, samo definirajte imena paketov z notranjimi odvisnostmi in ustvarite lastne pakete z enakimi imeni v javnih skladiščih NPM, PyPI in RubyGems.

Težava ni specifična za NPM, PyPI in RubyGems, kaže pa se tudi na drugih sistemih, kot so NuGet, Maven in Yarn.

Ideja za predlagano metodo se je pojavila potem, ko je raziskovalec pomotoma opazil, da v javno dostopni kodi, objavljeni na GitHub, mnoga podjetja omenjenih dodatnih odvisnosti ne odstranijo iz svojih manifestnih datotek uporablja pri notranjih projektih ali pri izvajanju razširjenih funkcionalnosti. Podobne sledi so našli v kodi JavaScript za spletne storitve, pa tudi v projektih Node.JS, Python in Ruby številnih podjetij.

Glavna uhajanja so bila povezana z vdelavo vsebine iz datotek package.json v javno dostopni kodi JavaScript med postopkom gradnje, pa tudi z uporabo dejanskih elementov poti v klicih require (), ki jih lahko uporabimo za presojo imen odvisnosti.

Skeniranje več milijonov korporacijskih domen je razkrilo več tisoč imen paketov JavaScript ki jih ni bilo v odlagališču NPM. Po sestavi baze podatkov z notranjimi imeni paketov se je raziskovalec odločil, da bo poskusil vdreti v infrastrukturo podjetij, ki sodelujejo v programih Bug Bounty. Rezultati so bili presenetljivo učinkoviti in raziskovalec je lahko svojo kodo zagnal na številnih razvojnih računalnikih in strežnikih, ki so odgovorni za gradnjo ali testiranje na podlagi sistemov za stalno integracijo.

Pri nalaganju odvisnosti so upravitelji paketov npm, pip in gem v glavnem namestili pakete iz primarnih javnih skladišč NPM, PyPI in RubyGems, ki so veljali za višjo prioriteto.

Prisotnost podobnih paketov z enakimi imeni v skladiščih zasebnih podjetij je bila prezrta, ne da bi opozorili ali povzročili zrušitve ki bi lahko pritegnili pozornost skrbnikov. V PyPI je na prednost prenosa vplivala številka različice (ne glede na repozitorij je bila prenesena najnovejša različica paketa). V NPM in RubyGems je bila prednostna naloga odvisna samo od skladišča.

Raziskovalec je pakete shranil v repozitorije NPM, PyPI in RubyGems, ki križajo imena najdenih notranjih odvisnosti, skriptu, ki se pred namestitvijo (vnaprej nameščen v NPM) doda kodo za zbiranje informacij o sistemu in pošiljanje prejetih informacij zunanjemu gostitelju.

Za posredovanje informacij o uspehu vdora obidejo požarne zidove, ki blokirajo zunanji promet, način organiziranja tajnih komunikacij prek protokola DNS. Koda, ki se je izvajala, je razrešila gostitelja v napadalni domeni pod nadzorom napadalne domene, kar je omogočilo zbiranje informacij o uspešnih operacijah na strežniku DNS. Informacije o gostitelju, uporabniškem imenu in trenutni poti so bile posredovane.

75% vseh zabeleženih izvršitev kode je bilo povezanih s prenosi paketov NPM, predvsem zaradi dejstva, da je bilo notranjih imen modulov JavaScript bistveno več kot imen odvisnosti Python in Ruby.

vir: https://medium.com/


Pustite svoj komentar

Vaš e-naslov ne bo objavljen. Obvezna polja so označena z *

*

*

  1. Za podatke odgovoren: Miguel Ángel Gatón
  2. Namen podatkov: Nadzor neželene pošte, upravljanje komentarjev.
  3. Legitimacija: Vaše soglasje
  4. Sporočanje podatkov: Podatki se ne bodo posredovali tretjim osebam, razen po zakonski obveznosti.
  5. Shranjevanje podatkov: Zbirka podatkov, ki jo gosti Occentus Networks (EU)
  6. Pravice: Kadar koli lahko omejite, obnovite in izbrišete svoje podatke.