The present disclosure relates to providing security for one or more network flows, and more particularly to distributing security functions throughout the network in order to efficiently protect the flows between virtual machines participating in a cloud infrastructure.
With the rise of cloud computing, computer networks have become quite complex. Many networks are distributed across numerous sites and geographies, and often involve thousands of network nodes, including various end-user devices, switches, routers, servers, gateways, and firewalls. These networks are often relied upon to reliably and securely transport myriad flows of data traffic from source nodes to destination nodes within the network simultaneously. Many of these flows can involve the transmission of highly sensitive data between network nodes for which security is rigorously enforced. For example, it is not uncommon for financial institutions transacting millions of dollars between accounts to exchange private account data via one or more highly-encrypted traffic flows.
Society's increasing reliance on networks of computers to exchange and process sensitive data has also resulted in an increasing number of malfeasants looking to break into network nodes, or intercept traffic flows, in an attempt to disrupt business operations, or steal private information, for example. The resulting increase in disruptive activity by malfeasants has made network security a paramount concern for network administrators. One approach to network security involves deploying security appliances (e.g., firewalls, Intrusion Detection Systems (IDSs), Intrusion Prevention Systems (IPSs)) within the network. The security appliances typically include a physical network node with sufficient computing resources to support a monolithic, general-purpose, security software solution. A traffic control node, such as a Software Defined Network (SDN) controller, can then configure network nodes to steer flows through these security appliances in order to detect and/or block unwanted traffic.
Although this approach provides security for the network's flows, this approach also creates chokepoints in the network, as flows requiring security will have to be steered to wherever these security appliances are physically located within the network. These chokepoints create single points of failure that can make the network vulnerable to attack or disruption. While these chokepoints can be alleviated by deploying additional security appliances at additional locations throughout the network, this solution does not scale well, as each security appliance requires some minimum computing resources in order to execute a full instance of the security software solution. Thus, network administrators often have to sacrifice substantial amounts of the network's computing resources in order to support the additional deployments. In addition, because reducing the chokepoints also reduces the load per security appliance, each security appliance is often over-protected and under-utilized.
Embodiments of the present disclosure generally relate to providing security for one or more network flows by decomposing one or more virtual security appliances of a logical security architecture into security modules. The security modules are ordered into a sequence according to a selected workflow pattern that may be, for example, a workflow pattern that has been predefined according to known best practices. The sequence is then divided into segments, and the segments are assigned to different groups of network nodes in a network. For each segment, an assignment of each security module in the segment to a network node within the group to which the segment is assigned is computed. The network is then configured according to the assignments. To compute which network node a security module in the segment is assigned to, the cost of executing each security module on each network node in the group may be modeled, and each security module in the segment may be assigned according to a cost function and the cost model. The security modules, generally, require fewer computing resources to execute than their corresponding virtual security appliances, and implement a relatively narrower aspect of the overall security solution for the network flow.
Exemplary embodiments of the disclosure comprise methods for providing security for one or more network flows. One exemplary method comprises receiving a logical security architecture comprising at least one virtual security appliance, and decomposing the at least one virtual security appliance into security modules. The method further comprises ordering the security modules into a sequence according to a selected workflow pattern, and dividing the sequence of security modules into segments. The method further comprises assigning the segments to different groups of network nodes in a network, each group comprising one or more network nodes. The method further comprises computing, for each segment, an assignment of each security module in the segment to a network node within the group to which the segment is assigned, and configuring the network according to the assignments.
In some embodiments, assigning the segments to different groups of network nodes in the network is based, at least in part, on a topology of the network.
In some embodiments, dividing the sequence of security modules into segments is based, at least in part, on a preferred proximity of each security module in the sequence to a source or destination endpoint of a network flow.
In some embodiments, dividing the sequence of security modules into segments is based, at least in part, on a resource cost associated with executing each security module in the sequence.
In some embodiments, assigning the segments to different groups of network nodes in the network is based, at least in part, on the cost of traversing one or more links between network nodes.
In some embodiments, the method further comprises selecting the selected workflow pattern from a database of predefined workflow patterns according to security requirements for the network flow.
In some embodiments, the method further comprises modeling, for each segment, a resource cost of executing the security modules of the segment on one or more network nodes to which the segment is assigned, and computing the assignment of each security module is based, at least in part, on a result of a cost function applied to the resource costs of the security modules in the segments.
In some embodiments, configuring the network according to the assignments comprises transmitting the assignments to a traffic control node of the network. In an embodiment, transmitting the assignments to the traffic control node of the network comprises transmitting the assignments to a Software Defined Network controller.
Other embodiments comprise a security deployment node for providing security for one or more network flows. The security deployment node comprises processing circuitry, network interface circuitry, and input circuitry. The processing circuitry is communicatively coupled to the input circuitry and the network interface circuitry. The network interface circuitry is configured to communicate with one or more network nodes of a network. The input circuitry is configured to receive a logical security architecture comprising at least one virtual security appliance. The processing circuitry is configured to decompose the at least one virtual security appliance into security modules, order the security modules into a sequence according to a selected workflow pattern, divide the sequence of security modules into segments, and assign the segments to different groups of network nodes in a network, each group comprising one or more network nodes. The processing circuitry is further configured to compute, for each segment, an assignment of each security module in the segment to a network node within the group to which the segment is assigned, and configure the network according to the assignments via the network interface circuitry.
In some embodiments, the processing circuitry is configured to assign the segments to different groups of network nodes in the network based, at least in part, on a topology of the network.
In some embodiments, the processing circuitry is configured to divide the sequence of security modules into segments based, at least in part, on a preferred proximity of each security module in the sequence to a source or destination endpoint of a network flow.
In some embodiments, the processing circuitry is configured to divide the sequence of security modules into segments based, at least in part, on a resource cost associated with executing each security module in the sequence.
In some embodiments, the processing circuitry is configured to assign the segments to different groups of network nodes in the network based, at least in part, on the cost of traversing one or more links between network nodes.
In some embodiments, the processing circuitry is further configured to select the selected workflow pattern from a database of predefined workflow patterns according to security requirements for a network flow.
In some embodiments, the processing circuitry is further configured to model, for each segment, a resource cost of executing the security modules of the segment on one or more network nodes to which the segment is assigned. The processing circuitry is also configured to compute the assignment of each security module based, at least in part, on a result of a cost function applied to the resource costs of the security modules in the segments.
In some embodiments, to configure the network according to the assignments via the network interface circuitry, the network interface circuitry is configured to transmit the assignments to a traffic control node of the network. In an embodiment, to transmit the assignments to the traffic control node of the network, the network interface circuitry is configured to transmit the assignments to a Software Defined Network controller.
Other embodiments comprise a computer program product stored in a non-transitory computer readable medium for controlling a programmable user device. The computer program product comprises software instructions that, when executed on the programmable user device, cause the programmable user device to perform the various methods described above.
Other embodiments comprise a security deployment node comprising a receiving module, a decomposing module, an ordering module, a dividing module, an assigning module, a computing module, and a configuring module. The receiving module is configured to receive a logical security architecture comprising at least one virtual security appliance. The decomposing module configured to decompose the at least one virtual security appliance into security modules. The ordering module is configured to order the security modules into a sequence according to a selected workflow pattern. The dividing module is configured to divide the sequence of security modules into segments. The assigning module is configured to assign the segments to different groups of network nodes in a network, each group comprising one or more network nodes. The computing module is configured to compute, for each segment, an assignment of each security module in the segment to a network node within the group to which the segment is assigned. The configuring module is configured to configure the network according to the assignments.
In some embodiments, the assigning module is configured to assign the segments to different groups of network nodes in the network based, at least in part, on a topology of the network.
In some embodiments, the dividing module is configured to divide the sequence of security modules into segments based, at least in part, on a preferred proximity of each security module in the sequence to a source or destination endpoint of a network flow.
In some embodiments, the dividing module is configured to divide the sequence of security modules into segments based, at least in part, on a resource cost associated with executing each security module in the sequence.
In some embodiments, the assigning module is configured to assign the segments to different groups of network nodes in the network based, at least in part, on the cost of traversing one or more links between network nodes.
In some embodiments, the ordering module is further configured to select the selected workflow pattern from a database of predefined workflow patterns according to security requirements for a network flow.
In some embodiments, the computing module is further configured to model, for each segment, a resource cost of executing the security modules of the segment on one or more network nodes to which the segment is assigned. Further, the computing module is configured to compute the assignment of each security module based, at least in part, on a result of a cost function applied to the resource costs of the security modules in the segments.
In some embodiments, to configure the network according to the assignments, the configuring module is configured to transmit the assignments to a traffic control node of the network. In one embodiment, to transmit the assignments to the traffic control node of the network, the configuring module is configured to transmit the assignments to a Software Defined Network controller.
The various aspects of the various embodiments may be used alone or in any combination, as desired.
Embodiments of the present disclosure generally relate to providing security for one or more network flows.
The workflow pattern database 260 stores one or more workflow patterns. Each workflow pattern defines a sequence of security functions to be performed for a network flow. Each sequence of security functions may, for example, be performed to provide security for traffic flowing from source node 205 to destination node 210. Similarly, each sequence may be performed in the reverse to provide security for traffic flowing from destination node 210 to source node 205. According to embodiments, the particular workflow patterns stored in the workflow pattern database 260 may be predefined according to known best practices for providing network flow security between two endpoints of a network flow, in either direction, or in both directions. The workflow patterns may also be provided, or supplemented, by the user of the security deployment node 225, according to embodiments. The workflow patterns may also, according to embodiments, be generated by one or more network analytics and/or artificial intelligence algorithms.
Returning to
The security requirements 280 of the security deployment node 225 include the security needs of one or more flows in the network 200. For example, the security requirements 280 may indicate that a particular flow between source node 205 and destination node 210 requires a VPN with a minimum of 256-bit encryption. The security requirements 280 may, according to embodiments, be provided by a user of the security deployment node 225.
The network topology 270 comprises information about the network nodes 220 in the network 200. For example, as shown in
The cost model 275 comprises a resource cost for executing particular security functions on particular network nodes 230. In the example depicted in
To provide security to a network flow, the security deployment node 225 configures the network 200 by assigning particular security functions of the virtual security appliances 265 to network nodes 230. To do this, the security deployment node 225 decomposes at least one virtual security appliance 265 into security modules 310. According to embodiments, the logical security architecture 255 describes one or more ways in which one or more virtual security appliances 265 may be decomposed into these security modules 310, such that the security deployment node 225 may use this information in performing the decomposition. According to embodiments, security deployment node 225 may decompose the at least one virtual security appliance 265 into security modules 310 that are configured to operate on traffic originating from the source node 205, from the destination node 210, or from either the source 205 or destination node 210.
After the security deployment node 225 has decomposed at least one virtual security appliance 265 into security modules 310, the security deployment node 225 selects a workflow pattern (e.g., the workflow pattern 400 depicted in
Having decomposed the virtual security appliances 265a-c into security modules 310a-f, the security deployment node 225 then orders the security modules 310a-f into a sequence 320 that implements the selected workflow pattern 400. As previously discussed, security modules 310 may be used to implement security functions for traffic flowing in either direction between source node 205 and destination node 210. Thus, although the selected workflow pattern 400 as described above begins at block 405 and terminates at block 430, the security modules 310 that implement the selected workflow pattern 400 may operate in reverse order on traffic flowing in the opposite direction.
It may be efficient, or otherwise advantageous, for certain security modules 310 to be deployed to the same network node 230. For example, in order to prevent easily detectable undesirable traffic from entering the core of the network 200, it may be wise to deny inbound TCP port 23 traffic (block 405), and block overly fragmented inbound TCP streams (block 410), by assigning security modules 310a, 310c to a network node 230 that is close to the source node 205 of the flow. Other security modules 310f may, for example, require substantial processing resources that are best assigned to a network node 230 having an abundant amount of computing and/or networking resources available, e.g., a high-powered and under-utilized server within the core of the network 200. Yet other security modules 310d, 310e, 310b may, for example, implement security policies that are relevant only to the destination node 210, and are therefore ideal to implement at a network node 230 that is adjacent to the destination node 210. For example, in order to block malicious UDP traffic originating from the destination node 210 from entering the core of the network 200, security module 310b (which is configured to block all UDP traffic) may be assigned to a network node 230 that is close to the destination node 210 of the flow. The security deployment node 225, according to embodiments, takes these placement considerations into account and, in view of the network topology 270, the selected workflow pattern 400, and the result of a cost function that controls the utilization of compute resources on the network 200, divides the sequence 320 of security modules 310 into the segments 330a-c which are subsequently assigned to respective node groups 220 in the network 200. The logical security architecture 255 also describes, according to embodiments, one or more ways in which the sequence 320 of security modules 310 may or may not be segmented, such that the security deployment node 225 may also use this information in performing the segmenting. In the example of
After each segment 230 is assigned to a different node group 220, the security deployment node 225 computes, for each segment 330, an assignment of each security module 310 in the segment 330 to a network node 230 within the group 220 to which the segment 330 is assigned. According to the example of
To determine security module 310 assignments, the security deployment node 235 may, according to embodiments, make use of the cost model 275. As previously discussed, the security deployment node 225 may model the resource cost of executing various security functions on one or more network nodes 230. Thus, once segments 330 have been assigned to node groups 220, the security deployment node 225 may model a resource cost of executing the security modules 310 in a segment 330 on one or more network nodes 230 within the group 220 to which the segment 330 is assigned. According to embodiments, modeling is limited to evaluating the execution of security modules 310 on network nodes 230 within the group 220 to which the respective segment 330 is assigned in order to limit the combinations of security modules 310 and network nodes 230 that must be assessed. Such limiting may be performed, for example, to keep the computational complexity of the modeling solution from being overly expensive (as compared to a brute force modeling of each security module 310 executing on each network node 230 in each node group 220 in the network 200) or to prevent the size of the cost model 275 from exploding. The security deployment node 225 may populate the cost model 275 with the results of this modeling, and make reference to the cost model 275 in computing the assignments of the security modules 310 of each segment 320. Thus, according to embodiments, the security deployment node 225 assigns the security modules 310 of each segment 320 according to the node group 220 assignments and the cost model 275 in order to minimize the total costs associated with executing the security modules 310 on the network nodes 220, and to minimize costs associated with transmitting traffic along the path from the source node 205 to the destination node 210. After the security deployment node 235 has computed the security module 310 assignments, the security deployment node 225 configures the network 200 according to the assignments.
According to embodiments, to configure the network 200 according to the assignments, the security deployment node 225 may communicate the security module 310 assignments to the traffic control node 215 and/or deploy the security modules 310 to their assigned network nodes 230. The traffic control node 215, having received the security module 310 assignments for the network flow, can then instruct, program, or otherwise communicate with the various network nodes 230 in order to steer traffic for the flow to the network nodes 230e-i having been assigned security modules 310. As previously discussed, the security deployment node 225 may, according to embodiments, perform some or all of the functions of traffic control node 215.
Circumstances on the network 200 may, and often do, change. Accordingly, the network nodes 230 of node group 220g may become less suitable for applying segment 330b. For example, a different node group 220c may make additional computing resources available, such that node group 220c has one or more network nodes 230 that are better suited than the network nodes 230 within node group 220g for applying segment 330b. Alternatively or additionally, the latency of the links between the network nodes 230 of node groups 220b and 220c, 220c and 220d, and/or 220d and 220e, may improve, such that directing the flow through the network nodes 230 of node group 220c would provide better flow performance than directing the flow through the network nodes 230 of node group 220g.
The network interface circuitry 970 is configured to communicate with one or more network nodes 220 of a network 200. According to various embodiments, the network interface circuitry 970 may comprise analog and/or digital transceiving circuitry capable of communicating with each other, or with other devices, according to one or more communication protocols known in the art or that may be developed, such as HTTP, RTP, RTCP, HTTPs, Ethernet, TCP/IP, ATM, or the like. The network interface circuitry 970 implements receiver and transmitter functionality appropriate to the communication network to which it is attached (e.g., optical, electrical, and the like). The transmitter and receiver functionality may share circuit components and/or software, or alternatively may be implemented separately within the network interface circuitry.
According to embodiments, the input circuitry 955 is useful to accept input signals from a user of the security deployment node 225. For example, the input circuitry 955 may be comprised within one or more of a pointing device (such as a mouse, stylus, touchpad, trackball, pointing stick, joystick), a touchscreen, a microphone for speech input, an optical sensor for optical recognition of gestures, and a keypad or keyboard. The network interface circuitry 955 may also serve as the input circuitry 955, according to embodiments, for accepting input signals from a remote user, network node 220, or other entity within the network 200.
The input circuitry 955 is configured to receive a logical security architecture 255 comprising at least one virtual security appliance 265. The processing circuitry 960 is configured to decompose the at least one virtual security appliance 265 into security modules 310 and order the security modules 310 into a sequence 320 according to a selected workflow pattern 400. The processing circuitry 960 is further configured to divide the sequence 320 of security modules 310 into segments 330 and assign the segments 330 to different groups 220 of network nodes 230 in a network 200, each group 220 comprising one or more network nodes 230. The processing circuitry 960 is further configured to configure the network 200 according to the assignments via the network interface circuitry 970.
The receiving unit 705 is configured to receive a logical security architecture 255 comprising at least one virtual security appliance 265. The decomposing unit 710 is configured to decompose the at least one virtual security appliance 265 into security modules 310. The ordering unit 715 is configured to order the security modules 310 into a sequence 320 according to a selected workflow pattern 400. The dividing unit 720 is configured to divide the sequence 320 of security modules 310 into segments 330. The assigning unit 725 is configured to assign the segments 330 to different groups 220 of network nodes 230 in a network 200, each group 220 comprising one or more network nodes 230. The computing unit 730 is configured to compute, for each segment 330, an assignment of each security module 310 in the segment 330 to a network node 230 within the group 220 to which the segment 330 is assigned. The configuring unit 735 is configured to configure the network 200 according to the assignments.
The receiving module 605 is configured to receive a logical security architecture 255 comprising at least one virtual security appliance 265. The decomposing module 610 is configured to decompose the at least one virtual security appliance 265 into security modules 310. The ordering module 615 is configured to order the security modules 310 into a sequence 320 according to a selected workflow pattern 400. The dividing module 620 is configured to divide the sequence 320 of security modules 310 into segments 330. The assigning module 625 is configured to assign the segments 330 to different groups 220 of network nodes 230 in a network 200, each group 220 comprising one or more network nodes 230. The computing module 630 is configured to compute, for each segment 330, an assignment of each security module 310 in the segment 330 to a network node 230 within the group 220 to which the segment 330 is assigned. The configuring module 635 is configured to configure the network 200 according to the assignments.
Those skilled in the art will appreciate that the various methods and processes described herein may be implemented using various hardware configurations that generally, but not necessarily, include the use of one or more microprocessors, microcontrollers, digital signal processors, or the like, coupled to, or comprising, memory storing software instructions or data for carrying out the techniques described herein.
For instance, one or more of the processing functionalities discussed above may be implemented using dedicated hardware, rather than a microprocessor configured with program instructions. Such variations, and the engineering tradeoffs associated with each, will be readily appreciated by the skilled practitioner. Since the design and cost tradeoffs for the various hardware approaches, which may depend on system-level requirements that are outside the scope of the present disclosure, are well known to those of ordinary skill in the art, further details of specific hardware implementations are not provided herein.
The embodiments of the present disclosure may be carried out in other ways than those specifically set forth herein without departing from the essential characteristics of the disclosure. The present embodiments are to be considered in all respects as illustrative and not restrictive, and all changes coming within the meaning and equivalency range of the appended claims are intended to be embraced therein.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/IB2015/051315 | 2/20/2015 | WO | 00 |
Publishing Document | Publishing Date | Country | Kind |
---|---|---|---|
WO2016/132181 | 8/25/2016 | WO | A |
Number | Name | Date | Kind |
---|---|---|---|
7000006 | Chen | Feb 2006 | B1 |
7937438 | Miller et al. | May 2011 | B1 |
8353031 | Rajan | Jan 2013 | B1 |
20050038909 | Yoshiba | Feb 2005 | A1 |
20080163357 | Xiao | Jul 2008 | A1 |
20100246443 | Cohn | Sep 2010 | A1 |
20110029882 | Jaisinghani | Feb 2011 | A1 |
20110258257 | Previdi | Oct 2011 | A1 |
20130263143 | Kiyoumi | Oct 2013 | A1 |
20140115578 | Cooper | Apr 2014 | A1 |
20140310388 | Djukic | Oct 2014 | A1 |
20150312124 | Curtin | Oct 2015 | A1 |
Number | Date | Country |
---|---|---|
2010014104 | Feb 2010 | WO |
Entry |
---|
Debashis Basak et al., Virtualizing Networking and Security in the Cloud, Dec. 2010, ACM, vol. 44 Issue 4, pp. 86-94. |
Yoshihisa Abe et al., vTube: Efficient Streaming of Virtual Appliances Over Last-Mile Networks, Oct. 1-3, 2013, ACM, pp. 1-16. |
Amani S. Ibrahim et al., CloudSec: A Security Monitoring Appliance for Virtual Machines in the IaaS Cloud Model, Oct. 27, 2011, IEEE, pp. 113-120. |
Kai-Oliver Detken et al., Design and Implementation of Virtual Security Appliances (VSA) for SME, Nov. 14, 2013, IEEE, pp. 30-35. |
Shameli-Sendi, A. et al., “Optimal Placement of Sequentially Ordered Virtual Security Appliances in the Cloud”, 2015 IFIP/IEEE International Symposium on Integrated Network Management (IM), May 11-15, 2015, pp. 1-5, Ottawa, Canada. |
Acharya, H. et al., “Firewall Modules and Modular Firewalls”, the 18th IEEE International Conference on Network Protocols, Oct. 5-8, 2010, pp. 174-182. |
Palo Alto Networks, “Next-Generation Firewall Security and Advanced Threat Prevention for Your Cloud Computing Deployment”, Datasheet—VM Series, 2015, pp. 1-4. |
McKeown, N. et al., “OpenFlow: Enabling Innovation in Campus Networks”, ACM SIGCOMM Computer Communications Review, Apr. 2008, pp. 69-74, vol. 38, No. 2. |
Gutin, G. et al., “Chapter 1: Exponential Neighborhoods and Domination Analysis for the TSP”, The Traveling Salesman Problem and Its Variations, 2002, pp. 1-38. |
Ravi, R. et al., “Approximation Algorithms for the Traveling Purchaser Problem and Its Variants in Network Design”, 7th Annual European Symposium, Jul. 16-18, 1999, pp. 29-40. |
Mansini, R. et al., “The traveling purchaser problem with budget constraint”, Computers & Operations Research, 2009, pp. 2263-2274, vol. 36. |
Ren, K. et al., “Security Challenges for the Public Cloud”, View from the Cloud, Jan.-Feb. 2012, pp. 69-73, IEEE Computer Society. |
Joseph, D. et al., “Policy-aware Switching Layer for Data Centers”, Technical Report No. UCB/EECS-2008-82, Jun. 24, 2008, pp. 1-24. |
Gouveia. L. et al., “Models for a traveling purchaser problem with additional side-constraints”, Computers & Operations Research, 2011, pp. 550-558, vol. 38. |
Shin, S. et al., “FRESCO: Modular Composable Security Services for Software-Defined Networks”, ISOC Network and Distributed System Security Symposium, Feb. 2013, pp. 1-16. |
Benton, C., “Virtual Firewall Appliances: Trust or Misplaced?”, Jan. 24, 2012, pp. 1-6, retrieved on Jan. 13, 2016, retrieved from Internet http://blog.cloudpassage.com/2012/01/24/virtual-firewall-appliances-trust-misplaced/. |
Cisco Nexus, “2000 Series Fabric Extenders Data Sheet”, pp. 1-25, retrieved on Jan. 13, 2016, retrieved from Internet http://www.cisco.com/c/en/us/products/collateral/switches/nexus-2000-series-fabric-extenders/data_sheet_c78-507093.html. |
VMware, “The VMware NSX Network Virtualization Platform, VMware Solutions: Designed for Early and Ongoing Success”, Technical White Paper, 2013, pp. 1-13. |
Hedlund, B., “What is a Distributed Firewall?”, The Network Virtualization Blog, Jul. 9, 2013, pp. 1-9, retrieved on Jan. 13, 2016, retrieved from Internet https://blogs.vmware.com/networkvirtualization/2013/07/what-is-a-distributed-firewall.html. |
Zhao, H. et al., “Policy Algebras for Hybrid Firewalls”, Annual Conference of ITA (ACITA), 2007, pp. 1-11. |
Anderson, J. e tal., “xOMB: Extensible Open Middleboxes with Commodity Servers”, Proceedings of the eighth ACM/IEEE symposium on Architectures for networking and communications systems, Oct. 29-30, 2012, pp. 49-60, Austin, US. |
Rajagopalan, S. et al., “Split/Merge: System Support for Elastic Execution in Virtual Middleboxes”, 10th USENIX Symposium on Networked Systems Design and Implementation, 2013, pp. 227-240. |
Aschenbruck, N. et al., “A Security Architecture and Modular Intrusion Detection System for WSNs”, Ninth International Conference on Networked Sensing Systems (INSS), Jun. 11-14, 2012, pp. 1-8, Antwerp, Belgium. |
Giacinto, G., et al., “A Modular Multiple Classifier System for the Detection of Intrusions in Computer Networks”, Proceedings of the 4th international conference on Multiple classifier systems, Jun. 11-13, 2003, pp. 346-355, Guildford, UK. |
Zaman, S., “A Collaborative Architecture for Distributed Intrusion Detection System based on Lightweight Modules”, IEEE Xplore Conference: Computational Intelligence for Security and Defense Applications, Aug. 2009, pp. 1-131. |
Sekar, V. et al., “Network-Wide Deployment of Intrusion Detection and Prevention Systems”, 6th International Conference on emerging Networking EXperiments and Technologies (CoNEXT), Nov. 11-Dec. 3, 2010, pp. 1-30, Philadelphia, US. |
Goosens, D. et al., “The transportation problem with exclusionary side constraints”, Operations Research & Decision Theory, Mar. 2009, pp. 1-11, vol. 7, Issue 1. |
Makhorin, A., “GNU Linear Programming Kit Reference Manual”, Version 4.38, May 2009, 1-239. |
Cisco, “Enhanced Secure Multi-Tenancy Design Guide”, Oct. 8, 2010, pp. 1-144, retrieved on Jan. 13, 2016, retrieved from Internet http://www.cisco.com/c/en/us/td/docs/solutions/Enterprise/Data_Center/Virtualization/securecIdg_V2.html. |
Qazi, Z. et al., “SIMPLE-fying Middlebox Policy Enforcement Using SDN”, Proceedings of the ACM SIGCOMM Conference, Aug. 12-16, 2013, pp. 1-12, Hong Kong, China. |
Sekar, V. et al., “Design and Implementation of a Consolidated Middlebox Architecture”, 9th USENIX Symposium on Networked Systems Design and Implementation, Apr. 15-27, 2012, pp. 1-14, San Jose, US. |
Fayazbakhsh, S. et al., “Enforcing Network-Wide Policies in the Presence of Dynamic Middlebox Actions using FlowTags”, 11th USENIX Symposium on Networked Systems Design and Implementation, Apr. 2-4, 2014, pp. 533-546, Seattle, US. |
Shin, S. et al., “Avant-Guard: Scalable and Vigilant Switch Flow Management in Software-Defined Networks”, 20th ACM Conference on Computer and Communications Security, Nov. 4-8, 2013, pp. 1-12, Berlin, Germany. |
Bari, M., et al., “Data Center Network Virtualization: A Survey”, IEEE Communications Surveys & Tutorials, 2013, pp. 909-928, vol. 15, No. 2. |
Choi, M. et al., “The Multiple Traveling Purchaser Problem”, 40th International Conference on Computers and Industrial Engineering (CIE), Jul. 25-28, 2010, pp. 1-5, Awaji, Japan. |
Bianchessi, N. et al., “The Distance Constrained Multiple Vehicle Traveling Purchaser Problem”, Working Papers, Department of Economics and Management, University of Brescia, Italy, May 2013, pp. 1-41. |
Riera-Ledesma, J. et al., “Solving school bus routing using the multiple vehicle traveling purchaser problem: A branch-and-cut approach”, Computers & Operations Research, 2012, pp. 391-404, vol. 39. |
Manerba, D. et al., “A Branch-and Cut Algorithm for the Multi-Vehicle Traveling Purchaser Problem with Pairwise Incompatability Constraints”, Networks, 2015, pp. 139-154. |
Choi, M. et al., “The multiple traveling purchaser problem for maximizing system's reliability with budget constraints”, Expert Systems with Applications, 2011, pp. 9848-9853, vol. 38. |
Bouet, M. et al., “Cost-based placement of virtualized Deep Packet Inspection functions in SDN”, IEEE Military Communications Conference, 2013, pp. 992-997. |
Number | Date | Country | |
---|---|---|---|
20180034774 A1 | Feb 2018 | US |
Number | Date | Country | |
---|---|---|---|
62116641 | Feb 2015 | US |