Software Supply Chain Security Grėsmės paketo etape

Software Supply Chain Security Grėsmės paketo etape

Programinės įrangos kūrimui progresuojant programinės įrangos tiekimo grandinės gyvavimo cikle, paketų kūrimo etapas iškyla kaip esminis etapas, kai šaltinio kodas paverčiamas vykdomaisiais artefaktais, paruoštais platinimui. Tačiau šis kritinis etapas nėra apsaugotas nuo pažeidžiamumų, todėl jis yra pagrindinis kenkėjiškų veikėjų, siekiančių pakenkti programinės įrangos vientisumui ir saugumui, taikinys. Šiame tinklaraščio įraše nagrinėjamos paplitusios grėsmės, kurios gali kilti šiame etape, ir pateikiamos veiksmingos strategijos joms sušvelninti. Šis turinys yra mūsų tinklaraščio serijos, kurioje nagrinėjama... software supply chain security visoje SDLC.

Programinės įrangos kūrimo gyvavimo ciklo paketo etapas

Programinės įrangos tiekimo grandinės gyvavimo ciklo paketų etapas apima programinės įrangos pakavimą ir paruošimą platinimui vartotojams. Šis etapas apima diegimo paketų kūrimą, priklausomybių valdymą ir programinės įrangos metaduomenų generavimą.

Kompiliavimo vientisumo grėsmės yra pažeidžiamumai, kurie gali leisti užpuolikams atlikti neleistinus programinės įrangos pakeitimus pakavimo proceso metu. Šios grėsmės gali būti įvedamos įvairiais būdais, pavyzdžiui, pažeidžiant paketų registrą, išnaudojant pakavimo įrankių pažeidžiamumus arba manipuliuojant trečiųjų šalių priklausomybėmis.

Dėl visiškos priklausomybės nuo atvirojo kodo komponentų šiuolaikinėje programinėje įrangoje šis etapas tapo dažniausiu S.SCA tikslas. Slaptos kenkėjiškos programos įdiegimas populiariame atvirojo kodo komponente yra daugelio kibernetinių nusikaltėlių svajonė. Štai kodėl daugiau nei 2023 m. buvo rasta 245 000 kenkėjiškų paketų. 

Pavyzdžiai Software Supply Chain Security Grėsmės paketo etape

programinės įrangos tiekimo grandinės saugumo paketų atakos programinės įrangos tiekimo grandinės paketų atakos
Naudoti pažeistą paketą

Tai reiškia programinės įrangos paketo, kurį priešininkas pakeitė arba modifikavo, diegimą ar naudojimą.

Tai gali nutikti po to, kai paketas palieka oficialų paketų registrą, tiesiogiai prisijungus prie vartotojo sistemos arba pasitelkus socialinės inžinerijos taktiką, kuria apgaule vartotojas atsisiunčiamas arba įdiegiamas kenkėjiškas paketas. Šio vektoriaus pavyzdys buvo Naršyti klaidų rašymas Ataka.

Užpuolikas, siekdamas pažeisti „Linux“ ir „Mac“ sistemas, įsiskverbė į populiarios „Node.js“ bibliotekos, vadinamos „Browserify“, kūrimo procesą. Užpuolikas į projekto šaltinio kodą įterpė kenkėjišką kodą, ketindamas jį platinti per NPM paketo registrą. Kai užkrėstas „Browserify“ paketas būdavo įkeliamas į NPM, nieko neįtariantys kūrėjai jį atsisiųsdavo ir įdiegdavo, manydami, kad tai yra teisėta versija. Kenkėjiškas kodas, įterptas į paketą, vykdavo tyliai, pažeisdamas užkrėstų sistemų vientisumą. Tai galėjo sukelti duomenų vagystę, sistemos nestabilumą ar net nuotolinę prieigą užpuolikui.

Kompromituotų paketų registras

Pažeistas paketų registras yra programinės įrangos saugykla, į kurią įsiskverbė priešininkas, gavęs neteisėtą prieigą prie registro administravimo sąsajos arba infrastruktūros.

Tai leidžia priešininkui modifikuoti arba pakeisti teisėtus programinės įrangos paketus kenkėjiškais, kurie vėliau gali būti platinami nieko neįtariantiems įdiegusiems vartotojams. Šio tipo grėsmės pavyzdys buvo Ataka prieš paketinius veidrodėlius: Tyrėjas, siekdamas reklamuoti atvirojo kodo programinę įrangą, įsilaužė į kelis populiarius paketų registrus, įskaitant „Maven Central“, „NPM“ ir „RubyGems“. Gavęs prieigą prie šių registrų, tyrėjas galėjo sukurti veidrodinius atspindžius ir originalių saugyklų kopijas, kurios suteikė kūrėjams patogią alternatyvą atsisiųsti paketus.

Tačiau šie veidrodžiai turėjo klastingą tikslą. Pažeisti veidrodžiai tyrėjui tarnavo kaip kanalai kenkėjiškiems paketams platinti. Šie paketai pakeitė teisėtus, kurių neaptiko pagrindiniai registrai, o nieko neįtariantys kūrėjai juos netyčia atsisiuntė ir įdiegė. Įdiegę šiuos kenkėjiškus paketus, jie paleido savo naudingąją informaciją, vykdydami savavališką kodą, pavogdami jautrius duomenis arba sutrikdydami operacijas.

Įkelti modifikuotą paketą

Priešininkas į saugyklą arba platinimo kanalą įkelia modifikuotą paketą, kuriame yra kenkėjiškas kodas arba naudingoji apkrova. Tai galima padaryti modifikuojant paketo šaltinio kodą, pakuotę arba metaduomenis.

