Atkarības uzbrukums ļauj kodu izpildīt PayPal, Microsoft, Apple, Netflix, Uber un vēl 30 uzņēmumos

Pirms dažām dienām tika izlaista pārsteidzoši vienkārša metode, kas ļauj uzbrukt atkarībām lietojumprogrammās kas tiek izstrādāti, izmantojot iekšējās paketes krātuves. Pētnieki, kuri identificēja problēmu viņi varēja palaist jūsu kodu 35 uzņēmumu, tostarp PayPal, Microsoft, Apple, Netflix, Uber, Tesla un Shopify, iekšējos serveros.

Datorurķējumi tika veikti Bug Bounty programmu ietvaros, saskaņojot ar uzbrukumiem pakļautajām kompānijām, un vainīgie jau ir saņēmuši 130.000 XNUMX ASV dolāru prēmijas par ievainojamību identificēšanu.

Metodes pamatā ir fakts, ka daudzi uzņēmumi savās iekšējās lietojumprogrammās izmanto NPM, PyPI un RubyGems standarta krātuves atkarības, kā arī iekšējās atkarības, kuras netiek publiski izplatītas vai lejupielādētas no viņu pašu krātuvēm.

Problēma ir tā, ka paketes pārvaldnieki piemēram, npm, pip un gem viņi mēģina lejupielādēt uzņēmumu iekšējās atkarības pat no valsts krātuvēm. Par uzbrukumu vienkārši definējiet pakotņu nosaukumus ar iekšējām atkarībām un izveidojiet paši savus paketes ar vienādiem nosaukumiem NPM, PyPI un RubyGems publiskajos krātuvēs.

Problēma nav raksturīga NPM, PyPI un RubyGems, un tā izpaužas arī citās sistēmās, piemēram, NuGet, Maven un Yarn.

Ideja par piedāvāto metodi radās pēc tam, kad pētnieks nejauši pamanīja, ka vietnē GitHub publiski pieejamā kodā daudzi uzņēmumi no saviem manifestiem nenoņem papildu atkarību pieminēšanu izmanto iekšējos projektos vai, īstenojot paplašinātas funkcijas. Līdzīgas pēdas ir atrastas tīmekļa pakalpojumu JavaScript kodā, kā arī daudzu uzņēmumu Node.JS, Python un Ruby projektos.

Galvenās noplūdes bija saistītas ar satura iegulšanu no pakotnes.json failiem publiski pieejamā JavaScript kodā būvēšanas laikā, kā arī izmantojot faktiskos ceļa elementus pieprasījuma () izsaukumos, kurus var izmantot, lai spriestu par atkarības nosaukumiem.

Skenējot vairākus miljonus korporatīvo domēnu, tika atklāti vairāki tūkstoši JavaScript pakotņu nosaukumu kas nebija NPM krātuvē. Apkopojis iekšējo paku nosaukumu datu bāzi, pētnieks nolēma veikt eksperimentu, lai uzlauztu Bug Bounty programmās iesaistīto uzņēmumu infrastruktūru. Rezultāti bija pārsteidzoši efektīvi un pētnieks varēja palaist savu kodu uz daudziem izstrādes datoriem un serveriem, kas atbildīgi par nepārtrauktas integrācijas sistēmu izveidi vai testēšanu.

Lejupielādējot atkarības, pakotņu pārvaldnieki npm, pip un gem galvenokārt instalēja paketes no primārajām publiskajām krātuvēm NPM, PyPI un RubyGems, kuras tika uzskatītas par augstākām prioritātēm.

Tika ignorēta līdzīgu paku ar vienādiem nosaukumiem klātbūtne privātuzņēmumu krātuvēs, nerādot nekādus brīdinājumus un neizraisot avārijas kas varētu piesaistīt administratoru uzmanību. Programmā PyPI lejupielādes prioritāti ietekmēja versijas numurs (neatkarīgi no repozitorija tika lejupielādēta jaunākā pakotnes versija). NPM un RubyGems prioritāte bija atkarīga tikai no repozitorija.

Pētnieks ir ievietojis paketes NPM, PyPI un RubyGems krātuvēs, kas krustojas ar atrasto iekšējo atkarību nosaukumiem, pievienojot kodu skriptam, kas darbojas pirms instalēšanas (iepriekš instalēts NPM), lai apkopotu informāciju par sistēmu un iesniegtu informāciju saņemti ārējam resursdatoram.

Lai nodotu informāciju par uzlaušanas panākumiem, apiet ugunsmūrus, kas bloķē ārējo datplūsmu, slepeno kanālu sakaru organizēšanas metodi, izmantojot DNS protokolu. Darbojušais kods atrada resursdatora uzbrukuma domēnā uzbrukuma domēna kontrolē, kas ļāva savākt informāciju par veiksmīgām darbībām DNS serverī. Tika nodota informācija par resursdatoru, lietotājvārdu un pašreizējo ceļu.

75% no visiem ierakstītajiem kodu izpildījumiem bija saistīti ar NPM pakotņu lejupielādēm, galvenokārt tāpēc, ka iekšējo JavaScript moduļu nosaukumu bija ievērojami vairāk nekā atkarības nosaukumiem Python un Ruby.

Fuente: https://medium.com/


Atstājiet savu komentāru

Jūsu e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti ar *

*

*

  1. Atbildīgais par datiem: Migels Ángels Gatóns
  2. Datu mērķis: SPAM kontrole, komentāru pārvaldība.
  3. Legitimācija: jūsu piekrišana
  4. Datu paziņošana: Dati netiks paziņoti trešām personām, izņemot juridiskus pienākumus.
  5. Datu glabāšana: datu bāze, ko mitina Occentus Networks (ES)
  6. Tiesības: jebkurā laikā varat ierobežot, atjaunot un dzēst savu informāciju.