Njësia 10 / 11

Menaxhimi i sigurisë dhe sekreteve: DevSecOps dhe Inteligjenca Artificiale

Fitimet:

  • Aftësia për të kuptuar DevSecOps dhe rregullat e arta të menaxhimit të sekreteve (nuk fut kodin, ruhet në kasafortë, injektohet në kohën e ekzekutimit, kthehet, më pak privilegje)
  • Aftësia për të përdorur inteligjencën artificiale për t'i dhënë përparësi rezultateve të skanimit të sigurisë (SCA, SAST, imazh, IaC, sekret) dhe kodin e auditimit për qëllime mbrojtëse
  • Duke ditur se hapi i parë në një rrjedhje sekrete është revokimi/kthimi dhe përdorimi i inteligjencës artificiale vetëm në sisteme të autorizuara, për qëllime mbrojtjeje, brenda kufijve ligjorë

Sa shpejt vendoset një sistem nuk do të thotë asgjë ditën kur ai komprometohet. Ndërsa DevOps fokusohet te shpejtësia, siguria ndonjëherë lihet deri në fund – dhe siguria e lënë deri në fund shpesh nuk vjen fare. DevSecOps është qasja që vendos sigurinë në fillim dhe në çdo hap të rrjedhës së DevOps: "zhvendosja e sigurisë majtas" - domethënë kapja e një cenueshmërie në tubacion, ndërsa kodi po shkruhet, dhe jo në prod. Për profesionistin e DevSecOps, siguria nuk është punë e një ekipi të veçantë, por është pjesë e çdo angazhimi, çdo imazhi, çdo manifestimi.

Ka dy akse kryesore në këtë njësi. E para është menaxhimi i sekreteve: gjenerimi i sigurt, ruajtja, shpërndarja dhe rrotullimi i informacionit konfidencial si fjalëkalimet, çelësat, certifikatat. E dyta është skanimi dhe forcimi i sigurisë: gjetja e dobësive në varësi, imazhe, konfigurime. Inteligjenca artificiale është një asistent i fuqishëm në të dyja - zbulon dobësitë, i jep përparësi rezultateve të skanimit, rekomandon rregullime. Por paralajmërimi më kritik vlen këtu: AI është për mbrojtje; Qasja e paautorizuar në sistemin e dikujt tjetër, skanimi i paautorizuar ose krijimi i një mjeti sulmi është i paligjshëm dhe është kufiri i rreptë i kësaj platforme.

Rregullat e arta të menaxhimit të sekreteve

  1. Sekreti nuk futet kurrë në kodin burimor. Jo Dockerfile, jo YAML, as skript, jo Git. Pasi është futur në Git, sekreti vazhdon në të kaluarën.
  2. Sekretet ruhen në një kasafortë qendrore. HashiCorp Vault, AWS Secrets Manager, Azure Key Vault, GCP Secret Manager — këto sekrete dyqanesh janë të koduara, kontrollojnë aksesin dhe mbajnë gjurmët e tyre.
  3. Injektohet në momentin e operimit. Aplikacioni e merr sekretin nga variabli i kasafortës ose mjedisit gjatë ekzekutimit, jo nga disku.
  4. Rrotullohet rregullisht. Sa më gjatë të jetë një sekret, aq më i madh është rreziku i rrjedhjes. Rrotullimi automatik është ideal.
  5. Autoriteti minimal. Vetëm shërbimi që ka nevojë mund të ketë akses në çdo sekret.
Këshillë: Kundërmasa e vetme më efektive është vendosja e një skaneri sekret (si git-secrets, gitleaks, trufflehog) në linjë: ai ndalon kryerjen nëse një sekret tentohet të kryhet aksidentalisht. Kjo ndalon rrjedhjen në burim. AI ndihmon në shkrimin e integrimit të tubacionit të këtyre shfletuesve.

Hap pas hapi: përgjigjja ndaj një rrjedhjeje sekrete

Nëse zbulohet një sekret, mos u frikësoni, rendi është i rëndësishëm:

  1. Anuloni dhe rrotullojeni menjëherë. Anuloni çelësin e rrjedhur, krijoni një të ri. Vetëm fshirja e saj nuk mjafton - ajo mbetet në të kaluarën.
  2. Vlerësoni ndikimin. Ku hynte ky çelës? A është abuzuar? Shqyrtoni regjistrat.
  3. Fikni burimin. Si ka rrjedhur? Pastro kodin, historinë; Por mbani mend: anulimi vjen përpara pastrimit.
  4. Parandaloni. Shtoni shfletuesin sekret në tubacion që të mos përsëritet.
