Composer-insteekmodule tegen aanvallen van Dependency Confusion
Dit artikel bevat informatie over de componentplug-in die wordt vrijgegeven voor de aanvallen van Dependency Confusion en aanbevelingen over het voorkomen van de fout. De Composer-insteekmodule is naast de release van Adobe Commerce 2.4.3 geïntroduceerd om Adobe Commerce-handelaren te beschermen tegen aanvallen van Dependency Confusion.
Beschrijving description
Omgeving
Adobe Commerce 2.4.3 en toekomstige versies (alle implementatiemethoden)
Probleem
Een mogelijk geval van een actieve aanval van de Verwaring van de Afhankelijkheid wordt ontdekt door minstens één van de directe of indirecte gebiedsdelen die in composer.json door de componentenstop magento/composer-dependency-version-audit-plugin tijdens composer installatie/update worden bepaald.
Stappen om te reproduceren:
Wanneer u composer installeert/bijwerkt, zal de composer stop het proces als het een potentiële aanval van de Verwaring van de Afhankelijkheid ontdekt. In dat geval mislukt de installatie/update van de composer met een foutbericht zoals:
de hogere passende versie x.x.x van pakket/naam werd gevonden in openbare bewaarplaats packagist.org dan x.x.x in private.repo. Het openbare pakket zou door een kwaadwillige entiteit kunnen zijn overgenomen; gelieve te onderzoeken en pakketvereiste bij te werken om de versie van de privé bewaarplaats aan te passen.
Oorzaak
De aanval van de Verwaring van de afhankelijkheid staat toe om willekeurige code op een server ver uit te voeren door een gebiedsdeelmanager (bijvoorbeeld, Composer van PHP) in het downloaden van een kwaadwillig pakket van een openbare bron in plaats van het originele pakket van een privé bewaarplaats te slepen.
Een dergelijke aanval kan zelfs onopgemerkt blijven als een aanvaller de functionaliteit van het originele pakket kan handhaven.
Aanvallers kunnen deze kwetsbaarheid misbruiken als een pakket alleen beschikbaar is via privéopslagplaatsen, maar niet is geregistreerd in het openbare depot. De aanvaller uploadt dan een pakket met dezelfde naam naar de openbare opslagplaats en geeft deze een hogere versie dan de versie die persoonlijk beschikbaar is. De afhankelijkheidsmanager zal dan versies van zowel privé als openbaar beschikbare pakketten vergelijken en zal hoogste kiezen van de openbare bewaarplaats. De kwaadaardige code die door de afhankelijkheidsmanager wordt gedownload, wordt vervolgens uitgevoerd met dezelfde bevoegdheden als de code van de toepassing.
Resolutie resolution
Aanbevelingen aan handelaren
- Neem het foutbericht dat wordt weergegeven wanneer de plug-in de installatie/update van de composer stopt, en neem contact op met de extensieontwikkelaar als u het mogelijk gecompromitteerde pakket herkent.
- U kunt Adobe Commerce nog steeds installeren met de veilige versie van het pakket van de Marketplace of een andere vertrouwde privéopslagplaats.
- Wijzig de vereiste pakketversie in uw
composer.jsonin de exacte versie in de Marketplace om door te gaan met de installatie/update van de componist.
Verwachtingen van ontwikkelaars van extensies
- Er is geen enkele manier om vast te stellen of het pakket voor een insteekmodule, als dit afkomstig is van een publieke repo, al dan niet in gevaar is gebracht. De stop zal ontdekken wanneer een openbare versie van een pakket in packagist.org een hogere versie dan beschikbaar bij een privé repo als repo.magento.com heeft. Wij adviseren sterk dat de uitbreidingsontwikkelaars dergelijke situaties vermijden en publiceren geen nieuwere versies openbaar dan die beschikbaar door repo.magento.com .
- Adobe Commerce begrijpt dat het marktweerhalingsproces de beschikbaarheid van de release van extensies kan vertragen, maar dat het proces er is om handelaren veilig te houden en om ontwikkelaars te helpen onbedoelde fouten te vinden die ze wellicht hebben gemist.