Discordiansk Cybersikkerhed

🔄 CIA-arbetsflöden: Fem-stegs CI/CD & Tillståndsmaskiner

Automatisering som Sikkerhedsprincip

Manuella releaser är sikkerhedssårbarheter forklädd som process. Varje mänsklig inblandning introducerar fel. Varje manuell checklista glöms bort under press. Varje "snabb fix" som kringgår CI/CD är en incident som väntar på att hända.

Citizen Intelligence Agency automatiserar allt. Fem GitHub Actions-arbetsflöden hanterar hela DevSecOps-pipelinen: Verificer & Frigiv (bygg + deploy), CodeQL-sikkerhedsskanning, Dependabot-sårbarhetsuppdateringar, OpenSSF Scorecard-validering og ZAP-penetrationstestning. Ingen release når produktion utan att passera alla fem portar.

Dokumenterat i WORKFLOWS.md: Fem arbetsflöden orchestrerar tjugo byggsteg, femtio sikkerhedskontroller og hundra kvalitetsportar. Femtals Lag manifesterad gennem CI/CD-automation. Varje arbetsflöde oberoende. Varje arbetsflöde kritiskt. Systemet som overvakar sig självt.

Upplysning: Automation som mäter sig själv forbättrar sig självt. Metrics som ingen läser är meningslösa. Varje arbetsflöde producerar åtgärdsbar intelligens—trender over tid, identifierade regressionspunkter, prediktiva felvarningar. Automatisering utan feedback är bara skript.

Behover du expertvägledning om DevSecOps-integration? Utforska Hack23s cybersikkerhedskonsulttjänster med stöd av vårt fullt offentliga ISMS.

De Fem Arbetsflödena

Varje arbetsflöde tjänar en kritisk funktion. Tillsammans skapar de oovervinneligt CI/CD-forsvar. Fem lager automation. Noll manuella steg.

1. 🚀 Verificer & Frigiv: Huvudpipeline

Huvudarbetsflöde som hanterar hela releasecykeln. Dokumenterat i release.yml. Utlöses vid push till master eller manuellt via workflow_dispatch. Orkestrerar Maven-bygget, kör enhetstester, integrationstester og E2E-tester, genererar SBOM og SLSA Level 3-attestering, og deployer till miljöer.

Byggsteg i sekvens:

  • Checkout källkod og konfiguration
  • Java 17 setup med Maven-cache
  • Maven verify (kompilera + test + paket)
  • SonarCloud kvalitetsanalys
  • SBOM-generering (CycloneDX format)
  • Docker image build & push
  • SLSA provenance attestation
  • AWS deployment (via CloudFormation)

Kvalitetsportar: 80% testtäckning krävs. Security hotspot-trösklar upprätthålls. Alla kritiska sårbarheter blockerar release. Zero-kritiska-policy upprätthålls.

Releasepipelinen har 23 individuella steg från källkod till produktion. 23 kontrollpunkter. 23 möjligheter for system att säga "nej". När alla säger "ja" vet du att releasen är säker.

2. 🔍 CodeQL: Säker Kodanalys

GitHub-native SAST-integration. Definierad i codeql.yml. Skannar Java-källkod for sikkerhedssårbarheter, kodkvalitetsproblem og anti-mönster. Körs på varje pull request og schemalagd veckoscankning.

Språk som analyseras: Java (primär), JavaScript (frontend-komponenter). CodeQL databaser byggda från varje commit. Inkrementell analys identifierar nya sårbarheter. Sikkerhedsrådgivningar automatiskt länkade.

Sårbarhetskategorier: SQL-injektion, XSS, SSRF, Path Traversal, Kryptografiska svagheter, Osäker deserialisering, Sessionshanteringsproblem, Autentiseringsbrister. Varje detektion kartlagd till CWE-ID. Varje sårbarhet prioriterad (kritisk/hög/medel/låg).

Workflow-integration: Blockerar pull request-sammanslagning vid höga/kritiska fynd. Sikkerhedsfliken visar alla öppna problem. Automatiska PR:er skapade for fixar där möjligt. Genomsnittlig tid till fix: 2.3 dagar (23 timmar × 2.4 arbetsdagar/vecka).

CodeQL hittar vad människor missar. Utmattningstestare overser sårbarheter klockan 23:00 på fredag. CodeQL kör lika ihärdigt klockan 03:00 på söndag som måndag morgon. Konsekvent. Outtröttlig. Tyst vaktmästare.

3. 🔐 Dependabot: Supply Chain-skydd

Automatiserad beroendevulnerabilitethantering. Konfigurerad i dependabot.yml. Övervakar Maven (Java), npm (JavaScript), GitHub Actions, Docker-baser. Dagliga sårbarhetsgennemsökningar mot GitHub Advisory Database.

