摘要:随着社会快速的发展,人们生活节奏越来越快,各方面的竞争越来越激烈。比如在校大学生的就业、学习、生活、爱情和自我意识等方面经常会遇到心理失衡等问题。大学生心理危机的早期识别和预警对于高校降低和减少因心理问题而导致的意外伤害事件具有重要作用。如今网络、数据等概念已经十分紧密地渗透于人们的生活、学习和工作中。一个大学生使用移动设备一天产生的数据流量可能高达数百兆。借此我们采用的Intel开源的Hyperscan引擎,利用大学生上网流量的关键字匹配技术,来分析其上网行为数据,可达到快速有效的对大学生心理危机进行识别和预警。
关键词:关键字;匹配;引擎;上网行为
一、引言
在互联网普及的时代,人们的生活都离不开手机等移动终端,而大学生是其中最主要的群体之一。近年来,在校大学生除了专业课程的学习和能力培养外,其心理健康问题也越来越受重视。大学生作为祖国未来繁荣发展的栋梁之材,我们更应该关注他们身心的健康发展,通过其上网行为分析,发现有心理问题的隐患,并进行有针对性的预警和介入,将这些隐患扼杀在萌芽状态,避免酿成一些无法挽救的悲剧。
上网用户行为的研究与心理学、社会学、社会心理学、人类学以及一切与网络行为的学科密切相关。具体讲网络用户行为研究就是分析网络用户的构成、特点及其行为活动上所表现出来的规律[1]。从行为学的角度,个体网络行为是单个个体在网络上所表现出来的行为,是由个体的个性决定的,短期的个体行为可能并不具有明显的规律,但长期的个体网络行为则具有一定的稳定性。因此,对用户上网行为的研究是具有现实意义的。本文重点在研究传统的字符串匹配技术与更适合大规模流量数据的关键字匹配技术Hyperscan引擎,并将其应用于大学生上网行为分析与心理预警领域。
二、传统关键字匹配算法的相关研究工作
关键字匹配也称字符串匹配、模式匹配,一直是计算机科学的研究热点,尤其是信息时代数据爆炸式的增长对字符串匹配算法的性能提出了更高的要求。字符串匹配算法根据不同的需求类型可分为单模匹配、多模匹配、正则表达式匹配等。经典的算法在整个字符串匹配算法的研究过程中起到了举足轻重的地位,后续大部分算法都是在经典理论基础上进行改进,下面分别介绍不同类型算法中最具代表性的典型算法。
(一)AC算法
在多关键字匹配算法中,最著名的要数由Aho和Corasick在1977年提出的基于前缀搜索的AC算法,该算法是基于有穷自动机的,从前往后进行匹配,自动机建立过程建立三个函数:状态跳转函数goto,输出函数output,失效函数failure。匹配过程是从零状态出发,每次扫描文本中的一个字符,在当前状态情况下,查看扫描到的字符,利用94盛。函数、failure函数跳转到下一个状态。如果跳转到的状态的outpul函数不为空,表示命中了某个关键字,输出该关键字[2]。
(二)Wu-Mamber算法
Wu-Mamber算法是基于后缀搜索的多模匹配算法,通过使用所有模式中最短串的长度作为扫描窗口,并且每次从后扫描两个字符,来提高扫描效率,另外使用了哈希技术,建立三个表Shift表、Prefix表、Hash表,利用Hash算法将扫描到的两个字符映射成不同的hash值存放在不同的表中。Wu-Mamber算法具有初始化时间短,内存占用少的特点,但匹配速度不如AC算法稳定,当字符不能等概率出现时容易造成匹配速度下降,并且Wu-Mamber算法是对所有模式中最短串的长度敏感的。
(三)SBOM算法
SBOM算法是基于子串搜索的多模匹配算法,一般在当前窗口内从后向前扫描,能够识别模式串集合P中的某个模式串的子串,并在此基础上进行比较验证。较早出现的基于子串的多模匹配算法是Multi-BDM,由于实现复杂,实际很少使用。SBOM算法使用了FactorOrack这一数据结构。在进行预处理过程中将根据所有模式串构造模式匹配的Oracle结构,以匹配窗口的最长字串。
三、Hyperscan引擎
对于精确字符串匹配,过去的几十年里从理论到技术都己经进行了深入的研究,并取得了重大的突破,出现了多个接近理论性能卜限的算法,如AC、WU-MANBER、SBOM等等。这些经典算法在网络安全检测中发挥了巨大的作用。.然而,随着网络的不断发展,攻击者也在不断地针对各种安全检测技术进行躲避和隐藏,这使得网络中关键字检测变得越来越复杂,简单的精确字符串模式已经难以准确地描述其特征。因此,正则表达式以其强大、灵活的表达能力,迅速成为描述新一代规则的主要工具。
(一)常规的正则表达式匹配算法
正则表达式构造了一系列字符串规则,使得文本处理变得更加灵活方便,但是也给匹配算法提出了难题。通常正则表达式匹配过程如图所示。首先将正则表达式构造成一颗解析树,再根据一定的方法将解析数转化为非确定的有穷自动机侧(NFA)。下一步直接使用NFA进行搜索的优点是内存占用小,但在处理每个字符时,处理活动集合中的状态都必须被逐个处理,匹配时间慢.若将NFA转化为DFA来处理,那么一个字符则的后续状态只有一个,但当所有状态编译成DFA时,会造成巨大的内存消耗,当前的硬件条件无法满足如此大的内存需求。因此目前的研究热点在于如何调和NFA与DFA在时间和空间上的矛盾。
(二)Hyperscan正则表达式引擎
Hyperscan是一款来自于Intel的高性能的正则表达式匹配库。它是基于X86平台以PCRE为原型而开发的,Intel将此高速正则表达式匹配引擎Hyperscan開源了,基于BSD许可[3]。这个基于自动机的引擎经过了多年开发,经过不断优化与完善,效率非常之高,虽然没有pcre等对正则语法支持全面,但非常适用于网络设备。用户可以在网络设备数据面使用Hyperscan进行规则匹配,实现高性能网络流量数据包检测分析等应用,其工作流程主要分成两个部分:编译期(compiletime)和运行期(run-time)[4]。
推荐阅读:互联网金融理财产品的问题现状