Skip to content

mmct13/Sentinelle

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🛡️ Sentinelle

Sentinelle est un outil de vérification d'intégrité de fichiers (File Integrity Monitor) écrit en Go. Il détecte les modifications, créations et suppressions de fichiers en comparant leurs empreintes SHA-256 à une baseline de référence.

✨ Fonctionnalités

  • 🔐 Hashing SHA-256 pour une détection fiable des modifications
  • Hashing parallèle avec worker pools (utilise tous les cœurs CPU)
  • 👁️ Mode Watch pour une surveillance en temps réel
  • 🚫 Système d'exclusion configurable (.git, node_modules, etc.)
  • 📊 Sortie JSON pour l'intégration avec d'autres outils
  • 🗄️ Stockage SQLite pour la persistance de la baseline

📦 Installation

# Cloner le projet
git clone https://github.com/votre-repo/sentinelle.git
cd sentinelle

# Compiler
go build -o sentinelle.exe ./cmd/sentinelle

# Ou utiliser Make
make build

🚀 Utilisation

Commandes de base

# Créer la baseline initiale
sentinelle init

# Vérifier l'intégrité
sentinelle check

# Surveillance en temps réel
sentinelle watch

Options disponibles

Option Description Défaut
-dir Répertoire à surveiller .
-db Chemin vers la base de données sentinelle.db
-exclude Patterns à exclure (virgules) -
-json Sortie au format JSON false

Exemples avancés

# Surveiller un dossier spécifique
sentinelle -dir /var/www init

# Utiliser une BDD personnalisée
sentinelle -db /opt/baseline.db check

# Ajouter des exclusions
sentinelle -exclude "tmp,logs,*.bak" init

# Sortie JSON pour scripting
sentinelle -json check
# Output: [{"type":"MODIFIED","path":"..."}]

# Surveillance temps réel avec JSON
sentinelle -json watch

📁 Structure du projet

sentinelle/
├── cmd/
│   └── sentinelle/
│       └── main.go          # Point d'entrée CLI
├── pkg/
│   ├── models/
│   │   └── models.go        # Structures de données
│   ├── db/
│   │   ├── db.go            # Opérations SQLite
│   │   └── db_test.go
│   ├── hasher/
│   │   ├── hasher.go        # Calcul SHA-256
│   │   └── hasher_test.go
│   ├── scanner/
│   │   ├── scanner.go       # Scan parallèle + exclusions
│   │   └── scanner_test.go
│   └── watcher/
│       └── watcher.go       # Surveillance temps réel
├── go.mod
├── go.sum
├── Makefile
└── README.md

🧪 Tests

# Lancer tous les tests
go test ./pkg/... -v

# Avec couverture
go test ./pkg/... -cover

🔧 Exclusions par défaut

Les patterns suivants sont automatiquement exclus :

  • .git
  • .idea
  • .vscode
  • node_modules
  • .db
  • sentinelle.exe

📋 Types d'alertes

Icône Type Description
🟢 NEW Nouveau fichier détecté
🔴 MODIFIED Fichier modifié (hash différent)
🟡 DELETED Fichier supprimé
🟠 RENAMED Fichier renommé (mode watch)

📄 License

MIT License - Voir LICENSE

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published