The Analyzer is the heart of InfoSecter. Analyzer processes firewall configuration files, converting them to a uniform data structure that is a complete functional model of the configuration which can be efficiently constructed and searched. The following operations can be performed on this model.

  • Dissection or Tiling - Dissection creates a disambiguated map of the network packet handling behavior of the firewall. This map consists of a set of packets which are all handled identically. Each entry is notated with firewall behavior for packets in that tile, and the configuration lines that create that behavior. Any particularly packet will be matched by at most one line for a given scope.
  • Constraint checking - A constraint check is a test based on a packet expressions against the configuration. Each packet expression specifies a set of packets by their network properties and expected handling. The Analyzer verifies that the model behavior is consistent with the packet expression. If not, then the violations of that constraint are generated containing the sets of packets and behavior.
  • Comparison - The Analyzer can compare two configurations and generate the operational differences. The output is the functional differences between the configurations. Any purely textual differences are ignored. As a special case, a configuration can be compared against itself, to detect rules that conflict with other rules. The comparison can be done between configurations for different versions of the same platform, or even between configurations for different vendor platforms.

The Analyzer is a command line executable, suitable for use in scripting. Its input and output (except for the configuration files) are in XML to make them easy to handle in a scripting environment. For additional utility, or a non-scripting environment, InfoSecter includes Visualizer and Querent. Visualizer displays the output from the Analyzer, allowing it to be sorted and filtered to rapidly locate important information. Querent is an expression editor for constraint checking.