Enhed 10 / 11

Sikkerheds- og hemmelighedsstyring: DevSecOps og kunstig intelligens

Gevinster:

  • Evne til at forstå DevSecOps og de gyldne regler for hemmelighedshåndtering (indtaster ikke kode, opbevares i boksen, injiceres under kørsel, returneres, mindst privilegier)
  • Evne til at bruge kunstig intelligens til at prioritere sikkerhedsscanningsoutput (SCA, SAST, billede, IaC, hemmelig) og revisionskode til defensive formål
  • At vide, at det første trin i en hemmelig lækage er tilbagekaldelse/tilbageførsel og kun brug af kunstig intelligens i autoriserede systemer til forsvarsformål inden for juridiske grænser

Hvor hurtigt et system implementeres, betyder ikke noget, den dag det kompromitteres. Mens DevOps fokuserer på hastighed, er sikkerhed nogle gange overladt til slutningen - og sikkerhed overladt til slutningen kommer ofte slet ikke. DevSecOps er den tilgang, der placerer sikkerhed i begyndelsen og ved hvert trin af DevOps-flowet: "skifte sikkerheden til venstre" - det vil sige at fange en sårbarhed i pipelinen, mens koden skrives, snarere end i prod. For DevSecOps-professionelle er sikkerhed ikke et separat teams opgave, men er en del af hver commit, hvert billede, hvert manifest.

Der er to hovedakser i denne enhed. Den første er hemmelighedshåndtering: sikker generering, opbevaring, distribution og rotation af fortrolige oplysninger såsom adgangskoder, nøgler, certifikater. Den anden er sikkerhedsscanning og -hærdning: at finde sårbarheder i afhængigheder, billeder, konfigurationer. AI er en kraftfuld assistent til begge dele - den afslører sårbarheder, prioriterer scanningsoutput, anbefaler rettelser. Men det mest kritiske forbehold gælder her: AI er til forsvar; Uautoriseret adgang til en andens system, uautoriseret scanning eller oprettelse af et angrebsværktøj er ulovligt og er den strenge grænse for denne platform.

Gyldne regler for Secrets management

  1. Secret kommer aldrig ind i kildekoden. Ikke Dockerfile, ikke YAML, ikke script, ikke Git. Når først du er gået ind i Git, består hemmeligheden i fortiden.
  2. Hemmeligheder opbevares i en central boks. HashiCorp Vault, AWS Secrets Manager, Azure Key Vault, GCP Secret Manager - disse lagrer hemmeligheder krypteret, kontrollerer adgangen og holder styr på dem.
  3. Det injiceres på operationstidspunktet. Applikationen henter hemmeligheden fra vault- eller miljøvariablen, mens den kører, ikke fra disken.
  4. Den roterer regelmæssigt. Jo længere en hemmelighed lever, jo større er risikoen for lækage. Auto-spin er ideelt.
  5. Minimal autoritet. Kun den service, der har brug for det, kan få adgang til hver hemmelighed.
Tip: Den mest effektive modforanstaltning er at sætte en hemmelig scanner (som git-hemmeligheder, gitleaks, trufflehog) i pipelinen: den stopper commit, hvis en hemmelighed ved et uheld forsøges begået. Dette stopper lækagen ved kilden. AI hjælper med at skrive pipeline-integrationen af ​​disse browsere.

Trin for trin: at reagere på en hemmelig lækage

Hvis en hemmelighed er lækket, skal du ikke gå i panik, rækkefølgen er vigtig:

  1. Annuller og roter med det samme. Ugyldiggør lækket nøgle, generer en ny. Bare at slette det er ikke nok - det forbliver i fortiden.
  2. Evaluer virkningen. Hvor fik denne nøgle adgang? Er det blevet misbrugt? Undersøg logfilerne.
  3. Sluk for kilden. Hvordan lækkede det? Ryd kode, historie; Men husk: annullering kommer før clearing.
  4. Forhindre. Tilføj den hemmelige browser til pipelinen, så den ikke gentager sig.
