Skip to main content

⚡ Fast and powerful static code security scanner - Détecte 25+ vulnérabilités OWASP

Project description

⚡ Scanix - Static Code Security Scanner

Version Python License OWASP Platform

Scanner de vulnérabilités statique rapide - Détecte 25+ failles de sécurité OWASP

Développé par Riyad ODJOUADE (Ore)riyadodjouade@gmail.com


🚀 Installation

📦 Méthode 1 : Avec pip/pipx (Recommandé - Simple)

# Installation globale avec pipx (recommandé)
pipx install scanix

# Ou avec pip
pip install scanix

# Lancement
scanix

Avantages :

  • ✅ Installation en une commande
  • ✅ Pas de gestion de dépendances
  • ✅ Mises à jour faciles : pipx upgrade scanix
  • ✅ Désinstallation propre : pipx uninstall scanix

💻 Méthode 2 : Depuis GitHub (Développeurs)

Windows

REM Cloner le projet
git clone https://github.com/Ore2025/scanix.git
cd scanix

REM Installer avec le script
install.bat

REM Lancer
scanix

Linux / macOS

# Cloner le projet
git clone https://github.com/Ore2025/scanix.git
cd scanix

# Installer avec le script
chmod +x install.sh
./install.sh

# Lancer
./scanix

Le script install.sh fait automatiquement :

  • Crée un environnement virtuel
  • Installe toutes les dépendances
  • Crée un lanceur ./scanix pratique

🔧 Méthode 3 : Installation Manuelle

Avec Environnement Virtuel (Recommandé)

# Cloner
git clone https://github.com/Ore2025/scanix.git
cd scanix

# Créer l'environnement virtuel
python3 -m venv venv

# Activer
# Linux/macOS:
source venv/bin/activate
# Windows:
venv\Scripts\activate

# Installer les dépendances
pip install -r requirements.txt

# Lancer
python run.py

Sans Environnement Virtuel (Kali Linux / Debian)

# Cloner
git clone https://github.com/Ore2025/scanix.git
cd scanix

# Installer directement (Kali/Debian uniquement)
pip install -r requirements.txt --break-system-packages

# Lancer
python3 run.py

⚠️ Note : --break-system-packages contourne la protection PEP 668 de Kali Linux. Utilisez avec précaution.


🖥️ Méthode 4 : Mode VM / Test Rapide (Usage Temporaire)

Parfait pour tester sur une VM ou machine temporaire :

# Cloner et tester rapidement
git clone https://github.com/Ore2025/scanix.git
cd scanix

# Créer venv temporaire
python3 -m venv .venv
source .venv/bin/activate

# Installer et lancer
pip install -r requirements.txt
python run.py

# Après utilisation, quitter et nettoyer
deactivate
cd ..
rm -rf scanix  # Supprime tout (code + venv)

Avantages :

  • ✅ Installation isolée
  • ✅ Aucune trace après suppression
  • ✅ Idéal pour tests ponctuels
  • ✅ Pas d'impact sur le système

📊 Comparaison des Méthodes

Méthode Difficulté Rapidité Usage
pipx ⭐ Facile ⚡ Rapide Production, usage quotidien
Script install ⭐⭐ Moyen ⚡⚡ Moyen Développement, contribution
Manuelle venv ⭐⭐⭐ Avancé ⚡⚡ Moyen Contrôle total
Sans venv (Kali) ⭐⭐ Moyen ⚡ Rapide Kali Linux uniquement
VM/Temporaire ⭐⭐ Moyen ⚡⚡ Moyen Tests ponctuels, VMs

📸 Aperçu

Interface Principale

Welcome Screen

Résultats d'Analyse

Results

Plus de captures d'écran

File Selection Scanning Export


✨ Fonctionnalités

🔍 Deux Modes de Scan

Mode Vitesse Détections Usage
🚀 Rapide 2s/fichier 6 vulnérabilités critiques Check quotidien
🔬 Complet 5s/fichier 25+ catégories OWASP Audit complet

🛡️ Détections

Mode Rapide (6 critiques) :

  • Injection SQL
  • XSS (Cross-Site Scripting)
  • Secrets exposés (API keys, passwords)
  • Injection de commandes OS
  • Path Traversal
  • CSRF

