Abstract:
An as-built network is evaluated by analyzing a model of the network by the steps of determining zones within the network, computing the access between zones, summarizing the access between zones to produce a dataset, then inputting a policy set comprising a collection of approvals, typically in the form of simple white-lists of approvals, then comparing the dataset and particularly the access between zones with the policy set of approvals (white-lists) to determine which access fall outside the approvals, and producing therefrom as an output to an end user a report of compliance and noncompliance, and then repeating the steps of determining, computing, and summarizing, and then the comparing step, after a period or after the network has changed. Thus a network operator or auditor can readily and interactively assess whether the infrastructure is in compliance with regulatory or other design requirements.

Description:
CROSS-REFERENCES TO RELATED APPLICATIONS 
     The present application claims benefit under 35 USC 119(e) of U.S. provisional Application No. 61/087,355, filed on Aug. 8, 2008, entitled “Method And Apparatus For Assessing As-Built Networks Using Policy White-Lists,” the content of which is incorporated herein by reference in its entirety. 
    
    
     STATEMENT AS TO RIGHTS TO INVENTIONS MADE UNDER FEDERALLY SPONSORED RESEARCH OR DEVELOPMENT 
     Not Applicable 
     REFERENCE TO A “SEQUENCE LISTING,” A TABLE, OR A COMPUTER PROGRAM LISTING APPENDIX SUBMITTED ON A COMPACT DISK 
     Not Applicable 
     BACKGROUND OF THE INVENTION 
     This invention relates to network security and more particularly to the reconciliation of policy or business objectives with working information technology infrastructure. The invention may be used by any organization, group, business or individual to govern access to data, applications, hosts, data traffic, as well as anomalies, weaknesses and defects of a data network infrastructure. Embodiments of the invention relate specifically to the rules in Section 1 of Payment Card Industry Data Security Standard (PCI DSS) version 1.1, but the principles have broader application than credit card security. PCI DSS is one example of an external regulatory framework that imposes requirements on Information Technology (IT) infrastructure. It is referred to herein as an example of a broad class of similar requirements, externally imposed through regulation or business contract or internally imposed by an organization&#39;s own security standards and policies. The subject matter of this invention is a way to meet any requirement to demonstrate that a data network permits or does not permit certain classes of access, or to demonstrate that access control devices (such as firewalls) are deployed and configured along necessary access pathways. 
     By way of background, the Payment Card Industry Data Security Standard (PCI DSS) comprises guidelines and procedures for the collection, transmittal and storage of credit card information. The Standard contains a great deal of prescriptive detail regarding the structure and implementation of security. Due to complexity of compliance, automation is essential, and network configuration management through firewalls and routers, management policies, and configuration setup and control provide the mechanism for such compliance. 
     Tools are available for building models of data networks. Such tools are available commercially from the present assignee RedSeal Systems of San Mateo, Calif. and Cisco Systems of San Jose, Calif. It is assumed for this invention that the model of the data network already exists and can be queried to show whether access from any point to any other point is permitted (including details of the protocols and ports that are allowed or blocked). The goal is to compare the data model with a collection of statements (“access specifications”) that indicate what should or should not be permitted, and then indicate non-compliance if any access is found that is either undocumented or explicitly forbidden. 
     There are a variety of statement types that can be applied, including at least the following types: 
     1. Access matching an access specification is acceptable (white-list rules) 
     2. Access matching an access specification is not acceptable (negative rules) 
     3. Access matching an access specification must be present (positive rules) 
     4. Access matching an access specification is the only permitted access of that type (exclusive rules) 
     5. Overriding access specifications of any of the prior types. 
     (Strictly, the fifth type, commonly called “exceptions”, is a convenience feature, since logically speaking all documentation requirements could be met with the other types. However, in real audit and compliance situations, it is common to write rules of the abstract form “none of the following, except for special case x”, or “all of the following, except special cases y and z”.) 
     Prior approaches to the assessment of policy generally lacked either a flexible range of access specifiers or a complete and automated model of the network environment that can provide details of which access is allowed before the user has to specify any rules. An approach which only takes statements from the user first, then tests those statements and only those statements, is not a reliable way to ensure that the whole environment meets the desired objectives. What is needed is a tool that makes it easier for a network operator or an operator to control and evaluate the security of the network and more particularly to verify compliance with network policy standards. 
     SUMMARY OF THE INVENTION 
     According to the invention, in a data network infrastructure environment having many potential vulnerabilities to breach, a mechanism or tool is provided whereby a data network can be audited for security. An as-built network is evaluated by analyzing a model of the network by the steps of determining zones within the network, computing the access between zones, summarizing the access between zones to produce a dataset, then inputting a policy set comprising a collection of access specifications combined with a rule type and a documentation of the business purpose for the access, then comparing the dataset and particularly the access between zones with the policy set of access specifications to determine which access either violates a specific rule, or is not accounted for (being outside the set of approvals), and producing therefrom as an output to an end user a report of compliance and noncompliance, and then repeating the steps of determining, computing, and summarizing, and then the comparing step, after a period or after the network has changed. This process is carried out using available tools that can duplicate the data networking environment into a model where tests and analyses can be executed without disrupting the environment that is being modeled. The mechanisms can be used for arbitrarily defined zones and hierarchies of zones for compliance purposes. Thus a network operator or auditor can readily assess whether the infrastructure is in compliance with regulatory or other design requirements, can review the safety and design quality of the infrastructure, and can continuously re-evaluate network compliance based on the recorded policies, rapidly identifying new deviations between the infrastructure and the policy. 
     Access specifications (hereinafter described) detail the sources, destinations, protocols and ports for a given rule. One non-limiting example might be “all Internet sources, to this web server, using TCP port 80”. The rule type can be of several forms. One embodiment uses three rule types—“approved” access, “forbidden” access, and “exceptions”, where the first details the business need for a given access specification, the second bans a given access specification, and the third is used as an override if the precedence rules do not give the desired result. (Other embodiments may use ordered lists of two types—permitted and not permitted. Those skilled in the art can identify other schemes for rule types, and the settling of precedence when rules conflict.) The documentation of the business purpose is not restricted, but in some compliance contexts, further restrictions of what is “sufficient” documentation may exist. One non-limiting example might be that a justification must include sign-off from an employee of a given job position or above. 
     In the specific embodiment of application to the PCI DSS v1.1 standard, no names and meanings are prescribed. Approvals as described herein are “white list” statements, namely a description of some access or a group of access specifications (with user-controllable granularity), and any access found that matches the approval&#39;s specification are accepted (from the point of view of the compliance standard). It has been discovered that use of white-list rules provide outcomes that are both adequate for PCI DSS v1.1 compliance and are relatively easily manipulated by a human operator, thereby greatly enhancing policy implementation. In the scope of PCI DSS v1.1 compliance, the user does not need to use Forbidden or Exception rule types, since the class of forbidden traffic is already pre-specified. In other compliance contexts, such as enforcement of an organization&#39;s own custom rules, the other rule types may be required. 
     The invention will be better understood by reference to the following detailed description in connection with accompanying drawings. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a block diagram of a network environment having zones with a network oversight zone according to the invention for analyzing compliance with access rules. 
         FIG. 2  is a block diagram around an analysis compliance according to the invention. 
         FIG. 3  is a flow chart of the basic process according to the invention. 
     
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     Referring to  FIG. 1 , a real-world network  10  comprises network zones  1 - 4  that have access  11 - 16  therebetween whereby they communicate with one another. Within the network zones there may be a hierarchy comprising subzones  101 - 103 ,  201 - 203 ,  301 - 303 ,  401 - 403  that have respective access to one another  111 - 113 ,  211 - 213 ,  311 - 313 ,  411 - 413 . This network structure is merely illustrative of one of many network configurations. The network  10  may have hierarchies that may be further nested from the global and regional levels down to the individual node level. Within or adjacent the real network  10  is a network oversight zone  5  in accordance with the invention wherein is found a network data collector  51 , a network data repository  52  and a network analysis appliance  53 . Functionally, the analysis appliance  53  contains a model  54  of the network  10  (at least of the zones of interest external to the network oversight zone  5 ), a set of access rules  55  which are configured to be applied to the network model  54  to yield a compliance result  56 . 
     In an overview of operation, the network data collector  51  gathers network configuration data from the network  10  (Step AA), which in turn stores the network configuration data in the network data repository  52  (Step AB). Then the analysis appliance  53  extracts selected data from the repository  52  (Step AC) and creates the network model  54  (Step AD). Thereafter the appliance  53  employs the access rules  55  (from whatever sources) to calculate a compliance result  56  as hereinafter explained. 
     Referring to  FIG. 2 , within the network oversight zone  5  is the network appliance  53  having the various support elements of mass storage  52  and the network data collector  51 . The appliance includes one or more CPUs and RAM  57 ,  58  with a suitable suite for an operating system (not shown) embedded in RAM  58 , optionally accelerators  60  or like hardware for processing, internal or external mass storage, such as unit  52 , and input and output devices, which may include software firewalls and the like, such as, load balancers, caches, proxies, web firewalls, application layer firewalls, and other devices. The input/output devices employ processes  62  according to one or more communication protocols (e.g., ssl, https, rmi, rpc, custom APIs) that provide user interface  64 , network topology information  66 , report generation  68 , and alerts, logs and a record of events of interest  70 . The topology is based on that portion of the network cloud of interest, which has devices identified by IP addresses, and which may be configured in IP subnets through routers and the like, as is well understood in the art. The present invention addresses the interface between the content in the network cloud seeking access to resources in the computer system. The user may provide access policy  70  via a communication layer  72  and parsers  74 , which along with the network data from component  51  is used to build the network model  54 . The network model  54  is then employed as input to a compliance analysis engine  72  having access to a database layer  74  that performs the steps according to the invention as hereinafter explained. 
     Referring to  FIG. 3 , it is a prerequisite that a queryable model  54  of the as-built network  10  be available. Such a commercial model builder is available from RedSeal Systems, as well as other suppliers. This model works from configuration files for network equipment and can compute any traffic access within that network  10 . 
     Given the model  54 , the steps for analysis and assessment according to the invention are:
         A. Segment the as-built network into Zones (Step A). This may be an automatic process or manual input. Typically, a Zone consists of a collection of IP Subnets in an IP network. It can also consist of a collection of IP endpoints in an IP network, or a mixture of IP endpoints and IP Subnets. In one embodiment, it is also possible to perform “zone inflation”, where a list of IP endpoints is used to select the set of surrounding IP Subnets.   B. Find all packet access between Zones by querying the as-built network (Step B). This is an automated step.   C. Summarize the inter-zone packet access from Step B to obtain an access dataset (Step C). Intra-zone access can also be added as a straight-forward extension. A typical summary is a list of the Protocol and Destination Port combinations found in access from one zone to another, directionally. This can be represented graphically. The Protocol/DestPort summary is a preferred mode of operation when the user needs to know which IP protocol types are used in the network.   D. Receive from the user the organization&#39;s Policy, that is, its policy set (Step D). The Policy is a first set or collection of Approvals or specifically white-list statements stating, in effect, “this broad or narrow set of access is permissible”. In some compliance contexts, this first set may be all that is received. While other policy types are extensions within the broad contemplation of the invention, including negative rules, required rules and exclusive rules, there is an inherent efficiency in use of white-lists. It is a significant simplification in usability of the system in real-world operational situations. If the compliance context requires additional policy types, then one embodiment also receives from the user a second set of Forbidden access specifications, stating “this set of access is never permissible”. Within this embodiment, a conflict between a Forbidden rule and an Approval results in the access being forbidden, that is, Forbidden rules take precedence. This embodiment can then be extended to a third set of Exception rules; these have the same effect as Approvals, but they take precedence over Forbidden rules, resulting in a 3-level hierarchy of rules. Other embodiments can follow other schemes for precedence; one non-limiting alternative example would be an ordered list of forbidden and approval statements where the first (or last) match wins.   E. Automatically compute the status of the network—specifically, which access is forbidden by explicit statement from Step D, which access is covered by approvals from Step D, and which access is not accounted for by any statement. This is done by comparing the access dataset with the policy set. Based on this, the whole as-built network can be described as “in compliance” with the policy set so long as all access is deemed approved (and not forbidden or undocumented).   F. Generate a compliance report to the end user for action (Step F). The user, who may be an operator or an auditor may receive the report in some tangible form for use in reporting on compliance or in modifying the approvals. In the specific embodiment adapted to PCI compliance requirements, when the zone structure and approval details are used in a way that matches PCI regulatory requirements, the net result can be used to demonstrate how that the network is in compliance with PCI DSS networking requirements, which is a much sought for feature in real-world operation.   G. The process is repeated (Step G), particularly Steps A, B, and C, presuming that the user/operator has made changes or the network has undergone some reconfiguration through its operation. The steps can also be repeated according to a schedule.       

     The Steps A-F constitute a one-time compliance assessment—the as-built network is modeled, broken into zones, and analyzed. Any divergence between the owner&#39;s policy (Step D) and the zone access discovered (Step C) is automatically highlighted in Step E. 
     On-going, this procedure can be used to continuously and automatically re-evaluate compliance. For this purpose Steps, A, B, and C are repeated, particularly if network changes. If the user&#39;s policy changes, Steps D and E can be re-run to assess whether this change causes a change in compliance. This impacts day to day operations by giving an easy way for a user to track drift between policy and the as-built network. It also greatly impacts workload when trying to meet regulatory requirements: the work to comply the first time is greatly reduced, but the effort savings compound over second and subsequent re-evaluations. 
     A specific embodiment of the invention is a tool that provides for the governance; approving, monitoring, testing and reporting of a multiplicity of relationships of a data network that includes but is not limited to: access to data, applications, hosts, data traffic, as well as anomalies, weaknesses and defects associated with these. This is achieved by duplicating the data networking environment into a model where tests and analysis can executed without disrupting the environment that is being modeled. The tool includes code for carrying out a multiplicity of processes that collects, analyzes, illustrates, alerts and alarms on user-, compliance-, industry- or system-defined policies. 
     The model of the data network may be constructed using available commercial tools that operate by obtaining either static and/or dynamic information from user authentication repositories, access logs, firewall, router and switch configurations, hosts, applications, data traffic flow, diagnostic tools, vulnerability assessment systems or databases that are part of the management thereof. The tool provides inference logic that calculates, estimates, and presumes additional model data elements based on the actual model data and user inputs. 
     The tool may be configured to automatically collect the data from the disparate data sources, including individual network and host devices, databases containing the data, or via manual input methods. 
     A user interface allows the user to define or use tool supplied templates for compartmentalizing; combining of data and simplifying or organizing the data into zones. These zones can be populated based on any element such as application, asset value, geographic location, data subnet or organizational level as a few examples. When the zone is defined with its data elements all associated data for each of those data elements is also associated to the zone by the tool. Disparate data is organized into zones so that their interrelationship with other zones can be governed. 
     When two or more zones are defined and their data elements are populated, the tool analyzes the interrelationship of the zones with respect to access to data, applications, hosts, data traffic, as well as anomalies, weaknesses and defects to and from the zones. The zonal interrelationships (inter-zonal access permissions) are generated as illustrations, 5-tuple traffic access diagrams and reports as common forms. 
     Policy Overlays 
     Policies describing allowed and prohibited parameters of access to data, applications, hosts, data traffic, as well as anomalies, weaknesses and defects are generated as inter-zonal policy overlays. These policies and their rules may be based on user, compliance, industry or system defined best practice standards. The policy overlay is used to validate the modeled inter-zonal access. 
     During policy overlay definition, the tool provides a multiplicity of mechanisms for allowing the governance of the policy or its definitions to be approved or denied by system administrators, network managers, executive staff or approval agency as a few examples. 
     Approval or denial of a policy overlay definition can be regulated by applying these at any level of the policy from inter-zonal access to 5-tuple source and destination IP address information as examples. 
     The tool compares the inter-zonal policy overlays to the modeled inter-zonal access as a test to validate adherence to a given policy or policies. The tool provides output of the analysis/tests in any form of alert, alarm, illustration, diagram or report. 
     The tool may be used by any organization, group, business or individual to govern access to data, applications, hosts, data traffic, as well as anomalies, weaknesses and defects of a data network infrastructure. 
     Any of the data elements in the model including but not limited to the test results, analysis, data collection, intra-zonal access or policies can be formatted as output in any form needed to provide proof or intent of compliance to policies. 
     The input consists of network infrastructure details, user input and test parameters needed for analysis. 
     The output of the analysis is in any form of alert, alarm, illustration, diagram or report, to simplify and improve security, adherence to compliance standards and industry best practices. 
     To implement the tool, a model of the system is built from data from multiple sources, such as configuration files, diagnostic reports, user input, industry standards and compliance requirements. The data portion is organized into logical zones and an overlay policy for flows and access. The interrelationship of those flows and the access between the zones is analyzed to correlate adherence to policy. Policy is allowed to be driven and administrated from any level such as the 5 tuple access between a source and destination or from diagram of the logical zones. 
     The output provides alarms, alerts, reports and remediation solutions. 
     The invention is useful to organizations that use a data network and its components for sustaining their business. 
     Referring to  FIG. 3 , this diagram, originally in color, is meant as a dashboard, to summarize most of the PCI requirements. (Strictly it only deals with documentation of access and protocols, but this is most of the work in PCI DSS Section 1.) This may be expanded beyond PCI requirements as a basis for more flexible control structures, but for now, something closely based on PCI is provided for illustration purposes. The specifics of the diagram are not intended to in any way limit the scope of the invention. It is however useful to visually summarize the access findings between zones, and the approval process. 
     Referring specifically to  FIG. 3 , all the zones should be renameable. The names are herein are PCI names, so cases like “Critical Data” correspond to the more general “Card Holder Data Zone”. 
     The table on the right summarizes what is in each zone. This could be expanded to add more columns, specifically to indicate how much of the space is unscanned, and whether any data is stale. The mark of missing scan data is important for later sections of PCI, beyond the specific compliance requirements of PCI DSS Section 1. 
     To support the diagram and all the regulation work, the invention defines four variants of “Trusted” internal subnets, and one group of “Untrusted” subnets (including a sub-group of “Internet” connection subnets). The invention is not restricted to this specific count or arrangement; however, this specific set of zones is aligned with PCI DSS Section 1 requirements. 
     A feature makes it easy to assign any subnet to any of the three Untrusted types (Internet, Extranet and Local) and the four Trusted types. This is similar to an untrusted picker, which can compute candidate untrusted locations based on things like firewall configurations, routing table records, lack of one end of a point-to-point connection, or other indicators that the candidate network location is connected to some wider, untrusted network. One way to generate DMZ “hints” is to run a query to the data model for all access from Untrusted networks to other networks especially to isolate all subnets that flows could land in. A way to generate Critical hints is to use the Card Holder DB folder (described later)—if a host in that folder is in a subnet, that subnet gets a hint for being Critical. 
     The arrows should only appear in the diagram when analysis shows at least some access. The labels on the arrows count the number of unique protocols referenced in the answer obtained from the network model between the zones. This count is set at “&gt;1000” to handle cases of wide or completely open permissions. 
     In the context of PCI DSS v1.1 Section 1, the set of Forbidden access is well known—specifically, no access should be open from Untrusted directly into the Critical zone, or vise versa. Thus, in the context of PCI DSS v1.1, the two Forbidden rules can be pre-built into the rule set. In other contexts, users can customize their own Forbidden rules. When any access is found between two zones that is classified Forbidden, the arrow in the appropriate direction between the two zones is drawn in red. Other arrows should be yellow if they carry a requirement for justifications to be provided, and at least some access is not yet approved. If all access is covered by approval, the line goes green. The selection of colors described here, and the precedence rules when more than one color could apply to an arrow, are non-limiting examples, illustrating one preferred embodiment. See below—an approval includes a 5-tuple filter. The unapproved total shown on regulated lines is the number of protocols mentioned in the residue of the network model after the approvals are removed. 
     Entering Rules 
     The users are to provide justification and approval of access in their environment. The following table illustrates the form of the rules: 
     
       
                 
         
             
             
         
      
     
     A similar data entry scheme can be used for Forbidden rules and Exceptions, or whatever rule types are available in a given embodiment of the invention. The user can accumulate as many of these rules as necessary, in a global list. The user needs to be able to view the whole list, mark entries inactive and edit entries. (Bulk edits are very desirable—applying a justification, or setting a group as inactive.) Since this is audit data, record keeping is important. In one embodiment, entries can only be deleted if more than 1 year old. If a user edits an entry, the existing one is marked Inactive, and a new active one is created, so we get an audit trail. For inactive entries also track who made it inactive, on what date. (These should be displayed when populated.) The Approved On and Approved By are set automatically. (If users want to record that the approval is on behalf of someone else, they can say so in Justification.) 
     For specific PCI DSS requirements, summaries are gathered from this global table. For example, the regulations need a list of approved services from one major block to another (Untrust to DMZ). Other compliance contexts may require similar summaries. An option is to allow filters and summaries of the global approval table—a filter for source zone and destination zone, and ideally a mechanism such as a “plus box” expand/contract (“hierarchical table”) to show a summary line for one destination protocol, and then expand to the specific approvals including that destination protocol, with their approval details. 
     The user can edit the service field if needed. In the preferred embodiment, this is a pair of form “protocol port-range”, or a set of such pairs. Protocol can be tcp, udp, icmp, a number, or the string “any”, or any other scheme for identifying protocol types, while port-range is either a single port number or a range of form “min-max”. 
     In a preferred embodiment, Source and Destination should always be specified as a Zone, and then optionally one or more restrictions to IP endpoints and/or IP subnets. Other embodiments can be used. The reason to encourage specification of zones is partially for user convenience (making it easy to write rules for whole zones at a time), and partially to deal with disambiguation (since in a complex environment, a single IP endpoint may not be unique, but it is much more likely to be unique within a defined zone). 
     The normal case for population of the Source, Destination and Service fields will depend on the origin, but typically, the Source should enlarge to the major type (e.g., Untrust or DMZ) covering the access details, while Destination and Service should stay specific, unless the user chooses to adjust to different rules. 
     Setting Rules 
     The user will sometimes need to hand-edit the rule fields, but the general idea is to try to make it easy to work from a listed discovery of access between groups, down to a summary rule for access of the given type. Specifically, if a user is looking at individual access specifics in the model of the network, it is very detailed—it might appear similar to the following table: 
     tcp 0.0.0.0-9.255.255.255 0-4443 a.b.c.d 80 
     tcp 0.0.0.0-9.255.255.255 4445-65535 a.b.c.d 80 
     and many more similar rows. What this means is the user has set up a web server at a.b.c.d, exposed it to Internet, but also happens to have a general rule banning source port 4444. It is the object to approve this, populating a “best guess” at the intended permissions into the 5-tuple. In general, the “best guess” when approving one row of the data model output is to copy the protocol, destination and port, but replace the source with the major source category—for example, in context of PCI DSS, the major zones are Untrust, DMZ, Critical or General. 
     Clearly, the user needs to look at some kind of access details to generate these approvals. There is some UI flexibility in how to organize the workflow. One way is to drive from the zone diagram, drilling into any one arrow. An option can have a layer of drilldown that only speaks to the protocols involved, rather than going directly to the full detail of access rows. A layer just showing major areas and service names (e.g., Untrust to DMZ, tcp 80) matches the high level diagram, and with allowed approval from that layer, although the approvals are fairly wide. It should be possible to drill down further, to full access details. As noted, rules can be driven from single lines of full access, but the user will normally end up generating a much more general approval than the specific access line content. 
     In either kind of drilldown (type pairs with protocols or full access), which lines are already approved must be clearly marked, and which are not. We also need to be able to show the rule covering a line that is already entered. (If a detailed access is partially covered by an approval, it is considered NOT approved. For a summary such as “Untrust to DMZ, tcp 80” to be approved, all the actual access components beneath the summary need to be approved.) At least in the larger access tables, it would be desirable to support a mode that only displays unapproved access, rather than all, since over time, the unapproved list should get small. 
     When new approvals are added, an option is to redisplay the high level diagram, the totals, and the details of which access is approved and which is not. In one embodiment, the user can use a Refresh button, at least on the top diagram, and possibly also offered on drill-downs. 
     Card Holder DB Folder 
     One specific PCI DSS v1.1 regulation requires a Zone containing card holder databases. This zone can be populated manually from an external list of IP endpoints, when available. However, sometimes this information is not readily available, or an auditor may wish to check for any other likely candidates that have been omitted from the claimed list of cardholder servers. In such situations, it is possible to suggest likely candidate servers based on information on hosts. The most reliable information comes from commercial products which can scan hosts, locate databases, then query the database content to identify data structures that appear to be in scope (for example, in PCI DSS v1.1, database fields of the appropriate sizes to record cardholder information). If this is not available, another replacement is host inventory information, either from a commercial asset management system, commercial patch management systems, or commercial vulnerability scanners. All of these systems can identify hosts and the applications they are running, and so can their data can be interrogated to locate database software. In one embodiment, this can be presented as a candidate set of machines which may be in the Cardholder Data Zone. Further extensions are possible, such as providing a limiting range within the network that will be analyzed to look for candidates. 
     “Find the Firewall” Feature 
     The description so far has dealt with access assessment. However, there is a related type of network compliance testing which is also contemplated as within the scope of this invention. Specifically, rather than evaluating a statement of the form “is the access from Zone A to Zone B justified?”, the related statement is “does all traffic from Zone A to Zone B pass through a mandated control device?” This requirement arises in many compliance contexts, including (but not limited to) PCI DSS v1.1 Section 1. The specific control device type can vary, including at least stateful firewalls, load balancers, caches, proxies, web firewalls, application layer firewalls, and other devices. Also, once identified, the control device or devices between a given zone pair can be scrutinized further for configuration details, such as enablement of specific features (for example, anti-spoof filtering). For this description, the PCI DSS v1.1 Section 1 requirement is used as a non-limiting example. PCI DSS v1.1 Regulations 1.1.3, 1.3.2, 1.3.3 and 1.3.8 all require the location of some firewalls for a specific test. 
     1.1.3 requires finding firewalls “for each Internet connection”, and “between any DMZ and the internal network zone”. This should fail if there is a path from the network cloud of the Internet to anywhere, or DMZ to anywhere internal, where no firewall is found. 
     1.3.2 requires a test for anti-spoofing from Internet to DMZ. To do this, it is necessary to check the configurations of the firewalls found in the previous step. 
     1.3.3 just requires that “stateful inspection” be used from outside to inside, which is effectively the same as the 1.1.3 requirement for firewalls between Internet and inside. 
     1.3.8 requires firewalls between wireless networks and the Critical zone (with approvals for the necessary traffic). 
     In summary, it must be proven that there are firewalls from Internet to Internal, Internet to DMZ, DMZ to all non-DMZ Internal, and Wireless to Critical. This is one non-limiting example of the kinds of control point tests that can be required in various policy contexts. 
     For the search for any pair, use a 2-phase algorithm, running on the network graph structure that is a necessary part of the data model described earlier:
         Phase 1, start from origin set (Internet, say), grow the set outwards, stop at firewalls. If any of the target set are found, flag a failure.   Phase 2, iterate thru firewalls from phase 1, grow outwards from each. (Don&#39;t revisit any phase 1 space.) Stop as soon as any members of target set are found. That makes this firewall a member of the interesting set.       

     Note that this algorithm does not consider routing or filtering, but one skilled in the art could generalize it to do so. 
     The firewalls found between the zone pair are listed. Also, any failures found in phase 1 are also listed, indicating the source point and destination point that were connected by at least one path not passing through a requisite control point. 
     The listed firewalls can then also be tested for further rules. For example, in PCI DSS v1.1, requirement 1.3.2 requires verification of anti-spoofing for the class of firewalls found between Internet and internal locations. 
     Reporting: 
     Attached hereto as a Patent Appendix a detailed description of the calculation of a compliance report for a specific embodiment of the invention, namely a report under PCI DSS Section 1, as hereinabove referenced. The Patent Appendix also incorporates a detailed description of the development specification for a tool according to the invention. This document provides one of ordinary skill in the art sufficient guidance to replicate a specific embodiment of the invention. 
     The invention has been explained with reference to specific embodiments. Other embodiments will be apparent to those of ordinary skill in the art. It is therefore not intended that the invention be limited, except as indicated by the claims.