Aller au contenu principal
Expert Cybersécurité & IAv9.0
Centres de ressources conformité
Besoin d'un accompagnement expert ?
Devis personnalisé sous 24h — audit, conformité, incident
Checklists Sécurité — Audit & Durcissement
Formats disponibles
📄 PDF 📊 Excel 🌐 Web

11 checklists professionnelles couvrant 2 200+ points de contrôle. Téléchargement gratuit, aucune inscription.

gosec

devsecops

Définition

gosec (Go Security Checker) est un outil d'analyse statique de sécurité (SAST) open source dédié au code Go, développé initialement par la communauté Go et maintenant maintenu sous l'égide de l'organisation securego sur GitHub. gosec analyse le code source Go via l'AST (Abstract Syntax Tree) pour détecter des patterns de programmation non sécurisés, des vulnérabilités communes, et des violations de bonnes pratiques de sécurité spécifiques à l'écosystème Go. gosec est l'outil SAST de référence pour les projets Go, directement intégré dans les principales CI (GitHub Actions, GitLab CI) et supporté par des agrégateurs comme Semgrep et Nancy. Il détecte plusieurs catégories de vulnérabilités Go : les injections de commandes système (exec.Command avec des entrées non sanitisées), les problèmes cryptographiques (utilisation de MD5, SHA1, algorithmes faibles, clés insuffisantes), les chemins de fichiers non sécurisés (path traversal), la gestion des erreurs (erreurs ignorées via l'opérateur blank identifier _), les permissions de fichiers trop permissives, les problèmes de binding réseau (écoute sur 0.0.0.0 sans intention explicite), et les integer overflows. L'intégration de gosec dans un pipeline CI Go est simple : une étape gosec ./... exécute l'analyse sur tout le code source Go du projet. Le résultat peut être exporté en JSON ou SARIF pour l'intégration avec les dashboards de sécurité. Des annotations de code (nolint:gosec avec commentaire de justification) permettent de marquer des alertes légitimement ignorées sans supprimer globalement une règle. Dans l'écosystème des outils de sécurité Go, gosec se complète avec govulncheck (vulnérabilités dans les dépendances, officiel Google), nancy (scan SCA des dépendances via OSS Index), et staticcheck (analyse statique générale de qualité Go).

Règles gosec les plus importantes

Règles gosec critiques pour les applications Go : G101 (credentials hardcodés dans le code — secrets, mots de passe), G102 (bind sur toutes interfaces 0.0.0.0), G103 (utilisation de unsafe.Pointer), G104 (erreurs ignorées — err non vérifiée), G107 (URL construite depuis des entrées utilisateur — SSRF), G201/G202 (SQL injection via fmt.Sprintf ou string concatenation), G304 (file path traversal via variable non sanitisée), G401/G402 (utilisation de MD5/SHA1 ou chiffrement faible), G501-G505 (import de packages cryptographiques dépréciés). Ces règles couvrent les vulnérabilités les plus critiques du code Go.

Intégration gosec dans GitHub Actions

Workflow GitHub Actions pour gosec : uses: securego/gosec@master with args: -fmt=sarif -out=gosec-results.sarif ./... suivi de uses: github/codeql-action/upload-sarif@v3 with sarif_file: gosec-results.sarif. Cette intégration affiche les résultats gosec directement dans le GitHub Security Tab (Code Scanning alerts) avec les lignes de code concernées, le niveau de sévérité, et les liens vers la documentation de la règle. Le flag -exclude-dir=vendor et -exclude-generated permettent de filtrer les faux positifs sur le code vendorisé et généré.

gosec et govulncheck : complémentarité

gosec analyse le code Go que vous avez écrit (vulnérabilités dans votre propre code). govulncheck (officiel Go Security Team) analyse les dépendances Go utilisées (CVEs dans les modules Go tiers). Ces deux outils sont complémentaires et doivent être utilisés ensemble dans les pipelines CI Go : go install golang.org/x/vuln/cmd/govulncheck@latest && govulncheck ./... détecte les vulnérabilités dans les dépendances Go du go.sum, avec la particularité de ne reporter que les vulnérabilités dans les packages et fonctions effectivement appelés par votre code (réduisant les faux positifs vs un scan de toutes les dépendances).

Articles liés

Un projet cybersécurité ?

Expert dispo · Réponse 24h

Devis