Kujdes: Basti më i shtrenjtë është të mos ktheni një sekret të zbuluar vetëm sepse "askush nuk e pa". Një çelës i hedhur në një depo publike skanohet nga robotët brenda sekondave. Kur jeni në dyshim, rrotulloni - kostoja e rrotullimit është e ulët, kostoja e rrjedhjes është katastrofike.

Llojet e skanimeve të sigurisë

DevSecOps përdor shtresa të shumta skanimi; AI është e dobishme në interpretimin e rezultateve të secilit:

  • SCA (Analiza e Përbërjes së Softuerit): Gjen dobësitë e njohura (CVE) në varësitë me burim të hapur që përdorni.
  • SAST (Static Application Security Testing): Skanon kodin burimor për dobësi pa e ekzekutuar atë.
  • DAST (Dynamic Application Security Testing): Teston aplikacionin e ekzekutuar nga jashtë.
  • Skanimi i imazhit: Gjen dobësitë në imazhin e kontejnerit (të parëndësishme, zbulues docker).
  • Skanimi IaC: Gjen konfigurime të gabuara në Terraform/manifeste (tfsec, checkov).
Kujdes: Një skaner hedh qindra gjetje; Është e pamundur t'i rregullosh të gjitha në të njëjtën kohë. Përdorni AI për t'i dhënë përparësi gjetjeve: cilat janë vërtet të shfrytëzueshme, të cilat janë të dukshme në teori, por të paarritshme në praktikë? Por verifikoni prioritizimin përfundimtar me kontekstin tuaj.

Tabela e shtresave raster

shtresë

Çfarë skanon?

automjet mostër

kur

SCA

Dobësitë e varësisë (CVE)

Dependabot, Snyk

çdo ndërtim

SAST

Dobësitë e kodit burimor

Semgrep, CodeQL

Çdo PR

skanimi i imazhit

Dobësitë e kontejnerëve

I parëndësishëm, skaut

Pas ndërtimit

Skanimi IaC

Konfigurim i gabuar

tfsec, checkov

Terraform PR

skanim sekret

Sekretet e zbuluara

gitleaks

Çdo angazhim

tre mini kuti

Rasti 1 — 300 CVE, 12 rreziqe reale. Një skanim i imazhit raportoi 300 dobësi; Ekipi ishte i paralizuar. Jepni daljen e skanimit tek AI dhe pyesni "cilat mund të shfrytëzohen nga distanca dhe a janë të arritshme?" I dhanë prioritet. AI nënvizoi 12 gjetje reale të rrezikshme. Ekipi fillimisht i mbylli ato; Ai punësoi pjesën tjetër në bazë të planifikuar. Jepini përparësi ndaj panikut.

Rasti 2 - rrotullimi pengoi një sulm. Një zhvillues shtyu aksidentalisht një çelës cloud në një depo publike. Alarmi ra; Skuadra e anuloi dhe e ktheu çelësin në 4 minuta. Regjistrat treguan se çelësi ishte kërkuar tashmë nga një robot - por tani ishte i pavlefshëm. Kthimi i shpejtë parandaloi një fatkeqësi të mundshme faturimi dhe rrjedhje të të dhënave.

Rasti 3 - Skanimi IaC kapi një kovë të hapur. Një skanim IaC i ndihmuar nga AI kapi një kovë ruajtjeje në kodin Terraform që kishte leje "leximi publik" pa shkuar në prod. Zhvilluesi e kishte hapur atë "për testim" dhe harroi ta mbyllte. Gazsjellësi ndaloi kryerjen; hapur kurrë nuk e bëri atë të prodhojë. Kjo është pikërisht pika e rrëshqitjes majtas.

Katër shabllone të kopjueshëm

1) Jepni përparësi daljes së skanimit:

Jepini përparësi daljes së skanimit të sigurisë më poshtë. Për çdo gjetje: (1) a është vërtet i shfrytëzueshëm (i largët/i paautentikuar?), (2) a është i aksesueshëm në kontekstin tonë, (3) përpjekje për riparim, (4) prioritet i rekomanduar (kritik/i lartë/mesatar/i ulët). Theksoni 5 më urgjentet.Flisni qartë; tregoni se duhet të vërtetoj çdo prioritet me kontekstin tim. Dalja: [SCAN]

2) Dizajni sekret i menaxhimit:

Propozoni një qasje të menaxhimit të sekreteve për [APLIKIMIN/INFRStrukturën]: cili kasafortë, si të injektohen sekretet në kohën e ekzekutimit, si të automatizohet rrotullimi, si të zbatohen privilegjet minimale? Përshkruani një rrjedhë konkrete që KURRË nuk e fut sekretin në kod.

