Maak een GitHub Actions Workflow voor Geautomatiseerde Handhaving van Codebeveiligingsbeleid
description
Maakt automatische handhaving van beveiligingsbeleid mogelijk binnen je CI/CD-pijplijn, waardoor risico's op kwetsbaarheden en lekken van geheimen worden verminderd. Bespaart tijd door meerdere beveiligingstools en compliancecontroles in één workflow te integreren. Verbetert de codekwaliteit en projectbeveiliging bovenop standaard tests.
prompt
Help me een GitHub Actions workflow te ontwerpen die automatisch het codebeveiligingsbeleid afdwingt. Projecttype: <voer je projecttype in, bijvoorbeeld Node.js, Python>. Beveiligingstools om te integreren: <noem beveiliging ...
try_prompt
generate_helper
disclaimerOnPageApi
tags
ai_answers
provider: openai
model: gpt-4.1-nano
Hier is een voorbeeld van een uitgebreide GitHub Actions workflow die automatisch codebeveiligingsbeleid afdwingt voor een Node.js project, inclusief integratie van CodeQL en Trivy, en gericht op naleving van de OWASP Top 10:
name: CI
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Dependencies installeren
run: npm install
- name: Tests uitvoeren
run: npm test
codeql:
name: CodeQL Analyse
runs-on: ubuntu-latest
permissions:
actions: read
contents: read
security-events: write
steps:
- uses: actions/checkout@v2
- name: Initializeer CodeQL
uses: github/codeql-action/init@v2
with:
languages: javascript
# Optioneel: voeg extra opties toe indien nodig
- name: CodeQL analyse uitvoeren
uses: github/codeql-action/analyze@v2
security-scan:
name: Container Security Scan met Trivy
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Installeer Trivy
run: |
curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin
- name: Build Docker image
run: |
docker build -t mijn-app .
- name: Scan Docker image met Trivy
run: |
trivy image --exit-code 1 --severity HIGH,CRITICAL mijn-app
security-policy:
name: Beveiligingsbeleid en OWASP Top 10 naleving
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Installeer beveiligingshulpmiddelen
run: |
npm install eslint
npm install security-audit
- name: Voer beveiligingscontroles uit
run: |
# Controleer op bekende kwetsbaarheden via npm audit
npm audit --json > audit.json
# Analyseer audit.json op OWASP Top 10 kwetsbaarheden (vereist aangepaste scripts of plugins)
# Bijvoorbeeld: gebruik een script of tool die specifiek OWASP Top 10 naleving checkt
# Hier een voorbeeld met ESLint voor codekwaliteitsregels
npx eslint . --max-warnings=0
- name: OWASP Top 10 naleving check (voorbeeld)
run: |
# Plaats hier scripts of tools die specifiek OWASP Top 10 controleren
echo "Controle op OWASP Top 10 moet hier worden geïmplementeerd"
Opmerkingen:
- De 'security-scan' job bouwt een Docker-image en scant deze met Trivy op hoge en kritieke kwetsbaarheden.
- De 'codeql' job voert een CodeQL-analyse uit voor JavaScript.
- De 'security-policy' job bevat basiscontroles en kan worden uitgebreid met specifieke scripts of tools die gericht zijn op OWASP Top 10 naleving.
- Pas de scripts aan om precies te voldoen aan jouw beleid en vereisten.
Wil je dat ik de workflow verder verfijn of toevoegingen doe?
provider: deepseek
model: deepseek-chat
Hier is een verbeterde GitHub Actions workflow die CodeQL en Trivy integreert voor automatische beveiligingscontroles met focus op OWASP Top 10 naleving:
```yaml
name: CI met Beveiligingscontroles
on: [push, pull_request]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Dependencies installeren
run: npm install
- name: Tests uitvoeren
run: npm test
security-scan:
runs-on: ubuntu-latest
needs: build
permissions:
security-events: write
actions: read
contents: read
steps:
- uses: actions/checkout@v4
# CodeQL analyse voor statische beveiligingsscan
- name: CodeQL analyse initialiseren
uses: github/codeql-action/init@v2
with:
languages: javascript
queries: security-extended,security-and-quality
- name: Dependencies installeren voor CodeQL
run: npm install
- name: CodeQL analyse uitvoeren
uses: github/codeql-action/analyze@v2
with:
category: "/language:javascript"
# Trivy vulnerability scan
- name: Trivy repository scan
uses: aquasecurity/trivy-action@master
with:
scan-type: 'fs'
scan-ref: '.'
format: 'sarif'
output: 'trivy-results.sarif'
- name: Trivy resultaten uploaden
uses: github/codeql-action/upload-sarif@v2
with:
sarif_file: 'trivy-results.sarif'
# Dependency vulnerability check
- name: Trivy dependency scan
uses: aquasecurity/trivy-action@master
with:
scan-type: 'repo'
scan-ref: '.'
format: 'table'
exit-code: 1
# OWASP Dependency Check
- name: OWASP Dependency Check
uses: dependency-check/Dependency-Check_Action@main
with:
project: 'nodejs-project'
path: '.'
format: 'HTML'
format: 'SARIF'
- name: OWASP resultaten uploaden
uses: github/codeql-action/upload-sarif@v2
with:
sarif_file: 'dependency-check-report.sarif'
policy-enforcement:
runs-on: ubuntu-latest
needs: security-scan
if: always()
steps:
- name: Beveiligingsbeleid afdwingen
run: |
echo "Beveiligingsscan voltooid. Controleer de resultaten in de Security tab."
echo "Belangrijke OWASP Top 10 controles:"
echo "- Injectie preventie"
echo "- Authenticatie beveiliging"
echo "- Sensitieve data bescherming"
echo "- XML externe entiteiten (XXE)"
echo "- Toegangscontrole"
echo "- Beveiligingsmisconfiguratie"
echo "- XSS preventie"
echo "- Onveilige deserialisatie"
echo "- Componenten met bekende kwetsbaarheden"
echo "- Onvoldoende logging en monitoring"
```
**Belangrijke kenmerken van deze workflow:**
1. **Gelaagde beveiligingsaanpak**: Build → Security Scan → Policy Enforcement
2. **CodeQL**: Statische analyse voor codekwaliteit en beveiligingsproblemen
3. **Trivy**: Kwetsbaarheidsscans voor dependencies en repository
4. **OWASP Dependency Check**: Specifiek gericht op dependency beveiliging
5. **SARIF integratie**: Resultaten worden geüpload naar GitHub Security tab
6. **Exit codes**: Build faalt bij kritieke beveiligingsproblemen
**Aanvullende aanbevelingen**:
- Voeg `package-lock.json` toe aan versiebeheer voor betere dependency controle
- Overweeg Snyk of npm audit voor aanvullende dependency scanning
- Stel Dependabot alerts in voor automatische security updates
- Configureer code scanning alerts in GitHub repository settings
Deze workflow biedt een complete beveiligingschain die automatisch OWASP Top 10 risico's identificeert en helpt voorkomen.