Cover V14, i02
feb2005.tar

Next Generation DHCP Deployments

Dave Hull and George F. Willard III

As device mobility has transformed a novelty into a user expectation, the need for managed dynamic network configuration in campus and wireless environments has grown exponentially. User mobility and ease of end-user device network configuration have become key requirements when designing multi-user accessible networks. Additional challenges in this environment include maintaining security access controls, usage tracking, billing, and end-user support.

To support these requirements, the Dynamic Host Configuration Protocol (DHCP) provides the foundation of network auto-configuration, but it must also extend beyond the demands of traditional DHCP servers to meet the security and functionality requirements of next generation deployments. Before DHCP services can be properly utilized, weaknesses of the protocol and server implementation should be understood to ensure proper deployment and integration with other services. Non-traditional uses of DHCP to detect client operating systems, emerging extensions to DHCP, and security measures that can be taken to protect DHCP deployments will also be explored.

Driving Factors

Information security officers and systems and network administrators all want to control which devices are allowed onto their networks, but this is not always possible. Internet service providers would be overwhelmed if they had to pre-approve every device on their networks, especially when many corner coffee shops offer wireless access to their customers.

Large universities are another environment where pre-approving all network devices is a Herculean task. University networks are usually well connected to the Internet and are therefore popular targets for hackers, but many systems in these environments are owned by students more concerned with their mp3 collections than their operating systems or anti-virus definitions.

Several commercial products attempt to address these issues, but they often fall short of providing a comprehensive solution that scales reasonably. Captive portals, where users are redirected to a login page while their systems are scanned for vulnerabilities, often require gateways to be installed in front of every Ethernet (layer 2) segment of the network. While this approach provides a level of intra-subnet isolation, it still allows inter-subnet communication and thus infection in the case of a worm or virus outbreak. In response to default client firewalls like Windows XP service pack 2, many of these systems have resorted to a client agent that allows for end-user device scanning for proper configuration and patches. Installation of software on an end-user system for which you do not have administrative control can quickly generate a large number of end-user support issues.

Operating System Fingerprinting

Increasingly, security and network administrators are relying on device registration systems for access control as well as intrusion detection and prevention systems to maintain network integrity. Additionally, administrators are actively scanning hosts looking for vulnerable systems so they can proactively instruct the owners of those systems to apply the appropriate patches.

Remote OS fingerprinting is useful for filtering out false positives from network scans and IDS logs in these environments. If a remote system is shown to be running Linux, a Microsoft SQL Server vulnerability reported for that host may be a false positive.

Current fingerprinting techniques fall into two categories: active and passive. Fyodor's NMap Security Scanner demonstrated in Figure 1 falls into the former category. NMap examines various elements of TCP/IP packets to determine the remote host's operating system. Essentially, utilities like NMap do a "call and response" with a remote host, sometimes sending specially crafted packets to the remote system and examining the packets that come back from the host. Different operating systems respond differently to these packets, and these responses contain enough information to make a determination about which operating system is running on the remote host.

Although active TCP/IP stack fingerprinting is highly effective, it does have one major disadvantage. Active fingerprinting requires communication with the remote host and, because this may include the use of unusual or malformed packets, an intrusion detection system or personal firewall on the remote system may detect these odd packets and sound an alarm or discard them.

Passive fingerprinting, on the other hand, can be undetectable. Tools like p0f [1] also analyze TCP/IP headers to determine a remote host's OS. However, passive tools eavesdrop on the conversations of others and determine the remote operating systems without participating in the conversation.

University of Kansas

The University of Kansas data network is large and diverse with centralized management to the edge and distributed management of the end nodes. Every fall, thousands of students move into residence halls where they have the option of plugging their computers (often unpatched and unprotected) into the University's network. If and when students do connect to the campus network, they find their access to the campus network and the Internet limited.

When a student in a residence hall opens a Web browser, he is automatically redirected to a Web site where he must register his computer and purchase Internet access before he can access the KU network and the Internet as shown in Figure 2.

