论文部分内容阅读
CLAMAV被广泛应用于多种网络安全领域,尤其在防范网络蠕虫,电脑病毒和木马等攻击的网络入侵检测系统(NIDS)中被着重使用,是构成这些NIDS的主要部件之一。它是一款开源(GPL)反病毒工具包,在运行中主要使用了入侵检测技术中的特征值检验技术。该工具包提供了包含灵活且可伸缩的监控程序、命令行扫描程序以及用于自动更新数据库的高级工具在内的大量实用程序,其核心在于其中可被用于各类场合的反病毒引擎共享库。随着网络的高速发展以及本地计算机与网络所需交换数据量的规模日渐增大,在入侵检测系统中探测引擎对来自网络或本地的大量数据进行高速处理的能力已经变得越来越重要.为了满足入侵检测系统对性能的高实时要求,作者在本论文中以对CLAMAV软件工作流的处理为例,将IDS的部分数据检测工作量转移到FPGA硬件上执行以实现加速.本论文还提出了一个基于FPGA的软硬件共同协作的高性能系统架构来提高开源杀毒软件CLAMAV的性能。本文首先分析了CLAMAV的运行过程和性能情况,指出需要解决的主要问题是如何将基于CLAMAV病毒库的字符串匹配在FPGA硬件上高效可靠的实现以及如何克服速度缓慢的软件部分对整个系统的效率所带来的影响。为了解决上述两个问题,本文在通过严谨分析后提出的病毒扫描架构包括实现于FPGA上的基于布鲁过滤器(bloom filter)的扫描引擎及分析器,软件端经过修改的CLAMAV程序,以及位于其间沟通软硬件两部分的专为片上系统设计的基于intel-IOMMU硬件的高性能可移植接口(HiPPAI)。其中布鲁过滤器所占据的存储资源与其内存储的字符串数量是呈线形关系的,但与其内任一字符串的长度都无关,所以它是可以被用来处理CLAMAV的已有数十兆大小并仍处于高速增长中的病毒特征值数据库的最佳选择。本文对系统的整体性能进行了分析,说明这一设计方案至少提高了CLAMAV40%的处理速度。