15
Structured firewall design q Mohamed G. Gouda, Alex X. Liu * Department of Computer Sciences, The University of Texas at Austin, Austin, TX 78712-0233, United States Received 6 September 2005; received in revised form 13 April 2006; accepted 17 June 2006 Available online 15 August 2006 Responsible Editor: D. Frincke Abstract A firewall is a security guard placed at the point of entry between a private network and the outside Internet such that all incoming and outgoing packets have to pass through it. The function of a firewall is to examine every incoming or out- going packet and decide whether to accept or discard it. This function is conventionally specified by a sequence of rules, where rules often conflict. To resolve conflicts, the decision for each packet is the decision of the first rule that the packet matches. The current practice of designing a firewall directly as a sequence of rules suffers from three types of major prob- lems: (1) the consistency problem, which means that it is difficult to order the rules correctly; (2) the completeness problem, which means that it is difficult to ensure thorough consideration for all types of traffic; (3) the compactness problem, which means that it is difficult to keep the number of rules small (because some rules may be redundant and some rules may be combined into one rule). To achieve consistency, completeness, and compactness, we propose a new method called structured firewall design, which consists of two steps. First, one designs a firewall using a firewall decision diagram instead of a sequence of often conflicting rules. Second, a program converts the firewall decision diagram into a compact, yet functionally equivalent, sequence of rules. This method addresses the consistency problem because a firewall decision diagram is conflict-free. It addresses the completeness problem because the syntactic requirements of a firewall decision diagram force the designer to consider all types of traffic. It also addresses the compactness problem because in the second step we use two algorithms (namely FDD reduction and FDD marking) to combine rules together, and one algorithm (namely firewall compaction) to remove redundant rules. Moreover, the techniques and algorithms presented in this paper are extensible to other rule-based systems such as IPsec rules. Ó 2006 Elsevier B.V. All rights reserved. Keywords: Network security; Firewall; Firewall design; Firewall policy 1389-1286/$ - see front matter Ó 2006 Elsevier B.V. All rights reserved. doi:10.1016/j.comnet.2006.06.015 q This material is based upon work supported by the National Science Foundation under Grant No. 0520250. * Corresponding author. Tel.: +1 512 471 9711; fax: +1 512 471 9536. E-mail addresses: [email protected] (M.G. Gouda), [email protected] (A.X. Liu). Computer Networks 51 (2007) 1106–1120 www.elsevier.com/locate/comnet

Structured firewall design qalexliu/publications/FDD/StructuredFirewallDesign.pdf1.1. Firewall basics Firewalls are crucial elements in network secu-rity, and have been widely deployed

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Structured firewall design qalexliu/publications/FDD/StructuredFirewallDesign.pdf1.1. Firewall basics Firewalls are crucial elements in network secu-rity, and have been widely deployed

Computer Networks 51 (2007) 1106–1120

www.elsevier.com/locate/comnet

Structured firewall design q

Mohamed G. Gouda, Alex X. Liu *

Department of Computer Sciences, The University of Texas at Austin, Austin, TX 78712-0233, United States

Received 6 September 2005; received in revised form 13 April 2006; accepted 17 June 2006Available online 15 August 2006

Responsible Editor: D. Frincke

Abstract

A firewall is a security guard placed at the point of entry between a private network and the outside Internet such thatall incoming and outgoing packets have to pass through it. The function of a firewall is to examine every incoming or out-going packet and decide whether to accept or discard it. This function is conventionally specified by a sequence of rules,where rules often conflict. To resolve conflicts, the decision for each packet is the decision of the first rule that the packetmatches. The current practice of designing a firewall directly as a sequence of rules suffers from three types of major prob-lems: (1) the consistency problem, which means that it is difficult to order the rules correctly; (2) the completeness problem,which means that it is difficult to ensure thorough consideration for all types of traffic; (3) the compactness problem, whichmeans that it is difficult to keep the number of rules small (because some rules may be redundant and some rules may becombined into one rule).

To achieve consistency, completeness, and compactness, we propose a new method called structured firewall design,which consists of two steps. First, one designs a firewall using a firewall decision diagram instead of a sequence of oftenconflicting rules. Second, a program converts the firewall decision diagram into a compact, yet functionally equivalent,sequence of rules. This method addresses the consistency problem because a firewall decision diagram is conflict-free. Itaddresses the completeness problem because the syntactic requirements of a firewall decision diagram force the designerto consider all types of traffic. It also addresses the compactness problem because in the second step we use two algorithms(namely FDD reduction and FDD marking) to combine rules together, and one algorithm (namely firewall compaction)to remove redundant rules. Moreover, the techniques and algorithms presented in this paper are extensible to otherrule-based systems such as IPsec rules.� 2006 Elsevier B.V. All rights reserved.

Keywords: Network security; Firewall; Firewall design; Firewall policy

1389-1286/$ - see front matter � 2006 Elsevier B.V. All rights reserved.

doi:10.1016/j.comnet.2006.06.015

q This material is based upon work supported by the National Science Foundation under Grant No. 0520250.* Corresponding author. Tel.: +1 512 471 9711; fax: +1 512 471 9536.

E-mail addresses: [email protected] (M.G. Gouda), [email protected] (A.X. Liu).

Page 2: Structured firewall design qalexliu/publications/FDD/StructuredFirewallDesign.pdf1.1. Firewall basics Firewalls are crucial elements in network secu-rity, and have been widely deployed

M.G. Gouda, A.X. Liu / Computer Networks 51 (2007) 1106–1120 1107

1. Introduction

1.1. Firewall basics

Firewalls are crucial elements in network secu-rity, and have been widely deployed in most busi-nesses and institutions for securing privatenetworks. A firewall is placed at the point of entrybetween a private network and the outside Internetsuch that all incoming and outgoing packets have topass through it. The function of a firewall is toexamine every incoming or outgoing packet anddecide whether to accept or discard it. A packetcan be viewed as a tuple with a finite number offields such as source IP address, destination IPaddress, source port number, destination portnumber, and protocol type. The function of a fire-wall is conventionally specified as a sequence ofrules. Each rule in a firewall is of the form

hpredicatei ! hdecisioni:

The hpredicatei of a rule is a boolean expressionover some packet fields together with the physicalnetwork interface on which a packet arrives. Forsimplicity, we assume that each packet has a fieldcontaining the identification of the network inter-face on which a packet arrives. The hdecisioni of arule can be accept, or discard, or a combination ofthese decisions with other options such as a loggingoption. For simplicity, we assume that the hdecisioniof a rule is either accept or discard.

A packet matches a rule if and only if (iff) thepacket satisfies the predicate of the rule. The rulesin a firewall often conflict. Two rules in a firewallconflict iff they overlap and also have different deci-sions. Two rules in a firewall overlap iff there is at

Fig. 1. A firewa

least one packet that can match both rules. Due toconflicts among rules, a packet may match morethan one rule in a firewall, and the rules that apacket matches may have different decisions. Toresolve conflicts, the decision for each packet isthe decision of the first (i.e., highest priority) rulethat the packet matches. Consequently, the rulesin a firewall are order sensitive. To ensure that everypacket has at least one matching rule in a firewall,the predicate of the last rule in a firewall is usuallya tautology. The last rule of a firewall is usuallycalled the default rule of the firewall.

1.2. Consistency, completeness and compactness

Because of the conflicts and order sensitivity offirewall rules, designing a firewall directly as asequence of rules suffers from these three problems:the consistency problem, the completeness problem,and the compactness problem. Next, we expatiateon these three problems via a simple firewall exam-ple shown in Fig. 1. This firewall resides on a gate-way router that connects a private network to theoutside Internet. The gateway router has two inter-faces: interface 0, which connects the router to theoutside Internet, and interface 1, which connectsthe router to the private network. In this example,we assume that every packet has the following fivefields.

Name

ll example.

Meaning

I

Interface S Source IP address D Destination IP address N Destination port number P Protocol type
Page 3: Structured firewall design qalexliu/publications/FDD/StructuredFirewallDesign.pdf1.1. Firewall basics Firewalls are crucial elements in network secu-rity, and have been widely deployed

ter Networks 51 (2007) 1106–1120

A firewall on the Internet typically consists of

hundreds or thousands of rules. Here for simplicity,this firewall example only has four rules. Althoughthis firewall is small, it exemplifies all the followingthree problems.

1. Consistency problem: It is difficult to order therules in a firewall correctly. This difficulty mainlycomes from conflicts among rules. Because rulesoften conflict, the order of the rules in a firewallis critical. The decision for every packet is thedecision of the first rule that the packet matches.In the firewall example in Fig. 1, rule r1 and r2

conflict since the SMTP packets from previouslyknown malicious hosts to the mail server matchboth rules and the decisions of r1 and r2 aredifferent. Because r1 is listed before r2 and thedecision of rule r1 is ‘‘accept’’, the SMTP packetsfrom previously known malicious hosts areallowed to proceed to the mail server. However,such packets probably should be prohibited fromreaching the mail server because they originatefrom malicious hosts. Therefore, rules r1 and r2

probably should be swapped.Because of the con-flicts, the net effect of a rule cannot be under-stood by the literal meaning of the rule. Thedecision of a rule affects the fate of the packetsthat match this rule but does not match any rulelisted before this rule. To understand one singlerule ri, one needs to go through all the rules fromr1 to ri�1, and for every rule rj, where 1 6 j 6

i � 1, one needs to figure out the logical relation-ship between the predicate of rj and that of ri. Inthe firewall example in Fig. 1, the net effect ofrule r2 is not to ‘‘discard all packets originatedfrom previously known malicious hosts’’, butrather is to ‘‘discard all non-SMTP packets orig-inated from previously known malicious hosts’’.The difficulty in understanding firewall rules inturn makes the design and maintenance of a fire-wall error-prone. Maintenance of a firewall usu-ally involves inserting, deleting or updatingrules, and reporting the function of the firewallto others such as managers. All of these tasksrequire precise understanding of firewalls, whichis difficult, especially when the firewall adminis-trator is forced to maintain a legacy firewall thatis not originally designed by him.

2. Completeness problem: It is difficult to ensure thatall possible packets are considered. To ensurethat every packet has at least one matching rulein a firewall, the common practice is to make

1108 M.G. Gouda, A.X. Liu / Compu

the predicate of the last rule a tautology. This isclearly not a good way to ensure the thoroughconsideration of all possible packets. In the fire-wall example in Fig. 1, due to the last rule r4,non-email packets from the outside to the mailserver and email packets from the outside tothe hosts other than the mail server are acceptedby the firewall. However, these two types of traf-fic probably should be blocked. A mail server isusually dedicated to email service only. When ahost other than the mail server starts to behavelike a mail server, it could be an indication thatthe host has been hacked and it is sending outspam. To block these two types of traffic, the fol-lowing two rules should be inserted immediatelyafter rule r1 in the above firewall:(a) (I = 0) ^ (S = any) ^ (D = Mail Server)^ (N = any) ^ (P = any)! discard

(b) (I = 0) ^ (S = any) ^ (D = any) ^ (N = 25)^ (P = tcp)! discard

3. Compactness problem: A poorly designed firewalloften has redundant rules. A rule in a firewall isredundant iff removing the rule does not changethe function of the firewall, i.e., does not changethe decision of the firewall for every packet. Inthe above firewall example in Fig. 1, rule r3 isredundant. This is because all the packets thatmatch r3 but do not match r1 and r2 also matchr4, and both r3 and r4 have the same decision.Therefore, this firewall can be made more com-pact by removing rule r3.

The consistency problem and the completenessproblem cause firewall errors. An error in a firewallmeans that the firewall either accepts some maliciouspackets, which consequently creates security holeson the firewall, or discards some legitimate packets,which consequently disrupts normal businesses.Given the importance of firewalls, such errors arenot acceptable. Unfortunately, it has been observedthat most firewalls on the Internet are poorlydesigned and have many errors in their rules [25].

The compactness problem causes low firewallperformance. In general, the smaller the numberof rules that a firewall has, the faster the firewallcan map a packet to the decision of the first rulethe packet matches. Reducing the number of rulesis especially useful for the firewalls that use TCAM(Ternary Content Addressable Memory). Such fire-walls use O(n) space (where n is the number of rules)and constant time in mapping a packet to a deci-sion. Despite the high performance of such

Page 4: Structured firewall design qalexliu/publications/FDD/StructuredFirewallDesign.pdf1.1. Firewall basics Firewalls are crucial elements in network secu-rity, and have been widely deployed

M.G. Gouda, A.X. Liu / Computer Networks 51 (2007) 1106–1120 1109

TCAM-based firewalls, TCAM has very limited sizeand consumes much more power as the number ofrules increases. Size limitation and power consump-tion are the two major issues for TCAM-basedfirewalls.

1.3. Structured firewall design

To achieve consistency, completeness, and com-pactness, we propose a new method called struc-

tured firewall design, which consists of two steps.First, one designs a firewall using a firewall decisiondiagram (FDD for short) instead of a sequence ofoften conflicting rules. Second, a program convertsthe FDD into a compact, yet functionally equiva-lent, sequence of rules. This method addresses theconsistency problem because an FDD is conflict-free. It addresses the completeness problem becausethe syntactic requirements of an FDD force thedesigner to consider all types of traffic. It alsoaddresses the compactness problem because in thesecond step we use two algorithms (namely FDDreduction and FDD marking) to combine rulestogether, and one algorithm (namely firewall com-paction) to remove redundant rules.

In some sense, our method of structured firewalldesign is like the method of structured program-ming, and the method of designing a firewalldirectly as a sequence of conflicting rules is likethe method of writing a program with many gotostatements. In late 1960s, Dijkstra pointed out thatgoto statements are considered harmful [10] becausea program with many goto statements is verydifficult to understand and therefore writing sucha program is very error prone. Similarly, a firewallof a sequence of conflicting rules is very difficult tounderstand and writing a sequence of conflictingrules directly is extremely error prone.

