Një sulm i varësisë lejon ekzekutimin e kodit në PayPal, Microsoft, Apple, Netflix, Uber dhe 30 kompani të tjera

Pak ditë më parë u lëshua një metodë çuditërisht e thjeshtë që lejon sulmimin e varësive në aplikacione të cilat zhvillohen duke përdorur depot e brendshme të paketave. Studiuesit që identifikuan problemin ata ishin në gjendje të ekzekutonin kodin tuaj në serverat e brendshëm të 35 ndërmarrjeve, përfshirë PayPal, Microsoft, Apple, Netflix, Uber, Tesla dhe Shopify.

Hack-et u kryen si pjesë e programeve Bug Bounty, në koordinim me kompanitë e sulmuara, dhe autorët kanë marrë tashmë 130.000 dollarë bonuse për identifikimin e dobësive.

Metoda bazohet në faktin se shumë kompani përdorin varësi standarde të depove të NPM, PyPI dhe RubyGems në aplikimet e tyre të brendshme, si dhe varësitë e brendshme që nuk shpërndahen publikisht ose nuk shkarkohen nga depot e tyre.

Problemi është se menaxherët e paketave si npm, pip dhe perlë Ata përpiqen të shkarkojnë varësitë e brendshme të kompanive, madje edhe nga depot publike. Për një sulm, thjesht përcaktoni emrat e paketave me varësi të brendshme dhe krijoni paketat tuaja me të njëjtët emra në depot publike të NPM, PyPI dhe RubyGems.

Problemi nuk është specifik për NPM, PyPI dhe RubyGems, dhe gjithashtu manifestohet në sisteme të tjera të tilla si NuGet, Maven dhe Fije.

Ideja për metodën e propozuar erdhi pasi një studiues vuri re aksidentalisht se në kodin e disponueshëm për publikun të postuar në GitHub, shumë kompani nuk heqin përmendjen e varësive shtesë nga skedarët e tyre manifest përdoret në projekte të brendshme ose gjatë zbatimit të funksionaliteteve të zgjeruara. Gjurmë të ngjashme janë gjetur në kodin JavaScript të shërbimeve në internet, si dhe në projektet Node.JS, Python dhe Ruby të shumë ndërmarrjeve.

Rrjedhjet kryesore kishin të bënin me ngulitjen e përmbajtjes nga skedarët e packet.json në kodin JavaScript të disponueshëm për publikun gjatë procesit të ndërtimit, si dhe me përdorimin e elementeve aktuale të rrugës në thirrjet Require (), të cilat mund të përdoren për të gjykuar emrat e varësisë.

Skanimi i disa milion domeneve të korporatave zbuloi disa mijëra emra të paketave JavaScript të cilat nuk ishin në depon e NPM. Duke përpiluar një bazë të dhënash me emrat e paketave të brendshme, studiuesi vendosi të kryejë një eksperiment për të kollitur infrastrukturën e kompanive që marrin pjesë në programet Bug Bounty. Rezultatet ishin çuditërisht efektive dhe studiuesi ishte në gjendje të ekzekutojë kodin e tij në shumë kompjutera zhvillues dhe servera përgjegjës për ndërtimin ose testimin bazuar në sistemet e integrimit të vazhdueshëm.

Kur shkarkoni varësi, menaxherët e paketave npm, pip dhe gem instaluan kryesisht paketa nga depot publike publike NPM, PyPI dhe RubyGems, të cilat konsideroheshin me përparësi më të lartë.

Prania e paketave të ngjashme me të njëjtët emra në depot e ndërmarrjeve private u injorua pa treguar ndonjë paralajmërim ose duke shkaktuar përplasje që mund të tërheqin vëmendjen e administratorëve. Në PyPI, përparësia e shkarkimit u ndikua nga numri i versionit (pavarësisht nga depoja, versioni më i fundit i paketës u shkarkua). Në NPM dhe RubyGems, përparësia varej vetëm nga depoja.

Studiuesi ka vendosur paketa në depot e NPM, PyPI dhe RubyGems që kryqëzojnë emrat e varësive të brendshme të gjetura, duke shtuar kod në skenarin që ekzekutohet para instalimit (i instaluar paraprakisht në NPM) për të mbledhur informacion në lidhje me sistemin dhe për të dërguar informacionin e marrë në nikoqiri i jashtëm.

Për të përcjellë informacionin mbi suksesin e hackimit, anashkaloni firewall-et që bllokojnë trafikun e jashtëm, metodën e organizimit të komunikimeve të kanaleve të fshehta mbi protokollin DNS. Kodi që po ekzekutohej zgjidhte hostin në domenin sulmues nën kontrollin e domenit sulmues, i cili bëri të mundur mbledhjen e informacionit rreth operacioneve të suksesshme në serverin DNS. Informacioni në lidhje me hostin, emrin e përdoruesit dhe rrugën aktuale u kalua.

75% e të gjitha ekzekutimeve të regjistruara të kodit ishin të shoqëruara me shkarkime të paketave NPM, kryesisht për shkak të faktit se kishte shumë më tepër emra të brendshëm të moduleve JavaScript sesa emra të varësisë nga Python dhe Ruby.

Fuente: https://medium.com/


Lini komentin tuaj

Adresa juaj e emailit nuk do të publikohet. Fusha e kërkuar janë shënuar me *

*

*

  1. Përgjegjës për të dhënat: Miguel Ángel Gatón
  2. Qëllimi i të dhënave: Kontrolloni SPAM, menaxhimin e komenteve.
  3. Legjitimimi: Pëlqimi juaj
  4. Komunikimi i të dhënave: Të dhënat nuk do t'u komunikohen palëve të treta përveç me detyrim ligjor.
  5. Ruajtja e të dhënave: Baza e të dhënave e organizuar nga Occentus Networks (BE)
  6. Të drejtat: Në çdo kohë mund të kufizoni, rikuperoni dhe fshini informacionin tuaj.