Vienas iš labiausiai pagarsėjusių tokio tipo grasinimų buvo „CodeCov“ ataka 2021 m.. Užpuolikas, siekiantis pažeisti programinės įrangos projektus naudodamas „CodeCov“ – populiarią nuolatinės integracijos ir nuolatinio teikimo priemonę (CI/CD) įrankis panaudojo nutekintus prisijungimo duomenis, kad gautų neteisėtą prieigą prie projekto „Google Cloud Storage“ (GCS) saugyklos. Kai užpuolikas gavo prieigą prie GCS saugyklos, jis įkėlė kenkėjišką artefaktą – modifikuotą „CodeCov“ paketo versiją, kuri vėliau buvo platinama vartotojams per „CodeCov“ paslaugą. Nieko neįtariantys kūrėjai, pasikliaudami automatinių atnaujinimų funkcija, atsisiųsdavo ir įdiegdavo kenkėjišką paketą, manydami, kad tai teisėtas paketas. Įdiegus kenkėjišką kodą, jis veiktų tyliai, pažeisdamas užkrėstų sistemų vientisumą. Tai galėjo sukelti duomenų vagystę, sistemos nestabilumą ar net nuotolinę prieigą užpuolikui.

Atakos prieš paketų registrus yra tokios dažnos, kad kai kurios atakų sekos gavo pavadinimą:

In Raštu rašoma, kenkėjiškas veikėjas į registrą įkelia kelis kenkėjiškus paketus su nedidelėmis spausdinimo klaidomis arba panašiais pavadinimais į teisėtus, populiarius paketus, tikėdamasis, kad kūrėjai parašys numatytą paketo pavadinimą kenkėjišku. Dažnai kenkėjiškas paketas apsimeta teisėtu, kad liktų nepastebėtas, taip padidindamas tikimybę būti užkrėstam „žvaigždžių stebėjimo“ atakos. 

Priklausomybės painiava pasinaudoja tuo, kaip kai kurie paketų tvarkytuvai sprendžia užklaustų paketų iš kelių registrų gavimą. Kai organizacija naudoja vidinius komponentus, paskelbtus vidiniame registre, užpuolikas, žinantis šį faktą, gali viešajame registre paskelbti kenkėjišką komponentą tuo pačiu pavadinimu. Jei vidiniam komponentui naudojamas pavadinimas nėra apibrėžtas, kai kurie paketų tvarkytuvai vietoj vidinio komponento gaus kenkėjišką komponentą.   

Su Troyano paketai, kibernetinis nusikaltėlis užmaskuoja kenkėjišką programą naudingu galiojančiu kodu. Tai gali naudoti tikrasis autorius arba bendradarbis, kuris siūlosi prižiūrėti paketą. Tai taip pat žinoma kaip Paketo užgrobimasUžpuolikai naudojo daug technikų, kad užgrobtų esamą paketą, pavyzdžiui Domeno perėmimas kur užpuolikas užgrobė apleistą, nebegaliojantį domeną, atkurdamas seną prižiūrėtojo el. pašto adresą ir atlikdamas slaptažodžio atkūrimą, kad perimtų prižiūrėtojo paskyrą.

Paskutinės pastabos

Organizacijoms vis dažniau taikant programinės įrangos kūrimo metodologijas, kurios teikia pirmenybę automatizavimui ir nuolatiniam teikimui, programinės įrangos paketo etapo apsaugos svarba dar niekada nebuvo tokia svarbi. Įdiegdamos patikimas saugumo priemones šiame kritiniame etape, organizacijos gali gerokai sumažinti riziką pasiduoti kenkėjiškoms atakoms, kurios gali pakenkti jų programinės įrangos vientisumui ir saugumui.

Šiame tinklaraščio įraše aprašytos strategijos kartu su pateiktais pavyzdžiais yra rimtas priminimas, kad paketo etapas yra pažeidžiamas programinės įrangos tiekimo grandinės taškas. Organizacijos privalo atkreipti dėmesį į šias grėsmes ir įdiegti būtinas saugumo priemones, kad apsaugotų savo programinę įrangą nuo atakų. Taip jos gali užtikrinti savo programinės įrangos vientisumą, saugumą ir patikimumą savo vartotojams ir klientams.

Prisijunkite prie mūsų kelionės link saugios programinės įrangos ekosistemos

Nepraleiskite progos būti vienu žingsniu priekyje srityje software supply chain securityPrenumeruokite mūsų tinklaraštį šiandien ir būkite tarp pirmųjų, kurie gauna naujausias įžvalgas, užtikrindami, kad jūsų organizacija išliktų atspari ir saugi besikeičiančių grėsmių akivaizdoje. Kartu galime sukurti tvirtesnę ir saugesnę programinės įrangos ekosistemą visiems.

Atminkite, kad software supply chain security yra nuolatinė kelionė, o ne tikslas. Nuolat vertindamos ir pritaikydamos saugumo praktikas, kad jos reaguotų į kylančias grėsmes, organizacijos gali apsaugoti savo programinės įrangos tiekimo grandinę ir tiekti patikimą programinę įrangą savo vartotojams.

Ištyrinėkite „Xygeni“ funkcijas!
Žiūrėkite mūsų vaizdo demonstraciją
sca-tools-software-composition-analyses-tools
Prioritetizuoti, pašalinti ir apsaugoti savo programinės įrangos rizikas
Gaukite nemokamą paskyrą.
Nebūtina kreditinės kortelės.

Apsaugokite savo programinės įrangos kūrimą ir tiekimą

su „Xygeni“ produktų rinkiniu