Using the method of structured firewall design,the firewall administrator only deals with theFDD that uniquely represents the semantics of afirewall. The FDD is essentially the formal specifica-tion of a firewall. Since an FDD can be converted toan equivalent sequence of rules, our method doesnot require any modification to any existing firewall,which takes a sequence of rules as its configuration.Whenever the firewall administrator wants tochange the function of his firewall, he only needsto modify the FDD and then use programs to auto-matically generate a new sequence of rules. Thisprocess is like a programmer first modifying hissource code and then compiling it again.

Note that this paper is primarily on how todesign stateless firewalls. There are two types offirewalls: stateless firewalls and stateful firewalls. Ifa firewall decides the fate of every packet solely byexamining the packet itself, then the firewall iscalled a stateless firewall. If a firewall decides thefate of some packet not only by examining thepacket itself but also by examining the packetsthat the firewall has accepted previously, then thefirewall is called a stateful firewall. Studying howto design stateless firewalls is particularly importantfor two major reasons. First, many firewallsdeployed on the Internet are stateless. Second, aswe have shown in [13], the methods for designingstateless firewalls can also be used to assist thedesign of stateful firewalls. In other words, studyingthe design of stateless firewalls is the foundation forfurther exploration of the design of stateful fire-walls. Although this paper concerns the design offirewalls, the techniques and algorithms presentedare extensible to other security policy systems suchas the one discussed in [22].

The rest of this paper proceeds as follows. InSection 2, we examine related work. In Section 3,we introduce firewall decision diagrams. In Section4, we present Algorithm 1 whose function is toreduce the size of a user-specified FDD. In Section5, we present Algorithm 2 whose function is to dosome marking on the reduced FDD. In Section 6,we present Algorithm 3 whose function is to gener-ate firewall rules with the help of the marking infor-mation produced by Algorithm 2. In Section 7, wepresent Algorithm 4 whose function is to removeredundant rules from the firewall rules generatedby Algorithm 3. In Section 8, we present Algorithm5 whose function is to simplify firewall rules. In Sec-tion 10, we give concluding remarks.

2. Related work

It has been observed that most firewalls on theInternet are poorly designed and have many config-uration errors in their rules [25,9]. There are twoapproaches to reduce firewall design errors. The firstapproach is to prevent errors from happening whendesigning firewalls. The second approach is to detecterrors after firewalls have been designed.

With the first approach, people have tried toinvent high-level languages that can be used tospecify firewall rules. Examples of such languagesare the simple model definition language in [6], theLisp-like language in [15], the declarative predicate

Page 5: Structured firewall design qalexliu/publications/FDD/StructuredFirewallDesign.pdf1.1. Firewall basics Firewalls are crucial elements in network secu-rity, and have been widely deployed

1110 M.G. Gouda, A.X. Liu / Computer Networks 51 (2007) 1106–1120

language in [7], and the high-level firewall languagein [1]. These high-level firewall languages are helpfulfor designing firewalls because otherwise peoplehave to use vendor specific languages to describefirewall rules. However, a firewall specified usingthese high-level firewall languages is still a sequenceof rules and the rules may still conflict. The threeproblems of consistency, completeness and com-pactness that are inherent in designing a firewallby a sequence of rules still remain. Our firewalldesign method belongs to the first approach, butwe propose a new firewall design paradigm thataddresses the three problems of consistency, com-pleteness and compactness. Our method is acomplementary and prior step to those high-levelfirewall languages.

With the second approach, two methods havebeen proposed previously. The first method is toanalyze the function of a firewall by issuing firewallqueries. A firewall query is a question regarding thefunction of a firewall. For example, the firewalladministrator may want to ask the question ‘‘Whichcomputers in the private network can receive pack-ets from a known malicious host in the outsideInternet?’’ The concept of firewall queries was intro-duced in [20,17]. A language for describing firewallqueries and an algorithm for processing firewallqueries are presented in [19].

The second method is conflict detection. Thebasic idea of this method is as follows. First, the fire-wall administrator uses a program to detect all pairsof conflicting rules. Second, he manually examinesevery pair of conflicting rules to see whether thetwo rules need to be swapped or a new rule needsto be added. How to efficiently detect all pairs ofconflicting rules in a firewall has been discussed in[16,11,21,5]. Similar to conflict detection, six typesof ‘‘anomalies’’ were defined in [3,4].

Patz et al. presented in [22] a ‘‘decorrelation algo-rithm’’ that takes policy rules and breaks themdown into decorrelated simple expressions. Thesprit of our paper is the opposite: we should designa firewall in a consistent (i.e., decorrelated) andcomplete fashion for correctness purposes, and thenautomatically generate a compact but possiblyinconsistent (i.e., correlated) firewall rules forefficiency purposes.

Firewall vulnerabilities are discussed and classi-fied in [18,12]. However, the focus of [18,12] arethe vulnerabilities of the packet filtering softwareand the supporting hardware part of a firewall,not the configuration of a firewall.

3. Firewall decision diagrams

A field Fi is a variable whose domain, denotedD(Fi), is a finite interval of non-negative integers.For example, the domain of the source address inan IP packet is [0,232 � 1].

A packet over fields F1, . . . ,Fd is a d-tuple(p1, . . . ,pd) where each pi (1 6 i 6 d) is an elementof D(Fi). We use R to denote the set of all packetsover fields F1, . . . ,Fd. It follows that R is a finite setand jRj = jD(F1)j · � � � · jD(Fd)j, where jRj denotesthe number of elements in set R and eachjD(Fi)j(1 6 i 6 d) denotes the number of elementsin set D(Fi).

A firewall decision diagram (FDD) f over fieldsF1, . . . ,Fd is an acyclic and directed graph that hasthe following five properties:

1. There is exactly one node in f that has no incom-ing edges. This node is called the root of f. Thenodes in f that have no outgoing edges are calledterminal nodes of f.

2. Each node v in f is labeled with a field, denotedF(v), such that

F ðvÞ 2fF 1; . . . ; F dg if v is non-terminal

faccept; discardg if v is terminal:

3. Each edge e in f is labeled with a non-empty setof integers, denoted I(e), such that if e is an out-going edge of node v, then we have

IðeÞ � DðF ðvÞÞ:4. A directed path in f from the root to a terminal

node is called a decision path. No two nodes ona decision path have the same label.

5. The set of all outgoing edges of a node v in f,denoted E(v), satisfies the following twoconditions:(a) Consistency: I(e) \ I(e 0) = ; for any two dis-

tinct edges e and e 0 in E(v).(b) Completeness: ¨e2E(v)I(e) = D(F(v)).

Fig. 2 shows an example of an FDD over twofields F1 and F2. The domain of each field is the inter-val [1, 10]. Note that in labelling the terminal nodes,we use letter ‘‘a’’ as a shorthand for ‘‘accept’’ andletter ‘‘d’’ as a shorthand for ‘‘discard’’. These twonotations are carried through the rest of this paper.

