Mettre en place un Pipeline DevSecOps avec GitHub Actions
Comment intégrer des outils de sécurité comme Trivy, Semgrep et Gitleaks directement dans vos pipelines CI/CD.
Initialisation...
Comment intégrer des outils de sécurité comme Trivy, Semgrep et Gitleaks directement dans vos pipelines CI/CD.
En tant que développeur et ingénieur sécurité, j'ai souvent constaté que la sécurité était reléguée à la fin du cycle de développement. L'approche DevSecOps consiste à intégrer la sécurité au cœur même du pipeline CI/CD (le fameux Shift-Left).
Dans cet article, nous allons voir comment automatiser la détection de vulnérabilités et de fuites de secrets directement dans GitHub Actions.
Pour construire notre "Aegis-CI", nous utiliserons 3 outils open-source puissants :
La fuite de tokens API est l'une des failles les plus critiques (et fréquentes). Voici comment ajouter Gitleaks dans votre .github/workflows/security.yml :
name: Security Pipeline
on: [push, pull_request]
jobs:
secret-scan:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Gitleaks
uses: gitleaks/gitleaks-action@v2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Semgrep est un outil exceptionnel pour identifier les failles logiques, les mauvaises pratiques ou les vulnérabilités de type OWASP Top 10 (comme les injections SQL).
sast-scan:
runs-on: ubuntu-latest
container:
image: returntocorp/semgrep
steps:
- uses: actions/checkout@v3
- run: semgrep ci
Trivy permet d'analyser le code de vos applications, mais aussi les dépendances npm / pip et les images Docker !
dependency-scan:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Run Trivy vulnerability scanner
uses: aquasecurity/trivy-action@master
with:
scan-type: 'fs'
format: 'table'
exit-code: '1'
ignore-unfixed: true
severity: 'CRITICAL,HIGH'
En quelques lignes de YAML, vous avez ajouté un véritable bouclier de sécurité à votre repository GitHub !
N'hésitez pas à aller jeter un œil à mon projet Aegis-CI sur mon GitHub, où j'ai développé un template plus poussé intégrant toutes ces fonctionnalités.
Stay safe, code secure! 🔒