En beroendeattack möjliggör exekvering av kod hos PayPal, Microsoft, Apple, Netflix, Uber och 30 andra företag

Några dagar sen en överraskande enkel metod släpptes som gör det möjligt att angripa beroenden i applikationer som utvecklas med hjälp av interna paketförvar. Forskarna som identifierade problemet de kunde köra din kod på 35 interna servrar, inklusive PayPal, Microsoft, Apple, Netflix, Uber, Tesla och Shopify.

Hackarna genomfördes som en del av Bug Bounty-programmen i samordning med de attackerade företagen, och förövarna har redan fått $ 130.000 XNUMX i bonus för att identifiera sårbarheter.

Metoden bygger på det faktum att många företag använder standardförvaringsberoenden för NPM, PyPI och RubyGems i sina interna applikationer, liksom interna beroenden som inte distribueras offentligt eller laddas ner från sina egna förråd.

Problemet är att pakethanterare som npm, pip och pärla de försöker ladda ner företagens interna beroenden, även från de offentliga förvaren. För en attack, definiera bara namnen på paketen med interna beroenden och skapa dina egna paket med samma namn i de offentliga förvaren för NPM, PyPI och RubyGems.

Problemet är inte specifikt för NPM, PyPI och RubyGems, och det manifesterar sig också i andra system som NuGet, Maven och Garn.

Idén till den föreslagna metoden kom efter att en forskare av misstag märkte att i allmänt tillgänglig kod publicerad på GitHub, många företag tar inte bort nämnda ytterligare beroenden från sina manifestfiler används i interna projekt eller vid implementering av utökade funktioner. Liknande spår har hittats i JavaScript-kod för webbtjänster, liksom i Node.JS-, Python- och Ruby-projekten från många företag.

De viktigaste läckorna var relaterade till inbäddningen av innehållet från package.json-filer i allmänt tillgänglig JavaScript-kod under byggprocessen, liksom med användning av faktiska sökelement i kräver () -anrop, som kan användas för att bedöma beroendets namn.

Skanning av flera miljoner företagsdomäner avslöjade flera tusen JavaScript-paketnamn som inte fanns i NPM-förvaret. Efter att ha sammanställt en databas med interna paketnamn bestämde forskaren att genomföra ett experiment för att hacka infrastrukturen för företag som deltar i Bug Bounty-programmen. Resultaten var överraskande effektiva och forskaren kunde köra sin kod på många utvecklingsdatorer och servrar som ansvarar för att bygga eller testa baserat på kontinuerliga integrationssystem.

Vid nedladdning av beroenden installerade pakethanterarna npm, pip och gem främst paket från de primära offentliga förvaren NPM, PyPI och RubyGems, som ansågs vara högre prioriterade.

Närvaron av liknande paket med samma namn i privata företags arkiv ignorerades utan att någon varning eller orsakade kraschar som kan locka administratörers uppmärksamhet. I PyPI påverkades nedladdningsprioriteten av versionsnumret (oavsett förvar, den senaste versionen av paketet hämtades). I NPM och RubyGems var prioriteten bara förvaringsberoende.

Forskaren har placerat paket i förvar av NPM, PyPI och RubyGems som korsar namnen på de hittade interna beroenden, och lägger till kod i skriptet som körs före installationen (förinstallerat i NPM) för att samla in information om systemet och skicka den mottagna informationen. till den externa värden.

För att förmedla information om framgången med hacket, kringgå brandväggar som blockerar extern trafik, metoden för att organisera dold kanalkommunikation över DNS-protokollet. Koden som kördes löste värden i den attackerande domänen under kontrollen av den attackerande domänen, vilket gjorde det möjligt att samla in information om framgångsrika operationer på DNS-servern. Information om värd, användarnamn och aktuell sökväg passerade.

75% av alla inspelade kodkörningar var associerade med NPM-paketnedladdningar, främst på grund av att det fanns betydligt fler interna JavaScript-modulnamn än Python- och Ruby-beroendensnamn.

Fuente: https://medium.com/


Innehållet i artikeln följer våra principer om redaktionell etik. Klicka på för att rapportera ett fel här.

Bli först att kommentera

Lämna din kommentar

Din e-postadress kommer inte att publiceras.

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.