Dependency Confusion

Ondersteun HackTricks

Basiese Inligting

In samevatting, 'n afhanklikheid verwarring kwesbaarheid gebeur wanneer 'n projek 'n biblioteek met 'n verkeerde gespelde naam, nie-bestaande of met 'n onbepaalde weergawe gebruik en die gebruikte afhanklikheid repo toelaat om opdaterings van openbare repos te versamel.

  • Verkeerde gespelde: Importeer reqests in plaas van requests

  • Nie-bestaande: Importeer company-logging, 'n interne biblioteek wat nie meer bestaan nie

  • Onbepaalde weergawe: Importeer 'n interne bestaande company-requests biblioteek, maar die repo kyk na openbare repos om te sien of daar groter weergawes is.

Exploitatie

In alle gevalle hoef die aanvaller net 'n kwaadwillige pakket met die naam van biblioteke wat deur die slagoffer maatskappy gebruik word, te publiseer.

Verkeerde Gespel & Nie-Bestaande

As jou maatskappy probeer om 'n biblioteek te importeer wat nie intern is nie, is dit hoogs waarskynlik dat die repo van biblioteke dit in openbare repos gaan soek. As 'n aanvaller dit geskep het, is dit hoogs waarskynlik dat jou kode en masjiene wat loop, gecompromitteer gaan word.

Onbepaalde Weergawe

Dit is baie algemeen dat ontwikkelaars geen weergawe van die biblioteek wat gebruik word, spesifiseer nie, of net 'n hoof weergawe spesifiseer. Dan sal die interpreter probeer om die nuutste weergawe wat aan daardie vereistes voldoen, af te laai. As die biblioteek 'n bekende eksterne biblioteek is (soos python requests), kan 'n aanvaller nie veel doen nie, aangesien hy nie 'n biblioteek met die naam requests kan skep nie (tenzij hy die oorspronklike outeur is). As die biblioteek egter intern is, soos requests-company in hierdie voorbeeld, as die biblioteek repo toelaat om ook na nuwe weergawes ekstern te kyk, sal dit soek na 'n nuwer weergawe wat publiek beskikbaar is. So as 'n aanvaller weet dat die maatskappy die requests-company biblioteek weergawe 1.0.1 gebruik (laat klein opdaterings toe). Hy kan die biblioteek requests-company weergawe 1.0.2 publiseer en die maatskappy sal daardie biblioteek in plaas van die interne een gebruik.

AWS Regstelling

Hierdie kwesbaarheid is in AWS CodeArtifact gevind (lees die besonderhede in hierdie blogpos). AWS het dit reggestel deur toe te laat om te spesifiseer of 'n biblioteek intern of ekstern is, om te verhoed dat interne afhanklikhede van eksterne repos afgelaai word.

Vind Kwesbare Biblioteke

In die oorspronklike pos oor afhanklikheid verwarring het die outeur gesoek na duisende blootgestelde package.json lêers wat javascript projek se afhanklikhede bevat.

Verwysings

Ondersteun HackTricks

Last updated