Kompania Google prezantoi kornizën SLSA (Supply-chain Levels for Software Artifacts), e cila përmbledh përvojën ekzistuese për mbrojtjen e infrastrukturës së zhvillimit nga sulmet që ndodhin gjatë fazave të shkruarjes së kodit, testimit, ndërtimit dhe shpërndarjes së produktit.
Proceset e zhvillimit po bëhen gjithnjë e më komplekse dhe të varura nga instrumente të jashtme, duke krijuar kushte të favorshme për sulmet që nuk fokusohen në identifikimin dhe shfrytëzimin e dobësive në produktin përfundimtar, por në komprometimin e vetë procesit të zhvillimit (sulmet e «supply chain», zakonisht të orientuara për të inkorporuar ndryshime të dëmshme gjatë shkruarjes së kodit, këmbimin e komponentëve 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 gjatë fazës së zhvillimit të kodit, ndërtimit, testimit dhe shpërndarjes së produktit.

- A. Inkorporeimi në kodin burimor të ndryshimeve 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 kĂ«rkesa me dobĂ«si nĂ« bĂ«rthamĂ«n Linux.
Metoda e ofruar për mbrojtje: rishikimi i pavarur i çdo ndryshimi nga dy zhvillues.
- B. Komprometimi i platformës së menaxhimit të kodit burimor.
Shembulli i sulmit: inkorporimi i komitimeve të dëmshme me backdoor në depozitën Git të projektit PHP pas rrjedhjes së fjalëkalimeve të zhvilluesve.
Metoda e ofruar për mbrojtje: Rritja e sigurisë së platformës së menaxhimit të kodit (në rastin e PHP, sulmi u realizua përmes një ndërfaqe HTTPS të pakët, që lejonte dërgimin e ndryshimeve me fjalëkalim pa verifikimin e çelësit SSH, duke përdorur një algoritëm të dobët si MD5 për të hash-fjalëkalimet).
- C. Inkorporimi i ndryshimeve gjatë kalimit të kodit në sistemin e ndërtimit ose integrimit të vazhdueshëm (ndërtimi i kodit që nuk përputhet me kodin nga depozita).
Shembulli i sulmit: inkorporimi i një backdoor në Webmin përmes ndryshimeve në infrastrukturën e ndërtimit që çuan në përdorimin e skedarëve me kod që ndryshojnë nga skedarët në depozitë.
Metoda e ofruar për mbrojtje: Kontrolli i integritetit dhe identifikimi i burimit të kodit në ndërtim. serveri.
- D. Komprometimi i platformës së ndërtimit.
Shembulli i sulmit: sulmi SolarWinds, gjatë të cilit në fazën e ndërtimit u siguruar inkorporimi i një backdoor në produktin SolarWinds Orion.
Metoda e ofruar për mbrojtje: inkorporimi i masave të avancuara për sigurimin e platformës së ndërtimit.
- E. Avancimi i kodit të dëmshëm përmes varësive të dobëta.
Shembulli i sulmit: inkorporimi i një backdoor në bibliotekën popullore event-stream, përmes shtimit të një varësie të padëmshme dhe më pas përfshirja e kodit të dëmshëm në njërin nga azhurnimet e kësaj varësie (ndryshimi i dëmshëm nuk u reflektua në depozitën Git, por ishte i pranishëm vetëm në paketën e përfunduar MNP).
Metoda e ofruar për mbrojtje: aplikimi rekurziv i kërkesave SLSA ndaj të gjitha varësive (në rastin e event-stream, verifikimi do të kishte zbuluar ndërtimin e kodit që nuk përputhet me përmbajtjen e depozitës kryesore Git).
- F. Ngarkimi i artefakteve që nuk janë krijuar në sistemin CI/CD.
Shembulli i sulmit: shtimi i kodit të dëmshëm në skenarin CodeCov, duke lejuar kthimin e informacionit të ruajtur në ambientet e sistemeve të integrimit të vazhdueshëm të klientëve.
Metoda e ofruar për mbrojtje: kontrolli i burimit dhe integritetit të artefakteve (në rastin e CodeCov, mund të ishte zbuluar se skenari Bash Uploader që ofrohej nga faqja codecov.io nuk përputhet me kodin nga depozita e projektit).
- G. Komprometimi i depozitës së paketave.
Shembulli i sulmit: studjuesit arritën të krijojnë pasqyra të disa depozitave popullore të paketave me qëllim të shpërndarjes së paketave të dëmshme përmes tyre.
Metoda e ofruar për mbrojtje: Kontrolli që artefaktet e shpërndara të jenë ndërtuar nga tekstet e deklaruara burimore.
- H. Klithja e përdoruesit për të instaluar paketën e gabuar.
Shembulli i sulmit: përdorimi i typesquatting (NPM, RubyGems, PyPI) për të vendosur në depozitat e pakove emra që ndjeben si aplikacione të njohura (p.sh., coffe-script në vend të coffee-script).
PĂ«r tĂ« bllokuar kĂ«to kĂ«rcĂ«nime, SLSA ofron njĂ« grup rekomandimesh dhe instrumentesh pĂ«r automatizimin e krijimit tĂ« metadatat pĂ«r auditimin. SLSA pĂ«rmbledh metodat tipike tĂ« sulmit dhe prezanton konceptin e niveleve tĂ« mbrojtjes. Ădo nivel paraqet kĂ«rkesa tĂ« caktuara pĂ«r infrastrukturĂ«n, qĂ« sigurojnĂ« integritetin e artefakteve tĂ« pĂ«rdorura nĂ« zhvillim. Sa mĂ« i lartĂ« tĂ« jetĂ« niveli i mbĂ«shtetur SLSA, aq mĂ« shumĂ« masa mbrojtĂ«se janĂ« inkorporuar dhe aq mĂ« mirĂ« Ă«shtĂ« mbrojtur infrastruktura nga sulmet tipike.
- SLSA 1 â kĂ«rkon qĂ« procesi i ndĂ«rtimit tĂ« jetĂ« plotĂ«sisht i automatizuar dhe tĂ« gjenerojĂ« metadata (âprovenanceâ) mbi mĂ«nyrĂ«n se si artefaktet janĂ« mbledhur, duke pĂ«rfshirĂ« informacione rreth teksteve burimore, varĂ«sive dhe procesit tĂ« ndĂ«rtimit (pĂ«r GitHub Actions Ă«shtĂ« propozuar njĂ« shembull i gjeneruesit tĂ« metadatas pĂ«r auditimin). SLSA 1 nuk pĂ«rfshin elemente mbrojtjeje nga ndryshimet e dĂ«mshme, por thjesht identifikon kodin dhe ofron metadata pĂ«r menaxhimin e dobĂ«sive dhe analizĂ«n e rreziqeve.
- SLSA 2 â zgjeron nivelin e 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. Zbatimi i SLSA 2 lejon ndjekjen e origjinĂ«s sĂ« kodit dhe parandalon ndryshimet e paautorizuara nĂ« kod, nĂ« rast se pĂ«rdoren shĂ«rbime tĂ« besueshme tĂ« ndĂ«rtimit.
- SLSA 3 â konfirmon se tekstet burimore dhe platforma e ndĂ«rtimit pĂ«rputhen me kĂ«rkesat e standardeve qĂ« garantojnĂ« mundĂ«sinĂ« e auditimit tĂ« kodit dhe sigurimin e integritetit tĂ« metadatas sĂ« ofruar. Supozohet se auditorĂ«t mund tĂ« certifikojnĂ« platformat nĂ« pĂ«rputhje me kĂ«rkesat e 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ë nxirren dhe kontrollohen veçmas, dhe procesi i ndërtimit duhet të kryhet pa qasje në rrjet.
- Zbatimi i procesit tĂ« ndĂ«rtimit tĂ« pĂ«rsĂ«ritshĂ«m â mundĂ«sia pĂ«r tĂ« pĂ«rsĂ«ritur procesin e ndĂ«rtimit me forcat e veta dhe pĂ«r tĂ« konfirmuar se skedari ekzekutiv Ă«shtĂ« ndĂ«rtuar nga tekstet burimore tĂ« ofruara.

Burimi: opennet.ru

