Skip to content

NetSentinel v2.1.3

Choose a tag to compare

@github-actions github-actions released this 13 Jun 06:50
· 72 commits to main since this release

Security & Verification

Every release is signed and checksummed. Verify before running.

Check Result
VirusTotal scan aHR0cHM6Ly9n…
SHA256 checksums SHA256SUMS.txt

Verify the SHA256 checksum (Windows):

$expected = (Get-Content SHA256SUMS.txt | Select-String 'NetSentinel-Setup').ToString().Split(' ')[0]
$actual   = (Get-FileHash 'NetSentinel-Setup-2.1.3.exe' -Algorithm SHA256).Hash.ToLower()
if ($expected -eq $actual) { '✅ OK' } else { '❌ MISMATCH' }

Verify the cosign signature (Windows installer):

cosign verify-blob \
  --bundle NetSentinel-Setup-2.1.3.exe.bundle \
  --certificate-identity-regexp "https://github.com/ossianericson/netsentinel/.*" \
  --certificate-oidc-issuer "https://token.actions.githubusercontent.com" \
  NetSentinel-Setup-2.1.3.exe

Verify the cosign signature (MSIX):

cosign verify-blob \
  --bundle NetSentinel-2.1.3.msix.bundle \
  --certificate-identity-regexp "https://github.com/ossianericson/netsentinel/.*" \
  --certificate-oidc-issuer "https://token.actions.githubusercontent.com" \
  NetSentinel-2.1.3.msix

NetSentinel v2.1.3

v2.1.3

Added

  • MetricStore schema v13: device_classification_overrides table — user-set type overrides survive all enrichment re-runs permanently
  • modules/device_classifier.py: get_all_device_types() — sorted list of every valid device type label for UI dropdowns
  • inventory_page.py: _TypeOverrideDialog — right-click "Override Device Type…" on any device in the snapshot table; type combobox with Set/Clear/Cancel
  • inventory_page.py: confidence indicator prefix in Type column (★ user override, ● high ≥70%, ◑ medium 30–70%, ○ low <30%) with coloured foreground and tooltip
  • inventory_page.py: Classification section in device detail drawer — current type, override badge, confidence level, evidence list, Clear Override button
  • ui/scan_enrichment.py: override guard in _apply_dhcp_fingerprints() and _on_passive_observation() — user-set overrides block all automatic enrichment upgrades
  • tests/test_device_classifier.py: 5 new tests for get_all_device_types()

Recommended install

winget install NetSentinel.NetSentinel

Or download manually:

Platform File Notes
Windows NetSentinel-Setup-*.exe Installer — adds to Start Menu + PATH. Use winget (above) instead if possible.
Windows NetSentinel-svc.exe Background Windows service (not in winget).
macOS NetSentinel-macOS.zip GUI — unzip, right-click → Open.
macOS NetSentinel-cli-macOS Headless CLI.
Linux NetSentinel GUI — chmod +x NetSentinel && sudo ./NetSentinel
Linux NetSentinel-cli-linux Headless CLI.

What it does

One tool that replaces a drawer full of network utilities:

  • Rogue device fingerprinting with curated OUI registry (Google, TP-Link, Apple, Amazon, Samsung, LG, PlayStation, Nintendo, Xbox, Roku, Netgear, Asus)
  • STP/BPDU rogue Root Bridge detection
  • Broadcast & multicast storm analysis
  • IoT Behavioral Baseline — learns normal device traffic, alerts on deviations
  • Root Cause Correlator — distinguishes ISP fault from local network fault
  • Network Grade (A–F) across 8 dimensions — uptime, latency, jitter, DNS, speed, safety, STP, storm
  • ISP Accountability Report — HTML export with MTR hop table and outage log for support tickets
  • How-to-Fix context menus on every scan result
  • Hidden SSID and co-channel WiFi interference detection
  • Live ping + DNS latency correlation
  • On-demand diagnostics: speed test, DNS leak, traceroute, public IP
  • Long-term background connectivity logger with stability scoring
  • TCP port scanner, OS fingerprinter, CVE lookup, MTR, and more
  • HTML, JSON, CSV, Nmap XML report export