DNS cache poisoning hit public awareness with the now infamous cache poisoning problem discovered by Dan Kaminsky of IOActive. DNS server's cache DNS address resolution "the IP addresses assigned to a hostname—responses from other DNS servers to avoid having to continually resolve a host name. Cache poisoning occurs when incorrect address resolution records are inserted into a DNS server.
Kaminsky discovered a design flaw in the DNS protocol which allows an unpatched DNS server to be tricked into storing name resolution records of the attackers choosing. For example, an attacker could redirect all users to amazon.com to a fake web site. All major DNS server software have patches available which make the attack much more difficult, but not impossible, to carry out.
InfoBlox's DNS firewall detects this attack based on behavior. The attacker has to guess two things to poison a DNS server. The first is the DNS transaction-ID that is used to match DNS responses to DNS requests. The second component is to guess which UDP source port the DNS server used to make the request. If the attacker can guess these two things correctly and get their response to the DNS server first, then the attack is successful.
The DNS cache poisoning attack is launched by getting the DNS server to request a name lookup and then firing lots of responses. In an unpatched DNS server, the cache can be poisoned in under a minute with a few thousand responses. A patched DNS server can still be poisoned in less than a day with millions of responses, but the bandwidth required makes such an attack over the Internet unlikely to succeed. The cache poisoning attack exhibits a high rate of unknown transaction-ID's and unknown UDP source port numbers, in the hundreds per second ,or more, indicate an attack is underway. InfoBlox's DNS firewall detects this behavior as malicious and can send an alert or simply rate limit requests from the offending host or network.
Granted, the likelihood of successfully poisoning a patched DNS server from across the Internet is unlikely just because of the bandwidth required to pull it off isn't available. However, an internal attacker has greater network capacity to work with and success is more likely. InfoBlox's DNS firewall strengthens protections from both internal and external attacks.
InfoBlox bloxTools is a sandbox running on the InfoBlox appliance which lets users develop custom applications to interact with the appliance. The bloxTools Runtime Environment (BRE), contains a web server and support for several common scripting languages and tools such as Perl, PHP, Python, CGI, and a scheduler. Applications written for BRE are called snap-ins. Using InfoBlox's API, snap-ins can interact with the appliance performing any action in the GUI through a script.
Snap-ins can also be shared and Infoblox is building a developer site to support bloxTools development and to share snap-ins among users. Rather than letting users post any snap-in, submissions will be analyzed and approved by InfoBlox before being available to the public which provides some assurance that snap-ins are not malicious.
A few snap-ins written by InfoBlox will be available for down load. GeoViewer uses address information assigned to each InfoBlox appliance and plots the location on Google Maps along with status information. Scheduler provides a GUI interface to schedule events. Reporting generates historical reports and integrates with the GeoViewer snap-in. Since the snap-ins are running on appliances, they get all the benefits of InfoBlox's grid technology such as high availability, easy distribution, and management.
The only feature missing from bloxTools we'd like to see is an event driven automation. Rather than writing a script that is run periodically, we'd like to be able to write a script that is executed based on an InfoBlox event. For example, we might want to fire off an alert when a new host makes a DHCP request. We could schedule a script to do the same thing, but a real-time event system would be more efficient.