3) Kërkimi i dobësive në kod (mbrojtje):

Kontrolloni kodin tim VETË më poshtë për siguri (kam leje): a ka ndonjë injeksion, sekret të integruar, parazgjedhje të pasigurt, hyrje të pavlefshme? Jepini secilit gjetje rëndësinë dhe korrigjimin e tij. Qëllimi është mbrojtja dhe konsolidimi. Kodi: [KODI]

4) Plani sekret i reagimit ndaj rrjedhjeve:

Një [TIP SEKRET] mund të ketë depërtuar aksidentalisht në [LOCATION]. Më jepni urdhrin e ndërhyrjes hap pas hapi: çfarë duhet të bëj fillimisht (anulim/kthim), si të vlerësoni efektin, si të parandaloni përsëritjen? Shpjegoni gjithashtu pse vetëm fshirja nuk mjafton.

Prompt i dobët / Prompt i fortë

I dobët: "Si mund ta hakoj këtë sistem/të shfrytëzoj këtë dobësi?"

Kjo kërkesë është edhe joetike dhe rreptësisht jashtë kufijve të kësaj platforme. Është e paligjshme të përdoret AI për sulm.

Strong: "Autorizoni kodin e aplikacionit tim për sigurinë: gjeni sekretet e integruara, rreziqet e injektimit dhe parazgjedhjet e pasigurta, rregulloni secilën prej tyre. Qëllimi është të forcohet sistemi."

Dallimi: kërkesa e dytë është për qëllime mbrojtëse, brenda kufijve të autoritetit dhe për konsolidim. Ky është përdorimi i saktë i AI në DevSecOps.

Gabimet e zakonshme

  • Përfshirja e sekretit në kod/histori. Dobësia më e zakonshme dhe e vazhdueshme.
  • Mos kthimi i sekretit të zbuluar. "Askush nuk e ka parë" është basti më i shtrenjtë.
  • Duke i parë të gjitha gjetjet e shqyrtimit si të barabarta. Paralizimi nga prioritizimi ose mungesa e rrezikut real.
  • Duke e lënë sigurinë të zgjasë. Hendeku në prodhim është shumë herë më i shtrenjtë se hendeku në tubacion.
  • Duke anashkaluar autoritetin minimal. Një sekret/rol që ka akses në gjithçka e bën një rrjedhje të vetme një katastrofë.
  • Përpjekja për të përdorur AI për sulm. Ilegale dhe jashtë platformës.

Në përmbledhje

DevSecOps vendos sigurinë në fillim dhe në çdo hap të rrjedhës së DevOps - duke kapur dobësitë në kod dhe tubacion, jo në prod. Rregullat e arta të menaxhimit të sekreteve: sekreti nuk hyn në kod, ruhet në kasafortën qendrore, injektohet në kohën e ekzekutimit, kthehet rregullisht dhe aksesohet me privilegje minimale. Hapi i parë në një rrjedhje është gjithmonë ndërprerja/kthimi. Inteligjenca artificiale është e fuqishme në dhënien e përparësive të prodhimit të skanimit, dizajnimin e flukseve sekrete dhe inspektimin e kodit në mënyrë mbrojtëse – por përdoret vetëm në mënyrë mbrojtëse dhe brenda kufijve ligjorë në sistemet mbi të cilat keni autoritet.

Detyra e aplikimit

Merrni përsipër një projekt tuajin (për të cilin keni autoritet). (1) Kontrolloni parazgjedhjet e ngulitura sekrete dhe të pasigurta me shabllonin "Kërkimi i dobësive në kod". (2) Renditni një dalje të skanimit të sigurisë (aktuale ose mostër) përmes shabllonit të "triazhit" dhe identifikoni 3 gjetjet më urgjente. (3) Krijoni një draft të rrjedhës për projektin tuaj me shabllonin e "projektimit të menaxhimit sekret" që heq plotësisht sekretin nga kodi.

listë kontrolli

  • [ ] Kam verifikuar që nuk ka sekrete të ngulitura në kodin, imazhin dhe manifestet e mia.
  • [ ] Unë i mbaj sekretet në një kasafortë qendrore dhe i injektoj ato në kohën e ekzekutimit.
  • [ ] Unë e di se hapi i parë në një skenar rrjedhjeje është ndërprerja/kthimi.
  • [ ] I kam dhënë përparësi gjetjeve të skanimit bazuar në shfrytëzimin dhe kontekstin tim.
  • [ ] I zhvendosa skanimet e sigurisë në hapat e hershëm të tubacionit (në të majtë).
  • [ ] Unë kam përdorur vetëm AI për qëllime mbrojtëse në sistemet në të cilat kam autoritet.