Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
BlockGuard — 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. | Kitploit
Ferramentas/GitHubGitHub/m2l33k/blockguard
Autenticação e AutorizaçãoFerramentas DefensivasFerramentas de Criptografia/DescriptografiaAuditoria de ConfiguraçãoExfiltração de DadosResposta a IncidentesAnálise de Logs
GitHubm2l33k/blockguard

BlockGuard

Ver Repositório
há 5 mesesAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →

Sobre

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.

Compartilhar

BlockGuard — Trusty

.NET 9 Windows License DLP

🛡️ BlockGuard — Agente de Segurança de Acesso a Arquivos Baseado em Processos

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.


📑 Índice

  • Recursos
  • Arquitetura
  • Interface de Gerenciamento da UI
  • Pré-requisitos
  • Início Rápido
  • Configuração
  • Executando o Agente
  • Verificando se Funciona
  • Estrutura do Projeto
  • Como Funciona
  • Solução de Problemas
  • Considerações de Segurança
  • Contribuição

✨ Recursos


🏗️ Arquitetura

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

root@kitploit:~
---

## 🖥️ 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.json do projeto Agent. Após salvar as alterações, reinicie o serviço BlockGuard Agent para que elas tenham efeito.


📋 Pré-requisitos

Antes de executar o BlockGuard, certifique-se de que os seguintes itens estão instalados na sua máquina Windows:

Requisito

Instalar o SDK .NET 9 (se não estiver instalado)```powershell

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

Or use winget:

winget install Microsoft.DotNet.SDK.9

root@kitploit:~
---

## 🚀 Início Rápido

### 1. Clone o Repositório```powershell
git clone [email protected]:m2l33k/BlockGuard.git
cd BlockGuard

2. Restaurar Dependências```powershell

dotnet restore BlockGuard.sln

root@kitploit:~
### 3. Construir a Solução```powershell
dotnet build BlockGuard.sln --configuration Release

Você deve ver:``` Build succeeded. 0 Warning(s) 0 Error(s)

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

5. Executar (Modo de Desenvolvimento)```powershell

Run as Administrator (required for ETW + ACL operations)

dotnet run --project src/BlockGuard.Agent

root@kitploit:~
---

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

Regras de Processo Autorizado

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

Exemplo: Regra baseada em caminho (para um processo de modelo de IA)```json { "RuleName": "AI-Model-Inference-Engine", "ExecutablePath": "C:\Program Files\MyAI\inference.exe", "ExpectedFileHash": null, "ExpectedSignerSubject": null, "MinimumIntegrityLevel": "Medium", "RequireSignature": false }

root@kitploit:~
**Exemplo: Regra baseada em assinatura (para qualquer ferramenta de gerenciamento assinada)**```json
{
  "RuleName": "Signed-Management-Tool",
  "ExecutablePath": null,
  "ExpectedFileHash": null,
  "ExpectedSignerSubject": "CN=Contoso Security",
  "MinimumIntegrityLevel": "High",
  "RequireSignature": true
}

Exemplo: Regra com hash fixo (para máxima proteção contra adulteração)```json { "RuleName": "Pinned-Data-Processor", "ExecutablePath": "C:\Tools\processor.exe", "ExpectedFileHash": "a1b2c3d4e5f67890abcdef1234567890abcdef1234567890abcdef1234567890", "ExpectedSignerSubject": null, "MinimumIntegrityLevel": "Medium", "RequireSignature": false }

root@kitploit:~
### Outras Opções

| Opção | Padrão | Descrição |
|---|---|---|
| `IdentityCacheTtlSeconds` | `30` | Quanto tempo (segundos) uma identidade de processo validada permanece em cache |
| `HandleTimeoutSeconds` | `60` | Duração máxima (segundos) de uma concessão temporária de ACL |
| `AuditLogPath` | `C:\ProgramData\BlockGuard\Logs\audit.json` | Caminho para o arquivo de log de auditoria JSON |
| `EnableDpapiEncryption` | `true` | Criptografar arquivos protegidos em repouso com DPAPI |
| `DpapiScope` | `LocalMachine` | Escopo DPAPI: `LocalMachine` ou `CurrentUser` |

---

## 🏃 Executando o Agente

### Opção A: Modo de Desenvolvimento (Console)

Melhor para testes e depuração. Execute a partir de um **PowerShell elevado (Administrador)**:```powershell
dotnet run --project src/BlockGuard.Agent --configuration Release

Você verá uma saída de console como:``` [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:~
Pressione `Ctrl+C` para parar.

### Opção B: Instalar como um Serviço do Windows (Produção)```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

Gerenciar o serviço:```powershell

Check status

sc.exe query BlockGuard

Stop

sc.exe stop BlockGuard

Remove (uninstall)

sc.exe delete BlockGuard

root@kitploit:~
## ✅ Verificando se Funciona

Siga estas etapas para confirmar que o BlockGuard está protegendo os arquivos corretamente.

### Teste 1: Verificação de Build```powershell
# From the project root directory
dotnet build BlockGuard.sln

