
BlockGuard एक विंडोज डेटा हानि निवारण (DLP) एजेंट है जो प्रक्रिया स्तर पर फ़ाइल पहुंच को इंटरसेप्ट और नियंत्रित करता है। यह सुनिश्चित करता है कि केवल अधिकृत प्रक्रियाएं — जो निष्पादन योग्य पथ, क्रिप्टोग्राफिक हैश, Authenticode हस्ताक्षर और अखंडता स्तर द्वारा पहचानी जाती हैं — संरक्षित फ़ाइलों को पढ़ सकें।
BlockGuard एक विंडोज डेटा हानि रोकथाम (DLP) एजेंट है जो प्रक्रिया स्तर पर फ़ाइल एक्सेस को इंटरसेप्ट और नियंत्रित करता है। यह सुनिश्चित करता है कि केवल अधिकृत प्रक्रियाएँ — निष्पादन योग्य पथ, क्रिप्टोग्राफिक हैश, ऑथेंटिकोड हस्ताक्षर और अखंडता स्तर द्वारा पहचानी गई — सुरक्षित फ़ाइलों को पढ़ सकें। अन्य सभी प्रक्रियाओं को डिफ़ॉल्ट रूप से OS कर्नेल स्तर पर NTFS ACL के माध्यम से अस्वीकार कर दिया जाता है।
BlockGuard एक तीन-स्तरीय मॉड्यूलर आर्किटेक्चर का उपयोग करता है:``` ┌─────────────────────────────────────────────────────────────────┐ │ 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) │ │ └───────────────────┴─────────────────────┴───────────────────────┘
---
## 🖥️ UI प्रबंधन इंटरफ़ेस
BlockGuard में एक **WPF डेस्कटॉप एप्लिकेशन** शामिल है जो संरक्षित फ़ाइलों और फ़ोल्डरों को एक दृश्य इंटरफ़ेस के माध्यम से प्रबंधित करने के लिए है — मैन्युअल रूप से `appsettings.json` संपादित करने की आवश्यकता नहीं है।
<p align="center">
<img src="https://assets.kitploit.com/production/public/readmes/12349/51a9b7894117382666d869cee59860a33698f666133bd23c6b6cd48b225d942c.png" alt="BlockGuard UI" width="640" />
</p>
### विशेषताएँ
- **डैशबोर्ड** — सुरक्षा स्थिति का अवलोकन (कुल फ़ाइलें, फ़ोल्डर, एन्क्रिप्शन स्थिति)
- **संरक्षित फ़ाइलें** — फ़ाइल ब्राउज़र डायलॉग के माध्यम से AI पहुंच से बचाने के लिए फ़ाइलें और फ़ोल्डर जोड़ें/हटाएं
- **गतिविधि लॉग** — सभी कॉन्फ़िगरेशन परिवर्तनों का रीयल-टाइम लॉग
- **सेटिंग्स** — कॉन्फ़िगरेशन फ़ाइल पथ और एजेंट जानकारी देखें
- **एजेंट स्थिति** — लाइव संकेतक जो दिखाता है कि BlockGuard एजेंट सेवा चल रही है या नहीं
### UI कैसे लॉन्च करें```powershell
# From the project root
dotnet run --project src/BlockGuard.UI
नोट: UI, Agent प्रोजेक्ट से
appsettings.jsonको पढ़ता और लिखता है। परिवर्तन सहेजने के बाद, उन्हें प्रभावी करने के लिए BlockGuard Agent सेवा को पुनरारंभ करें।
BlockGuard चलाने से पहले, सुनिश्चित करें कि निम्नलिखित आपके Windows मशीन पर स्थापित हैं:
| आवश्यकता | न्यूनतम संस्करण |
|---|
winget install Microsoft.DotNet.SDK.9
---
## 🚀 त्वरित प्रारंभ
### 1. रिपॉजिटरी क्लोन करें```powershell
git clone [email protected]:m2l33k/BlockGuard.git
cd BlockGuard
dotnet restore BlockGuard.sln
### 3. समाधान बनाएँ```powershell
dotnet build BlockGuard.sln --configuration Release
आपको देखना चाहिए:``` Build succeeded. 0 Warning(s) 0 Error(s)
### 4. सुरक्षित पथ और नियम कॉन्फ़िगर करें
`src/BlockGuard.Agent/appsettings.json` को संपादित करें **कौन सी फ़ाइलें सुरक्षित करनी हैं** और **कौन सी प्रक्रियाएँ अधिकृत हैं** परिभाषित करने के लिए:```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
## ⚙️ कॉन्फ़िगरेशन
सभी कॉन्फ़िगरेशन `src/BlockGuard.Agent/appsettings.json` में `"BlockGuard"` अनुभाग के अंतर्गत रहता है।
### संरक्षित पथ
गार्ड करने के लिए फ़ाइलों या निर्देशिकाओं की एक सूची। निर्देशिकाएँ सभी फ़ाइलों को पुनरावर्ती रूप से सुरक्षित करती हैं।```json
"ProtectedPaths": [
"C:\\Secrets\\ai-model-keys",
"C:\\Secrets\\api-credentials.json",
"D:\\Confidential\\reports"
]
प्रत्येक नियम उन मानदंडों को परिभाषित करता है जिनसे एक प्रक्रिया को पहुँच प्रदान करने के लिए मेल खाना चाहिए। सभी गैर-शून्य फ़ील्ड मेल खानी चाहिए (AND-तर्क):
उदाहरण: पथ-आधारित नियम (एक AI मॉडल प्रक्रिया के लिए)```json { "RuleName": "AI-Model-Inference-Engine", "ExecutablePath": "C:\Program Files\MyAI\inference.exe", "ExpectedFileHash": null, "ExpectedSignerSubject": null, "MinimumIntegrityLevel": "Medium", "RequireSignature": false }
**उदाहरण: हस्ताक्षर-आधारित नियम (किसी भी हस्ताक्षरित प्रबंधन उपकरण के लिए)**```json
{
"RuleName": "Signed-Management-Tool",
"ExecutablePath": null,
"ExpectedFileHash": null,
"ExpectedSignerSubject": "CN=Contoso Security",
"MinimumIntegrityLevel": "High",
"RequireSignature": true
}
उदाहरण: हैश-पिन किया गया नियम (अधिकतम छेड़छाड़ सुरक्षा के लिए)```json { "RuleName": "Pinned-Data-Processor", "ExecutablePath": "C:\Tools\processor.exe", "ExpectedFileHash": "a1b2c3d4e5f67890abcdef1234567890abcdef1234567890abcdef1234567890", "ExpectedSignerSubject": null, "MinimumIntegrityLevel": "Medium", "RequireSignature": false }
### अन्य विकल्प
| विकल्प | डिफ़ॉल्ट | विवरण |
|---|---|---|
| `IdentityCacheTtlSeconds` | `30` | एक मान्य प्रक्रिया पहचान कितने समय (सेकंड) तक कैश में रहती है |
| `HandleTimeoutSeconds` | `60` | अस्थायी ACL अनुदान की अधिकतम अवधि (सेकंड) |
| `AuditLogPath` | `C:\ProgramData\BlockGuard\Logs\audit.json` | JSON ऑडिट लॉग फ़ाइल का पथ |
| `EnableDpapiEncryption` | `true` | DPAPI के साथ संरक्षित फ़ाइलों को आराम पर एन्क्रिप्ट करें |
| `DpapiScope` | `LocalMachine` | DPAPI दायरा: `LocalMachine` या `CurrentUser` |
---
## 🏃 एजेंट चलाना
### विकल्प A: विकास मोड (कंसोल)
परीक्षण और डिबगिंग के लिए सर्वोत्तम। **उन्नत (प्रशासक) PowerShell** से चलाएं:```powershell
dotnet run --project src/BlockGuard.Agent --configuration Release
[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).
`Ctrl+C` दबाकर रोकें।
### विकल्प B: एक Windows Service के रूप में स्थापित करें (उत्पादन)```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
सेवा प्रबंधित करें:```powershell
sc.exe query BlockGuard
sc.exe stop BlockGuard
sc.exe delete BlockGuard
---
## ✅ यह काम कर रहा है इसकी पुष्टि करें
BlockGuard फ़ाइलों की सही ढंग से सुरक्षा कर रहा है, यह पुष्टि करने के लिए इन चरणों का पालन करें।
### परीक्षण 1: निर्माण सत्यापन```powershell
# From the project root directory
dotnet build BlockGuard.sln
# Expected: Build succeeded with 0 Error(s)
dotnet run --project src/BlockGuard.Agent
**✅ अपेक्षित आउटपुट:**
- `BlockGuard Security Agent Starting` संदेश
- कोई `CRITICAL` या `FATAL` त्रुटि नहीं
- `ETW file trace session started successfully`
- `BlockGuard is now actively protecting X path(s)`
**❌ यदि आप `ETW session — insufficient privileges` देखते हैं:**
- आप व्यवस्थापक के रूप में नहीं चल रहे हैं। PowerShell पर राइट-क्लिक करें → "Run as Administrator"
### परीक्षण 3: ACL लॉकडाउन सत्यापन
एजेंट शुरू होने के बाद, सुनिश्चित करें कि संरक्षित फ़ाइलें लॉक डाउन हैं:```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
icacls "C:\Secrets\api-credentials.json"
### Test 5: ऑडिट लॉग निरीक्षण
एजेंट के कुछ समय चलने के बाद, ऑडिट लॉग की जाँच करें:```powershell
# View the last 10 audit entries
Get-Content "C:\ProgramData\BlockGuard\Logs\audit.json" | Select-Object -Last 10
अपेक्षित आउटपुट (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}
### परीक्षण 6: ETW इवेंट कैप्चर सत्यापित करें
दूसरा टर्मिनल खोलें और एजेंट चल रहा होने पर एक संरक्षित फ़ाइल तक पहुँचने का प्रयास करें:
``````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"
टर्मिनल 1 में, आपको इस प्रकार की एक लॉग प्रविष्टि देखनी चाहिए:``` [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
### परीक्षण 7: अनधिकृत पहुँच अवरुद्ध सत्यापित करें (AI Model)
जब कोई प्रक्रिया (जैसे एक अनधिकृत AI मॉडल) किसी संरक्षित फ़ोल्डर या फ़ाइल को पढ़ने का प्रयास करती है, तो एजेंट तुरंत पहुँच से इनकार कर देता है। AI को सख्त **Access Denied** त्रुटि प्राप्त होगी, और प्रयास लॉग किया जाता है:
<p align="center">
<img src="https://assets.kitploit.com/production/public/readmes/12349/d2a2e20c0fc60e8b3a5f614b0a53c6c7275b634e93b1ce0b9fe4440c38215fac.png" alt="अनधिकृत पहुँच अस्वीकृत" width="600" />
</p>
### परीक्षण 8: 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)
जब एजेंट चल रहा हो, मैन्युअल रूप से एक अनधिकृत ACL प्रविष्टि जोड़ें:```powershell
icacls "C:\Secrets\api-credentials.json.enc" /grant Users:R
### परीक्षण 10: लॉग्स निर्देशिका सत्यापित करें```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)
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
---
## 🔬 यह कैसे काम करता है
### स्टार्टअप अनुक्रम (5 चरण)```
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
┌─────────────┐ ┌───────────────┐ ┌──────────────────┐ │ Process │ │ ETW Kernel │ │ Policy │ │ reads file │────▶│ File Provider │────▶│ Evaluator │ └─────────────┘ └───────────────┘ └──────────────────┘ │ ┌────────┴────────┐ ▼ ▼ ┌──────────┐ ┌──────────┐ │ ALLOW │ │ DENY │ │ │ │ │ │ Grant │ │ ACL is │ │ temp ACL │ │ already │ │ (60s) │ │ blocking │ └──────────┘ └──────────┘ │ │ ▼ ▼ ┌────────────────────────────┐ │ Audit Logger (JSON) │ └────────────────────────────┘
### प्रक्रिया सत्यापन (6 जाँच)
जब कोई प्रक्रिया किसी संरक्षित फ़ाइल तक पहुँचती है, BlockGuard इसे निम्नलिखित के माध्यम से मान्य करता है:
1. **निष्पादन योग्य पथ** — पूर्ण पथ को हल और कैननिकलाइज़ करता है (पथ ट्रैवर्सल को रोकता है)
2. **SHA-256 हैश** — डिस्क पर बाइनरी के हैश की गणना करता है (फ़ाइल प्रतिस्थापन का पता लगाता है)
3. **ऑथेंटिकोड हस्ताक्षर** — डिजिटल हस्ताक्षर श्रृंखला को मान्य करता है (अहस्ताक्षरित/छेड़छाड़ की गई बाइनरी का पता लगाता है)
4. **प्रक्रिया स्वामी SID** — चल रहे खाते की पहचान करने के लिए टोकन को क्वेरी करता है
5. **अखंडता स्तर** — अनिवार्य लेबल (अविश्वसनीय/निम्न/मध्यम/उच्च/सिस्टम) पढ़ता है
6. **मूल प्रक्रिया ID** — प्रक्रिया निर्माण श्रृंखला का पता लगाता है (इंजेक्शन का पता लगाता है)
सभी जाँचें **फेल-क्लोज़`d होती हैं**: यदि कोई भी सत्यापन चरण विफल होता है, तो पहुँच **अस्वीकृत** कर दी जाती है।
---
## 🛠️ समस्या निवारण
### "ETW सत्र — अपर्याप्त विशेषाधिकार"
**कारण:** एजेंट प्रशासक/सिस्टम विशेषाधिकारों के साथ नहीं चल रहा है।
**समाधान:**```powershell
# Right-click PowerShell → "Run as Administrator"
dotnet run --project src/BlockGuard.Agent
कारण: एजेंट बिना उन्नत विशेषाधिकारों के फ़ाइल अनुमतियाँ नहीं बदल सकता।
समाधान: ऊपर जैसा ही — व्यवस्थापक के रूप में चलाएँ।
कारण: appsettings.json में पथ आपकी मशीन पर मौजूद नहीं हैं।
समाधान: पहले निर्देशिकाएँ और फ़ाइलें बनाएँ:```powershell New-Item -Path "C:\Secrets\ai-model-keys" -ItemType Directory -Force Set-Content -Path "C:\Secrets\api-credentials.json" -Value '{"key":"value"}'
### क्लोनिंग के बाद बिल्ड त्रुटियाँ
**समाधान:** NuGet पैकेज पुनर्स्थापित करें:```powershell
dotnet restore BlockGuard.sln
dotnet build BlockGuard.sln
कारण: एक पिछले एजेंट इंस्टेंस क्रैश हो गया और एक ज़ोंबी ETW सत्र छोड़ गया। यह स्वचालित रूप से साफ़ किया जाता है — यह एक WARNING है, कोई त्रुटि नहीं।
कारण: संभवतः एक कॉन्फ़िगरेशन त्रुटि। लॉग फ़ाइल की जाँच करें:```powershell Get-Content "C:\ProgramData\BlockGuard\Logs\blockguard-*.log" | Select-Object -Last 50
---
## 🔒 सुरक्षा संबंधी विचार
### यह एजेंट क्या कर सकता है
- ✅ ACL प्रवर्तन के माध्यम से संरक्षित फ़ाइलों को **पढ़ने** से अनधिकृत प्रक्रियाओं को रोकें
- ✅ ETW के माध्यम से सभी फ़ाइल एक्सेस प्रयासों का वास्तविक समय में **ऑडिट** करें और पता लगाएं
- ✅ DPAPI का उपयोग करके फ़ाइलों को **आराम की स्थिति में** एन्क्रिप्ट करें
- ✅ ACL छेड़छाड़ का **पता लगाएं और स्वचालित रूप से सुधारें**
### यह एजेंट क्या नहीं कर सकता
- ❌ **फ़ाइल पढ़ने को उड़ान में रोकें** — यह एक उपयोगकर्ता-मोड एजेंट है; वास्तविक उड़ान में रोकथाम के लिए एक कर्नेल मिनीफ़िल्टर ड्राइवर की आवश्यकता है
- ❌ **कर्नेल-स्तरीय हमलों को रोकें** — एक दुर्भावनापूर्ण कर्नेल ड्राइवर NTFS ACL को बायपास कर सकता है
- ❌ **प्रशासकों को ओवरराइड करने से रोकें** — प्रशासक खाते ACL हटा सकते हैं (छेड़छाड़ का पता लगाने से कम किया गया)
### उत्पादन के लिए अनुशंसाएँ
1. **`NT AUTHORITY\SYSTEM` के रूप में चलाएँ** — एक Windows सेवा का उपयोग करें, कंसोल ऐप का नहीं
2. **एजेंट बाइनरी पर हस्ताक्षर करें** एक प्रमाणीकृत कोड प्रमाणपत्र के साथ स्व-छेड़छाड़ को रोकने के लिए
3. **वॉल्यूम पर BitLocker सक्षम करें** पूर्ण-डिस्क एन्क्रिप्शन के लिए (DPAPI का पूरक)
4. **केंद्रीकृत निगरानी के लिए SIEM पर ऑडिट लॉग अग्रेषित करें**
5. **कर्नेल-स्तरीय बायपास को रोकने के लिए सिक्योर बूट + ड्राइवर हस्ताक्षर प्रवर्तन सक्षम करें**
---
## 🤝 योगदान
1. रिपॉजिटरी को फोर्क करें
2. एक फीचर ब्रांच बनाएं: `git checkout -b feature/my-feature`
3. अपने परिवर्तनों को कमिट करें: `git commit -m "Add my feature"`
4. ब्रांच पर पुश करें: `git push origin feature/my-feature`
5. एक पुल अनुरोध खोलें
### कोड शैली
- C# नामकरण परंपराओं का पालन करें (सार्वजनिक सदस्यों के लिए PascalCase)
- सभी सार्वजनिक API में XML दस्तावेज़ीकरण टिप्पणियाँ जोड़ें
- प्रत्येक सत्यापन को **फेल-क्लोज़** होना चाहिए (त्रुटि पर अस्वीकार करें)
- सभी मूल हैंडल को `finally` ब्लॉकों में स्पष्ट रूप से निपटान करें
- उपयोग के बाद संवेदनशील मेमोरी बफ़र्स को शून्य करें
---
## 📄 लाइसेंस
यह प्रोजेक्ट MIT लाइसेंस के तहत लाइसेंस प्राप्त है. विवरण के लिए [LICENSE](https://github.com/m2l33k/blockguard/blob/HEAD/LICENSE) देखें.
---
<p align="center">
<b>विंडोज़ फ़ाइल सुरक्षा के लिए सुरक्षा-प्रथम सिद्धांतों के साथ निर्मित.</b>
<br/>
<sub>BlockGuard — क्योंकि आपका डेटा सिर्फ एक ताले के बजाय एक गार्ड का हकदार है.</sub>
</p>
| विशेषता | विवरण |
|---|
| Deny-by-Default ACLs | सुरक्षित फ़ाइलें एजेंट स्टार्टअप पर लॉक कर दी जाती हैं — केवल SYSTEM और प्रशासकों के पास ही पहुँच रहती है |
| Real-Time ETW Monitoring | विंडोज के लिए इवेंट ट्रेसिंग (ETW) के माध्यम से कर्नेल-स्तरीय फ़ाइल I/O घटनाएँ कैप्चर की जाती हैं |
| 6-Layer Process Validation | निष्पादन योग्य पथ, SHA-256 हैश, ऑथेंटिकोड हस्ताक्षर, स्वामी SID, अखंडता स्तर, पैरेंट प्रक्रिया श्रृंखला |
| DPAPI File Encryption | सुरक्षित फ़ाइलें विंडोज डेटा प्रोटेक्शन API का उपयोग करके रेस्ट पर एन्क्रिप्ट की जाती हैं |
| Auto-Revoking Temporary Access | अधिकृत प्रक्रियाओं को समय-सीमित ACL अनुदान प्राप्त होते हैं जो स्वतः समाप्त हो जाते हैं |
| Tamper Detection | समय-समय पर अखंडता जाँच ACL संशोधनों का पता लगाती है और स्वतः सुधार करती है |
| Structured Audit Logging | सभी एक्सेस प्रयासों का JSON ऑडिट ट्रेल (SIEM-तैयार) |
| Windows Service | एक पृष्ठभूमि विंडोज सेवा के रूप में NT AUTHORITY\SYSTEM के अंतर्गत चलता है |
| जाँच कमांड |
|---|
| Windows OS | Windows 10 / Server 2019 | winver |
| .NET SDK | 9.0 | dotnet --version |
| प्रशासक विशेषाधिकार | आवश्यक | टर्मिनल को व्यवस्थापक के रूप में चलाएँ |
| फ़ील्ड | प्रकार | विवरण |
|---|
RuleName | string | इस नियम के लिए मानव-पठनीय नाम (ऑडिट लॉग में उपयोग किया जाता है) |
ExecutablePath | string? | अधिकृत निष्पादन योग्य का पूर्ण पथ (केस-असंवेदनशील) |
ExpectedFileHash | string? | निष्पादन योग्य का SHA-256 हैश (छेड़छाड़ का पता लगाना) |
ExpectedSignerSubject | string? | Authenticode प्रमाणपत्र विषय (उदा., "CN=Contoso") |
MinimumIntegrityLevel | string | न्यूनतम Windows अखंडता स्तर: Untrusted, Low, Medium, High, System |
RequireSignature | bool | यदि true है, तो निष्पादन योग्य के पास एक वैध Authenticode हस्ताक्षर होना चाहिए |
| # | परीक्षण | जाँच कैसे करें | अपेक्षित परिणाम |
|---|
| 1 | निर्माण | dotnet build BlockGuard.sln | 0 त्रुटियाँ |
| 2 | एजेंट प्रारंभ | dotnet run --project src/BlockGuard.Agent (व्यवस्थापक के रूप में) | स्टार्टअप बैनर, कोई CRITICAL त्रुटि नहीं |
| 3 | ACL लॉकडाउन | icacls <protected-file> | केवल SYSTEM + व्यवस्थापक |
| 4 | अनधिकृत पहुंच अवरुद्ध | गैर-व्यवस्थापक टर्मिनल से संरक्षित फ़ाइल पढ़ें | पहुंच अस्वीकृत |
| 5 | ETW कैप्चर | एजेंट चलने के दौरान संरक्षित फ़ाइल पढ़ें | कंसोल में DENIED लॉग प्रविष्टि |
| 6 | ऑडिट लॉग | Get-Content C:\ProgramData\BlockGuard\Logs\audit.json | निर्णय के साथ JSON प्रविष्टियाँ |
| 7 | DPAPI एन्क्रिप्शन | Test-Path <file>.enc | .enc फ़ाइल मौजूद है |
| 8 | छेड़छाड़ का पता लगाना | icacls <file> /grant Users:R फिर 60 सेकंड प्रतीक्षा करें | स्वचालित सुधार लॉग किया गया |