Documentation Herozion
Herozion est un scanner de sécurité statique autonome. Il analyse votre code source localement, sans dépendances, et produit un score de sécurité de 0 à 100 basé sur 14 catégories OWASP et de performance.
Moins de 30 secondes pour installer et scanner. Trouvez votre plateforme dans la section ci-dessous et suivez les étapes numérotées, une par une.
Installation
Choisissez votre plateforme — puis tapez les commandes dans l'ordre, une par une.
Homebrew est la méthode recommandée sur macOS. Il détecte automatiquement votre architecture (Intel ou Apple Silicon) et gère les mises à jour.
Un tap Homebrew est un dépôt de formules tiers. Cette commande indique à Homebrew où chercher la formule Herozion.
brew tap Herozion/herozion
Télécharge et installe le binaire correspondant à votre chip (ARM64 pour M1/M2/M3/M4, AMD64 pour Intel).
brew install herozion
Affiche la version installée. Si la commande est introuvable, ouvrez un nouveau terminal.
herozion --version
Placez-vous dans le dossier de votre projet et analysez tout le code. Le . désigne le dossier courant.
cd /chemin/vers/votre/projet
herozion scan .
Si macOS affiche "impossible de vérifier l'identité du développeur", exécutez cette commande une fois :
xattr -d com.apple.quarantine $(which herozion)
Cette commande supprime l'attribut de quarantaine mis par macOS sur les binaires téléchargés depuis Internet.
Mettre à jour
Toujours lancer brew update avant brew upgrade. Sans cela, Homebrew ne détecte pas les nouvelles versions disponibles.
brew update && brew upgrade herozion
Installation manuelle (sans Homebrew)
Téléchargez le binaire correspondant à votre architecture directement depuis GitHub Releases.
# Apple Silicon (M1/M2/M3/M4)
curl -fSL -o herozion https://github.com/Herozion/scanner-releases/releases/latest/download/herozion-macos-arm64
# Intel
curl -fSL -o herozion https://github.com/Herozion/scanner-releases/releases/latest/download/herozion-macos-amd64
chmod +x herozion
sudo mv herozion /usr/local/bin/
chmod +x rend le fichier exécutable. sudo mv ... /usr/local/bin/ le place dans le PATH système pour pouvoir l'appeler depuis n'importe quel dossier.
Suivez ces étapes dans l'ordre depuis un terminal. Aucun gestionnaire de paquet n'est requis.
Récupère la dernière version Linux x64 depuis GitHub Releases et la sauvegarde sous le nom herozion.
curl -fSL -o herozion https://github.com/Herozion/scanner-releases/releases/latest/download/herozion-linux-amd64
Sans ce chmod, le système refuse de lancer le fichier — par défaut les téléchargements ne sont pas exécutables.
chmod +x herozion
Place le binaire dans /usr/local/bin/ pour pouvoir taper herozion depuis n'importe quel dossier.
sudo mv herozion /usr/local/bin/
Affiche la version installée. Si la commande est introuvable, ouvrez un nouveau terminal.
herozion --version
Placez-vous dans le dossier de votre projet et analysez tout le code. Le . désigne le dossier courant.
cd /chemin/vers/votre/projet
herozion scan .
Chaque release publie un fichier
CHECKSUMS.sha256 à côté des binaires sur GitHub Releases. Téléchargez-le dans le même dossier que le binaire, puis vérifiez :
sha256sum -c CHECKSUMS.sha256
Deux options — choisissez une seule :
Option A — npm / npx recommandé
Nécessite Node.js installé. Aucune modification du PATH, aucun droit admin.
Clic-droit sur le dossier de votre projet → Ouvrir dans Terminal (ou lancez PowerShell puis cd).
cd C:\chemin\vers\votre\projet
npx télécharge et exécute Herozion à la volée — pas d'installation globale. Le . désigne le dossier courant.
npx herozion scan .
Pour verrouiller la version à l'échelle de l'équipe, ajoutez Herozion comme dépendance de dev :
npm install herozion --save-dev
Option B — Binaire .exe direct
Téléchargez le .exe et exécutez-le depuis PowerShell. Aucune dépendance, mais pas de mise à jour automatique.
Cliquez sur le bouton ci-dessous pour télécharger le fichier .exe.
Renommez le fichier téléchargé en herozion.exe (remplacez herozion-windows-amd64.exe par herozion.exe).
Déplacez le fichier herozion.exe dans le dossier du projet que vous allez analyser.
Depuis PowerShell, dans le dossier où se trouve herozion.exe, exécutez ces commandes :
Affiche la version installée de Herozion.
.\herozion.exe --version
Lance le scan complet du dossier courant. Le . désigne le dossier courant. Remplacez par un chemin pour analyser un autre dossier.
.\herozion.exe scan .
Solution universelle — fonctionne sur macOS, Linux et Windows. Nécessite uniquement Node.js.
Ouvrez un terminal dans le dossier que vous voulez analyser.
cd /chemin/vers/votre/projet
npx télécharge Herozion à la volée et l'exécute — pas d'installation permanente. Le . désigne le dossier courant.
npx herozion scan .
Ajoutez Herozion comme dépendance de dev dans
package.json. Toute l'équipe aura la même version.
npm install herozion --save-dev
npx herozion scan .
Mettre à jour : npm install herozion@latest --save-dev
Premier scan — détails
Section de référence — si vous avez suivi les étapes d'installation ci-dessus, vous avez déjà lancé votre premier scan. Voici ce qu'Herozion fait exactement et à quoi ressemble la sortie.
Herozion va :
- Parcourir récursivement tous les fichiers de code du répertoire
- Appliquer les 14 règles d'analyse (OWASP + performance)
- Afficher un rapport dans le terminal avec le score et les vulnérabilités trouvées
- Sauvegarder le rapport JSON dans
~/.herozion/ - Retourner un code de sortie (
0,1ou2)
Exemple de sortie
$ herozion scan .
📁 Scanning: /mon-projet
✅ Scanned 128 files in 1.3s
┌─────────────────────────────────┐
│ Security Score: 72/100 (C) │
└─────────────────────────────────┘
CRITICAL SQL injection detected db/queries.py:42
HIGH Hardcoded password detected config/settings.py:8
MEDIUM Debug mode enabled in prod app.py:3
Commandes
Herozion dispose de quatre commandes principales :
herozion scan <chemin>
Principale
Lance l'analyse de sécurité sur le répertoire spécifié. C'est la commande que vous utiliserez au quotidien.
| Exemple | Rôle |
|---|---|
herozion scan . | Analyse le dossier courant. |
herozion scan /path/to/project | Analyse un dossier spécifique. |
herozion scan . -o json | Analyse et produit une sortie JSON (utile en CI/CD). |
herozion scan . -e vendor -e dist | Analyse en excluant les dossiers vendor et dist. |
herozion scan . --verbose | Affiche chaque fichier analysé au fur et à mesure — utile pour vérifier ce qui est lu. |
herozion history
Affiche l'historique de vos précédents scans (date, chemin, score, catégories). Les rapports sont stockés localement dans ~/.herozion/.
herozion history
herozion help
Affiche la liste complète des commandes et options disponibles, directement dans le terminal.
herozion help
herozion export [scan-id]
Nouveau
Exporte les données d'un scan au format JSON, CSV, HTML ou PDF. Sans argument, exporte le dernier scan effectué. Le résultat est affiché sur la sortie standard (JSON/CSV) ou écrit dans un fichier via -o (HTML/PDF).
| Exemple | Rôle |
|---|---|
herozion export | Exporte le dernier scan en JSON vers la sortie standard. |
herozion export --format csv | Exporte le dernier scan en CSV vers la sortie standard. |
herozion export --format html -o rep.html | Génère un rapport HTML et l'écrit dans rep.html. |
herozion export --format pdf -o rep.pdf | Génère un rapport PDF. Nécessite la dépendance optionnelle fpdf2 (pip install herozion[pdf]). |
herozion export abc123def --format json -o out.json | Exporte le scan identifié par abc123def en JSON dans out.json. |
herozion fix <n>
herozion fix-all
Nouveau
Applique un correctif sûr directement dans votre code pour certaines catégories de vulnérabilités. Affiche toujours un diff unifié et demande confirmation avant d'écrire. Disponible sur les plans Dev, Team et Enterprise.
| Exemple | Rôle |
|---|---|
herozion fix 3 | Corrige la vulnérabilité #3 (index affiché après un scan). Diff puis confirmation avant écriture. |
herozion fix-all | Corrige en une fois toutes les vulnérabilités auto-fixables. Affiche un diff par correctif, puis une seule confirmation. |
herozion fix 3 --yes | Applique le correctif sans prompt — utile pour les scripts. |
herozion fix-all --yes | Applique tous les correctifs sans prompt — usage CI/CD. |
Les vulnérabilités nécessitant un changement de logique (SQL injection, BOLA, etc.) sont signalées mais ne peuvent pas être corrigées automatiquement — une recommandation détaillée est affichée à la place.
herozion info
Affiche les informations sur l'outil installé et vos paramètres actuels : version, plan, langue, chemins de stockage, état de l'authentification.
| Exemple | Rôle |
|---|---|
herozion info | Affiche version, plan actif, langue, répertoire des rapports et statut d'authentification. |
herozion register
herozion login
herozion push
Nouveau
Synchronise vos rapports avec le dashboard Herozion (historique, tendances, accès équipe). L'authentification utilise un code à usage unique envoyé par email — jamais affiché dans le terminal. La session JWT est mise en cache pendant 24 h dans ~/.herozion/auth.json (mode 600) ; les appels push suivants la réutilisent silencieusement jusqu'à expiration.
| Exemple | Rôle |
|---|---|
herozion register | Crée un compte Herozion. |
herozion login | Connexion par code à usage unique reçu par email. |
herozion push | Envoie tous les rapports locaux non synchronisés au dashboard. |
herozion push --project-id your-project-id | Attache les rapports à un projet spécifique du dashboard. |
herozion scan . && herozion push | Scan suivi immédiatement d'un push — utile en CI/CD. |
herozion notify-pr
Nouveau
Poste un résumé du scan en commentaire sur une pull request GitHub (grade, score, top vulnérabilités). Le --github-token est transféré directement à GitHub via le backend Herozion et n'est jamais stocké. Permission requise : pull-requests: write. Récupérez le <scan_id> via herozion history ou herozion scan . -o json.
| Exemple | Rôle |
|---|---|
herozion notify-pr <scan_id> --repo owner/repo --pr 42 --github-token ghp_... | Poste un commentaire de résumé sur la PR #42 avec le token passé en flag. |
GITHUB_TOKEN=ghp_... herozion notify-pr <scan_id> --repo owner/repo --pr 42 | Même comportement, avec le token fourni via la variable d'environnement — recommandé pour CI/CD. |
herozion auth sessions
herozion auth revoke [id]
Nouveau
Liste toutes les sessions actives du compte. Affiche un tableau avec l'ID de session, la source (CLI / Dashboard), l'IP masquée (192.168.x.x), le user-agent et la date de création. La session courante est signalée par ► et son ID affiché en vert.
Révoque une session active. Sans argument, révoque la session courante — équivalent d'un logout : appelle POST /auth/logout et supprime ~/.herozion/auth.json localement. Avec un <id>, révoque une session distante spécifique sans affecter la session locale.
| Exemple | Rôle |
|---|---|
herozion auth sessions | Affiche toutes les sessions actives — la session courante est signalée par ►. |
herozion auth revoke | Révoque la session courante et supprime le cache local ~/.herozion/auth.json. |
herozion auth revoke <id> | Révoque une session spécifique (autre appareil) identifiée par son ID. La session locale n'est pas affectée. |
Récupérez l'ID de session via herozion auth sessions avant d'appeler herozion auth revoke <id>.
Options & flags
| Option | Valeur | Description |
|---|---|---|
-o, --output |
terminal | json |
Format de sortie. terminal (défaut) : rapport lisible. json : objet JSON machine-readable, idéal pour CI/CD. |
-e, --exclude |
<dossier> |
Exclut un dossier de l'analyse. Répétable : -e vendor -e dist -e .git. |
--verbose |
— | Affiche en temps réel chaque fichier analysé. Permet de vérifier exactement ce qu'Herozion lit — rien de plus que le dossier indiqué. |
--lang |
fr | en | es | pt |
Langue de l'interface. Peut aussi être défini via la variable d'environnement HEROZION_LANG. |
--fail-on |
critical | high | medium | low |
Bloque le pipeline si au moins une vulnérabilité de la sévérité indiquée est trouvée. Cumulable avec --min-score. |
--min-score |
<0–100> |
Définit le seuil de score minimum (défaut : 60). Le pipeline échoue si le score est strictement inférieur. Remplace la valeur par défaut. |
--version |
— | Affiche la version installée. |
Sorties & codes de retour
Herozion retourne un code de sortie exploitable dans vos scripts CI/CD. Le blocage est déclenché par l'une ou l'autre condition — les deux messages sont affichés si les deux échouent :
| Code | Signification | Usage CI/CD |
|---|---|---|
0 |
Score ≥ seuil et aucune sévérité bloquante trouvée. | Le pipeline continue. |
1 |
Score inférieur au seuil (--min-score, défaut 60) et/ou sévérité bloquante détectée (--fail-on). |
Le pipeline est bloqué — message ❌ affiché pour chaque condition. |
2 |
Rate limit atteint (tier gratuit). | Réessayez plus tard. |
Flags de politique d'échec
| Flag | Description | Exemple |
|---|---|---|
--min-score <n> |
Échec si score < n. Défaut : 60. | --min-score 80 |
--fail-on <sévérité> |
Échec si au moins une vuln de cette sévérité est trouvée. | --fail-on critical |
Sortie JSON (-o json)
Utilisez la sortie JSON pour intégrer le rapport dans vos outils d'analyse ou dashboards :
herozion scan . -o json > rapport.json
Le fichier JSON contient : score, note (A–F), liste des vulnérabilités par catégorie, nombre de fichiers scannés, durée. Une clé "policy" est incluse avec fail_on et min_score pour permettre aux scripts CI de lire la politique active.
{
"score": 74,
"grade": "B",
"policy": {
"min_score": 80,
"fail_on": "critical"
},
...
}
Intégration CI/CD
Herozion s'intègre dans n'importe quel pipeline via son code de sortie et sa sortie JSON. Utilisez --min-score et --fail-on pour définir une politique d'échec stricte — les deux conditions peuvent être combinées.
GitHub Actions
- name: Télécharger Herozion
run: |
curl -fSL -o herozion https://github.com/Herozion/scanner-releases/releases/latest/download/herozion-linux-amd64
chmod +x herozion
- name: Scanner la sécurité
run: |
./herozion scan . -o json > security-report.json
./herozion scan . --min-score 80 --fail-on critical
- name: Archiver le rapport
if: always()
uses: actions/upload-artifact@v4
with:
name: security-report
path: security-report.json
| Ligne | Rôle |
|---|---|
curl -fSL -o herozion … | Télécharge le binaire Linux dans le runner GitHub Actions. |
chmod +x herozion | Le rend exécutable dans le runner. |
./herozion scan . -o json > security-report.json | Génère le rapport JSON sans bloquer le pipeline (les flags JSON n'affectent pas le code de sortie). |
./herozion scan . --min-score 80 --fail-on critical | Politique stricte : bloque si score < 80 ou si une vulnérabilité critique est trouvée. |
if: always() | Archive le rapport même si l'étape précédente a échoué — pour pouvoir le consulter. |
GitLab CI
security_scan:
stage: test
before_script:
- curl -fSL -o herozion https://github.com/Herozion/scanner-releases/releases/latest/download/herozion-linux-amd64
- chmod +x herozion
script:
- ./herozion scan . -o json > security-report.json
- ./herozion scan . --min-score 80 --fail-on critical
artifacts:
paths:
- security-report.json
when: always
when: always conserve le rapport même si le scan a bloqué le pipeline. stage: test positionne l'analyse avant le déploiement.
Configuration
Herozion fonctionne sans aucune configuration. Ces variables d'environnement sont optionnelles et utiles pour les intégrations CI/CD ou les setups multi-projets :
| Variable | Défaut | Description |
|---|---|---|
HEROZION_API_URL |
non définie | URL de l'API pour les installations self-hosted. |
HEROZION_API_KEY |
non définie | Clé API utilisée par la commande herozion push pour envoyer les rapports au dashboard. |
HEROZION_REPORT_DIR |
~/.herozion |
Répertoire local où les rapports JSON sont sauvegardés. |
HEROZION_LANG |
auto-détecté | Langue de l'interface : fr, en, es, pt. Équivalent à --lang. |
HEROZION_PARALLEL_WORKERS |
auto | Nombre de workers parallèles pour le scan. Par défaut : nombre de cœurs CPU disponibles. |
Exemple de fichier .env
# URL de l'API (self-hosted)
HEROZION_API_URL=https://api.example.com
# Clé API pour herozion push
HEROZION_API_KEY=sk-xxxxxxxxxxxx
# Répertoire des rapports
HEROZION_REPORT_DIR=/tmp/rapports
# Langue par défaut
HEROZION_LANG=en
# Parallélisme
HEROZION_PARALLEL_WORKERS=4