As part of the registration process, ResNet customers' computers are checked for the latest operating system updates, University-supported anti-virus software and up-to-date virus definition files. Each of these operations is handled by RINGS (Resnet Integrated Next-Generation System) [2], an internally developed J2EE-based registration system that contains functionality similar to the popular NetReg [3] system. Additionally, the MAC addresses of the students' computers are recorded in a directory server along with the DHCP-assigned IP addresses and other customer device information. Recording the customers' operating systems and detailed network location information allows for rapid problem detection and resolution regarding client mis-configuration and security incident handling.

DHCP OS Fingerprinting

In large deployments and transient networks, a better passive fingerprinting technique that provides a high degree of accuracy is needed. Enter the software engineering team at the KU Networking and Telecommunications Services (NTS), a division of Information Services. While developing the University's Advanced Network Services Registry (ANSR) system [4], a suite of directory-enabled applications for network management, the team discovered a new technique for passive OS fingerprinting.

The technique developed at KU has been dubbed "DHCP Fingerprint", and it relies on DHCP Options as defined in RFC 2132 [5]. According to the RFC, "configuration parameters and other control information are carried in tagged data items that are stored in the 'options' field of the DHCP message." Each operating system requests a different ordered set of options, thus the operating system may be determined by examining the options requested by the client.

KU's NTS software engineering team uses this passive OS-fingerprinting technique to determine the operating systems of ResNet customers. This information is then recorded in the ANSR directory server where it can be used by RINGS and other ANSR applications, such as those that restrict rogue wireless access points or broadband routers from accessing the network -- even in cases where students are savvy enough to clone the MAC addresses of legitimately registered devices.

Besides providing information to KU's integrated systems, the operating system information may also be used for planning and analysis. Figure 3 shows the current ResNet operating system distribution. This graph clearly indicates that our ResNet student consultants should have Microsoft Windows XP training and experience.

How DHCP OS Fingerprinting Works

DHCP options are used by DHCP clients to request additional information from the DHCP server. Each option is identified by a unique code or "tag octet". Figure 4 shows the format for a DHCP message.

Options include things like the SMTP server option (code 69), domain name server option (code 6), or NetBIOS over TCP/IP name server option (code 44). Option code 55 contains the parameter request list or the list of requested options themselves. According to RFC 2132, the list may be in the client's order of preference. Option 43 is reserved for vendor-specific information and may contain additional vendor-defined options. Options 128 through 254 are reserved for vendor- or site-specific purposes.

By design, a freshly booted DHCP client broadcasts a DHCPDISCOVER message on the network. In most cases, the client broadcasts include requests for optional information via option 55. After the client receives one or more DHCPOFFER messages, it responds by broadcasting a DHCPREQUEST message that includes an option indicating which server's offer is being accepted. The DHCPREQUEST message may contain optional parameters, and they may be the same or different from the optional parameters included in the DHCPDISCOVER message.

A single DHCPDISCOVER or DHCPREQUEST message contains enough information within option 55 alone to accurately fingerprint a remote operating system. Contrast this with the traditional TCP/IP stack fingerprinting methods used by NMap or p0f where multiple packets are needed to conclusively identify the remote host.

ANSRdhcp

One of the first features added to KU's ANSRdhcp server was the recording of a DHCP client's last requested options. Recording the last requested options in a human-readable format has several advantages. With the delegated administration of the device-centric data stored in the ANSR directory server, it would be inconvenient at best for a systems administrator to obtain server-side logging information or DHCP packet captures to determine which options a device is requesting.

Systems administrators on KU's campus can log in to the ANSR system and look at the options their DHCP clients are requesting from the central campus ANSRdhcp server. Administrators may also add the desired responses to these options to ANSR, and the DHCP server will pass those responses on to the clients the next time they send a DHCPDISCOVER or DHCPREQUEST message. The requested options are converted from byte form to the human-readable directory attribute name. This provides a "fill in the blank" approach for administrators to ensure that their DHCP clients receive the settings that they are requesting. The hierarchical structure of the directory service is used to leverage inheritance of settings, so that common settings can be applied at a parent entry instead of every client entry.

