
BlockGuard est un agent de prévention contre la perte de données (DLP) pour Windows qui intercepte et contrôle l'accès aux fichiers au niveau des processus. Il garantit que seuls les processus autorisés — identifiés par chemin d'exécutable, hachage cryptographique, signature Authenticode et niveau d'intégrité — peuvent lire les fichiers protégés.
BlockGuard est un agent Windows de prévention contre la perte de données (DLP) qui intercepte et contrôle l'accès aux fichiers au niveau des processus. Il garantit que seuls les processus autorisés — identifiés par chemin d'exécutable, empreinte cryptographique, signature Authenticode et niveau d'intégrité — peuvent lire les fichiers protégés. Tous les autres processus se voient refuser l'accès par défaut au niveau du noyau OS via les ACL NTFS.
| Fonctionnalité | Description |
|---|---|
| ACL par défaut refusées | Les fichiers protégés sont verrouillés au démarrage de l'agent — seuls SYSTEM et les Administrateurs conservent l'accès |
| Surveillance ETW en temps réel | Événements d'E/S de fichiers au niveau noyau capturés via Event Tracing for Windows |
| Validation de processus en 6 couches | Chemin d'exécutable, empreinte SHA-256, signature Authenticode, SID propriétaire, niveau d'intégrité, chaîne de processus parent |
| Chiffrement DPAPI des fichiers | Fichiers protégés chiffrés au repos à l'aide de l'API Windows Data Protection |
| Révocation automatique des accès temporaires | Les processus autorisés reçoivent des octrois ACL limités dans le temps qui expirent automatiquement |
| Détection de falsification | Vérifications d'intégrité périodiques détectent et corrigent automatiquement les modifications d'ACL |
| Journalisation d'audit structurée | Piste d'audit JSON de toutes les tentatives d'accès (prête pour SIEM) |
| Service Windows | S'exécute comme un service Windows d'arrière-plan sous NT AUTHORITY\SYSTEM |
BlockGuard utilise une architecture modulaire en trois couches :``` ┌─────────────────────────────────────────────────────────────────┐ │ BlockGuard.Agent (Windows Service) │ │ Orchestrates all layers │ ├───────────────────┬─────────────────────┬───────────────────────┤ │ Layer 1 │ Layer 2 │ Layer 3 │ │ MONITORING │ POLICY & IDENTITY │ PROTECTION │ │ │ │ │ │ • ETW Kernel │ • Process Identity │ • DPAPI Encryption │ │ File Trace │ Validator (6 │ • Structured Audit │ │ • ACL Enforcer │ checks) │ Logger (JSON) │ │ (deny-by- │ • Policy Evaluator │ │ │ default) │ (AND-logic │ │ │ │ rules) │ │ │ │ • Identity Cache │ │ │ │ (LRU + TTL) │ │ └───────────────────┴─────────────────────┴───────────────────────┘
---
## 🖥️ Interface de gestion de l'interface utilisateur
BlockGuard inclut une **application de bureau WPF** pour gérer les fichiers et dossiers protégés via une interface visuelle — pas besoin de modifier `appsettings.json` manuellement.
<p align="center">
<img src="https://assets.kitploit.com/production/public/readmes/12349/51a9b7894117382666d869cee59860a33698f666133bd23c6b6cd48b225d942c.png" alt="BlockGuard UI" width="640" />
</p>
### Fonctionnalités
- **Tableau de bord** — Aperçu de l'état de protection (nombre total de fichiers, dossiers, état du chiffrement)
- **Fichiers protégés** — Ajouter/supprimer des fichiers et dossiers à protéger de l'accès IA via des boîtes de dialogue de navigation
- **Journal d'activité** — Journal en temps réel de toutes les modifications de configuration
- **Paramètres** — Afficher le chemin du fichier de configuration et les informations sur l'agent
- **État de l'agent** — Indicateur en direct indiquant si le service agent BlockGuard est en cours d'exécution
### Comment lancer l'interface utilisateur```powershell
# From the project root
dotnet run --project src/BlockGuard.UI
Remarque : L'interface utilisateur lit et écrit
appsettings.jsondepuis le projet Agent. Après avoir enregistré les modifications, redémarrez le service BlockGuard Agent pour qu'elles prennent effet.
Avant d'exécuter BlockGuard, assurez-vous que les éléments suivants sont installés sur votre machine Windows :
| Exigence | Version minimale | Commande de vérification |
|---|---|---|
| Système d'exploitation Windows | Windows 10 / Serveur 2019 | winver |
| SDK .NET | 9.0 | dotnet --version |
| Privilèges d'administrateur | Requis | Exécutez le terminal en tant qu'administrateur |
winget install Microsoft.DotNet.SDK.9
---
## 🚀 Démarrage rapide
### 1. Cloner le dépôt```powershell
git clone [email protected]:m2l33k/BlockGuard.git
cd BlockGuard
dotnet restore BlockGuard.sln
### 3. Construire la solution```powershell
dotnet build BlockGuard.sln --configuration Release
Vous devriez voir:``` Build succeeded. 0 Warning(s) 0 Error(s)
### 4. Configurer les chemins protégés et les règles
Modifiez `src/BlockGuard.Agent/appsettings.json` pour définir **quels fichiers protéger** et **quels processus sont autorisés** :```json
{
"BlockGuard": {
"ProtectedPaths": [
"C:\\Secrets\\ai-model-keys",
"C:\\Secrets\\api-credentials.json"
],
"AuthorizedProcesses": [
{
"RuleName": "AI-Model-Inference-Engine",
"ExecutablePath": "C:\\Program Files\\MyAI\\inference.exe",
"MinimumIntegrityLevel": "Medium",
"RequireSignature": false
}
]
}
}
dotnet run --project src/BlockGuard.Agent
---
## ⚙️ Configuration
Toute la configuration se trouve dans `src/BlockGuard.Agent/appsettings.json` sous la section `"BlockGuard"`.
### Chemins protégés
Un tableau de fichiers ou répertoires à protéger. Les répertoires protègent tous les fichiers récursivement.```json
"ProtectedPaths": [
"C:\\Secrets\\ai-model-keys",
"C:\\Secrets\\api-credentials.json",
"D:\\Confidential\\reports"
]
Chaque règle définit les critères qu'un processus doit satisfaire pour obtenir l'accès. Tous les champs non nuls doivent correspondre (logique ET) :