Principer för Detection-as-Code
Behandla detekteringar som programvara.
Principer för Detection-as-Code är en gratis lektion i Cyber Security Academy på CoddyKit. Detta är lektion 1 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för Cyber Security Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Cyber Security Academy innehåller totalt 4 lektioner.
Varför Detection-as-Code
Detection-as-Code (DaC) tillämpar programvaruutvecklingens disciplin på säkerhetsdetekteringar. I stället för att analytiker redigerar regler manuellt i en SIEM-konsol lagras detekteringarna som textfiler i versionshantering och levereras genom en pipeline.
Fördelarna är konkreta:
- Granskningsbara ändringar via pull requests
- Reproducerbara distributioner mellan miljöer
- Testbar logik innan den når produktionen
- Revisionsbara historikuppgifter om vem som ändrade vad och varför
En detektering blir ett artefakt som ni kan jämföra, återställa och analysera på samma sätt som annan kod.
Detekteringar som versionshanterade filer
Varje detektering lagras som en fristående fil, vanligtvis i YAML eller i ett leverantörsspecifikt frågespråk, och checkas in i ett Git-arkiv. Arkivets struktur återspeglar hur täckningen organiseras.
En vanlig struktur separerar regler efter plattform och taktik:
detections/
windows/
credential_access/
lsass_memory_dump.yml
execution/
suspicious_powershell.yml
cloud/
aws/
root_account_usage.yml
tests/
windows/
lsass_memory_dump_test.ymlGranskning av pull requests
Varje ny eller ändrad detektering går igenom en pull request. En annan ingenjör granskar logiken, risken för falska positiva och ATT&CK-mappningen innan ändringen slås samman.
Granskare frågar:
- Överensstämmer logiken med det beskrivna hotet?
- Vilken legitim aktivitet kan utlösa detta?
- Är allvarlighetsgraden och ATT&CK-referensen korrekta?
- Finns det tester som täcker sanna och falska positiva?
Detta fångar misstag som en ensam analytiker som redigerar SIEM-systemet klockan två på natten skulle missa.
CI-validering
En pipeline för kontinuerlig integration körs automatiskt vid varje push. Den upprätthåller kvalitetsgrindar innan en regel får slås samman.
Typiska CI-steg för ett Sigma-baserat arkiv:
# .github/workflows/validate.yml (excerpt)
steps:
- name: Lint Sigma syntax
run: sigma check ./detections
- name: Validate against schema
run: sigma check --validators all ./detections
- name: Run unit tests
run: pytest tests/Automatiserad distribution
När ändringen har slagits samman konverterar ett distributionsjobb de portabla reglerna till målsystemets frågespråk och skickar dem till SIEM- eller EDR-systemet via API.
För Sigma kör ni vanligtvis en konverterare som sigma convert med en backend som motsvarar plattformen (Splunk, Elastic, Microsoft Sentinel). Därefter laddar pipelinen upp de genererade sparade sökningarna eller analysreglerna.
Ingen människa klistrar in frågor i en konsol. Det distribuerade tillståndet överensstämmer alltid med det som finns i main.
sigma convert -t splunk -p splunk_windows \
detections/windows/execution/suspicious_powershell.ymlTesta detekteringar
En detektering utan tester är en gissning. DaC kopplar varje regel till testdata: loggexempel som ska utlösa den (sanna positiva) och ofarliga exempel som inte ska göra det (falska positiva).
Tester körs i CI, så en ändring som försämrar täckningen eller återinför brus får bygget att misslyckas före sammanslagning. Detta är den enskilt största källan till trygghet när regler omarbetas i stor skala.
test:
- log: { Image: 'C:\\Windows\\System32\\rundll32.exe', CommandLine: 'rundll32 javascript:...' }
expected: match
- log: { Image: 'C:\\Windows\\System32\\rundll32.exe', CommandLine: 'rundll32 shell32.dll,Control_RunDLL' }
expected: no_matchRegelmetadata och livscykel
Behandla metadata som en central del. Varje detektering registrerar sin status när den mognar genom livscykeln:
experimental— nyskriven och övervakas noggranttest— körs men är ännu inte betrodd för larmstable— beprövad med låg andel falska positivadeprecated— ersatt eller avvecklad
Genom att följa statusen i filen kan regler främjas, nedgraderas och avvecklas medvetet, i stället för att inaktuell logik blir kvar i produktionen.
Portabilitet mellan backends
En central fördel med DaC är att skriva detekteringslogik en gång i ett leverantörsneutralt format och sedan kompilera den till flera backends. Sigma är den etablerade standarden för loggbaserade detekteringar.
Samma regelfil kan riktas mot Splunk SPL, Elastic Lucene/EQL, Microsoft Sentinel KQL och andra system genom plattformsspecifika mappningar av fält. Ni slipper skriva om samma idé fem gånger och undviker inlåsning.
sigma convert -t elasticsearch rule.yml
sigma convert -t microsoft365defender rule.yml
sigma convert -t splunk rule.ymlPipelines för fältmappning
Olika loggkällor namnger samma data på olika sätt. En händelse för processkapande i Sysmon använder Image; en Windows Security-logg kan använda NewProcessName. Bearbetningspipelines överbryggar den skillnaden.
Pipelines omvandlar generiska Sigma-fältnamn till de exakta fält som används av era data, så att en logisk regel smidigt kan mappas till det schema som SIEM-systemet importerar. Genom att underhålla pipelines centralt behöver en schemaändring åtgärdas en gång, inte per regel.
sigma convert -t splunk -p sysmon rule.ymlMiljöer och befordran
Precis som programkod flyttas detekteringar genom miljöer innan de når produktionen. Ett typiskt flöde går från dev till staging till prod.
- Dev — skapa regler och kör enhetstester i CI
- Staging — distribuera mot en kopia av riktig telemetri i granskningsläge
- Prod — befordra när andelen falska positiva är acceptabel
Befordran är ett medvetet och granskat steg som kopplas till regelns livscykelstatus, inte en oavsiktlig följd av en sammanslagning. Den stegvisa utrullningen motsvarar disciplinen att först larma och därefter blockera, som används med inline-detekteringar.
Täckning och mätvärden
Eftersom detektioner är kod kan täckningen mätas programmatiskt. Knyt varje regel till MITRE ATT&CK-tekniker och generera en värmekarta över vad som täcks och inte täcks.
Användbara mätvärden att följa över tid:
- Täckta tekniker jämfört med totalt antal tekniker i hotmodellen
- Andel falska positiva per regel
- Genomsnittlig tid från regelidé till produktion
- Antal regler i varje livscykelstatus
Dessa siffror förvandlar detektionsutveckling från anekdotisk verksamhet till ett styrt program.
Snabbtest
Kontrollera förståelsen av grunderna i Detection-as-Code.
Sammanfattning
Detection-as-Code tillför programvaruutvecklingens noggrannhet till detektioner:
- Regler lagras som versionshanterade filer i Git
- Ändringar genomgår granskning av pull requests
- CI kör automatiskt lintning, validering och tester
- Sammanslagna regler distribueras via en pipeline, så att produktionen hålls synkroniserad med main
- Tester skyddar mot falska positiva och regressioner
- Portabilitet (Sigma + pipelines) gör att en regel kan riktas mot många backends
- Metadata, livscykel och mätvärden gör detektion till ett styrt program
I nästa steg skrivs själva de portabla reglerna med Sigma.
Lär dig Cyber Security Academy med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 76
- Lektioner
- 303
Vanliga frågor
Är lektionen ”Principer för Detection-as-Code” gratis?
Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Cyber Security Academy, inklusive ”Principer för Detection-as-Code”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i Cyber Security Academy innehåller totalt 4 lektioner.
Vad lär jag mig i ”Principer för Detection-as-Code”?
Behandla detekteringar som programvara. Ni övar på Cyber Security Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig Cyber Security Academy?
Du behöver inga förkunskaper. Utbildningen i Cyber Security Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 1 av 4.
Hur lång tid tar lektionen ”Principer för Detection-as-Code”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här Cyber Security Academy-lektionen?
Ja. Varje Cyber Security Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Principer för Detection-as-Code
- Skriva Sigma-regler
- Mappning till MITRE ATT&CK
- Testa och finjustera detekteringar