Pelnas:
- Gebėjimas suprasti DevSecOps ir auksines paslapčių valdymo taisykles (neįveda kodo, laikomas saugykloje, įvedamas vykdymo metu, grąžinamas, mažiausiai privilegijų)
- Galimybė naudoti dirbtinį intelektą pirmenybę teikti saugos nuskaitymo išvestims (SCA, SAST, vaizdas, IaC, slaptas) ir audito kodui gynybos tikslais
- Žinant, kad pirmasis slapto nutekėjimo žingsnis yra atšaukimas/atšaukimas ir dirbtinio intelekto naudojimas tik įgaliotose sistemose, gynybos tikslais, laikantis įstatymų nustatytų ribų
Tai, kaip greitai sistema įdiegiama, nieko nereiškia tą dieną, kai ji pažeidžiama. Nors „DevOps“ daugiausia dėmesio skiria greičiui, saugumas kartais paliekamas iki galo, o saugumas, paliktas iki galo, dažnai visai nepasiekiamas. „DevSecOps“ yra metodas, užtikrinantis saugumą „DevOps“ srauto pradžioje ir kiekviename žingsnyje: „saugumo perkėlimas į kairę“, tai yra, pažeidžiamumas pagaunamas ruošiant kodą rašant, o ne gaminant. „DevSecOps“ profesionalui saugumas nėra atskiros komandos darbas, bet yra kiekvieno įsipareigojimo, kiekvieno įvaizdžio, kiekvieno manifesto dalis.
Šiame įrenginyje yra dvi pagrindinės ašys. Pirmasis yra paslapčių valdymas: saugus konfidencialios informacijos, tokios kaip slaptažodžiai, raktai, sertifikatai, generavimas, saugojimas, platinimas ir kaitaliojimas. Antrasis – saugumo nuskaitymas ir grūdinimas: priklausomybių, vaizdų, konfigūracijų spragų radimas. AI yra galingas asistentas abiem atvejais – jis atskleidžia pažeidžiamumą, teikia pirmenybę nuskaitymo išvestims, rekomenduoja pataisymus. Tačiau čia galioja pats svarbiausias įspėjimas: AI skirtas gynybai; Neteisėta prieiga prie kažkieno sistemos, neteisėtas nuskaitymas ar atakos įrankio kūrimas yra neteisėtas ir yra griežtas šios platformos apribojimas.
Auksinės paslapčių valdymo taisyklės
- Secret niekada nepatenka į šaltinio kodą. Ne Dockerfile, ne YAML, ne scenarijus, ne Git. Įvedus į Git, paslaptis išlieka praeityje.
- Paslaptys saugomos centriniame saugykloje. „HashiCorp Vault“, „AWS Secrets Manager“, „Azure Key Vault“, „GCP Secret Manager“ – šios saugomos paslaptys yra užšifruotos, kontroliuoja prieigą ir jas seka.
- Jis suleidžiamas operacijos metu. Programa nuskaito paslaptį iš saugyklos arba aplinkos kintamojo, kai ji veikia, o ne iš disko.
- Jis reguliariai sukasi. Kuo ilgiau paslaptis gyvuoja, tuo didesnė nutekėjimo rizika. Automatinis sukimas yra idealus.
- Minimalus autoritetas. Prie kiekvienos paslapties gali patekti tik ta paslauga, kuriai to reikia.
Patarimas: veiksmingiausia atsakomoji priemonė yra slapto skaitytuvo (pvz., git-secrets, gitleaks, triufflehog) įjungimas: jis sustabdo įsipareigojimą, jei netyčia bandoma paskelbti paslaptį. Tai sustabdo nuotėkį prie šaltinio. AI padeda sukurti šių naršyklių integravimą.
Žingsnis po žingsnio: atsakymas į slaptą nutekėjimą
Jei paslaptis nutekėjo, nepanikuokite, tvarka yra svarbi:
- Atšaukite ir nedelsdami pasukite. Neteisinkite nutekėjusio rakto, sugeneruokite naują. Vien ištrinti neužtenka – jis lieka praeityje.
- Įvertinkite poveikį. Kur šis raktas pateko? Ar juo buvo piktnaudžiaujama? Išnagrinėkite rąstus.
- Išjunkite šaltinį. Kaip nutekėjo? Išvalyti kodą, istoriją; Tačiau atminkite: atšaukimas atliekamas prieš išvalant.
- Užkirsti kelią. Pridėkite slaptą naršyklę prie dujotiekio, kad ji nesikartotų.
Dėmesio: Brangiausias statymas – negrąžinti nutekintos paslapties vien todėl, kad „niekas jos nematė“. Į viešą saugyklą įmestą raktą robotai nuskaito per kelias sekundes. Jei kyla abejonių, sukite – sukimosi kaina nedidelė, o nuotėkio kaina katastrofiška.
Apsaugos nuskaitymo tipai
„DevSecOps“ naudoja kelis nuskaitymo sluoksnius; AI padeda interpretuoti kiekvieno išvestį:
- SCA (programinės įrangos sudėties analizė): randa žinomus pažeidžiamumus (CVE) jūsų naudojamose atvirojo kodo priklausomybėse.
- SAST (Static Application Security Testing): nuskaito šaltinio kodą, ar nėra pažeidžiamumų, jo nepaleidžiant.
- DAST (dinaminis programų saugos testavimas): išoriškai išbando veikiančią programą.
- Vaizdo nuskaitymas: randa konteinerio vaizdo pažeidžiamumą (trivy, docker scout).
- IaC nuskaitymas: randa netinkamas „Terraform“ / manifestų konfigūracijas (tfsec, checkov).
Atsargiai: skaitytuvas išmeta šimtus radinių; Visų ištaisyti vienu metu neįmanoma. Naudokite dirbtinį intelektą, kad nustatytumėte pirmenybę išvadoms: kurios iš tikrųjų yra naudojamos, kurios teoriškai akivaizdžios, bet praktiškai neprieinamos? Tačiau galutinį prioritetų nustatymą patikrinkite pagal savo kontekstą.
Rastrinių sluoksnių lentelė
sluoksnis
Ką nuskaito?
transporto priemonės pavyzdys
kada
SCA
Priklausomybės pažeidžiamumas (CVE)
Dependabot, Snyk
kiekvienas pastatymas
SAST
Šaltinio kodo pažeidžiamumas
Semgrep, CodeQL
Kiekvienas PR
vaizdo nuskaitymas
Konteinerio pažeidžiamumas
Trivy, skautas
Po pastatymo
IaC nuskaitymas
Neteisinga konfigūracija
tfsec, checkov
Terraform PR
slaptas nuskaitymas
Nutekėjusios paslaptys
gitleaks
Kiekvienas įsipareigojimas
trys mini dėklai
1 atvejis – 300 CVE, 12 realių pavojų. Vaizdo nuskaitymas pranešė apie 300 pažeidžiamumų; Komanda buvo paralyžiuota. Suteikite nuskaitymo išvestį dirbtiniam intelektui ir paklauskite „kuriuos iš jų galima naudoti nuotoliniu būdu ir ar jie pasiekiami? Jie suteikė jam pirmenybę. AI pabrėžė 12 tikrai rizikingų išvadų. Komanda pirmiausia juos uždarė; Likusius jis pasamdė planingai. Suteikite pirmenybę panikai.
2 atvejis – sukimasis sužlugdė ataką. Kūrėjas netyčia įstūmė debesies raktą į viešąją saugyklą. Suveikė žadintuvas; Komanda atšaukė ir raktą grąžino per 4 minutes. Žurnalai parodė, kad raktas jau buvo užklaustas iš roboto, bet dabar jis negalioja. Greitas atsiskaitymas užkirto kelią galimai atsiskaitymo nelaimei ir duomenų nutekėjimui.
3 atvejis – IaC nuskaitymas užfiksavo atvirą kibirą. AI padedamas IaC nuskaitymas užfiksavo Terraform kodo saugyklos kibirą, turintį „viešo skaitymo“ leidimą, neperkant. Kūrėjas jį atidarė „bandymui“ ir pamiršo uždaryti. Dujotiekis sustabdė įsipareigojimą; open niekada nepavyko gaminti. Būtent tai ir yra braukti kairėn.
Keturi kopijuojami šablonai
1) Suteikite pirmenybę nuskaitymo išvestiei:
Pirmenybę teikite toliau pateiktai saugos nuskaitymo išvestiei. Kiekvienam atradimui: (1) ar jis tikrai naudojamas (nuotolinis / neautentifikuotas?), (2) ar jis pasiekiamas mūsų kontekste, (3) ištaisymo pastangos, (4) rekomenduojamas prioritetas (kritinis / didelis / vidutinis / žemas). Pažymėkite 5 skubiausius.Kalbėkite aiškiai; nurodykite, kad turiu patvirtinti kiekvieną prioritetą su savo kontekstu. Išvestis: [SCAN]
2) Slaptas valdymo dizainas:
Pasiūlykite paslapčių valdymo metodą [APPLICATION/INFRstructure]: kuris saugykla, kaip įterpti paslaptis vykdymo metu, kaip automatizuoti sukimąsi, kaip užtikrinti minimalias privilegijas? Apibūdinkite konkretų srautą, kuris NIEKADA neįtraukia paslapties į kodą.
3) Kode pažeidžiamumų paieška (gynyba):
Patikrinkite toliau pateiktą SAVO kodą dėl saugumo (turiu leidimą): ar yra kokių nors injekcijų, įterptųjų paslapčių, nesaugus numatytasis nustatymas, nepatvirtinta įvestis? Kiekvienam radiniui suteikite savo svarbą ir pataisymą. Tikslas – gynyba ir konsolidacija. Kodas: [CODE]
4) Slaptas atsako į nuotėkį planas:
[LOCATION] galėjo netyčia įsiskverbti [SECRET TYPE]. Pateikite man žingsnis po žingsnio intervencijos tvarką: ką daryti pirmiausia (atšaukti/grąžinti), kaip įvertinti poveikį, kaip išvengti pasikartojimo? Taip pat paaiškinkite, kodėl vien ištrinti neužtenka.
Silpnas raginimas / Stiprus raginimas
Silpnas: "Kaip nulaužti šią sistemą / išnaudoti šį pažeidžiamumą?"
Šis prašymas yra neetiškas ir griežtai už šios platformos ribų. AI naudoti atakai yra neteisėta.
Stiprus: "Saugumo sumetimais suteikite savo programos kodą autorizacijai: suraskite įterptas paslaptis, įpurškimo riziką ir nesaugius numatytuosius nustatymus, pataisykite kiekvieną iš jų. Tikslas yra sustiprinti sistemą."
Skirtumas: antrasis prašymas skirtas gynybai, įgaliojimų ribose ir konsolidavimui. Tai yra teisingas AI naudojimas „DevSecOps“.
Dažnos klaidos
- Paslapties įterpimas į kodą / istoriją. Dažniausias ir nuolatinis pažeidžiamumas.
- Negrąžina nutekintos paslapties. „Niekas to nematė“ yra pats brangiausias statymas.
- Matyti, kad visi atrankos rezultatai yra vienodi. Būti paralyžiuotas dėl prioritetų nustatymo arba nepastebimas realios rizikos.
- Palikti saugumą visam laikui. Gamybos tarpas yra daug kartų brangesnis nei dujotiekio tarpas.
- Apeinant minimalius įgaliojimus. Paslaptis / vaidmuo, turintis prieigą prie visko, vieną nutekėjimą paverčia katastrofa.
- Bandoma naudoti AI atakai. Neteisėta ir ne platforma.
Apibendrinant
„DevSecOps“ užtikrina saugumą „DevOps“ srauto pradžioje ir kiekviename žingsnyje – užfiksuoja kodo ir konvejerio, o ne gamybos, spragas. Auksinės paslapčių valdymo taisyklės: paslaptis neįveda kodo, laikoma centrinėje saugykloje, įvedama vykdymo metu, reguliariai grąžinama ir pasiekiama su minimaliomis privilegijomis. Pirmasis nutekėjimo žingsnis visada yra nutraukimas / grąžinimas. Dirbtinis intelektas yra galingas nustatant pirmenybę nuskaitymo išvestims, kuriant slaptus srautus ir gynybiškai tikrinant kodą, tačiau jis naudojamas tik gynybai ir neviršijant įstatymų nustatytų ribų sistemose, kurias turite valdyti.
Taikymo užduotis
Imkitės savo projekto (kuriam turite įgaliojimus). (1) Patikrinti įterptuosius slaptus ir nesaugius numatytuosius nustatymus naudodami šabloną „Ieškoma pažeidžiamumų kode“. (2) Surūšiuokite saugos nuskaitymo išvestį (faktinę arba pavyzdį) naudodami „triage“ šabloną ir nustatykite 3 skubiausius rezultatus. (3) Sukurkite savo projekto srauto juodraštį naudodami „slapto valdymo dizaino“ šabloną, kuris visiškai pašalina paslaptį iš kodo.
kontrolinis sąrašas
- [ ] Patikrinau, kad mano kode, vaizde ir manifestuose nėra įterptų paslapčių.
- [ ] Paslaptis laikau centriniame saugykloje ir suleidžiu jas vykdymo metu.
- [ ] Žinau, kad pirmasis nutekėjimo scenarijaus žingsnis yra nutraukimas / grąžinimas.
- [ ] Nuskaitymo išvadoms teikiau pirmenybę, atsižvelgdamas į panaudojamumą ir savo kontekstą.
- [ ] Saugos nuskaitymus perkėliau į pirmuosius dujotiekio etapus (kairėje).
- [ ] AI naudojau tik gynybos tikslais sistemose, kuriose turiu įgaliojimus.