13.6 Network Device & Service Log Forensics: Firewall, IDS, Honeypot, Router, DHCP, Switch, VPN, DNS & SSH

Key Takeaways

  • Cisco IOS syslog messages follow the %FACILITY-SEVERITY-MNEMONIC format with severity levels 0 (emergency) through 7 (debugging); level 6 (informational) is the level that carries ACL denies and interface state changes needed for investigations.
  • DHCP lease logs are what convert a historical IP address into a specific MAC address and hostname; the Windows DHCP server writes DhcpSrvLog-<Day>.log with event ID 10 for a new lease, 11 for a renewal, 12 for a release, and 15 for NACK.
  • SSH authentication evidence lives in /var/log/auth.log on Debian-family systems and /var/log/secure on RHEL-family systems, where Accepted publickey lines record the key fingerprint that identifies which key authenticated.
  • A honeypot generates zero false positives by definition — any interaction is unauthorized — which makes Cowrie session transcripts and Dionaea malware captures unusually high-value evidence.
  • Router and switch configuration is volatile: the running configuration lives only in RAM, so a reboot destroys attacker changes unless the config was captured live or archived off-device.
Last updated: September 2026

13.6 Network Device & Service Log Forensics: Firewall, IDS, Honeypot, Router, DHCP, Switch, VPN, DNS & SSH

Quick Answer: Blueprint Domain 5 requires analyzing firewall, IDS, honeypot, router, and DHCP logs, then Cisco switch, VPN, and DNS server logs, then investigating SSH logs, and analyzing SMTP and SNMP traffic. Each device answers a different investigative question. Firewall and IDS logs answer what was attempted. DHCP logs answer who owned an IP address at a point in time — the single most important attribution step in any network case. Router and switch logs answer how traffic moved. VPN logs answer who was remote. DNS logs answer what the host tried to reach. SSH logs answer which credential or key authenticated.


Syslog: The Common Container

Almost every network device exports through syslog, so the format is worth memorizing.

StandardStructure
RFC 3164 (BSD, legacy)<PRI>TIMESTAMP HOSTNAME TAG: MESSAGE — no year, no time zone, second granularity
RFC 5424 (modern)<PRI>VERSION TIMESTAMP HOSTNAME APP-NAME PROCID MSGID [STRUCTURED-DATA] MSG — ISO 8601 timestamp with offset and fractional seconds

PRI = Facility × 8 + Severity. Severity runs 0 Emergency, 1 Alert, 2 Critical, 3 Error, 4 Warning, 5 Notice, 6 Informational, 7 Debug.

[!IMPORTANT] RFC 3164's missing year and time zone is a recurring forensic trap. A legacy syslog line reads Sep 14 03:21:44 with no year and no offset. Correlating it against a UTC-stamped web log requires knowing the device's configured time zone and the year, both of which must be documented from the device configuration — not assumed.


Firewall and IDS/IPS Logs

Firewall logs record the connection decision: 5-tuple, action (permit/deny/drop), interface, rule or ACL identifier, and byte/packet counts on session teardown.

PlatformCharacteristic record
Cisco ASA%ASA-6-302013 built inbound TCP connection; %ASA-6-302014 teardown with duration and bytes; %ASA-4-106023 deny by access-group
iptables/netfilterKernel IN= OUT= SRC= DST= PROTO= SPT= DPT= lines in kern.log
pfSense/OPNsensefilterlog CSV with rule number, interface, action, and full tuple
Palo Alto / FortinetComma- or key-value traffic logs with application identification and bytes-sent/received

The forensically decisive field is usually bytes. A teardown record showing 4 GB sent outbound to an unfamiliar destination on port 443 is exfiltration evidence even when payload was never captured.

IDS/IPS logs record signature matches. Snort and Suricata write alert entries carrying the SID (signature ID), GID, revision, classification, priority, and the triggering 5-tuple; Suricata's eve.json additionally emits protocol, TLS/JA3, HTTP, DNS, and file-extraction records that make it a partial substitute for full packet capture.

  • An IDS alert is a signature match, not proof of compromise. Validate it against the packet capture or the destination host's own logs.
  • Tuned-out or disabled signatures explain silence. Always retrieve the ruleset state at the time of the incident, not the current one.

