CICD-PipelineVulnerabilitajiet-s

A Deep Dive fi CI/CD PipelineVulnerabbiltajiet (IV): Protezzjoni kontra l-Avvelenament tal-Artefatti permezz ta' Attestazzjonijiet tas-Softwer

Fil-post preċedenti tagħna dwar CI/CD Pipelines, ahna rajna kif tiħakja CI/CD xenarju li preżumibbilment kien protett.

Ejjew niftakru l-punt tagħna fil-post preċedenti: bdejna b'xi wħud pipeline li kien vulnerabbli għal Avvelenat Indirett Pipeline Eżekuzzjoni (I-PPE) u, biex nirranġawha, iddeċidejna li naqsmu l- pipeline f'żewġ:

  • L-1 pipeline (Build CI), sikur għal D-PPE u I-PPE, jiċċekkja l-kodiċi PR, jagħmel il-build, u jiġġenera artefatt
  • It-2 pipeline (Test CI), ukoll sikur għal D-PPE u I-PPE jiċċekkja l-kodiċi Bażi (biex jevita modifika tal-iskrittura tax-shell) u jesegwixxi l-iskritturi oriġinali kontra l-artefatt. 
  • Biex tissinkronizza t-Test CI pipeline biex jaħdem WARA l-Build CI pipeline, użajna tħaddim_tal-fluss tax-xogħol grillu. 

Semmejna dan bħala Xenarju #3.

CICD-Sigurtà

Għalkemm, kif semmejna f'dik il-kariga, hemm soluzzjonijiet oħra, iddeċidejna li nimplimentaw din is-"soluzzjoni" għal raġunijiet pedagoġiċi, sabiex inkunu nistgħu nidħlu fil-fond fil-vulnerabbiltajiet ta' CI/CD pipelines.

Wara, rajna kif nistgħu nindirizzaw dan ix-xenarju billi avvelenament tal-artefattDan huwa dak li nsejħu Avvelenament minn Artefatti, jiġifieri l-abbiltà li timmodifika (tħakkja) l- pipeline loġika billi timmodifika a pipeline artifatt.

X'inhi l-problema b'dan l-approċċ? Rajna li l-problema tinqala' meta kwalunkwe utent "joħloq" verżjoni ġdida pipeline. 

Jekk utent jiftaħ PR li fiha dokument ġdid pipeline, GitHub se jesegwixxi dak pipeline  (minħabba xi kundizzjonijiet, kif rajna fil-kariga).

L-utent imbagħad ikun jista' joħloq wieħed ġdid pipeline bl-istess isem bħal Build CI!! Iva, huwa sorprendenti, imma GitHub jippermettilek toħloq tnejn pipelines bl-istess isem!!

Meta l-utent jiftaħ PR b'dawn il-bidliet, il-“ġdid” pipeline se jiġi eżegwit (jtella' artifatt avvelenat) u l-Implimentazzjoni tas-CI pipeline se jiġi eżegwit wara dan, u dan jirriżulta fl-iskrittura "modifikata" tax-shell li tissostitwixxi l-iskrittura "oriġinali" tax-shell li tinsab fil- pipeline spazju tax-xogħol. Għalhekk, din is-“soluzzjoni” ma tevitax il-vulnerabbiltà tal-I-PPE (kif nistgħu naraw hawn taħt)

CICD-Pipelines

X'inhuma l-problemi? Tal-anqas, hemm ftit kwistjonijiet:

  1. L-ewwel, Kif tkun ċert li l-proċess tal-bini ma ġiex imfixkel? F'dan ix-xenarju, l-utent malizzjuż seta' jimmodifika l-proċess tal-bini maħsub billi juża tiegħu pipeline biex toħloq artefatt avvelenat.
  2. It-tieni nett, Kif nistgħu nivvalutaw il-provenjenza ta' artefatt?

Dawn il-mistoqsijiet jitfgħuna f’dirgħajn il- Attestazzjonijiet tas-Softwer dominju!!

Attestazzjonijiet tas-Softwer

An attestazzjoni hija biċċa ta ' data li jirrappreżenta prova ta' avvenimentFid-dinja reali, ġeneralment insejħu dawn ċertifikazzjonijiet.

Pereżempju, meta laboratorju jittestja d-demm tiegħek, id-dejta dwar it-test tiġi rreġistrata u ċċertifikata. Ir-riżultati tat-test tad-demm huma verifikabbli u, traċċabbli.

