Network discovery
ARP, DHCP, mDNS, SSDP, LLDP/CDP, PROFINET DCP · TCP/IP stack fingerprinting · ARP sweep, ping and a light port scan (optional, switched off separately for all networks or one; never on industrial devices) · mirror/SPAN interfaces · mirrors delivered in ERSPAN, GRE, VXLAN or Geneve tunnels (opt-in) · VLAN tags read and shown per device (the same MAC on several VLANs is one flagged device) · opt-in IPv6 · offline pcap replay
Device intelligence
IEEE OUI vendor identification · device type and OS from weighted evidence, with the evidence shown · product and version from SSH, FTP, SMTP, HTTP, Telnet, MySQL/MariaDB, SMB and MSSQL banners · JA3/JA3S TLS fingerprints · fleet-wide software inventory · a 0–100 risk score shown as its own sortable column in the Devices table
Behaviour & detection
new in 4.4: twelve detections, switched off until you accept them on the Rules page (three are Experimental) · a trial mode for rules, exceptions with an expiry, a view of what a change would have done over the last days, and the reason a rule alerted or did not · your own rules with several conditions, tried first, exported, imported or started from a template (counts and sequences are Experimental and off by default) · new in 4.3: more than 40 detections, among them program uploads, several masters, a changed device identity and commands outside working hours on industrial networks, and brute force from outside, DNS threat domains (needs a free abuse.ch key), mining pools, VPN and anonymizer use, remote-access tools, a changed gateway and a rogue DHCPv6 server on office networks · detection on its own threads, measured per detection, pausing the heaviest optional detections under overload · This is normal on any alert, with accepted and dismissed counts per detection · per-device baselines · new device, new destination and a new service port in use · unusual volume and hours · silent devices · rogue DHCP, DHCP drift and starvation · ARP conflicts and gateway takeover · internal sweeps and port scans · outbound fan-out · known-bad destinations (your list, plus optional abuse.ch and Spamhaus feeds) · connections opened from the internet to one of your devices (needs --flows) · your own IT rules and OT rules, written from templates with a preview of what a rule would have done over the last 7 days · 0–100 explainable scoring · incidents · a quieter alert stream: routine events kept in the console and a daily digest with the reason, never threat-list matches, rogue DHCP or industrial control commands · an Investigate section on every alert: the device’s surrounding events, its recorded traffic with the other party, which other devices contacted that party, the incident link
Network context
traffic flows and conversations · relationships: which device talks to which, per protocol and port, first and last seen, observed or inferred · opt-in east-west recording of traffic between your own devices (off by default; bounded per device, every limit shown on the Health page) · top talkers · trend charts · destination history · country, city, ASN, AS organisation and reverse DNS for public IPs, from a local GeoIP database
Topology
what a device hangs on: access points and switches under their controller, virtual machines under their host, shown on the map (4.4) · the same address in two routing domains is not taken for one network, and a shared hardware address can be split by an administrator (4.4) · Wi-Fi clients and access points from TP-Link Omada (no longer Experimental since 4.4.2), MikroTik and the Cisco Catalyst 9800 (4.4; the last two Experimental) · a network map with zoom, search, groups and cable drawing that saves itself, and Equipment, Response and Setup pages (4.3) · any managed switch with standard SNMP can be read (4.3; port off and quarantine VLAN on such switches are Experimental, off by default, need a write test and are tested only on simulators) · client lists from UniFi and, Experimental, Meraki on the map, read only (4.3) · logical map by gateway, coloured by risk · switch ports, LLDP neighbours and MAC-to-port mapping over SNMPv2c or SNMPv3 (read-only; Cisco switches read per VLAN) · physical “switches and cables” view · cables between switches, firewalls and access points, each marked confirmed, best guess or set by hand (drag to correct one) · an Equipment page with one row per device, ordered by the wiring or by hand · one device identity: a router or firewall under several hardware addresses is one device, with the reason shown
OT visibility
Modbus, S7comm, S7comm-plus, EtherNet/IP-CIP, DNP3, BACnet, OPC UA, IEC 60870-5-104, IEC 61850 (MMS and ICCP, GOOSE, Sampled Values), PROFINET IO, Omron FINS, MQTT, CoAP, HART-IP, KNXnet/IP, CODESYS (recognised only), over IPv4 and, with IPv6 on, IPv6 · communications matrix · reads, writes and control commands · Purdue levels and zones · OT rules · ICS-CERT advisory matching by vendor
Messages split across TCP segments are followed. Since 4.1.2, messages cut by IP fragmentation are put back together too, within fixed limits; overlapping or too-small fragments are refused and shown on the Health page. Since 4.1.3 their TCP or UDP checksum is checked: a wrong one is counted on the Health page, and the message is still decoded, because some devices would carry it out.
Asset management
a Not managed view of devices no management, directory, scanning or endpoint tool reports (4.3; tested against fixtures, not a real tenant) · a timeline per device (4.3) · owners, departments, locations · serial numbers and asset tags · warranties · criticality · tags and custom fields · lifecycle status · change history · review queue · CSV import/export
Security findings
known-exploited vulnerabilities (CISA KEV) with EPSS score, matched against the versions devices reveal · end-of-support software · exposed Telnet, RDP, VNC, FTP, MySQL, Winbox, SMB and MQTT · lost or retired devices still online · critical devices without an owner · warranties · Check again and Accept this risk workflow · “Top exposures today”: devices ranked by known-exploited and critical vulnerabilities, unsupported software, open incidents and high findings, weighed by what is at stake, every point listed with its source
Compliance evidence
CIS Controls v8 · NIST CSF 2.0 · IEC 62443-3-3 · NIST SP 800-82 · ISO/IEC 27001:2022 Annex A · NIS2 · DORA · PCI DSS v4.0 · HIPAA Security Rule · SOC 2 · CMMC 2.0
Evidence for your own assessment, not a certification.
Response and access control
block a device or one connection, quarantine a device, switch a switch port off or end its sessions, through the Respond… menu of a device, an incident or a flow · switches over SNMPv2c or SNMPv3, FortiGate, Palo Alto, MikroTik, UniFi and TP-Link Omada, and the Cisco Secure Firewall FDM and FMC block (tested in the Cisco DevNet sandbox on virtual devices) and AWS security groups (tested in a lab AWS account) · experimental connectors for Check Point, Juniper SRX, SonicWall, WatchGuard, OPNsense, Cisco ASA, Meraki, MikroTik Wi-Fi, the Cisco Catalyst 9800 wireless controller, VMware NSX, Azure, Hyper-V, Proxmox and RADIUS Disconnect · a plan dialog that shows the action in full before it runs, a duration, the administrator’s password and a release for every action · one safety path with a kill switch, an hourly limit, per-action permissions and a record of what DENIS changed · block suggestions on the Alerts page and the device panel · the Respond menu shows where the device is and offers a port or firewall only when DENIS is sure it is on the path · UniFi through an API key and a firewall policy, Palo Alto through a dynamic address group (no commit, seconds) · rules can prepare a block for approval, or block automatically after a trial of at least 7 days (experimental) · a notification bell, and messages that name the device
Off by default. Verified integrations: see the supported infrastructure page. Every other connector is experimental and acts only after an administrator turns on two lab switches.
Automation and Autopilot (experimental)
three automation levels: (a) a person decides every action, the default · (b) policies you mark may block or quarantine by themselves, always time-limited, never on DENIS itself, the gateway, OT devices or infrastructure · (c) Autopilot may block, a separate switch on top of (b) with its own conditions and limits · Autopilot: sorts alerts into the few that need you now and the many that can wait, explains each in plain language and asks one question at a time, in the console or on a phone through Telegram, ntfy or web push · starts in shadow mode, recording what it would have done
Off by default and experimental. Autopilot can miss real threats.
PostgreSQL & high availability
an optional PostgreSQL store alongside the default SQLite, with every store method ported · two nodes sharing one PostgreSQL database, with automatic failover tracked by a database lock · Experimental in 4.4, tested on PostgreSQL 16 in containers and in a local fault lab, not yet on a managed service · a write fence refuses writes from an old leader · a data key per customer, which you can rotate together with the master key while DENIS runs · customers can live in PostgreSQL (Experimental) · tenants on PostgreSQL are Experimental until measured
A default SQLite install has no second node, so it is never HA.
Operations
a Start page for the first minutes (4.4) · alerts and notices through a durable queue, so a receiver that is down, a restart or a failover no longer loses a message (4.4) · shipped lists that can update themselves, off by default (4.4) · licensing counts devices seen in the last 30 days (4.4) · what DENIS cannot see: blind spots, dropped and duplicated packets, silent VLANs (4.3) · duplicate packets from SPAN or TAP copies counted or removed (4.3) · capture sources grouped into separate networks, and hardware addresses marked as shared (4.3) · API tokens with scopes, expiry, rotation and an acts-as mode, and site administrators (4.3) · multi-site with outbound-only remote collectors · agents installed with one command (install.sh --agent, the Add agent dialog or Docker) and updated from the console: by hand by default, automatically, or through the master for sites without internet · per-user, per-site access · MSP overview · MSP remote management: an MSP opens a customer’s own DENIS at the level the customer chooses, with a banner, an activity list, co-approval, a one-click disconnect and a second factor for every operator · rules an MSP sends you, which you accept, trial or refuse (4.4) · single-use invitations for MSP customers and one-line enrolment of agents (4.4) · white-label branding · a choice of three console looks — Triage (the default), Scope and Clipboard — each in light and dark, picked per browser · data retention · signed self-update with automatic rollback, automatic for security updates of the minor line you run by default with an opt-out (stable releases only, pre-releases only if an administrator opts in; usedenis.com only if GitHub cannot be reached) · a search box in the built-in documentation · English, German, French, Spanish, Slovak, kept per account
Alerts, export, import and sign-in
- Alerts & ticketing
- Slack · Microsoft Teams · Discord · PagerDuty · Pushover · ntfy · e-mail · Jira · ServiceNow · signed webhooks
- Export
- SIEM via syslog (CEF, LEEF, JSON over UDP/TCP/TLS) · Elasticsearch/OpenSearch (ECS) · OpenObserve · Prometheus /metrics · REST API
- Context import (read-only)
- Microsoft Entra ID · Intune · Active Directory · Jamf Pro · Azure · AWS · Google Cloud · Nessus / Tenable.io
- Sign-in
- OpenID Connect SSO · passkeys · authenticator apps