OBS: Det dyreste væddemål er ikke at returnere en lækket hemmelighed, bare fordi "ingen så den". En nøgle, der falder i et offentligt lager, scannes af bots inden for få sekunder. Når du er i tvivl, roter - omkostningerne ved rotation er lave, omkostningerne ved lækage er katastrofale.

Typer af sikkerhedsscanninger

DevSecOps bruger flere lag af scanning; AI'en er nyttig til at fortolke output fra hver:

  • SCA (Software Composition Analysis): Finder kendte sårbarheder (CVE) i de open source-afhængigheder, du bruger.
  • SAST (Static Application Security Testing): Scanner kildekoden for sårbarheder uden at køre den.
  • DAST (Dynamic Application Security Testing): Tester den kørende applikation eksternt.
  • Billedscanning: Finder sårbarheder i containerbilledet (trivy, docker-spejder).
  • IaC-scanning: Finder fejlkonfigurationer i Terraform/manifester (tfsec, checkov).
Forsigtig: En scanner dumper hundredvis af fund; Det er umuligt at rette dem alle på samme tid. Brug AI til at prioritere resultater: hvilke er virkelig udnyttelige, hvilke er indlysende i teorien, men utilgængelige i praksis? Men bekræft den endelige prioritering med din egen kontekst.

Tabel over rasterlag

lag

Hvad scanner den?

prøvekøretøj

hvornår

SCA

Afhængighedssårbarheder (CVE)

Dependabot, Snyk

hver bygning

SAST

Kildekodesårbarheder

Semgrep, CodeQL

Hver PR

billedscanning

Containersårbarheder

Trivy, spejder

Efter opbygning

IaC-scanning

Fejlkonfiguration

tfsec, checkov

Terraform PR

hemmelig scanning

Lækkede hemmeligheder

gitleaks

Hver forpligtelse

tre minisager

Case 1 — 300 CVE'er, 12 reelle risici. En billedscanning rapporterede 300 sårbarheder; Holdet var lammet. Giv scanningsoutputtet til AI og spørg "hvilke kan udnyttes eksternt, og er de tilgængelige?" De prioriterede det. AI fremhævede 12 virkelige risikable fund. Holdet lukkede dem først ned; Han hyrede resten på et planlagt grundlag. Prioriter frem for panik.

Tilfælde 2 - rotation forhindrede et angreb. En udvikler skubbede ved et uheld en skynøgle til et offentligt lager. Alarmen gik; Holdet annullerede og returnerede nøglen på 4 minutter. Logfilerne viste, at nøglen allerede var blevet forespurgt fra en bot - men den var nu ugyldig. Den hurtige behandling forhindrede en potentiel faktureringskatastrofe og datalæk.

Tilfælde 3 - IaC-scanning fangede en åben spand. En AI-assisteret IaC-scanning fangede en opbevaringsbøtte i Terraform-kode med "offentlig læsning"-tilladelse uden at gå til prod. Udvikleren havde åbnet den "til test" og glemte at lukke den. Pipeline stoppede forpligtelsen; åben nåede det aldrig til prod. Det er netop meningen med at swipe til venstre.

Fire kopierbare skabeloner

1) Prioriter scanningsoutput:

Prioriter sikkerhedsscanningen nedenfor. For hvert fund:(1) kan det virkelig udnyttes (fjernt/uautentificeret?),(2) er det tilgængeligt i vores kontekst, (3) afhjælpningsindsats,(4) anbefalet prioritet (kritisk/høj/middel/lav). Fremhæv de 5 mest presserende. Tal tydeligt; angive, at jeg skal validere hver prioritet med min kontekst. Output: [SCAN]

2) hemmeligt ledelsesdesign:

Foreslå en tilgang til administration af hemmeligheder for [APPLIKATION/INFRstruktur]: hvilken boks, hvordan injicerer man hemmeligheder under kørsel, hvordan automatiserer man rotation, hvordan håndhæver man minimale privilegier? Beskriv et konkret flow, der ALDRIG indlejrer hemmeligheden i koden.

