Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
Outils/GitHubGitHub/m2l33k/blockguard
Authentification et AutorisationOutils DéfensifsOutils de Chiffrement/DéchiffrementAudit de ConfigurationExfiltration de DonnéesRéponse aux IncidentsAnalyse de Journaux
GitHubm2l33k/blockguard

BlockGuard

Voir le dépôt
il y a 5 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →

À propos

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.

Partager

BlockGuard — Trusty

.NET 9 Windows License DLP

🛡️ BlockGuard — Agent de sécurité d'accès aux fichiers basé sur les processus

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.


📑 Table des matières

  • Fonctionnalités
  • Architecture
  • Interface de gestion via l'interface utilisateur
  • Prérequis
  • Démarrage rapide
  • Configuration
  • Exécution de l'agent
  • Vérification du fonctionnement
  • Structure du projet
  • Fonctionnement
  • Dépannage
  • Considérations de sécurité
  • Contribution

✨ Fonctionnalités


🏗️ Architecture

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) │ │ └───────────────────┴─────────────────────┴───────────────────────┘

root@kitploit:~
---

## 🖥️ 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.json depuis le projet Agent. Après avoir enregistré les modifications, redémarrez le service BlockGuard Agent pour qu'elles prennent effet.


📋 Prérequis

Avant d'exécuter BlockGuard, assurez-vous que les éléments suivants sont installés sur votre machine Windows :

Installer le SDK .NET 9 (s'il n'est pas installé)```powershell

Download from https://dotnet.microsoft.com/download/dotnet/9.0

Or use winget:

winget install Microsoft.DotNet.SDK.9

root@kitploit:~
---

## 🚀 Démarrage rapide

### 1. Cloner le dépôt```powershell
git clone [email protected]:m2l33k/BlockGuard.git
cd BlockGuard

2. Restaurer les dépendances```powershell

dotnet restore BlockGuard.sln

root@kitploit:~
### 3. Construire la solution```powershell
dotnet build BlockGuard.sln --configuration Release

Vous devriez voir:``` Build succeeded. 0 Warning(s) 0 Error(s)

root@kitploit:~
### 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
      }
    ]
  }
}

5. Exécuter (Mode développement)```powershell

Run as Administrator (required for ETW + ACL operations)

dotnet run --project src/BlockGuard.Agent

root@kitploit:~
---

## ⚙️ 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"
]

Règles de processus autorisées

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

Exemple : Règle basée sur le chemin (pour un processus de modèle IA)```json { "RuleName": "AI-Model-Inference-Engine", "ExecutablePath": "C:\Program Files\MyAI\inference.exe", "ExpectedFileHash": null, "ExpectedSignerSubject": null, "MinimumIntegrityLevel": "Medium", "RequireSignature": false }

root@kitploit:~
**Exemple : Règle basée sur la signature (pour tout outil de gestion signé)**```json
{
  "RuleName": "Signed-Management-Tool",
  "ExecutablePath": null,
  "ExpectedFileHash": null,
  "ExpectedSignerSubject": "CN=Contoso Security",
  "MinimumIntegrityLevel": "High",
  "RequireSignature": true
}

Exemple : Règle avec empreinte fixe (pour une protection maximale contre la falsification)```json { "RuleName": "Pinned-Data-Processor", "ExecutablePath": "C:\Tools\processor.exe", "ExpectedFileHash": "a1b2c3d4e5f67890abcdef1234567890abcdef1234567890abcdef1234567890", "ExpectedSignerSubject": null, "MinimumIntegrityLevel": "Medium", "RequireSignature": false }

root@kitploit:~
### Autres options

| Option | Valeur par défaut | Description |
|---|---|---|
| `IdentityCacheTtlSeconds` | `30` | Durée (en secondes) pendant laquelle une identité de processus validée reste en cache |
| `HandleTimeoutSeconds` | `60` | Durée maximale (en secondes) d'une concession ACL temporaire |
| `AuditLogPath` | `C:\ProgramData\BlockGuard\Logs\audit.json` | Chemin du fichier journal d'audit JSON |
| `EnableDpapiEncryption` | `true` | Chiffrer les fichiers protégés au repos avec DPAPI |
| `DpapiScope` | `LocalMachine` | Étendue DPAPI : `LocalMachine` ou `CurrentUser` |

---

## 🏃 Exécution de l'agent

### Option A : Mode développement (Console)

Idéal pour les tests et le débogage. Exécutez à partir d'un **PowerShell élevé (Administrateur)** :```powershell
dotnet run --project src/BlockGuard.Agent --configuration Release

