Paklauskite penkių kūrėjų, kas yra priklausomybių užkarda, ir greičiausiai gausite penkis skirtingus atsakymus, dažniausiai kažką miglotai apie „blogų paketų blokavimą“. Štai įžangacise versija: tai saugumo kontrolė, esanti tarp kūrėjo (arba kompiliavimo sistemos) ir viešojo paketų registro, tikrinant kiekvieną priklausomybę prieš leidžiant jam atsisiųsti ar įdiegti, ir automatiškai jį blokuojant, jei jis yra kenkėjiškas, pažeidžiamas ar pažeidžia taisykles. Tai praktinė priklausomybės užkardos reikšmė: ne skaitytuvas, kuris praneša apie problemas po fakto, o vartai, kurie neleidžia blogam paketui pasiekti disko.
Termino išpakavimas: priklausomybės užkardos reikšmė #
Pavadinimas yra pažodinis, nei iš pradžių skamba, ir jį išskleidus išsklaidoma didžioji dalis painiavos dėl to, kas yra priklausomybės užkarda:
Priklausomybė: bet koks išorinis paketas, biblioteka ar modulis, kurį jūsų kodas įkelia iš npm, PyPI, Specialistė, „NuGet“, „RubyGems“ir panašius registrus.
ugniasienė: pasiskolinta iš tinklo saugumo, kur užkarda tikrina srautą ir blokuoja tai, kas neturėtų praeiti. Ta pati tikrinimo, o tada blokavimo logika taikoma paketų diegimui, o ne tinklo paketams.
Apibendrinant, priklausomybės užkardos reikšmė yra paprasta: tai kodo priklausomybių kontrolinis taškas, lygiai taip pat, kaip tinklo užkarda yra tinklo srauto kontrolinis taškas.
Kaip iš tikrųjų veikia priklausomybių užkarda #
Dauguma diegimų, kurie atitinka priklausomybės ugniasienės reikalavimus, vykdomi panašia seka:
- Perėmimas: įrankis hooks į diegimo etapą („npm install“, „pip install“ ir atitikmenis) arba registro tarpinio serverio sluoksnį, kad matytų užklausą prieš paketo nusileidimą.
- Vertinimas: Prašomas paketas ir versija tikrinami pagal žinomus kenkėjiškus indikatorius, pažeidžiamumų duomenų bazes, licencijos politiką ir elgesio signalus (įtartinus diegimo scenarijus, neįprastą prižiūrėtojo veiklą, naujai paskelbtus paketus be istorijos).
- Decisjonas: Diegimas vyksta įprastai, pažymimas peržiūrai arba visiškai blokuojamas, priklausomai nuo problemos svarbos ir organizacijos politikos.
- Prisijungimas: kiekvienas decisŠis veiksmas įrašomas, todėl apsaugos komandos gali matyti, kas buvo bandyta ir kas buvo sustabdyta.
Ugniasienė ir skaitytuvas: kur slypi tikrasis skirtumas #
Dažnas tolesnis klausimas, kas yra greitoji injekcija, yra skirtumas nuo apsaugos nuo įtrūkimų (angl. jailbreaking). Abu šie terminai sutampa, bet nėra identiški. Apsaugų nuo įsitrūkimų tikslas yra apeiti modelio... Dažnas painiavos taškas, kai žmonės domisi, kas yra priklausomybės užkarda, yra jos skirtumas nuo... standard Programinės įrangos sudėties analizė (SCA) skaitytuvas. Skirtumas yra laikas, o ne galimybės. SCA skaitytuvas paprastai paleidžiamas po to, kai jau įdiegtos priklausomybės arba committed, nurodydamas, kas jau yra jūsų kodo bazėje. Priklausomybės užkarda paleidžiama diegimo metu, dar prieš paketui paliečiant diską. Viena yra dūmų detektorius po gaisro pradžios; kita yra durys, kurios niekada neįleidžia ugnies. Daugelyje pažangių saugumo programų veikia abi: priklausomybės užkarda prevencijai ir SCA kad būtų galima nuolat matyti, kas jau yra
Kur komandos iš tikrųjų tai diegia #
Suprasti priklausomybės užkardos reikšmę abstrakčiai yra viena; pamatyti, kur ji įsilieja į realų kontekstą. pipeline yra dar vienas. Įprasti diegimo taškai:
- Kūrėjų darbo vietos: kenkėjiško paketo blokavimas tuo metu, kai kūrėjas vietoje paleidžia diegimo komandą, dar prieš jam pasiekiant bendrinamą saugyklą.
- CI/CD pipelines: ta pati politika automatiškai taikoma kiekvienam kompiliavimui, kad užblokuotas paketas negalėtų prasmukti pro automatizuotą užduotį, kurios žmogus niekada nestebi.
- Privačių registrų įgaliotiniai: sėdint priešais įmonės vidinį paketų veidrodį, kiekvienas užklausimas, žmogiškas ar automatizuotas, praeina per tą patį kontrolinį tašką.
- Dirbtinio intelekto kodavimo agentai: vis labiau aktualu, nes autonominiai agentai patys diegia priklausomybes; priklausomybių užkarda yra viena iš nedaugelio kontrolės priemonių, kuri vis dar taikoma, kai nėra kūrėjo, kuris pastebėtų įtartiną paketo pavadinimą.
Kodėl ši kontrolė yra svarbesnė nei anksčiau #
Prieš kelerius metus tai buvo daugiausia teorinė nuomonė: kenkėjiški paketai egzistavo, tačiau jie buvo pakankamai reti, kad rankinė peržiūra aptikdavo daugumą jų. Tai nebėra tiesa. Dabar viešieji registrai aptinka didelius kiekius, automatizuotos leidybos kampanijos, kai kurie per kelias minutes išsiunčia dešimtis kenkėjiškų paketų versijų, specialiai sukurtų taip, kad aplenktų rankinę peržiūrą ir praslystų pro kūrėjus, kurie pasitiki pažįstamu pavadinimu. Tokioje aplinkoje klausimas, kas yra priklausomybės užkarda, nustoja būti apibrėžimo uždaviniu.cisir tampa praktiniu klausimu, ar organizacija turi kokią nors kontrolę įdiegus scenarijus ir gyvavimo ciklą hooks yra jau žinomi atakų vektoriai. Priklausomybės užkarda yra vienas iš nedaugelio mechanizmų, galinčių sustabdyti nulinės dienos kenkėjišką paketą dar prieš atsirandant jo parašui, o tai svarbu, nes dauguma kitų apsaugos priemonių veikia tik po to, kai grėsmė jau yra identifikuota ir kataloguota.
Ksigenis savo tyrimų komanda stebi šias kampanijas kas savaitę per savo Kenkėjiškų programų ankstyvas įspėjimas sistemą, ir modelis yra nuoseklus: užpuolikai optimizuoja greitį ir apimtį, o ne slaptumą – būtent tokį profilį priklausomybės užkarda ir yra sukurta tam, kad užfiksuotų diegimo metu, o ne po to.

