Making DPI Engines Resilient to Algorithmic Complexity Attacks

Yehuda Afek, Anat Bremler-Barr, David Hay, Yotam Harchol
ACM/IEEE Transactions on Networking,
2016
Journal
DDoS attack, Deep Packet Inspection (DPI)

Abstract

This paper starts by demonstrating the vulnerability of Deep Packet Inspection (DPI) mechanisms, which are at the core of security devices, to algorithmic complexity denial of service attacks, thus exposing a weakness in the first line of defense of enterprise networks and clouds. A system and a multi-core architecture to defend from these algorithmic complexity attacks is presented in the second part of the paper. The integration of this system with two different DPI engines is demonstrated and dis- cussed. The vulnerability is exposed by showing how a simple low bandwidth cache-miss attack takes down the Aho-Corasick (AC) pattern matching algorithm that lies at the heart of most DPI engines. As a first step in the mitigation of the attack, we have developed a compressed variant of the AC algorithm that improves the worst case performance (under an attack). Still, under normal traffic its running-time is worse than classical AC implementations. To overcome this problem, we introduce MCA^2 —Multi- Core Architecture to Mitigate Complexity Attacks, which dynamically combines the classical AC algorithm with our compressed implementation, to provide a robust solution to mitigate this cache- miss attack. We demonstrate the effectiveness of our architecture by examining cache-miss algorithmic complexity attacks against DPI engines and show a goodput boost of up to 73%. Finally, we show that our architecture may be generalized to provide a principal solution to a wide variety of algorithmic complexity attacks.

Share on facebook
Share on twitter
Share on linkedin
Share on whatsapp
Share on email
@ARTICLE{7393623,
  author={Afek, Yehuda and Bremler-Barr, Anat and Harchol, Yotam and Hay, David and Koral, Yaron},
  journal={IEEE/ACM Transactions on Networking}, 
  title={Making DPI Engines Resilient to Algorithmic Complexity Attacks}, 
  year={2016},
  volume={24},
  number={6},
  pages={3262-3275},
  doi={10.1109/TNET.2016.2518712}}