Kompania Google prezantoi kornizën SLSA (Nivelet e supply-chain për Artifaktet e Softuerit), e cila përmbledh përvojën ekzistuese në mbrojtjen e infrastrukturës së zhvillimit nga sulmet që ndodhin gjatë fazave të shkrimit të kodit, testimit, ndërtimit dhe shpërndarjes së produktit.
Proceset e zhvillimit po bëhen gjithnjë më të ndërlikuara dhe të varura nga mjete të jashtme, gjë që krijon kushte të favorshme për përshpejtimin e sulmeve, që nuk janë të lidhura me identifikimin dhe shfrytëzimin e dobësive në produktin fundor, por me komprometimin e vet procesit të zhvillimit (sulmet "supply chain", që zakonisht synojnë të inkorporojnë ndryshime të dëmshme gjatë shkrimit të kodit, zëvendësimi i komponenteve dhe varësive që shpërndahen).
Korniza merr parasysh 8 lloje sulmesh që lidhen me kërcënimet e inkorporimit të ndryshimeve të dëmshme në fazën e zhvillimit të kodit, ndërtimit, testimit dhe shpërndarjes së produktit.

- A. Inkorpore në kodin burimor ndryshime që përmbajnë backdoor ose gabime të fshehura që çojnë në dobësi.
Shembulli i sulmit: "Hypocrite Commits" â njĂ« pĂ«rpjekje pĂ«r tĂ« avancuar nĂ« bĂ«rthamĂ«n Linux patches me dobĂ«si.
Metoda e propozuar e mbrojtjes: rishikimi i pavarur i secilës ndryshim nga dy zhvillues.
- B. Komprometimi i platformës për menaxhimin e kodit burimor.
Shembulli i sulmit: inkorporimi i komiteteve të dëmshme me backdoor në Git-repozitorin e projektit PHP pas rrjedhjes së fjalëkalimeve të zhvilluesve.
Metoda e propozuar e mbrojtjes: Rritja e mbrojtjes së platformës për menaxhimin e kodit (në rastin e PHP, sulmi u krye përmes një ndërfaqeje HTTPS të pak përdorur, që lejonte dërgimin e ndryshimeve me hyrje me fjalëkalim pa verifikimin e çelësit SSH, ndërsa për hashing-un e fjalëkalimeve ishte përdorur MD5, që në vetvete është i pasigurt).
- C. Bërja e ndryshimeve gjatë fazës së transferimit të kodit në sistemin e ndërtimit ose integrimin e vazhdueshëm (kodit i ndërtuar nuk i përputhet kodit nga repozitorija).
Shembulli i sulmit: inkorporimi i backdoor në Webmin përmes ndryshimeve në infrastrukturën e ndërtimit, që çoi në përdorimin e skedarëve me kod, të cilët dallohet nga skedarët në repozitorin.
Metoda e propozuar e mbrojtjes: Kontrolli i integritetit dhe identifikimi i burimit të ardhjes së kodit në ndërtim. server.
- D. Komprometimi i platformës së ndërtimit.
Shembulli i sulmit: sulmi SolarWinds, ku gjatë fazës së ndërtimit u siguruar inkorporimi i një backdoor në produktin SolarWinds Orion.
Metoda e propozuar për mbrojtje: implementimi i masave të avancuara për sigurinë e platformës së ndërtimit.
- E. Përhapja e kodit të dëmshëm përmes varësive të dobëta.
Shembulli i një sulmi: implementimi i një backdoor në bibliotekën popullore event-stream, përmes shtimit të një varësie të pafajshme me përfshirjen e kodit të dëmshëm në një nga përditësimet e kësaj varësie (ndryshimi i dëmshëm nuk u shfaq në git-repozitor, por ishte prezent vetëm në paketën përfundimtare MNP).
Metoda e propozuar për mbrojtje: aplikimi recursiv i kërkesave SLSA për të gjitha varësitë (në rastin e event-stream, verifikimi do të zbulonte ndërtimin e kodit që nuk përputhej me përmbajtjen e Git-repozitorit kryesor).
- F. Ngarkimi i artefakteve që nuk janë krijuar në sistemin CI/CD.
Shembulli i një sulmi: shtimi i kodit të dëmshëm në skriptin CodeCov, duke lejuar sulmuesit të nxjerrin informacione të ruajtura në mjediset e sistemeve të integrimit të vazhdueshëm të klientëve.
Metoda e propozuar për mbrojtje: kontrolli i burimit dhe integritetit të artefakteve (në rastin e CodeCov, do të kishte qenë e mundur të zbulohej se skripti Bash Uploader që ofrohej nga faqja codecov.io nuk përputhej me kodin nga repozitori i projektit).
- G. Kompromitimi i repozitorëve të paketave.
Shembulli i një sulmi: hulumtuesit arritën të shpalosnin pasqyra të disa repozitorëve të njohur të paketa me qëllim përhapjen e paketave të dëmshme përmes tyre.
Metoda e propozuar për mbrojtje: kontrollimi që artefaktet e shpërndara të jenë ndërtuar nga burimet e deklaruara.
- H. Shtimi i konfuzionit te përdoruesi për të instaluar paketën e gabuar.
Shembulli i një sulmi: përdorimi i typosquatting (NPM, RubyGems, PyPI) për të vendosur në repozitorët e paketave, paketat që duken të ngjashme me aplikacione popullore (p.sh., coffe-script në vend të coffee-script).
PĂ«r tĂ« bllokuar kĂ«to kĂ«rcĂ«nime, SLSA ofron njĂ« set rekomandimesh, si dhe mjete pĂ«r automatizimin e krijimit tĂ« metadatanĂ«ve pĂ«r auditim. SLSA pĂ«rmbledh metodat standarde tĂ« sulmeve dhe prezanton konceptin e niveleve tĂ« mbrojtjes. Ădo nivel paraqet kĂ«rkesa tĂ« caktuara pĂ«r infrastrukturĂ«n, duke garantuar integritetin e artefakteve qĂ« pĂ«rdoren gjatĂ« zhvillimit. Sa mĂ« i lartĂ« tĂ« jetĂ« niveli mbĂ«shtetur SLSA, aq mĂ« shumĂ« mjete mbrojtĂ«se janĂ« implementuar dhe aq mĂ« mirĂ« mbrojtja e infrastrukturĂ«s nga sulmet standarde.
- SLSA 1 â kĂ«rkon qĂ« procesi i ndĂ«rtimit tĂ« jetĂ« plotĂ«sisht i automatizuar dhe tĂ« gjenerojĂ« metadata (provenance) mbi se si artefaktet janĂ« mbledhur, duke pĂ«rfshirĂ« informacionin mbi tekstet burimore, varĂ«sitĂ« dhe procesin e ndĂ«rtimit (pĂ«r GitHub Actions, Ă«shtĂ« propozuar njĂ« shembull i gjeneratorit tĂ« metadata pĂ«r auditimin). SLSA 1 nuk pĂ«rfshin elementĂ« mbrojtjeje nga ndryshimet e dĂ«mshme, por vetĂ«m identifikon nĂ« mĂ«nyrĂ« tĂ« thjeshtĂ« kodin dhe ofron metadata pĂ«r menaxhimin e dobĂ«sive dhe analizimin e rreziqeve.
- SLSA 2 â zgjerohet nga niveli i parĂ« me kĂ«rkesĂ«n pĂ«r pĂ«rdorimin e njĂ« sistemi tĂ« menaxhimit tĂ« versioneve dhe shĂ«rbimeve tĂ« ndĂ«rtimit qĂ« gjenerojnĂ« metadata tĂ« autentikuara. PĂ«rdorimi i SLSA 2 lejon ndjekjen e prejardhjes sĂ« kodit dhe parandalon ndryshimet e paautorizuara nĂ« kod, nĂ«se pĂ«rdoren shĂ«rbime ndĂ«rtimi tĂ« besueshme.
- SLSA 3 â konfirmon se tekstet burimore dhe platforma e ndĂ«rtimit pĂ«rputhen me standardet qĂ« garantiojnĂ« mundĂ«sinĂ« e auditimit tĂ« kodit dhe sigurinĂ« e metadata tĂ« ofrueshme. Supozohet se auditorĂ«t mund tĂ« certifikojnĂ« platformat pĂ«r pĂ«rputhshmĂ«ri me kĂ«rkesat standardeve.
- SLSA 4 â niveli mĂ« i lartĂ«, plotĂ«son nivelet e mĂ«parshme me kĂ«rkesat e mĂ«poshtme:
- Rishikimi i detyrueshëm i të gjitha ndryshimeve nga dy zhvillues të ndryshëm.
- Të gjitha hapat e ndërtimit, kodi dhe varësitë duhet të deklarohen plotësisht, të gjitha varësitë duhet të nxiren veçmas dhe të verifikohen, dhe procesi i ndërtimit duhet të kryhet pa akses në internet.
- PĂ«rdorimi i procesit tĂ« ndĂ«rtimit tĂ« ripĂ«rsĂ«ritur â mundĂ«sia pĂ«r tĂ« pĂ«rsĂ«ritur procesin e ndĂ«rtimit vetĂ« dhe tĂ« sigurohet qĂ« skedari ekzekutiv Ă«shtĂ« ndĂ«rtuar nga tekstet burimore tĂ« ofruara.

Burimi: opennet.ru

