Dependency Confusion
Taarifa Msingi
Kwa muhtasari, udhaifu wa kutatanisha utegemezi hutokea wakati mradi unatumia maktaba yenye jina lililoandikwa kwa makosa, haipo au na toleo lisiloelezwa na hifadhi ya utegemezi inayotumiwa inaruhusu kukusanya toleo jipya kutoka kwenye hifadhi za umma.
Kwa Makosa: Ingiza
reqests
badala yarequests
Haipo: Ingiza
company-logging
, maktaba ya ndani ambayo haipo tenaToleo Lisiloelezwa: Ingiza maktaba ya ndani iliyopo
company-requests
, lakini hifadhi inachunguza hifadhi za umma kuona kama kuna toleo kubwa.
Udukuzi
Katika kila kesi, muhusika anahitaji tu kuchapisha pakiti yenye nia mbaya yenye jina la maktaba zilizotumiwa na kampuni ya mwathiriwa.
Kwa Makosa & Haipo
Ikiwa kampuni yako inajaribu kuagiza maktaba ambayo si ya ndani, kuna uwezekano mkubwa hifadhi ya maktaba itakuwa inatafuta kwenye hifadhi za umma. Ikiwa muhusika ameitengeneza, programu yako na mashine zinazoendesha zinaweza kuwa zimeingiliwa kwa kiwango kikubwa.
Toleo Lisiloelezwa
Ni kawaida kwa wabunifu kutotaja toleo lolote la maktaba iliyotumiwa, au kutaja tu toleo kuu. Kisha, mkalimani atajaribu kupakua toleo jipya zaidi linalofaa mahitaji hayo.
Ikiwa maktaba ni maktaba ya nje inayojulikana (kama vile python requests
), muhalifu hawezi kufanya mengi, kwani hataweza kuunda maktaba iliyoitwa requests
(isipokuwa yeye ni mwandishi halisi).
Hata hivyo, ikiwa maktaba ni ndani, kama requests-company
katika mfano huu, ikiwa hifadhi ya maktaba inaruhusu kuangalia toleo jipya pia kwa nje, itatafuta toleo jipya lililopo hadharani.
Kwa hivyo ikiwa muhalifu anajua kuwa kampuni inatumia maktaba ya requests-company
toleo 1.0.1 (kuruhusu visasisho vidogo). Anaweza kuchapisha maktaba ya requests-company
toleo 1.0.2 na kampuni itaanza kutumia maktaba hiyo badala ya ile ya ndani.
AWS Kurekebisha
Udhaifu huu uligunduliwa katika AWS CodeArtifact (soma maelezo katika chapisho hili la blogi). AWS ilirekebisha hili kwa kuruhusu kutaja ikiwa maktaba ni ya ndani au ya nje, ili kuepuka kupakua tegemezi za ndani kutoka kwenye hifadhi za nje.
Kutambua Maktaba Zenye Udhaifu
Katika chapisho la awali kuhusu kutatanisha utegemezi mwandishi alitafuta maelfu ya faili za package.json zilizo wazi zilizo na tegemezi za miradi ya javascript.
Marejeo
Last updated