Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
BlockGuard — BlockGuard ist ein Windows Data Loss Prevention (DLP)-Agent, der Dateizugriffe auf Prozessebene abfängt und kontrolliert. Es stellt sicher, dass nur autorisierte Prozesse – identifiziert durch ausführbaren Pfad, kryptografischen Hash, Authenticode-Signatur und Integritätsstufe – geschützte Dateien lesen können. | Kitploit
Tools/GitHubGitHub/m2l33k/blockguard
Authentifizierung & AutorisierungDefensivwerkzeugeVerschlüsselungs-/EntschlüsselungstoolsKonfigurationsprüfungDatenexfiltrationIncident ResponseLog-Analyse
GitHubm2l33k/blockguard

BlockGuard

Repository anzeigen
2vor 6 MonatenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →

Über

BlockGuard ist ein Windows Data Loss Prevention (DLP)-Agent, der Dateizugriffe auf Prozessebene abfängt und kontrolliert. Es stellt sicher, dass nur autorisierte Prozesse – identifiziert durch ausführbaren Pfad, kryptografischen Hash, Authenticode-Signatur und Integritätsstufe – geschützte Dateien lesen können.

Teilen

BlockGuard — Trusty

.NET 9 Windows License DLP

🛡️ BlockGuard — Prozessbasierter Dateizugriff-Sicherheitsagent

BlockGuard ist ein Windows Data Loss Prevention (DLP)-Agent, der den Dateizugriff auf Prozessebene abfängt und steuert. Er stellt sicher, dass nur autorisierte Prozesse – identifiziert durch ausführbaren Pfad, kryptografischen Hash, Authenticode-Signatur und Integritätsstufe – geschützte Dateien lesen können. Allen anderen Prozessen wird der Zugriff standardmäßig verweigert auf Betriebssystem-Kernel-Ebene über NTFS-ACLs.


📑 Inhaltsverzeichnis

  • Funktionen
  • Architektur
  • UI-Verwaltungsoberfläche
  • Voraussetzungen
  • Schnellstart
  • Konfiguration
  • Ausführen des Agents
  • Überprüfung der Funktionsweise
  • Projektstruktur
  • Funktionsweise
  • Fehlerbehebung
  • Sicherheitsaspekte
  • Mitwirken

✨ Funktionen


🏗️ Architektur

BlockGuard verwendet eine dreischichtige modulare Architektur:``` ┌─────────────────────────────────────────────────────────────────┐ │ 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:~
---

## 🖥️ Benutzeroberfläche zur Verwaltung

BlockGuard enthält eine **WPF-Desktopanwendung** zur Verwaltung geschützter Dateien und Ordner über eine visuelle Oberfläche — ohne dass `appsettings.json` manuell bearbeitet werden muss.

<p align="center">
  <img src="https://assets.kitploit.com/production/public/readmes/12349/51a9b7894117382666d869cee59860a33698f666133bd23c6b6cd48b225d942c.png" alt="BlockGuard UI" width="640" />
</p>

### Funktionen

- **Dashboard** — Übersicht über den Schutzstatus (Gesamtanzahl Dateien, Ordner, Verschlüsselungszustand)
- **Geschützte Dateien** — Hinzufügen/Entfernen von Dateien und Ordnern, die vor KI-Zugriff geschützt werden sollen, über Dateibrowser-Dialoge
- **Aktivitätsprotokoll** — Echtzeitprotokoll aller Konfigurationsänderungen
- **Einstellungen** — Anzeigen des Konfigurationsdateipfads und der Agenteninformationen
- **Agentenstatus** — Live-Anzeige, ob der BlockGuard-Agentendienst ausgeführt wird

### So starten Sie die Benutzeroberfläche```powershell
# From the project root
dotnet run --project src/BlockGuard.UI

Hinweis: Die Benutzeroberfläche liest und schreibt appsettings.json aus dem Agent-Projekt. Speichern Sie die Änderungen, starten Sie dann den BlockGuard Agent-Dienst neu, damit sie wirksam werden.


📋 Voraussetzungen

