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.
- /
- Kunskapsbanken/
- Blogg: DevSecOps - Kickstarta med automatisk kodanalys
- Kunskapsbanken
- /Blogg: DevSecOps - Kickstarta med automatisk kodanalys
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:
- SonarQubePrepare
Förbereder analysen genom att konfigurera SonarQube-endpoints och projektinställningar. - SonarQubeAnalyze
Analyserar koden efter att den har byggts. - 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!