Vous verrez une sortie console comme:``` [03:15:22 INF] [BlockGuard.Agent.BlockGuardService] ======================================== BlockGuard Security Agent Starting Protected Paths: 2 Authorized Rules: 2 PID: 12345

[03:15:22 INF] [BlockGuard.Monitoring.AclEnforcer] Locked down file 'C:\Secrets\api-credentials.json' [03:15:22 INF] [BlockGuard.Protection.DpapiWrapper] Encrypted file 'C:\Secrets\api-credentials.json' [03:15:22 INF] [BlockGuard.Monitoring.EtwFileTraceSession] ETW file trace session started successfully. [03:15:22 INF] [BlockGuard.Agent.BlockGuardService] BlockGuard is now actively protecting 2 path(s).

root@kitploit:~
Appuyez sur `Ctrl+C` pour arrêter.

### Option B: Installer en tant que service Windows (Production)```powershell
# 1. Publish a self-contained build
dotnet publish src/BlockGuard.Agent -c Release -r win-x64 --self-contained -o C:\BlockGuard

# 2. Create the Windows Service
sc.exe create BlockGuard binPath= "C:\BlockGuard\BlockGuard.Agent.exe" start= auto obj= "NT AUTHORITY\SYSTEM" DisplayName= "BlockGuard Security Agent"

# 3. Set the service description
sc.exe description BlockGuard "Process-based file access security agent (DLP)"

# 4. Start the service
sc.exe start BlockGuard

Gérer le service :```powershell

Check status

sc.exe query BlockGuard

Stop

sc.exe stop BlockGuard

Remove (uninstall)

sc.exe delete BlockGuard

root@kitploit:~
## ✅ Vérification du fonctionnement

Suivez ces étapes pour confirmer que BlockGuard protège correctement les fichiers.

### Test 1 : Vérification de la construction```powershell
# From the project root directory
dotnet build BlockGuard.sln

# Expected: Build succeeded with 0 Error(s)

Test 2: Vérifier que l'Agent démarre```powershell

Open an elevated (Administrator) PowerShell

dotnet run --project src/BlockGuard.Agent

root@kitploit:~
**✅ Résultat attendu :**
- Message `BlockGuard Security Agent Starting`
- Aucune erreur `CRITICAL` ou `FATAL`
- `ETW file trace session started successfully`
- `BlockGuard is now actively protecting X path(s)`

**❌ Si vous voyez `ETW session — insufficient privileges` :**
- Vous n'exécutez pas PowerShell en tant qu'Administrateur. Cliquez droit sur PowerShell → "Exécuter en tant qu'administrateur"

### Test 3 : Vérification du verrouillage ACL

Après le démarrage de l'agent, vérifiez que les fichiers protégés sont verrouillés :```powershell
# Create a test protected file
New-Item -Path "C:\Secrets" -ItemType Directory -Force
Set-Content -Path "C:\Secrets\api-credentials.json" -Value '{"api_key": "secret123"}'

# Start the agent (it will lock down the file)
dotnet run --project src/BlockGuard.Agent

# In ANOTHER non-admin terminal, try to read the file:
Get-Content "C:\Secrets\api-credentials.json"
# Expected: Access Denied error

Test 4: Vérifier l'état ACL avec icacls```powershell