Stellen Sie vor der Ausführung von BlockGuard sicher, dass Folgendes auf Ihrem Windows-Rechner installiert ist:

AnforderungMindestversion

Installieren des .NET 9 SDK (falls nicht installiert)```powershell

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

Or use winget:

winget install Microsoft.DotNet.SDK.9

root@kitploit:~
---

## 🚀 Schnellstart

### 1. Repository klonen```powershell
git clone [email protected]:m2l33k/BlockGuard.git
cd BlockGuard

2. Abhängigkeiten wiederherstellen```powershell

dotnet restore BlockGuard.sln

root@kitploit:~
### 3. Lösung erstellen```powershell
dotnet build BlockGuard.sln --configuration Release

Sie sollten sehen:``` Build succeeded. 0 Warning(s) 0 Error(s)

root@kitploit:~
### 4. Konfigurieren der geschützten Pfade und Regeln

Bearbeiten Sie `src/BlockGuard.Agent/appsettings.json`, um **welche Dateien geschützt werden sollen** und **welche Prozesse autorisiert sind** zu definieren:```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. Ausführen (Entwicklungsmodus)```powershell

Run as Administrator (required for ETW + ACL operations)

dotnet run --project src/BlockGuard.Agent

root@kitploit:~
---

## ⚙️ Konfiguration

Die gesamte Konfiguration befindet sich in `src/BlockGuard.Agent/appsettings.json` im Abschnitt `"BlockGuard"`.

### Geschützte Pfade

Ein Array von Dateien oder Verzeichnissen, die geschützt werden sollen. Verzeichnisse schützen alle darin enthaltenen Dateien rekursiv.```json
"ProtectedPaths": [
  "C:\\Secrets\\ai-model-keys",
  "C:\\Secrets\\api-credentials.json",
  "D:\\Confidential\\reports"
]

Regeln für autorisierte Prozesse

Jede Regel definiert die Kriterien, die ein Prozess erfüllen muss, um Zugriff zu erhalten. Alle nicht-null Felder müssen übereinstimmen (UND-Logik):

Beispiel: Pfadbasierte Regel (für einen KI-Modellprozess)```json { "RuleName": "AI-Model-Inference-Engine", "ExecutablePath": "C:\Program Files\MyAI\inference.exe", "ExpectedFileHash": null, "ExpectedSignerSubject": null, "MinimumIntegrityLevel": "Medium", "RequireSignature": false }

root@kitploit:~
**Beispiel: Signaturbasierte Regel (für jedes signierte Verwaltungstool)**```json
{
  "RuleName": "Signed-Management-Tool",
  "ExecutablePath": null,
  "ExpectedFileHash": null,
  "ExpectedSignerSubject": "CN=Contoso Security",
  "MinimumIntegrityLevel": "High",
  "RequireSignature": true
}

Beispiel: Hash-gepinnte Regel (für maximalen Manipulationsschutz)```json { "RuleName": "Pinned-Data-Processor", "ExecutablePath": "C:\Tools\processor.exe", "ExpectedFileHash": "a1b2c3d4e5f67890abcdef1234567890abcdef1234567890abcdef1234567890", "ExpectedSignerSubject": null, "MinimumIntegrityLevel": "Medium", "RequireSignature": false }

root@kitploit:~
### Weitere Optionen

| Option | Standard | Beschreibung |
|---|---|---|
| `IdentityCacheTtlSeconds` | `30` | Wie lange (Sekunden) eine validierte Prozessidentität im Cache bleibt |
| `HandleTimeoutSeconds` | `60` | Maximale Dauer (Sekunden) einer temporären ACL-Erteilung |
| `AuditLogPath` | `C:\ProgramData\BlockGuard\Logs\audit.json` | Pfad für die JSON-Überwachungsprotokolldatei |
| `EnableDpapiEncryption` | `true` | Verschlüsseln geschützter Dateien im Ruhezustand mit DPAPI |
| `DpapiScope` | `LocalMachine` | DPAPI-Bereich: `LocalMachine` oder `CurrentUser` |

---

## 🏃 Ausführen des Agents

### Option A: Entwicklungsmodus (Konsole)

Am besten zum Testen und Debuggen. Führen Sie von einer **erhöhten (Administrator-)PowerShell** aus:```powershell
dotnet run --project src/BlockGuard.Agent --configuration Release

