Offline-first security monitoring for ICS/OT and manufacturing environments. No cloud. No agents. No internet required after initial database seeding.
SentryShield is a Windows security monitoring tool built specifically for manufacturing plants, industrial control systems (ICS), and OT environments. It runs as a lightweight Windows service, operates fully air-gapped, and gives plant operators a single dashboard to track vulnerabilities, USB threats, driver issues, and supplier file integrity.
Four pillars:
| Pillar | What it does |
|---|---|
| π Vulnerability Scanner | Enumerates installed software, matches against live NVD + CERT-In CVE data with exact version range evaluation |
| π USB Threat Detection | Intercepts USB insertions via WMI, runs YARA (20 rules), Shannon entropy, magic byte, and IOC hash checks |
| πͺ Supplier File Gateway | 7-step validation pipeline for files dropped by external suppliers β blocks unknowns, YARA hits, and IOC matches |
| π‘ Driver & Hardening Audit | Flags unsigned/outdated drivers and checks 6 Windows security controls (Defender, Firewall, RDP, AutoRun, etc.) |
SentryShield/
βββ SentryShield.sln
β
βββ SentryService/ # .NET 8 Windows Service (modern deployments)
β βββ SentryWorker.cs # Background polling loop
β βββ IPC/ProcessRunner.cs # Python subprocess bridge
β βββ Watchers/GatewayFolderWatcher.cs
β
βββ SentryLegacyService/ # .NET 4.8 Windows Service (Win7 / WES7 HMIs)
β βββ LegacyServiceHost.cs # ServiceBase + System.Threading.Timer
β βββ LegacyYaraGuard.cs # Optional YARA β graceful fallback if Python absent
β βββ LegacyConfig.cs # Typed config model
β βββ Program.cs # Headless ServiceBase.Run() entry point
β βββ appsettings.json
β
βββ SentryCore/ # Core detection library β dual-targets net8 + net48
β βββ Engines/
β β βββ VulnerabilityMatcher.cs
β β βββ USBMonitor.cs
β β βββ SupplierFileValidator.cs
β β βββ DriverAuditor.cs
β β βββ HardeningAudit.cs
β β βββ SoftwareEnumerator.cs
β βββ Interfaces/
β βββ Models/
β βββ Logging/EventLogWriter.cs
β
βββ SentryDatabase/ # SQLite DAL β dual-targets net8 + net48
β βββ Schema/init.sql
β βββ VulnerabilityDb.cs
β βββ IOCDb.cs
β βββ ScanHistoryDb.cs
β
βββ SentryUI/ # WPF Admin Dashboard (.NET 8)
β βββ MainWindow.xaml
β βββ ViewModels/DashboardViewModel.cs
β βββ Views/
β
βββ SentryPython/ # Python utilities
β βββ init_db.py
β βββ cert_parser.py
β βββ cert_in_parser.py
β βββ db_sync.py
β βββ yara_scanner.py
β βββ ioc_populate.py
β
βββ rules/
β βββ malware.yar
β
βββ Installer/
β βββ SentryShield.wxs
β
βββ Plugins/
β βββ IDSPlugin/IDSPlugin.stub.cs
β
βββ Tests/
β βββ SentryCore.Tests/
β βββ SentryPython/tests/
β
βββ docs/
βββ ARCHITECTURE.md
βββ CHANGELOG.md
βββ CONTRIBUTING.md
βββ PRODUCTION_PATHWAYS.md
βββ ROADMAP.md
βββ SETUP.md
βββ WIN7_COMPAT.md # Legacy HMI deployment guide
βββ ai_strategy.md
βββ idea.md
| Requirement | Version | Notes |
|---|---|---|
| Windows | 10 / 11 / Server 2019+ | Admin rights required β for modern deployments |
| .NET SDK | 8.0 | https://dotnet.microsoft.com/download |
| Python | 3.11 | https://www.python.org/downloads |
| WiX (optional) | 4.x | Only needed to build the .msi installer |
Legacy HMI (Windows 7 / Embedded): Use SentryLegacyService instead of SentryService. See Docs/WIN7_COMPAT.md for the full deployment guide.
| Requirement | Version | Notes |
|---|---|---|
| Windows 7 SP1 / WES7 / WE8.1 | β | Admin rights required |
| .NET Framework 4.8 | 4.8.x | Download β must be installed manually on Win7 |
| Python (optional) | 3.8β3.11 | Only for YARA scanning β service works without it |
git clone https://github.com/Rizzy1857/SentryShield
cd SentryShield
:: Python environment
cd SentryPython
python -m venv venv
venv\Scripts\activate
pip install yara-python requests pytest
:: Build and test
cd ..
dotnet build SentryShield.sln
dotnet test Tests/SentryCore.Tests/ --logger "console;verbosity=normal"
pytest Tests/SentryPython/tests/ -vSentryShield uses real CVE data β no synthetic vulnerabilities. The database is populated from two sources:
| Source | What | Script |
|---|---|---|
| NIST NVD | Manufacturing-relevant CVEs (SCADA, HMI, PLC, Siemens, Log4j, OpenSSLβ¦) | cert_parser.py |
| CERT-In | India CERT advisory feed, CVE cross-referenced with NVD | cert_in_parser.py |
One-time setup (run on Windows after deploying):
set NVD_API_KEY=your-free-key-here :: from nvd.nist.gov/developers/request-an-api-key
python SentryPython\init_db.py --db "C:\ProgramData\SentryShield\vulnerability.db" --days-back 365See Docs/SETUP.md β Section 7β9 for the full deployment guide.
| Suite | File | Tests |
|---|---|---|
| Vulnerability matching | VulnerabilityMatcherTests.cs |
15 |
| USB threat detection | USBMonitorTests.cs |
11 |
| Supplier file gateway | SupplierFileValidatorTests.cs |
14 |
| Network IDS | IDSPluginTests.cs |
3 |
| NUnit total | 43 | |
| Python (YARA + NVD parser) | test_sentryshield.py |
16 |
| Grand total | 56 |
:: Run all NUnit tests
dotnet test Tests/SentryCore.Tests/ --logger "console;verbosity=normal"
:: Run all pytest tests
pytest Tests/SentryPython/tests/ -vComprehensive guides and strategic documents are located in the docs/ directory:
- Setup Guide: Deployment and installation instructions.
- Architecture: Detailed system design and component diagrams.
- Production Pathways: Executive roadmap and future investment strategies for SentryShield.
- Roadmap: Developer roadmap detailing upcoming feature phases.
- Contributing: Guidelines for developing new detection plugins.
- Windows 7 Legacy Guide: Deploying to older HMI environments.
NVD API βββββββ
CERT-In ββββββββ€βββΊ init_db.py / db_sync.py βββΊ vulnerability.db
β β
β βββββββββββββββββββββββββββββββββββ΄βββββββββββ
β β Modern (Windows 10/11) β
β β SentryService (.NET 8) β
β β βββ SentryWorker / GatewayFolderWatcher β
β βββββββββββββββββββββββββββββββββββββββββββββββ
β βββββββββββββββββββββββββββββββββββββββββββββββ
β β Legacy (Windows 7 / WES7) β
β β SentryLegacyService (.NET 4.8) β
β β βββ LegacyServiceHost (ServiceBase+Timer) β
β β βββ LegacyYaraGuard (optional YARA) β
β βββββββββββββββββββββββββββββββββββββββββββββββ
β β both use identical
β SentryCore (dual-target: net8 + net48)
β βββ VulnerabilityMatcher
β βββ USBMonitor
β βββ SupplierFileValidator
β βββ DriverAuditor
β βββ HardeningAudit
β β
ββββββββΊ SentryUI (WPF Dashboard β modern only)
Full architecture: docs/ARCHITECTURE.md
Build the MSI:
:: Publish binaries first
dotnet publish SentryService -c Release -r win-x64 -o publish\SentryService
dotnet publish SentryUI -c Release -r win-x64 -o publish\SentryUI
:: Build MSI (requires WiX 4)
cd Installer
wix build SentryShield.wxs -o SentryShield-v1.0-Setup.msiSilent GPO install:
msiexec /i SentryShield-v1.0-Setup.msi /qn /l*v install.logSee docs/CHANGELOG.md for the full version history.
| Version | Date | Highlights |
|---|---|---|
| v2.5-stable | 2026-06-09 | SentryShield v2.5 lockdown: full plugin architecture and security hardening |
| v2.0-dev | 2026-06-08 | "The Great Shift" to SentryPlugin.Abstractions, NVD WAF fixes, dual-target support |
| v1.1 | 2026-06-04 | Live CERT-In pipeline, init_db.py, WiX installer, 25 new tests |
| v1.0 | 2026-06-03 | Initial full build β all 4 pillars, WPF dashboard, 31 tests |
MIT β see LICENSE if one applies.