icacls "C:\Secrets\api-credentials.json"

Expected output (only SYSTEM and Administrators):

C:\Secrets\api-credentials.json NT AUTHORITY\SYSTEM:(F)

BUILTIN\Administrators:(F)

No other users/groups should be listed

root@kitploit:~
### Test 5: Inspection du journal d'audit

Après que l'agent s'est exécuté pendant un certain temps, vérifiez le journal d'audit :```powershell
# View the last 10 audit entries
Get-Content "C:\ProgramData\BlockGuard\Logs\audit.json" | Select-Object -Last 10

Sortie attendue (lignes JSON) :```json {"type":"operational","timestamp":"2026-03-05T02:30:00Z","eventType":"AgentStart","message":"BlockGuard security agent starting."} {"type":"access_decision","timestamp":"2026-03-05T02:30:05Z","verdict":"deny","reason":"No authorization rule matched this process identity.","file":"C:\Secrets\api-credentials.json","processId":5678}

root@kitploit:~
# Test 6 : Vérifier la capture d'événements ETW

Ouvrez un second terminal et tentez d'accéder à un fichier protégé pendant que l'agent est en cours d'exécution :```powershell
# Terminal 1: Agent is running with console output
dotnet run --project src/BlockGuard.Agent

# Terminal 2: Try reading a protected file with notepad
notepad.exe "C:\Secrets\api-credentials.json"

Dans le terminal 1, vous devriez voir une entrée de journal comme :``` [03:20:15 WRN] [AUDIT] DENIED access to 'C:\Secrets\api-credentials.json' by PID 9876 (C:\Windows\System32\notepad.exe). Reason: No authorization rule matched

root@kitploit:~
### Test 7 : Vérifier que l'accès non autorisé est bloqué (modèle IA)

Lorsqu'un processus (comme un modèle IA non autorisé) tente de lire un dossier ou un fichier protégé, l'agent refuse immédiatement l'accès. L'IA recevra une erreur stricte **Accès refusé** et la tentative est enregistrée :

<p align="center">
  <img src="https://assets.kitploit.com/production/public/readmes/12349/d2a2e20c0fc60e8b3a5f614b0a53c6c7275b634e93b1ce0b9fe4440c38215fac.png" alt="Unauthorized Access Denied" width="600" />
</p>

### Test 8 : Vérifier le chiffrement DPAPI```powershell
# Check that the .enc file was created
Test-Path "C:\Secrets\api-credentials.json.enc"
# Expected: True

# Check that the original plaintext file was securely deleted
Test-Path "C:\Secrets\api-credentials.json"
# Expected: False (if EnableDpapiEncryption is true)

Test 9 : Détection d'altération

Pendant que l'agent est en cours d'exécution, ajoutez manuellement une entrée ACL non autorisée :```powershell

In an elevated terminal, add a rogue permission

icacls "C:\Secrets\api-credentials.json.enc" /grant Users:R

Wait up to 60 seconds...

The agent should detect the tampering and log:

[CRT] ACL TAMPERING DETECTED on 'C:\Secrets\api-credentials.json.enc'! Re-applying lockdown.

root@kitploit:~
### Test 10: Vérifier le répertoire des logs```powershell
# Check both log locations
Get-ChildItem "C:\ProgramData\BlockGuard\Logs\"

# Expected files:
# audit.json              (structured JSON audit log)
# blockguard-20260305.log (daily rolling application log)

Liste de vérification rapide