There are a number of devices on the market that claim they will only work with a proprietary DHCP server when, in reality, all that is needed is a way to instruct a DHCP server to provide the proper response to the device's request for vendor-specific information. This is a critical capability that ANSR system possesses, along with the ability to override handling of any option at any level, even on a per-device basis to accommodate client-specific needs.

During the development of the ANSR system, the software engineering team noticed that client devices were requesting different options from the DHCP server with enough variation in ordering and requested options to be used to fingerprint devices using the DHCP server.

DHCP Listener

To test this idea, the software team initially developed a standalone Java application called DHCPListener [6] that runs on a host and listens for broadcast traffic to port 67, the default DHCP server port. As packets come in, the application parses them and examines the DHCP options information. Option 53 contains the DHCP message type. If the value of option 53 is 1 or 3, the packet contains DHCPDISCOVER or DHCPREQUEST information, respectively, and the parsing continues; otherwise the packet is ignored.

Following the extraction of the message type, DHCPListener attempts to extract additional options, if they are present, including the vendor class identifier that may reveal some basic information about the remote host. For example, Windows 2000 and XP report MSFT 5.0, while Windows 98 reports MSFT 98 instead.

Option 55, however, contains the real meat of the fingerprinting technique. To date, the team has collected unique signatures of 19 distinct devices and operating systems. When DHCPListener parses option 55's contents, it takes the list of options and uses them to retrieve the device or operating system from a hash map that is loaded from a text file when the application starts. Figure 5 shows some of the entries from the fingerprints.txt file.

DHCPListener generates XML markup as shown in Figure 6. The XML output may be validated against a DTD to easily be processed by other programs and systems, or processed by a style sheet for tabular display. For unknown operating systems, the operatingSystem tags will contain a braced list of requested options. For example, the list might resemble {1,66,6,3,67,12,-106}. If the DHCPListener operator knows the operating system for the device in question, he may simply add it to the fingerprints.txt file and restart the listener. In this case, the device is actually a Cisco 2900 Catalyst XL switch using DHCP to obtain its own IP address and network information.

Some devices have been found to give out no information via the optional parameters list. In these cases, DHCPListener fills the operating system tag with the word "NONE". In most situations, the device in question has turned out to be a Linksys broadband router.

ANSRdhcp Fingerprint Integration

The fingerprints.txt file used by DHCPListener is for demonstration purposes, but the concept may be easily extended into production DHCP servers. Instead of relying upon a file, the ANSRdhcp server obtains DHCP fingerprints, as well as other server configuration options, directly from the directory server that hosts the networked device information. The dhcpDeviceFingerprint attribute contains a description and the requested options list in human-readable format. A visual LDAP browser, like the Softerra LDAP Administrator [7] tool, may be used to manage DHCP fingerprints as well as all other directory-hosted information as shown in Figure 7.

DHCP Relay Agent Information Option

When a DHCP client broadcasts a discover message on a subnet, and a DHCP server is listening on the same subnet, there is minimal information that the server can use to decide how to service the request. This information includes the MAC address of the client, optional client-provided identification information (including a client identifier and vendor class identifier), and the options that the client is requesting from the server. The server makes a decision on how to service the client from this information.

When a DHCP relay is used to forward the request to the DHCP server, the relay address "giaddr" may also be used to determine how to service the request. This is implemented by using either a DHCP relay server or more typically via IP helper functionality on Cisco routers. In most cases, the relay address acts as a subnet selector to determine which pool or set of static assignments is appropriate. This may also be taken a step further into the concept of having a device registered to a home subnet, and as a registered device, allowed to obtain a lease from "roaming" pools on other subnets. Using this technique, however, still does not provide access control granularity beyond the subnet where the device is attached.

The DHCP relay agent information option as defined in RFC 3046 provides additional information to the DHCP server to make fine-grained decisions about host configuration. The DHCP relay agent information option, also known as option 82, is injected into the DHCP request packets by the network device to which the client is connected, typically a layer-2 Ethernet switch. Figure 8 shows an outline of the Cisco relay agent information option format. Additional information appended to the request includes the VLAN number, interface index, and the MAC address of the network device itself. From this information, the server can determine that the request came from a specific switch on a specific port and knows the active VLAN.

