Academia.eduAcademia.edu

Reasoning about the Security Configuration of SAN Switch Fabrics

2011

Management of a switch fabric security configuration, a core component of Storage Area Networks, is complex and error prone. As a consequence, misconfiguration of and/or a poor understanding of a switch fabric may unnecessarily expose an enterprise to known threats. A formal model of a switch security configuration is presented. This model is reasoned over to help manage complex switch fabric security configurations.

Reasoning about the Security Configuration of SAN Switch Fabrics William M. Fitzgerald Simon N. Foley Dept. of Computer Science University College Cork Cork, Ireland Email: wfitzgerald@4c.ucc.ie Dept. of Computer Science University College Cork Cork, Ireland Email: s.foley@cs.ucc.ie Abstract—Management of a switch fabric security configuration, a core component of Storage Area Networks, is complex and error prone. As a consequence, misconfiguration of and/or a poor understanding of a switch fabric may unnecessarily expose an enterprise to known threats. A formal model of a switch security configuration is presented. This model is reasoned over to help manage complex switch fabric security configurations. I. I NTRODUCTION An integral part of a Storage Area Network (SAN) is its switch fabric. Intuitively, a SAN switch provides interconnections between SAN client nodes (initiators) and storage array nodes (targets), primarily to exchange SCSI traffic [1]. A significant challenge in providing security for a SAN is attaining a degree of confidence that the security configuration of its switches adequately addresses the (security) threats. A misconfiguration may result in unapproved access, the denial of approved access or inadequate mitigation of threats to SAN nodes. In practice, switch security configuration is more complex than simply providing firewall-like access-control rules. Rather, switch security configuration must be considered in the context of other security services required by the switch fabric, thereby increasing the likelihood of misconfiguration. For example, when generating access-control rules for the enterpriselevel SAN security requirement: “permit switch fabric interaction with trusted remote authentication servers”, a security configuration is not just defined in terms of a set of packetfilter access-control rules. The security configuration of the switch fabric must also consider a set of authentication accesscontrol rules that specify, at an application-level, the trusted remote authentication servers, and, furthermore, whether the authentication access-control rules defined (perhaps on a single switch source) are to be distributed across the entire switch fabric (another set of application-level access-control rules). This paper considers the problem of reasoning about and managing complex security configurations of SAN switches. A formal model for switch security configuration is developed using Description Logic [2]. This approach builds on previous research [3]–[5] that demonstrated the effectiveness of using Description Logic to model and reason about firewall rules. While there are extensive research results on query [3], [6], [7] and structural [3], [8], [9] analysis of firewall rules, the authors are unaware of research published on the similar analysis of SAN switch rules. Switch security configuration is typically a more complex proposition than conventional firewalls and the paper describes how such reasoning can be done in the proposed model of switch security. For example, a query such as: “has read-only access to a particular disk on a specific target storage array within a given zone defined in the context of a particular VSAN been granted to trusted initiator client nodes?” may be formalized within the model. Structural analysis is also considered to detect access-control rule conflicts. The contribution of this paper is a formal model for switch security configuration with which to perform query and structural analysis. In addition, structural analysis definitions that define inter-shadowing and inter-spurious conflicts between firewall-based and zone-based switch security configurations are presented. The paper is organised as follows. Section II provides an overview of the switch fabric security configuration challenges. An overview of Description Logic and Semantic Web Rule Language is presented in Section III. Section IV presents a Description Logic based model for SAN switch security configuration. Additional structural analysis definitions are defined in Section V. Section VI provides some examples that demonstrate analysis of switch fabric security configurations. II. S WITCH S ECURITY C ONFIGURATION This section provides examples of security configuration challenges that need to be considered with respect to configuring access-control rules for switch management and for traffic routed through the switch. A. Switch Management Configuring switch management access controls is not simply about opening the relevant management service ports such as SSH or remote authentication service ports for example RADIUS. One needs to consider whether management access to the switch is permitted for out-of-band management (over an Ethernet interface) or in-band management (where TCP/IP traffic is tunnelled over a Fibre Channel interface). One may also wish to permit certain SAN initiators (for example, IP address white-list) and deny others. It may also be considered prudent to define a set of access-control rules that explicitly state what privileges a SAN administrator is authorised for, once authenticated to a switch. For example, SAN administrators are typically authorised for root privileges while SAN network operators are not. Similarly, are Authentication, Authorisation & Accounting (AAA) services performed locally on each switch within the SAN fabric or centrally through a remote AAA server farm typically hosted on a separate LAN. If performed remotely, are the access-control rules correctly providing intended secure SAN-to-LAN AAA communication? One has also to consider reflecting locally on each switch, a comparable set of AAA access-control rules defined on remote AAA servers as a precautionary redundancy countermeasure should remote AAA communication fail. B. Traffic Management With respect to traffic routed through the switch between initiator clients and target storage arrays, it is not simply about making for example the iSCSI TCP port 3260 accessible for all traffic. Furthermore, iSCSI traffic for example does not necessarily have to communicate on the IANA [10] recommended port of 3260. It may also be a security requirement to deny certain SAN initiators (for example, IP address or World Wide Name black-list) access to all storage arrays, only accept iSCSI traffic from some initiators and require other initiators to use iSCSI over IPSec. One may also need to consider accesscontrol rules that restrict certain initiators access to a specific disk or set of disks within a storage array and so forth. C. Structural Misconfiguration Management While the SAN access-control rules on an individual basis may be compliant with the enterprise-level security requirements, the structural relationships between the access-control rules themselves may introduce a scenario such that the overall configuration is inconsistent. For example, firewall-based access-control rules in a switch configuration are tested in the sequence in which they appear in the configuration. That is, once a packet has been successfully matched against an accesscontrol rule, no further rule tests are carried out for that packet. Thus, an access-control rule placed out of sequence may unintentionally cause a misconfiguration. Consider two accesscontrol rules, where one permits iSCSI traffic to a storage array and the other denies access to all network resources, including the storage array. Depending on the sequence of these two access-control rules, a misconfiguration may result. Misconfiguration may also occur between access-control rules deployed on multiple inter-operating SAN access controls. For example, an upstream switch may be unintentionally denying intended storage array iSCSI traffic that is correctly configured on an another downstream switch. In practice, managing a SAN switch security configuration that is aligned with the enterprise-level security requirements is complex and error-prone. Configuration is largely dependent on the expert-knowledge of the SAN administrator drawing upon best practice and standards. III. D ESCRIPTION L OGIC AND SWRL Description Logic (DL) is a decidable portion of first-order logic [2]. DL concepts represent sets of individuals (instances) and properties (roles) represent binary relations applied to individuals. For example, the DL assertion: StorageArray ⊑ Server ⊓ ∃≥1 hosts.Service ⊓ ∃≥1 isProtectedBy.ProtectionServer specifies that a storage array hosts one or more services (for example iSCSI) and is protected by one or more protection servers (for example firewalls and/or switches). The Semantic Web Rule Language (SWRL) complements DL, providing the ability to infer additional information but at the expense of decidability. SWRL rules are horn-clause like rules written in terms of DL concepts, properties and individuals. A SWRL rule is composed of an antecedent (body) part and a consequent (head) part, both of which consist of positive conjunctions of atoms [11]. For example, the requirement that servers hosting iSCSI based services protected by protection servers require those protection servers to open port 3260, is expressed in the following SWRL rule. StorageArray(?sa) ∧ hosts(?sa,?iSCSI) ∧ hasPort(?iSCSI, 3260) ∧ isProtectedBy(?sa,?ps) → hasOpenPort(?ps,3260) where 3260 is an atom/constant and ?sa, ?iSCSI, ?ps represent unbound variables in the rule. IV. S WITCH ACCESS C ONTROL M ODEL A formal model for SAN switch security configuration is developed using DL [2] and the SWRL [11]. Note that in presenting the model components, for reasons of space, complete specifications in particular, disjoint axioms, subproperties or closure axioms are omitted. Similarly for reasons of space, not all switch access controls modelled, for example port-based, iSCSI-based and remote authentication-based access controls, are presented. However, a relevant portion of the model is presented that conveys the challenges identified within this paper. While the model for the SAN switch security configuration presented in this paper is Cisco centric [12], [13], much of the model attributes are implementation neutral. Concept CiscoM DSRule defines the set of Cisco MDS access-control rules. This concept is further specialised to more specific sub-concepts, namely concepts ExecRule and Conf igRule. CiscoMDSRule ≡ ExecRule ⊔ ConfigRule Concept ExecRule defines a set of execution-mode accesscontrol rules that enable temporary switch configuration modifications, debugging and display of system information. Concept Conf igRule defines a set of configuration-mode accesscontrol rules that enable permanent (across reboots) switch configuration modifications. These two sub-concepts are in turn further specialised to form a hierarchy of access-control rules. A fragment of this hierarchy is illustrated in Figure 1. The double-headed arrow represents a subsumption relation. CiscoMDSRule ConfigRule ExecRule ShowRule DebugRule ClearRule Fig. 1. IPAccessRule RoleRule RadiusRule VSANRule ZoneRule Fragment of Cisco MDS Rule Hierarchy. A. TCP/IP-based Access Control List Traditional TCP/IP based traffic plays an important role within a SAN fabric. For example, configuration management of a SAN switch or communication with remote AAA servers are performed over TCP/IP protocols. Modern SAN switches have the ability to route TCP/IP traffic over traditional Ethernet or tunnelled over Fibre Channel interfaces. As a consequence, the SAN fabric is exposed to traditional TCP/IP based threats. While upstream network access control mechanisms such as firewalls and Intrusion Detection Systems provide protection against known TCP/IP based threats, it is considered best practice to adopt a security in depth approach [14], [15]. Therefore, switch Access Control Lists (ACLs) are used to make decisions about whether or not to permit a packet. Consider as a running example switch configuration management where management may be performed using the Fabric Manager (via SNMP) or the Command Line Interface (via SSH or Telnet). These management services are accessible by all SAN nodes connected to the switch whether authorised or not. Therefore, it becomes necessary, in addition to a management service’s own security controls, to restrict management access to SAN administrator IP addresses only. Concept IPAccessListRule represents a set of TCP/IP-based ACL rules. Each access-control rule takes the form of a series of filter conditions on packet fields that must be met in order for that access-control rule to be applicable with a consequent action for the matching packet. A TCP/IP access-control rule is composed of one or more (∃ restriction) protocols (property hasP roto), one or more source and destination IP addresses (properties hasSrcIP and hasDstIP ), one or more ports (property hasDstP ort), zero or more (∀ restriction) connection states (property hasState), zero or more ICMP Types (property hasICM P T ype) and one action. IPAccessListRule ⊑ ConfigRule ⊓ ∃≥1 hasProto.Protocol ⊓ ∃≥1 hasSrcIP.IPAddress ⊓ However, the reader is referred to [3] where these concepts are defined within a model of the TCP/IP stack developed as part of previous research [4]. Concept Action is an enumerated set of actions (individuals) that can be taken against a matching packet. Action ≡ {permit, deny, log&deny} For a TCP/IP-based access-control rule to take effect it must be first assigned a switch interface and then assigned a direction (inbound or outbound) in which it is to filter packets [12]. Therefore, each access-control rule has a dependency (dependsOn property) with exactly two other Cisco MDS rules, namely those defined by concepts InterfaceRule and IPAccessGroup respectively. A hierarchy of TCP/IP-based ACLs are defined to represent categories of access-control rules that may be implemented by SAN switches. For example, concept M gmtACL is representative of the TCP/IP-based access-control rules that are applicable to a switch’s management interface. MgmtACL ⊑ IPAccessListRule The following SAN security requirement stating that “a SAN administrator host having an IP address of 192.168.1.20 is permitted inbound SSH access to the SAN switch management interface (mgmt0) with an IP address of 192.168.1.1” is characterised by the following three Cisco MDS rules. ip access-list mgmt-ACL permit tcp 192.168.1.20 192.168.1.1 eq port ssh interface mgmt 0 ip access-group mgmt-ACL in Individual mACL, an instance of concept M gmtACL, represents the ‘ip access-list’ access-control rule including its dependency relationship with access-control rules ‘interface’ and ‘ip access-group’. MgntACL(mACL) ← hasProto(mACL, tcp) ⊓ hasSrcIP(mACL, ip192.168.1.20) ⊓ hasDstIP(mACL, ip192.168.1.1) ⊓ hasPort(mACL, p22) ⊓ hasAction(mACL, permit) ⊓ dependsOn(mACL, mgnt0) ⊓ dependsOn(mACL, mgnt0Inbound) ∃≥1 hasDstIP.IPAddress ⊓ ∃≥1 hasDstPort.Port ⊓ where individuals mgnt0 and mgnt0Inbound are instances of concepts InterfaceRule and IPAccessGroup respectively. ∀≥0 hasState.State ⊓ ∀≥0 hasICMPType.ICMPType ⊓ ∃=1 hasAction.Action ⊓ B. Role-based Access Control ∃=2 dependsOn.CiscoMDSRule For reasons of space, concepts P rotocol, IP Address, P ort, State and ICM P T ype are not defined in this paper. The previous section discussed the importance of restricting access to management services of a switch to SAN administrators only. Adopting the principle of least privilege is considered best practice. Therefore, one may also want to restrict the set of privileges in terms of access-control rule permissions that each SAN administrator is authorised for. Concept RoleRule represents the set of roles (individuals) such that each access-control rule is composed of a single rule order index (property hasOrder), a privilege (property canExecute) with respect to one of five Cisco MDS rule categories, a single action (individuals permit or deny) applicable to that privilege, one or more users that a role is intended for (property isRoleOf) and zero or more VSANs for which that role isAppliedT o. Note, VSANs are discussed in Section IV-C and are analogous to Virtual Local Area Networks (VLANs). RoleRule ⊑ ConfigRule ⊓ ∃=1 hasOrder.Integer ⊓ ∃=1 canExecute.(ConfigRule ⊔ ExecRule ⊔ DebugRule ⊔ ShowRule ⊔ ClearRule) ⊓ ∃=1 hasAction.Action ⊓ ∃≥1 isRoleOf.User ⊓ ∀≥0 isAppliedTo.VSANDB Concept Role is further specialised to provide a hierarchy of roles. For example, a role for a SAN operator (concept OpRole) and a SAN administrator (concept AdminRole). OpRole, AdminRole ⊑ RoleRule Role-based access control is important to minimise unnecessary threats with respect to unauthorised modification of switch configuration as a consequence of a compromised SAN administrator account with root privileges or the (un)intended execution of commands by a SAN administrator not intended to have such privileges. For example, the following Cisco MDS access-control rules may be (un)intentionally misused by user Eve such that user Alice who is logged into the switch is forcibly logged out or has her password changed, thus a Denial of Service ensues. As a consequence, it is important to avoid role-based access control misconfiguration. clear user Alice username Alice password y0u’v3B33nH4ck3d The following SAN security requirement: “User Eve, a restricted SAN administrator, is authorised for Exec accesscontrol rules with the exception of the ‘clear’ access-control rules” is encoded as the following set of concept AdminRole individuals. AdminRole(exec1) ← hasAction(exec1, permit) ⊓ isRoleOf(exec1, eve) ← role name adminrole rule 1 permit exec role name adminrole rule 2 deny exec feature clear username eve role adminrole Note due to page constraints, the username access-control rule that explicitly assigns user Eve to the administrator role is not presented. However the inverse property of isRoleOf is property hasRole that has concept User as its domain and concept Role as its range. C. VSAN-based Access Control A Virtual Storage Area Network (VSAN) is a logical partition of a physical SAN and provides a basis for traffic isolation between nodes that are physically connected within the same SAN [12]. VSANs, with advantages of redundancy and reduced hardware costs aside, play an important part in provisioning network access control. SAN nodes may only be a connected to a single VSAN thereby ensuring that traffic communicated within a VSAN is isolated from traffic in other VSANs. Note, each VSAN has its own dedicated routing and configuration management services. From a security perspective, VSANs within an enterprise maybe used to define a virtual SAN fabric for each of its departments. For example, a separate VSAN for the Research, Sales and Human Resources departments. Consider the following SAN security requirement that states: “Nodes within each department should have access to data stored on their respective storage arrays where access to data from other departments is prohibited” as a running example. Without defining separate VSANs, all nodes connected to the same physical SAN fabric have the potential to communicate with nodes across departments (also noted in Section IV-A). Therefore, a SAN administrator should define relevant VSANs to ensure proper departmental demarcation. A VSAN rule (individual) is defined to have a unique identifier (property hasID), operate over one or more interfaces (property hasIface), have an optional human readable name (property hasN ame) and a decision whether or not that VSAN is currently activated (property isActivated). VSANRule ⊑ hasOrder(exec2, 2) ⊓ canExecute(exec2, clear) ⊓ hasAction(exec2, deny) ⊓ isRoleOf(exec2, eve) ConfigRule ⊓ ∀=1 hasName.String ⊓ ∃=1 hasID.Integer ⊓ ∃≥1 hasIface.Interface ⊓ ∃=1 isActivated.Boolean hasOrder(exec1, 1) ⊓ canExecute(exec1, exec) ⊓ AdminRole(exec2) Individuals exec1 and exec2 are representative of the following low-level Cisco MDS rule-set. Further explanation of concept Interface is required. A SAN switch has many kinds of interfaces for example Fibre Channel interfaces (individuals of concept FCIface) and iSCSI interfaces (individuals of concept ISCSIIface. Such interfaces have a slot value and an interface value. FCIface, FVIface, FCIPIface, ISCSIIface ⊑ Interface ⊓ ∃≥1 hasSlotValue.Integer ⊓ ∃≥1 hasIfaceValue.Integer Consider the Research department VSAN as a running example, where the following security requirement states: “External research partner nodes, internal research department nodes, the shared research storage array and the backup storage array should be isolated from other SAN traffic by defining a dedicated Research VSAN”. The following Cisco MDS rule-set defines a Research VSAN called ‘rSAN’ with an ID of 2 and operates over switch interfaces iscsi 1/1, iscsi 2/1, fc 1/3 and fc 1/4 with which to connect external and internal iSCSI initiator nodes and, research and backup storage array fibre channel target nodes respectively. vsan vsan vsan vsan database database database database vsan vsan vsan vsan 2 2 2 2 name name name name rSAN rSAN rSAN rSAN interface interface interface interface iscsi 1/1 iscsi 2/1 fc 1/3 fc 1/4 These low-level Cisco MDS access-control rules are encoded within the following DL assertions. VSANRule(rVSAN) ← hasName(rVSAN, “rSAN”) ⊓ hasID(rVSAN, 2) ⊓ hasIface(rVSAN, iscsi1-1) ⊓ hasIface(rVSAN, iscsi2-1) ⊓ hasIface(rVSAN, fc1-3) ⊓ hasIface(rVSAN, fc1-4) ⊓ Concept ZoneRule represents the set of access-control zone rules (individuals) that have a name (property hasN ame), isAssignedT o a VSAN and have one or more hasM ember relationships with individuals of concept M ember. ZoneRule ⊑ ConfigRule ⊓ ∃=1 hasName.String ⊓ ∃=1 isAssignedTo.VSANRule ⊓ ∃≥1 hasMember.Member Concept M ember represents individuals (SAN nodes) that are members of one or more zones along the isMemberOf property. There are a number of disjunction axioms that define necessary conditions for concept membership. For example, an individual that is a member of a particular zone may be referred to by its pWWN (property hasPWWN). Members may have zero or more ports. An explanation of property hasLU N ID will be discussed in Section IV-D2. Note, only the relevant fragment of this definition is provided due to page limitation. isActivated(rVSAN, true) where the following holds for individuals iscsi1/1, iscsi2/1, fc1/3 and fc1/4: ISCSIIface(iscsi1-1) ← hasSlotValue(iscsi1-1, 1) ⊓ hasIfaceValue(iscsi1-1, 1) ISCSIIface(iscsi2-1) ← FCIface(fc1-3) ← hasSlotValue(iscsi2-1, 2) ⊓ hasIfaceValue(iscsi2-1, 1) hasSlotValue(fc1-3, 1) ⊓ Member ⊑ ConfigRule ⊓ ∃≥1 isMemberOf.Zone ⊓ (∃≥1 hasIPAddress.IPAddress ⊔ ∃≥1 hasFWWN.FWWN ⊔ (∃≥1 hasPWWN.PWWN ⊓ ∀≥0 hasLUNID.String)) ⊓ ∀hasPort.Port hasIfaceValue(fc1-3, 3) FCIface(fc1-4) ← hasSlotValue(fc1-4, 1) ⊓ hasIfaceValue(fc1-4, 4) D. Zone-based Access Control Zone-based Access Control (or Zoning) provides a basis for fined-grained demarcation of nodes within a VSAN [12], [16]. A zone consists of members (initiator and target nodes). Members of a zone can access each other, while members across different zones cannot. Zones are defined within a VSAN. Zone membership is based on either IP addresses or World-Wide Names (WWNs) of the nodes connected to a switch fabric [12]. For example, a node may be referred to by its pWWN, that is, its port World Wide Name (analogous to a Ethernet MAC address). Note, while VSANs and Zones provide traffic isolation they are different to one another. For example, VSANs provide routing, naming and zone protocols. These protocols are not available on a per-zone basis [12]. While a VSAN provides a logical demarcation of nodes it hosts from nodes hosted within other VSANs, it may be a further security requirement to restrict nodes within the same VSAN from communicating with each other. Consider as running example the following SAN security requirement: “External research partner nodes are permitted access to the research storage array while internal Research department nodes are permitted to access both the research and backup storage arrays”. The following is an example implementation of the SAN security requirement described above, where individual exZone and individual inZone are representative of external and internal zone access-control rules that permit external research partners (initiators InitA and InitB) access to the research storage array (target individual resSA), and an internal research department initiator (individual InitC) access to both the research storage array and the backup storage array (target individual bakSA). ZoneRule(exZone) ← hasName(exZone, “ExZone”) ⊓ isAssignedTo(exZone, rVSAN) ⊓ hasMember(exZone, initA) ⊓ hasMember(exZone, initB) ⊓ hasMember(exZone, resSA) ZoneRule(inZone) ← hasName(inZone, “InZone”) ⊓ isAssignedTo(inZone, rVSAN) ⊓ hasMember(inZone, initC) ⊓ hasMember(inZone, resSA) ⊓ hasMember(inZone, bakSA) where the following also holds: Member(initA) ← hasPWWN(initA, pwwn00:11:22:ab) Member(initB) ← ← hasPWWN(initB, pwwn00:11:22:cd) Member(initC) Member(resSA) Member(bakSA) hasPWWN(initC, pwwn11:22:33:cd) ← ← hasFWWN(resSA, fwwn22:33:44:ef) hasFWWN(bakSA, fwwn33:44:55:gh) The following is the corresponding Cisco MDS rule-set. zone zone zone zone zone zone name name name name name name ExZone ExZone ExZone InZone InZone InZone vsan vsan vsan vsan vsan vsan 2 2 2 2 2 2 member member member member member member pwwn pwwn fwwn pwwn fwwn fwwn 00:11:22:ab 00:11:22:cd 22:33:44:ef 11:22:33:cd 22:33:44:ef 33:44:55:gh 1) Read-Only Zones: Within a SAN, VSAN or zone, initiators by default have read/write access to their permitted target storage arrays. Switches, for example the Cisco MDS series, have the ability to restrict read/write access to a storage array at a switch-level by explicitly defining read-only zones. Note, while modern storage arrays provide their own access-controls with respect to read/write access, it is considered best practice to adopt a security in depth approach [15]. Concept ZoneRule is therefore extended to include details (isReadOnly property) about read/write access within a zone. ZoneRule ⊑ ConfigRule ⊓ ∃=1 isReadOnly.Boolean The SAN security requirement outlined in Section IV-D may be further refined such that: “External research partner nodes are permitted read-only access to the research storage array . . .”. This will require the following Cisco MDS rule in addition to the previously defined external zone rule-set. 2) Lun-Zoning: A storage array is composed of a number of disks or LUNs. By default any initiator node within the same zone as the target storage array has access to all of its LUNs. LUN-Zoning is an access control mechanism that restricts access to a storage array on a per-LUN basis [12]. Note, while modern storage arrays provide their own accesscontrols with respect to LUN access (LUN Masking [16]), it is best practice to consider a security in depth approach [15]. The SAN security requirement outlined in Section IV-D1 may be further refined such that: “External research partner nodes are permitted read-only access to specific LUNs within the research storage array . . .”. Consider the following scenario. External research partners identified as initA and initB both require read access to a specific LUN (LUN identifier 0X63) where both partners collaborate with respect to the data stored on this LUN. However, external research partner initB requires read access to another LUN (LUN identifier 0X64) such that external research partner initA has no collaboration. The following low-level Cisco MDS rules uphold these requirements. zone zone zone zone zone name name name name name ExZone ExZone ExZone ExZone ExZone vsan 2 member pwwn 00:11:22:ab lun 0X63 vsan 2 member pwwn 00:11:22:cd lun 0X63 vsan 2 member pwwn 00:11:22:cd lun 0X64 vsan 2 member fwwn 22:33:44:ef attribute read-only Individual exZone defined in Section IV-D1 remains the same. However, the individuals of concept M ember are encoded with additional knowledge that ensures external initiators initA and initB are permitted read-only access to their respective LUNs (hasLU N ID property relationship) within the research storage array (resSA). Member(initA) Member(initB) ← ← . . . ⊓ hasLUNID(initA, 0X63) . . . ⊓ hasLUNID(initB, 0X63) ⊓ hasLUNID(initB, 0X64) V. S TRUCTURAL C ONFLICT A NALYSIS D EFINITIONS Structural Analysis examines the relationship that rules have with one another within a security configuration or across multiple inter-dependent security configurations [3], [8], [9]. This paper extends the existing work on firewall structural analysis techniques and considers inter-configuration conflicts that may occur between a firewall and a zone security configuration. For ease of exposition, the relevant properties are described using a basic discrete math notation. These properties have been implemented in SWRL to perform structural analysis and an example is provided in Section VI. zone name ExZone attribute read-only Individual exZone, representative of the external zone security requirement is updated to include detail that defines the external zone as read-only. Note ‘. . . ’ refers to the original individual assertion. ZoneRule(exZone) ← . . . ⊓ isReadOnly(exZone, true) A. SAN Rule Composition In the context of inter-configuration conflicts between a firewall and a zone configuration, a SAN access-control rule is defined as a tuple. Rule ≡ Condition × Action Given r : Rule, rule r is a tuple (r1 ,r2 ) where r1 ∈ Condition and r2 ∈ Action. For simplicity, and when no ambiguity arises, r.Condition is a syntactic sugar for r1 and so forth. Filter Conditions. The set of filter conditions (Condition) that describes the common filter conditions between firewall and zone access-control rules is defined as an 2-tuple. Condition ≡ SrcIP × DstIP The source and destination IP addresses (SrcIP and DstIP) are defined as an inclusive interval, where an interval is a subset of all possible IP addresses for source and destination IP addresses. SrcIP,DstIP ≡ [0, 232 -1] Given r:Rule, then r.Condition1 ∈ SrcIP and r.Condition2 ∈ DstIP . For simplicity, and when no ambiguity arises, r.SrcIP is a syntactic sugar for r.Condition1 and so forth. For example, r.SrcIP is used to access the attribute value of set SrcIP , instead of r.Condition1 (or r11 ). Action. The set of target actions are: Action ≡ {permit, deny, log&deny} rzone .Condition ⊂cond sfw .Condition ∧ rzone .Action = permit ∧ sfw .Action = permit) Note, zone rules are not defined over IP address ranges and therefore do not cause spurious conflicts with firewall rules. VI. A NALYSIS OF ACCESS C ONTROL C ONFIGURATION A. Structural Analysis Firewall centric structural analysis techniques, for example [3], [8], [9], are also applicable to firewall-based SAN access-control rules. The following SWRL rule extends these works and detects inter-shadowing conflicts between firewall access-control rules (SWRL variable ?fwr) and zone accesscontrol rules (SWRL variable ?zr). Relevant filter conditions of each firewall access-control rule (lines 2-5) and each zone access control rule (lines 8-12) are then examined against the subsumption relation (lines 14-17) defined in Section V-B. IPAccessListRule(?fwr)∧ (1) hasSrcIPStart(?fwr,?sIPS)∧hasIPValue(?sIPS,?sIPSV)∧ (2) B. Subsumption Filter Conditions The filter conditions of rule s (s.Condition) subsumes those of rule r (r.Condition), if every filter condition field of r, for example r.SrcIP , is equal to or is a subset of the corresponding filter condition fields of rule s, for example s.SrcIP . Consider rules r, s:Rule with identical filter conditions except for their source IP address ranges; r.SrcIP = {10.37.2.12} and s.SrcIP = {10.37.2.10, . . . , 10.37.2.15}, then r.Condition is subsumed by s.Condition if r.SrcIP ⊆ s.SrcIP holds. Formally, given rules r, s : Rule, then r.Condition is subsumed (⊆cond ) by s.Condition if and only if r.Condition ⊆cond s.Condition holds across each of the corresponding filter condition fields. r.Condition ⊆cond s.Condition Inter-Spurious Conflict. Given rules rzone , sf w :Rule, rule sf w is spurious to rule rzone , if the filter conditions of rzone is a subset of the corresponding filter conditions of rule sf w , where sf w is allowing more than what rule rzone is intending. ≡ r.SrcIP ⊆ s.SrcIP ∧ r.DstIP ⊆ s.DstIP hasSrcIPEnd(?fwr,?sIPE)∧hasIPValue(?sIPE,?sIPEV)∧ (3) hasDstIPStart(?fwr,?dIPS)∧hasIPValue(?dIPS,?dIPSV)∧(4) hasDstIPEnd(?fwr,?dIPE)∧hasIPValue(?dIPE,?dIPEV)∧(5) hasAction(?fwr,deny)∧ (6) ZoneRule(?zr)∧ (7) (8) hasMember(?zr,?m1) ∧ hasMember(?zr,?m2)∧ hasIPStart(?m1,?ipS1)∧hasIPValue(?ipS1,?ipSV1)∧ hasIPEnd(?m1,?ipE1)∧hasIPValue(?ipE1,?ipEV1)∧ hasIPStart(?m2,?ipS2)∧hasIPValue(?ipS2,?ipSV2)∧ hasIPEnd(?m2,?ipE2)∧hasIPValue(?ipE2,?ipEV2)∧ differentFrom(?m1,?m2)∧ swrlb:greaterThanOrEqual(?ipSV1,?sIPSV)∧ swrlb:lessThanOrEqual(?ipEV1,?sIPEV)∧ swrlb:greaterThanOrEqual(?ipSV2,?dIPSV)∧ (9) (10) (11) (12) (13) (14) (15) C. Inter SAN Rule conflicts swrlb:lessThanOrEqual(?ipEV2,?dIPEV)∧ (16) (17) Inter-Shadowed Conflict. Given rules rzone , sf w :Rule, rule rzone (zone access-control rule) is shadowed by rule sf w (firewall access-control rule), if the filter conditions of rzone are a subset of or equal to the corresponding filter conditions of rule sf w , where sf w is denying what rule rzone is intending to permit. → isInterShadowedBy(?zr,?fwr) (18) rzone .Condition ⊆cond sfw .Condition ∧ Zone members may also be identified by their WWNs. Firewall access-control rules do not consider WWN’s. As a consequence, a relationship (hasWWNIPMapping) between each zone member’s WWN and its corresponding IP address must be asserted or inferred (for example using SWRL). rzone .Action = permit ∧ B. Query Analysis (sfw .Action = deny ∨ sfw .Action = log&deny) Query Analysis provides a way to ask hypothetical ‘whatif’ questions of a security configuration [3]. A switch can be analysed to check whether or not the answers to queries made of its configuration are consistent with the enterprise-level Note, zone rules only have an permit action and therefore do not cause a shadowing conflict with firewall rules. security requirements. For example the following SQWRL query asks: “What role or roles are users authorised for?” User(?user) ∧ RoleRule(?role) ∧ isRoleOf(?role, ?user) → sqwrl:select(?user, ?role) The following SQWRL query asks what initiators (members) have been assigned read-only access to what disks (identified by LUN ID’s) within a given zone defined in the context of a particular VSAN? Member(?mem) ∧ ZoneRule(?zone) ∧ VSANRule(?vsan)∧ hasName(?zone,?zname) ∧ hasName(?vsan,?vname)∧ isReadOnly(?zone, true) ∧ hasLUNID(?mem,?lunid)∧ isAssignedTo(?zone,?vsan) ∧ hasMember(?zone,?mem) → sqwrl:select(?mem, ?lunid,?zname,?vname)∧ sqwrl:columnNames(“Initiator”, “Disk”, “Zone”, “VSAN”) VII. R ELATED R ESEARCH While there is extensive research on synthesis [17], [18], query [6], [7] and structural [8], [9] analysis, these firewallcentric works do not consider switch security configuration. This paper builds on previous firewall centric research [3]–[5] to model and reason about SAN switch security configurations. VIII. D ISCUSSION AND C ONCLUSION This paper considered the problem of reasoning about and managing complex switch security configurations. A formal model for switch security configuration was presented. Structural analysis definitions that define inter-shadowing and inter-spurious conflicts between firewall-based and zone-based switch security configurations where presented. Future work will explore additional structural analysis techniques that involve other switch security mechanisms. For example, role-based access-control rules are order dependent. Depending on the sequence of these rules, a misconfiguration may result. An exploration of possible conflicts between individually consistent VSAN configurations due to Inter-VSAN Routing [12] will be also be investigated. Future work will adopt the threat-based approach in [4] to structure knowledge about switch security configurations in terms of threats with which to construct a catalogue of best practice countermeasures. One may then, in conjunction to structural and query analysis described in this paper, automatically generate suitable switch security configurations (countermeasures) that mitigate known SAN threats. This threat-based approach will also facilitate the construction of a best practice catalogue of candidate queries. Thus, providing inexperienced security administrators with the ability ask expert questions about the effectiveness of an existing switch security configuration. These candidate queries could be based on testing for best practice compliance. For example, to test if a switch security configuration is SNAI [19] compliant, the security administrator can draw upon a catalogue of SNAI candidate compliance queries. View publication stats ACKNOWLEDGMENT This research has been supported by Science Foundation Ireland grant 08/SRC/11403. R EFERENCES [1] J. Somasundaram and A. Shrivastava, Information Storage and Management: Storing, Managing, and Protecting Digital Information. Wiley, 2009. [2] F. Baader, D. Calvanese, D. L. McGuinness, D. Nardi, and P. PatelSchneider, The Description Logic Handbook: Theory, Implementation and Applications. Cambridge University Press, March 2003. [3] W. M. Fitzgerald, “An Ontology Engineering Approach to Network Access Control Configuration,” PhD Thesis, University College Cork, Ireland, August 2010. [4] S. N. Foley and W. M. Fitzgerald, “Management of Security Policy Configuration using a Semantic Threat Graph Approach,” Journal of Computer Security, Volume 19, Number 3, IOS Press, May 2011. [5] W. M. Fitzgerald and S. N. Foley, “Management of Heterogeneous Security Access Control Configuration using an Ontology Engineering Approach,” 3rd ACM Workshop on Assurable and Usable Security Configuration, Chicago, USA, October 2010. [6] A. Mayer, A. Wool, and E. Ziskind, “Offline Firewall Analysis,” International Journal of Information Security, vol. 5, no. 3, pp. 125– 144, May 2006. [7] R. Marmorstein and P. Kearns, “A Tool for Automated iptables Firewall Analysis,” Usenix Annual Technical Conference, Freenix Track, Pages: 71-81, Anaheim, CA, USA, April 2005. [8] E. S. Al-Shaer, H. H. Hamed, R. Boutaba, and M. Hasan, “Conflict Classification and Analysis of Distributed Firewall Policies,” IEEE Journal on Selected Areas in Communications, Issue: 10, Volume: 23, Pages: 2069 - 2084, October 2005. [9] F. Cuppens, N. Cuppens-Boulahia, and J. Garcı́a-Alfaro, “Detection and Removal of Firewall Misconfiguration,” IASTED International Conference on Communication, Network and Information Security (CNIS), Phoenix, AZ, USA, November 2005. [10] “IANA Port Numbers,” http://www.iana.org/assignments/port-numbers. [11] M. O’Connor, H. Knublauch, S. Tu, B. Grossof, M. Dean, W. Grosso, and M. Musen, “Supporting Rule System Interoperability on the Semantic Web with SWRL,” 4th International Semantic Web Conference (ISWC2005), Galway, Ireland, 2005. [12] Cisco MDS 9000 Family CLI Configuration Guide, Release 4.x., Cisco, February 2009. [13] Cisco MDS 9000 Family Command Reference, Release 5.x., Cisco, February 2010. [14] K. Scarfone and P. Hoffman, “Guidelines on Firewalls and Firewall Policy: Recommendations of the National Institute of Standards and Technology,” NIST Special Publication 800-41, Revision 1, September 2009. [15] K. Scarfone, W. Jansen, and M. Tracy, “Guide to General Server Security: Recommendations of the National Institute of Standards and Technology,” NIST Special Publication 800-123, July 2008. [16] J. Tate, F. Lucchese, and R. Moore, Introduction to Storage Area Networks. CIBM Redbooks, 2006. [17] F. Cuppens, N. Cuppens-Boulahia, T. Sans, and A. Miège, “A Formal Approach to Specify and Deploy a Network Security Policy,” 2nd Workshop on Formal Aspects in Security and Trust (FAST), Toulouse, France, August 2004. [18] M. G. Gouda and X.-Y. A. Liu, “Firewall Design: Consistency, Completeness and Compactness,” 24th IEEE International Conference on Distributed Computing Systems (ICDCS), Japan, March 2004. [19] Storage Security Best Current Practices (BCPs), Version 2.1.0, Storage Networking Industry Association (SNIA), September 2008.