Attestazzjonijiet_tal-Katina_tal-Provvista tas-Softwer

Aktar qrib id-dominju tal-IT tagħna, tista' taħseb x'tkun traduzzjoni ta' dan il-proċess għal, pereżempju, proċess ta' kumpilazzjoni.

Attestazzjonijiet_ta'_Softwer

Informazzjoni dwar l-ambjent u l-għodod tas-server tal-kumpilazzjoni, il-materjali (il-kodiċi tas-sors), u l-prodotti/artefatti (il-kodiċi binarju) tkun parti minn tali attestazzjoni.

Ovvjament, l-attestazzjoni trid tiġi ġġenerata minn attestur awtorizzat (awtentikat u mhux repudibbli) biex tipprovdi kredibilità. 

Probabbilment, xi wħud minnkom jistgħu jkunu qed jaħsbu .. u x'inhu l- differenza bejn firem u attestazzjonijiet?

Firem u Attestazzjonijiet tal- Kodiċi

F'livell għoli, a firma tinħoloq bl-użu ta' par ta' ċwievet u artefatt. Il-par ta' ċwievet jikkonsisti minn ċavetta pubblika u ċavetta privata. 

Firem tal-Kodiċi

L-utent jiffirma artefatt bl-użu taċ-ċavetta privata, u oħrajn imbagħad jistgħu jivverifikaw il-firma bl-użu taċ-ċavetta pubblika. Iċ-ċavetta privata trid tinżamm sigrieta, iżda ċ-ċavetta pubblika hija mqassma b'mod wiesa'.

Il-firem jistgħu jintużaw biex jipprova li d-detentur taċ-ċavetta privata uża ċ-ċavetta privata biex jiffirma l-artefatt

Firem ma tipprovax 

  • L-utent intenzjoni biex jiffirmaw l-artefatt (jistgħu jkunu ġew imqarrqa), jew 
  • L-intenzjoni tal-utent li jagħmel xi ħaġa talba speċifika dwar l-artefatt 

bil Attestazzjonijiet, minflok ma jiffirmaw artefatt direttament, l-utenti joħolqu xi tip ta' dokument Li jaqbad l-intenzjoni tagħhom wara l-iffirmar tal-artefatt u kwalunkwe talbiet speċifiċi qed isir bħala parti minn din il-firma.

Qafas ta' Attestazzjoni In-toto

L-aktar qafas komuni huwa l- Qafas ta' Attestazzjoni in-toto

  • jiddefinixxi standard format għall-attestazzjonijiet li jorbtu s-suġġetti, l-artefatti li qed jiġu deskritti, ma' metadata awtentikata dwar l-artefatt 
  • jipprovdi sett ta' predikati predefiniti għall-komunikazzjoni ta' metadata awtentikata fil-ktajjen kollha tal-provvista tas-softwer

Ejja nidħlu f'xi dettall dwar il-format tal-attestazzjoni.

An Attestazzjoni hija dokument iffirmat diġitalment li fih Dikjarazzjonijiet.