📁 Structure du projet```

BlockGuard/ ├── BlockGuard.sln # Solution file ├── README.md # This file ├── architecture_overview.md # Detailed architecture documentation ├── assets/ │ ├── Untitled.jpg # Project logo (Trusty mascot) │ └── blockguard_ui_mockup_*.png # UI mockup screenshot │ ├── src/ │ ├── BlockGuard.Core/ # Shared models, interfaces, configuration │ │ ├── Configuration/ │ │ │ └── BlockGuardOptions.cs # Strongly-typed config (paths, rules, timeouts) │ │ ├── Interfaces/ │ │ │ ├── IAclEnforcer.cs # ACL management contract │ │ │ ├── IAuditLogger.cs # Audit logging contract │ │ │ ├── IDpapiWrapper.cs # DPAPI encryption contract │ │ │ ├── IFileAccessMonitor.cs # ETW monitoring contract │ │ │ ├── IPolicyEvaluator.cs # Policy evaluation contract │ │ │ └── IProcessIdentityValidator.cs # Process identity contract │ │ └── Models/ │ │ ├── AccessDecision.cs # Verdict + reason + matched rule │ │ ├── FileAccessEvent.cs # ETW event: file, PID, operation │ │ └── ProcessIdentity.cs # Hash, signature, SID, integrity │ │ │ ├── BlockGuard.Monitoring/ # Layer 1: Monitoring & Interception │ │ ├── EtwFileTraceSession.cs # Real-time kernel file ETW consumer │ │ └── AclEnforcer.cs # NTFS ACL lockdown + temp grants │ │ │ ├── BlockGuard.Policy/ # Layer 2: Policy & Identity Engine │ │ ├── ProcessIdentityValidator.cs # 6-layer P/Invoke validation │ │ ├── PolicyEvaluator.cs # AND-logic rule matching │ │ └── IdentityCache.cs # Thread-safe LRU cache (TTL) │ │ │ ├── BlockGuard.Protection/ # Layer 3: Decryption & Handle Manager │ │ ├── DpapiWrapper.cs # DPAPI encrypt/decrypt + secure delete │ │ └── AuditLogger.cs # Structured JSON audit logging │ │ │ ├── BlockGuard.Agent/ # Windows Service entry point │ │ ├── Program.cs # DI container, Serilog, hosting │ │ ├── BlockGuardService.cs # Main orchestrator (5-phase startup) │ │ └── appsettings.json # Configuration file │ │ │ └── BlockGuard.UI/ # WPF Desktop Management Interface │ ├── App.xaml / App.xaml.cs # Application resources & dark theme │ ├── MainWindow.xaml / .cs # Main window with sidebar navigation │ ├── ViewModels/ │ │ └── MainViewModel.cs # MVVM ViewModel (commands, config I/O) │ └── Services/ │ └── ConfigurationService.cs # Reads/writes appsettings.json

root@kitploit:~
## 🔬 Comment ça marche

### Séquence de démarrage (5 phases)```
Phase 1: ACL Lockdown
  └─ Strip all permissions from protected files
  └─ Grant access only to SYSTEM + Administrators
  └─ Disable ACL inheritance

Phase 2: DPAPI Encryption (optional)
  └─ Encrypt each protected file at rest
  └─ Securely delete plaintext (overwrite with random data)
  └─ Store ciphertext as .enc files

Phase 3: Event Subscription
  └─ Register handler for file access events

Phase 4: ETW Monitoring
  └─ Start kernel-level file trace session
  └─ Filter events by protected paths
  └─ Emit FileAccessEvent for each match

Phase 5: Integrity Check Loop
  └─ Every 60 seconds, verify ACLs are intact
  └─ Auto-remediate if tampering detected

Flux de demande d'accès```

┌─────────────┐ ┌───────────────┐ ┌──────────────────┐ │ Process │ │ ETW Kernel │ │ Policy │ │ reads file │────▶│ File Provider │────▶│ Evaluator │ └─────────────┘ └───────────────┘ └──────────────────┘ │ ┌────────┴────────┐ ▼ ▼ ┌──────────┐ ┌──────────┐ │ ALLOW │ │ DENY │ │ │ │ │ │ Grant │ │ ACL is │ │ temp ACL │ │ already │ │ (60s) │ │ blocking │ └──────────┘ └──────────┘ │ │ ▼ ▼ ┌────────────────────────────┐ │ Audit Logger (JSON) │ └────────────────────────────┘

