'N Afhanklikheidsaanval laat kode-uitvoering toe by PayPal, Microsoft, Apple, Netflix, Uber en 30 ander maatskappye

N paar dae gelede 'n verrassend eenvoudige metode is vrygestel wat aanvallende afhanklikhede in toepassings toelaat wat ontwikkel word met behulp van interne pakketbewaarplekke. Die navorsers wat die probleem geïdentifiseer het hulle kon u kode uitvoer op die interne bedieners van 35 maatskappye, waaronder PayPal, Microsoft, Apple, Netflix, Uber, Tesla en Shopify.

Die hacks is uitgevoer as deel van die Bug Bounty-programme, in samewerking met die aangevalle maatskappye, en die oortreders het reeds $ 130.000 XNUMX bonusse ontvang vir die identifisering van kwesbaarhede.

Die metode is gebaseer op die feit dat baie ondernemings gebruik standaard-afhanklikheid van NPM, PyPI en RubyGems in hul interne toepassings, sowel as interne afhanklikhede wat nie publiek versprei of afgelaai word vanaf hul eie bewaarplekke nie.

Die probleem is dat pakketbestuurders soos npm, pip en juweel hulle probeer om die interne afhanklikheid van die maatskappye af te laai, selfs van die openbare bewaarplekke. Vir 'n aanval, definieer net die name van die pakkette met interne afhanklikhede en skep u eie pakkette met dieselfde name in die openbare bewaarplekke van NPM, PyPI en RubyGems.

Die probleem is nie spesifiek vir NPM, PyPI en RubyGems nie, en dit manifesteer ook op ander stelsels soos NuGet, Maven en Yarn.

Die idee vir die voorgestelde metode het gekom nadat 'n navorser per ongeluk opgemerk het dat die publieke kode wat op GitHub geplaas is, baie ondernemings verwyder nie die vermelding van addisionele afhanklikhede uit hul manifeslêers nie gebruik in interne projekte of by die implementering van uitgebreide funksies. Soortgelyke spore is gevind in JavaScript-kode vir webdienste, sowel as in die Node.JS-, Python- en Ruby-projekte van baie maatskappye.

Die belangrikste lekkasies hou verband met die inbedding van die inhoud vanaf die package.json-lêers in die openbaar beskikbare JavaScript-kode tydens die bouproses, sowel as met die gebruik van werklike padelemente in benodigde () oproepe, wat gebruik kan word om afhanklikheidsname te beoordeel.

Skandering van 'n paar miljoen korporatiewe domeine het duisende JavaScript-pakketname onthul wat nie in die NPM-bewaarplek was nie. Nadat hy 'n databasis van interne pakketname opgestel het, het die navorser besluit om 'n eksperiment uit te voer om die infrastruktuur van maatskappye wat aan die Bug Bounty-programme deelneem, te kap. Die resultate was verbasend effektief en die navorser kon sy kode op baie ontwikkelingsrekenaars en bedieners uitvoer wat verantwoordelik is vir die bou of toets gebaseer op deurlopende integrasiestelsels.

By die aflaai van afhanklikhede het die pakketbestuurders npm, pip en gem hoofsaaklik pakkette geïnstalleer van die primêre openbare bewaarplekke NPM, PyPI en RubyGems, wat as hoër prioriteit beskou is.

Die teenwoordigheid van soortgelyke pakkette met dieselfde name in die bewaarplekke van private maatskappye is geïgnoreer sonder om enige waarskuwing te toon of om ongelukke te veroorsaak. wat die aandag van administrateurs kan trek. In PyPI is die aflaaiprioriteit beïnvloed deur die weergawenommer (ongeag die bewaarplek, die mees onlangse weergawe van die pakket is afgelaai). In NPM en RubyGems was die prioriteit slegs afhanklik van die bewaarplek.

Die navorser het pakkette in bewaarplekke van NPM, PyPI en RubyGems geplaas wat die name van die gevind interne afhanklikhede kruis, en kode byvoeg by die script wat loop voordat dit geïnstalleer word (vooraf geïnstalleer in NPM) om inligting oor die stelsel in te samel en die ontvangde inligting te stuur aan die eksterne gasheer.

Om inligting oor die sukses van die hack oor te dra, omseil firewalls wat eksterne verkeer blokkeer, die metode om geheime kanaalkommunikasie oor die DNS-protokol te organiseer. Die kode wat aan die gang was, het die gasheer in die aanvallende domein opgelos onder die beheer van die aanvallende domein, wat dit moontlik gemaak het om inligting oor suksesvolle bewerkings op die DNS-bediener in te samel. Inligting oor gasheer, gebruikersnaam en huidige pad is deurgegee.

75% van alle opgetekende kode-uitvoerings is geassosieer met die aflaai van NPM-pakkette, hoofsaaklik as gevolg van die feit dat daar beduidend meer interne JavaScript-module-name was as Python- en Ruby-afhanklikheidsname.

Fuente: https://medium.com/


Die inhoud van die artikel voldoen aan ons beginsels van redaksionele etiek. Klik op om 'n fout te rapporteer hier.

Wees die eerste om te kommentaar lewer

Laat u kommentaar

Jou e-posadres sal nie gepubliseer word nie. Verpligte velde gemerk met *

*

*

  1. Verantwoordelik vir die data: Miguel Ángel Gatón
  2. Doel van die data: Beheer SPAM, bestuur van kommentaar.
  3. Wettiging: U toestemming
  4. Kommunikasie van die data: Die data sal nie aan derde partye oorgedra word nie, behalwe deur wettige verpligtinge.
  5. Datastoor: databasis aangebied deur Occentus Networks (EU)
  6. Regte: U kan u inligting te alle tye beperk, herstel en verwyder.