Mode Complet (25+) : Tout le rapide +

  • Injection NoSQL/LDAP/XML (XXE)
  • Désérialisation non sécurisée
  • Cryptographie faible (MD5, SHA1)
  • Upload de fichiers dangereux
  • Configuration dangereuse
  • Authentification faible
  • Et 15+ autres catégories...

🌐 Langages Supportés

Python • JavaScript/TypeScript • PHP • Java • C/C++ • Go • Ruby • HTML • SQL • YAML • XML

💾 Formats d'Export

📄 JSON • 🌐 HTML • 📝 TXT • 📊 CSV

Emplacement des exports :

  • Windows : C:\Users\VotreNom\SecureCode_Exports\
  • Linux/macOS : ~/SecureCode_Exports/

📖 Utilisation

Démarrage

# Si installé avec pip/pipx
scanix

# Si cloné depuis GitHub
./scanix
# ou
python run.py

Navigation

Menu Principal :
  1 → Scanner un fichier
  2 → Scanner un dossier
  3 → À propos
  Q → Quitter

Raccourcis :
  Ctrl+Q : Quitter
  Escape : Retour
  Ctrl+A : Tout sélectionner
  Ctrl+D : Tout désélectionner
  ↑↓     : Naviguer

Workflow Type

# 1. Lancer Scanix
scanix

# 2. Choisir "Scanner un dossier" (option 2)
# 3. Naviguer jusqu'à votre projet
# 4. Sélectionner les fichiers (Espace ou Ctrl+A)
# 5. Choisir le mode (Rapide ou Complet)
# 6. Consulter les résultats
# 7. Exporter en HTML/JSON si besoin

📊 Exemples de Détection

1. Injection SQL (CWE-89)

# ❌ VULNÉRABLE
query = f"SELECT * FROM users WHERE id = {user_id}"
db.execute(query)

# ✅ SÉCURISÉ
query = "SELECT * FROM users WHERE id = ?"
db.execute(query, (user_id,))

2. Secrets en Dur (CWE-798)

# ❌ VULNÉRABLE
API_KEY = "sk_live_abc123xyz789"
PASSWORD = "admin123"

# ✅ SÉCURISÉ
import os
API_KEY = os.getenv('API_KEY')
PASSWORD = os.getenv('DB_PASSWORD')

3. XSS (CWE-79)

// ❌ VULNÉRABLE
element.innerHTML = userInput;

// ✅ SÉCURISÉ
element.textContent = userInput;

4. Path Traversal (CWE-22)

# ❌ VULNÉRABLE
filename = request.GET['file']
with open(f"uploads/{filename}") as f:
    content = f.read()

# ✅ SÉCURISÉ
from pathlib import Path
base_dir = Path("uploads").resolve()
file_path = (base_dir / filename).resolve()
if not str(file_path).startswith(str(base_dir)):
    raise ValueError("Path traversal detected")
with open(file_path) as f:
    content = f.read()

🎯 Cas d'Usage

✅ Développement Quotidien

# Check rapide avant commit
scanix
# Mode Rapide → ~10 secondes

✅ Code Review

# Audit avant merge
scanix
# Mode Complet → Export HTML pour l'équipe

✅ Audit de Sécurité

# Scan complet du projet
scanix
# Mode Complet → Export JSON + HTML

✅ Intégration CI/CD

GitHub Actions

name: Security Scan
on: [push, pull_request]

jobs:
  security:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: actions/setup-python@v2
      - name: Install Scanix
        run: pip install scanix
      - name: Run Scan
        run: scanix --mode quick --fail-on-critical

🔒 Vulnérabilités Détectées

Liste complète des 25+ catégories

🔴 Critiques (5)

  • Secrets en Dur (CWE-798)
  • Injection SQL (CWE-89)
  • Injection Commande OS (CWE-78)
  • Injection Code (CWE-94)
  • Désérialisation (CWE-502)

🟠 Élevées (6)

  • XSS (CWE-79)
  • XXE - XML External Entity (CWE-611)
  • Path Traversal (CWE-22)
  • Cryptographie Faible (CWE-327)
  • Injection NoSQL (CWE-943)
  • Injection LDAP (CWE-90)