il Dikjarazzjoni huwa s-saff tan-nofs tal-attestazzjoni, li jorbotha ma' parti partikolari suġġett u li jidentifika b'mod ċar it-tipi ta' Predikat:

  • suġġett: L- referenza kriptografikament sigura għall-artefatt (ġeneralment permezz ta' hash), u
  • Predikatisett ta' speċifiċi pretensjonijiet Informazzjoni dwar dak l-artefatt tissejjaħ Dikjarazzjoni. Dawn l-istqarrijiet jistgħu jintużaw biex jesprimu (u aktar tard jippruvaw) kwalunkwe ħaġa li tista' taħseb fiha! Jistgħu jirrappreżentaw approvazzjoni manwali, provenjenza ta' artefatt, riżultati ta' testijiet awtomatizzati, traċċa tal-verifika, jew aktar! 

Meta din id-Dikjarazzjoni tkun iffirmata b'mod kriptografiku, imbagħad tissejjaħ Attestazzjoni

CI/CD_Xenarju_ta'_Sigurtà_3

B'dan il-mod, bħala eżempju, Alice toħloq Dikjarazzjoni dwar artifatt u tiffirmaha bl-użu taċ-ċavetta privata tagħha, u b'hekk toħloq Attestazzjoni.

  • Bob jista' mbagħad ivverifika l-firma f'dik l-Attestazzjoni, li tippermettilu li tafda l-istqarrijiet ġewwa. 

Bob jista' mbagħad juża dawk it-talbiet biex tiddeċiedi jekk għandux jiġi permess jew le li dan l-artefatt jintuża.

Attestazzjonijiet_tas-Softwer_Gr

L-Attestazzjonijiet jistgħu jgħinu biex isolvu l-Avvelenament tal-Artefatti?

Wara din l-introduzzjoni għall-Attestazzjonijiet, ejja nerġgħu lura għall-problema tagħna. Kif jistgħu l-attestazzjonijiet jgħinuna nsolvu l-problema tagħna, jiġifieri nevitaw l-avvelenament mill-artefatti?

L-utent malizzjuż irnexxielu joħloq artefatt billi jevita l-mekkaniżmu "uffiċjali", jiġifieri billi juża l-informazzjoni tiegħu/tagħha pipeline biex tiġġenera l-artefatt. 

Ikun tal-għaġeb kieku nistgħu nippruvaw li l-artefatti li qed jitniżżlu nbnew bl-uffiċjali pipelines. Dan huwa biss eżempju wieħed ta’ dak li nistgħu nsejħu “Punti ta’ tbagħbis”, iżda jista’ jkun hemm ħafna oħrajn.

SSCSPunti ta' Tbagħbis

Kif tistgħu taraw fl-istampa ta’ hawn fuq, il-punti ta’ tbagħbis huma multipli. B’dan il-mod, il-konsumatur pipeline (Test CI fl-eżempju tagħna) irid jivvaluta l- l-integrità tal-proċess tal-bini kif ukoll il- l-integrità tal-artefatt innifsu.

Fl-eżempju tagħna, l-artefatt avvelenat inħoloq billi ġie introdott artefatt (avvelenat) ġdid. pipeline li jbagħbas il-proċess tal-bini. Iżda l-utent malizzjuż seta' kien kapaċi li:

  • timmodifika l-kodiċi wara li tkun ġiet iċċekkjata mill- SCM biex tiġġenera binarju malizzjuż
  • tissostitwixxi l-binarju t-tajjeb prodott mill-kumpilazzjoni bi kwalunkwe binarju malizzjuż ieħor
  • tikkomprometti r-Reġistru tal-Artefatti u ttella' artefatt avvelenat mibni b'xi mod ieħor
  • eċċ.

 Kif tistgħu taraw, jista' jkun hemm diversi punti ta' "tbagħbis".

X'inhu importanti hawnhekk? Ovvjament li nipproteġu dawk il-punti kollha ta' "tbagħbis". Imma, fl-aħħar mill-aħħar, l-aktar importanti hu li l-“konsumatur” tal-artefatt jista’ jivvaluta l-integrità tal-artefatt, u jiddeċiedi jekk jipproċedix bih jew le.

Nistgħu tivvaluta l-integrità ta' artefatt b'żewġ modi. 

Wieħed huwa billi tivvaluta l- provenjenza tal-artefatt.

Billi tiġġenera Attestazzjoni tal-Provenjenza, nipprovdu metadata utli (awtentikata kif suppost u mhux ripudjata) dwar l-artefatt. Fl-eżempji li ġejjin, se nużaw MELĦ Xygeni (Software Attestations Layer for Trust), il-komponent għall-ġenerazzjoni, ir-reġistrazzjoni u l-verifika tal-attestazzjonijiet tas-softwer.

Bini_li_ma_jitbagħbux

Fil-kodiċi ta' hawn fuq, tista' tara li hemm pass li jibni l-fajl tal-gwerra u t-tieni pass li jiġġenera l- Attestazzjoni tal-ProvenjenzaBiex tagħmel dan, l- pipeline juża ċ-ċavetta privata u jinkludi wkoll iċ-ċavetta pubblika fl-attestazzjoni. 

Wara l-kwinti, Xygeni's melħ Il-kmand jaħżen l-attestazzjoni f' ktieb (magħruf ukoll bħala reġistru tal-attestazzjoni, rekord fil-każ tagħna imma tista' tuża kwalunkwe oħra). Għamel dan, il-konsumatur pipeline jista' jinkludi Xygeni's Magna ta' Verifika biex tivverifika l-provenjenza tal-artefatt u tivvaluta l-integrità tal-artefatt.

Il-proċess ta' verifika jivvaluta:

  • il L-artefatt sha256sum huwa validu (jiġifieri hemm attestazzjoni dwar dak is-“suġġett”), u
  • il l-attestazzjoni hija awtentikata kif suppost (ġie ġġenerat bl-użu taċ-ċavetta privata adegwata) 

Dan il-proċess ta' verifika jista' mbagħad jivvaluta li kemm l-artefatt kif ukoll l-attestazzjoni huma validi.

Imma, kif tiftakru, fil-każ tagħna, l-artefatt ġie ġġenerat minn xi ħadd "malizzjuż" pipeline (jiġifieri mhux l-oriġinali minn modifikat pipeline). Imbagħad irridu nibdew u nivverifikaw aspett ieħor: li l-artefatt ġie ġġenerat mill-"oriġinali" pipeline, mhux xi ieħor. 

Biex tagħmel dan, inkludi biss linja sempliċi biex tivverifika dik il-kundizzjoni, pereżempju:

Din il-verifika addizzjonali tfalli jekk l-artefatt ma jkunx ġie ġġenerat mis-“safe” tagħna. pipeline.

Jekk l-artefatt ġie ġġenerat mill-oriġinali tagħna pipeline (cicd_top10_3_salt/.github/workflows/build.yml), il-kmand grep jirnexxi, inkella jfalli, u jkisser il- pipeline u l-abort ta' kwalunkwe pass ieħor.

Il-“bennej” pipeline huwa biss punt wieħed ta' tbagħbis li għandu jiġi vverifikat iżda, kif imsemmi qabel, hemm xi punti oħra ta' tbagħbis li għandna niċċekkjaw.

Per eżempju, Xi ngħidu jekk il-kodiċi tas-sors ikun ġie mbagħbas wara l-checkout tar-repo u qabel il-kmand tal-bini? F'dan il-każ, il-kodiċi li għandu jinbena mhux l-istess bħal dak maħżun fil- SCM. 

Li tivverifika dan il-punt ta' tbagħbis huwa faċli daqs li tiċċekkja l-hashes tal-materjal f'kull pass.

Konklużjonijiet

Fil-qosor, a Attestazzjoni tas-Softwer hija asserzjoni magħmula dwar biċċa softwer, jiġifieri dikjarazzjoni awtentikata (metadata) dwar artefatt tas-softwer jew ġabra ta' artefatti tas-softwer.

L-attestazzjonijiet tas-softwer huma ġeneralizzazzjoni tal-iffirmar tal-kodiċi/artefatt mhux ipproċessat. L-attestazzjoni hija dokument iffirmat (f'format partikolari, tipikament ibbażat fuq JSON) li jassoċja l-metadata ma' artefatt. Huma jirrappreżentaw evidenza li torbot l-inputs (materjali) u l-outputs (artefatti prodotti) f'kull pass tal-bini.

L-attestazzjonijiet jipprovdu rekord verifikabbli tal-passi li saru għall-bini tal-artefatti tas-softwer finali, inklużi materjali ta' input għal kull pass u l-kmandi tal-bini li tħaddmu.

Bħala konklużjoni, l-Attestazzjonijiet tas-Softwer huma mekkaniżmu tajjeb ħafna biex jiġu vverifikati ħafna aspetti differenti tal-integrità tal-proċess tal-bini tagħna. 

Spiċċajt is-serje? Tinkwetax! Ħossok liberu li terġa' lura għal 'Avvelenat Pipeline Eżekuzzjoni (PPE)' jew kwalunkwe post ieħor li jerġa' jqajjem l-interess tiegħek!

Ibqgħu magħna, se nidħlu fil-fond fl-attestazzjonijiet tas-softwer u build security f'aktar postijiet tal-blog. 

Avvelenat Pipeline Eżekuzzjoni (PPE)

A Deep Dive fi CI/CD PipelineVulnerabilitajiet (I)

Avvelenat Indirett Pipeline Eżekuzzjoni (I-PPE)

A Deep Dive fi CI/CD PipelineVulnerabilitajiet (II)

Avvelenament minn Artefatti u Injezzjoni ta' Kodiċi

A Deep Dive fi CI/CD PipelineVulnerabilitajiet (III)
sca-tools-software-composition-analysis-tools
Prijoritizza, irranġa, u assigura r-riskji tas-softwer tiegħek
Ikseb il-Kont B'Xejn tiegħek.
Mhix meħtieġa karta ta 'kreditu.

Assigura l-Iżvilupp u l-Kunsinna tas-Softwer tiegħek

bis-Suite tal-Prodotti Xygeni