
BlockGuard es un agente de prevención de pérdida de datos (DLP) para Windows que intercepta y controla el acceso a archivos a nivel de proceso. Garantiza que solo los procesos autorizados — identificados por ruta ejecutable, hash criptográfico, firma Authenticode y nivel de integridad — puedan leer los archivos protegidos.
BlockGuard es un agente de prevención de pérdida de datos (DLP) para Windows que intercepta y controla el acceso a archivos a nivel de proceso. Garantiza que solo procesos autorizados — identificados por ruta ejecutable, hash criptográfico, firma Authenticode y nivel de integridad — puedan leer archivos protegidos. Todos los demás procesos son denegados por defecto a nivel del kernel del sistema operativo mediante ACL de NTFS.
| Característica | Descripción |
|---|---|
| ACL Denegar por defecto | Los archivos protegidos se bloquean al iniciar el agente — solo SYSTEM y Administradores mantienen acceso |
| Monitorización ETW en tiempo real | Eventos de E/S de archivos a nivel de kernel capturados mediante Seguimiento de eventos para Windows |
| Validación de procesos en 6 capas | Ruta ejecutable, hash SHA-256, firma Authenticode, SID del propietario, nivel de integridad, cadena de procesos padre |
| Cifrado DPAPI de archivos | Archivos protegidos cifrados en reposo usando la API de protección de datos de Windows |
| Revocación automática de acceso temporal | Los procesos autorizados reciben concesiones ACL con límite de tiempo que expiran automáticamente |
| Detección de manipulaciones | Comprobaciones de integridad periódicas detectan y corrigen automáticamente modificaciones de ACL |
| Registro de auditoría estructurado | Rastro de auditoría JSON de todos los intentos de acceso (preparado para SIEM) |
| Servicio de Windows | Se ejecuta como un servicio de Windows en segundo plano bajo NT AUTHORITY\SYSTEM |
BlockGuard utiliza una arquitectura modular de tres capas:``` ┌─────────────────────────────────────────────────────────────────┐ │ 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) │ │ └───────────────────┴─────────────────────┴───────────────────────┘
---
## 🖥️ Interfaz de administración de la UI
BlockGuard incluye una **aplicación de escritorio WPF** para gestionar archivos y carpetas protegidos a través de una interfaz visual — sin necesidad de editar `appsettings.json` manualmente.
<p align="center">
<img src="https://assets.kitploit.com/production/public/readmes/12349/51a9b7894117382666d869cee59860a33698f666133bd23c6b6cd48b225d942c.png" alt="BlockGuard UI" width="640" />
</p>
### Características
- **Panel de control** — Resumen del estado de protección (total de archivos, carpetas, estado de cifrado)
- **Archivos protegidos** — Agregar/eliminar archivos y carpetas para protegerlos del acceso de la IA mediante cuadros de diálogo de exploración de archivos
- **Registro de actividades** — Registro en tiempo real de todos los cambios de configuración
- **Configuración** — Ver la ruta del archivo de configuración e información del agente
- **Estado del agente** — Indicador en vivo que muestra si el servicio del agente BlockGuard se está ejecutando
### Cómo iniciar la UI```powershell
# From the project root
dotnet run --project src/BlockGuard.UI
Nota: La interfaz de usuario lee y escribe
appsettings.jsondesde el proyecto Agente. Después de guardar los cambios, reinicie el servicio BlockGuard Agent para que surtan efecto.
Antes de ejecutar BlockGuard, asegúrese de tener instalado lo siguiente en su máquina Windows:
| Requisito | Versión mínima | Comando de verificación |
|---|---|---|
| Sistema operativo Windows | Windows 10 / Server 2019 | winver |
| SDK de .NET | 9.0 | dotnet --version |
| Privilegios de administrador | Requerido | Ejecute el terminal como administrador |
winget install Microsoft.DotNet.SDK.9
---
## 🚀 Inicio Rápido
### 1. Clonar el Repositorio```powershell
git clone [email protected]:m2l33k/BlockGuard.git
cd BlockGuard
dotnet restore BlockGuard.sln
### 3. Construir la solución```powershell
dotnet build BlockGuard.sln --configuration Release
Deberías ver:``` Build succeeded. 0 Warning(s) 0 Error(s)
### 4. Configurar rutas protegidas y reglas
Edite `src/BlockGuard.Agent/appsettings.json` para definir **qué archivos proteger** y **qué procesos están autorizados**:```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
---
## ⚙️ Configuración
Toda la configuración reside en `src/BlockGuard.Agent/appsettings.json` bajo la sección `"BlockGuard"`.
### Rutas Protegidas
Un array de archivos o directorios a proteger. Los directorios protegen todos los archivos de forma recursiva.```json
"ProtectedPaths": [
"C:\\Secrets\\ai-model-keys",
"C:\\Secrets\\api-credentials.json",
"D:\\Confidential\\reports"
]
Cada regla define los criterios que debe cumplir un proceso para que se le conceda acceso. Todos los campos no nulos deben coincidir (lógica AND):