DevSecOps - Kickstarta med automatisk kodanalys

Säkerhet är en kritisk komponent inom systemutveckling. DevSecOps är en metodik som integrerar säkerhet i alla faser av processen, från planering till distribution. 

Genom att implementera DevSecOps kan organisationer inte bara förbättra säkerheten i sina applikationer, utan också öka effektiviteten och minska tiden till marknad. 

Bild på författaren Jens Wake
Jens Wake
Publicerad: 19 september 2024
2~ minuters läsning

Automatisering är ett centralt begrepp inom DevSecOps. Genom att automatisera säkerhetstester och kodanalys i systemutvecklingsprocessen ser du till att skydda både din kod och dina användare. Den här artikeln beskriver hur du på ett enkelt sätt kan lägga till statisk kodanalys i din CI/CD-pipeline och hur du ser till att det blir en del av ditt arbetssätt. 

Förberedelser 

I den här artikeln används Azure DevOps och SonarQube, som är ett verktyg för att analysera kod. Det är gratis om du sätter upp en egen server, alternativt så kan du betala för molntjänsten SonarCloud. 

Du behöver även installera tillägget SonarQube i din Azure DevOps organisation. 

Steg 1: Skapa en CI/CD-pipeline 

Om du inte redan har en CI/CD-pipeline, så ser du till att skapa en YAML-pipeline för att bygga ditt projekt. Det går även att sätta upp som Classic-pipeline, men i det här exemplet används YAML. 

Steg 2: Lägg till SonarQube i din pipeline 

Uppdatera din YAML-pipeline med följande tasks: 

  1. SonarQubePrepare 
    Förbereder analysen genom att konfigurera SonarQube-endpoints och projektinställningar. 
  2. SonarQubeAnalyze
    Analyserar koden efter att den har byggts. 
  3. SonarQubePublish 
    Publicerar koden på din SonarQube-server eller på  SonarCloud. 

Exempel YAML: 

- task: SonarQubePrepare@6 

  inputs: 

SonarQube: 'myEndpoint' # Replace with your SonarQube service connection 

scannerMode: 'MSBuild'

projectKey: 'myProjectKey' # Replace with your project key

projectName: 'myProjectName' # Replace with your project name 

 

# Your build task goes here 

- task: SonarQubeAnalyze@6 

- task: SonarQubePublish@6

inputs:

pollingTimeoutSec: '300' 

Steg 3: Kontinuerlig kontroll 

Oberoende hur du väljer att notifiera fel som rapporteras från SonarQube, det kan vara via dashboard, epost eller Teams, så måste du se till att kontinuerligt hantera felen. Det är viktigt att du lägger till det här steget i din utvecklingsprocess så att det blir en naturlig del av ditt arbete.  

Steg 4: Åtgärd och uppföljning 

När du hanterar en säkerhetsbrist så måste du ta ett aktivt beslut: ska du åtgärda problemet eller kan du leva med det? Om du anser att det konsekvenserna inte är allvarliga så är det viktigt att du stänger ärendet utan åtgärd och kommenterar varför. I SonarQube motsvarar det här statusen “Resolved (Won’t Fix)”. Om beslutet i stället är att åtgärda problemet, bör det prioriteras i backloggen baserat på hur allvarligt och vilken påverkan det har.

En enkel regel för uppföljning är att övervaka antalet fel och ständigt arbeta för att minska dem. 

Sammanfattning 

Genom att sätta upp en pipeline i Azure DevOps som letar efter säkerhetsbrister i koden, kan du effektivt identifiera och åtgärda säkerhetsproblem under hela utvecklingsprocessen.

Det här kan vara ditt första steg för att komma igång med DevSecOps och implementera det i Din process. 

Lycka till!

Bild på författaren

Jens Wake

Konsult

Jens Wake är en erfaren senior konsult med över 25 års erfarenhet inom IT-branschen. Jens brinner för teknologi och att hålla sig uppdaterad med de senaste trenderna och framstegen inom branschen. Han söker ständigt nya sätt att förbättra processer, öka effektiviteten och förbättra användarupplevelsen.

Meny