
BlockGuard è un agente di Windows Data Loss Prevention (DLP) che intercetta e controlla l'accesso ai file a livello di processo. Garantisce che solo processi autorizzati — identificati dal percorso eseguibile, dall'hash crittografico, dalla firma Authenticode e dal livello di integrità — possano leggere i file protetti.
BlockGuard è un agente Windows di prevenzione della perdita di dati (DLP) che intercetta e controlla l'accesso ai file a livello di processo. Garantisce che solo processi autorizzati — identificati dal percorso eseguibile, hash crittografico, firma Authenticode e livello di integrità — possano leggere i file protetti. Tutti gli altri processi vengono negati per impostazione predefinita a livello del kernel del sistema operativo tramite ACL NTFS.
| Funzionalità | Descrizione |
|---|---|
| ACL di negazione predefinita | I file protetti vengono bloccati all'avvio dell'agente — solo SYSTEM e gli amministratori mantengono l'accesso |
| Monitoraggio ETW in tempo reale | Eventi di I/O file a livello kernel catturati tramite Event Tracing for Windows |
| Validazione del processo a 6 livelli | Percorso eseguibile, hash SHA-256, firma Authenticode, SID del proprietario, livello di integrità, catena del processo padre |
| Crittografia file DPAPI | File protetti crittografati a riposo tramite Windows Data Protection API |
| Revoca automatica dell'accesso temporaneo | I processi autorizzati ricevono concessioni ACL con scadenza temporale che scadono automaticamente |
| Rilevamento di manomissioni | Controlli periodici di integrità rilevano e correggono automaticamente le modifiche ACL |
| Registrazione audit strutturata | Traccia di audit JSON di tutti i tentativi di accesso (pronta per SIEM) |
| Servizio Windows | Viene eseguito come servizio Windows in background sotto NT AUTHORITY\SYSTEM |
BlockGuard utilizza un'architettura modulare a tre livelli:``` ┌─────────────────────────────────────────────────────────────────┐ │ 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) │ │ └───────────────────┴─────────────────────┴───────────────────────┘
---
## 🖥️ Interfaccia di Gestione UI
BlockGuard include un'**applicazione desktop WPF** per gestire file e cartelle protetti attraverso un'interfaccia visiva — nessuna necessità di modificare `appsettings.json` manualmente.
<p align="center">
<img src="https://assets.kitploit.com/production/public/readmes/12349/51a9b7894117382666d869cee59860a33698f666133bd23c6b6cd48b225d942c.png" alt="BlockGuard UI" width="640" />
</p>
### Caratteristiche
- **Dashboard** — Panoramica dello stato di protezione (file totali, cartelle, stato di crittografia)
- **File Protetti** — Aggiungi/rimuovi file e cartelle da proteggere dall'accesso AI tramite finestre di dialogo del browser file
- **Registro Attività** — Registro in tempo reale di tutte le modifiche alla configurazione
- **Impostazioni** — Visualizza il percorso del file di configurazione e le informazioni sull'agente
- **Stato Agente** — Indicatore live che mostra se il servizio agente BlockGuard è in esecuzione
### Come Avviare l'UI```powershell
# From the project root
dotnet run --project src/BlockGuard.UI
Nota: L'interfaccia legge e scrive
appsettings.jsondal progetto Agent. Dopo aver salvato le modifiche, riavvia il servizio BlockGuard Agent affinché vengano applicate.
Prima di eseguire BlockGuard, assicurati che siano installati i seguenti componenti sul tuo computer Windows:
| Requisito | Versione Minima | Comando di Verifica |
|---|---|---|
| Sistema operativo Windows | Windows 10 / Server 2019 | winver |
| .NET SDK | 9.0 | dotnet --version |
| Privilegi di amministratore | Richiesti | Run terminal as Admin |
winget install Microsoft.DotNet.SDK.9
---
## 🚀 Avvio Rapido
### 1. Clona il Repository```powershell
git clone [email protected]:m2l33k/BlockGuard.git
cd BlockGuard
dotnet restore BlockGuard.sln
### 3. Costruisci la Soluzione```powershell
dotnet build BlockGuard.sln --configuration Release
Dovresti vedere:``` Build succeeded. 0 Warning(s) 0 Error(s)
### 4. Configura i percorsi protetti e le regole
Modifica `src/BlockGuard.Agent/appsettings.json` per definire **quali file proteggere** e **quali processi sono autorizzati**:```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
## ⚙️ Configurazione
Tutta la configurazione risiede in `src/BlockGuard.Agent/appsettings.json` nella sezione `"BlockGuard"`.
### Percorsi protetti
Un array di file o directory da proteggere. Le directory proteggono tutti i file in modo ricorsivo.```json
"ProtectedPaths": [
"C:\\Secrets\\ai-model-keys",
"C:\\Secrets\\api-credentials.json",
"D:\\Confidential\\reports"
]
Ogni regola definisce i criteri che un processo deve soddisfare per ottenere l'accesso. Tutti i campi non nulli devono corrispondere (logica AND):