Kai „paprasti leidimai“ virsta akląja zona
Daugelis komandų prieigos kontrolės sąrašą mato kaip statinę konfigūraciją, „tiesiog sąrašą, kas ką gali daryti“. CI/CD kontekste tas paprastumas tampa pavojingas. Viena neteisingai sukonfigūruota prieigos kontrolės politika gali leisti neteisėtai platinti kodą, pipeline klastojimas arba artefaktų poveikis. Skirtingai nuo vykdymo laiko pažeidžiamumų, šie pavojai tyliai slypi saugykloje arba pipeline nustatymai, retai peržiūrimi ir dažnai paveldimi skirtingose aplinkose.
Tikroji problema yra ta, kad prieigos kontrolės sąrašai nekinta kartu su jūsų darbo eiga. Kūrėjai prideda naujus vartotojus, automatizavimo paskyras ar integracijas, o ACL pasensta, suteikdamas pernelyg daug privilegijų ilgai po to, kai jų prireikia.
Realaus pasaulio ACL neteisingos konfigūracijos CI/CD Pipelines
ACL problemos pipelineyra vieni labiausiai neįvertintų „DevSecOps“ silpnybių. Pažiūrėkime, kaip jos atrodo realiose situacijose.
Per platūs saugyklos leidimai
⚠️ Nesaugus pavyzdys, skirtas tik edukaciniams tikslams. Nenaudoti gamybinėje aplinkoje.
Turėdamas šiuos leidimus, bet kuri paslaugos paskyra arba kūrėjas gali modifikuoti diegimo kodą, o tai akivaizdžiai rodo prieigos kontrolės sąrašo konfigūracijos klaidą.
Saugi versija:
Pipeline Žetonų nutekėjimai
Saugi versija:
Šiuo atveju prieigos kontrolės politika buvo netinkamai sukurta: kūrimo žetonai nebuvo tinkamai apibrėžti. Nors techniškai ACL egzistavo, dėl prastos konfigūracijos jie leido per daug atskleisti duomenis.
Kaip užpuolikai išnaudoja silpnus prieigos kontrolės sąrašus programinės įrangos tiekimo grandinėje
Užpuolikai mėgsta silpnus prieigos kontrolės sąrašus, nes jie retai sukelia įspėjimus. In CI/CD, jie išnaudoja ACL spragas, kad judėtų horizontaliai, eskaluotų privilegijas arba įterptų kenkėjišką kodą.
Įprasti išnaudojimo būdai
- Paveldėti leidimai: Pasenę ACL įrašai suteikia buvusiems darbuotojams arba paslaugų paskyroms nuolatinę prieigą prie pipelines arba saugyklos.
- Privilegijų sklaida: Vienas administratoriaus leidimas bendrai naudojamame vykdytojo arba konteinerio registre taikomas visiems projektams.
- Žetono užgrobimas: Neteisingai sukonfigūruotos prieigos kontrolės politikos leidžia aplinkos kintamiesiems arba paslaptims nutekėti į žurnalus.
Pavyzdžiui, užpuolikas, kuris pažeidžia bendraautorio prieigos raktą su rašymo prieiga, gali įterpti užpakalinių durų kodą į kūrimo scenarijus. ACL techniškai „tai leido“, bet tai buvo pernelyg atlaidu, pažeidžiant mažiausių privilegijų principus.
Perėjimas nuo statinių prieigos kontrolės sąrašų: kontekstą suvokiančios prieigos kontrolės politikos
Statiniai prieigos kontrolės sąrašai yra trapūs. Šiuolaikinė „DevSecOps“ aplinka reikalauja kontekstą suvokiančių prieigos kontrolės politikų. kurie dinamiškai koreguoja teises pagal šaką, aplinką arba vartotojo vaidmenį.
Saugaus ACL kontrolinis sąrašas kūrėjams
- vykdyti mažiausia privilegija, pagal numatytuosius nustatymus nėra rašymo prieigos
- Naudokite šakos pagrindu veikiančius ACL (pvz., prieigą diegti tik iš pagrindinis or išlaisvinti)
- Prieš suteikiant prieigą, patikrinkite vartotojo ir paslaugos paskyros tapatybes
- Peržiūrėkite paveldėtas teises kiekvieną sprintą
- Registruoti visus ACL pakeitimus ir priversti administratorius naudoti 2FA
- Integruoti prieigos kontrolės politikos patvirtinimą į pipeline kodas
- Naudokite kontekstą fiksuojančias taisykles (laiką, IP, įrenginį) jautriems diegimams
Kontekstinio ACL pavyzdys
Edukacinė pastaba: Kontekstą žinantys ACL sumažina poveikį skirtingose aplinkose
Įtraukdami logiką į prieigos kontrolės sąrašą, sumažinate riziką ir išlaikote veiklos lankstumą.
Prieigos kontrolės sąrašų peržiūrų ir leidimų patvirtinimo integravimas į „DevSecOps“
Suaugęs pipelineACL turėtų būti traktuojami kaip kodas, versijos nustatomos, peržiūrimos ir patvirtinamos kaip ir bet kuris kitas artefaktas. Čia tiesiogiai taikomi „DevSecOps“ principai.
Prieigos kontrolės sąrašo peržiūros srautas
- Pre-commit patikrinimai patvirtinti YAML arba IaC failai, apibrėžiantys ACL
- Statinės analizės įrankiai ieškoti pernelyg plačių taisyklių
- Kolegų atsiliepimai užtikrinti, kad prieigos kontrolės politika atitiktų verslo tikslus
- Pipeline patvirtinimai taikyti minimalias privilegijas kūrimo metu
Pavyzdys:
Mokymo pastaba: Integruokite ACL patvirtinimą prieš sujungimą
ACL patvirtinimo įterpimas į kiekvieną pull request padeda išvengti neteisingų konfigūracijų prieš joms pasiekiant gamybą.
Automatizuotas Guardrails ir realaus laiko politikos vykdymas
Automatizavimas panaikina atotrūkį tarp statinio ir dinaminio valdymo. Prieigos kontrolės sąrašai neturėtų būti peržiūrimi tik rankiniu būdu; jie neturėtų būti automatizuoti. guardrails privalo vykdyti politiką vykdymo metu.
Vykdymo laiko vykdymo pavyzdys
„xygeni enforce“ – politikos prieigos kontrolė.yaml – etapo diegimas
Ši komanda realiuoju laiku įgyvendina apibrėžtą prieigos kontrolės politiką, blokuodama bet kokius diegimo bandymus, kurie pažeidžia taisykles. Guardrails tokie užtikrins, kad jūsų prieigos kontrolės sąrašas išliktų suderintas su saugumo lūkesčiais net ir keičiantis aplinkai.
Nesaugių prieigos kontrolės sąrašų aptikimas ir taisymas naudojant „Xygeni“
Ksigeni Code Security užtikrina nuolatinį prieigos kontrolės sąrašų matomumą įvairiose saugyklose, pipelineir diegimo sistemos.
Jis automatiškai aptinka:
- Per platūs arba paveldėti leidimai
- Našlaitės paskyros ACL apibrėžimuose
- Neatitinkančios prieigos kontrolės politikos
- Privilegijų eskalavimo keliai tarp CI/CD etapai
Pavyzdys:
xygeni skenavimas – ACL aptikimas
Naudodami automatines taisymo gaires, Ksigeni transformuoja ACL iš aklosios zonos į valdomą, audituojamą saugumo gyvavimo ciklo komponentą. Integruojasi su „GitHub“, „GitLab“, „Jenkins“ ir debesijos technologijomis. CI/CD įrankiai, užtikrinantys, kad prieigos kontrolės sąrašai būtų nuolat tikrinami ir vykdomi atsižvelgiant į kontekstą.
ACL pavertimas saugumo užtikrinimo priemone
Prieigos kontrolės sąrašas nėra tik administracinis failas; tai saugumo artefaktas, apibrėžiantis, kas gali formuoti jūsų programinę įrangą. Kare CI/CD pasaulyje ACL traktavimas kaip statines konfigūracijas yra klaida. Jie turi keistis kartu su jūsų „DevSecOps“ branda. Pritaikant dinaminės prieigos kontrolės politiką, integruojant peržiūras ir naudojant tokius įrankius kaip Xygeni Code Security, kūrimo komandos gali užkirsti kelią privilegijų piktnaudžiavimui ir apsaugoti savo duomenų vientisumą pipelines.
„Key Takeaway“
Prieigos kontrolės sąrašus traktuokite kaip kodą – su versijomis, patvirtinimus ir priverstinį vykdymą. „DevSecOps“ sistemoje ACL apibrėžia pasitikėjimo ribas. Nuolatinio patvirtinimo metu prieigos kontrolės politikos gali tapti ne tyliomis rizikomis, o aktyviais saugios automatizacijos užtikrintojais.