# Expected: Build succeeded with 0 Error(s)

Teste 2: Verifique se o Agente Inicia```powershell

Open an elevated (Administrator) PowerShell

dotnet run --project src/BlockGuard.Agent

root@kitploit:~
**✅ Saída esperada:**
- Mensagem `BlockGuard Security Agent Starting`
- Nenhum erro `CRITICAL` ou `FATAL`
- `ETW file trace session started successfully`
- `BlockGuard is now actively protecting X path(s)`

**❌ Se você vir `ETW session — insufficient privileges`:**
- Você NÃO está executando como Administrador. Clique com o botão direito no PowerShell → "Executar como Administrador"

### Teste 3: Verificação de Bloqueio de ACL

Após a inicialização do agente, verifique se os arquivos protegidos estão bloqueados:```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

Teste 4: Verificar estado da ACL com 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:~
### Teste 5: Inspeção do Log de Auditoria

Depois que o agente executar por um tempo, verifique o log de auditoria:```powershell
# View the last 10 audit entries
Get-Content "C:\ProgramData\BlockGuard\Logs\audit.json" | Select-Object -Last 10

Saída esperada (linhas 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:~
### Teste 6: Verificar Captura de Eventos ETW

Abra um segundo terminal e tente acessar um arquivo protegido enquanto o agente está em execução:```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"

No Terminal 1, você deve ver uma entrada de log como:``` [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:~
### Teste 7: Verificar Acesso Não Autorizado Bloqueado (Modelo de IA)

Quando um processo (como um modelo de IA não autorizado) tenta ler uma pasta ou arquivo protegido, o agente nega imediatamente o acesso. A IA receberá um erro estrito de **Acesso Negado** e a tentativa será registrada:

<p align="center">
  <img src="https://assets.kitploit.com/production/public/readmes/12349/d2a2e20c0fc60e8b3a5f614b0a53c6c7275b634e93b1ce0b9fe4440c38215fac.png" alt="Acesso Não Autorizado Negado" width="600" />
</p>

### Teste 8: Verificar Criptografia 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)

Teste 9: Detecção de Violação

Enquanto o agente está em execução, adicione manualmente uma entrada ACL não autorizada:```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: Verificar diretório de 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)

Lista de Verificação Rápida


📁 Estrutura do Projeto```

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

## 🔬 Como Funciona

### Sequência de Inicialização (5 Fases)```
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

Fluxo de Solicitação de Acesso```

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

root@kitploit:~
### Validação de Processo (6 Verificações)

Quando um processo acessa um arquivo protegido, o BlockGuard o valida através de:

1. **Executable Path** — Resolve e canoniza o caminho completo (impede traversal de caminho)
2. **SHA-256 Hash** — Calcula o hash do binário em disco (detecta substituição de arquivo)
3. **Authenticode Signature** — Valida a cadeia de assinatura digital (detecta binários não assinados/adulterados)
4. **Process Owner SID** — Consulta o token para identificar a conta em execução
5. **Integrity Level** — Lê o rótulo obrigatório (Untrusted/Low/Medium/High/System)
6. **Parent Process ID** — Rastreia a cadeia de criação do processo (detecta injeção)

Todas as verificações **fail-closed**: se qualquer etapa de validação falhar, o acesso é **NEGADO**.

---

## 🛠️ Solução de Problemas

### "ETW session — privilégios insuficientes"

**Causa:** O agente não está em execução com privilégios de Administrador/SISTEMA.

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

"Não é possível modificar ACL — o agente não possui privilégios necessários"

Causa: O agente não pode alterar permissões de arquivo sem privilégios elevados.

Correção: Igual ao anterior — execute como Administrador.

"Caminho protegido não existe. Pulando."

Causa: Os caminhos em appsettings.json não existem na sua máquina.

Correção: Crie os diretórios e arquivos primeiro:```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:~
### Erros de compilação após clonagem

**Correção:** Restaure os pacotes NuGet:```powershell
dotnet restore BlockGuard.sln
dotnet build BlockGuard.sln

"Sessão ETW órfã descartada"

Causa: Uma instância anterior do agente falhou e deixou uma sessão ETW zumbi. Isso é limpo automaticamente — é um AVISO, não um erro.

O agente para imediatamente após iniciar

Causa: Provavelmente um erro de configuração. Verifique o arquivo de log:```powershell Get-Content "C:\ProgramData\BlockGuard\Logs\blockguard-*.log" | Select-Object -Last 50

root@kitploit:~
---

## 🔒 Considerações de Segurança

### O Que Este Agente Pode Fazer
- ✅ Impedir que processos não autorizados **leiam** arquivos protegidos via imposição de ACL
- ✅ Detectar e **auditar** todas as tentativas de acesso a arquivos em tempo real via ETW
- ✅ Criptografar arquivos **em repouso** usando DPAPI
- ✅ Detectar e **corrigir automaticamente** adulteração de ACL

