🎁 Get the FREE AI Skills Starter Guide β€” Subscribe β†’
BytesAgainBytesAgain
πŸ¦€ ClawHub

Cisco Firewall Audit

by @vahagn-madatyan

Dual-platform Cisco ASA and Firepower Threat Defense (FTD) firewall audit with ACL analysis, NAT policy validation, Modular Policy Framework / Access Control...

Versionv1.0.0
Downloads526
TERMINAL
clawhub install cisco-firewall-audit

πŸ“– About This Skill


name: cisco-firewall-audit description: >- Dual-platform Cisco ASA and Firepower Threat Defense (FTD) firewall audit with ACL analysis, NAT policy validation, Modular Policy Framework / Access Control Policy evaluation, Snort IPS assessment, VPN configuration review, and logging completeness verification. license: Apache-2.0 metadata: safety: read-only author: network-security-skills-suite version: "1.0.0" openclaw: '{"emoji":"πŸ›‘οΈ","safetyTier":"read-only","requires":{"bins":["ssh"],"env":[]},"tags":["cisco","asa","ftd","firewall"],"mcpDependencies":[],"egressEndpoints":[]}'

Cisco ASA / FTD Firewall Security Policy Audit

Policy-audit-driven analysis covering both Cisco ASA (classic) and Firepower Threat Defense (FTD). Unlike generic firewall checklists that check for open ports and default-deny, this skill evaluates the platform-specific security architecture: ASA security levels with interface-bound ACLs and Modular Policy Framework, or FTD Access Control Policy with Snort IPS integration and Firepower Management Center (FMC) orchestration.

Where platforms diverge, sections use [ASA] and [FTD] labels. Shared concepts apply to both platforms unlabeled. Covers ASA 9.x+ and FTD 6.x+ / 7.x+ managed by FMC or FDM. Reference references/policy-model.md for the ASA security-level model and FTD ACP evaluation chain, and references/cli-reference.md for dual-platform read-only commands.