A common use of the relay agent information option is to limit the number of unique MAC addresses that may DHCP boot on a given network port. More sophisticated implementations may track the switch and port information and map it to circuit or jack locations so that hosts may be located quickly for security or help-desk reasons.

Figure 9 shows how inbound discover packets are processed, and the information that is recorded from the request directly into the device's directory server entry. Note that the IP address of the network switch must be resolved via the MAC address. To accommodate this, the edge network switches are also registered devices in the directory. Figure 10 shows an example device entry that contains the resulting decoded information.

This additional network information can also be used to make detailed decisions. For example, you may want to provide different information via DHCP to a test-bench switch on the same subnet as other switches. The downside to utilizing this option is that the relay agent information option provides a great deal of information about the layer-2 physical topology to a potential attacker. An attacker could passively build a complete map of the edge switch topology, including the locations of each DHCP client. After this information is injected into the client's DHCP request, it is then broadcast visible on the subnet unless additional precautions are taken.

DHCP Snooping

To prevent the broadcast visibility of DHCP requests and to enforce additional DHCP controls, Cisco utilizes a configuration feature called DHCP snooping. Three major benefits of DHCP snooping include elimination of DHCP broadcast request visibility, prevention of rogue DHCP servers, and protection against DHCP server address exhaustion attacks.

DHCP snooping defines a trust model where a port on a switch is either trusted or not trusted. A trusted port may answer DHCP requests. If your DHCP server is located on the same subnet, it must be connected to a trusted port. If however, your DHCP server is on another subnet and accessible via DHCP relay, the uplink port of the switch must be trusted. This allows for the DHCP requests to reach the server. If the port is not trusted, DHCP serving is not allowed from the port; however, client DHCP requests may be serviced. Figure 11 shows an example of KU's DHCP snooping network topology for the ResNet network.

The configuration needed to enable DHCP snooping is relatively simple. Figure 12 shows the configuration for an example edge switch. Interface Fa0/48 is used as the uplink port, and thus must have ip dhcp snooping trust enabled. All other 47 client connection ports are not trusted and are also configured with a limit rate of 30 DHCP packets per second to suppress DHCP server denial of service attacks. Note that you may need to upgrade your Cisco IOS image on these switches to support these relatively new features. The IOS revision that KU used is also shown in Figure 12.

The router configuration in Figure 13 shows the configuration options that must be added to each VLAN that uses the DHCP snooping model. First, the address of the DHCP server is specified as the ip helper-address. Second, the ip dhcp relay information trusted option must be set. This ensures that DHCP traffic will be relayed to only the DHCP server and that the server specified may receive the additional relay agent information option.

Because a port must be trusted to be a DHCP server, the threat of rogue DHCP servers is eliminated. KU had previously experienced numerous ResNet customer service outages due to wireless broadband routers being connected to their internal network interfaces instead of the WAN ports. These improperly connected broadband routers then handed out RFC 1918 [8] local addresses to other clients instead of proper ResNet addresses. This feature of DHCP snooping alone has saved countless hours of customer service headaches.

Cisco's DHCP snooping implementation also allows for limiting the rate of DHCP requests per port, per second. This greatly reduces the amount of traffic generated by a DHCP server address exhaustion attack, preventing denial of service against the DHCP server. In combination with a packet throttle built into the DHCP server, DHCP snooping has prevented DHCP service outages.

DHCP Lease Query

A DHCP server contains authoritative information regarding the mapping of MAC addresses to IP addresses. This information can be critical for tracking network usage in a layer-3 routed environment where a client may roam across subnets. The IETF draft for DHCP lease query, draft-ietf-dhc-leasequery-07.txt, defines how DHCP lease query performs the lookup and has already been successfully pre-standard implemented by some vendors, including Ellacoya Networks[9].