Sie werden eine Konsolenausgabe sehen wie:``` [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:~
Drücken Sie `Ctrl+C` zum Beenden.

### Option B: Als Windows-Dienst installieren (Produktion)```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

Dienst verwalten:```powershell

Check status

sc.exe query BlockGuard

Stop

sc.exe stop BlockGuard

Remove (uninstall)

sc.exe delete BlockGuard

root@kitploit:~
---

## ✅ Überprüfen der Funktionsweise

Befolgen Sie diese Schritte, um zu bestätigen, dass BlockGuard Dateien korrekt schützt.

### Test 1: Build-Überprüfung```powershell
# From the project root directory
dotnet build BlockGuard.sln

# Expected: Build succeeded with 0 Error(s)

Test 2: Überprüfen, ob der Agent startet```powershell

Open an elevated (Administrator) PowerShell

dotnet run --project src/BlockGuard.Agent

root@kitploit:~
**✅ Erwartete Ausgabe:**
- Meldung `BlockGuard Security Agent Starting`
- Keine `CRITICAL`- oder `FATAL`-Fehler
- `ETW file trace session started successfully`
- `BlockGuard is now actively protecting X path(s)`

**❌ Falls Sie `ETW session — insufficient privileges` sehen:**
- Sie führen PowerShell NICHT als Administrator aus. Rechtsklick auf PowerShell → "Als Administrator ausführen"

### Test 3: ACL-Sperre überprüfen

Starten Sie den Agenten und überprüfen Sie, ob geschützte Dateien gesperrt sind:```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: Überprüfen des ACL-Status mit 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: Prüfung des Audit-Logs

Nachdem der Agent eine Weile gelaufen ist, überprüfen Sie das Audit-Log:```powershell
# View the last 10 audit entries
Get-Content "C:\ProgramData\BlockGuard\Logs\audit.json" | Select-Object -Last 10

Erwartete Ausgabe (JSON-Zeilen):```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: ETW-Ereigniserfassung verifizieren

Öffnen Sie ein zweites Terminal und versuchen Sie, auf eine geschützte Datei zuzugreifen, während der Agent läuft:```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"

In Terminal 1 sollten Sie einen Logeintrag wie den folgenden sehen:``` [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: Überprüfen, dass unbefugter Zugriff blockiert wird (KI-Modell)

Wenn ein Prozess (wie ein unbefugtes KI-Modell) versucht, einen geschützten Ordner oder eine geschützte Datei zu lesen, verweigert der Agent sofort den Zugriff. Das KI-Modell erhält einen strikten **Zugriff verweigert**-Fehler, und der Versuch wird protokolliert:

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

### Test 8: Überprüfen der DPAPI-Verschlüsselung```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: Manipulationserkennung

Während der Agent läuft, fügen Sie manuell einen nicht autorisierten ACL-Eintrag hinzu:```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: Logs-Verzeichnis überprüfen```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)

Kurzcheckliste


📁 Projektstruktur```

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

## 🔬 Wie es funktioniert

### Startsequenz (5 Phasen)```
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

