Supply chain — dasturiy mahsulotni yaratish va yetkazishda qatnashadigan manba kod, bog‘liqlik, build vositasi, CI/CD, artefakt ombori, imzolash kaliti va tarqatish kanallari zanjiridir. Dastur to‘g‘ri yozilgan bo‘lsa ham, zanjirdagi ishonchsiz komponent yoki buzilgan jarayon tayyor mahsulotga zararli kod qo‘shishi mumkin.
Zanjir bosqichlari
Jarayon developer qurilmasidagi kod va dependencydan boshlanadi. Source repository commit va review tarixini saqlaydi. Build worker kodni kompilyatsiya qilib, testdan o‘tkazadi va artefakt yaratadi. Registry yoki package repository artefaktni saqlaydi, deploy tizimi esa uni muhitga yetkazadi.
Har bosqich keyingisiga ma’lumot va ishonch uzatadi. Repository himoyalangan, ammo CI ishlatgan tashqi action buzilgan bo‘lsa, natija ishonchli emas. Shu sabab faqat yakuniy faylni skan qilish emas, butun provenance tekshiriladi.
Asosiy tahdidlar
Dependency confusion ichki nom bilan ommaviy registrydagi zararli paketni tanlatadi. Typosquatting o‘xshash nom orqali xato o‘rnatishga tayanadi. Maintainer hisobi egallansa, qonuniy paketning yangi relizi zararli bo‘lishi mumkin. Build workerga kirgan hujumchi kod repositorysini o‘zgartirmasdan binarga payload qo‘shadi.
CI tokeni yoki imzolash kaliti sizib chiqsa, hujumchi soxta artefaktni haqiqiydek tarqatishi mumkin. Uzoq yashovchi keng vakolatli credential zanjir bo‘ylab yonlama harakatni osonlashtiradi. Log va build artefaktiga sirlar chiqishi ham supply chain hodisasidir.
Bog‘liqlik nazorati
Bevosita va transitiv dependencylar inventari SBOMda qayd etiladi. Versiya lock bilan mahkamlanadi, yuklangan artefakt hash orqali tekshiriladi. Private paketlar scope va qat’iy registry siyosati bilan ajratiladi. Yangi dependency faqat funksiyasi emas, maintainer faolligi, litsenziyasi va nashr jarayoni bo‘yicha ham ko‘rib chiqiladi.
Zaiflik skaneri ma’lum CVElarni topadi, ammo zararli kod yoki yangi kompromatni to‘liq aniqlamaydi. Keraksiz dependencylarni kamaytirish yuzani qisqartiradi. Vendoring nazoratni oshirishi mumkin, lekin yangilash mas’uliyatini tashkilot zimmasiga oladi.
Build yaxlitligi
Buildlar ephemeral, izolyatsiyalangan workerda bajarilib, ish tugagach muhit yo‘q qilinadi. Internetga chiqish va maxfiy sirlarga kirish minimal qilinadi. CI konfiguratsiyasi ham kod review va branch protection bilan himoyalanadi. Uchinchi tomon actionlari o‘zgaruvchan tegga emas, aniq digestga mahkamlanadi.
Reproducible build bir xil kirishdan bir xil artefakt olish imkonini beradi. Mustaqil qayta build natijani solishtirishga yordam beradi. Provenance bayonoti artefakt qaysi commit, builder va parametrdan yaratilganini ko‘rsatadi.
Imzolash va tarqatish
Artefakt imzosi uning tasdiqlangan nashr jarayonidan chiqqanini tekshiradi. Kalit hardware-backed yoki qisqa muddatli identity asosidagi usulda himoyalanadi. Deploy tizimi faqat ruxsat etilgan identity imzolagan, siyosatga mos artefaktni qabul qiladi.
Promotion modelida bir xil artefakt testdan productionga ko‘tariladi; production uchun qayta build qilinmaydi. Registry immutable teg va audit tarixini saqlaydi. Rollback ham oldin tasdiqlangan imzolangan versiyaga bajariladi.
Hodisaga javob
Kompromat aniqlansa, ta’sirlangan versiyalar, ularni ishlatgan buildlar va deploy qilingan muhitlar tez topilishi kerak. SBOM va provenance bu qidiruvni tezlashtiradi. Paketni olib tashlashning o‘zi yetmaydi: tokenlar almashtiriladi, workerlar qayta quriladi, artefaktlar bekor qilinadi va ishonchli nuqtadan yangi reliz yaratiladi.
Siyosat va mas’uliyat
Har bosqichning egasi va ishonch chegarasi belgilanadi. Developer dependency tanlaydi, platforma jamoasi builderni, release jamoasi imzolash va promotionni boshqarishi mumkin. Voqea uchun yagona mas’ul bo‘lmasa, zaif paket topilganda kim rebuild qilishi noaniq qoladi. Policy exception aniq muddat va kompensatsion nazoratga ega bo‘ladi.
Bog‘liq tushunchalar
Software supply chain, SBOM, Provenance, Package manager, Code signing, Reproducible build, Dependency confusion