Honeypot Logs

A honeypot has no production purpose, so every interaction is unauthorized by construction — the false-positive rate is effectively zero, which is why honeypot evidence carries disproportionate weight.

HoneypotCaptures
CowrieFull SSH/Telnet session transcripts, keystroke timing, credentials tried, files downloaded via wget/curl, TTY replay logs
DionaeaMalware binaries dropped over SMB, HTTP, FTP, MSSQL
ConpotICS/SCADA protocol interaction (Modbus, S7comm)
T-PotMulti-honeypot platform aggregating the above with Elastic dashboards

Cowrie's TTY replay files reconstruct the attacker's session keystroke-by-keystroke, including typing errors and pauses — evidence of live human interaction rather than automation, which matters for both attribution and sentencing.


DHCP Logs: The Attribution Keystone

An IP address in a web log is meaningless on a dynamic internal network without the lease record that bound it to a host.

ServerLocation and format
Windows DHCP Server%SystemRoot%\System32\dhcp\DhcpSrvLog-<Day>.log — comma-delimited: ID, Date, Time, Description, IP Address, Host Name, MAC Address
ISC dhcpd (Linux)/var/log/syslog or /var/log/messagesDHCPDISCOVER, DHCPOFFER, DHCPREQUEST, DHCPACK, DHCPNAK, DHCPRELEASE
Infoblox/appliancesSyslog export plus a queryable lease history database

Windows DHCP event IDs to know: 10 new lease assigned, 11 lease renewed, 12 lease released, 13 IP found in use on network, 14 lease request could not be satisfied, 15 lease denied (NACK), 24 database cleanup.

[!WARNING] Windows DHCP logs rotate weekly by file name (DhcpSrvLog-Mon.logDhcpSrvLog-Sun.log), overwriting the same weekday file each week. An incident discovered eight days late may have already lost its lease record. Preserve DHCP logs in the first hour of any network investigation.

The correlation chain is: web/proxy log (IP + timestamp) → DHCP lease (IP + MAC + hostname at that timestamp) → switch CAM/MAC address table or 802.1X authentication (MAC + physical port) → asset inventory (host + assigned user).


Router and Switch Logs

Cisco IOS syslog format: %FACILITY-SEVERITY-MNEMONIC: message-text, for example %SEC-6-IPACCESSLOGP: list 101 denied tcp 203.0.113.44(4221) -> 10.0.2.15(3389), 1 packet.

Forensically valuable IOS messages:

MessageMeaning
%SEC-6-IPACCESSLOGPACL permit/deny with full tuple
%LINK-3-UPDOWN / %LINEPROTO-5-UPDOWNInterface state change — physical device connect/disconnect
%SYS-5-CONFIG_IConfiguration changed, with the user and source (console/vty)
%SYS-5-RESTART / %SYS-5-RELOADReboot, which destroys the running configuration
%PORT_SECURITY-2-PSECURE_VIOLATIONUnauthorized MAC on a secured port — rogue device indicator
%DOT1X-5-FAIL802.1X authentication failure

Switch-specific evidence: the CAM/MAC address table (show mac address-table) maps MAC to physical port — but it is volatile, aging out in about 5 minutes by default. Capturing it requires live collection during the incident. The ARP cache (show ip arp) maps IP to MAC with a default 4-hour timeout.

[!IMPORTANT] The running configuration exists only in RAM. show running-config reflects live state; show startup-config reflects NVRAM. An attacker who modifies the running config without writing it leaves evidence that a reboot silently erases. Live capture of show running-config, show mac address-table, show ip arp, show users, and show logging is the network equivalent of a RAM dump, and it must precede any remediation reboot.


VPN Logs

VPN concentrators answer who was remote, from where, for how long, and with what internal address.

Essential fields: username, authentication result and method (password, certificate, MFA token), public source IP with geolocation, assigned internal tunnel IP, session start and end, bytes transferred, and client posture.