Automatiserad uppdateringsprocess:

  1. Dependabot detekterar sårbara beroende
  2. Skapar automatisk PR med versionsuppgradering
  3. Release-workflow kör alla tester på PR
  4. CodeQL skannar uppdaterat beroende
  5. Manuell granskning → sammanfogning → deploy

Sikkerhedspolicy: Kritiska sårbarheter åtgärdade inom 24 timmar. Höga sårbarheter inom 7 dagar. Medelstora sårbarheter inom 30 dagar. Låga sårbarheter vid nästa stora release. Policy dokumenterad i SECURITY.md.

Supply chain-transparens: SBOM genererad varje release. FOSSA-licenskontroller. SLSA Level 3-provenance. OpenSSF Scorecard-mått. Fullständig beroendekedja spårbar.

Dependabot PRs kommer alltid i multiplar av fem när stora sårbarhetsavslöjanden händer. Log4Shell: 15 PRs. Spring4Shell: 10 PRs. Universum som bekräftar Femtals Lag gennem sikkerhedskriser.

4. 📊 Scorecard: Supply Chain-metrics

OpenSSF Scorecard automatiserad validering. Definierad i scorecards.yml. Körs veckovis for att mäta supply chain-sikkerhedshygien. Offentlig badge visar aktuell poäng: 7.2/10.

Metrikserier som mäts:

  • Binary-Artifacts: Säkerställer ingen forbyggd binär i repo
  • Branch-Protection: Verifierar masterskydd är aktiverat
  • CI-Tests: Bekräftar testkörs på alla commits
  • Code-Review: Kontrollerar PR-granskningar krävs
  • Dangerous-Workflow: Söker efter osäkra GitHub Actions-mönster
  • Dependency-Update-Tool: Bekräftar Dependabot är konfigurerad
  • Maintained: Kontrollerar recent commit-aktivitet
  • Pinned-Dependencies: Verifierar specifika versioner, inte "senaste"
  • SAST: Bekräftar CodeQL är aktiv
  • Signed-Releases: Säkerställer SLSA attestation

Poängspårning over tid: Startpoäng 5.8/10 (år 1). Nuvarande poäng 7.2/10 (år 5). Målpoäng 8.0/10 (år 6). Varje 0.5 poäng forbättring kräver månaders arbete. Långsam framsteg = hållbar framsteg.

Scorecard-poäng forbättras inte linjärt. 5 → 6 är lätt. 6 → 7 är svårare. 7 → 8 kräver fundamental process omdesign. 8 → 9 kräver organisation transformation. 9 → 10 är nästan omöjligt.

5. 🛡️ ZAP: Dynamisk Sikkerhedsskanning

OWASP ZAP penetrationstestning. Integrerat i huvudreleasearbetsflöde. Kör efter deployment for att verifiera körande applikationssakerhet. Hittar runtime-sårbarheter som statisk analys missar.

Skanningstyper:

  • Baseline-skanning: Snabb passiv analys (5 minuter)
  • Full-skanning: Djup aktiv testning (30 minuter)
  • API-skanning: REST endpoint-specifik testning
  • Autentiserad skanning: Testning av skyddade resurser

Sårbarhetsdetektering: OWASP Top 10 täckning. Injektionsflaws (SQL, LDAP, XPath). Brutna autentisering/sessioner. XSS (Reflected, Stored, DOM). Osäkra direktobjektreferenser. Sikkerhedsfel konfiguration. Exponering av känslig data.

Rapportintegration: Resultat publicerade som GitHub Actions-artefakter. ZAP-varningsrapport i HTML/Markdown. Jämforelse med tidigare skanningar. Regressionsdetektering. Varningstrends spårade over releaser.

Målmätrik: Noll höga/kritiska ZAP-varningar vid produktion. Medelstora varningar utvärderade case-by-case. Låga varningar dokumenterade for framtida åtgärdande.

ZAP hittar vad CodeQL inte kan—runtime-beteendeproblem, konfigurationsbrister, miljöspecifika sårbarheter. Statisk + dynamisk analys = fullständig täckning. Någon saknas = blinda fläckar.

Tillståndsmaskiner: Release Workflow Orchestration

Fem arbetsflöden är inte sekventiella—de är tillståndsmaskiner. Release-workflow rör sig gennem fem tillstånd: Pending (inväntar triggers), Building (Maven exekvering), Testing (validering körande), Deploying (infrastruktur uppdatering), Completed (framgång) eller Failed (rollback).

Tillståndsovergångar dokumenterade:

Från TillståndHändelseTill TillståndÅtgärd
PendingPush till masterBuildingStarta Maven-bygge
BuildingByggframgångTestingKör testsvit
BuildingByggfelFailedMeddela team, blockera release
TestingTesterna godkändaDeployingStarta deployment
TestingTesterna misslyckadesFailedMeddela team, blockera release
DeployingDeployment godkändCompletedTag release, uppdatera docs
DeployingDeployment misslyckadesFailedRollback, meddela team

Parallell execution: CodeQL og Dependabot kör oberoende av huvudworkflow. Scorecard körs schemalagt (veckovis). ZAP körs post-deployment. Ingen blockerar någon annan tills sammanfogningspunkt.

Felhantering: Varje tillstånd har både framgångs- og felvägar. Inga tysta fel. Varje fel dokumenterat. Varje fel meddelat. Varje fel triggers incident response-process om tillräckligt kritiskt.

Tillståndsmaskiner forhindrar "det fungerade på min maskin"-syndromet. Om det passerar alla fem tillstånd fungerar det overallt. Om det inte gör det vet vi exakt var det misslyckades—tillståndsovergången berättar for oss.

Metrics & Observability

Fem arbetsflöden producerar fem metrikströmmar:

📈 Byggtider & Frekvens

Genomsnittlig byggtid: 23 minuter. Målmålsättning: Under 25 minuter. Maven-bygge + tester + paketering + SonarCloud. Spårat over tid for att identifiera regressionsprestanda. Långsamma byggnader signalerar teknisk skuld.

Release-frekvens: 2.3 releaser per månad. Målmålsättning: Veckoliga releaser. Nuvarande: varannan vecka. Förbättring kräver minskad manuell testning, ökad automation-fortroende.

🔒 Sikkerhedssårbarheter

Kritiska: 0 (policy upprätthållen 5 år)

Höga: 0 (upprätthållen 3 år)

Medel: 5 (under utvärdering)

Låga: 23 (dokumenterade, inte kritiska)

Sårbarhetstrend: Minskar over tid tack vare Dependabot-automation.

✅ Testtäckning

Enhetstester: 82%

Integrationstester: 67%

E2E-tester: 45%

Totalt: 78%

Mål: 80%+ for alla kategorier. Gap: E2E-täckning kräver mer Selenium-automatisering.

23 minuters byggtid. 23 låga sårbarheter. Synkroniciteter fortsätter manifestera sig i CI/CD-metrics. Vi dokumenterar observationerna men låter koden tala for sig själv.

23 FNORD 5

Praktisk Workflow-visdom

Vad lärde jag mig av att automatisera detta system?

  1. Automatisera allt eller automatisera ingenting. Partiell automation är värre än ingen automation. Människor blir lata. Hoppar over manuella steg. "Jag får det nästa gång." Nästa gång blir aldrig.
  2. Kvalitetsportar måste bita. En port som aldrig blockerar releaser är inte en port—det är teater. Vår zero-kritiska-policy har blockerat 5 releaser på 5 år. De blockerade releaserna hade alla varit produktionsincidenter.
  3. Metrics utan åtgärd är meningslösa. Vi spårar byggtider inte for att se siffror—for att identifiera prestanda-regressioner innan de blir problem. Varje metrik leder till handling eller den tas bort.
  4. Fem arbetsflöden balanserar hastighet med sikkerhed. Mindre = for långa byggtider. Fler = komplexitetsexplosion. Fem är den punkt där hastighet og grundlighet möter perfekt balans.
  5. Dokumentera tillståndsovergångar. När release misslyckas vill du inte gissa var. Tillståndsmaskiner berättar exakt var og varfor. Detaljerad loggning vid varje overgång sparar timmar av debugging.

CI/CD som inte är pålitlig är värre än ingen CI/CD. Team forlorar fortroende. Börjar skicka in direktkomitts for att "hoppa over trasig pipeline." Förtroendet forstört är omöjligt att återställa.

Utmana Arbetsflödena

Granska CI/CD-pipelinen själv:

Tänk själv. Granska våra workflows. Kör dina egna analyzers. Utmana våra antaganden. DevSecOps automation overlever granskning eller den gör inte det. Vi väljer granskning.

Simon Moon, Systemarkitekt, Hack23 AB

"Automation som overvakar sig själv behover inga mänskliga overvakare. Människor overvakar undantag, inte normalt flöde."

23 FNORD 5

Fortsätt Resan

Nästa: CIA-mindmaps: Konceptuell Helig Geometri - Utforskar hur visuell tänkande strukturerar komplexa system

Relaterat: Fullständig CIA-dokumentation - Alla workflow-diagram, state-maskiner og tekniska specifikationer

Tillbaka till: Sikkerhedsblogg - Alla discordianska inlägg