The present invention relates to a method of providing for protection against remote attacks attempting to access management functions of network devices such as switches and routers.
The router 11 operates to route data packets received on a port of the router to other ports of the router based on a destination source IP address contained in the data packet. Typically a router will contain a large number of ports to which different data link layer (layer 2 of the OSI model) subnets are connected. In
The router 11 includes a CPU 24 which operates to control operations of the router. As is known in the art a CPU 24 operates to execute software program instructions which are loaded into the CPU 24. These software instructions can be stored in a memory 28 and the memory 28 can be utilized by the CPU 24 to access stored information, and instructions. The router 11 also includes content addressable memory (CAM) 26. The CAM includes fields which store data forming an access control list ACL. An application specific integrated circuit (ASIC) 27 is provided, and the ASIC utilizes the CAM with an ACL. The functionality of the ASIC 27 is determined by its hard wiring, and the content of the CAM and the ACL data fields (as opposed to a CPU which requires the loading of software). Thus the ASIC 27 can provide for the switching of the of data packets, or other possible functions at a very high speed relative to the operation of the CPU 24, and the CPU processing power can be used for other operational details of the router.
One aspect of the operation of the router 11 is that it allows for network managers to access control features of the router. Typically, the CPU 24 will be programmed to allow a network manager to change operations of the router. For example, a network manager might modify routing tables of the router, block certain ports from traffic from hosts having different IP addresses, set up new subnets or change subnets.
In order to gain access to, and send instructions to the CPU 24 for the management of the router 11, typically one of a number of different known management communication protocols are used; these protocols include Telnet, SSH, Web management, SNMP, and TFTP etc.
In general operation prior systems operated such that each port of the router can be used to access the CPU management functions of the router. This means that the gateway IP address associated with each port of the router can function as a management address, in that host generating data packets directed to any of the gateway addresses of the ports of router can access management of the router. As a result security procedures have to be provided which allow for filtering and controlling access to the management function of the router through each port and corresponding gateway address of the router.
In some cases, however, an attacking host, or possibly multiple attacking hosts on different layer 2 subnets connected to different ports of the router 11 may generate a large amount of traffic directed at the CPU 24 management functions. In some cases, where the volume of traffic is sufficiently large, the CPU 24 can become overwhelmed and its ability to effectively filter and authenticate attempts to gain access to the management functions of the router 11 can be significantly reduced and render the router 11 vulnerable to attack. Thus, what is needed is a way to provide enhanced protection against attacks on the router CPU 24 and its management functions.
One of the shortcomings of some prior systems is that traffic on each of the ports of a router must be analyzed and filtered in connection with allowing a host on the network to have access to management functions of the router. One aspect of an embodiment of the system herein, is that it allows network administrator to define a single port and its corresponding gateway address as being a management port, and only communications received through the management port will be granted access to the management functions of the router. Thus, in one embodiment only those hosts which are connected to a subnet which is connected with the management port will be able to obtain access to the management functions of the router. For all ports of the router, other than the port which is defined to be the management port, a set of rules can be applied to data traffic on the ports, whereby any data packets received on any of the non-management ports are denied access to the management control functions of the router. Aspects of this operation are illustrated in connection with the discussion below.
The router 101 includes a CPU 116 which operates to control operations of the router. As is known in the art, a CPU operates to execute software program instructions which are loaded into the CPU 116. These software instructions can be stored in a memory 120, and the memory 120 can be utilized by the CPU 116 to access stored information and instructions. The router 101 also includes content addressable memory. The CAM includes fields which form an access control list (ACL). An application specific integrated circuit 117 (ASIC) is provided, and the ASIC 117 utilizes the CAM with an ACL. The functionality of the ASIC 117 is determined by its hard wiring, and the content of the CAM and the ACL data fields (as opposed to a CPU which requires the loading of software). Thus the ASIC 117 can provide for the switching of the of data packets, or other possible functions at a very high speed relative to the operation of the CPU 116, and the CPU processing power can be used for other operational details of the router. Further, as described in detail below, an embodiment herein provides for the ASIC 117 and the CAM-ACL 118 operating to protect the CPU 116 from remote access to the management functions through ports other than a designated management port.
As discussed above, one aspect of the operation of the router 101 is that it allows for network managers to access control features of the router. Typically, the CPU 116 will be programmed to allow a network manager to change operations of the router. For example, a network manager might modify routing tables of the router, block certain ports from traffic from hosts having certain IP addresses, set up new subnets or change subnets. As discussed above, in order to gain access to, and send instructions to a CPU for the management of the router 101, typically one of a number of different management communication protocols are used. These protocols can include Telnet, SSH, Web management, SNMP, and TFTP etc.
To illustrate the operation of an embodiment of the invention, it is helpful to consider some aspects of the general operation of the router 101.
The port 108 would have a different gateway address. For example it could be 198.168.20.254. A host 130 connected to the layer 2 subnet 122 could have an assigned source IP address of, say for example, 198.168.20.39. Again it is noted that the first three octets of the source IP address for the host 130 correspond to the gateway address for the port 108 to which its subnet 122 is connected. If the host 132 wanted to communicate with the host 130 it would generate a data packet indicating that the desired destination was 198.168.20.39. These data packets would be received by a switch in the subnet 124, which would recognize that the destination host was not in the subnet 124 and the data packet would be routed to the gateway of port 114, and the router 101 would recognize the destination IF address in the data packet and route the data packet to port 108 and the subnet 122 where it would be directed to the host 130.
In an embodiment of the present invention a management virtual local area network MVLAN 104 is defined. A virtual local area network is a widely known arrangement whereby a number of physical ports of network devices, such as switches and routers, are logically associated with each other, and thus form a virtual local area network. In order to provide for enhanced security the MVLAN 104 can be defined to include only a single port 102 of the router 101. The MVLAN 104 is further defined to include ports of the layer 2 subnet 128. Thus, the subnet 128, can become a management subnet. The router port 102 of the router 101 has a gateway address; for example it could be 198.168.100.254/24. Typically the subnet 128 connected to MVLAN port 102 would be part of network operating center for a service provider which operates and manages the system 100. To gain access to the management of the router 101 a host, for example 129, connected to the subnet 128 would generate data packet directed to the gateway address 192.168.100.254/24 using a management protocol which is utilized by the CPU 116, and based on such data packets the host 129 would then gain access to management interfaces provided by the CPU 116 to control the router 101. Additionally, in one embodiment switches in the layer 2 subnets would have a plane, or port, which is defined to be included in the MVLAN 104, and this plane would be assigned an IP address corresponding to the IP address of the gateway address for the port 102 (192.168.100.254/24).
In one embodiment the ASIC 117 utilizes the CAM-ACL 118 and operates to analyze each data packet received on any of the ports of the router 101. If any of the ports which are not defined as part of the MVLAN 104 (e.g., ports 106, 108, 110, 112 and 114) receives a data packet which has a destination IP address which corresponds to the gateway IP address of the port 102 included in the MVLAN 104, in this case 192.168.100.254/24, then the ASIC 117 and CAM-ACL 118 will determine if the data packet is utilizing one of the management IP protocols (e.g. Telnet, SSH, Web management, SNMP, or TFTP etc.). The group of ports which are not part of the MVLAN are non-management ports. Depending on the actual implementation, it would frequently be the case that all of ports of the router with the exception of a single port, will be non-management ports. Depending on the number of ports in the router, the group of ports which are non-management ports, could be a single port, or in excess of 60 ports.
Where the ASIC 117 determines that a data packet received on a non-MVLAN port of the router 101 is in a management IP protocol, and the destination IP address is one which corresponds to the gateway address for the port 102, then ASIC 117 operates to filter the data packet. In general operation this filtering of such a data packet would consist of dropping the data packet, so that it would not be sent to the destination indicated as the destination IP address. This filtering could also include storing such data packets in a buffer, or other storage area, or otherwise separating or segregating these types of data packets, where they could be subsequently analyzed in connection with trying to identify the source of a potential attempted attack, where a hacker tries to gain access to management control functions of a router. This operation of the ASIC 117 and CAM-ACL 118 prevents any host connected to a layer 2 subnet which is connected to a port of the router 101, other than port 102, from gaining access to the management functions provided by the CPU 116 of the router 101. Because the ASIC 117 and CAM-ACL 118, does this filtering operation, the CPU 116 of the router 101 does not need to divert any processing power to analyzing data packets which are received on ports of the router 101 which are not included in the MVLAN 104, and to then determine whether the host sending the data packet is authorized to access the management functions of the CPU 116.
As shown by the above discussion in order for a host to gain access to the management control functions of the CPU 116, the host must generate and transmit management data packets, where such packets are ones which are directed to an IP address which corresponds to the gateway IP address for the management port, and where such packets are originate from a management VLAN.
This operation of the router 101 offers significant advantages over the prior system of
An example of the operation of an embodiment herein helps to illustrate an embodiment of a method of the system. Consider a situation where the host 132 tries to send a data packet to the gateway address of the MVLAN. In the embodiment shown in
Further, the operation provides if the host 132 was to try and gain access to the management control of the subnet/switch 124. The ASIC 117 would again prevent access. Specifically, if a host, such as the host 132, were to direct a management control data packet to the IP address of 126, which has an IP corresponding to the MVLAN gateway address, for example it might be 192.168.100.1, then the host 132 would generate a data packet having a destination address of 192.168.100.1. The subnet/switch 124 would recognize that this was not an IP address corresponding to the gateway 192.168.10.254, and would route the data packet to the port 114. At port 114 the ASIC 117 and CAM-ACL 118 would recognize that the data packet was directed to an IP address corresponding to the MVLAN and that it was utilizing one of the management protocols and would drop the data packet. Thus, the host 132 would be denied access to the management function of the subnet/switch 124.
In contrast where a host, such as host 129, is connected to the MVLAN subnet 128 and it generates a data packet with is directed to 126, this data packet will be received on port 102. The ASIC 117 and CAM-ACL 118 apply different rules to data packets received on the MVLAN 104 port 102. Assuming that management protocol data packet is received from a host on the subnet 128, then the data packet will reach the CPU 116 and can gain access to management function of the router 101. The CPU 116 could of course provide for additional levels protection for management controls. Assuming that the CPU grants management functions to the host on the subnet 128 and the host directs functional instruction to the plane 126, then the management function of the CPU 116 will generate data packets with the instructions to plane 126 of IP address 198.168.100.1 and these data packets will be transmitted through the port 114 to 126, where the instructions will be implemented by the switch 124.
The CPU 116 also operates to provide for prioritization of data packet routed through the router 101. For example, assume that the host 129 access the management functions of the CPU 116. The router operates to prioritize the data packets coming from the host 129 and give these management control data packets highest priority relative to other data packets being routed through the router 101. Line 134 represents a situation where a host on the control subnet 128 has accessed control functions of the CPU 116 and is sending management control instructions to the switch 124. These management control instructions would be routed as directly as possible with the highest priority through the router 101.
This operation of prioritizing data packets with management control instructions could be implemented in a number of different ways. One embodiment could provide that when policies for CPU Protection against remote access are configured through the CPU 116, and the protection rules are stored in the CAM, and/or a Parameter RAM (PRAM) memory could also be utilized, prioritization rules could also be stored. During actual operation the ASIC will look up the source IP and destination IP addresses (this could be done by referring to information in the CAM ACL for example) where these IF addresses are identified as part of the management VLAN, then the ASIC operates to route the corresponding management control instructions with the highest priority.
Some aspects related to implementation and additional embodiments herein are shown in more detail below. In connection with configuring a layer 2 switch of a subnet for remote access as part of the MVLAN, a user can assign specific ports of a layer 2 switch of the management subnet as being part of the MVLAN. Thus, instead of defining a host IP address and protocol, and rules to be applied by a CPU, certain ports can be defined to have access to the CPU of the router. The below syntax shows code which defines a VLAN to include ports 1-5 on a third blade of layer 2 switch, and shows the IP address and subnet mask for the management access gateway.
In addition to configuring the layer 2 switches of the system, the layer 3 router can also be configured by the user in connection with controlling remote access to the CPU. The IP address specified in the router-interface will become the management IP address of the MVLAN. The below syntax shows an example of code which could be used in connection with configuring the router.
The table below shows a table from a CAM with rules which are applied to a port of the router which is defined as management port. The table shows that if any source IP address for received data packet is something other than one of the source IP address which is identified as permitted for management access, then if the datapacket is in the telnet protocol “23” and the data packet has a destination IP address corresponding to the management port then the data packet will be discarded. Similar implementation could be provided for other management protocols.
The below text shows code syntax of an embodiment of the invention where management protocol data packets directed to the IP address of the management port are disabled for hosts connected non-management ports of the router. Specifically, a user can control management access to interfaces by disabling the management IP through the CAM, and although this feature allow users to choose which interface IP is not management IP, it does not affect any L3 routing for that interface.
The table below shows a table from the CAM with rules which are applied to a port of the router which corresponds to the interface 3/11 which is shown above as having the management—ip disable. The table shows that regardless of the source ip address of a data packet, if the destination address corresponds to the management port, and the data packet is one of the management protocols, then the data packet will be discarded.
It should be noted that the above syntax related to potential software code of different embodiments should be viewed as illustrative, and one of skill in the art would recognize that specific implementations of the invention herein could be implemented in different ways. Thus, while various embodiments of the present invention have been described above, it should be understood that they have been presented by way of example, and not limitation. It will be apparent to persons skilled in the relevant art that various changes in form and detail may be made therein without departing from the spirit and scope of the invention. This is especially true in light of technology and terms within the relevant art(s) that may be later developed. Thus, the present invention should not be limited by any of the above-described exemplary embodiments, but should be defined only in accordance with the following claims and their equivalents.
| Number | Name | Date | Kind |
|---|---|---|---|
| 4897874 | Lidinsky et al. | Jan 1990 | A |
| 5237614 | Weiss | Aug 1993 | A |
| 5721780 | Ensor et al. | Feb 1998 | A |
| 5757924 | Friedman et al. | May 1998 | A |
| 5774551 | Wu et al. | Jun 1998 | A |
| 5825890 | Elgamal et al. | Oct 1998 | A |
| 5892903 | Klaus | Apr 1999 | A |
| 5894479 | Mohammed | Apr 1999 | A |
| 5946308 | Dobbins et al. | Aug 1999 | A |
| 5958053 | Denker | Sep 1999 | A |
| 6009103 | Woundy | Dec 1999 | A |
| 6021495 | Jain et al. | Feb 2000 | A |
| 6167052 | McNeill et al. | Dec 2000 | A |
| 6167445 | Gai et al. | Dec 2000 | A |
| 6212191 | Alexander et al. | Apr 2001 | B1 |
| 6219790 | Lloyd et al. | Apr 2001 | B1 |
| 6256314 | Rodrig et al. | Jul 2001 | B1 |
| 6338089 | Quinlan | Jan 2002 | B1 |
| 6339830 | See et al. | Jan 2002 | B1 |
| 6363489 | Comay et al. | Mar 2002 | B1 |
| 6393484 | Massarani | May 2002 | B1 |
| 6496502 | Fite, Jr. et al. | Dec 2002 | B1 |
| 6510236 | Crane et al. | Jan 2003 | B1 |
| 6519646 | Gupta et al. | Feb 2003 | B1 |
| 6553028 | Tang et al. | Apr 2003 | B1 |
| 6615264 | Stoltz et al. | Sep 2003 | B1 |
| 6651168 | Kao et al. | Nov 2003 | B1 |
| 6665278 | Grayson | Dec 2003 | B2 |
| 6728246 | Egbert et al. | Apr 2004 | B1 |
| 6732270 | Patzer et al. | May 2004 | B1 |
| 6751728 | Gunter et al. | Jun 2004 | B1 |
| 6771649 | Tripunitara et al. | Aug 2004 | B1 |
| 6775290 | Merchant et al. | Aug 2004 | B1 |
| 6789118 | Rao | Sep 2004 | B1 |
| 6807179 | Kanuri et al. | Oct 2004 | B1 |
| 6813347 | Baals et al. | Nov 2004 | B2 |
| 6853988 | Dickinson et al. | Feb 2005 | B1 |
| 6874090 | See et al. | Mar 2005 | B2 |
| 6892309 | Richmond et al. | May 2005 | B2 |
| 6907470 | Sawada et al. | Jun 2005 | B2 |
| 6912592 | Yip | Jun 2005 | B2 |
| 6950628 | Meier et al. | Sep 2005 | B1 |
| 6959336 | Moreh et al. | Oct 2005 | B2 |
| 6980515 | Schunk et al. | Dec 2005 | B1 |
| 6981054 | Krishna | Dec 2005 | B1 |
| 7028098 | Mate et al. | Apr 2006 | B2 |
| 7062566 | Amara et al. | Jun 2006 | B2 |
| 7079537 | Kanuri et al. | Jul 2006 | B1 |
| 7088689 | Lee et al. | Aug 2006 | B2 |
| 7092943 | Roese et al. | Aug 2006 | B2 |
| 7093280 | Ke et al. | Aug 2006 | B2 |
| 7113479 | Wong | Sep 2006 | B2 |
| 7114008 | Jungck et al. | Sep 2006 | B2 |
| 7131141 | Blewett et al. | Oct 2006 | B1 |
| 7134012 | Doyle et al. | Nov 2006 | B2 |
| 7155518 | Forslow | Dec 2006 | B2 |
| 7188364 | Volpano | Mar 2007 | B2 |
| 7194554 | Short et al. | Mar 2007 | B1 |
| 7234163 | Rayes et al. | Jun 2007 | B1 |
| 7249374 | Lear et al. | Jul 2007 | B1 |
| 7302700 | Mao et al. | Nov 2007 | B2 |
| 7343441 | Chrysanthakopoulos et al. | Mar 2008 | B1 |
| 7360086 | Tsuchiya et al. | Apr 2008 | B1 |
| 7469298 | Kitada et al. | Dec 2008 | B2 |
| 7483971 | Sylvest et al. | Jan 2009 | B2 |
| 7493084 | Meier et al. | Feb 2009 | B2 |
| 7500069 | Hochmuth et al. | Mar 2009 | B2 |
| 7516487 | Szeto et al. | Apr 2009 | B1 |
| 7523485 | Kwan | Apr 2009 | B1 |
| 7536464 | Dommety et al. | May 2009 | B1 |
| 7567510 | Gai et al. | Jul 2009 | B2 |
| 20020016858 | Sawada et al. | Feb 2002 | A1 |
| 20020055980 | Goddard | May 2002 | A1 |
| 20020065938 | Jungck et al. | May 2002 | A1 |
| 20020133534 | Forslow | Sep 2002 | A1 |
| 20020146002 | Sato | Oct 2002 | A1 |
| 20020146107 | Baals et al. | Oct 2002 | A1 |
| 20030028808 | Kameda | Feb 2003 | A1 |
| 20030037163 | Kitada et al. | Feb 2003 | A1 |
| 20030043763 | Grayson | Mar 2003 | A1 |
| 20030056001 | Mate et al. | Mar 2003 | A1 |
| 20030056063 | Hochmuth et al. | Mar 2003 | A1 |
| 20030065944 | Mao et al. | Apr 2003 | A1 |
| 20030067874 | See et al. | Apr 2003 | A1 |
| 20030105881 | Symons et al. | Jun 2003 | A1 |
| 20030142680 | Oguchi | Jul 2003 | A1 |
| 20030217151 | Roese et al. | Nov 2003 | A1 |
| 20030226017 | Palekar et al. | Dec 2003 | A1 |
| 20030236898 | Hu et al. | Dec 2003 | A1 |
| 20040003285 | Whelan et al. | Jan 2004 | A1 |
| 20040053601 | Frank et al. | Mar 2004 | A1 |
| 20040160903 | Gai et al. | Aug 2004 | A1 |
| 20040210663 | Phillips et al. | Oct 2004 | A1 |
| 20040213172 | Myers et al. | Oct 2004 | A1 |
| 20040255154 | Kwan et al. | Dec 2004 | A1 |
| 20050025125 | Kwan | Feb 2005 | A1 |
| 20050055570 | Kwan et al. | Mar 2005 | A1 |
| 20050091313 | Zhou et al. | Apr 2005 | A1 |
| 20050185626 | Meier et al. | Aug 2005 | A1 |
| 20050254474 | Iyer et al. | Nov 2005 | A1 |
| 20060028996 | Huegen et al. | Feb 2006 | A1 |
| 20060155853 | Nesz et al. | Jul 2006 | A1 |
| 20070220596 | Keeler et al. | Sep 2007 | A1 |
| 20090254973 | Kwan | Oct 2009 | A1 |
| 20090260083 | Szeto et al. | Oct 2009 | A1 |
| 20090265785 | Kwan | Oct 2009 | A1 |
| 20090307773 | Kwan | Dec 2009 | A1 |