The pivot that matters: the assigned tunnel IP is what appears in every internal log. Attribution requires joining the internal activity to the VPN session that held that tunnel IP at that moment. Because tunnel addresses are recycled from a pool, the timestamp is as essential as the address.

Characteristic findings: impossible travel (two authentications from distant countries minutes apart), a single account with concurrent sessions from different sources, and authentication success from a source that never appears in the account's history.


DNS Server Logs

DNS is the highest-yield low-volume telemetry in an investigation because nearly every attacker action begins with a name resolution.

SourceContent
Windows DNS debug log / Analytical ETWPer-query client IP, query name, type, response code
BIND querylogclient 10.0.2.15#54321: query: evil.example.com IN A +
Passive DNS / resolver telemetryHistorical name-to-address mappings for pivoting

Detection patterns:

  • DNS tunneling — abnormally long labels, high-entropy subdomains, heavy TXT/NULL query volume, and sustained query rate to a single second-level domain. Exfiltration over DNS is encoded in the query name, so query length distribution is the tell.
  • DGA (domain generation algorithm) — bursts of NXDOMAIN responses for high-entropy names as malware cycles candidate domains before finding the live one. The domain that finally resolves is the C2.
  • DNS hijacking/spoofing — responses for a known domain returning an unexpected address, or an endpoint querying a resolver that is not the sanctioned one (a rogue resolver configured by malware).
  • Fast flux — very low TTLs with a rapidly rotating address set for one name.

SSH Logs

Distribution familyAuthentication log
Debian/Ubuntu/var/log/auth.log
RHEL/CentOS/Fedora/var/log/secure
systemd journaljournalctl -u sshd (binary; export with journalctl -o export)

Record types to parse:

Accepted password for jsmith from 203.0.113.44 port 51422 ssh2
Accepted publickey for root from 198.51.100.7 port 40112 ssh2: RSA SHA256:8Lc9k...
Failed password for invalid user admin from 203.0.113.44 port 51388 ssh2
Disconnected from authenticating user root 203.0.113.44 port 51390 [preauth]
  • Accepted publickey ... SHA256:<fingerprint> is the highest-value line in the file: the fingerprint identifies which key authenticated, which can be matched against ~/.ssh/authorized_keys entries across the estate to trace attacker key implantation.
  • Failed password for invalid user X means the account does not exist — automated scanning. Failed password for X on a real account is targeted.
  • Correlate with wtmp/btmp/lastlog (parsed via last, lastb), shell history files, and ~/.ssh/authorized_keys modification times.

SMTP and SNMP Traffic

SMTP traffic analysis reveals mass outbound mail from a non-mail host (compromised spam relay), MAIL FROM values inconsistent with the organization's domains, and large attachments leaving on port 25/587 as an exfiltration channel. Capture of the DATA phase yields full message content including headers and attachments.

SNMP is frequently overlooked. Community strings in SNMPv1/v2c travel in cleartext, so a capture containing public or private exposes device enumeration and potential configuration write access. A host performing SNMP GETBULK walks across the address space is conducting network reconnaissance; SNMPv3 with authPriv is the remediation, and its absence is itself a finding.

Loading diagram...
IP-to-Human Attribution Chain Across Network Device Logs
Test Your Knowledge

A proxy log records data exfiltration from internal address 10.0.2.15 on a DHCP-assigned corporate LAN. Nine days after the exfiltration, the responder opens the investigation. Which single evidence source is most urgent to preserve, and why is the delay critical?

A
B
C
D
Test Your Knowledge

During live triage of a compromised Cisco switch, the network team wants to reboot the device to clear a suspected implant before the forensic examiner arrives. What must be captured first, and what is the specific evidentiary risk of rebooting?

A
B
C
D
Test Your Knowledge

An examiner reviewing /var/log/secure finds: 'Accepted publickey for root from 198.51.100.7 port 40112 ssh2: RSA SHA256:8Lc9k2...'. Why is this line more investigatively valuable than an equivalent 'Accepted password' entry?

A
B
C
D