The Shunt: An FPGA-based accelerator for network intrusion prevention (2007)
| Venue: | In FPGA ’07: Proceedings of the 2007 ACM/SIGDA 15th international |
| Citations: | 13 - 4 self |
BibTeX
@INPROCEEDINGS{Weaver07theshunt:,
author = {Nicholas Weaver},
title = {The Shunt: An FPGA-based accelerator for network intrusion prevention},
booktitle = {In FPGA ’07: Proceedings of the 2007 ACM/SIGDA 15th international},
year = {2007},
pages = {199--206},
publisher = {ACM Press}
}
OpenURL
Abstract
The sophistication and complexity of analysis performed by today’s network intrusion prevention systems (IPSs) benefits greatly from implementation using general-purpose CPUs. Yet the performance of such CPUs increasingly lags behind that necessary to process today’s high-rate traffic streams. A key observation, however, is that much of the traffic comprising a high-volume stream can, after some initial analysis, be qualified as “likely uninteresting.” To this end, we have developed an in-line, FPGA-based IPS accelerator, the Shunt, using the NetFPGA2 platform. The Shunt functions as the forwarding device used by the IPS; it alone processes the bulk of the traffic, offloading the memory bus and leaving the CPU free to inspect the subset of the traffic deemed germane for security analysis. To do so, the Shunt maintains several large state tables indexed by packet header fields, including IP/TCP flags, source and destination IP addresses, and connection tuples. The tables yield decision values the element makes on a packet-by-packet basis: forward the packet, drop it, or divert it through the IPS. By manipulating table entries, the IPS can specify the traffic it wishes to examine, directly block malicious traffic, and “cut through ” traffic streams once it has had an opportunity to “vet ” them, all on a fine-grained basis. We base our design on a novel series of caches, with a “fail safe ” miss policy, coupled to a host PC to handle both cache management and higher level IPS analysis. The design requires only 2 MB of SRAM for its extensive caches, and can support