Anfragefluss für Zugriffe```

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

root@kitploit:~
### Prozessvalidierung (6 Prüfungen)

Wenn ein Prozess auf eine geschützte Datei zugreift, validiert BlockGuard diesen durch:

1. **Executable Path** — Löst den vollständigen Pfad auf und kanonisiert ihn (verhindert Path Traversal)
2. **SHA-256 Hash** — Berechnet den Hash der Binärdatei auf der Festplatte (erkennt Dateiaustausch)
3. **Authenticode Signature** — Validiert die digitale Signaturkette (erkennt unsignierte/manipulierte Binärdateien)
4. **Process Owner SID** — Fragt das Token ab, um das ausgeführte Konto zu identifizieren
5. **Integrity Level** — Liest das obligatorische Label (Untrusted/Low/Medium/High/System)
6. **Parent Process ID** — Verfolgt die Prozesserstellungskette (erkennt Injection)

Alle Prüfungen sind **fail-closed**: falls ein Validierungsschritt fehlschlägt, wird der Zugriff **VERWEIGERT**.

---

## 🛠️ Fehlerbehebung

### "ETW session – unzureichende Berechtigungen"

**Ursache:** Der Agent läuft nicht mit Administrator/SYSTEM-Berechtigungen.

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

"Kann ACL nicht ändern – dem Agenten fehlen erforderliche Berechtigungen"

Ursache: Der Agent kann Dateiberechtigungen ohne erhöhte Rechte nicht ändern.

Lösung: Wie oben – als Administrator ausführen.

"Geschützter Pfad existiert nicht. Wird übersprungen."

Ursache: Die Pfade in appsettings.json existieren auf Ihrem Rechner nicht.

Lösung: Erstellen Sie zuerst die Verzeichnisse und Dateien:```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:~
### Build-Fehler nach dem Klonen

**Behebung:** NuGet-Pakete wiederherstellen:```powershell
dotnet restore BlockGuard.sln
dotnet build BlockGuard.sln

"Verwaiste ETW-Sitzung bereinigt"

Ursache: Eine vorherige Agent-Instanz ist abgestürzt und hat eine Zombie-ETW-Sitzung hinterlassen. Diese wird automatisch bereinigt — es ist eine WARNUNG, kein Fehler.

Agent stoppt sofort nach dem Start

Ursache: Wahrscheinlich ein Konfigurationsfehler. Überprüfen Sie die Log-Datei:```powershell Get-Content "C:\ProgramData\BlockGuard\Logs\blockguard-*.log" | Select-Object -Last 50

root@kitploit:~
---

## 🔒 Sicherheitsüberlegungen

### Was dieser Agent tun kann
- ✅ Verhindern, dass nicht autorisierte Prozesse geschützte Dateien **lesen** – durch ACL-Durchsetzung
- ✅ Erkennen und **protokollieren** aller Dateizugriffsversuche in Echtzeit über ETW
- ✅ Verschlüsseln von Dateien **im Ruhezustand** mittels DPAPI
- ✅ Erkennen und **automatische Behebung** von ACL-Manipulationen

### Was dieser Agent nicht tun kann
- ❌ **Dateilesevorgänge blockieren** — Dies ist ein User-Mode-Agent; echte Blockierung während des Vorgangs erfordert einen Kernel-Minifilter-Treiber
- ❌ **Kernel-Level-Angriffe stoppen** — Ein böswilliger Kernel-Treiber kann NTFS-ACLs umgehen
- ❌ **Administratoren am Überschreiben hindern** — Admin-Konten können ACLs entfernen (durch Manipulationserkennung gemildert)

### Empfehlungen für die Produktion

1. **Als `NT AUTHORITY\SYSTEM` ausführen** — Verwenden Sie einen Windows-Dienst, keine Konsolenanwendung
2. **Signieren Sie die Agent-Binärdatei** mit einem Authenticode-Zertifikat, um Selbstmanipulation zu verhindern
3. **Aktivieren Sie BitLocker** auf dem Volume für die Vollverschlüsselung (ergänzt DPAPI)
4. **Leiten Sie Audit-Protokolle an ein SIEM weiter** für die zentrale Überwachung
5. **Aktivieren Sie Secure Boot + Treibersignaturerzwingung**, um Kernel-Level-Umgehungen zu verhindern

---

## 🤝 Mitwirken

1. Repository forken
2. Erstellen Sie einen Feature-Branch: `git checkout -b feature/my-feature`
3. Comitten Sie Ihre Änderungen: `git commit -m "Add my feature"`
4. Pushen Sie den Branch: `git push origin feature/my-feature`
5. Öffnen Sie einen Pull Request

