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.
- 🔐 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
# 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# Créer la baseline initiale
sentinelle init
# Vérifier l'intégrité
sentinelle check
# Surveillance en temps réel
sentinelle watch| 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 |
# 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 watchsentinelle/
├── 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
# Lancer tous les tests
go test ./pkg/... -v
# Avec couverture
go test ./pkg/... -coverLes patterns suivants sont automatiquement exclus :
.git.idea.vscodenode_modules.dbsentinelle.exe
| Icône | Type | Description |
|---|---|---|
| 🟢 | NEW | Nouveau fichier détecté |
| 🔴 | MODIFIED | Fichier modifié (hash différent) |
| 🟡 | DELETED | Fichier supprimé |
| 🟠 | RENAMED | Fichier renommé (mode watch) |
MIT License - Voir LICENSE