Ieguvumi:
- Spēja izprast DevSecOps un noslēpumu pārvaldības zelta likumus (neievada kodu, tiek glabāts glabātavā, tiek ievadīts izpildes laikā, tiek atgriezts, vismazākās privilēģijas)
- Spēja izmantot mākslīgo intelektu, lai aizsardzības nolūkos piešķirtu prioritāti drošības skenēšanas izvadēm (SCA, SAST, attēlam, IaC, slepenajam) un audita kodam.
- Zinot, ka pirmais solis slepenā nopludināšanā ir atsaukšana/atgriešana un mākslīgā intelekta izmantošana tikai autorizētās sistēmās, aizsardzības nolūkos, likumīgās robežās
Cik ātri sistēma tiek izvietota, neko nenozīmē dienā, kad tā tiek apdraudēta. Lai gan DevOps koncentrējas uz ātrumu, drošība dažkārt tiek atstāta līdz galam — un līdz galam atstāta drošība bieži vien netiek nodrošināta. DevSecOps ir pieeja, kas nodrošina drošību DevOps plūsmas sākumā un katrā solī: "drošības maiņa pa kreisi" — tas ir, ievainojamības konstatēšana konveijerā koda rakstīšanas laikā, nevis prod. DevSecOps profesionālim drošība nav atsevišķas komandas darbs, bet tā ir daļa no katras saistības, katra attēla, katra manifesta.
Šajā vienībā ir divas galvenās asis. Pirmā ir noslēpumu pārvaldība: droša konfidenciālas informācijas, piemēram, paroļu, atslēgu, sertifikātu, ģenerēšana, glabāšana, izplatīšana un rotācija. Otrais ir drošības skenēšana un nostiprināšana: ievainojamību atrašana atkarībās, attēlos, konfigurācijās. AI ir spēcīgs palīgs abos gadījumos — tas atklāj ievainojamības, piešķir prioritāti skenēšanas rezultātiem, iesaka labojumus. Bet šeit ir spēkā vissvarīgākais brīdinājums: AI ir paredzēts aizsardzībai; Neatļauta piekļuve kāda cita sistēmai, neatļauta skenēšana vai uzbrukuma rīka izveide ir nelikumīga un ir šīs platformas stingrais ierobežojums.
Noslēpumu pārvaldības zelta likumi
- Secret nekad nenokļūst avota kodā. Ne Dockerfile, ne YAML, ne skripts, ne Git. Pēc ievadīšanas Git noslēpums paliek pagātnē.
- Noslēpumi tiek glabāti centrālajā glabātavā. HashiCorp Vault, AWS Secrets Manager, Azure Key Vault, GCP Secret Manager — šie noslēpumi tiek glabāti šifrēti, tie kontrolē piekļuvi un seko tiem līdzi.
- To injicē operācijas laikā. Lietojumprogramma darbības laikā izgūst noslēpumu no glabātuves vai vides mainīgā, nevis no diska.
- Tas regulāri griežas. Jo ilgāk noslēpums kalpo, jo lielāks ir noplūdes risks. Automātiskā griešana ir ideāla.
- Minimāla autoritāte. Katram noslēpumam var piekļūt tikai tas pakalpojums, kuram tas ir nepieciešams.
Padoms. Visefektīvākais pretpasākums ir slepenā skenera (piemēram, git-secrets, gitleaks, triffelehog) ievietošana konveijerā: tas aptur apņemšanos, ja nejauši tiek mēģināts izdarīt noslēpumu. Tas aptur noplūdi pie avota. AI palīdz rakstīt šo pārlūkprogrammu konveijera integrāciju.
Soli pa solim: reaģēt uz slepenu noplūdi
Ja noslēpums ir nopludināts, nekrītiet panikā, secība ir svarīga:
- Atcelt un nekavējoties pagriezt. Nederīgu noplūdušo atslēgu, ģenerējiet jaunu. Ar tā dzēšanu vien nepietiek — tas paliek pagātnē.
- Novērtējiet ietekmi. Kur šī atslēga piekļuva? Vai tas ir ļaunprātīgi izmantots? Pārbaudi baļķus.
- Izslēdziet avotu. Kā tas noplūda? Notīrīt kodu, vēsturi; Bet atcerieties: atcelšana notiek pirms dzēšanas.
- Novērst. Pievienojiet konveijeram slepeno pārlūkprogrammu, lai tā neatkārtotos.
Uzmanību: visdārgākā likme ir neatdot nopludinātu noslēpumu tikai tāpēc, ka "neviens to neredzēja". Publiskā repozitorijā nomesto atslēgu roboti pārbauda dažu sekunžu laikā. Ja rodas šaubas, pagrieziet — rotācijas izmaksas ir zemas, noplūdes izmaksas ir katastrofālas.
Drošības skenēšanas veidi
DevSecOps izmanto vairākus skenēšanas slāņus; AI palīdz interpretēt katra izvadi:
- SCA (programmatūras kompozīcijas analīze): atrod zināmās ievainojamības (CVE) jūsu izmantotajās atvērtā pirmkoda atkarībās.
- SAST (Static Application Security Testing): skenē avota kodu, lai atrastu ievainojamības, to nepalaižot.
- DAST (Dynamic Application Security Testing): pārbauda darbojošos lietojumprogrammu ārēji.
- Attēlu skenēšana: atrod ievainojamības konteinera attēlā (trivy, Docker Scout).
- IaC skenēšana: atrod nepareizas konfigurācijas programmā Terraform/manifests (tfsec, checkov).
Uzmanību: skeneris izmet simtiem atradumu; Tos visus nav iespējams salabot vienlaikus. Izmantojiet AI, lai noteiktu prioritāti atklājumiem: kuri ir patiesi izmantojami, kuri ir acīmredzami teorētiski, bet nepieejami praksē? Bet pārbaudiet galīgo prioritāti, izmantojot savu kontekstu.
Rastra slāņu tabula
slānis
Ko tas skenē?
transportlīdzekļa paraugs
kad
SCA
Atkarības ievainojamības (CVE)
Dependabot, Snyk
katra konstrukcija
SAST
Avota koda ievainojamības
Semgrep, CodeQL
Katrs PR
attēlu skenēšana
Konteineru ievainojamības
Trivi, skauts
Pēc uzbūvēšanas
IaC skenēšana
Nepareiza konfigurācija
tfsec, checkov
Terraform PR
slepenā skenēšana
Nopludināti noslēpumi
gitleaks
Katra apņemšanās
trīs mini futrāļi
1. gadījums — 300 CVE, 12 reāli riski. Attēlu skenēšana ziņoja par 300 ievainojamībām; Komanda bija paralizēta. Nododiet skenēšanas izvadi AI un jautājiet "kurus var izmantot attālināti un vai tie ir sasniedzami?" Viņi to izvirzīja par prioritāti. AI uzsvēra 12 reālus riskantus atklājumus. Komanda vispirms tos izslēdza; Pārējos viņš nolīga pēc plāna. Dodiet priekšroku panikai.
2. gadījums — rotācija izjauca uzbrukumu. Izstrādātājs nejauši nospieda mākoņa atslēgu publiskai krātuvei. Modinātājs atskanēja; Komanda atcēla un atdeva atslēgu 4 minūšu laikā. Žurnāli liecināja, ka atslēga jau ir vaicāta no robotprogrammatūras, taču tagad tā bija nederīga. Ātrais risinājums novērsa iespējamu norēķinu katastrofu un datu noplūdi.
3. gadījums — IaC skenēšana notvēra atvērtu spaini. Ar mākslīgā intelekta palīdzību veikta IaC skenēšana uztvēra Terraform koda krātuves kausu, kam ir "publiskas lasīšanas" atļauja, neveicot prod. Izstrādātājs to bija atvēris "pārbaudei" un aizmirsa to aizvērt. Cauruļvads apturēja apņemšanos; atvērts nekad nav izdevies prod. Tieši tā ir vilkt pa kreisi.
Četras kopējamas veidnes
1) Dodiet priekšroku skenēšanas izvadei:
Piešķiriet prioritāti tālāk norādītajai drošības skenēšanas izvadei. Katram atradumam: (1) vai tas ir patiesi izmantojams (attālināts/neautentificēts?), (2) vai tas ir pieejams mūsu kontekstā, (3) sanācijas darbs, (4) ieteicamā prioritāte (kritiska/augsta/vidēja/zema). Izceliet 5 vissteidzamākos. Runājiet skaidri; norāda, ka man ir jāapstiprina katra prioritāte ar savu kontekstu. Izvade: [SCAN]
2) Slepenās pārvaldības dizains:
Piedāvājiet noslēpumu pārvaldības pieeju [LIETOTNES/INFRSTRUKCIJA]: kura glabātuve, kā ievadīt noslēpumus izpildlaikā, kā automatizēt rotāciju, kā ieviest minimālas privilēģijas? Aprakstiet konkrētu plūsmu, kas NEKAD neiegulst noslēpumu kodā.
3) koda ievainojamību meklēšana (aizsardzība):
Tālāk pārbaudiet SAVU kodu, lai nodrošinātu drošību (man ir atļauja): vai ir kāda injekcija, iegults noslēpums, nedrošs noklusējums, nevalidēta ievade? Dodiet katram atradumam savu nozīmi un labojumus. Mērķis ir aizsardzība un konsolidācija. Kods: [CODE]
4) Slepens noplūdes reaģēšanas plāns:
Iespējams, [LOCATION] nejauši ir iefiltrējies [SECRET TYPE]. Dodiet man soli pa solim iejaukšanās secību: kas man jādara vispirms (atcelšana/atgriešana), kā novērtēt efektu, kā novērst atkārtošanos? Paskaidrojiet arī, kāpēc ar dzēšanu vien nepietiek.
Vāja uzvedne / spēcīga uzvedne
Vāji: "Kā uzlauzt šo sistēmu/izmantot šo ievainojamību?"
Šis pieprasījums ir gan neētisks, gan strikti ārpus šīs platformas robežām. AI izmantošana uzbrukumam ir nelikumīga.
Spēcīgs: "Autorizēt savas lietojumprogrammas kodu drošības nolūkos: atrodiet iegultos noslēpumus, injekcijas riskus un nedrošos noklusējuma iestatījumus, izlabojiet katru no tiem. Mērķis ir nostiprināt sistēmu."
Atšķirība: otrais pieprasījums ir aizsardzības nolūkos, pilnvaru robežās un konsolidācijai. Tā ir pareiza AI izmantošana DevSecOps.
Biežas kļūdas
- Noslēpuma iegulšana kodā/vēsturē. Visizplatītākā un pastāvīgākā ievainojamība.
- Nopludināto noslēpumu neatdod. "Neviens to nav redzējis" ir visdārgākā likme.
- Uzskatot, ka visi skrīninga rezultāti ir vienādi. Paralizēta prioritātes noteikšana vai reāla riska trūkums.
- Atstājot drošību uz pēdējo. Prod starpība ir daudzkārt dārgāka nekā cauruļvada plaisa.
- Apejot minimālu autoritāti. Noslēpums/loma, kurai ir piekļuve visam, padara vienu noplūdi par katastrofu.
- Mēģina izmantot AI uzbrukumam. Nelegāla un ārpus platformas.
Rezumējot
DevSecOps nodrošina drošību DevOps plūsmas sākumā un katrā solī — fiksē ievainojamības kodā un konveijerā, nevis prod. Noslēpumu pārvaldības zelta likumi: noslēpums neievada kodu, tiek glabāts centrālajā glabātavā, tiek ievadīts izpildes laikā, tiek regulāri atdots un tam tiek piekļūts ar minimālām privilēģijām. Pirmais solis noplūdes gadījumā vienmēr ir pārtraukt/atgriezties. AI ir spēcīgs, lai piešķirtu prioritāti skenēšanas izvadei, izstrādātu slepenas plūsmas un aizsargātu kodu, taču tas tiek izmantots tikai aizsardzībai un likumīgās robežās sistēmās, kuras jums ir tiesības.
Lietojumprogrammas uzdevums
Pieņemiet savu projektu (kuram jums ir pilnvaras). (1) Pārbaudiet iegultos slepenos un nedrošos noklusējuma iestatījumus, izmantojot veidni “Koda ievainojamību meklēšana”. (2) Kārtojiet drošības skenēšanas izvadi (faktisko vai paraugu), izmantojot “šķirošanas” veidni, un identificējiet 3 vissteidzamākos konstatējumus. (3) Izveidojiet savam projektam plūsmas uzmetumu, izmantojot veidni “slepens pārvaldības dizains”, kas pilnībā noņem noslēpumu no koda.
kontrolsaraksts
- [ ] Esmu pārliecinājies, ka manā kodā, attēlā un manifestos nav iegultu noslēpumu.
- [ ] Es glabāju noslēpumus centrālajā glabātavā un ievadu tos izpildes laikā.
- [ ] Es zinu, ka pirmais solis noplūdes scenārijā ir pārtraukt/atgriezties.
- [ ] Es piešķīru prioritāti skenēšanas rezultātiem, pamatojoties uz izmantojamību un manu kontekstu.
- [ ] Es pārvietoju drošības skenēšanu uz konveijera sākuma posmiem (pa kreisi).
- [ ] AI esmu izmantojis tikai aizsardzības nolūkos sistēmās, kurās man ir pilnvaras.