← Back to FwMigrate

How FwMigrate Translates Firewall Configs Without Missing a Rule

A technical walk-through of the parsing, normalisation, and validation pipeline behind cross-vendor firewall migration.

By · Principal Security Architect & AI Systems Engineer
FwMigrate parses firewall configurations from 10 vendors, normalises them into a vendor-neutral intermediate representation, then re-emits in the target syntax with rule-by-rule validation and a risk diff. This page describes how that works end to end.

1. The migration problem in mid-market environments

A typical mid-market firewall migration touches between 800 and 4,000 rules. Most of those rules were written by people who have left. Comments are sparse, naming is inconsistent, and shadow rules accumulate for years.

The traditional migration playbook is a spreadsheet, two engineers, and four to eight weeks. Roughly one rule in fifty gets transcribed wrong. Half of those errors are caught in UAT. The rest surface in production, usually at 02:00 on a Tuesday.

FwMigrate addresses the underlying cause: vendor syntax divergence forces humans to context-switch hundreds of times per migration. Each switch is a chance to introduce a defect.

2. Per-vendor parsers and the intermediate representation

Each supported vendor (Palo Alto, Cisco ASA, Cisco FTD, Check Point, Fortinet, Juniper SRX, F5, pfSense, OPNsense, MikroTik, AWS Security Groups) has a dedicated parser. The parser walks the configuration top to bottom and emits structured tokens: address objects, service objects, security rules, NAT rules, application filters, and policy chains.

Tokens are then mapped into a vendor-neutral intermediate representation (IR). The IR uses the same primitives across all vendors: SourceZone, DestinationZone, SourceAddress, DestinationAddress, Service, Action, LogProfile, plus vendor-specific extensions stored as opaque metadata.

The IR is the contract. As long as a vendor parser produces a valid IR and a vendor emitter consumes one, any source vendor can target any destination vendor without a quadratic explosion of pair-wise translation code.

3. Translation: emitting target vendor syntax

Translation is IR → target. The emitter for each vendor knows the syntax, the object-naming constraints, and the policy-evaluation order of its target platform.

Two classes of translation exist. Lossless translations preserve every IR field exactly. Most rule-set migrations are lossless when the source and target both support zones, address objects, and service objects. Lossy translations drop or coerce fields that the target platform does not represent. FwMigrate flags every lossy translation explicitly rather than silently dropping data.

NAT rules, application-aware filtering, and identity-based policies are the most common sources of lossy translations. The emitter records the original IR alongside the emitted target rule so a human reviewer can see both.

4. Rule-by-rule validation and the risk diff

After emission, FwMigrate validates the migration along three axes. Equivalence: does the target rule match the same traffic as the source? Coverage: does the union of target rules cover every flow the source allowed? Drift: do new shadows or conflicts appear in the target rule-set that did not exist in the source?

Equivalence is checked by traffic-simulation: a representative set of synthetic packets is evaluated against both source and target rule-sets, and verdicts are compared. Coverage uses set-theoretic analysis on flow tuples. Drift detection re-runs the rule-analysis engine from FwChange against the target rule-set.

The output is the risk diff: a per-rule report listing equivalence verdict, coverage delta, and any new shadows or conflicts introduced by translation. Reviewers see the entire diff before any change touches a live firewall.

5. What gets flagged for human review

FwMigrate does not silently drop rules. The following always surface for human review:

This is by design. Pretending that every config translates cleanly is what makes 02:00-Tuesday outages happen.

6. Deployment, scope, and the parts FwMigrate does not do

FwMigrate ships as a Docker image. On-premise deployment is the default — configurations never leave your environment. A hosted version exists for evaluation and small projects.

FwMigrate produces export-ready configuration packages. It does not push configurations to live firewalls. That deliberate separation keeps the change window in your control. Pair FwMigrate with FwChange when ongoing change management on the new platform is required.

Vendors not yet supported (Sophos, SonicWall, Hillstone, others) are tracked on the development backlog. The IR is stable enough that adding a new vendor parser plus emitter typically takes two to three weeks per platform.

FwMigrate is part of the FwChange Security Suite — seven independent firewall-lifecycle tools by Nicholas Falshaw.