Other uses for this information mapping include passive authentication through layer-3 gateways such that only hosts registered in the DHCP server may pass traffic through a layer-3 boundary, perhaps through a border router to the Internet. This also allows for Internet usage billing and policy application at a granular level. For example, some hosts in the DHCP server may be allowed to pass peer-to-peer traffic while others may not.

Gateway devices often maintain the policy information and grouping constructs for policy application. The gateway device utilizes unicast DHCP lease query messages to resolve layer-2 MAC addresses to layer-3 IP address mapping information.

When using a DHCP server with lease query support, the server should be configured to answer lease queries only from trusted sources (i.e., the gateway devices). Otherwise, an attacker could mine the complete layer-2 to layer-3 map of your network through remote unicast packets. This is the equivalent of remotely obtaining a complete ARP table.

Figure 14 shows the flow of inbound DHCP packets through the lease query packet filter. If the lease query request originated from an authorized host, as specified in the directory server configuration dhcpAuthorizedLeaseQueryHost attribute, then the lease query will be processed. If the requester is not authorized, the packet is discarded. The ANSR directory server is then searched by IP address for corresponding registered device entry. If the entry is found, a lease query response is generated containing the device's MAC address and lease time remaining. Otherwise, if the host is not found, a response is generated that does not contain any device-specific information indicating that a device registered to the requested IP address was not found.

The network location of your DHCP server is also critical to a secure DHCP server deployment. If the DHCP server is located on the same subnet it services, the server may be more vulnerable to local subnet ARP style redirect and spoofing attacks to obtain this information. For this reason, it is good practice to place the DHCP server on a separate segment where it does not answer local DHCP requests; only those obtained via specified trusted relay addresses are answered.

Conclusion

Systems administrators in large environments have welcomed DHCP and with good reason; it has cured countless headaches caused by having to resolve IP conflicts and has enabled the era of mobile computing.

However, as with any technology, DHCP has brought new security challenges. Unforeseen uses of DHCP, including passively fingerprinting remote operating systems and passively mapping the entire network, require DHCP administrators to carefully consider their implementations. Hardware vendors should include features like Cisco's DHCP snooping in order to mitigate information leaks and denial of service attacks in next generation DHCP deployments.

References

1. Zalewski, Michal. p0f v2 is a passive OS fingerprinting tool. More information is available on the Internet at: http://lcamtuf.coredump.cx/p0f.shtml

2. The University of Kansas. ResNet Integrated Next Generation System (RINGS) is a J2EE network device registration and access control system used in the residence hall system at KU. RINGS was jointly developed by KU's Networking and Telecommunications Services and ResNet departments.

3. Valian, Peter and Watson, Todd K. 2000. NetReg: An Automated DHCP Registration System. Sys Admin 9(12):26-32. Published on the Internet at: http://www.netreg.org/SysAdmin

4. The University of Kansas. Advanced Network Services Registry (ANSR) is an LDAP-based application developed by KU's Networking and Telecommunications Services. More information is available on the Internet at: http://www.nts.ku.edu/services/data/networkmgmt/ansr/documentation/index.jsp

5. Alexander, Steve and Droms, Ralph. March, 1997. DHCP Options and BOOTP Vendor Extensions. Published on the Internet at: http://www.ietf.org/rfc/rfc2132.txt

6. The University of Kansas. Source code available at: http://www.nts.ku.edu/downloads

7. Softerra, LLC. More information available on the Internet at: http://www.ldapadministrator.com

8. Rekhter, Yakov, et al. February, 1996. Address Allocation for Private Internets. Published on the Internet at: http://www.ietf.org/rfc/rfc1918.txt

9. Ellacoya Networks. More information available on the Internet at: http://www.ellacoya.com

Dave Hull and George F. Willard III are employed by the Networking and Telecommunications Services division of Information Services at the University of Kansas. As the DBA and systems administrator of the software engineering team, Dave leverages data architectures and open source software running on the Linux operating system to support campus-wide networking services and initiatives. George, as the chief systems architect and manager of software engineering, is leading the development and implementation of the directory enabled network, wireless network security, and network middleware integration initiatives. Dave and George can be contacted at dphull@ku.edu and gfwillar@ku.edu, respectively.