PROMETHEUS: OPERATIONAL OPTIMIZATION OF FIREWALLS IN LARGE CORPORATE NETWORKS
|
|
|
- Clarence Griffith
- 10 years ago
- Views:
Transcription
1 UNIVERSIDADE DE LISBOA FACULDADE DE CIÊNCIAS DEPARTAMENTO DE INFORMÁTICA PROMETHEUS: OPERATIONAL OPTIMIZATION OF FIREWALLS IN LARGE CORPORATE NETWORKS Ricardo Manuel dos Santos Neves Oliveira MESTRADO EM SEGURANÇA INFORMÁTICA Dezembro 2008
2 UNIVERSIDADE DE LISBOA FACULDADE DE CIÊNCIAS DEPARTAMENTO DE INFORMÁTICA PROMETHEUS: OPERATIONAL OPTIMIZATION OF FIREWALLS IN LARGE CORPORATE NETWORKS Ricardo Manuel dos Santos Neves Oliveira Orientador Hyong S. Kim MESTRADO EM SEGURANÇA INFORMÁTICA Dezembro 2008
3 Resumo As firewalls são o meio mais relevante e mais comum para garantir a aplicação de políticas de acesso dentro de redes locais e entre redes de diferentes organizações. As políticas de segurança definidas nas firewalls são complexas por si só, mas a sua interacção com políticas de encaminhamento de pacotes em redes IP elevam o grau de complexidade dessas políticas. A gestão de firewalls em redes de larga escala é um grande desafio e a ocorrência de problemas na sua configuração é inevitável. Esses problemas podem ocorrer em dispositivos específicos, ou devido à combinação de uma série desses dispositivos num caminho ao longo da rede. Outros problemas podem resultar ainda do facto das políticas desses dispositivos serem incrementadas e alteradas com elevada frequência, como é o caso em redes de larga escala e com um grande ritmo de crescimento. Neste trabalho é definido um modelo para o diagnóstico de problemas que ocorrem em firewalls que não só depende da análise da configuração de cada dispositivo, mas também da informação de encaminhamento dinâmico de pacotes IP, crucial para obter uma visão completa do estado da rede. O modelo é concretizado numa aplicação, Prometheus, que dispõe de mecanismos para a detecção automática de problemas em firewalls que são extremamente complexos de resolver manualmente. O sistema é testado numa rede real de um grande operador de telecomunicações Europeu, e são apresentados os resultados que comprovam a sua eficácia. Palavras-Chave: Firewalls; Redes IP; Qualidade de Serviço; Segurança i
4 Abstract Firewalls are the most prevalent and important means of enforcing security policies inside networks and across different organizational boundaries. The security policies in firewalls are complex and their interaction with routing policies and applications further complicates policy configurations. The management of firewalls in large networks is very challenging to be effective and fault free. Configuration problems can occur in a specific device or due to a specific combination of several devices along the existing network path. Additionally, configuration problems result from incremental deployment of firewall policies, particularly in large and fast growing networks. In this work we define a model for diagnosing the problems arising in firewalls by analyzing not only the firewall configuration but also the dynamic routing information that is crucial for obtaining a complete view of the network. We present an application, Prometheus, which implements the mechanisms for the automatic detection of the firewall problems that are extremely difficult to resolve manually. We test our system in a production network of a large European ISP and report its resulting effectiveness. Keywords: Firewalls; Networking and networked systems; QoS; Security; Self-managing systems ii
5 Acknowledgements Any journey, quest or dream we may pursue is easier to achieve when we are surrounded by people that push us forward. Be it through words of incentive, by lending a helping hand, or even by just being there. To my family and friends whom I have ignored for a long period of time, but still manage to show their affection and support. To my colleagues, Luis Costa, Ricardo Marques and Tiago Carvalho, you are great journey companions from whom I learned a great deal. To Sihyung Lee, to whom I owe so much, for his endless patience, his precious insight and his incredible squash game. To my advisor Hyong Kim, for his guidance and determination to ensure I do the best project possible. To José Alegria for believing in me, and for the all support and ideas provided throughout this project. To those who have come along in my journey, helped in my quest and still share my dream, I thank you for all that you have given me. Do not follow where the path may lead. Go instead where there is no path and leave a trail, Ralph Waldo Emerson Lisboa, December 2008 iii
6 Table of Contents 1 Introduction Motivation Contributions Related Work Document Structure Model Detecting Misconfigurations Misconfiguration Categories ACL Analysis for Misconfiguration Detection Detection Algorithms Group Detection Algorithms Suggesting Solutions Prometheus Architecture Prometheus Client Application Server Prometheus Daemon Configuration Parser Evaluation Setup Testbed Results Performance Operator Feedback Discussion Detecting Misconfigurations and Routing Identifying Critical Paths Future Work Conclusion Bibliography iv
7 List of Tables Table 1 - ACL rule components... 6 Table 2 - Routing rule components... 6 Table 3 - NAT rule components... 7 Table 4 - Example ACL Table 5 - NAT Rule Table Table 6 - Effect of NAT Table 7 - Accept Rules for Intra-ACL Checking Table 8 - Deny Rules for Intra-ACL Checking Table 9 - Accept Rules for Inter-ACL Checking Table 10 - Deny Rules for Inter-ACL Checking Table 11 - Example Rules Table 12 - Flow checking rules Table 13 Possible Solutions for Intra-ACL Misconfigurations Table 14 - Example ACL with Correlation Table 15 Possible Solutions for Inter-ACL Misconfigurations Table 16 - Example Distributed ACL with Shadowing Table 17 - Interface functionality Table 18 - BDD components of rules Table 19 - Intra-ACL Misconfigurations detected Table 20 Out-degree v
8 List of Figures Figure 1 - Model Hierarchy... 5 Figure 2 Shadowing... 9 Figure 3 Generalization... 9 Figure 4 Correlation Figure 5 - Overlapping path segments Figure 6 - Full Route Set Figure 7 - Architecture modules Figure 8 - Prometheus Daemon Workflow Figure 9 - Performance of Intra-ACL misconfiguration detection Figure 10 - Performance of Inter-ACL misconfiguration detection per route vi
9 1 Introduction 1.1 Motivation Firewalls are the most prevalent and important means of enforcing security policies inside networks and across different organizational boundaries. When deployed in a network with a sound design and topology, this type of equipment is extremely effective, and is a fundamental piece of a global network security approach. However, firewalls limit network functionality unintentionally by adding complexity to already intricate network topologies. This is a key point, as security needs to be pervasive, without preventing business from proceeding as usual. Efficient and effective firewall management is thus an absolute necessity in large networks containing a considerable amount of firewalls. The correctness of deployed Firewall policies determines their effectiveness and has a significant impact on their efficiency. Any issues brought forth by misconfigurations between filtering rules directly translates into security or connectivity problems. Nonetheless, filtering is not limited to Firewalls, but is common in network equipment, namely routers and Layer 3 (L3) switches. Therefore we must also consider the impact of misconfigurations in the filtering rules of these equipments. Unfortunately, configuration problems may also occur between the rules of different devices placed along a network path, even though each network element seems to be configured correctly. Consequently, routing plays a central role in this analysis. Several vendors offer management solutions for groups of Firewalls. However, these specialized tools are typically aimed at managing the products of each vendor and do not operate with equipment from other vendors. Examples are Cisco s Management Center for Firewalls [11] and Check Point s Security Management Architecture [7]. Interoperability is vital nowadays, as equipment diversity is an inescapable reality, especially in environments with a fast change pace driven by frequent organizational changes. In this work, we consider a case of a large network with a complex topology. Changes are frequent in this scenario, causing the existing network diagrams to be outdated quickly. Furthermore, due to its scale, diversity of equipment and services, different sections of the network are managed by different organizational units, with their own staff and specific goals. Hence, managing a global security policy can become a daunting task, without appropriate tools. The act of deploying a new application in such an environment and configuring its accesses is a complex task. Given the large number of devices and possible interactions between them, determining all necessary actions required is an expensive undertaking. One of the major problems is the detection of misconfigurations on deployed Firewall rules considering changes in routing as well. Results obtained from this work allow us to improve the current state of network security. Another key issue is the lack of updated information on the network topology and its complexity. This complexity has a direct impact on the network s manageability and consequently on its management costs; naturally, its performance is affected and the potential problems also increase. 1
10 We address these issues by defining a model for detecting network security and connectivity issues caused by rule misconfigurations. We use device configuration and dynamic routing information to perform the analysis. We ensure that the results obtained are in accordance with the actual state of the network. We develop an application, Prometheus, which implements this model. Prometheus builds a view of the network topology based on actual configuration and routing information. It performs a static analysis of the rules set on network devices, and produces reports of detected problems. Besides the reports, it suggests corrective actions for the detected problems. It also allows us to predict the necessary changes in configurations required whenever a new application is deployed. 1.2 Contributions Our contributions are as follows: We include routing information in the model, allowing automatic discovery of possible routes and detection of misconfigurations according to these routes. The routing information is directly obtained from the equipment s routing tables. We can accurately detect connectivity and security issues that stem from the routing policies in place, and also have a realistic view of the routing state of the network. We deploy our system in a production network of a large European telecommunications provider. The network includes a total of 30 nodes (including Layer 3 switches, routers and firewalls from different vendors), with more than 350 rule sets and close to 12,000 ACL rules. We suggest a course of action for each detected misconfiguration, based on the data obtained from the static analysis performed over the filtering rules. We trace the source of a failure: automatically determine which rule(s) causes the misconfiguration. For example: by pinpointing the origin of the misconfiguration, it is easier to automatically suggest a course of action for its correction. We offer a mechanism for testing a flow in order to determine whether it is able to cross the network, where it fails and why. We also generate an accurate diagram of the network topology and provide the ability to quickly calculate and visualize real possible routes across the network. These features, more practical and operational in nature, are very effective according to the network operators in the field. 1.3 Related Work Numerous works discuss the impact of the chaining of Access Control List (ACL) rules along a path [20] [3] [2] [4] [16]. They either assume that routing is known and predictable [20] [3], or define zones to simplify the handling of routing [2] [4] [16]. In Prometheus, actual routing information is used to detect misconfigurations over network paths, making our model more realistic. To our knowledge, ours is the first work to use actual routing information for the detection of ACL misconfigurations in network equipment. 2
11 The work developed by Yuan et al. in FIREMAN [20] forms a basis for our work. Their work successfully performs misconfiguration detection using Binary Decision Diagrams (BDDs) [5] over the rules of isolated ACLs and over route paths. We provide a method to determine which rules trigger actual misconfigurations. The testbed presented in their work is small and a limited number of results is obtained. We use a larger testbed, with more nodes and many more rules, allowing us to perform a more exhaustive analysis. The system in [2] includes support for other types of equipments such as Network Intrusion Detection Systems. However, there is a significant difference in the approach to handle misconfigurations: in [2] (and also [4]) all rules in an ACL which present misconfigurations are rewritten, producing a new set of rules for the correct ACL. This is a sound approach but has two relevant practical issues: by rewriting the rules, the flow logic of the ACL is lost and the network operator may not be able to interpret the new rules; this may also cause intentional configuration by the operator, such as including some correlations deliberately, to be ignored and simply discarded as mistakes. Another possibly serious issue is related to the trust that these systems make a correct decision. Consider the case of an accept rule masking a deny rule, rendering it ineffective. An automatic correction of such a problem either removes the masked rule or alters the masking rule. In the former case, a security violation ensues if the masked rule is the correct one, while in the latter a connectivity problem occurs if the masking rule is correct. Lacking a complete knowledge of the security policy, it is impossible to determine the intention behind each rule. Thus, by accepting these changes to the rules, we could perpetuate a misconfiguration, if the incorrect change is performed. This is a possibility when a long list of warnings is detected and presented. An operator may be tempted to accept all proposed corrections, trusting the application s decision. In our work we provide a set of suggestions, checked for validity, while warning IT personnel about the advantages and disadvantages of each choice, and leave the decision up to them. The work in [2] detects a type of anomaly called Irrelevance, which [3] defines, where a rule is irrelevant if it does not match any of the traffic that might flow through a firewall. It is possible to detect this misconfiguration, because they assume full knowledge of routing. However in our work, we deal with real routing information and it could be dangerous to consider rules as irrelevant, as they may actually be relevant to a routing view of the network which is different from the current one. FIRMATO [4] has the same objectives but uses a different approach by testing possibilities of traffic instead of performing static analysis of the rules. FIRMATO [4] needs to test all possible packets, which is not practical. Nonetheless, nowadays there is a product [1] in the market, which is a descendant of FIRMATO [4] and FANG [16], which reportedly performs well. However it is impossible to determine, from the given information, how it works and if it still retains the same characteristics as intended. 3
12 1.4 Document Structure The remainder of this paper is as follows: in Section 2 we describe the network model used in this work; in Section 3 we list the rules and algorithms for detecting misconfigurations and performing route discovery; Section 4 contains details about the actual implementation of Prometheus; in Section 5, the results are evaluated and Section 6 includes a discussion on those results and presents future directions for our work; finally, Section 7 concludes. 4
13 2 Model Our model is generic enough to embrace diverse equipment configurations. The filtering is not only limited to Firewalls, but is also performed in other devices. Each different type of equipment has a specific approach to describe and implement filtering rules. Firewalls typically have a list of rules that define its policy, which are applied to traffic coming from any source and going to any destination. Routers and switches usually depend on ACLs which are also lists of rules but are applied to specific interfaces and directions (ingress or egress traffic). In this model, rules are included in ACLs, which are assigned to interfaces and directions. In the case of Firewalls with a single list, it is assumed that the list is assigned to all interfaces on all directions. The network model is composed of nodes that represent a router, a L3 switch or a firewall as shown in Figure 1.. Nodes are interconnected through interfaces, according to the network topology. Each node has a routing table, a Network Address Translation (NAT) table, and one or more interfaces. Interfaces are assigned a neighbor node, an IP address and at most two ACLs, one for inbound traffic in that interface, and one for outbound traffic. Neighbor Node Interface Interface ACL IP Address Input Output Rules Rules Node Routing Table NAT Table Routes NAT Rules Type Figure 1 - Model Hierarchy The different components obey the following rules: Node: A node of the network. Each node contains four elements: o Interface Network interfaces. A node has at least two interfaces. o Routing Table Route information for this node. o NAT Table NAT information for this node. o Type Type of the node (i.e.( a router, a L3 switch, or a firewall). Interface: A node s interface. The information contained in interfaces is the following: o Neighbor Node The node this interface is connected to. 5
14 o ACL This interface s ACLs; there may be at most two for each interface, one for input and one for output. Each ACL is composed of a chain of consecutive filtering rules: each rule is checked in the order it appears in the chain, and only the first matching rule is executed. Table 1 describes the rule components and their valid values. Field Description Valid Values Source IP Set Source IP Address set that this rule should match Destination IP Set Destination IP Address set that this rule should match Source Port Set Source ports this rule should match Destination Port Set Destination ports this rule should match Protocol Protocol of the traffic this rule should match Table 1 - ACL rule components Valid IP Address(es) Valid IP Address(es) Valid port number(s) Valid port number(s) Valid protocol number(s) o IP Address This interface s IP Address. An interface may not have one. Routing Table: The routing information of this node consists of at least one route. Rule components are described in Table 2. Field Description Valid Values Destination Network IP Address of the destination Valid IP Address Address network Destination Network Mask of the destination network Valid IP Mask Mask Next Hop IP Address IP Address of the next hop node Valid IP Address Interface Name of the interface this route belongs to Table 2 - Routing rule components Interface Name (may be Any) NAT Table: The NAT information of this node. A node may not have NAT rules. Rule components are described in Table 3. 6
15 Field Description Valid Values Input Interface Source IP Address set that this Input Interface Name rule should match (may be Any) Output Interface Destination IP Address set that Output Interface Name this rule should match (may be Any) Source Address Source address(es) this rule Valid IP Address(es) should match (may be Any) Destination Address Destination address(es) this rule Valid IP Address(es) should match (may be Any) Service Service(s) this rule should match Valid port number(s) (may be Any) Mapped Source Address(es) to map the source Valid IP Address(es) Address address(es) to (may be Any) Mapped Destination Address(es) to map the Valid IP Address(es) Address destination address(es) to (may be Any) Mapped Service Service(s) to map the service(s) Valid port number(s) to (may be Any) Table 3 - NAT rule components Type: The node s type distinguishes the device type of a node. A node may be a router, a L3 switch or a Firewall. 7
16 3 Detecting Misconfigurations 3.1 Misconfiguration Categories We consider three categories of misconfigurations: Policy Violations, Inconsistencies, and Inefficiencies. Policies are usually described by whitelists and blacklists or another set of high level rules. The process of detecting policy violations consists in checking if these pre-defined policies are followed. Inconsistencies are good indicators of misconfiguration, as they stem from a defined set of rules that determine the security policy, which requires consistency to be effective [20]. We consider they manifest themselves at two different levels: Intra-ACL and Inter-ACL. Intra-ACL Inconsistencies occur between the rules of a specific ACL and are only relative to the content and order of those rules. Inter-ACL inconsistencies occur between the rules of different ACLs, which may even belong to the same node. Intra-ACL Inconsistencies arise when some rules totally or partially mask others and can be of the following types: Shadowing, Generalization and Correlation. Shadowing might mean an error in rule ordering, whereas a Generalization and a Correlation are more likely to be benign and intentional. Intra-ACL Inefficiencies may be Redundancies or Verbosities. The characteristics that define these types of misconfigurations are presented in Section FIREMAN [20] defines another type of inconsistency, a Cross-Path inconsistency, which occurs when packets that are expected to travel the network through one path are actually diverted through another path. This causes the rules that block or accept these packets to be ineffective, resulting in a security issue (if packets supposed to be rejected are accepted) or a connection issue (if packets supposed to be accepted are rejected). It is possible to detect these inconsistencies by checking different paths in the network. In our case, we use the actual network routes taken at a certain point in time, reflecting the behavior of the network at that point, so this type of analysis is performed by determining a set of possible paths at a moment and analyzing those paths. We can include more routes as we want to test different scenarios Intra-ACL Misconfigurations Shadowing (Figure 2): when the rule currently being analyzed defines an action for a set of packets that are assigned the opposite action by a previous rule or set of rules. We consider this an error because the shadowed rule is never activated, which means that one of the rules is incorrect, since they have conflicting purposes. In Figure 2 we can see an example of Shadowing: a deny rule is shadowed by an accept rule. In this and the remaining figures in this section, the arrow represents the input traffic entering an ACL and each circle represents a set of packets that are either accepted or denied. When there is an intersection, it is marked with a shadow and dashed lines to define the limits of that intersection. 8
17 Figure 2 Shadowing Generalization (Figure 3): when a portion of the packets that the current rule applies to are matched by one or more previous rules, but with a different action. Figure 3 Generalization Correlation (Figure 4): when the set of packets defined by the current rule intersects with that of previous rules, but specifies a different action. Although they intersect, one of the sets is not a superset of the other. 9
18 Key: Accept Rule Deny Rule Input Traffic Figure 4 Correlation Generalizations and Correlations may not be configuration errors, but intentionally done to exclude a small portion of a set from an action, improving the performance of the filtering process. An example of how this results in better performance is shown on Table 4. Rule 1 defines an action for a subset of the packets defined in Rule 2. Not using Rule 1 means that a lot more rules have to be used to define the set of Rule 2 without the node of Rule 2. Hence, these inconsistencies should be marked as warnings and left for the security principal to decide what the best course of action is. Source Address Source Ports Destination Address Destination Ports Protocol Action /32 Any /32 Any TCP Accept /16 Any /16 Any TCP Deny Table 4 - Example ACL The consequences of one of these misconfigurations depend on whether the masked rule is an accept or deny rule. If the masked rule masked is a deny rule, this could be a serious security issue, because some or all of the traffic that the rules should reject is actually allowed to enter the network; if the masked rule is an accept rule, then this masking is likely to cause a connectivity issue, as some or all of traffic that should be allowed to enter the network is rejected Inter-ACL Misconfigurations Different ACLs can be placed at distinct security levels: a specific ACL may belong to the inside of a network where the level of security is higher and the rules are tighter, while another may belong to the outside of that network, where security is less of an issue. For this reason, a Generalization inconsistency among the ACLs of a path flowing from the outside of the network to the inside is the result of an increased security level and not an error. In this scenario, the only actual inconsistency that can be an error is Shadowing: if a rule shadows another along the currently existing set of paths, this most likely reflects as a connectivity problem. This is different 10
19 from what happens in [20] where it is considered that the traffic is shadowed only if the shadowing occurs on every path, because the distributed check performed considers the impact of all possible incoming routes to an ACL. In our case we determine the case of a set of paths, which may not represent all of the possible ones, but the most likely ones, given the current routing information of the network. There can be a case of a legitimate rule for a specific path being considered as shadowed given the current routing state. But in this case, there is in fact an issue: not with the rule, but the path, which does not exist in the current routing state. However, this type of false positive does not occur in our evaluation of the production network Rule Definition As defined, ACLs are assigned to specific interfaces and to a specific direction: input or output. Input ACLs are the ones that control the ingress of traffic into an interface, and output ACLs control the egress of traffic. Traffic may also be subject to address translation, which maps addresses or ports into different ones. NAT rules are applied after ingress traffic is filtered by input ACLs and before egress traffic is checked by output ACLs. Each rule is composed of the following elements: Source Address (SrcAddr): The source IP addresses Destination Address (DstAddr): The destination IP Addresses Source Ports (SrcPts): The source service ports Destination Ports (DstPts): The destination service ports Protocol (Proto): The protocols this rule corresponds to Each element is represented by one or more variables with specific domains (Section 4.3.1) and a rule is represented by the AND of all these variables: Thus, a rule represents the set of packets accepted or rejected by it, depending on whether it is an accept rule or a deny rule. 3.2 ACL Analysis for Misconfiguration Detection This section describes the procedure for parsing and detecting misconfigurations. The parsing procedure consists of two steps. The first step has the purpose of normalizing configuration files into XML files with a known syntax. These are then parsed, and the configuration information is stored in the database. For the first step we use Nipper [19], a tool that performs a simple security audit of equipment configuration files and generates reports that include the configuration information. The use of this tool enables us to parse configurations from 11 different vendors and multiple versions of each of those vendors software. The XML files obtained are then parsed and the data is loaded into the database. To perform our analysis, we need to keep a few sets with rule information. The ones we use are similar to those used in [20], and we describe them below. The notation used is as follows: 11
20 represents the input set to an ACL; represents the set of packets which are accepted so far; represents the set of packets which are rejected so far; represents the set of packets that reach the current rule, i.e., the traffic that is rejected or accepted by previous rules. Formally, at rule i is defined as follows: Ÿ In the beginning of the process we have that and. After each rule is processed, the set is adjusted as previously defined and each set ( and ) is also adjusted, by the following operations: If is an Accept Rule: If is a Deny Rule: The resulting at the end of the check of an ACL represents the input set to the next ACL when checking for Inter-ACL misconfigurations. However, there may be changes in the rules after the ACL is applied. More specifically, if NAT is used and the ACL is an input ACL, the source addresses of the rules may change according to existing NAT rules. Due to this fact, another set is kept, which reflects the result of applying the NAT rules to the rules, the. This is the one used as for other ACLs, in case NAT rules exist. This is one of the important differences between our work and [20], which does not consider the impact of NAT in the flow of traffic between firewalls. This is created during the rule checking stage, similarly to, but replacing the rule elements (source address, destination address or service) for the ones in the NAT table. So, for a given rule, its corresponding NAT rule is: And is defined as: If is an Accept Rule that has a corresponding NAT rule, then: Notice that if the element in the NAT table is Any, it is not replaced, as it matches any situation, and instead of using the NAT table element for NAT rules, we use the regular element. Take the example in Table 5 and Table 6. The rule table indicates that the source address of any packet with a source of in any source port and any destination address, destination port or protocol, is converted to the address The result of this translation is displayed in Table 6. 12
21 Src Src Ports Dst Dst Ports Proto NAT Src NAT Src Ports NAT Dst NAT Dst Ports Any Any Any Any Any Any Any Any Table 5 - NAT Rule Table NAT Proto Source Address Source Ports Destination Address Destination Ports Protocol Action Before NAT Any /24 Any TCP Accept After NAT Any /24 Any TCP Accept Table 6 - Effect of NAT Intra-ACL Checking To detect misconfigurations in the filtering rules of an ACL, we use the checking rules defined in [20]. These checking rules are similar for Accept and Deny ACL rules, only the sets checked are different. We detail these rules in Table 7 and Table 8. 13
22 Accept Rules Õ This rule is an Accept rule and the traffic it represents is denied before, neither totally or partially. Masked Rule and Õ Masked Rule and Masked Rule and none of the above And Partially Masked Rule and Partially Masked Rule and Õ, and is a deny rule Partially Masked Rule and and Õ, and is an accept rule This rule is masked, which means it is shadowed, redundant or correlated with a previous rule. If this happens, we test to see which of those cases this is. A masked rule represents an error. Shadowing occurs. This rule is shadowed by at least one previous rule. This represents an error, and we need to determine which rule(s) are causing it. This rule is redundant. All the packets it represents are accepted by previous rules, making this one pointless. The rule has some redundancy and is otherwise correlated to others before it, which means that part of the packets this rule defines are accepted and others rejected by previous rules. The rule is considered redundant as it does not match any packets, but the reasons may vary. This rule is partially masked. This is an error or a warning, depending on the type of masking. Correlation: Part of the packets matched by this rule is rejected by previous rules. This is a warning, as it might be intentionally configured this way by a security officer. Generalization: This rule is a generalization of a previous one. It accepts a set of packets that contain a smaller set which is rejected by previous rules. This is a warning as it might be intentional. In FIREMAN [20] checking for this case means iterating over all previous Deny rules, as the ones that matched are unknown. In our case, it suffices to check only the rules that matched the Partially Masked Rule definition. These rules are found with. stores the rule number of each rule in. The details on numbered sets can be found in Section Redundancy: if is removed, all packets are still accepted, as they match the current rule. This is considered an error in. Table 7 - Accept Rules for Intra-ACL Checking 14
23 Deny Rules Õ This rule is a Deny rule and the traffic it represents is denied before, neither totally or partially. Masked Rule and Õ Masked Rule and Masked Rule and none of the above And Partially Masked Rule and Partially Masked Rule and Õ, and is an accept rule Partially Masked Rule and and Õ, and is a deny rule This rule is masked, which means it is shadowed, redundant or correlated with a previous rule. If this happens, we test to see which of those cases this is. A masked rule represents an error. Shadowing occurs. This rule is shadowed by at least one previous rule. This represents an error, and we need to determine which rule(s) are causing it. This rule is redundant. All the packets it represents are rejected by previous rules, making this one pointless. The rule has some redundancy and is otherwise correlated to others before it, which means that part of the packets this rule defines are accepted and others rejected by previous rules. The rule is considered redundant as it does not match any packets, but the reasons may vary. This rule is partially masked. This is an error or a warning, depending on the type of masking. Correlation: Part of the packets matched by this rule is accepted by previous rules. This is a warning, as it might be intentionally configured this way by a security officer. Generalization: This rule is a generalization of a previous one. It rejects a set of packets that contain a smaller set which is accepted by previous rules. This is a warning as it might be intentional. In FIREMAN [20] checking for this case means iterating over all previous Deny rules, as the ones that matched are unknown. In our case, it suffices to check only the rules that matched the Partially Masked Rule definition. These rules are found with. stores the rule number of each rule in. The details on numbered sets can be found in Section Redundancy: if is removed, all packets are still rejected, as they match the current rule. This is considered an error in. Table 8 - Deny Rules for Intra-ACL Checking 15
24 3.2.2 Inter-ACL Checking In this section we consider that is equivalent to the packets that are allowed to reach this ACL. Hence, it coincides with the of the previous ACL on the path, or the in case NAT is used. The checks are as follows: Accept Rules Õ Traffic is not blocked by previous rules and is allowed to reach this specific ACL. Shadowing: This rule is shadowed by previous rules, so the traffic it matches does not occur on this path. Table 9 - Accept Rules for Inter-ACL Checking Deny Rules Õ The security level increases, given that packets previously accepted are now rejected. This is most likely a matter of policy, and not a misconfiguration per se. Redundancy: The traffic this rule blocks is rejected by previous rules. However, this may not be an error, and may be intentional: for example, two consecutive ACLs in different devices may block the same set of packets for an added level of security. Table 10 - Deny Rules for Inter-ACL Checking Identifying the Source of a Misconfiguration One of the contributions of our work is the ability to determine which rule(s) cause a misconfiguration we detect by the defined rules. To determine which rule affects the current one, we use a new set. This new set is created by adding an element to the set that represents a rule; this new element represents the rule s place in the ACL: the rule number. Similarly, to determine which router a given rule belongs to (allowing us to trace the source of a problem when checking for Inter-ACL misconfiguration problems), we use yet another set with the router ID: During the execution of the detection algorithm, three sets of rules are maintained: one with rule numbers (Numbered), one with the router ID (Labeled) and one without these rule numbers (Regular). We use the latter in the misconfiguration detection procedure, while the other two we use only to determine which rule(s) cause a misconfiguration and which router the rule(s) belong(s) to, if one is detected. The procedure for detecting misconfigurations consists in testing the current rule for problems, and include it in the sets previously mentioned by performing an OR operation: 16
25 If a misconfiguration is found when a rule is checked, it means that some previous rule(s) match the current rule. An AND operation is performed between the Numbered set and the current unnumbered rule, Rule i. The result of this operation is a new set where the variables corresponding to the rule number are filled with the values of the matching rules. Example: Rule Rule Number : Table 11 - Example Rules : So, Rule 3 is matched by Rule 1 and Rule The same procedure determines the ID of a router, using the Labeled set instead of the Numbered set, when checking for Inter-ACL misconfigurations Detecting Flow Connectivity Issues A practical issue in real networks is the difficulty to determine which equipments need to be configured with which rules, in order to accommodate a new application. This issue stems from the complexity of these environments, with several locations separated by long distances and where traffic needs to cross several devices to reach a destination. In these cases, there may be unforeseen issues that might cause connectivity to fail. In this section we describe one of the features incorporated in this work: the detection of these connectivity issues by testing a given flow. The checking rules are defined in Table 12. is the flow being tested and represents the traffic allowed to go through the current ACL. 17
26 Flow Checking Õ The flow is allowed to pass. No connectivity issue. Shadowing: This flow is shadowed by rules in the current ACL, so it never goes through this path. Correlation: This flow is partially masked by some rule(s) in And the current ACL, so there are connectivity issues. Table 12 - Flow checking rules In case Shadowing or Correlation occurs we can pinpoint the rules and ACLs that mask the flow by using a numbered set of, similarly to how we detect the source of a misconfiguration, as described in section Detection Algorithms In this section we look at the actual algorithms used to perform the misconfiguration detection Intra-ACL algorithm Algorithm 1 performs Intra-ACL misconfiguration detection on the rules of an ACL. 18
27 Function detect_intra_acl_misconfigurations (Rules, NRules) // Rules Rules of the ACL being checked // NRules NAT rules of the node being checked Begin Declare variable: input_traffic = W; // W: all possible traffic Declare variable: accept_rules = «; // «: empty set Declare variable: deny_rules = «; For each r in Rules Do nr = find_nat_for_rule(nrules,r); If r is an accept rule check_accept_misconfigurations(r); accept_rules = accept_rules ( nr Else check_deny_misconfigurations(r); deny_rules = deny_rules ( nr input_traffic = input_traffic r; Done; (nat_accept_rules,nat_deny_rules) = perform_nat(accept_rules,deny_rules); record_resulting_sets_in_database(accept_rules,deny_rules, nat_accept_rules,nat_deny_rules); End; Algorithm 1 - detect_ intra _acl_misconfigurations There are two important details in this algorithm: first, the value for the input traffic to the ACL is always considered to be W, the full range of traffic possible (all source addresses, to all destination addresses, on all source ports, etc.); second, the resulting sets are recorded in the database, both regular sets and those with the NAT performed. This is important for performing Inter-ACL detection, so we do not have to re-check all rules. NAT is performed after checking ACLs, so, our data must reflect this. We use other sets to help determine misconfiguration origin rule numbers, but omit them here for clarity. The functions check_accept_misconfigurations and check_deny_misconfigurations perform the checks mentioned in Section Inter-ACL algorithm Algorithm 2 performs the Inter-ACL misconfiguration detection. This algorithm is designed to be as fast as possible, skipping Intra-ACL checks as much as possible. It uses data obtained from previous executions of the Intra-ACL algorithm, if it exists and there are no misconfigurations detected. Thus, the algorithm is faster when all ACLs in the route we are testing are previously checked and no misconfigurations exist. 19
28 Function detect_inter_acl_misconfigurations (Route, Input) // Route The ACLs along the route // Input Input set for the detection Begin Src = pop_head(route); current_set = get_set_representing_acl (Src); If current_set not found rules = get_rules_of_acl(src); nrules = get_nat_rules_of_node_with_acl(src); detect_intra_acl_misconfigurations(rules,nrules); current_set = get_set_representing_acl (Src); Else if current_set has misconfigurations check_rule_misconfigurations(input,src); Else check_set_misconfigurations(input,current_set); End if; Input = Input current_set; If Route is empty Return Input; Else Return detect_inter_acl_misconfigurations(route, Input); End if; End; Algorithm 2 - detect_inter_acl_misconfigurations Function get_set_representing_acl obtains the result from an Intra-ACL check of the given ACL from the database, if it exists. The check_rule_misconfigurations function uses the rules for an Inter-ACL check procedure, but iterates over each rule, because the ACL being checked has misconfigurations and it is impossible to ensure that the result set is a valid one otherwise. For example, if an accept rule is shadowed by a deny rule inside an ACL, traffic that should be allowed through it is blocked and does not reach the next ACL. The check_set_misconfigurations uses the results of an Intra-ACL misconfiguration detection procedure to perform the verifications defined in Table 9 and Table 10. In the beginning, the algorithm is called with an Input set of W, as in the case of Intra-ACL detection. A similar algorithm is used to perform flow checking (Section 3.2.4), however the initial input is the flow to be tested, and instead of checking the set for misconfigurations, the flow is checked using the rules described in Table
29 3.3.3 Route Discovery Algorithm Route discovery in a network can be performed in several ways. One way is through the discovery of paths in a graph that represents the network, using one of the several algorithms available. These paths however, may not be consistent with real routes, as they show the possible ones, without the use of any data from the network itself apart from adjacency information. Another way is to use the equipment s configuration information to determine its behavior according to the different protocols configured in it. This is extremely complex, as it requires the full emulation of the logic of all devices in the network, and computationally expensive as there are too many possible states to account for, making it unfeasible. Yet another way is to use dynamic routing information, obtained from the routing tables of devices. A snapshot of the current routing state is taken at a certain point in time, and that information is then used to discover the possible routes through the network. The snapshot reflects the routing state at the time it is taken, but it can be updated regularly and new routes discovered. We use the last approach. The procedure to determine the set of routes in the network from a source node S to a destination address D, is described in Algorithm 3. Declare Global Array: Routes Function find_route(n,d,r) // N Current node // D Destination address // R Route so far Begin Add N to R; If N = D Add R to Routes; Return; End if; If # elements R > max_depth Return; End if; next_hops = get_next_hops(d); For each nh in next_hops Do find_route(next_hop,d,r); Done; End; Algorithm 3 - find_route The algorithm implements a special case of Depth-First Search (DFS), called Depth-Limited Search (DLS). DLS is an uninformed search algorithm that works exactly like DFS, except that it 21
30 limits the depth of the search. This enables it to find a solution, if one exists within its defined depth limit. The time complexity of DLS is the same as DFS: O(b d ) where b is the branching factor of the graph and d is the depth of the graph. In our case, since we use routing information, our branching factor is limited to the number of routes that exist for a given destination and the depth is limited to a value we define. The space complexity is also the same as DFS, O(h) where h is the length of the longest path possible, which is limited to the depth we define for the search. For the maximum depth, we select the value 30, taking into account the analysis in [17], where the mean path length is 15.9 hops for the Internet. Only one hop is found that went beyond 30 hops, so we consider this value to be sufficient for using inside corporate networks. Using routing information and limiting the depth of the search improves the performance of this algorithm, since it precludes the need for an exhaustive search over the whole network graph. We further enhance this performance by stopping the algorithm when a specified number of routes is obtained, thus limiting the search time and the route options. This is important, as there may be a large number of valid routes. However knowing all possible routes may not be relevant, because routes discovered last are less likely to be used than the ones first discovered. The first routes discovered correspond to the first rows of the routing tables, which are chosen unless some change occurs in a node. To account for some changes, we include a finite number of possible routes between two points. As a result of executing the algorithm above, we obtain a set of routes describing the source node, the destination address and the hops the routes flow through. 3.4 Group Detection Algorithms The algorithms for route discovery and Inter-ACL detection are now used to implement a wider discovery of routes and detection process. In the case of route discovery it suffices to use the find_route algorithm to perform a wider search. In the case of Inter-ACL detection, the algorithm needs to be modified for better performance, given that a large number of checks have to be performed. Since these verifications are repeated several times, the process can be optimized Discovering the route set of a group of nodes Using the find_route algorithm as a stepping stone, we obtain the set of most likely routes of a group of nodes in the network (or even all of them), according to the current routing information. Algorithm 4 obtains all valid addresses associated with all interfaces of all the nodes in a given list, and finds routes from every other node in the list to those addresses. 22
31 Function find_node_group_route_set(nodes) // Nodes Node list Begin For each s in Nodes Do Declare Array: R; For each d in Nodes Do addrs = get_interface_addresses(d); For each da in addrs Do find_route(s,da,r); Done; Done; Done; End; Algorithm 4 - find_node_group_route_set One interesting aspect we use to optimize the detection process is that this algorithm typically yields a set of routes with many of them repeated between two nodes. We record an overlapping path segment (OPS), which is a route segment between the egress interface of the source node and the ingress of the destination node. In Figure 5 we see a case where there are two OPSs between the source (S Node ) and Destination (D Node ) nodes. The actual number of possible routes from S Node to the destination addresses (D) is 2 3 = 6. Overlapping path segments are stored only once and can be referenced as needed in the future. With this route information, we are now able to perform a complete check for misconfigurations between the ACLs of these nodes. Figure 5 - Overlapping path segments Detection over a set of routes Without any optimization, performing misconfiguration detection over a set of routes may take a long time, depending on the size of the routes, the size of the ACLs and the number of routes to be checked. As we can see from Figure 5, the number of routes is dependent on the number of destinations tested. However, misconfiguration detection performed from the perspective 23
32 presented in Figure 5, does not provide complete results. Besides testing for all possible destinations, it is necessary to test for all possible sources, as shown in Figure 6. The number of necessary checks is now = 18. Figure 6 - Full Route Set However, using the OPSs, we can reduce the amount of necessary checking steps. Each detection procedure consists in checking each ACL along the path using the traffic that arrives from the previous one. We first execute this procedure on the ACLs along the identified OPSs and store the results. These results can now be used every time this OPS appears in the path. This reduces the number of times the detection procedure is executed to one per each OPS, instead of one per ACL along the OPS. In the example in Figure 6, there are 18 paths from all source nodes, to all destination nodes. For each source-destination n pair there are two possible routes, each with 4 hops. If we assume that each hop has an ACL in the ingress and egress interfaces, it means that for each path we need to perform the misconfiguration detection 8 times. Using an OPS this number is reduced to 3 times per path: entering the S Node, checking the OPS and exiting the DNode. In fact, it is possible to reduce the number of required checks even more. If we consider that for a source-destination pair, the last section of the path (from D Node to D on Figure 6) is also repeated for every source we are testing, we also store this information the first time we perform misconfiguration detection on this path. These improvements enable a large number of checks to be performed over a short period of time. Algorithm 5 performs misconfiguration detection over a set of routes using these improvements. The get_set_representing_ops function obtains a pre-recorded recorded set representing the traffic going through the OPS of the route it takes as an argument. If the set does not exist, it is calculated at that time. This procedure increases space requirements to reduce the time required to perform the detection algorithm over a large number of paths. 24
33 Function detect_node_group_inter_acl_misconfigurations(route,s) // Route List of ACLs along the route // S Input ACLs of first hop in route Begin ops_set = get_set_representing_ops(route); If ops_set not found ouput_set = detect_inter_acl_misconfigurations(route, true); Else ouput_set = check_set_misconfigurations (true, ops_set); last_hop = tail(route); ouput_set = detect_inter_acl_misconfigurations(last_hop, Input); End if; For each ACL in S Do ACL_set = get_set_representing_acl (ACL); input_set = check_set_misconfigurations(true, ACL_set); check_set_misconfigurations (input_set, ouput_set); Done; End; Algorithm 5 - detect_node_group_inter_acl_misconfigurations 3.5 Suggesting Solutions Suggesting solutions for detected misconfigurations is not a simple task and must be carried out with caution to avoid causing further configuration problems. We offer a set of suggestions, and inform about the advantages and disadvantages of each suggestion, leaving the decision up to the operator. We check the suggested actions to determine if the choices presented do not cause other misconfigurations Solutions for Intra-ACL misconfigurations Intra-ACL misconfigurations can cause security or connectivity issues and also have a negative impact on the performance of the device they appear on. Security issues occur when a deny rule is masked (Shadowing, Generalization or Correlation) by an accept rule. In this scenario, traffic that is supposed to be rejected may actually be accepted. This may or may not be a mistake, as there are situations of valid use, as discussed in Section 3.1. Connectivity issues appear when an accept rule is masked by a deny rule. Again this may be intentional and valid. Inefficiencies in rule processing are caused by redundancies. With this in mind, we categorize the possible choices for each of these cases in Table 13 (N/A Not Allowed). 25
34 Misconfiguration Error in Masked Rule Error in Masking Rule Valid Use Type Shadowing Remove masked rule Modify masking rule or Temporary rules move masked rule to before masking rule; Generalization Modify masked rule, if simple Remove masking rule Verify policy to confirm rules Correlation Redundancy Modify masked rule, if simple Modify masking rule, if simple; else, move masking rule to below masked rule. Remove the masked rule Remove the masked N/A rule Table 13 Possible Solutions for Intra-ACL Misconfigurations Verify policy to confirm rules The example in Table 14 shows a correlation with a possible security violation, for which we suggest the following course of action: 1. Verify the policy to make sure what is the actual policy intended 2. According to the policy make one of the following changes: a. If rule 1 is correct, modify rule 2 if the change is a simple operation. b. If rule 2 is correct: i. Modify rule 1 to remove the set that conflicts with rule 2, if the change is a simple operation ii. Move rule 2 to before rule 1. Rule # Source Address Source Ports Destination Address Destination Ports Protocol Action /24 Any /24 Any TCP Accept /32; Any /24 Any TCP Deny /32 Table 14 - Example ACL with Correlation If the option of moving the second rule to before the first one is chosen, it generates a valid use situation for a Generalization misconfiguration, which is acceptable. By looking at the rules it is clear that option 2.b.i is not as simple as the other option, as it requires defining a set of rules that includes all addresses in the /24 subnet, except for address /32. The act of removing a rule might cause the result of the misconfiguration detection algorithm to change in unforeseen ways. To account for this, after determining the possible courses of action, a second verification is carried out including the changes suggested, to determine if other misconfigurations have surfaced. If any change causes further misconfigurations (except redundancies), then those changes are still included in the suggestions, but a more detailed report is provided, explaining that these changes may cause further problems and suggesting 26
35 the manual verification of the impacted rules. This prevents a case where the suggestions cause security or connectivity issues, changing the intended security policy Solutions for Inter-ACL misconfigurations In the case of Inter-ACL misconfigurations it is not as simple to determine the impact of solutions for existing errors as there may be different paths affected by some rule. This solution implies re-checking all paths. In this case, the most relevant misconfiguration is Shadowing as it may cause connectivity issues. Redundancies may also occur, but these are more likely to be correct, as it is a good security practice to include some basic checks in all ACLs (such as a default deny rule at the end of an ACL). Since these have no impact on connectivity and may actually be a consequence of a correct configuration, we concentrate only on shadowing. The possible suggestions are described in Table 15. Misconfiguration Type Shadowing Error in Masked Rule Error in Masking Rule Remove masked rule Modify masking rule or move masked rule to before masking rule Table 15 Possible Solutions for Inter-ACL Misconfigurations Valid Use N/A Suggesting these actions requires checking if the misconfiguration exists on all possible paths according to the ones determined by the current state of network routing. Given that we use real routing information, the existence of these misconfigurations translates into real connectivity problems. Using the example in Table 16, the suggestions are: 1. Verify the policy to make sure what the actual policy intends 2. According to the policy make one of the following changes: a. If rule 1 is correct, remove rule 2 b. If rule 2 is correct: i. Modify rule 1 to remove the set that conflicts with rule 2 ii. Move rule 2 to before rule 1. Node ID Source Address Source Ports Destination Address Destination Ports Protocol Action /16 Any /16 Any TCP Accept /32 Any /32 Any TCP Deny Table 16 - Example Distributed ACL with Shadowing 27
36 4 Prometheus Architecture A modular approach is used in the Prometheus architecture. We separate the tasks with higher complexity from those related to the user interface and configuration file parsing. This decoupling allows the separate deployment of all modules on machines with different resources, adapted to each module s demands. The diagram in Figure 7 depicts the modules of the Prometheus Architecture, which is detailed below. The Configuration Parser (Section 4.4) module is responsible for parsing the device configuration files and loading the model data into the database. The Application Server (Section 4.2) acts as an interface between the Prometheus Client (Section 4.1) and the Prometheus Daemon (Section 4.3), submitting jobs and collecting data from the database. The Prometheus Client is the user interface and gives users access to the functions of the architecture. The Prometheus Daemon performs the actual analysis of the model data, detecting misconfigurations, performing route discovery and loading the results into the database. Figure 7 - Architecture modules 4.1 Prometheus Client The client is a Java Application/Applet that provides the system s functionality to its users. The top level functions it provides include: 28
37 Section Functions Configuration Files Display File Information Display Configuration Data Network Nodes Display Information about the Nodes Create Virtual Nodes Network Diagram Visualization of the Network Topology Launch ACL checking processes (Inter/Intra-ACL) Launch Route Discovery processes Launch process to determine if a flow works between two points Results View ACL check results View Route discovery results View flow test results Statistics View different statistics over the data in the database and the results of different checks Table 17 - Interface functionality Most of these functions are actually executed by the Prometheus Daemon and the application server modules, allowing the client to be lightweight. The most complex work this module performs is displaying the network diagram, built from the model data it obtains through the application server. It also generates the charts used to visualize statistics and results, again with data it obtains through the application server. The client has a thread responsible for checking if jobs the user requests, and the application server submits, finish and what their status is in order to provide feedback to the user. 4.2 Application Server This component provides the interface between the client and the data. It is composed of several Java Servlets which perform the tasks the users request through the Prometheus Client. The Servlets only tasks include accepting client requests, accessing the database and returning data or replies to those requests. When a client requests an operation that involves more than collecting data from the database, such as an ACL check, the Servlets submit a job by creating an entry in a specific table in the database. The Prometheus Daemon routinely monitors those tables looking for jobs to execute. 4.3 Prometheus Daemon The Prometheus Daemon is the worker of the system. All major tasks are performed by this daemon and results uploaded to the database. The high-level workflow of this daemon is shown in Figure 8. 29
38 Figure 8 - Prometheus Daemon Workflow We now describe the different jobs handled by this daemon ACL Checking An ACL Checking job consists in performing misconfiguration detection on all ACLs of a given node (from the node s most recent configuration file). This is performed using the rules we define in section 3.2. The set operations are performed using Binary Decision Diagrams (BDD) as in [20]. When we finish a check the results are uploaded to the database. Similarly, the resulting, and BDDs are stored in the database to use when performing an Inter-ACL misconfiguration detection procedure. BDDs representing a rule are formed as defined in section 3.1.3: Each factor of the above formula is represented by one or more variables. Table 18 contains a description of each of the elements in a rule. 30
39 Element Type BDD variables Ranges Source Address IP Address Formed by 4 variables, each representing an Range octet of the IP Address range described Destination IP Address Formed by 4 variables, each representing an Address Range octet of the IP Address range described Source Ports Number 1 variable, representing the range of values Range Destination Number 1 variable, representing the range of values Ports Range Protocol Number 1 variable, representing the range of values Range Table 18 - BDD components of rules A rule is thus represented by a BDD with 11 variables, with different domains Route Discovery A Route Discovery job determines the routes between two points in the network defined by their IP address. The routes are determined using Algorithm 3, described in Section Inter-ACL Checking Inter-ACL checking consists in checking a path for misconfigurations using Algorithm 2, described in Section Flow Testing This task determines if a given flow is able to cross the network without being blocked by some ACL rule. A flow is defined by source and destination address sets as well as source and destination port sets and a protocol. The algorithm that we use is similar to Algorithm 2, and the input traffic for the algorithm is the flow we are testing, and not all possible traffic. 4.4 Configuration Parser As mentioned in section 3.2, we use Nipper for the initial parsing of configuration files. This allows us to support up to 11 different types of equipments for distinct vendors. After this initial parsing, we obtain XML files which are then easier to parse and the information uploaded into the database. Notice that Nipper does not include the whole configuration information in these XML files, as its purpose is to perform a security analysis on the configuration files. Regardless, it provides enough information to satisfy the requirements of our model. Dynamic routing information is not included in configuration files, and we obtain it by performing SNMP queries to the devices in question. We then parse the responses and fill the corresponding database tables with routing information. 31
40 5 Evaluation 5.1 Setup We use MySQL 5.0 and Tomcat 6.0 running on a Linux 2.6 system. The Prometheus Client is developed in Java, while the Prometheus Daemon is developed in C++, using BuDDY [15] to handle BDDs. The Prometheus Daemon has 5007 lines of code, and the application server side and Prometheus Client amount to 7812 lines of code. 5.2 Testbed The testbed is a section of the network of a large European telecommunications provider. The section contains a total of 30 nodes (including Layer 3 switches, routers and firewalls of different versions from different vendors), with more than 350 ACLs and close to 12,000 ACL rules. Equipment vendors include Cisco [10] (different versions of Cisco s IOS, PIX, FWSM and Catalyst software) and Check Point [6]. This testbed constitutes the network ecosystem of a given enterprise application, i.e., the network devices involved in the interactions that the application has with other applications, as well as with its clients. This means that the boundary of the network is not the same as the organizational boundaries, and that the network segments (and the devices included in them) are not managed by the same teams. There are two reasons for choosing the network from the application s point of view. On the one hand, the impact of network problems is visible on the applications that depend on the network. On the other hand, these applications have a significant impact on the network they depend on. They often demand that their traffic traverses networks, a fact that requires changing rules on several devices along the paths they use. Sometimes they also require that the network be shaped differently, so as to respond to their needs by creating specific routes, or even a new physical connection, changing network topology. This makes the scenario more complex, but also more realistic. Another important part of our work is the consolidation of information dispersed over several places, in order to obtain a consistent and faithful network diagram of this ecosystem. This task is not straightforward because there is more than one team involved in managing these networks, of different organizational structures. Also, the ecosystem is viewed from the point of view of the application and not the network, so the information that is required is scattered across several different network diagrams (sometimes with different levels of detail) and needs to be aggregated correctly. By aggregating these several documents, we produce a network diagram, containing the view of the network, in accordance with existing configuration and routing information. 5.3 Results We conduct several tests on our testbed and present the results in this section. All the nodes are production nodes with an active role in the network. 32
41 We perform an Intra-ACL misconfiguration check on all ACLs of all nodes. Table 19 presents the misconfigurations detected in these nodes (only nodes with misconfigurations detected are presented). As defined in Section 3.1, the Inconsistencies are Shadowing (S), Generalizations (G) or Correlations (C) and the Inefficiencies are either Redundancies (R) or Verbosities (V). Node # of ACLs # of Rules Inconsistencies Inefficiencies S G C R V A B C D E F Table 19 - Intra-ACL Misconfigurations detected We validate our results by selecting a reasonable number of misconfigurations from this list and confirming that they actually exist. It is interesting to note that none of the nodes in the network presents a Shadowing misconfiguration, and only a small percentage of the detected misconfigurations are Inconsistencies (1.6%). If we consider that there are a large number of ACLs and rules, it is reasonable to expect a larger number of misconfigurations. Some factors may explain why this does not happen: the software used for deploying rules on network equipments has become increasingly intelligent and detects and notifies operators about the most common issues (specifically some Inconsistencies) on rule compilation [8]. This software does not detect all possible inconsistencies and inefficiencies, and is limited to detecting them inside a set of rules within a single device, and not across network paths. Another factor is that, according to an internal policy of the organization, the filtering rules are subject to an audit process routinely, in order to remove existing inconsistencies and inefficiencies. We perform a route discovery for all nodes on the network, obtaining a total of 121,329 possible routes, according to the network routing information. The number of overlapping path segments (Section 3.4.1) is much smaller: 95. With this route information we proceed to execute an Inter-ACL check over the full route set. This procedure uncovers a total of seven confirmed misconfigurations: six redundancies and one shadowing. Some of these redundancies correspond to a case of enforcing a similar policy in two consecutive ACLs due to a matter of security policy and not an actual problem (e.g.: a default deny rule). There is only one Shadowing misconfiguration and it does not actually jeopardize connectivity, since the shadowed rule is merely allowing ICMP requests. However it does raise a concern as to the policy deployed on that ACL: the rule in question is accepting ICMP requests from any host, and this may not be the desired behavior. A very important result is the ability to obtain a realistic and updated network status. The network topology built by aggregating dispersed information may not be accurate and is expensive to keep updated, due to the size and complexity of the networks. With our system, it is simple to obtain an exact representation of the current network topology. This process is 33
42 extremely fast and can be performed as needed, assuming that the configuration information is updated regularly. 5.4 Performance The complexity of the Intra-ACL detection algorithm (Algorithm 1) is O(n), where n is the number of ACL rules: check each rule, one at a time, using set operations over BDDs. The resulting sets are stored for use in future Inter-ACL checking. This system is capable of checking 800 rules (the maximum value presented in [FIREMAN]) in under one second as we can see on Figure 9. Figure 9 - Performance of Intra-ACL misconfiguration detection Before measuring the performance of the Inter-ACL misconfiguration detection procedure, we apply the Intra-ACL procedure to every node, in order to generate all the necessary result sets. We then perform a route discovery to obtain all possible routes between nodes. This allows us to obtain results that are solely related to the procedure we are measuring. If these preparation steps are not taken, the procedure suffers from a slow start, i.e., the first time a node is analyzed the Intra-ACL procedure is applied. The same happens the first time a sourcedestination pair is tested, because it requires the possible routes to be discovered. These results are re-used to allow a fast execution speed. A considerable performance improvement is achieved by storing the results of checking OPSs (Section 3.4.1) and re-using them as needed as described in Section The complexity of the Inter-ACL misconfiguration detection procedure depends on the number of ACLs on the path, so it is O(a) where a is the number of ACLs. The algorithm checks each ACL along the path with the input traffic that arrives from the previous one in the path. The worst case complexity of checking all paths between a sourcedestination pair is O(ap) where a is the largest possible number of ACLs on a path (depends on the hop count of the path) and p is the largest possible number of paths between two nodes. This complexity increases when we consider the problem of checking all possible paths between all nodes on the network. We optimize the generalized misconfiguration detection procedure as described in Section This algorithm increases memory requirements in order to improve computation performance. Nonetheless, the use of memory is still very low when compared to 34
43 the gain in performance. The memory used by the algorithm during the execution of this algorithm over the entire set of nodes of the testbed never reached 45 Megabytes. To reduce the memory requirement, some of the data is kept in the database and the algorithm obtains it when needed. Database accesses are minimized and performed only when the results are used for a considerable number of operations. The performance results of the detection procedure's execution over individual routes, depending on the number of hops, are shown in Figure 10. Figure 10 - Performance of Inter-ACL misconfiguration detection per route It takes just over 15 minutes to check all possible source-destination pairs even considering the large number of possible routes. In [20] the performance is evaluated according to the outdegree of the network graph and the number of nodes in the network, and it is considered that an out-degree over 5 is not common for enterprise networks. In the case of our testbed, the out-degree values for each quartile are presented on Table 20. As we can see, this out-degree is not as uncommon as believed. Quartile Outdegree 1 2, Table 20 Out-degree 5.5 Operator Feedback The results of our work are presented to the IT personnel responsible for managing the testbed network. Their reaction is extremely positive, and they are very interested in the results obtained, wishing to analyze them further, as well as expand the testbed to a larger network. The features that are considered most valuable to them are the following (by order of importance): 35
44 1) Verify if a flow is able to traverse the network 2) Detect misconfigurations and obtain reports (Inter or Intra-ACL) 3) Obtain and visualize routes and flows 4) Automatically generate a network topology diagram The first feature is of special relevance because it allows a quick response to issues that come up, such as a connectivity problem: we are able to quickly test a given flow that is having problems and detect where it is failing. This precludes the need for looking at logs and configurations of different devices, analyze network traffic and other ways of obtaining information as to why a connectivity problem is happening. Naturally this reduces management costs greatly through the improvement of service response time and the reduction of downtime. The second feature is also a crucial tool for ACL maintenance. Management of this network includes a regular effort of manually auditing ACLs to check for rule validity. Detecting misconfigurations and obtaining reports, reduces the effort required in these ACL audits. Redundancies are especially important in this maintenance, as they have a significant impact on the performance of devices and their elimination is thus most welcome. Obtaining and visualizing routes and flows is valuable for detecting possible topology issues, and as an aid in the process of planning network topology changes. This feature is useful to obtain the current state of network routes, and also to maintain a history of these states allowing us to view different snapshots, and detect issues that happen only due to some routing configuration. Finally, automatically generating a network topology diagram is very important to allow the operators to keep an updated and accurate view of the topology. A process which no longer requires an expensive and continuous process of updating diagrams to reflect changes made to the network infrastructure. 36
45 6 Discussion Our model provides several advantages in distinct areas of network management. In security management, through the detection of ACL misconfigurations, it contributes to the reduction of security and connectivity issues, as well as to the improvement of the devices performance, by removing redundancies. In network management it provides a way to observe the current and past states of routing, thus enabling network managers to determine necessary network optimization steps. 6.1 Detecting Misconfigurations and Routing Firewall security policies are complex by themselves and their interaction with routing policies and applications further complicates them, often creating security or connectivity problems. Misconfigurations that exist within a Firewall s rule set originate such issues. These misconfigurations are serious, but only depend on the rules in that set. This makes them easier to detect by an appropriate set of verifications as the ones we describe in Section and an algorithm like the one defined in Section We know that their cause is another rule or set of rules within the same ACL, and we can easily identify and correct them. More complex misconfigurations arise due to the specific combination of several devices along a network path. These are not easy to discover, since the network routing conditions that cause them to appear may be temporary. This is a critical issue because it can produce network connectivity failures with an undetermined origin, which appear and disappear before we can determine what the problem is. The same is true for security problems, which can appear and disappear in the same manner, temporarily allowing access to a reserved area of a network, for example. In our work we define a model for the diagnosis of these problems that depends on the knowledge of the routing state of the network. We use this knowledge to determine the paths inside a network, and then analyze these paths for the existence of misconfigurations. The fact that we use actual routing information allows us to reduce the complexity of the path discovery procedure, by reducing the number of possible paths. We also determine that some path segments are common to many paths (the OPSs defined in Section 3.4.1). Using these segments allows us to optimize the misconfiguration detection procedure by checking the ACLs along these OPSs only once for all paths that go through them. These optimizations make the process of discovering paths and checking for misconfigurations along those paths a very fast one. Hence, by ensuring that configuration and routing information is kept up to date, we are able to quickly detect and correct discovered problems. 6.2 Identifying Critical Paths A strong advantage of our work is its ability to provide the necessary tools for analyzing network complexity and security. An example of such an analysis is one performed on a route between two points. By analyzing it from different perspectives, we obtain a solid notion of the relative complexity or security of the path: How many hops does the shortest path have? 37
46 How many firewalls does it cross in its path? How many rules, ACLs, does it have in its path? The answers to these questions, along with a set of definitions, give us the information we need. If, for example, we define that a critical path must have ACLs on all hops it goes through and this does not correspond to reality, we determine that the security level we assume on this path is not ensured. Similarly, if we define that non-critical paths do not require these security constraints and determine that a given path has several Firewalls in its path, it becomes clear that there may be unnecessary complexity in that path. This complexity may cause connectivity or performance issues. Besides the obvious technical advantages this system has, there are other advantages to the results we obtain from it. One of the relevant uses for this information is to provide metrics, or provide information for other metrics, that are used to assess the level of security in the network, or to assess compliance to some regulation or standard, such as Sarbanes-Oxley [18], ISO [14] or other. The historical data we can store in this system provides different kinds of metrics, based on the changes that happen, both in routing and ACL rules, which can be useful to evaluate the status of the network and profile its evolution. 6.3 Future Work Automating the way of collecting the configuration and routing data is an important step. It is essential to have the latest configuration and routing data available, to support the level of functionality the Prometheus system provides. Two ways to achieve this are: Create a central repository where configuration and routing data information of the network is dumped at regular intervals (e.g.: daily); this repository is used as a source of data for Prometheus. Use mechanisms provided by equipment vendors to inform operators of configuration and routing changes (typically SNMP traps [8][9]) and let Prometheus access and obtain this data at that time. Both of these options have their advantages and disadvantages. The first option requires the creation of a repository and regularly updating it with data. The main disadvantage is that the data may not contain all state changes, as different events may occur between updating intervals. Conversely, it is not affected by the occurrence of too many state changes due to some temporary problems. This is the main disadvantage of the second approach: temporary problems causing several network routing changes cause many updates to happen in a short period of time. The main advantage is that all states can be recorded and the information on the database is always the latest available, thus more reliable. One way to take advantage of the strengths of both methods is to take the second approach and include a damping period: every time an update event is received, a damping interval D is enforced to make sure the change is not fickle and the system is stable. The only parameter that needs to be adjusted is D which may be different for configuration or routing changes. The collection of the data itself is also an issue, 38
47 however it can be integrated into Prometheus using NETCONF [13], already supported by some vendors, to obtain the configuration files, and SNMP to obtain routing information. An improvement to this work is the incorporation of the network s global security policy in the model. We can achieve this goal by defining the policy through some type of modeling language. The advantage of having access to the security policy is that we can safely make more appropriate suggestions for correcting misconfigurations and perform a more in-depth analysis on the network, improving our contribution. However, we must note that maintaining such a security policy is an expensive and laborious task for management teams. As such, the accuracy and freshness of the information of that information may be difficult to ensure. Another interesting new direction is providing a way to test new rules before deploying them, predicting the result of deployment. This can be achieved with little effort in the current system by simulating the new rules, creating a new ACL with the new and existing rules, and finally performing misconfiguration detection over that new ACL. The work in [12] defines an abstract model of network configurations, allowing it to be used for various tasks, such as determining QoS configurations for a network, and generating these configurations from this abstract model. This feature can be used to further enhance this work, particularly the suggestion feature, by producing the configuration rules required in the format of the device they are to be installed on. 39
48 7 Conclusion Firewall security policies are complex by themselves and their interaction with routing policies and applications further complicates them, often creating security or connectivity problems. In our work we propose a model for diagnosing the problems arising in firewalls by analyzing not only the firewall configuration but also the dynamic routing information that is crucial for obtaining a complete view of the network. We define a set of optimizations that improve the scalability of our solution, enabling it to cope with large networks with many nodes and a large set of filtering rules. We also develop an application that implements that model, and performs static analysis on its information to detect Intra and Inter-ACL misconfigurations, according to actual routing policies. The application also suggests solutions to correct the misconfigurations detected, and some useful features such as path visualization and determining if a flow is able to traverse the network without problems. We test this system on a large testbed, obtaining interesting results. The application s features and results are considered extremely useful by the IT personnel that manages the networks used as testbed. The application can be used for various tasks, from automatically generating a view of the network topology, to detecting connectivity and security problems, and even predict them before new solutions are deployed or network changes applied. 40
49 8 Bibliography [1] AFA - AlgoSec Firewall Analyzer. (n.d.). Retrieved from [2] Alfaro, J. G., Boulahia-Cuppens, N., & Cuppens, F. (2008, April). Complete analysis of configuration rules to guarantee reliable. International Journal of Information Security, pp [3] Al-Shaer, E., Hamed, H., Boutaba, R., & Hasan, M. (2005). Conflict Classification and Analysis of Distributed Firewall Policies. IEEE Journal on Selected Areas in Communications, 23 (10), pp [4] Bartal, Y., Mayer, A., Nissim, K., & Wool, A. (1999). Firmato: a novel firewall management toolkit. IEEE Symposium on Security and Privacy, (pp ). Oakland. [5] Bryant, R. E. (1986). Graph-Based Algorithms for Boolean Function Manipulation. IEEE Transactions on Computers, 35(8), pp [6] Check Point. (n.d.). Retrieved from [7] Check Point Security Management Architecture. (n.d.). Retrieved from [8] Check Point SmartCenter Admin Guide. (n.d.). Retrieved from [9] Cisco IOS SNMP Traps. (n.d.). Retrieved from 94a05.shtml [10] Cisco Systems, Inc. (n.d.). Retrieved from [11] CiscoWorks Management Center for Firewalls. (n.d.). Retrieved from [12] Costa, L. (2008). Q-Andrew, A Consolidated QoS Management Framework. Manuscript. [13] IETF. (n.d.). Network Configuration (netconf). Retrieved from [14] ISO Information technology -- Security techniques -- Information security management systems -- Requirements. (n.d.). Retrieved from [15] Lind-Nielsen, J. (n.d.). BuDDy. Retrieved from 41
50 [16] Mayer, A., Wool, A., & Ziskind, E. (2000). Fang: A Firewall Analysis Engine. IEEE Symposium on Security and Privacy, (pp ). [17] Paxson, V. (1997, October). End-to-end routing behavior in the Internet. IEEE/ACM Transactions on Networking, 5 (5), pp [18] The Sarbanes-Oxley Act. (n.d.). Retrieved from [19] Ventura-Whiting, I. (n.d.). Nipper - The Network Infrastructure Parser. Retrieved from [20] Yuan, L., Chen, H., Mai, J., Chuah, C.-N., Su, Z., & Mohapatra, P. (2006). FIREMAN: a toolkit for firewall modeling and analysis. IEEE Symposium on Security and Privacy. 42
Methods for Firewall Policy Detection and Prevention
Methods for Firewall Policy Detection and Prevention Hemkumar D Asst Professor Dept. of Computer science and Engineering Sharda University, Greater Noida NCR Mohit Chugh B.tech (Information Technology)
Application Note. Stateful Firewall, IPS or IDS Load- Balancing
Application Note Stateful Firewall, IPS or IDS Load- Balancing Document version: v1.0 Last update: 8th November 2013 Purpose Improve scallability of the security layer Limitations when Load-Balancing firewalls
Internet Firewall CSIS 4222. Packet Filtering. Internet Firewall. Examples. Spring 2011 CSIS 4222. net15 1. Routers can implement packet filtering
Internet Firewall CSIS 4222 A combination of hardware and software that isolates an organization s internal network from the Internet at large Ch 27: Internet Routing Ch 30: Packet filtering & firewalls
FIREMAN: A Toolkit for FIREwall Modeling and ANalysis
FIREMAN: A Toolkit for FIREwall Modeling and ANalysis Lihua Yuan [email protected] Hao Chen [email protected] Jianning Mai [email protected] Chen-Nee Chuah [email protected] Zhendong Su
Testing Network Security Using OPNET
Testing Network Security Using OPNET Agustin Zaballos, Guiomar Corral, Isard Serra, Jaume Abella Enginyeria i Arquitectura La Salle, Universitat Ramon Llull, Spain Paseo Bonanova, 8, 08022 Barcelona Tlf:
How to Painlessly Audit Your Firewalls
W h i t e P a p e r How to Painlessly Audit Your Firewalls An introduction to automated firewall compliance audits, change assurance and ruleset optimization May 2010 Executive Summary Firewalls have become
Firewall Policy Anomalies- Detection and Resolution
Firewall Policy Anomalies- Detection and Resolution Jitha C K #1, Sreekesh Namboodiri *2 #1 MTech student(cse),mes College of Engineering,Kuttippuram,India #2 Assistant Professor(CSE),MES College of Engineering,Kuttippuram,India
FIREWALL CLEANUP WHITE PAPER
FIREWALL CLEANUP WHITE PAPER Firewall Cleanup Recommendations Considerations for Improved Firewall Efficiency, Better Security, and Reduced Policy Complexity Table of Contents Executive Summary... 3 The
Design and Implementation of Firewall Policy Advisor Tools
Design and Implementation of Firewall Policy Advisor Tools Ehab S. Al-Shaer and Hazem H. Hamed Multimedia Networking Research Laboratory School of Computer Science, Telecommunications and Information Systems
Conflict Classification and Analysis of Distributed Firewall Policies
Conflict Classification and Analysis of Distributed Firewall Policies 1 Ehab Al-Shaer and Hazem Hamed School of Computer Science DePaul University, Chicago, USA Email: {ehab, hhamed}@cs.depaul.edu Raouf
ACL Based Dynamic Network Reachability in Cross Domain
South Asian Journal of Engineering and Technology Vol.2, No.15 (2016) 68 72 ISSN No: 2454-9614 ACL Based Dynamic Network Reachability in Cross Domain P. Nandhini a, K. Sankar a* a) Department Of Computer
Efficiently Managing Firewall Conflicting Policies
Efficiently Managing Firewall Conflicting Policies 1 K.Raghavendra swamy, 2 B.Prashant 1 Final M Tech Student, 2 Associate professor, Dept of Computer Science and Engineering 12, Eluru College of Engineeering
Overview. Firewall Security. Perimeter Security Devices. Routers
Overview Firewall Security Chapter 8 Perimeter Security Devices H/W vs. S/W Packet Filtering vs. Stateful Inspection Firewall Topologies Firewall Rulebases Lecturer: Pei-yih Ting 1 2 Perimeter Security
How Network Transparency Affects Application Acceleration Deployment
How Network Transparency Affects Application Acceleration Deployment By John Bartlett and Peter Sevcik July 2007 Acceleration deployments should be simple. Vendors have worked hard to make the acceleration
Firewalls. Chapter 3
Firewalls Chapter 3 1 Border Firewall Passed Packet (Ingress) Passed Packet (Egress) Attack Packet Hardened Client PC Internet (Not Trusted) Hardened Server Dropped Packet (Ingress) Log File Internet Border
100-101: Interconnecting Cisco Networking Devices Part 1 v2.0 (ICND1)
100-101: Interconnecting Cisco Networking Devices Part 1 v2.0 (ICND1) Course Overview This course provides students with the knowledge and skills to implement and support a small switched and routed network.
Firewalls P+S Linux Router & Firewall 2013
Firewalls P+S Linux Router & Firewall 2013 Firewall Techniques What is a firewall? A firewall is a hardware or software device which is configured to permit, deny, or proxy data through a computer network
Interconnecting Cisco Network Devices 1 Course, Class Outline
www.etidaho.com (208) 327-0768 Interconnecting Cisco Network Devices 1 Course, Class Outline 5 Days Interconnecting Cisco Networking Devices, Part 1 (ICND1) v2.0 is a five-day, instructorled training course
co Characterizing and Tracing Packet Floods Using Cisco R
co Characterizing and Tracing Packet Floods Using Cisco R Table of Contents Characterizing and Tracing Packet Floods Using Cisco Routers...1 Introduction...1 Before You Begin...1 Conventions...1 Prerequisites...1
Question 1. [7 points] Consider the following scenario and assume host H s routing table is the one given below:
Computer Networks II Master degree in Computer Engineering Exam session: 11/02/2009 Teacher: Emiliano Trevisani Last name First name Student Identification number You are only allowed to use a pen and
Chapter 3. TCP/IP Networks. 3.1 Internet Protocol version 4 (IPv4)
Chapter 3 TCP/IP Networks 3.1 Internet Protocol version 4 (IPv4) Internet Protocol version 4 is the fourth iteration of the Internet Protocol (IP) and it is the first version of the protocol to be widely
Firewalls. Ingress Filtering. Ingress Filtering. Network Security. Firewalls. Access lists Ingress filtering. Egress filtering NAT
Network Security s Access lists Ingress filtering s Egress filtering NAT 2 Drivers of Performance RequirementsTraffic Volume and Complexity of Static IP Packet Filter Corporate Network The Complexity of
Management of Exceptions on Access Control Policies
Management of Exceptions on Access Control Policies J. G. Alfaro 1,2, F. Cuppens 1, and N. Cuppens-Boulahia 1 1 GET/ENST-Bretagne, 35576 Cesson Sévigné - France, {frederic.cuppens,nora.cuppens}@enst-bretagne.fr
A Model Design of Network Security for Private and Public Data Transmission
2011, TextRoad Publication ISSN 2090-424X Journal of Basic and Applied Scientific Research www.textroad.com A Model Design of Network Security for Private and Public Data Transmission Farhan Pervez, Ali
CS 457 Lecture 19 Global Internet - BGP. Fall 2011
CS 457 Lecture 19 Global Internet - BGP Fall 2011 Decision Process Calculate degree of preference for each route in Adj-RIB-In as follows (apply following steps until one route is left): select route with
An Approach for improving Network Performance using Cross-Domain Cooperative Secrecy-Maintaining Firewall Optimization
An Approach for improving Network Performance using Cross-Domain Cooperative Secrecy-Maintaining Firewall Optimization Yogita Nikhare 1 andprof. Anil Bende 2 1 M.TechScholar, Department of Computer Science
ECE 578 Term Paper Network Security through IP packet Filtering
ECE 578 Term Paper Network Security through IP packet Filtering Cheedu Venugopal Reddy Dept of Electrical Eng and Comp science Oregon State University Bin Cao Dept of electrical Eng and Comp science Oregon
Network (Tree) Topology Inference Based on Prüfer Sequence
Network (Tree) Topology Inference Based on Prüfer Sequence C. Vanniarajan and Kamala Krithivasan Department of Computer Science and Engineering Indian Institute of Technology Madras Chennai 600036 [email protected],
8. Firewall Design & Implementation
DMZ Networks The most common firewall environment implementation is known as a DMZ, or DeMilitarized Zone network. A DMZ network is created out of a network connecting two firewalls; i.e., when two or
IP Routing Configuring Static Routes
11 IP Routing Configuring Static Routes Contents Overview..................................................... 11-3 IP Addressing.............................................. 11-3 Networks.................................................
Lab 4.5.2 Diagramming Intranet Traffic Flows
Lab 4.5.2 Diagramming Intranet Traffic Flows Objective Device Designation Device Name Address Subnet Mask Discovery Server Business Services 172.17.1.1 255.255.0.0 R1 FC-CPE-1 Fa0/1 172.17.0.1 Fa0/0 10.0.0.1
Firewall Stateful Inspection of ICMP
The feature addresses the limitation of qualifying Internet Control Management Protocol (ICMP) messages into either a malicious or benign category by allowing the Cisco IOS firewall to use stateful inspection
Multidomain Network Based on Programmable Networks: Security Architecture
Multidomain Network Based on Programmable Networks: Security Architecture Bernardo Alarco, Marifeli Sedano, and Maria Calderon This paper proposes a generic security architecture designed for a multidomain
Software Defined Networking and OpenFlow: a Concise Review
Software Defined Networking and OpenFlow: a Concise Review Stefano Forti [email protected] MSc in Computer Science and Networking Scuola Superiore Sant'Anna - University of Pisa 1. Introduction
Disaster Recovery Design Ehab Ashary University of Colorado at Colorado Springs
Disaster Recovery Design Ehab Ashary University of Colorado at Colorado Springs As a head of the campus network department in the Deanship of Information Technology at King Abdulaziz University for more
SAN Conceptual and Design Basics
TECHNICAL NOTE VMware Infrastructure 3 SAN Conceptual and Design Basics VMware ESX Server can be used in conjunction with a SAN (storage area network), a specialized high speed network that connects computer
Understanding and Configuring NAT Tech Note PAN-OS 4.1
Understanding and Configuring NAT Tech Note PAN-OS 4.1 Revision C 2012, Palo Alto Networks, Inc. www.paloaltonetworks.com Contents Overview... 3 Scope... 3 Design Consideration... 3 Software requirement...
Exterior Gateway Protocols (BGP)
Exterior Gateway Protocols (BGP) Internet Structure Large ISP Large ISP Stub Dial-Up ISP Small ISP Stub Stub Stub Autonomous Systems (AS) Internet is not a single network! The Internet is a collection
Configuring IP Load Sharing in AOS Quick Configuration Guide
Configuring IP Load Sharing in AOS Quick Configuration Guide ADTRAN Operating System (AOS) includes IP Load Sharing for balancing outbound IP traffic across multiple interfaces. This feature can be used
Chapter 11 Network Address Translation
Chapter 11 Network Address Translation You can configure an HP routing switch to perform standard Network Address Translation (NAT). NAT enables private IP networks that use nonregistered IP addresses
INTERCONNECTING CISCO NETWORK DEVICES PART 1 V2.0 (ICND 1)
INTERCONNECTING CISCO NETWORK DEVICES PART 1 V2.0 (ICND 1) COURSE OVERVIEW: Interconnecting Cisco Networking Devices, Part 1 (ICND1) v2.0 is a five-day, instructor-led training course that teaches learners
Building Your Firewall Rulebase Lance Spitzner Last Modified: January 26, 2000
Building Your Firewall Rulebase Lance Spitzner Last Modified: January 26, 2000 Building a solid rulebase is a critical, if not the most critical, step in implementing a successful and secure firewall.
Firewall Firewall August, 2003
Firewall August, 2003 1 Firewall and Access Control This product also serves as an Internet firewall, not only does it provide a natural firewall function (Network Address Translation, NAT), but it also
Lumeta IPsonar. Active Network Discovery, Mapping and Leak Detection for Large Distributed, Highly Complex & Sensitive Enterprise Networks
IPsonar provides visibility into every IP asset, host, node, and connection on the network, performing an active probe and mapping everything that's on the network, resulting in a comprehensive view of
Policy Based Forwarding
Policy Based Forwarding Tech Note PAN-OS 4.1 Revision A 2012, Palo Alto Networks, Inc. www.paloaltonetworks.com Contents Overview... 3 Security... 3 Performance... 3 Symmetric Routing... 3 Service Versus
Configuring Network Address Translation (NAT)
8 Configuring Network Address Translation (NAT) Contents Overview...................................................... 8-3 Translating Between an Inside and an Outside Network........... 8-3 Local and
FIREWALL AND NAT Lecture 7a
FIREWALL AND NAT Lecture 7a COMPSCI 726 Network Defence and Countermeasures Muhammad Rizwan Asghar August 3, 2015 Source of most of slides: University of Twente FIREWALL An integrated collection of security
Teldat Router. ARP Proxy
Teldat Router ARP Proxy Doc. DM734-I Rev. 10.00 November, 2002 INDEX Chapter 1 Introduction...1 1. ARP Proxy... 2 Chapter 2 Configuration...4 1. ARP Proxy Configuration... 5 1.1. Enabling ARP Proxy...
Expert Reference Series of White Papers. VMware vsphere Distributed Switches
Expert Reference Series of White Papers VMware vsphere Distributed Switches [email protected] www.globalknowledge.net VMware vsphere Distributed Switches Rebecca Fitzhugh, VCAP-DCA, VCAP-DCD, VCAP-CIA,
DESIGN AND VERIFICATION OF LSR OF THE MPLS NETWORK USING VHDL
IJVD: 3(1), 2012, pp. 15-20 DESIGN AND VERIFICATION OF LSR OF THE MPLS NETWORK USING VHDL Suvarna A. Jadhav 1 and U.L. Bombale 2 1,2 Department of Technology Shivaji university, Kolhapur, 1 E-mail: [email protected]
Network Virtualization Network Admission Control Deployment Guide
Network Virtualization Network Admission Control Deployment Guide This document provides guidance for enterprises that want to deploy the Cisco Network Admission Control (NAC) Appliance for their campus
Quick Start for Network Agent. 5-Step Quick Start. What is Network Agent?
What is Network Agent? The Websense Network Agent software component uses sniffer technology to monitor all of the internet traffic on the network machines that you assign to it. Network Agent filters
Load Balancing. Final Network Exam LSNAT. Sommaire. How works a "traditional" NAT? Un article de Le wiki des TPs RSM.
Load Balancing Un article de Le wiki des TPs RSM. PC Final Network Exam Sommaire 1 LSNAT 1.1 Deployement of LSNAT in a globally unique address space (LS-NAT) 1.2 Operation of LSNAT in conjunction with
Monitoring within an Autonomic Network: A. Framework
Monitoring within an Autonomic Network: A GANA based Network Monitoring i Framework Anastasios Zafeiropoulos, Athanassios Liakopoulos, Alan Davy, Ranganai Chaparadza [email protected] Greek Research and
GregSowell.com. Mikrotik Security
Mikrotik Security IP -> Services Disable unused services Set Available From for appropriate hosts Secure protocols are preferred (Winbox/SSH) IP -> Neighbors Disable Discovery Interfaces where not necessary.
Cryptography and Network Security Prof. D. Mukhopadhyay Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur
Cryptography and Network Security Prof. D. Mukhopadhyay Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Module No. # 01 Lecture No. # 40 Firewalls and Intrusion
Configuring Firewalls An XML-based Approach to Modelling and Implementing Firewall Configurations
Configuring Firewalls An XML-based Approach to Modelling and Implementing Firewall Configurations Simon R. Chudley and Ulrich Ultes-Nitsche Department of Electronics and Computer Science, University of
Evaluation guide. Vyatta Quick Evaluation Guide
VYATTA, INC. Evaluation guide Vyatta Quick Evaluation Guide A simple step-by-step guide to configuring network services with Vyatta Open Source Networking http://www.vyatta.com Overview...1 Booting Up
Redundancy Removing Protocol to Minimize the Firewall Policies in Cross Domain
Redundancy Removing Protocol to Minimize the Firewall Policies in Cross Domain Kamarasa V D S Santhosh M.Tech Student, Department of ComputerScience & Engineering, School of Technology, Gitam University,
Configuring a Load-Balancing Scheme
Configuring a Load-Balancing Scheme Last Updated: October 5, 2011 This module contains information about Cisco Express Forwarding and describes the tasks for configuring a load-balancing scheme for Cisco
The following topics describe how to manage policies on the Management Center:
The following topics describe how to manage policies on the Management Center: Policy Deployment, page 1 Policy Comparison, page 8 Policy Reports, page 10 Out-of-Date Policies, page 11 Policy Warnings,
Cisco IOS Flexible NetFlow Technology
Cisco IOS Flexible NetFlow Technology Last Updated: December 2008 The Challenge: The ability to characterize IP traffic and understand the origin, the traffic destination, the time of day, the application
Firewalls and VPNs. Principles of Information Security, 5th Edition 1
Firewalls and VPNs Principles of Information Security, 5th Edition 1 Learning Objectives Upon completion of this material, you should be able to: Understand firewall technology and the various approaches
INTRUSION DETECTION SYSTEMS and Network Security
INTRUSION DETECTION SYSTEMS and Network Security Intrusion Detection System IDS A layered network security approach starts with : A well secured system which starts with: Up-to-date application and OS
(MPLS) MultiProtocol Labling Switching. Software Engineering 4C03 Computer Network & Computer Security Dr. Kartik Krishnan Winter 2004.
(MPLS) MultiProtocol Labling Switching Software Engineering 4C03 Computer Network & Computer Security Dr. Kartik Krishnan Winter 2004 Final Copy Researcher: Paul Chan Student ID: 9914759 Last Revised:
TECHNICAL NOTE 01/2006 ENGRESS AND INGRESS FILTERING
TECHNICAL NOTE 01/2006 ENGRESS AND INGRESS FILTERING 20 APRIL 2006 This paper was previously published by the National Infrastructure Security Co-ordination Centre (NISCC) a predecessor organisation to
Scaling 10Gb/s Clustering at Wire-Speed
Scaling 10Gb/s Clustering at Wire-Speed InfiniBand offers cost-effective wire-speed scaling with deterministic performance Mellanox Technologies Inc. 2900 Stender Way, Santa Clara, CA 95054 Tel: 408-970-3400
Firewall Verification and Redundancy Checking are Equivalent
Firewall Verification and Redundancy Checking are Equivalent H. B. Acharya University of Texas at Austin [email protected] M. G. Gouda National Science Foundation University of Texas at Austin [email protected]
TECHNICAL NOTES. Security Firewall IP Tables
Introduction Prior to iptables, the predominant software packages for creating Linux firewalls were 'IPChains' in Linux 2.2 and ipfwadm in Linux 2.0, which in turn was based on BSD's ipfw. Both ipchains
Chapter 11 Cloud Application Development
Chapter 11 Cloud Application Development Contents Motivation. Connecting clients to instances through firewalls. Chapter 10 2 Motivation Some of the questions of interest to application developers: How
Key Features of Dynamic Address Objects
SonicOS Enhanced MAC and FQDN Dynamic Address Objects Dynamic Address Objects: FQDN and MAC Address Objects in SonicOS Enhanced Overview of Address Objects From its inception, SonicOS Enhanced has used
Module 7. Routing and Congestion Control. Version 2 CSE IIT, Kharagpur
Module 7 Routing and Congestion Control Lesson 4 Border Gateway Protocol (BGP) Specific Instructional Objectives On completion of this lesson, the students will be able to: Explain the operation of the
Internet Protocol: IP packet headers. vendredi 18 octobre 13
Internet Protocol: IP packet headers 1 IPv4 header V L TOS Total Length Identification F Frag TTL Proto Checksum Options Source address Destination address Data (payload) Padding V: Version (IPv4 ; IPv6)
Guideline on Firewall
CMSGu2014-02 Mauritian Computer Emergency Response Team CERT-MU SECURITY GUIDELINE 2011-02 Enhancing Cyber Security in Mauritius Guideline on Firewall National Computer Board Mauritius Version 1.0 June
FIREWALLS & NETWORK SECURITY with Intrusion Detection and VPNs, 2 nd ed. Chapter 5 Firewall Planning and Design
FIREWALLS & NETWORK SECURITY with Intrusion Detection and VPNs, 2 nd ed. Chapter 5 Firewall Planning and Design Learning Objectives Identify common misconceptions about firewalls Explain why a firewall
Cisco AnyConnect Secure Mobility Solution Guide
Cisco AnyConnect Secure Mobility Solution Guide This document contains the following information: Cisco AnyConnect Secure Mobility Overview, page 1 Understanding How AnyConnect Secure Mobility Works, page
Additional Information: A link to the conference website is available at: http://www.curtin.edu.my/cutse2008/index.html
Citation: Veeramani, S. and Gopal, Lenin. 2008. Network monitoring tool, in Curtin University of Technology (ed), Curtin University of Technology Science and Engineering International Conference CUTSE
Index Terms Domain name, Firewall, Packet, Phishing, URL.
BDD for Implementation of Packet Filter Firewall and Detecting Phishing Websites Naresh Shende Vidyalankar Institute of Technology Prof. S. K. Shinde Lokmanya Tilak College of Engineering Abstract Packet
Firewall. Vyatta System. REFERENCE GUIDE IPv4 Firewall IPv6 Firewall Zone Based Firewall VYATTA, INC.
VYATTA, INC. Vyatta System Firewall REFERENCE GUIDE IPv4 Firewall IPv6 Firewall Zone Based Firewall Vyatta Suite 200 1301 Shoreway Road Belmont, CA 94002 vyatta.com 650 413 7200 1 888 VYATTA 1 (US and
Networking Security IP packet security
Networking Security IP packet security Networking Security IP packet security Copyright International Business Machines Corporation 1998,2000. All rights reserved. US Government Users Restricted Rights
Firewall Design Principles
Firewall Design Principles Software Engineering 4C03 Dr. Krishnan Stephen Woodall, April 6 th, 2004 Firewall Design Principles Stephen Woodall Introduction A network security domain is a contiguous region
How To Understand Bg
Table of Contents BGP Case Studies...1 BGP4 Case Studies Section 1...3 Contents...3 Introduction...3 How Does BGP Work?...3 ebgp and ibgp...3 Enabling BGP Routing...4 Forming BGP Neighbors...4 BGP and
CCNA Discovery 4.0.3.0 Networking for Homes and Small Businesses Student Packet Tracer Lab Manual
4.0.3.0 Networking for Homes and Small Businesses Student Packet Tracer Lab Manual This document is exclusive property of Cisco Systems, Inc. Permission is granted to print and copy this document for non-commercial
Configuring a Load-Balancing Scheme
Configuring a Load-Balancing Scheme Finding Feature Information Configuring a Load-Balancing Scheme Last Updated: August 15, 2011 This module contains information about Cisco Express Forwarding and describes
SE 4C03 Winter 2005 Firewall Design Principles. By: Kirk Crane
SE 4C03 Winter 2005 Firewall Design Principles By: Kirk Crane Firewall Design Principles By: Kirk Crane 9810533 Introduction Every network has a security policy that will specify what traffic is allowed
Cisco Change Management: Best Practices White Paper
Table of Contents Change Management: Best Practices White Paper...1 Introduction...1 Critical Steps for Creating a Change Management Process...1 Planning for Change...1 Managing Change...1 High Level Process
Firewall Rulebase Analysis Tool
Advances in Communications, Computing, Networks and Security 10 Abstract 96 Firewall Rulebase Analysis Tool P. Jain and P.S. Dowland Centre for Security, Communications and Network Research Plymouth University,
Chapter 4 Customizing Your Network Settings
. Chapter 4 Customizing Your Network Settings This chapter describes how to configure advanced networking features of the Wireless-G Router Model WGR614v9, including LAN, WAN, and routing settings. It
How To Provide Qos Based Routing In The Internet
CHAPTER 2 QoS ROUTING AND ITS ROLE IN QOS PARADIGM 22 QoS ROUTING AND ITS ROLE IN QOS PARADIGM 2.1 INTRODUCTION As the main emphasis of the present research work is on achieving QoS in routing, hence this
A Review of Anomaly Detection Techniques in Network Intrusion Detection System
A Review of Anomaly Detection Techniques in Network Intrusion Detection System Dr.D.V.S.S.Subrahmanyam Professor, Dept. of CSE, Sreyas Institute of Engineering & Technology, Hyderabad, India ABSTRACT:In
A Passive Method for Estimating End-to-End TCP Packet Loss
A Passive Method for Estimating End-to-End TCP Packet Loss Peter Benko and Andras Veres Traffic Analysis and Network Performance Laboratory, Ericsson Research, Budapest, Hungary {Peter.Benko, Andras.Veres}@eth.ericsson.se
2. Are explicit proxy connections also affected by the ARM config?
Achieving rapid success with WCCP and Web Security Gateway October 2011 Webinar Q/A 1. What if you are already using WCCP for Cisco waas on the same routers that you need to use WCCP for websense? Using
White Paper. Intrusion Detection Deploying the Shomiti Century Tap
White Paper Intrusion Detection Deploying the Shomiti Century Tap . Shomiti Tap Deployment Purpose of this Paper The scalability of Intrusion Detection Systems (IDS) is often an issue when deploying an
QoS Switching. Two Related Areas to Cover (1) Switched IP Forwarding (2) 802.1Q (Virtual LANs) and 802.1p (GARP/Priorities)
QoS Switching H. T. Kung Division of Engineering and Applied Sciences Harvard University November 4, 1998 1of40 Two Related Areas to Cover (1) Switched IP Forwarding (2) 802.1Q (Virtual LANs) and 802.1p
