Abstract
In the past few decades, a variety of the malicious attacks on the Internet were discovered. Most of these attacks were through packets with different network protocols. Due to the very fast spread of these attacks, it was difficult for people to copy with them immediately. Consequently, packet filtering is a critical method to prevent these attacks. However, most packet filtering software solutions cannot satisfy the demands of the contemporary network bandwidth. In this paper, we propose a GPU-based multiple-pattern matching algorithm for filtering malicious packets by using a Bloom filter to inspect the packet payload by leveraging the high parallelism computing power of GPU. In the experiments, we compare the proposed algorithm with different GPU-implemented technologies to sequence the Bloom filter algorithm on different platforms. The experimental results demonstrate that the proposed algorithm significantly enhances performance over sequential algorithms.
Similar content being viewed by others
References
Li, J., Qiu, M., Ming, Z., Quan, G., Qin, X., & Gu, Z. (2012). Online optimization for scheduling preemptable tasks on IaaS cloud systems. Journal of Parallel and Distributed Computing, 72(5), 666–677.
Niu, J., Gao, Y., Qiu, M., & Ming, Z. (2012). Selecting proper wireless network interfaces for user experience enhancement with guaranteed probability. Journal of Parallel and Distributed Computing, 72(12), 1565–1575.
Roesch, M. (1999). Snort - lightweight intrusion detection for networks. The 13th USENIX Conference on System Administration, pp. 229–238.
Cabrera, J. B. D., Gosar, J., Lee, W., and Mehra, R. K. (2004). On the statistical distribution of processing times in network intrusion detection. Proc. IEEE Conf. on Decision and Control, Dec., pp. 75–80.
Kim, J. H., Jang, W. D., Sim, J. Y., & Kim, C.-S. (2013). Optimized contrast enhancement for real-time image and video dehazing. Journal of Visual Communication and Image Representation, 24, 410–425.
Knuth, D. E., Morris, J., & Pratt, V. (1977). Fast pattern matching in strings. SIAM Journal on Computing, 6, 127–146.
Boyer, R. S., & Moore, J. S. (1977). A fast string searching algorithm. Communications of the ACM, 20, 762–772.
Aho, A. V., & Corasick, M. J. (1975). Efficient string matching: an aid to bibliographic search. Communications of the ACM, 18, 333–340.
Commentz-Walter, B. (1979). A string matching algorithm fast on the average. Proc. Intl. Colloquium on Automata, Languages and Programming, pp. 118–131.
Wu, S. and Manber, U. (1994). A fast algorithm for multi-pattern searching. Technical Report TR-94-17.
Coit, C., Staniford, S. and McAlerney, J. (2001). Towards faster string matching for intrusion detection or exceeding the speed of snort. Proc. DARPA Information Survivability Conference & Exposition II, pp. 367–373.
Fisk, M., and Varghese, G. (2002). Applying fast string matching to intrusion detection. Technical Report In preparation, successor to UCSD TR CS2001-0670.
Tuck, N., Sherwood, T., Calder, B., and Varghese, G. (2004). Deterministic memory-efficient string matching algorithms for intrusion detection. Proc. IEEE Infocom Conf., pp. 333–340.
Bremler-Barr, A., David, S. T., Harchol, Y., and Hay, D. (2015). Leveraging traffic repetitions for high-speed deep packet inspection. IEEE Conference on Computer Communications, pp. 2578–2586.
Jiang, L., Dai, Q., Tang, Q., Tan, J., and Fang, B. (2014). A fast regular expressions matching algorithm for NIDS. IEEE Symposium on Computers and Communication, pp. 1–7.
Sidhu, R., and Prasanna, V. (2001). Fast regular expression matching using FPGAs. Proc. IEEE Symp. Field-Programmable Custom Computing Machines, pp. 227–238.
Baker, Z. K. and Prasanna, V. K. (2004). Time and area efficient pattern matching on FPGAs. Proc. ACM/SIGDA Intl. Symp. Field Programmable Gate Arrays, pp. 223–232.
Attig, M. and Lockwood, J. (2005). A framework for rule processing in reconfigurable network systems. Proc. Annual IEEE Symp. Field Programmable Custom Computing Machines, pp. 225–234.
Bloom, B. H. (1970). Space/Time trade-offs in hash coding with allowable errors. Communications of the ACM, 13, 422–426.
Dharmapurikar, S., Krishnamurthy, P., Sproull, T., and Lockwood, J. W. (2003). Deep packet inspection using parallel Bloom filters. In: IEEE Symposium on High Performance Interconnects. (HotI), Stanford, CA.
Dharmapurikar, S., and Lockwood, J. W. (2006). Fast and scalable pattern matching for network intrusion detection systems. IEEE Journal on Selected Areas in Communications, pp. 1781–1972.
Al-Dalky, R., Salah, K., Otrok, H., and Al-Qutayri, M. (2014). Accelerating snort NIDS using NetFPGA-based Bloom filter. International Wireless Communications and Mobile Computing Conference, pp. 869–874.
Jacob, N., and Brodley, C. (2006). Offloading ids computation to the gpu. In: Computer Security Applications Conference, 22nd Annual, pp. 371–380.
Vasiliadis, G., Antonatos, S., Michalis, P., Markatos, E. P., & Ioannidis, S. (2008). Gnort: high performance network intrusion detection using graphics processors. Lecture Notes in Computer Science, 5230, 116–134.
Lin, C. H., Tsai, S. Y., Liu, C. H., Chang, S. C., and Shyu, J. M. (2010). Accelerating string matching using multi-threaded algorithm on GPU. IEEE Global Telecommunications Conference, pp. 1–5.
Hung, C. L., Lin, C. Y., & Wang, H. H. (2014). An efficient parallel-network packet pattern-matching approach using GPUs. Journal of Systems Architecture, 60, 431–439.
Nvidia. (2011). CUDA C best practices guide. version 4. Online.
Cormen, T. H., Leiserson, C. E., Rivest, R. L., and Stein, C. (1990). An introduction to algorithms. McGraw-Hill Book Publication, 1st (ed.).
Larson, P. A. (1978). Dynamic hashing. BIT, 18, 184–201.
Hsu, C. H., and Wang, S. D. (2013). An embedded NIDS with multi-core aware packet capture. IEEE 16th International Conference on Computational Science and Engineering, pp. 778–785.
Chen, X., Wu, Y., Xu, L., Xue, Y., and Li, J. (2009). Para-Snort: A multi-thread snort on multi-core IA platform. In: Proceedings of the Parallel and Distributed Computing and Systems.
Jiang, H., Zhang, G., Xie, G., Salamatian, K., and Mathy, L. (2013). Scalable high-performance parallel design for network intrusion detection systems on many-core processors. ACM/IEEE Symposium on Architectures for Networking and Communications Systems, pp. 137–146.
Li, J., Ming, Z., Qiu, M., Quan, G., Qin, X., & Chen, T. (2011). Resource allocation robustness in multi-core embedded systems with inaccurate information. Journal of Systems Architecture, 57(9), 840–849.
Acknowledgments
This research was partially supported by the Ministry of Science and Technology under Grants MOST-103-2221-E-126-013.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Hung, CL., Lin, CY. & Wu, PC. An Efficient GPU-Based Multiple Pattern Matching Algorithm for Packet Filtering. J Sign Process Syst 86, 347–358 (2017). https://doi.org/10.1007/s11265-016-1139-0
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11265-016-1139-0