2.6 Web用户行为模式挖掘
为了从海量的Web流量中挖掘出能够反映用户行为轮廓的信息,可以分析用户访问时的行为、频率和内容。Web服务器将用户对Web页面或数据的请求存放在Web日志中。一条Web日志表示用户的一次请求,包括请求的资源路径、用户来源地址、时间戳等。表2.3所示为常见的Apache扩展格式日志的描述[32]。
表2.3 常见的Apache扩展格式日志的描述
表2.3所示的扩展格式日志文件能够提供用户请求和服务器响应的细节信息,日志描述了请求的用户来源地址、请求资源、请求时间、请求内容、文件大小等。图2.5所示为Web日志格式的例子。
图2.5 Web日志格式的例子
根据Web日志挖掘的方式来发现海量Web流量中的少量且复杂多变的异常,无须了解请求的具体内容,只需收集访问者的来源地址IP、请求资源的URL和访问时间,就能够快速建立相应模型。文献[76]采用图灵测试的方式分析用户的访问轮廓是否符合正常行为轮廓,从而检测异常。由于攻击者的行为不具备正常逻辑,因此无法完成测试,这一系列行为能够用于区分异常。Ranjan S等人[77]提出了一种会话可疑度计算模型,认为Web日志应该组成一个会话的形式,用户在访问时可能存在连续访问行为或单页面访问行为,而Web服务器由于网速、文件大小等原因会存在延迟现象。Ranjan S等人按照会话的参数(如建立速率、请求速率等)计算合法用户的正常模型,再计算会话可疑度,从而发现异常。文献[78]认为用户的行为存在前后关联,在此基础上提出的高斯混合隐半马尔可夫模型能够较好地检测异常。因此,与Snort的规则库相比,Web用户会话模式需要较少的数据,且只需更少的专家经验就可以建立模型。另外文献[31]、文献[32]和文献[33]认为基于用户识别及会话识别的数据预处理是Web日志挖掘的必要过程。
文献[31]中提到的Web访问序列数据库的构建需要先进行数据预处理过程,主要包含数据清洗、用户识别和会话识别。
根据数据预处理过程及第4章算法的需要,产生的Web访问序列数据库WASD由用户访问序列Sequence构成,一个Web访问序列由用户的所有会话构成,Sequence的数据结构为Sequence={userID:<(Ses1),(Ses2),…>},一个用户会话Ses的数据结构为Ses={timeStamp1- itemID1,timeStamp2-itemID2,…},其中用户的IP、页面的url地址均映射为数字。Web访问序列数据库WASD结构举例如表2.4所示。
表2.4 Web访问序列数据库WASD结构举例
在表2.4中,一个用户的访问序列集包含用户所有的会话序列及访问时间信息。由于只需将用户IP、资源URL及访问时间这三个特征作为数据基础,因此易于提取和转化。