🟡 Moyennes (7)

  • CSRF (CWE-352)
  • Upload Dangereux (CWE-434)
  • Authentification Faible (CWE-287)
  • Open Redirect (CWE-601)
  • Session Fixation (CWE-384)
  • Clickjacking (CWE-1021)
  • CORS Mal Configuré (CWE-942)

🟢 Faibles (7+)

  • Info Sensible en Logs (CWE-532)
  • Mode Debug Activé (CWE-489)
  • Permissions Fichiers (CWE-732)
  • Random Faible (CWE-330)
  • Et 3+ autres...

Total : 25+ catégories OWASP


❓ FAQ

Q : Compatible Windows/Linux/Mac ?
R : Oui, fonctionne sur les 3 plateformes.

Q : Python requis ?
R : Oui, Python 3.8+ nécessaire.

Q : Gratuit ?
R : Oui, 100% gratuit et open-source (MIT License).

Q : Remplace un audit professionnel ?
R : Non, c'est un outil d'aide. Un audit manuel reste essentiel.

Q : Fonctionne hors ligne ?
R : Oui, une fois installé, fonctionne sans connexion internet.

Q : Données envoyées quelque part ?
R : Non, tout reste local. Aucune donnée n'est transmise.


🔧 Configuration Système

Prérequis

OS Python Installation Python
Windows 10/11 3.8+ https://www.python.org/downloads/
Ubuntu/Debian 3.8+ sudo apt install python3 python3-pip
Kali Linux 3.8+ Déjà installé
macOS 3.8+ brew install python3 ou déjà installé

Vérifier Python

# Vérifier la version
python3 --version
# Doit afficher: Python 3.8.x ou supérieur

# Si python3 non trouvé (Windows)
python --version

🐛 Problèmes Courants

Windows - "python not found"

py --version
py -m pip install scanix

Linux - Permission denied

chmod +x install.sh scanix run.py

Kali - externally-managed-environment

# Solution 1 : pipx (recommandé)
pipx install scanix

# Solution 2 : venv
python3 -m venv venv
source venv/bin/activate
pip install scanix

macOS - SSL Certificate Error

/Applications/Python\ 3.x/Install\ Certificates.command

📄 Licence

MIT License - Libre d'utilisation et modification


👤 Auteur

Riyad ODJOUADE (Ore)


🙏 Remerciements

  • OWASP pour les standards de sécurité
  • Textual pour le framework TUI
  • Rich pour le rendu terminal
  • La communauté Python

⭐ Support

Si Scanix vous aide :

  1. Star le projet sur GitHub
  2. 📢 Partagez avec vos collègues
  3. 💬 Feedback via Issues
pip install scanix

Fait avec ❤️ pour la sécurité du code

GitHub PyPI Downloads

⚡ Scanix v2.0 • Fast • Powerful • OWASP

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

scanix-2.0.0.tar.gz (353.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

scanix-2.0.0-py3-none-any.whl (46.3 kB view details)

Uploaded Python 3

File details

Details for the file scanix-2.0.0.tar.gz.

File metadata

  • Download URL: scanix-2.0.0.tar.gz
  • Upload date:
  • Size: 353.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for scanix-2.0.0.tar.gz
Algorithm Hash digest
SHA256 8790a5997bbc823c11211f99ef7cd5bce8b6960b7c27e847c5ab8c4f103bc980
MD5 1aa8be460d2657f17210584c4a24268a
BLAKE2b-256 09653551d8277a4027069ed5a7e65af8ac79db4b4ee709b80ef7a3d60279fe6f

See more details on using hashes here.

File details

Details for the file scanix-2.0.0-py3-none-any.whl.

File metadata

  • Download URL: scanix-2.0.0-py3-none-any.whl
  • Upload date:
  • Size: 46.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for scanix-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a4669934744da70444298bc8a4c134cbfae79c1c86fe8db135d1aca1b72a3b3e
MD5 fa543db7fb4932370e867a215e95d6d1
BLAKE2b-256 b0e34ae24afbf357af65187dc366672be2422be55b55009c1035c7e34db50661

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page