Synthèse automatique
Guide la mise en place et la configuration d'outils SAST (Semgrep, SonarQube, CodeQL) pour détecter automatiquement les vulnérabilités dans le code applicatif.
Points forts
- Couvre trois outils SAST majeurs avec des capacités détaillées pour chacun (règles Semgrep, quality gates SonarQube, requêtes CodeQL)
- Fournit des extraits d'intégration concrets pour GitHub Actions et les hooks pre-commit
- .Propose une démarche d'adoption progressive : scan de référence, priorisation des findings critiques, puis réduction des faux positifs
- Inclut des modèles et un script d'exécution (semgrep-config.yml, sonarqube-settings.xml, run-sast.sh)
Limites
- Périmètre strictement SAST : pas de DAST, de tests d'intrusion ni de scanners de secrets
- Les extraits de configuration restent des squelettes (quick start tronqué, peu de règles personnalisées montrées)
- Suppose un accès au code source et au pipeline CI/CD, ainsi que des décisions de politique de sécurité déjà arbitrées
À utiliser lorsqu'il faut ajouter ou durcir un scan de sécurité statique dans un dépôt ou un pipeline CI/CD.
À éviter si le besoin porte sur des tests dynamiques, du pentest manuel ou des arbitrages de politique organisationnelle plutôt que sur la configuration d'outils.
Analyse de sécurité
PrudenceThe skill provides legitimate guidance for configuring SAST tools, but it involves installation and execution of third-party tools via bash and Docker. No malicious, destructive, or exfiltrating instructions were found, so it is not risky, but the use of powerful tooling warrants caution.
- •Contains commands to install software via pip and run Docker containers (e.g., docker run sonarqube), which can modify the environment and consume resources.
- •References a script (run-sast.sh) that executes SAST tools; running third-party tooling may have side effects.
Exemples
Add a Semgrep scan to our GitHub Actions pipeline for a Python/TypeScript monorepo, using the security-audit and owasp-top-ten rulesets, and fail the build on high-severity findings.Write a custom Semgrep rule that flags any use of Python's `pickle.loads` on untrusted input, with a clear message and a test case.We're adopting SonarQube for a Java service — help me define a baseline scan, set quality gate thresholds, and plan the remediation order for critical findings.name: sast-configuration description: Configure Static Application Security Testing (SAST) tools for automated vulnerability detection in application code. Use when setting up security scanning, implementing DevSecOps practices, or automating code vulnerability detection.
SAST Configuration
Static Application Security Testing (SAST) tool setup, configuration, and custom rule creation for comprehensive security scanning across multiple programming languages.
Use this skill when
- Set up SAST scanning in CI/CD pipelines
- Create custom security rules for your codebase
- Configure quality gates and compliance policies
- Optimize scan performance and reduce false positives
- Integrate multiple SAST tools for defense-in-depth
Do not use this skill when
- You only need DAST or manual penetration testing guidance
- You cannot access source code or CI/CD pipelines
- You need organizational policy decisions rather than tooling setup
Instructions
- Identify languages, repos, and compliance requirements.
- Choose tools and define a baseline policy.
- Integrate scans into CI/CD with gating thresholds.
- Tune rules and suppressions based on false positives.
- Track remediation and verify fixes.
Safety
- Avoid scanning sensitive repos with third-party services without approval.
- Prevent leaks of secrets in scan artifacts and logs.
Overview
This skill provides comprehensive guidance for setting up and configuring SAST tools including Semgrep, SonarQube, and CodeQL.
Core Capabilities
1. Semgrep Configuration
- Custom rule creation with pattern matching
- Language-specific security rules (Python, JavaScript, Go, Java, etc.)
- CI/CD integration (GitHub Actions, GitLab CI, Jenkins)
- False positive tuning and rule optimization
- Organizational policy enforcement
2. SonarQube Setup
- Quality gate configuration
- Security hotspot analysis
- Code coverage and technical debt tracking
- Custom quality profiles for languages
- Enterprise integration with LDAP/SAML
3. CodeQL Analysis
- GitHub Advanced Security integration
- Custom query development
- Vulnerability variant analysis
- Security research workflows
- SARIF result processing
Quick Start
Initial Assessment
- Identify primary programming languages in your codebase
- Determine compliance requirements (PCI-DSS, SOC 2, etc.)
- Choose SAST tool based on language support and integration needs
- Review baseline scan to understand current security posture
Basic Setup
# Semgrep quick start
pip install semgrep
semgrep --config=auto --error
# SonarQube with Docker
docker run -d --name sonarqube -p 9000:9000 sonarqube:latest
# CodeQL CLI setup
gh extension install github/gh-codeql
codeql database create mydb --language=python
Reference Documentation
- Semgrep Rule Creation - Pattern-based security rule development
- SonarQube Configuration - Quality gates and profiles
- CodeQL Setup Guide - Query development and workflows
Templates & Assets
- semgrep-config.yml - Production-ready Semgrep configuration
- sonarqube-settings.xml - SonarQube quality profile template
- run-sast.sh - Automated SAST execution script
Integration Patterns
CI/CD Pipeline Integration
# GitHub Actions example
- name: Run Semgrep
uses: returntocorp/semgrep-action@v1
with:
config: >-
p/security-audit
p/owasp-top-ten
Pre-commit Hook
# .pre-commit-config.yaml
- repo: https://github.com/returntocorp/semgrep
rev: v1.45.0
hooks:
- id: semgrep
args: ['--config=auto', '--error']
Best Practices
-
Start with Baseline
- Run initial scan to establish security baseline
- Prioritize critical and high severity findings
- Create remediation roadmap
-
Incremental Adoption
- Begin with security-focused rules
- Gradually add code quality rules
- Implement blocking only for critical issues
-
False Positive Management
- Document legitimate suppressions
- Create allow lists for known safe patterns
- Regularly review suppressed findings
-
Performance Optimization
- Exclude test files and generated code
- Use incremental scanning for large codebases
- Cache scan results in CI/CD
-
Team Enablement
- Provide security training for developers
- Create internal documentation for common patterns
- Establish security champions program
Common Use Cases
New Project Setup
./scripts/run-sast.sh --setup --language python --tools semgrep,sonarqube
Custom Rule Development
# See references/semgrep-rules.md for detailed examples
rules:
- id: hardcoded-jwt-secret
pattern: jwt.encode($DATA, "...", ...)
message: JWT secret should not be hardcoded
severity: ERROR
Compliance Scanning
# PCI-DSS focused scan
semgrep --config p/pci-dss --json -o pci-scan-results.json
Troubleshooting
High False Positive Rate
- Review and tune rule sensitivity
- Add path filters to exclude test files
- Use nostmt metadata for noisy patterns
- Create organization-specific rule exceptions
Performance Issues
- Enable incremental scanning
- Parallelize scans across modules
- Optimize rule patterns for efficiency
- Cache dependencies and scan results
Integration Failures
- Verify API tokens and credentials
- Check network connectivity and proxy settings
- Review SARIF output format compatibility
- Validate CI/CD runner permissions
Related Skills
Tool Comparison
| Tool | Best For | Language Support | Cost | Integration | |------|----------|------------------|------|-------------| | Semgrep | Custom rules, fast scans | 30+ languages | Free/Enterprise | Excellent | | SonarQube | Code quality + security | 25+ languages | Free/Commercial | Good | | CodeQL | Deep analysis, research | 10+ languages | Free (OSS) | GitHub native |
Next Steps
- Complete initial SAST tool setup
- Run baseline security scan
- Create custom rules for organization-specific patterns
- Integrate into CI/CD pipeline
- Establish security gate policies
- Train development team on findings and remediation
Du fichier au premier essai
Le téléchargement contient exactement le contenu affiché sur cette fiche. Cette copie peut différer de la dernière version du dépôt source.
Consulter la source et ses fichiers annexesCe téléchargement contient uniquement SKILL.md. Les scripts, références, modèles et dépendances éventuels ne sont pas inclus. Récupérez les fichiers nécessaires depuis la source en conservant leur arborescence avant de poursuivre.
1. Télécharger le fichier
Télécharger SKILL.mdDepuis la racine d’un projet de test, enregistrez le fichier sous .skill-downloads/sast-configuration-mrx3xzaw/SKILL.md, ou utilisez la commande suivante. Ce dossier sert à examiner la skill avant son installation.
Commande pour macOS/Linux ou WSL : un shell POSIX et curl sont nécessaires. Sous Windows sans WSL, utilisez le bouton de téléchargement et créez le dossier manuellement.
mkdir -p '.skill-downloads/sast-configuration-mrx3xzaw' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/sast-configuration-mrx3xzaw/download' --output '.skill-downloads/sast-configuration-mrx3xzaw/SKILL.md.part' && mv '.skill-downloads/sast-configuration-mrx3xzaw/SKILL.md.part' '.skill-downloads/sast-configuration-mrx3xzaw/SKILL.md'2. Vérifier les prérequis
Lisez SKILL.md avant de l’utiliser. Si le fichier cite des scripts ou services externes, examinez-les et préparez les accès nécessaires dans votre environnement de test.
Aucune section de prérequis reconnue dans ce fichier. Cela ne signifie pas qu’il est autonome : les bibliothèques, outils et accès peuvent être cités ailleurs dans le contenu ou dans le dépôt source.
Les plateformes de la fiche sont des indications du catalogue. Les chemins ci-dessous suivent la documentation des outils ; ils ne prouvent pas que cette skill y a été exécutée. Aucune version minimale de ces outils n’est attestée pour cette fiche.
3. Charger la skill
Après vérification, copiez le dossier complet dans le projet avec l’une des commandes ci-dessous, puis ouvrez une nouvelle session de l’outil. La commande s’arrête si un dossier du même nom existe déjà : comparez les fichiers avant de le remplacer.
Claude Code
test -f '.skill-downloads/sast-configuration-mrx3xzaw/SKILL.md' && test -s '.skill-downloads/sast-configuration-mrx3xzaw/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/sast-configuration' && cp -R '.skill-downloads/sast-configuration-mrx3xzaw' '.claude/skills/sast-configuration'Cursor
test -f '.skill-downloads/sast-configuration-mrx3xzaw/SKILL.md' && test -s '.skill-downloads/sast-configuration-mrx3xzaw/SKILL.md' && mkdir -p '.cursor/skills' && test ! -e '.cursor/skills/sast-configuration' && cp -R '.skill-downloads/sast-configuration-mrx3xzaw' '.cursor/skills/sast-configuration'Codex
test -f '.skill-downloads/sast-configuration-mrx3xzaw/SKILL.md' && test -s '.skill-downloads/sast-configuration-mrx3xzaw/SKILL.md' && mkdir -p '.agents/skills' && test ! -e '.agents/skills/sast-configuration' && cp -R '.skill-downloads/sast-configuration-mrx3xzaw' '.agents/skills/sast-configuration'OpenSkills
OpenSkills doit déjà être installé. La procédure locale install/read est contrôlée avec OpenSkills 1.5.0, qui exige Node.js ≥ 20.6.0. Aucun slug du catalogue n’est résolu automatiquement.
Installation officielle d’OpenSkillsopenskills install './.skill-downloads/sast-configuration-mrx3xzaw'openskills read 'sast-configuration-mrx3xzaw'La lecture doit afficher le contenu du fichier installé et son dossier de base. Elle ne lance ni la skill ni ses dépendances.
Pour un agent qui lit AGENTS.md, synchronisez ensuite l’index. Cette commande modifie AGENTS.md : relisez le diff avant de l’utiliser.
openskills syncMode manuel ou autre outil : joignez SKILL.md à une conversation, ou ouvrez-le dans un agent capable de lire les fichiers. Ajoutez les ressources annexes nécessaires. Il n’existe pas de dossier universel reconnu par tous les outils.
4. Faire un premier essai
Utilisez une entrée courte et fictive : un endpoint d’API, un petit document ou un brief d’interface. Dans une nouvelle conversation, joignez le fichier ou donnez son chemin à l’agent, puis adaptez cette demande :
Lis .skill-downloads/sast-configuration-mrx3xzaw/SKILL.md et applique ses instructions à cet exemple : [décrire une entrée de test]. Indique les fichiers, dépendances ou accès qui manquent. Produis le résultat demandé par la skill sans inventer de données ni exécuter de script non examiné.Résultat attendu : une sortie correspondant aux instructions de la skill, ou une liste précise des prérequis manquants. Une simple confirmation de lecture ne valide pas le premier usage. Si une ressource externe est indisponible, ce parcours reste à tester.
Sécurité AMM DeFi
Securite
Checklist de sécurité pour les contrats Solidity AMM, pools de liquidité et flux de swap. Couvre réentrance, attaques par donation, manipulation d'oracles, etc.
Créateur de règles Semgrep
Securite
Crée des règles Semgrep personnalisées pour détecter des vulnérabilités de sécurité, des motifs de bugs et des motifs de code. Inclut une méthodologie de test en premier, le support du mode taint et des étapes de validation. Utile pour construire des détections d'analyse statique ciblées.
Revue barre d'outils développement
Securite
Règles de sécurité pour la barre d'outils de développement, le client PostHog et les feature flags. À utiliser lors de la revue de modifications des composants dev-tools et connexes.