Skip to content

Add Cisco FTD, FTD-session and IOS/NX-OS decoder integrations#104

Merged
leonfullxr merged 2 commits into
mainfrom
cisco-ftd-nxos-decoders
Jul 21, 2026
Merged

Add Cisco FTD, FTD-session and IOS/NX-OS decoder integrations#104
leonfullxr merged 2 commits into
mainfrom
cisco-ftd-nxos-decoders

Conversation

@leonfullxr

@leonfullxr leonfullxr commented Jul 18, 2026

Copy link
Copy Markdown
Member

Summary

Splits the Cisco decoder work into three self-contained integrations, each extending part of the stock Wazuh Cisco ruleset that does not fully handle its source:

  • cisco_ftd - access-list denies (message 106023), standard %FTD- prefix.
  • cisco_ftd_session - the same denies with the %FTD-session- prefix that some FTD builds emit, which the stock parent decoder rejects.
  • cisco_ios - Cisco NX-OS / IOS-XE SYSTEM_MSG authentication and user-administration events, plus IOS/IOS-XE interactive VTY login/logout and interface state.

The gaps addressed: interface names with hyphens (LAN-INT) that \w+ cannot match, ICMP denies that carry (type, code) instead of a port, the access-group that dropped the traffic, the %FTD-session- prefix, and NX-OS login/PAM/account events whose bodies differ from the classic IOS formats (the PAM source IP that brute-force correlation needs was being lost).

Contents

Each folder ships README.md, sample-logs.log, ruleset/decoders/ and (where applicable) ruleset/rules/:

  • cisco_ftd - full drop-in replacement of the stock FTD decoder file with cisco-ftd-acl-deny / -icmp merged in above the generic children. No rules; the stock FTD rules alert on the improved fields.
  • cisco_ftd_session - new cisco-ftd-session parent + TCP/UDP and ICMP deny decoders. The decoders emit product.name=FTD, so changing the stock FTD base rule (91500) from decoded_as to a product.name field match lets the whole stock FTD ruleset alert on both prefixes. No rules shipped.
  • cisco_ios - full drop-in replacement of the stock IOS decoder file with six cisco-nxos-* decoders merged above cisco-ios-default, plus a rules file (NX-OS auth 110020-110028, IOS interactive/interface 110029-110031).

Denied Cisco FTD traffic was reaching the manager but not alerting, so it was
visible only in the archives. Three gaps in the stock decoders caused this:

- Some FTD builds emit a "%FTD-session-" message prefix that the stock parent
  prematch rejects, so those events were never decoded.
- Interface names containing hyphens (LAN-INT, DMZ-INT) are not matched by a
  \w+ interface pattern, breaking extraction for TCP and UDP denies.
- ICMP denies carry no port and report type/code instead, so they do not fit
  the port-bearing pattern at all.

This adds a cisco-ftd-session parent for the alternate prefix, plus TCP/UDP and
ICMP deny decoders for both prefixes, matching interfaces with [^:\s]+ and
addresses with [^/\s]+ so ports are always captured separately.

Also adds Cisco NX-OS and IOS-XE decoders for login results, PAM authentication
failures for unknown users (which carry the source address and so support
brute-force correlation), and account management: password change, role/group
assignment, and account expiry change. The stock cisco-ios-login and
cisco-ios-auth prematches match the NX-OS wordings but their regexes target the
classic IOS formats, so these events previously fell through to
cisco-ios-default with only facility, severity and mnemonic extracted.

Because Wazuh commits the first child decoder whose prematch matches even when
its regex then fails, placement is load-bearing here. The README documents the
constraint and two deployment methods, one straightforward and one upgrade-safe.

Rules occupy the 110000 block. All sample logs, addresses, hostnames and
usernames are anonymized, using the RFC 5737 documentation ranges.
@leonfullxr leonfullxr self-assigned this Jul 18, 2026
@leonfullxr
leonfullxr marked this pull request as draft July 18, 2026 17:06
@leonfullxr
leonfullxr requested a review from Copilot July 18, 2026 17:06

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new Wazuh integration (integrations/cisco_ftd_nxos_decoders/) to improve decoding and alerting for (1) Cisco FTD ACL deny syslogs (106023), including the %FTD-session- prefix and ICMP type/code formats, and (2) Cisco NX-OS/IOS-XE SYSTEM_MSG authentication and user-administration events, preserving key fields like dstuser and srcip for correlation.

Changes:

  • Added FTD 106023 deny decoders (TCP/UDP + ICMP) and associated alerting rules, including a frequency rule for repeated denies.
  • Added NX-OS/IOS-XE SYSTEM_MSG auth/account-management decoders and associated rules, including a frequency rule for repeated PAM illegal-user failures by srcip.
  • Added integration documentation and sample logs to validate decoder placement and expected extracted fields.

Reviewed changes

Copilot reviewed 5 out of 6 changed files in this pull request and generated no comments.

Show a summary per file
File Description
integrations/cisco_ftd_nxos_decoders/ruleset/decoders/cisco_ftd_deny_decoders.xml New decoders for FTD 106023 denies, including %FTD-session- prefix and ICMP type/code handling.
integrations/cisco_ftd_nxos_decoders/ruleset/decoders/cisco_nxos_auth_decoders.xml New decoders for NX-OS/IOS-XE SYSTEM_MSG login/auth/account-management events (including PAM illegal-user srcip).
integrations/cisco_ftd_nxos_decoders/ruleset/rules/cisco_ftd_deny_rules.xml New alerting rules for FTD denies plus repeated-deny frequency correlation.
integrations/cisco_ftd_nxos_decoders/ruleset/rules/cisco_nxos_auth_rules.xml New alerting rules for NX-OS auth/account changes plus repeated-failure frequency correlation.
integrations/cisco_ftd_nxos_decoders/sample-logs.log Sample log lines for wazuh-logtest validation of supported formats.
integrations/cisco_ftd_nxos_decoders/README.md Installation guidance emphasizing decoder ordering constraints, field reference, testing, and troubleshooting.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Split cisco_ftd_nxos_decoders into self-contained cisco_ftd, cisco_ftd_session
and cisco_ios integrations, each shipping full drop-in decoder replacements
(stock set + extensions). Sanitize sample logs to RFC 5737 ranges, document
dashboard + backend install with the exclude-decoder/rules-then-re-include
workflow, and merge the IOS interactive-session rules.
@leonfullxr leonfullxr changed the title Add Cisco FTD deny and NX-OS authentication decoders Add Cisco FTD, FTD-session and IOS/NX-OS decoder integrations Jul 21, 2026
@leonfullxr
leonfullxr requested a review from Copilot July 21, 2026 08:15
@leonfullxr
leonfullxr marked this pull request as ready for review July 21, 2026 08:16

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 7 out of 10 changed files in this pull request and generated 3 comments.

Comment thread integrations/cisco_ios/ruleset/rules/cisco_ios_rules.xml
Comment thread integrations/cisco_ios/ruleset/rules/cisco_ios_rules.xml
@leonfullxr
leonfullxr merged commit 0a29d35 into main Jul 21, 2026
1 check passed
@leonfullxr
leonfullxr deleted the cisco-ftd-nxos-decoders branch July 21, 2026 08:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants