论文部分内容阅读
随着计算机网络及其应用的快速发展,人们可以非常便捷地获取所需的信息,计算机网络已经成为人们日常生活中不可缺少的一部分。当我们享受着互联网带来的巨大便利的同时,也受到了非法入侵、攻击、病毒、垃圾邮件等恶意行为的困扰。网络和信息安全问题已经成为网络正常运行和继续发展的重要问题。针对网络上的各种恶意行为,出现了很多不同的防御措施。从早期的防火墙,发展到后来的网络入侵检测/防御系统(IntrutionDetection/Prevention System,IDS/IPS)、病毒扫描系统,垃圾邮件过滤系统,最近又提出了统一威胁管理(Unified Threat Management,UTM)系统。而字符串匹配技术是这些网络信息安全系统和设备的核心技术。随着网络上恶意行为种类和数量的急剧增加,不管是传统的网络入侵检测/防御系统、病毒扫描系统,还是最新的集众多功能于一身的统一威胁管理系统,需要配置的规则数量都急剧增长,少则几万,多则十几万,这就急需大规模特征集的字符串匹配技术。而且,网络的速度越来越快,网络和信息安全系统需要实时在线处理,这就对字符串匹配算法的性能提出了很高的要求。本文的主要目的就是要提出一种适用于大规模特征集的、高性能的字符串匹配算法。本文中研究了大规模特征串匹配技术,包括精确匹配算法和近似匹配算法。通过对经典算法的研究和分析,找到其不适合大规模特征集的瓶颈所在,并提出一种适用于大规模特征集的快速精确匹配算法——SRS算法,该算法性能优异,在特征集达到10万条时,匹配速度比经典算法快10倍以上;另外还给出了一种适用于大规模特征集的高效近似匹配算法——SrsPex算法,该算法在近似特征集规模为1万条时,匹配速度达到100MB/s以上,最高达到近400MB/s。在此基础上,本文从开放源码的反病毒软件ClamAV中提取实际的病毒特征库进行分析,然后用防病毒领域的真实病毒库验证了SRS算法。