DUK #
Priklausomybių užkarda yra saugumo kontrolės priemonė, kuri diegimo metu tikrina kiekvieną programinės įrangos priklausomybę ir automatiškai ją blokuoja, jei ji yra kenkėjiška, pažeidžiama arba prieštarauja taisyklėms.
Ne visai. Antivirusinės programos paprastai nuskaito diske jau esančius failus, ieškodamos žinomų parašų. Priklausomybių užkarda įsikiša anksčiau, pačioje diegimo užklausoje, ir gali aptikti elgesio raudonąsias vėliavėles paketuose, kurie niekada anksčiau nebuvo matyti, o ne tik žinomose grėsmėse.
Ne, jie vienas kitą papildo. Priklausomybės užkarda iš pradžių neleidžia įdiegti blogo paketo; SCA Įrankiai ir toliau stebi, kas jau yra jūsų kodo bazėje, ar laikui bėgant neatsirado naujai atskleistų pažeidžiamumų.
Taip, tai vienas iš pagrindinių jos privalumų. Kadangi ji įvertina elgseną ir metaduomenis (ne tik lygina juos su jau žinomų blogų paketų sąrašu), gerai sukurta priklausomybių užkarda gali pažymėti visiškai naują kenkėjišką paketą, kol jį dar nekatalogavo jokie registrai, antivirusinių programų tiekėjai ar CVE duomenų bazės.