
BlockGuard é um agente de Prevenção de Perda de Dados (DLP) do Windows que intercepta e controla o acesso a arquivos no nível do processo. Ele garante que apenas processos autorizados — identificados pelo caminho executável, hash criptográfico, assinatura Authenticode e nível de integridade — possam ler arquivos protegidos.
BlockGuard é um agente de Prevenção contra Perda de Dados (DLP) para Windows que intercepta e controla o acesso a arquivos no nível do processo. Ele garante que apenas processos autorizados — identificados pelo caminho do executável, hash criptográfico, assinatura Authenticode e nível de integridade — possam ler arquivos protegidos. Todos os outros processos têm o acesso negado por padrão no nível do kernel do sistema operacional via ACLs do NTFS.
| Recurso | Descrição |
|---|---|
| ACLs de Negação por Padrão | Arquivos protegidos são bloqueados na inicialização do agente — somente SYSTEM e Administradores mantêm acesso |
| Monitoramento ETW em Tempo Real | Eventos de I/O de arquivos no nível do kernel capturados via Rastreamento de Eventos para Windows |
| Validação de Processo em 6 Camadas | Caminho do executável, hash SHA-256, assinatura Authenticode, SID do proprietário, nível de integridade, cadeia de processos pai |
| Criptografia DPAPI de Arquivos | Arquivos protegidos criptografados em repouso usando a API de Proteção de Dados do Windows |
| Revogação Automática de Acesso Temporário | Processos autorizados recebem concessões de ACL com tempo limitado que expiram automaticamente |
| Detecção de Violação | Verificações periódicas de integridade detectam e corrigem automaticamente modificações nas ACLs |
| Registro de Auditoria Estruturado | Trilha de auditoria em JSON de todas as tentativas de acesso (pronto para SIEM) |
| Serviço do Windows | Executa como um serviço de plano de fundo do Windows sob NT AUTHORITY\SYSTEM |
O BlockGuard utiliza uma arquitetura modular em três camadas:``` ┌─────────────────────────────────────────────────────────────────┐ │ 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 Gerenciamento da IU
O BlockGuard inclui um **aplicativo desktop WPF** para gerenciar arquivos e pastas protegidos através de uma interface visual — sem necessidade 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>
### Recursos
- **Painel** — Visão geral do status de proteção (total de arquivos, pastas, estado de criptografia)
- **Arquivos Protegidos** — Adicionar/remover arquivos e pastas para proteger do acesso de IA através de diálogos do navegador de arquivos
- **Registro de Atividades** — Registro em tempo real de todas as alterações de configuração
- **Configurações** — Visualizar caminho do arquivo de configuração e informações do agente
- **Status do Agente** — Indicador ao vivo mostrando se o serviço do agente BlockGuard está em execução
### Como Iniciar a IU```powershell
# From the project root
dotnet run --project src/BlockGuard.UI
Nota: A interface lê e escreve o
appsettings.jsondo projeto Agent. Após salvar as alterações, reinicie o serviço BlockGuard Agent para que elas tenham efeito.
Antes de executar o BlockGuard, certifique-se de que os seguintes itens estão instalados na sua máquina Windows:
| Requisito | Versão Mínima | Comando de Verificação |
|---|---|---|
| Sistema Operacional Windows | Windows 10 / Server 2019 | winver |
| SDK .NET | 9.0 | dotnet --version |
| Privilégios de Administrador | Necessário | Executar terminal como Admin |
winget install Microsoft.DotNet.SDK.9
---
## 🚀 Início Rápido
### 1. Clone o Repositório```powershell
git clone [email protected]:m2l33k/BlockGuard.git
cd BlockGuard
dotnet restore BlockGuard.sln
### 3. Construir a Solução```powershell
dotnet build BlockGuard.sln --configuration Release
Você deve ver:``` Build succeeded. 0 Warning(s) 0 Error(s)
### 4. Configurar Caminhos Protegidos e Regras
Edite `src/BlockGuard.Agent/appsettings.json` para definir **quais arquivos proteger** e **quais processos são 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
---
## ⚙️ Configuração
Toda a configuração está em `src/BlockGuard.Agent/appsettings.json` na seção `"BlockGuard"`.
### Caminhos Protegidos
Um array de arquivos ou diretórios para proteger. Diretórios protegem todos os arquivos recursivamente.```json
"ProtectedPaths": [
"C:\\Secrets\\ai-model-keys",
"C:\\Secrets\\api-credentials.json",
"D:\\Confidential\\reports"
]
Cada regra define os critérios que um processo deve atender para obter acesso. Todos os campos não nulos devem corresponder (lógica AND):