3) Søgning efter sårbarheder i koden (forsvar):

Tjek min EGEN kode nedenfor for sikkerhed (jeg har tilladelse): er der nogen indsprøjtning, indlejret hemmelighed, usikker standard, uvalideret input? Giv hvert fund sin betydning og korrektion. Formålet er forsvar og konsolidering. Kode: [CODE]

4) Hemmelig lækage-responsplan:

En [HEMMELIG TYPE] kan ved et uheld have infiltreret [LOCATION]. Giv mig trin for trin interventionsordre: hvad skal jeg gøre først (annullering/returnering), hvordan evaluerer man effekten, hvordan forebygger man gentagelse? Forklar også, hvorfor bare sletning ikke er nok.

Svag prompt / Stærk prompt

Svag: "Hvordan hacker jeg dette system/udnytter denne sårbarhed?"

Denne anmodning er både uetisk og strengt uden for denne platforms grænser. Det er ulovligt at bruge AI til angreb.

Stærk: "Godkend koden for min egen applikation til sikkerhed: find indlejrede hemmeligheder, injektionsrisici og usikre misligholdelser, ret hver af dem. Målet er at hærde systemet."

Forskel: den anden anmodning er til defensive formål, inden for autoritetens grænser og til konsolidering. Dette er den korrekte brug af AI i DevSecOps.

Almindelige fejl

  • Indlejring af hemmeligheden i kode/historie. Den mest almindelige og vedvarende sårbarhed.
  • Ikke at returnere den lækkede hemmelighed. "Ingen har set det" er det dyreste væddemål.
  • At se alle screeningsfund som ligeværdige. At blive lammet af prioritering eller manglende reel risiko.
  • Overlader sikkerheden til at vare ved. Gabet i prod er mange gange dyrere end gapet i pipeline.
  • Omgå minimal autoritet. En hemmelighed/rolle, der har adgang til alt, gør en enkelt lækage til en katastrofe.
  • Forsøger at bruge AI til angreb. Ulovligt og off-platform.

Sammenfattende

DevSecOps placerer sikkerhed i begyndelsen og ved hvert trin af DevOps-flowet – fanger sårbarheder i kode og pipeline, ikke i prod. Gyldne regler for administration af hemmeligheder: hemmeligheden kommer ikke ind i koden, opbevares i den centrale boks, injiceres under kørsel, returneres regelmæssigt og tilgås med minimale privilegier. Det første trin i en lækage er altid afbrydelse/retur. AI er stærk til at prioritere scanningsoutput, designe hemmelige flows og defensivt inspicere kode - men det bruges kun defensivt og inden for lovmæssige grænser på systemer, du har autoritet over.

Ansøgningsopgave

Påtag dit eget projekt (som du har autoritet til). (1) Få de indlejrede hemmelige og usikre standardindstillinger kontrolleret med skabelonen "Leder efter sårbarheder i kode". (2) Sorter et sikkerhedsscanningsoutput (faktisk eller prøve) gennem "triage"-skabelonen og identificer de 3 mest presserende fund. (3) Lav et flow-udkast til dit projekt med skabelonen "hemmeligt styringsdesign", der fuldstændig fjerner hemmeligheden fra koden.

tjekliste

  • [ ] Jeg har bekræftet, at der ikke er indlejrede hemmeligheder i min kode, billede og manifester.
  • [ ] Jeg opbevarer hemmelighederne i en central boks og injicerer dem under kørsel.
  • [ ] Jeg ved, at det første trin i et lækage-scenarie er afbrydelse/retur.
  • [ ] Jeg prioriterede scanningsresultaterne ud fra udnyttelighed og min kontekst.
  • [ ] Jeg flyttede sikkerhedsscanninger til de tidlige trin af pipelinen (til venstre).
  • [ ] Jeg har kun brugt AI til defensive formål på systemer, hvor jeg har autoritet.