root@kitploit:~
### Validation de processus (6 vérifications)

Lorsqu'un processus accède à un fichier protégé, BlockGuard le valide via :

1. **Chemin de l'exécutable** — Résout et canonicalise le chemin complet (empêche le path traversal)
2. **Hash SHA-256** — Calcule le hash du binaire sur le disque (détecte le remplacement de fichier)
3. **Signature Authenticode** — Valide la chaîne de signature numérique (détecte les binaires non signés / modifiés)
4. **SID du propriétaire du processus** — Interroge le jeton pour identifier le compte exécutant
5. **Niveau d'intégrité** — Lit l'étiquette obligatoire (Untrusted/Low/Medium/High/System)
6. **ID du processus parent** — Trace la chaîne de création de processus (détecte l'injection)

Toutes les vérifications sont **fail-closed** : si une étape de validation échoue, l'accès est **REFUSÉ**.

---

## 🛠️ Dépannage

### "Session ETW — privilèges insuffisants"

**Cause:** L'agent ne s'exécute pas avec les privilèges Administrateur/SYSTEM.

**Correctif:**```powershell
# Right-click PowerShell → "Run as Administrator"
dotnet run --project src/BlockGuard.Agent

"Impossible de modifier l'ACL — l'agent ne dispose pas des privilèges requis"

Cause: L'agent ne peut pas modifier les permissions des fichiers sans privilèges élevés.

Fix: Identique à ci-dessus — exécutez en tant qu'Administrateur.

"Le chemin protégé n'existe pas. Ignoré."

Cause: Les chemins dans appsettings.json n'existent pas sur votre machine.

Fix: Créez d'abord les répertoires et les fichiers :```powershell New-Item -Path "C:\Secrets\ai-model-keys" -ItemType Directory -Force Set-Content -Path "C:\Secrets\api-credentials.json" -Value '{"key":"value"}'

root@kitploit:~
### Erreurs de build après le clonage

**Correctif :** Restaurer les packages NuGet :```powershell
dotnet restore BlockGuard.sln
dotnet build BlockGuard.sln

"Supprimé la session ETW orpheline"

Cause: Une instance précédente de l'agent a crashé et a laissé une session ETW zombie. Ceci est automatiquement nettoyé — c'est un AVERTISSEMENT, pas une erreur.

L'agent s'arrête immédiatement après le démarrage

Cause: Probablement une erreur de configuration. Vérifiez le fichier journal:```powershell Get-Content "C:\ProgramData\BlockGuard\Logs\blockguard-*.log" | Select-Object -Last 50

root@kitploit:~
---

## 🔒 Considérations de sécurité

### Ce que cet agent peut faire
- ✅ Empêcher les processus non autorisés de **lire** les fichiers protégés via l'application des ACL
- ✅ Détecter et **auditer** toutes les tentatives d'accès aux fichiers en temps réel via ETW
- ✅ Chiffrer les fichiers **au repos** à l'aide de DPAPI
- ✅ Détecter et **corriger automatiquement** les falsifications d'ACL

### Ce que cet agent ne peut pas faire
- ❌ **Bloquer les lectures de fichiers en transit** — Il s'agit d'un agent en mode utilisateur ; un véritable blocage en transit nécessite un pilote minifiltre noyau
- ❌ **Arrêter les attaques au niveau du noyau** — Un pilote noyau malveillant peut contourner les ACL NTFS
- ❌ **Empêcher les administrateurs de passer outre** — Les comptes administrateur peuvent supprimer les ACL (atténué par la détection de falsification)

### Recommandations pour la production

1. **Exécuter en tant que `NT AUTHORITY\SYSTEM`** — Utilisez un service Windows, pas une application console
2. **Signer le binaire de l'agent** avec un certificat Authenticode pour empêcher l'auto-falsification
3. **Activer BitLocker** sur le volume pour le chiffrement complet du disque (complète DPAPI)
4. **Transférer les journaux d'audit vers un SIEM** pour une surveillance centralisée
5. **Activer Secure Boot + Driver Signature Enforcement** pour empêcher le contournement au niveau du noyau

---

## 🤝 Contribution

1. Forkez le dépôt
2. Créez une branche de fonctionnalité : `git checkout -b feature/my-feature`
3. Commitez vos modifications : `git commit -m "Add my feature"`
4. Poussez vers la branche : `git push origin feature/my-feature`
5. Ouvrez une Pull Request

### Style de code
- Suivez les conventions de nommage C# (PascalCase pour les membres publics)
- Ajoutez des commentaires de documentation XML à toutes les API publiques
- Chaque validation doit **échouer en mode fermé** (refuser en cas d'erreur)
- Disposez explicitement tous les handles natifs dans les blocs `finally`
- Mettez à zéro les tampons mémoire sensibles après utilisation

---

## 📄 Licence

Ce projet est sous licence MIT. Voir [LICENSE](https://github.com/m2l33k/blockguard/blob/HEAD/LICENSE) pour plus de détails.

---

<p align="center">
  <b>Conçu avec des principes de sécurité avant tout pour la protection des fichiers Windows.</b>
  <br/>
  <sub>BlockGuard — parce que vos données méritent un gardien, pas seulement un verrou.</sub>
</p>
Télécharger l’outil
FonctionnalitéDescription
ACL par défaut refuséesLes 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 couchesChemin d'exécutable, empreinte SHA-256, signature Authenticode, SID propriétaire, niveau d'intégrité, chaîne de processus parent
Chiffrement DPAPI des fichiersFichiers protégés chiffrés au repos à l'aide de l'API Windows Data Protection
Révocation automatique des accès temporairesLes processus autorisés reçoivent des octrois ACL limités dans le temps qui expirent automatiquement
Détection de falsificationVérifications d'intégrité périodiques détectent et corrigent automatiquement les modifications d'ACL
Journalisation d'audit structuréePiste d'audit JSON de toutes les tentatives d'accès (prête pour SIEM)
Service WindowsS'exécute comme un service Windows d'arrière-plan sous NT AUTHORITY\SYSTEM
Exigence
Version minimale
Commande de vérification
Système d'exploitation WindowsWindows 10 / Serveur 2019winver
SDK .NET9.0dotnet --version
Privilèges d'administrateurRequisExécutez le terminal en tant qu'administrateur
ChampTypeDescription
RuleNamestringNom lisible pour cette règle (utilisé dans les journaux d'audit)
ExecutablePathstring?Chemin complet vers l'exécutable autorisé (insensible à la casse)
ExpectedFileHashstring?Hash SHA-256 de l'exécutable (détection de falsification)
ExpectedSignerSubjectstring?Sujet du certificat Authenticode (par ex., "CN=Contoso")
MinimumIntegrityLevelstringNiveau d'intégrité minimal Windows : Untrusted, Low, Medium, High, System
RequireSignatureboolSi true, l'exécutable doit avoir une signature Authenticode valide
#TestComment vérifierRésultat attendu
1Builddotnet build BlockGuard.sln0 erreurs
2Agent démarredotnet run --project src/BlockGuard.Agent (en tant qu'Admin)Bannière de démarrage, pas d'erreur CRITICAL
3Verrouillage ACLicacls <protected-file>Seulement SYSTEM + Administrateurs
4Blocage d'accès non autoriséLire le fichier protégé depuis un terminal non administrateurAccès refusé
5Capture ETWLire le fichier protégé pendant que l'agent s'exécuteEntrée de journal DENIED dans la console
6Journal d'auditGet-Content C:\ProgramData\BlockGuard\Logs\audit.jsonEntrées JSON avec verdict
7Chiffrement DPAPITest-Path <file>.encLe fichier .enc existe
8Détection d'altérationicacls <file> /grant Users:R puis attendre 60sAuto-réparation journalisée