In this paper, the label of an edge in an FDD isalways represented by the minimum number ofnon-overlapping integer intervals whose unionequals the label of the edge. For example, one

Page 6: Structured firewall design qalexliu/publications/FDD/StructuredFirewallDesign.pdf1.1. Firewall basics Firewalls are crucial elements in network secu-rity, and have been widely deployed

Fig. 3. All rules represented by FDD in Fig. 2.

Fig. 2. An FDD example.

M.G. Gouda, A.X. Liu / Computer Networks 51 (2007) 1106–1120 1111

outgoing edge of the root is labeled with the set{1,2,3,4,9,10}, which is represented by the twointervals [1,4] and [9, 10].

For brevity, in the rest of this paper, we assumethat all packets and all FDDs are over the d fieldsF1, � � � ,Fd unless otherwise specified.

A firewall decision diagram maps each packet toa decision by testing the packet down the diagramfrom the root to a terminal node, which indicatesthe decision of the firewall for the packet. Eachnon-terminal node in a firewall decision diagramspecifies a test of a packet field, and each edgedescending from that node corresponds to somepossible values of that field. Each packet is mappedto a decision by starting at the root, testing the fieldthat labels this node, then moving down the edgewhose label contains the value of the packet field;this process is then repeated for the sub-diagramrooted at the new node.

A decision path in an FDD is represented byhv1e1 � � � vkekvk+1i where v1 is the root, vk+1 is a ter-minal node, and each ei (1 6 i 6 k) is a directed edgefrom node vi to node vi+1.

A decision path hv1e1 � � � vkekvk+1i in an FDDrepresents the following rule:

F 1 2 S1 ^ � � � ^ F d 2 Sd ! hdecisioni;

where

Si ¼IðejÞ if there is a node vj in the decision

path that is labeled with field F i

DðF iÞ otherwise:

8><>:

and hdecisioni is the label of the terminal node vk+1

in the path.For an FDD f, we use f.rules to denote the set of

all rules that are represented by all the decisionpaths of f. For any packet p, there is one and onlyone rule in f.rules that p matches because of the con-sistency and completeness properties of an FDD.For example, the rules represented by all the deci-

sion paths of the FDD in Fig. 2 are listed inFig. 3. Taking the example of the packet (7,9), itmatches only rule r4 in Fig. 3.

The semantics of an FDD f is defined as follows:for any packet p, f maps p to the decision of the rule(in fact the only rule) that p matches in f.rules. Moreprecisely, a packet (p1, . . . ,pd) is accepted by anFDD f iff there is a rule of the form

F 1 2 S1 ^ � � � ^ F d 2 Sd ! accept

in f.rules such that the condition p1 2 S1 ^ � � �^ pd 2 Sd holds. Similarly, a packet (p1, . . . ,pd) isdiscarded by an FDD f iff there is a rule of the form

F 1 2 S1 ^ � � � ^ F d 2 Sd ! discard

in f.rules such that the condition p1 2 S1 ^ � � � ^pd 2 Sd holds. For example, the packet (6,8) is dis-carded by the FDD in Fig. 2 because the rule thatthis packet matches is rule r4 in Fig. 3 and the deci-sion of this rule is ‘‘discard’’.

Let f be an FDD. The accept set of f, denotedf.accept, is the set of all packets that are acceptedby f. Similarly, the discard set of f, denoted f.discard,is the set of all packets that are discarded by f. Thesetwo sets associated with an FDD precisely define thesemantics of the FDD.

Based on the definitions of accept set and discardset, we have the following theorem. (Recall that Rdenotes the set of all packets over the fieldsF1, . . . ,Fd.)

Theorem 1 (Theorem of FDDs). For any FDD f,

the following two conditions hold:

1. f.accept \ f.discard = ;, and