### O Que Este Agente Não Pode Fazer
- ❌ **Bloquear leituras de arquivos em tempo real** — Este é um agente em modo de usuário; o bloqueio verdadeiro em tempo real requer um driver de filtro no kernel
- ❌ **Impedir ataques em nível de kernel** — Um driver malicioso do kernel pode ignorar ACLs do NTFS
- ❌ **Impedir que Administradores substituam** — Contas de administrador podem remover ACLs (mitigado pela detecção de adulteração)

### Recomendações para Produção

1. **Executar como `NT AUTHORITY\SYSTEM`** — Use um Serviço Windows, não um aplicativo de console
2. **Assinar o binário do agente** com um certificado Authenticode para evitar adulteração
3. **Habilitar o BitLocker** no volume para criptografia de disco completo (complementa DPAPI)
4. **Encaminhar logs de auditoria para um SIEM** para monitoramento centralizado
5. **Habilitar Secure Boot + Driver Signature Enforcement** para evitar bypass em nível de kernel

---

## 🤝 Contribuindo

1. Faça um fork do repositório
2. Crie um branch de funcionalidade: `git checkout -b feature/my-feature`
3. Faça commit das suas alterações: `git commit -m "Add my feature"`
4. Envie para o branch: `git push origin feature/my-feature`
5. Abra um Pull Request

### Estilo de Código
- Siga as convenções de nomenclatura C# (PascalCase para membros públicos)
- Adicione comentários de documentação XML para todas as APIs públicas
- Toda validação deve **falhar-fechado** (negar em erro)
- Descartar explicitamente todos os handles nativos em blocos `finally`
- Zerar buffers de memória sensíveis após o uso

---

## 📄 Licença

Este projeto é licenciado sob a Licença MIT. Veja [LICENSE](https://github.com/m2l33k/blockguard/blob/HEAD/LICENSE) para detalhes.

---

<p align="center">
  <b>Construído com princípios de segurança em primeiro lugar para proteção de arquivos Windows.</b>
  <br/>
  <sub>BlockGuard — porque seus dados merecem um guarda, não apenas uma fechadura.</sub>
</p>
Baixar ferramenta
RecursoDescrição
ACLs de Negação por PadrãoArquivos protegidos são bloqueados na inicialização do agente — somente SYSTEM e Administradores mantêm acesso
Monitoramento ETW em Tempo RealEventos de I/O de arquivos no nível do kernel capturados via Rastreamento de Eventos para Windows
Validação de Processo em 6 CamadasCaminho do executável, hash SHA-256, assinatura Authenticode, SID do proprietário, nível de integridade, cadeia de processos pai
Criptografia DPAPI de ArquivosArquivos protegidos criptografados em repouso usando a API de Proteção de Dados do Windows
Revogação Automática de Acesso TemporárioProcessos autorizados recebem concessões de ACL com tempo limitado que expiram automaticamente
Detecção de ViolaçãoVerificações periódicas de integridade detectam e corrigem automaticamente modificações nas ACLs
Registro de Auditoria EstruturadoTrilha de auditoria em JSON de todas as tentativas de acesso (pronto para SIEM)
Serviço do WindowsExecuta como um serviço de plano de fundo do Windows sob NT AUTHORITY\SYSTEM
Versão Mínima
Comando de Verificação
Sistema Operacional WindowsWindows 10 / Server 2019winver
SDK .NET9.0dotnet --version
Privilégios de AdministradorNecessárioExecutar terminal como Admin
CampoTipoDescrição
RuleNamestringNome legível para esta regra (usado em logs de auditoria)
ExecutablePathstring?Caminho completo para o executável autorizado (não diferencia maiúsculas/minúsculas)
ExpectedFileHashstring?Hash SHA-256 do executável (detecção de adulteração)
ExpectedSignerSubjectstring?Sujeito do certificado Authenticode (ex.: "CN=Contoso")
MinimumIntegrityLevelstringNível mínimo de integridade do Windows: Untrusted, Low, Medium, High, System
RequireSignatureboolSe true, o executável deve ter uma assinatura Authenticode válida
#TesteComo VerificarResultado Esperado
1Compilaçãodotnet build BlockGuard.sln0 erros
2Agente iniciadotnet run --project src/BlockGuard.Agent (como Administrador)Banner de inicialização, sem erros CRÍTICOS
3Bloqueio de ACLicacls <arquivo-protegido>Apenas SYSTEM + Administradores
4Acesso não autorizado bloqueadoLer arquivo protegido de terminal não administradorAcesso Negado
5Captura ETWLer arquivo protegido enquanto o agente executaEntrada REGISTADA (DENIED) no console
6Registo de auditoriaGet-Content C:\ProgramData\BlockGuard\Logs\audit.jsonEntradas JSON com veredito
7Criptografia DPAPITest-Path <arquivo>.encFicheiro .enc existe
8Deteção de adulteraçãoicacls <arquivo> /grant Users:R e aguardar 60sRemediação automática registada