When to Use

  • ACL review after rule changes or migration from ASA to FTD
  • Annual or quarterly compliance audit requiring per-rule justification
  • Post-incident rule assessment to identify how traffic was permitted
  • [ASA] Security level and interface ACL gap analysis
  • [ASA] Modular Policy Framework audit β€” verifying inspection maps
  • [FTD] Access Control Policy rule ordering and IPS coverage review
  • [FTD] Snort IPS policy tuning assessment β€” false positive vs detection gap balance
  • NAT policy validation after network re-addressing or migration
  • VPN configuration security review β€” site-to-site and remote access
  • Failover / HA posture verification
  • Pre-migration baseline before ASA-to-FTD conversion
  • Prerequisites

  • [ASA] Privilege level 5+ (read-only show commands) or ASDM read-only access
  • [FTD] Read-only analyst access to FMC web UI or FMC REST API; Expert shell access for Snort-level diagnostics
  • Understanding of the interface topology β€” which interfaces exist, their security levels ([ASA]), and network segment assignments
  • Knowledge of expected access policies per interface pair or zone
  • For multi-context ASA: access to system and each security context
  • [FTD] Knowledge of IPS policy baseline β€” which Snort ruleset and network analysis policy are expected
  • Active configuration β€” audit evaluates the running configuration, not pending changes
  • Procedure

    Follow this audit flow sequentially. Each step builds on prior findings. The procedure moves from platform identification through access policy, NAT, inspection/IPS, VPN, and logging.

    Step 1: Platform Identification and Architecture Inventory

    Determine the platform and collect architectural baseline.

    show version
    

    Identify: ASA vs FTD, software version, hardware platform (ASA 5500-X, Firepower 1000/2100/4100/9300, virtual), licensed features.

    [ASA] Inventory interfaces, security levels, and context mode:

    show interface ip brief
    show nameif
    show mode
    

    Security levels (0–100) determine implicit traffic flow: traffic from a higher security level to a lower is permitted by default (unless ACLs override); lower-to-higher is denied by default. Record each interface name, security level, and IP address.

    For multi-context ASA:

    show context
    changeto context 
    show interface ip brief
    

    [FTD] Identify management model and registered devices:

    show managers
    

    FTD managed by FMC: policy is pushed from FMC β€” audit via FMC UI/API. FTD managed by FDM (local): policy configured on-device β€” audit via FDM web UI or REST API.

    Check failover/HA status on both platforms:

    show failover
    show failover state
    

    Record active/standby status, failover interface, and last failover time.

    Step 2: Access Policy Analysis

    [ASA] ACL-based access control:

    show access-list
    show running-config access-list
    show running-config access-group
    

    ASA uses interface-bound ACLs. Each ACL is applied inbound or outbound on an interface via access-group. Evaluate:

  • ACL evaluation order: Top-down within each ACL. First matching ACE
  • (Access Control Entry) is applied. Implicit deny at the bottom.
  • Global ACL: If configured, applies to all interfaces. Interface ACLs
  • are evaluated before the global ACL.
  • Overly permissive ACEs: permit ip any any or permit tcp any any
  • entries are Critical findings β€” they permit all traffic of that protocol.
  • Unused ACEs: ACEs with zero hit counts (check show access-list
  • output for hitcnt=0) over 90+ days are cleanup candidates.
  • EtherType ACLs: Used on transparent firewall interfaces. Review for
  • overly broad EtherType permits.

    show access-list  brief
    

    [FTD] Access Control Policy (ACP):

    Access the ACP via FMC UI or REST API. The ACP evaluates traffic through a defined chain (see references/policy-model.md). Evaluate:

  • Prefilter policy: Hardware-level rules that bypass Snort. Overly
  • broad prefilter Trust rules skip all inspection.
  • SSL policy: Determines which TLS flows are decrypted for inspection.
  • Access Control rules: Top-down evaluation. Actions: Allow (with or
  • without IPS), Trust (bypass Snort), Block, Monitor. - Rules with Action=Allow and no Intrusion Policy pass traffic without IPS inspection. - Rules with Action=Trust bypass all further inspection including IPS and file/malware β€” use only for verified trusted flows.
  • Default action: Applied when no rule matches. Should be Block with
  • logging, not Allow.
  • Intrusion Policy binding: Each Allow rule can bind an Intrusion
  • Policy (Snort ruleset). Rules without one pass traffic uninspected.

    system support diagnostic-cli
    show access-control-config
    

    Step 3: NAT Policy Audit

    [ASA] NAT order of operations:

    show nat
    show nat detail
    show running-config nat
    show xlate
    

    ASA NAT evaluates in three sections:

  • Section 1 (Manual NAT / Twice NAT): Explicit rules, top-down. Highest
  • priority. Used for fine-grained control.
  • Section 2 (Auto NAT / Object NAT): Per-object NAT definitions.
  • Evaluated after Section 1. Ordering: static rules first, then dynamic.
  • Section 3 (Manual NAT after-auto): Low-priority manual rules evaluated
  • after auto NAT. Used for catch-all translations.

    Check for NAT rule conflicts β€” a Section 1 rule that matches the same traffic as a Section 2 object NAT always wins. Verify that static NAT entries for published servers have corresponding ACL entries restricting access.

    [FTD] NAT rules in FMC:

    FTD NAT follows the same three-section model as ASA but is configured via FMC. Review NAT rules in the FMC NAT policy. Verify:

  • Manual NAT rules take precedence over auto NAT
  • NAT rules align with ACP rules β€” ensure translated addresses match ACP
  • source/destination references
  • No unnecessary identity NAT rules consuming processing
  • Cross-reference NAT entries with access policy on both platforms β€” static NAT that exposes internal servers must have restrictive access rules.

    Step 4: Inspection and IPS Assessment

    [ASA] Modular Policy Framework (MPF):

    show running-config class-map
    show running-config policy-map
    show running-config service-policy
    show service-policy
    

    ASA inspection uses MPF: class-maps define traffic β†’ policy-maps bind inspections β†’ service-policies apply to interfaces. Evaluate:

  • Default inspection: ASA enables inspection for common protocols
  • (HTTP, DNS, FTP, etc.) via the global_policy. Verify the global policy is applied (service-policy global_policy global).
  • Custom inspections: Additional class-maps/policy-maps for specific
  • traffic patterns. Verify they are applied to correct interfaces.
  • Missing inspections: Traffic not matching any class-map in the
  • service-policy receives no application-layer inspection β€” only ACL enforcement.
  • Connection limits: MPF can set connection limits and timeouts.
  • Review for overly permissive or missing connection limits on internet-facing interfaces.

    [FTD] Snort IPS and File/Malware policies:

  • Intrusion Policy: Each ACP Allow rule can reference an Intrusion
  • Policy that determines the Snort ruleset. Check that internet-facing Allow rules bind an Intrusion Policy.
  • Snort rule sets: Verify the base policy (Balanced Security and
  • Connectivity, Connectivity Over Security, Security Over Connectivity, Maximum Detection). For production environments, "Balanced Security and Connectivity" is the minimum recommended baseline.
  • Network Analysis Policy (NAP): Controls protocol decoder settings
  • and preprocessor configuration. Misconfigured NAP can cause Snort detection gaps.
  • File and Malware Policy: Detects and blocks malware file transfers.
  • Verify binding on rules permitting file-carrying protocols (HTTP, SMTP, FTP, SMB).
  • Snort deployment mode: Inline (can block) vs passive (alert only).
  • Production deployments should use inline mode for active prevention.

    system support diagnostic-cli
    show snort statistics
    

    Step 5: VPN and Remote Access Audit

    Evaluate VPN configuration security on both platforms.

    show crypto ipsec sa
    show crypto ikev2 sa
    show vpn-sessiondb
    

    Check:

  • Site-to-site tunnels: Verify IKE version (IKEv2 preferred over
  • IKEv1), encryption algorithms (AES-256-GCM recommended; DES/3DES are findings), DH groups (group 14+ recommended; groups 1/2/5 are weak), and PFS settings.
  • Crypto maps / tunnel groups: [ASA] Review crypto map entries
  • and tunnel group definitions. [FTD] Review site-to-site VPN topology in FMC.
  • AnyConnect / remote access VPN: If configured, evaluate:
  • - Authentication method (certificate + MFA preferred over password-only) - Split tunneling settings (full tunnel recommended for security; split tunnel for performance β€” document the choice) - Connection profiles and group policies - Client certificate validation settings - Banner and session timeout configuration

    show running-config tunnel-group
    show running-config group-policy
    

  • IKE/IPSec SA lifetimes: Very long lifetimes (>24h IKE, >8h IPSec)
  • increase exposure if keys are compromised.

    Step 6: Logging and Monitoring

    Evaluate logging configuration and coverage.

    [ASA] Syslog configuration:

    show logging
    show running-config logging
    

  • Syslog severity: Verify logging level is set to at least
  • "informational" (level 6) for security-relevant events. Level 5 (notifications) misses connection teardown events. Level 7 (debugging) generates excessive volume.
  • Syslog destinations: Verify syslog server(s) are configured and
  • reachable. Check for encrypted syslog (TCP/TLS) for log integrity.
  • SNMP: If configured, verify community strings are not defaults and
  • SNMP v3 is used for authentication/encryption.

    [FTD] Firepower event logging:

  • Connection events: In FMC, verify connection logging is enabled on
  • ACP rules. "Log at End of Connection" is standard; "Log at Beginning" adds volume but provides immediate visibility.
  • Intrusion events: Automatically logged by Snort when rules trigger.
  • Verify events are forwarded to the SIEM.
  • eStreamer: The Firepower event streaming API for SIEM integration.
  • Verify eStreamer client connectivity if in use.
  • Security Analytics / SecureX: If integrated, verify telemetry
  • forwarding is active.

    show logging
    show running-config logging
    

    Verify logging covers: denied connections (ACL denials), permitted connections (for audit trail), VPN events, failover events, and administrative access.

    Threshold Tables

    Policy Rule Severity Classification

    | Finding | Severity | Rationale | |---------|----------|-----------| | [ASA] permit ip any any in interface ACL | Critical | Permits all IP traffic β€” no access restriction | | [FTD] ACP default action set to Allow | Critical | All unmatched traffic permitted without inspection | | [FTD] Prefilter Trust rule with broad match (any/any) | Critical | Traffic bypasses all Snort inspection | | [ASA] No global service-policy applied | High | No application-layer inspection on any traffic | | [FTD] Allow rule without Intrusion Policy binding | High | Traffic permitted without IPS inspection | | [FTD] SSL policy not decrypting internet-bound traffic | High | Snort inspects only metadata on encrypted flows | | VPN using DES/3DES or DH group 1/2/5 | High | Weak cryptographic algorithms β€” vulnerable to attack | | Static NAT with no restricting ACL | High | Published server accessible on all ports | | Failover configured but standby not monitoring | High | HA not providing redundancy | | [FTD] Snort in passive mode (production) | High | IPS detects but cannot block threats | | [ASA] ACE with hitcnt=0 for >90 days | Medium | Unused rule β€” cleanup candidate | | [FTD] File/Malware policy not bound on file-carrying rules | Medium | Malware detection gap on HTTP/SMTP/FTP | | VPN split tunneling enabled | Medium | Remote user traffic may bypass corporate security controls | | Logging severity below informational (level 6) | Medium | Security events not captured in logs | | [ASA] Security levels equal with same-security-traffic disabled | Low | Traffic between equal interfaces blocked (may be intentional) |

    IPS / Inspection Maturity

    | Coverage | Maturity | Guidance | |----------|----------|----------| | [FTD] All Allow rules have Intrusion + File/Malware policies | Mature | Maintain; tune Snort rules quarterly | | [FTD] Most Allow rules have Intrusion Policy, some gaps | Developing | Bind Intrusion Policy to remaining Allow rules | | [ASA] Global inspection policy active, custom maps defined | Developing | Evaluate FTD migration for deeper inspection | | [ASA] Default global_policy only, no custom inspections | Immature | Add custom inspection maps for critical protocols |

    Decision Trees

    Access Policy Gap Remediation

    Overly permissive access rule identified
    β”œβ”€β”€ Platform?
    β”‚   β”œβ”€β”€ [ASA] permit ip any any in ACL
    β”‚   β”‚   β”œβ”€β”€ Is ACL applied to an interface?
    β”‚   β”‚   β”‚   β”œβ”€β”€ Yes β†’ CRITICAL: All traffic permitted on that interface
    β”‚   β”‚   β”‚   β”‚   └── Analyze connections: show conn [interface]
    β”‚   β”‚   β”‚   β”‚       β†’ Replace with specific permit entries
    β”‚   β”‚   β”‚   └── No β†’ ACL exists but not applied; verify intent
    β”‚   β”‚   └── Global ACL?
    β”‚   β”‚       └── Applies to all interfaces β†’ assess scope of exposure
    β”‚   β”‚
    β”‚   └── [FTD] Allow rule without Intrusion Policy
    β”‚       β”œβ”€β”€ What traffic does the rule match?
    β”‚       β”‚   β”œβ”€β”€ Internet-bound β†’ Bind Intrusion Policy (Balanced minimum)
    β”‚       β”‚   β”‚   └── Also bind File/Malware policy
    β”‚       β”‚   β”œβ”€β”€ Inter-zone β†’ Bind Intrusion Policy
    β”‚       β”‚   └── Trusted internal β†’ Evaluate risk; bind at minimum
    β”‚       β”‚
    β”‚       └── Is it a Trust rule?
    β”‚           β”œβ”€β”€ Yes β†’ Bypasses ALL inspection
    β”‚           β”‚   └── Verify traffic is truly trusted (e.g., backup)
    β”‚           β”‚       └── Consider changing to Allow + Intrusion Policy
    β”‚           └── No (Allow) β†’ Add Intrusion Policy binding
    β”‚
    └── Action = Trust vs Allow?
        β”œβ”€β”€ Trust β†’ Zero inspection; use sparingly
        └── Allow β†’ Inspection possible; bind policies
    

    NAT Conflict Resolution

    NAT rule conflict suspected
    β”œβ”€β”€ [ASA] Which section is each rule in?
    β”‚   β”œβ”€β”€ Section 1 (Manual) vs Section 2 (Auto) β†’ Section 1 always wins
    β”‚   β”œβ”€β”€ Both in Section 2 β†’ Static evaluates before dynamic; check overlap
    β”‚   └── Section 1 vs Section 3 β†’ Section 1 wins; Section 3 may be unreachable
    β”‚
    β”œβ”€β”€ [FTD] Same three-section model via FMC
    β”‚   └── Review NAT policy β†’ identify ordering conflicts
    β”‚
    └── Verify with packet tracer:
        packet-tracer input  tcp    
    

    Report Template

    CISCO ASA / FTD SECURITY POLICY AUDIT REPORT
    ===============================================
    Device: [hostname]
    Platform: [ASA model / FTD model]
    Software: [ASA version / FTD version]
    Management: [ASDM / FMC hostname / FDM]
    Mode: [routed / transparent] [single / multi-context]
    Failover: [active-standby / active-active / standalone]
    Audit Date: [timestamp]
    Performed By: [operator/agent]

    INTERFACE / ZONE SUMMARY: [ASA]: Interfaces: [count] (security levels: [list]) | Multi-context: [yes/no] [FTD]: Zones: [count] ([list]) | Managed by: [FMC/FDM]

    ACCESS POLICY: [ASA]: ACLs: [count] | ACEs total: [n] | hitcnt=0 (>90d): [n] | Global service-policy: [yes/no] [FTD]: ACP rules: [n] (Allow:[n] Block:[n] Trust:[n]) IPS-bound: [n]/[allow] | File/Malware-bound: [n]/[allow] | Default: [Block/Allow]

    NAT: Section 1: [n] | Section 2: [n] | Section 3: [n] | Static: [n] | Conflicts: [n/none]

    INSPECTION / IPS: [ASA]: Service-policy: [applied/missing] | Inspected: [protocols] [FTD]: IPS policy: [name] | Snort: [inline/passive] | SSL decrypt: [n rules/none]

    VPN: Tunnels: [n] | IKE: [v1/v2] | Crypto: [algs] | AnyConnect: [yes/no] | Split: [yes/no]

    FINDINGS: 1. [Severity] [Category] β€” [Description] Platform: [ASA/FTD] | Rule: [id] | Interface/Zone: [name] Issue: [problem] β†’ Recommendation: [remediation]

    RECOMMENDATIONS: [Prioritized by severity] NEXT AUDIT: [CRITICAL: 30d, HIGH: 90d, clean: 180d]

    Troubleshooting

    ASA-to-FTD Migration Assessment

    When evaluating an ASA for migration to FTD, document: ACL count, NAT rules, MPF inspections, VPN configurations (crypto maps don't migrate directly), and multi-context usage (FTD does not support multi-context). The Cisco Firepower Migration Tool provides a baseline but audit the migrated policy for accuracy β€” automated migration often produces suboptimal rule ordering.

    Multi-Context ASA Audits

    Each security context is an independent firewall with its own interfaces, ACLs, NAT, and routing. Audit each context separately via changeto context . Use show context in the system context to list all contexts and show resource allocation for per-context limits.

    Large ACLs (>1000 ACEs)

    Export the configuration (show running-config access-list) and parse programmatically. Prioritize by hit count β€” high-hit-count ACEs carry the most traffic. Zero-hit-count ACEs over 90 days are removal candidates.

    FTD Diagnostic CLI

    FTD runs Snort on top of an ASA-derived data plane. Use system support diagnostic-cli for ASA-style show commands. The canonical policy source is FMC β€” the diagnostic CLI shows deployed results.

    Packet Tracer for Policy Verification

    Both platforms support packet tracer for simulating traffic:

    packet-tracer input  tcp    
    

    Shows each processing phase: ACL/ACP evaluation, NAT translation, inspection, routing, and egress. Use to verify audit findings.

    ⚑ When to Use

    TriggerAction
    - Annual or quarterly compliance audit requiring per-rule justification
    - Post-incident rule assessment to identify how traffic was permitted
    - **[ASA]** Security level and interface ACL gap analysis
    - **[ASA]** Modular Policy Framework audit β€” verifying inspection maps
    - **[FTD]** Access Control Policy rule ordering and IPS coverage review
    - **[FTD]** Snort IPS policy tuning assessment β€” false positive vs detection gap balance
    - NAT policy validation after network re-addressing or migration
    - VPN configuration security review β€” site-to-site and remote access
    - Failover / HA posture verification
    - Pre-migration baseline before ASA-to-FTD conversion

    βš™οΈ Configuration

  • [ASA] Privilege level 5+ (read-only show commands) or ASDM read-only access
  • [FTD] Read-only analyst access to FMC web UI or FMC REST API; Expert shell access for Snort-level diagnostics
  • Understanding of the interface topology β€” which interfaces exist, their security levels ([ASA]), and network segment assignments
  • Knowledge of expected access policies per interface pair or zone
  • For multi-context ASA: access to system and each security context
  • [FTD] Knowledge of IPS policy baseline β€” which Snort ruleset and network analysis policy are expected
  • Active configuration β€” audit evaluates the running configuration, not pending changes
  • πŸ“‹ Tips & Best Practices

    ASA-to-FTD Migration Assessment

    When evaluating an ASA for migration to FTD, document: ACL count, NAT rules, MPF inspections, VPN configurations (crypto maps don't migrate directly), and multi-context usage (FTD does not support multi-context). The Cisco Firepower Migration Tool provides a baseline but audit the migrated policy for accuracy β€” automated migration often produces suboptimal rule ordering.

    Multi-Context ASA Audits

    Each security context is an independent firewall with its own interfaces, ACLs, NAT, and routing. Audit each context separately via changeto context . Use show context in the system context to list all contexts and show resource allocation for per-context limits.

    Large ACLs (>1000 ACEs)

    Export the configuration (show running-config access-list) and parse programmatically. Prioritize by hit count β€” high-hit-count ACEs carry the most traffic. Zero-hit-count ACEs over 90 days are removal candidates.

    FTD Diagnostic CLI

    FTD runs Snort on top of an ASA-derived data plane. Use system support diagnostic-cli for ASA-style show commands. The canonical policy source is FMC β€” the diagnostic CLI shows deployed results.

    Packet Tracer for Policy Verification

    Both platforms support packet tracer for simulating traffic:

    packet-tracer input  tcp    
    

    Shows each processing phase: ACL/ACP evaluation, NAT translation, inspection, routing, and egress. Use to verify audit findings.