2. f.accept [ f.discard = R.

Two FDDs f and f 0 are equivalent iff they haveidentical accept sets and identical discard sets, i.e.,f.accept = f 0.accept and f.discard = f 0.discard.

There are some similarities between the structureof firewall decision diagrams and that of intervaldecision diagrams [24], which are mainly used in

Page 7: Structured firewall design qalexliu/publications/FDD/StructuredFirewallDesign.pdf1.1. Firewall basics Firewalls are crucial elements in network secu-rity, and have been widely deployed

Fig. 5. A reduced FDD.

1112 M.G. Gouda, A.X. Liu / Computer Networks 51 (2007) 1106–1120

formal verification. However, there are two majordifferences. First, in a firewall decision diagram,the label of a non-terminal node must have a finitedomain; while in an interval decision diagram, thelabel of a non-terminal node may have an infinitedomain. Second, in a firewall decision diagram,the label of an edge is a set of integers which couldbe the union of several non-continuous intervals;while in an interval decision diagram, the label ofan edge is limited to only one interval. In broadersense, the structure of firewall decision diagrams isalso similar to other types of decision diagrams suchas the binary decision diagrams [8] and decisiontrees [23]. But note that the optimization goal ofreducing the total number of simple rules generatedis unique to firewall decision diagrams, which will beexplored next.

4. FDD reduction

In this section, we present an algorithm forreducing the number of decision paths in an FDD.This reduction helps to reduce the number of rulesgenerated from an FDD. First, we introduce twoconcepts: isomorphic nodes in an FDD and reducedFDDs.

Two nodes v and v 0 in an FDD are isomorphic iffv and v 0 satisfy one of the following two conditions:

1. Both v and v 0 are terminal nodes with identicallabels.

2. Both v and v 0 are non-terminal nodes and there isa one-to-one correspondence between the outgo-ing edges of v and the outgoing edges of v 0 suchthat every pair of corresponding edges have

Fig. 4. Algorithm 1 (F

identical labels and they both point to the samenode.

An FDD f is reduced iff it satisfies all of thefollowing three conditions:

1. No node in f has only one outgoing edge.2. No two nodes in f are isomorphic.3. No two nodes have more than one edge between

them.

Algorithm 1 (FDD reduction) in Fig. 4 takes anyFDD and outputs an equivalent but reduced FDD.The correctness of this algorithm follows directlyfrom the semantics of FDDs. Note that this algo-rithm for reducing an FDD is similar to the onedescribed in [8] for reducing a BDD.

As an example, if we apply Algorithm 1 to theFDD in Fig. 2, we get the reduced FDD in Fig. 5.Note that the FDD in Fig. 2 consists of six decisionpaths, whereas the FDD in Fig. 5 consists of threedecision paths.

5. FDD marking

A firewall rule of the form F1 2 S1 ^ � � � ^Fd 2 Sd! hdecisioni is simple iff every Si (1 6 i 6 d)

DD reduction).

Page 8: Structured firewall design qalexliu/publications/FDD/StructuredFirewallDesign.pdf1.1. Firewall basics Firewalls are crucial elements in network secu-rity, and have been widely deployed

Fig. 6. Two marked FDDs.

M.G. Gouda, A.X. Liu / Computer Networks 51 (2007) 1106–1120 1113

is an interval of consecutive non-negative integers.Because most firewalls require simple rules, we wantto minimize the number of simple rules generatedfrom an FDD. The number of simple rules gener-ated from a ‘‘marked version’’ of an FDD is lessthan or equal to the number of simple rules gener-ated from the original FDD. Next, we define amarked FDD.

A marked version f 0 of an FDD f is the same as f

except that exactly one outgoing edge of each non-terminal node in f 0 is marked ‘‘all’’. Since thelabels of the edges that are marked ‘‘all’’ donot change, the two FDDs f and f 0 have thesame semantics, i.e., f and f 0 are equivalent. Amarked version of an FDD is also called a marked

FDD.Fig. 6 shows two marked versions f 0 and f00 of

the FDD in Fig. 5. In f 0, the edge labeled [5,8]and the edge labeled [1,2] [ [5, 5] [ [9,10] are bothmarked all. In f00, the edge labeled [1, 4] [ [9,10]and the edge labeled [1,2] [ [5, 5] [ [9,10] are bothmarked all.

The load of a non-empty set of integers S, denotedload(S), is the minimal number of non-overlapping

loadðvÞ ¼

1 if v is terminalPki¼1

ðloadðeiÞ � loadðviÞÞ if v is non-termina

outgoing edges e1;

nodes v1; . . . ; vk res

8>>>><>>>>:

Fig. 7. Algorithm 2 (

integer intervals that cover S. For example, the loadof the set {1,2,3,5,8,9,10} is 3 because this set iscovered by the three integer intervals [1, 3], [5,5]and [8, 10], and this set cannot be covered by anytwo intervals.

The load of an edge e in a marked FDD, denotedload(e), is defined as follows:

loadðeÞ ¼1 if e is marked all

loadðIðeÞÞ otherwise:

The load of a node v in a marked FDD, denotedload(v), is defined recursively as follows:

l : suppose v has k

. . . ; ek; which point to

pectively

FDD marking).

Page 9: Structured firewall design qalexliu/publications/FDD/StructuredFirewallDesign.pdf1.1. Firewall basics Firewalls are crucial elements in network secu-rity, and have been widely deployed

1114 M.G. Gouda, A.X. Liu / Computer Networks 51 (2007) 1106–1120

The load of a marked FDD f, denoted load(f),equals the load of the root of f.

Different marked versions of the same FDD mayhave different loads. Fig. 6 shows two marked ver-sions f 0 and f00 of the same FDD in Fig. 5. The loadof f 0 is 5, whereas the load of f00 is 4.

As we will see in Section 8, for any two markedversions of the same FDD, the one with the smallerload will generate a smaller number of simplerules. Therefore, we should use the marked versionof FDD f that has the minimal load to generaterules.

Algorithm 2 (FDD marking) in Fig. 7 takes anyFDD and outputs a marked version that has theminimal load.

As an example, if we apply Algorithm 2 to thereduced FDD in Fig. 5, we get the marked FDDin Fig. 6(b).

The correctness of Algorithm 2 is stated inTheorem 2, whose proof is presented in the Appen-dix A.

Theorem 2. The load of an FDD marked by Algo-

rithm 2 (FDD Marking) is minimal.

6. Firewall generation

In this section, we present an algorithm for gen-erating a sequence of rules, which form a firewall,from a marked FDD such that the firewall has thesame semantics as the marked FDD. First, we intro-duce the semantics of a firewall.

A packet (p1, . . . ,pd) matches a rule F1 2 S1 ^� � �^ Fd 2 Sd! hdecisioni iff the condition p1 2S1 ^ � � � ^ pd 2 Sd holds. A firewall consists of asequence of rules such that for any packet there isat least one rule that the packet matches. A firewallmaps every packet to the decision of the first rulethat the packet matches. Let f be a firewall of asequence of rules. The set of all packets acceptedby f is denoted f.accept, and the set of all packetsdiscarded by f is denoted f.discard. The next theo-rem follows from these definitions. Recall that Rdenotes the set of all packets over the fieldsF1, . . . ,Fd.

Theorem 3 (Theorem of firewalls). For a firewall f

of a sequence of rules,

1. f.accept \ f.discard = ;, and

2. f.accept [ f.discard = R

Based on Theorem 1 and 3, we now extend theequivalence relations on FDDs to incorporate thefirewalls. Given f and f 0, where each is an FDD ora firewall, f and f 0 are equivalent iff they have identi-cal accept sets and identical discard sets, i.e.,f.accept = f 0.accept and f.discard = f 0.discard. Thisequivalence relation is symmetric, reflexive, andtransitive. We use f � f 0 to denote the equivalencerelation between f and f 0.

To generate an equivalent firewall from a markedFDD f, we basically make a depth-first traversal of f

such that for each non-terminal node v, the outgo-ing edge marked ‘‘all’’ of v is traversed after allthe other outgoing edges of v have been traversed.Whenever a terminal node is encountered, assuminghv1e1 � � � vkekvk+1i is the decision path where forevery i (1 6 i 6 k) ei is the most recently tra-versed outgoing edge of node vi, output a rule r asfollows:

F 1 2 S1 ^ � � � ^ F d 2 Sd ! F ðvkþ1Þ;

where

Si ¼

IðejÞ if the decision path has a node vj

that is labeled with field

F i and ej is not marked\all"

DðF iÞ otherwise:

8>>>><>>>>:

Note that the first rule generated by the aboveprocedure is the first rule in the resulting firewall,the second rule generated is the second rule in theresulting firewall, and so on.

For the above rule r, the predicate F1 2 S1 ^ � � �^ Fd 2 Sd is called the matching predicate of r.

The rule represented by the path hv1e1 � � � vkekvk+1iis F1 2 T1 ^ � � � ^ Fd 2 Td! F(vk+1), where

T i ¼IðejÞ if the decision path has a node vj

that is labeled with field F i

DðF iÞ otherwise:

8<:

We call the predicate F1 2 T1 ^ � � � ^ Fd 2 Td theresolving predicate of the above rule r. Note that ifa packet satisfies the resolving predicate of r, r isthe first rule that the packet matches in the firewallgenerated. If a packet satisfies the resolving predi-cate of rule r in firewall f, we say the packet isresolved by r in f.

Page 10: Structured firewall design qalexliu/publications/FDD/StructuredFirewallDesign.pdf1.1. Firewall basics Firewalls are crucial elements in network secu-rity, and have been widely deployed

Fig. 8. Algorithm 3 (firewall generation).

M.G. Gouda, A.X. Liu / Computer Networks 51 (2007) 1106–1120 1115

Algorithm 3 (firewall generation) in Fig. 8 takesany marked FDD and outputs an equivalent fire-wall. Recall that the ith rule output by Algorithm3 is the ith rule in the firewall generated. The cor-rectness of this algorithm follows directly from thesemantics of FDDs and firewalls. In Algorithm 3,for every rule generated, we also generate its match-ing predicate and its resolving predicate. In the nextsection, we will see that these two predicates associ-ated with each rule play important roles in removingredundant rules.

As an example, if we apply Algorithm 3 to themarked FDD in Fig. 6(b), we get the firewall inFig. 9.

Fig. 9. A generated firewall.

7. Firewall compaction

Firewalls often have redundant rules. A rule in afirewall is redundant iff removing the rule does notchange the semantics of the firewall, i.e., does notchange the accept set and the discard set of the fire-wall. Removing redundant rules from a firewallproduces an equivalent firewall but with fewer rules.For example, the rule r2 in Fig. 9 is redundant.Removing this rule yields an equivalent firewall withtwo rules, which are shown in Fig. 10.

In this section, we present an efficient algorithmfor discovering redundant rules. Algorithm 4 (fire-wall compaction) in Fig. 11 takes any firewall andoutputs an equivalent but more compact firewall.

In Algorithm 4, ‘‘ri.rp implies rk.mp’’ means thatfor any packet p, if p satisfies ri.rp, then p satisfiesrk.mp. Checking whether ri.rp implies rk.mp is sim-ple. Let ri.rp be F1 2 T1 ^ F2 2 T2 ^ � � � ^ Fd 2 Td

and let rk.mp be F1 2 S1 ^ F2 2 S2 ^ � � � ^ Fd 2 Sd.Then, ri.rp implies rk.mp iff for every j, where1 6 j 6 d, the condition Tj � Sj holds.

Checking whether no packet satisfies both ri.rp

and rj.mp is simple. Let ri.rp be F1 2 T1 ^ F2 2

Fig. 10. A firewall with no redundant rules.

Page 11: Structured firewall design qalexliu/publications/FDD/StructuredFirewallDesign.pdf1.1. Firewall basics Firewalls are crucial elements in network secu-rity, and have been widely deployed

Fig. 12. Algorithm 5 (firewall simplification).

Fig. 11. Algorithm 4 (firewall compaction).

1116 M.G. Gouda, A.X. Liu / Computer Networks 51 (2007) 1106–1120

T2 ^ � � � ^Fd 2 Td and let rj.mp be F1 2 S1 ^ F2 2S2 ^ � � � ^ Fd 2 Sd. We have ri.rp ^ rj.mp = F1 2(T1 \ S1) ^ F2 2 (T2 \ S2) ^ � � � ^ Fd 2 (Td \ Sd).Therefore, no packet satisfies both ri.rp and rj.mp iffthere exists j, where 1 6 j 6 d, such that Tj \ Sj = ;.

The correctness of Algorithm 4 is stated inTheorem 4, whose proof is presented in AppendixA.

Theorem 4. If we apply Algorithm 4 to a firewall f

and get the resulting firewall f 0, then f and f 0 are

equivalent.

As an example, if we apply Algorithm 4 to thefirewall in Fig. 9, we get the compact firewall inFig. 10.

Let n be the number of rules in a firewall and d bethe number of packet fields that a rule checks, thecomputational complexity of Algorithm 4 isO(n2

* d). Note that d can be regarded as a constantbecause d is usually small. Most firewalls checks fivepacket fields: source IP address, destination IPaddress, source port number, destination port num-ber, and protocol type.

Page 12: Structured firewall design qalexliu/publications/FDD/StructuredFirewallDesign.pdf1.1. Firewall basics Firewalls are crucial elements in network secu-rity, and have been widely deployed

Fig. 14. Five steps of our firewall design method (f � f1 � f2

� f3 � f4 � f5).

M.G. Gouda, A.X. Liu / Computer Networks 51 (2007) 1106–1120 1117

8. Firewall simplification

Most firewall implementations, such as Linux’sipchains [2], requires each firewall rule to be simple.Recall that a firewall rule of the form F1 2 S1 ^ � � �^ Fd 2 Sd! hdecisioni is simple iff every Si

(1 6 i 6 d) is an interval of consecutive non-negativeintegers. A firewall is simple iff all its rules aresimple.

Algorithm 5 (firewall simplification) in Fig. 12takes any firewall and outputs an equivalent firewallin which each rule is simple. The correctness of thisalgorithm follows directly from the semantics offirewalls.

As an example, if we apply Algorithm 5 tothe firewall in Fig. 10, we get the firewall inFig. 13.

What we get from Algorithm 5 is a simple fire-wall. For each rule F1 2 S1 ^ � � � ^ Fi 2 Si ^ � � � ^Fd 2 Sd! hdecisioni, Si is an interval of non-nega-tive integers. Some existing firewall products, suchas Linux’s ipchains [2], require that Si be repre-sented in a prefix format such as 192.168.0.0/16,where 16 means that the prefix is the first 16 bitsof 192.168.0.0 in a binary format. In this paper westop the level of discussion at simple rules becausean integer interval can be converted to multiple pre-fixes algorithmically. For example, integer interval[2,8] can be converted to three prefixes: 001*,01*,1000. A w-bit integer interval can be converted toat most 2w-2 prefixes [14].

9. Summary of structured firewall design

In this section, we summarize our structured fire-wall design method. Fig. 14 shows the five steps ofthis method.

Our firewall design method starts by a user spec-ifying an FDD f. The consistency and completenessproperties of f can be verified automatically basedon the syntactic requirements of an FDD. Afteran FDD is specified, it goes through the followingfive steps, and we get a simple firewall that isequivalent to the FDD. The first step is to applyAlgorithm 1 (FDD reduction) to the user-specifiedFDD. We then get an equivalent but reduced

Fig. 13. A simple firewall.

FDD, which has a smaller number of decisionpaths. The second step is to apply Algorithm 2(FDD marking) to the reduced FDD. We then getan equivalent FDD where each non-terminal nodehas exactly one outgoing edge that is marked all.The third step is to apply Algorithm 3 (FDD gener-ation) to the marked FDD. We then get an equiva-lent firewall. The fourth step is to apply Algorithm 4(firewall compaction) to the generated firewall. Wethen get an equivalent firewall with a smaller num-ber of rules. The fifth step is to apply Algorithm 5(firewall simplification) to this firewall. We thenget the final result: a simple firewall that is equiva-lent to the user-specified FDD.

Three of the above five algorithms, namelyAlgorithm 1 (FDD reduction), Algorithm 2 (FDDmarking) and Algorithm 4 (Firewall compaction),are for the purpose of reducing the number of rulesin the final simple firewall. Algorithm 1 (FDDreduction) does so by reducing the number of deci-sion paths in the user-specified FDD. Algorithm 2(FDD marking) does so by reducing the load ofsome edges in the FDD. Algorithm 4 (firewall com-paction) does so by removing some redundant rulesfrom the generated firewall. These three algorithmscould reduce the number of simple rules dramati-cally. Consider the running example illustrated inFigs. 2–13. If we directly generate and simplifyour firewall from the FDD in Fig. 2, ignoring Algo-rithm 1, 2, and 4, we would have ended up with asimple firewall that has 14 rules. However, withthe help of these three algorithms, we end up witha simple firewall that has only three rules.

Page 13: Structured firewall design qalexliu/publications/FDD/StructuredFirewallDesign.pdf1.1. Firewall basics Firewalls are crucial elements in network secu-rity, and have been widely deployed

1118 M.G. Gouda, A.X. Liu / Computer Networks 51 (2007) 1106–1120

10. Conclusions

Our contribution in this paper is twofold. First,we propose the structured firewall design methodthat addresses the consistency problem, the com-pleteness problem, and the compactness problem.These three problems are inherent in the currentpractice of designing a firewall directly as a sequenceof (possibly conflicting) rules. Our method startswith a decision diagram that ensures the consistencyand completeness properties, and ends up with asequence of rules that ensures the compactnessproperty. In this process, the user only deals witha firewall decision diagram, which is the formalspecification of a firewall. Converting a decision dia-gram to a compact sequence of rules is automati-cally carried by a series of five algorithmspresented in this paper. Second, we present threeoptimization techniques, namely FDD reduction,FDD marking, and firewall compaction, for reduc-ing the total number of rules generated from a fire-wall decision diagram.

In this paper, for ease of presentation, we assumethat a firewall maps every packet to one of twodecisions: accept or discard. Most firewall soft-ware supports more than two decisions such asaccept, accept-and-log, discard, and discard-and-log. Our firewall design method can be straightfor-wardly extended to support more than twodecisions.

The design method discussed in this paper is notlimited to just firewalls. Rather, the techniques andalgorithms presented in this paper are extensible toother rule-based systems such as general packetclassifiers and IPsec rules.

Appendix A. Proof of Algorithm 2

Consider an FDD f. Let f 0 be the version markedby algorithm 2, and let f00 be an arbitrary markedversion. Next we prove that load(f 0) 6 load(f00).

Consider a node v, which has k outgoing edgese1,e2, . . . ,ek and these edges point to v1,v2, . . . ,vk

respectively, such that the loads of v1,v2, . . . ,vk inf 0 is the same as those in f00. Clearly such node v

exists because the load of any terminal node is con-stant 1.

Let ei be the edge marked ALL in f 0 and ej be theedge marked ALL in f00. Suppose i 5 j. We useload 0(v) to denote the load of node v in f 0 andload00(v) to denote the load of node v in f00. We thenhave

load 0ðvÞ ¼Xi�1

t¼1

ðloadðetÞ � loadðvtÞÞ þ loadðviÞ

þXk

t¼iþ1

ðloadðetÞ � loadðvtÞÞ

load 00ðvÞ ¼Xj�1

t¼1

ðloadðetÞ � loadðvtÞÞ þ loadðvjÞ

þXk

t¼jþ1

ðloadðetÞ � loadðvtÞÞ

load 0ðvÞ � load 00ðvÞ ¼ ðloadðejÞ � 1Þ � loadðvjÞ� ðloadðeiÞ � 1Þ � loadðviÞ

According to Algorithm 2, (load(ej) � 1) ·load(vj) 6 (load(ei) � 1) · load(vi). So, load 0(v) 6load00(v).

Apply the above argument to any node v in f, wehave load 0(v) 6 load00(v). So, the load of an FDDmarked by Algorithm 2 is minimal.

Appendix B. Proof of Theorem 4

Suppose for the rule ri in firewall hr1, . . . , rni,there exist a rule rk in this firewall, wherei < k 6 n, such that the following four conditionshold:

1. redundant[k] = false.2. ri and rk have the same decision.3. ri.rp implies rk.mp.4. for every rule rj, where i < j < k, at least one of

the following three conditions holds:(a) redundant[j] = true.(b) ri and rj have the same decision.(c) no packet satisfies both ri.rp and rj.mp.

If we remove rule ri from firewall hr1, . . . , rni, thepackets whose decision may be affected are thepackets that are resolved by ri in hr1, . . . , rni, i.e.,the packets that satisfy ri.rp. Let S be the set ofall the packets that satisfy ri.rp. Because ri.rp

implies rk.mp and redundant[k] = false, if we removerule ri, the packets in S will be resolved by the rulesfrom ri+1 to rk in hr1, . . . , ri�1, ri+1, . . . , rni. Considera rule rj where i < j < k. If redundant[j] = true, weassume rj has been removed; therefore, rule rj doesnot affect the decision of any packet in S. If the tworules ri and rj have the same decision, then rule rj

does not affect the decision of any packet in S. If

Page 14: Structured firewall design qalexliu/publications/FDD/StructuredFirewallDesign.pdf1.1. Firewall basics Firewalls are crucial elements in network secu-rity, and have been widely deployed

M.G. Gouda, A.X. Liu / Computer Networks 51 (2007) 1106–1120 1119

no packet satisfies both ri.rp and rj.mp, then anypacket in S does not match rule rj; therefore, rulerj does not affect the decision of any packet in S.Note that ri and rk have the same decision. There-fore, for any packet p in S, the decision thatthe firewall hr1, . . . , ri�1, ri+1, . . . , rni makes for p

is the same as the decision that the firewallhr1, . . . , ri�1, ri, ri+1, . . . , rni makes for p. So rule ri

is redundant.Suppose we apply Algorithm 4 to a firewall f.

Since any rule removed by Algorithm 4 is redun-dant, the resulting firewall f 0 is equivalent to the ori-ginal firewall f.

References

[1] High level firewall language. Available from: <http://www.hlfl.org/>.

[2] ipchains. Available from: <http://www.tldp.org/howto/ipchains-howto.html>.

[3] E. Al-Shaer, H. Hamed, Discovery of policy anomalies indistributed firewalls, in: IEEE INFOCOM’04, 2004, pp.2605–2616.

[4] E. Al-Shaer, H. Hamed, R. Boutaba, M. Hasan, Conflictclassification and analysis of distributed firewall policies,IEEE Journal on Selected Areas in Communications (JSAC)23 (10) (2005) 2069–2084.

[5] F. Baboescu, G. Varghese, Fast and scalable conflictdetection for packet classifiers, in: Proceedings of the10th IEEE International Conference on Network Protocols,2002.

[6] Y. Bartal, A.J. Mayer, K. Nissim, A. Wool, Firmato: a novelfirewall management toolkit, in: Proceeding of the IEEESymposium on Security and Privacy, 1999. pp. 17–31.

[7] A. Begel, S. McCanne, S.L. Graham, BPF+: exploitingglobal data-flow optimization in a generalized packetfilter architecture, in: Proceedings of ACM SIGCOMM’99, 1999.

[8] R.E. Bryant, Graph-based algorithms for boolean functionmanipulation, IEEE Transactions on Computers 35 (8)(1986) 677–691.

[9] CERT, Test the firewall system. Available from: <http://www.cert.org/security-improvement/practices/p060.html>.

[10] E.W. Dijkstra, Goto statement considered harmful, Com-munications of the ACM 11 (3) (1968) 147–148.

[11] D. Eppstein, S. Muthukrishnan, Internet packet filter man-agement and rectangle geometry, in: Symposium on DiscreteAlgorithms, 2001, pp. 827–835.

[12] M. Frantzen, F. Kerschbaum, E. Schultz, S. Fahmy, Aframework for understanding vulnerabilities in firewallsusing a dataflow model of firewall internals, Computersand Security 20 (3) (2001) 263–270.

[13] M.G. Gouda, A.X. Liu, A model of stateful firewalls and itsproperties, in: Proceedings of the IEEE International Con-ference on Dependable Systems and Networks (DSN-05),2005, pp. 320–327.

[14] P. Gupta, N. McKeown, Algorithms for packet classifica-tion, IEEE Network 15 (2) (2001) 24–32.

[15] J.D. Guttman, Filtering postures: local enforcement forglobal policies, in: Proceedings of IEEE Symposium onSecurity and Privacy, 1997, pp. 120–129.

[16] A. Hari, S. Suri, G.M. Parulkar, Detecting and resolvingpacket filter conflicts, in: Proceedings of IEEE INFOCOM,2000, pp. 1203–1212.

[17] S. Hazelhurst, A. Attar, R. Sinnappan, Algorithms forimproving the dependability of firewall and filter rule lists, in:Proceedings of the Workshop on Dependability of IPApplications, Platforms and Networks, 2000.

[18] S. Kamara, S. Fahmy, E. Schultz, F. Kerschbaum, M.Frantzen, Analysis of vulnerabilities in internet firewalls,Computers and Security 22 (3) (2003) 214–232.

[19] A.X. Liu, M.G. Gouda, H.H. Ma, A.H. Ngu, Firewallqueries, in: T. Higashino (Ed.), Proceedings of the 8thInternational Conference on Principles of DistributedSystems, Lecture Notes in Computer Science, 3544,Springer-Verlag, 2004, pp. 124–139.

[20] A. Mayer, A. Wool, E. Ziskind, Fang: A firewall analysisengine, in: Proceedings of IEEE Symposium on Security andPrivacy, 2000, pp. 177–187.

[21] J.D. Moffett, M.S. Sloman, Policy conflict analysis indistributed system management, Journal of OrganizationalComputing 4 (1) (1994) 1–22.

[22] G. Patz, M. Condell, R. Krishnan, L. Sanchez, Multidimen-sional security policy management for dynamic coalitions,in: Proceedings of the DARPA Information SurvivabilityConference and Exposition (DISCEX II), 2001.

[23] J. Quinlan, Induction of decision trees, Machine Learning 1(1) (1986) 81–106.

[24] K. Strehl, L. Thiele, Interval diagrams for efficient symbolicverification of process networks, IEEE Transactions onComputer-Aided Design of Integrated Circuits and Systems19 (8) (2000) 939–956.

[25] A. Wool, A quantitative study of firewall configurationerrors, IEEE Computer 37 (6) (2004) 62–67.

Mohamed G. Gouda was born in Egypt.His first B.Sc. was in Engineering and hissecond was in Mathematics; both arefrom Cairo University. Later, he obtainedM.A. in Mathematics from York Uni-versity and Masters and Ph.D. in Com-puter Science from the University ofWaterloo. He worked for the HoneywellCorporate Technology Center in Min-neapolis 1977–1980. In 1980, he joinedthe University of Texas at Austin where

he currently holds the Mike A. Myers Centennial Professorship inComputer Sciences. He spent one summer at Bell labs in Murray

Hill, one summer at MCC in Austin, and one winter at theEindhoven Technical University in the Netherlands.

His research areas are distributed and concurrent computingand network protocols. In these areas, he has been working onabstraction, formality, correctness, non-determinism, atomicity,reliability, security, convergence, and stabilization. He haspublished over 60 journal papers, and over 80 conference andworkshop papers. He has supervised 19 Ph.D. Dissertations.

He was the founding Editor-in-Chief of the Springer-Verlagjournal Distributed Computing 1985–1989. He served on theeditorial board of Information Sciences 1996–1999, and he is

Page 15: Structured firewall design qalexliu/publications/FDD/StructuredFirewallDesign.pdf1.1. Firewall basics Firewalls are crucial elements in network secu-rity, and have been widely deployed

1120 M.G. Gouda, A.X. Liu / Computer Networks 51 (2007) 1106–1120

currently on the editorial boards of Distributed Computing andthe Journal of High Speed Networks.

He was the program committee chairman of ACM SIG-COMM Symposium in 1989. He was the first program committeechairman of IEEE International Conference on Network Proto-cols in 1993. He was the first program committee chairman ofIEEE Symposium on Advances in Computers and Communica-tions, which was held in Egypt in 1995. He was the programcommittee chairman of IEEE International Conference onDistributed Computing Systems in 1999. He is on the steeringcommittee of the IEEE International Conference on NetworkProtocols and on the steering committee of the Symposium onSelf-Stabilizing Systems, and was a member of the Austin Tues-day Afternoon Club from 1984 till 2001.

He is the author of the textbook ‘‘Elements of NetworkProtocol Design’’, published by John-Wiley & Sons in 1998. Thisis the first ever textbook where network protocols are presentedin an abstract and formal setting. He also coauthored, withTommy M. McGuire, the monograph ‘‘The Austin ProtocolCompiler’’, published by Springer in 2005.

He is the 1993 winner of the Kuwait Award in Basic Sciences.He was the recipient of an IBM Faculty Partnership Award forthe academic year 2000–2001 and again for the academic year2001–2002 and became a Fellow of the IBM Center for AdvancedStudies in Austin in 2002. He won the 2001 IEEE Communica-tion Society William R. Bennet Best Paper Award for his paper‘‘Secure Group Communications Using Key Graphs’’, coau-

thored with C.K. Wong and S.S. Lam and published in theFebruary 2000 issue of the IEEE/ACM Transactions onNetworking (vol. 8, Number 1, pp. 16–30). In 2004, his paper‘‘Diverse Firewall Design’’, coauthored with Alex X. Liu andpublished in the proceedings of the International Conference onDependable Systems and Networks, won the William C. Carteraward.

Alex X. Liu received the B.S. degree incomputer sciences from Jilin University,China, in 1996. He received the M.S.degree in computer sciences from theUniversity of Texas at Austin in 2002,where he is currently working toward aPh.D. degree in computer sciences. Hehas published 14 refereed conference andjournal papers on a variety of networksecurity topics. He won the 2004 IEEE&IFIP William C. Carter Award, the 2004

National Outstanding Overseas Students Award sponsored bythe Ministry of Education of China, the 2005 George H. Mitchell

Award for Excellence in Graduate Research in the University ofTexas at Austin, and the 2005 James C. Browne OutstandingGraduate Student Fellowship in the University of Texas atAustin. His research interests include network security, computersecurity, networks protocols, and distributed systems.