v1.0.82 · Documentation

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.

Démarrage rapide
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.

1
Ajouter le tap Herozion

Un tap Homebrew est un dépôt de formules tiers. Cette commande indique à Homebrew où chercher la formule Herozion.

brew tap Herozion/herozion
2
Installer Herozion

Télécharge et installe le binaire correspondant à votre chip (ARM64 pour M1/M2/M3/M4, AMD64 pour Intel).

brew install herozion
3
Vérifier l'installation

Affiche la version installée. Si la commande est introuvable, ouvrez un nouveau terminal.

herozion --version
4
Lancer votre premier scan

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 .
macOS peut bloquer le binaire
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.

1
Télécharger le binaire

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
2
Le rendre exécutable

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
3
Déplacer dans le PATH

Place le binaire dans /usr/local/bin/ pour pouvoir taper herozion depuis n'importe quel dossier.

sudo mv herozion /usr/local/bin/
4
Vérifier l'installation

Affiche la version installée. Si la commande est introuvable, ouvrez un nouveau terminal.

herozion --version
5
Lancer votre premier scan

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 .
Vérifier l'intégrité du binaire (optionnel)
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.

1
Ouvrir PowerShell dans votre projet

Clic-droit sur le dossier de votre projet → Ouvrir dans Terminal (ou lancez PowerShell puis cd).

cd C:\chemin\vers\votre\projet
2
Lancer Herozion via npx

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.

1
Étape 1 — Télécharger herozion.exe

Cliquez sur le bouton ci-dessous pour télécharger le fichier .exe.

Télécharger herozion.exe (v1.0.82)
2
Étape 2 — Renommer en herozion.exe

Renommez le fichier téléchargé en herozion.exe (remplacez herozion-windows-amd64.exe par herozion.exe).

3
Étape 3 — Placer dans le dossier du projet

Déplacez le fichier herozion.exe dans le dossier du projet que vous allez analyser.

4
Étape 4 — Vérifier la version et scanner

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.

1
Se placer dans votre projet

Ouvrez un terminal dans le dossier que vous voulez analyser.

cd /chemin/vers/votre/projet
2
Lancer le scan via npx

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 .
Verrouiller la version pour l'équipe
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 :

  1. Parcourir récursivement tous les fichiers de code du répertoire
  2. Appliquer les 14 règles d'analyse (OWASP + performance)
  3. Afficher un rapport dans le terminal avec le score et les vulnérabilités trouvées
  4. Sauvegarder le rapport JSON dans ~/.herozion/
  5. Retourner un code de sortie (0, 1 ou 2)

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.

ExempleRôle
herozion scan .Analyse le dossier courant.
herozion scan /path/to/projectAnalyse un dossier spécifique.
herozion scan . -o jsonAnalyse et produit une sortie JSON (utile en CI/CD).
herozion scan . -e vendor -e distAnalyse en excluant les dossiers vendor et dist.
herozion scan . --verboseAffiche 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).

ExempleRôle
herozion exportExporte le dernier scan en JSON vers la sortie standard.
herozion export --format csvExporte le dernier scan en CSV vers la sortie standard.
herozion export --format html -o rep.htmlGénère un rapport HTML et l'écrit dans rep.html.
herozion export --format pdf -o rep.pdfGénère un rapport PDF. Nécessite la dépendance optionnelle fpdf2 (pip install herozion[pdf]).
herozion export abc123def --format json -o out.jsonExporte 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.

ExempleRôle
herozion fix 3Corrige la vulnérabilité #3 (index affiché après un scan). Diff puis confirmation avant écriture.
herozion fix-allCorrige en une fois toutes les vulnérabilités auto-fixables. Affiche un diff par correctif, puis une seule confirmation.
herozion fix 3 --yesApplique le correctif sans prompt — utile pour les scripts.
herozion fix-all --yesApplique 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.

ExempleRôle
herozion infoAffiche 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.

ExempleRôle
herozion registerCrée un compte Herozion.
herozion loginConnexion par code à usage unique reçu par email.
herozion pushEnvoie tous les rapports locaux non synchronisés au dashboard.
herozion push --project-id your-project-idAttache les rapports à un projet spécifique du dashboard.
herozion scan . && herozion pushScan 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.

ExempleRô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 42Mê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.

ExempleRôle
herozion auth sessionsAffiche toutes les sessions actives — la session courante est signalée par ►.
herozion auth revokeRé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

OptionValeurDescription
-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 :

CodeSignificationUsage 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

FlagDescriptionExemple
--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
LigneRôle
curl -fSL -o herozion …Télécharge le binaire Linux dans le runner GitHub Actions.
chmod +x herozionLe rend exécutable dans le runner.
./herozion scan . -o json > security-report.jsonGé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 criticalPolitique 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 :

VariableDéfautDescription
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