Home Network Security Scanner & Risk Assessment Tool
NetzSchild scans your local Wi-Fi network, identifies connected devices,
evaluates security risks, and estimates Time-to-Compromise (TTC) β all locally, with zero cloud dependency.
Dashboard β Real-time risk overview with animated gauge and risk breakdown
Devices β Per-device security assessment with interactive port info
Scan β Multiple scan modes with auto-detected network range
| Feature | Description |
|---|---|
| π― Risk Score (0β100) | Weighted risk model based on 9 security factors |
| β±οΈ Time-to-Compromise | Estimated time an attacker would need: < 1 hour β > 7 days |
| π Network Scanner | Discovers devices via Ping, ARP, SSDP/UPnP, and optional nmap |
| π Web Dashboard | Apple-inspired UI with real-time scanning, device inventory, and risk breakdown |
| π» CLI Interface | Interactive terminal launcher with multilingual support (EN / DE / UA) |
| π 100% Local | All data stays on your machine β zero cloud, zero telemetry |
| π Reports | Auto-generated CSV & HTML reports with per-device security advice |
| π‘οΈ Security CI/CD | Automated Bandit, Trivy, and Gitleaks scans on every push |
| π¬π§π©πͺπΊπ¦ Multilingual | Full i18n support for English, German, and Ukrainian |
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β NetzSchild β
ββββββββββββββββ¬βββββββββββββββββββ¬βββββββββββββββββββββββββ€
β CLI Mode β Web Dashboard β Risk Engine β
β β (FastAPI) β β
β netzschild β β netzschild_risk.py β
β _cli.py β web/app.py β factors.json β
β β web/templates/ β β
ββββββββββββββββ΄βββββββββββββββββββ΄βββββββββββββββββββββββββ€
β Network Scanner β
β net_scan_agent.py Β· tr064_fritz.py β
β Ping β ARP β SSDP/UPnP β Port Scan β nmap (optional) β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Report Generator β
β integrate_scan_and_risk.py β
β CSV + HTML output β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
- Python 3.10+
- (Optional) nmap for deep scans
git clone https://github.com/orelsv/NetzSchild.git
cd NetzSchild
python3 -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txtpython -m uvicorn web.app:app --host 127.0.0.1 --port 8000Open http://127.0.0.1:8000 in your browser.
python netzschild_cli.pyFollow the interactive menu to scan your network and compute your Risk Score.
from netzschild_risk import calculate_risk_and_ttc
user_data = {
"password_strength": 0.3,
"encryption": "WPA2",
"open_ports": ["22", "80"],
"default_credentials": False,
"firmware_age": 0.5,
"iot_count": 3,
"guest_network": "enabled_isolated",
"remote_management": False,
"upnp": True
}
result = calculate_risk_and_ttc("factors.json", user_data)
print(f"Risk Score: {result['risk_score']}/100")
print(f"Time to Compromise: {result['ttc']}")NetzSchild uses a weighted-factor model defined in factors.json. Each factor contributes to the overall Risk Score (0β100):
| Factor | Weight | Description |
|---|---|---|
| WiFi Password Strength | 15% | Length and complexity of your Wi-Fi password |
| WiFi Encryption | 15% | WPA3 β WEP/None (protocol strength) |
| Open Ports & Services | 18% | Critical ports (Telnet, SMB, RDP) and high-risk services |
| Default Credentials | 12% | Whether factory login/password is still in use |
| Firmware Age | 12% | How outdated the router/device firmware is |
| IoT Device Exposure | 8% | Number of IoT devices on the network |
| Guest Network | 7% | Whether guest Wi-Fi is enabled with proper isolation |
| Remote Management | 8% | WAN admin access enabled on the router |
| UPnP | 5% | Whether UPnP allows auto-opening of ports |
| Risk Score | TTC Estimate | Severity |
|---|---|---|
| 0 β 20 | > 7 days | π’ Low |
| 21 β 40 | 1 β 7 days | π‘ Medium-Low |
| 41 β 70 | 1 β 24 hours | π Medium-High |
| 71 β 100 | < 1 hour | π΄ High |
NetzSchild/
βββ netzschild_cli.py # Interactive CLI launcher (EN/DE/UA)
βββ netzschild_risk.py # Risk Score & TTC calculation engine
βββ net_scan_agent.py # Network scanner (ping, ARP, SSDP, ports, nmap)
βββ integrate_scan_and_risk.py # Report generator (CSV + HTML)
βββ tr064_fritz.py # FRITZ!Box TR-064 integration
βββ factors.json # Risk model configuration (weights & rules)
βββ requirements.txt # Python dependencies
β
βββ web/ # π Web Dashboard (FastAPI)
β βββ app.py # Main FastAPI application & routes
β βββ scanner.py # Async scanner service
β βββ risk_service.py # Risk computation for web UI
β βββ security_kb.py # Security knowledge base (port explanations)
β βββ templates/ # Jinja2 HTML templates
β β βββ base.html # Base layout with sidebar navigation
β β βββ dashboard.html # Risk gauge, stats, risk breakdown
β β βββ devices.html # Device inventory table
β β βββ scan.html # Scan configuration & progress
β β βββ settings.html # Language & privacy settings
β βββ static/
β βββ css/style.css # Apple-inspired design system
β βββ js/app.js # Client-side interactivity
β
βββ .github/workflows/ # π CI/CD Security Pipelines
β βββ bandit.yml # Python static security analysis
β βββ trivy-deps.yml # Dependency vulnerability scanning
β βββ gitleaks.yml # Secret detection in git history
β
βββ docs/screenshots/ # πΈ README screenshots
βββ LICENSE # MIT License
βββ CONTRIBUTING.md # Contribution guidelines
βββ SECURITY.md # Security policy
- All computations run locally on your machine
- No data is sent to external servers or cloud services
- Scan results (IPs, MACs, device names) are stored only locally
- No telemetry is collected by default
- NetzSchild is a diagnostic tool β it never modifies your network settings
Every push triggers three automated security scans:
| Scanner | Purpose | Blocks on |
|---|---|---|
| Bandit | Python static security analysis | HIGH severity + HIGH confidence |
| Trivy | Dependency vulnerability scanning | CRITICAL vulnerabilities |
| Gitleaks | Secret detection in code & git history | Any detected secret |
- Backend: Python 3.10+, FastAPI, Uvicorn
- Frontend: Jinja2 templates, vanilla CSS (Apple-inspired design system), vanilla JS
- Scanning: ICMP ping, ARP, SSDP/UPnP, TCP port scan, nmap (optional)
- Router Integration: TR-064 protocol (FRITZ!Box)
- CI/CD: GitHub Actions (Bandit, Trivy, Gitleaks)
Contributions are welcome! Please see CONTRIBUTING.md for guidelines.
This project is licensed under the MIT License.
Made with π‘οΈ by orelsv