### Code-Stil
- Befolgen Sie die C#-Namenskonventionen (PascalCase für öffentliche Member)
- Fügen Sie allen öffentlichen APIs XML-Dokumentationskommentare hinzu
- Jede Validierung muss **fail-closed** sein (bei Fehler verweigern)
- Entsorgen Sie alle nativen Handles explizit in `finally`-Blöcken
- Löschen Sie vertrauliche Speicherpuffer nach der Verwendung

---

## 📄 Lizenz

Dieses Projekt ist unter der MIT-Lizenz lizenziert. Weitere Details finden Sie in der [LIZENZ](https://github.com/m2l33k/blockguard/blob/main/LICENSE).

---

<p align="center">
  <b>Erstellt mit Sicherheit-im-Vordergrund-Prinzipien für den Windows-Dateischutz.</b>
  <br/>
  <sub>BlockGuard – denn Ihre Daten verdienen eine Wache, nicht nur ein Schloss.</sub>
</p>
Tool herunterladen
FunktionBeschreibung
Standardmäßig verweigerte ACLsGeschützte Dateien werden beim Agentenstart gesperrt – nur SYSTEM und Administratoren behalten Zugriff
Echtzeit-ETW-ÜberwachungKernel-Level-Datei-I/O-Ereignisse werden über die Ereignisablaufverfolgung für Windows erfasst
6-schichtige ProzessvalidierungAusführbarer Pfad, SHA-256-Hash, Authenticode-Signatur, Besitzer-SID, Integritätsstufe, Elternprozesskette
DPAPI-DateiverschlüsselungGeschützte Dateien werden im Ruhezustand mit der Windows Data Protection API verschlüsselt
Automatisch widerrufender temporärer ZugriffAutorisierte Prozesse erhalten zeitlich begrenzte ACL-Gewährungen, die automatisch verfallen
ManipulationserkennungRegelmäßige Integritätsprüfungen erkennen und beheben ACL-Änderungen automatisch
Strukturierte PrüfprotokollierungJSON-Prüfpfad aller Zugriffsversuche (SIEM-ready)
Windows-DienstLäuft als Hintergrund-Windows-Dienst unter NT AUTHORITY\SYSTEM
Prüfbefehl
Windows OSWindows 10 / Server 2019winver
.NET SDK9.0dotnet --version
AdministratorrechteErforderlichTerminal als Administrator ausführen
FeldTypBeschreibung
RuleNamestringMenschenlesbarer Name für diese Regel (wird in Prüfprotokollen verwendet)
ExecutablePathstring?Vollständiger Pfad zur autorisierten ausführbaren Datei (Groß-/Kleinschreibung wird ignoriert)
ExpectedFileHashstring?SHA-256-Hash der ausführbaren Datei (Manipulationserkennung)
ExpectedSignerSubjectstring?Authenticode-Zertifikatsantragsteller (z. B. "CN=Contoso")
MinimumIntegrityLevelstringMinimale Windows-Integritätsstufe: Untrusted, Low, Medium, High, System
RequireSignatureboolWenn true, muss die ausführbare Datei eine gültige Authenticode-Signatur besitzen
#TestÜberprüfungErwartetes Ergebnis
1Builddotnet build BlockGuard.sln0 Fehler
2Agent startetdotnet run --project src/BlockGuard.Agent (als Administrator)Startbanner, keine KRITISCHEN Fehler
3ACL-Sperreicacls <geschützte-datei>Nur SYSTEM + Administratoren
4Unberechtigter Zugriff blockiertGeschützte Datei von einem Nicht-Administrator-Terminal lesenZugriff verweigert
5ETW-ErfassungGeschützte Datei lesen während der Agent läuftVERWEIGERT-Logzeile in der Konsole
6PrüfprotokollGet-Content C:\ProgramData\BlockGuard\Logs\audit.jsonJSON-Einträge mit Entscheidung
7DPAPI-VerschlüsselungTest-Path <datei>.enc.enc-Datei existiert
8Manipulationserkennungicacls <datei> /grant Users:R dann 60s wartenAutomatische Wiederherstellung protokolliert