陈培椿
同济大学 上海 202005
摘要:由于WEB系统在外网中需要频繁地使用,为了保持系统的稳定性和数据的安全性,准确检测出网络中的异常行为也变得更加有价值。本文关注及分析了日志数据的主要基本特征,并据此提出了以分类算法为核心的网络异常行为检测算法。
关键词:系统优化;审计日志;数据展示;数据处理
OPTIMIZATION OF WEB SYSTEM -- TAKING THE ANALYSIS AND PROCESSING OF AUDIT LOG DATA AS AN EXAMPLE
Chen Peichun
(Tongji University, Shanghai, China)
Abstract Due to the frequent use of Web System in the external network, in order to maintain the stability of the system and data security, accurate detection of abnormal behavior in the network has become more valuable. This paper focuses on and analyzes the main characteristics of log data, and proposes a network anomaly detection algorithm based on classification algorithm.
Keywords System optimization Audit log data Display data Processing data
1 审计日志的需求和目标
由于WEB系统在外网中需要频繁地使用,为了保持系统的稳定性和数据的安全性,防止网络攻击将成为系统优化不可缺少的组成部分。[1]
1.1 审计日志的需求
当今世界,越来越多的网络使用者开始关注信息安全问题。网络攻击行为频频发生,种类千变万化,如何准确检测出网络中的异常行为也变得更加有价值。[2]
1.2 审计日志的目标
本文关注及分析了日志数据的主要基本特征,并据此提出了以分类算法为核心的网络异常行为检测算法。
由于审计数据没有类别标签信息,因此运行的是无监督的聚类算法。同样地,也对聚类结果做了集成分析,得出了部分的异常记录,加强对这些异常记录的监管同样有助于维护信息的安全。
1.3 数据展示
本研究中的研究对象除了网络流量日志数据,还包含有一些审计日志数据,这些审计数据不同于那些流量日志,它们没有明确的标签值和攻击倾向,该小章节将会对审计系统的数据加以统计展示。[3]
该数据来源于在进行密码学相关的操作时留下的日志,常规的操作包括加密操作,解密操作,签名操作,验证操作,解签密操作,签密操作等。对于任意的一个操作行为,都会有一个表去记录与这些操作相关的信息,比如说对于加密操作,会包含有使用的算法名称,操作人,操作时间,使用的provider,模式mode,填充方式padding,iv值,密钥,明文,密文这些信息。
由我所实现的审计系统会对这些操作加以记录,并将其对应的存入到数据库,不同的操作存入不同的表中,然后提供了一个前端的页面来方便查看这些数据,下面是对该部分数据的一些可视化展示。
首先是对过去一天的24小时的各类操作的统计,可以直观的看出各类的操作的出现频率,如果有一些不正常的数据,比如说某一类操作突然异常的增多,此时可以通过统计图及时的作出处理。
接下来是对所有审计记录的操作人和使用的算法做的统计排行,可以通过切换不同的操作类型来查看不同的排行,比如可以选定查看加密操作的排行或是解密操作的排行信息。通过这些排行信息,可以及时的发现一些非法用户的非法操作行为。[4]
之后展示的是对该审计记录的一些可视化统计功能,首先是按照月份去统计某一年的总体审计情况,下图展示了2017年的所有12个月份中每种操作的操作次数:
.png)
图1 2017年度审计数据统计
除了按照月份查看操作记录的统计结果外,还可以按照天去查看,在图1中可以点击某个月份可以查看当月的审计记录统计。
该系统还可以对数据按照不同的统计维度统计展示,包括操作人员,使用的算法,使用的provider名称。
除了这些预先设置的统计维度外,本系统还可以按照时间序列去对操作行为做统计,统计的单位是天。
以上就是对审计数据的可视化展示,接下来将会对这些数据做导出,然后做数据变换,处理成适合运行机器学习算法的类型。[5]
1.4 数据处理
原始的审计数据是存储在SQL SERVER数据库中的,每一种操作会对应数据库的一张表。为了方便后续的处理,将所有的表数据导出成了csv文件,表中的字段有两种类型:一种是字符串类型,一种是字节数组类型。对于前者,导出时直接把原始内容存储出来,而对于后者,若是直接导出,不仅无法直接的查看,而且不利于之后的机器学习算法的实施。因此,对于字节数组类型的字段,导出时选择导出该字段内容的长度值,以此来代表该字段。
由上图可以看出,对于一条审计数据,包含的内容有使用的算法名称algorithm,执行时间,操作人operator,使用的provider,模式mode,填充方式padding,iv值,密钥,明文,密文和一个额外的extra字段,这个字段主要起到数据保护的作用,它是前面所有字段的内容连接起来之后做一次加密得到的字段,可以防止其他字段的内容遭受恶意篡改。前几个字段的类型都是字符串类型,也就是说取值都是离散值,因此也需要做数值化,就像流量日志数据中的协议类型这个字段一样。以算法名称algorithm字段为例,首先打印查看algorithm的所有取值。
接下来将会对这些取值各自映射成为一个具体的数值,区间设置在0到1之间,具体的映射规则如下:SM4取值为0.95,SM2取值为0.8,Hybrid(SM2,SM4)取值为0.65,SSE取值为0.5,ForwardSecureSignature取值为0.35,SM3withSM2为0.2,SM3字段则为0.05。其他的字段的仿照这种处理方式,将所有的离散值映射成连续值。
数据映射完毕后,此时所有的字段都是数值型,此时需要对部分的字段做正规化处理,以保证所有的字段都处于一个相同的区间下,避免取值范围的不同导致权重占比的不同[6]。对iv字段,密钥字段,密文字段,明文字段和extra字段分别使用01归一化。
对审计数据进行以上的处理后,此时数据的结构已经可以用于机器学习算法。
1.5 数据分析
由于在审计数据中没有明确的标签值,因此无法在数据集上运行有监督的分类算法,只能运行无监督的聚类算法。在本节中将使用和之前类似的方法,在审计数据集上运行多个聚类算法,然后聚类的结果做集成分析。
首先运行的是BIRCH算法,度量标准依旧是Calinski-Harabasz Index的值,依次调节参数threshold,branching_factor的值。
由以上实验结果可知,对于Birch算法来说,运行在当前审计数据集上,最佳的参数列表是threshold = 0.3,branching_factor = 15。[7]
接下来对DBSCAN算法做参考调节,待调节的参数是eps和min_samples。
可以看出,DBSCAN算法在eps = 0.25,min_samples = 21时聚类的效果最佳。
在对K-Means算法做参数调节时,发现随着簇个数的增加,Calinski-Harabasz Index的值也会随之增加,最终不会收敛在一个极大值,因此对簇数设置为默认值,由K-Means算法去自主的选择。
接下来,将会使用调节好的参数用聚类模型对审计数据集进行建模,先得出各自的离群点,然后将各自的离群点做集成,最终得出三种不同类型的审计记录。
由于当前审计数据和网络攻击行为并没有非常直接的联系,因此对于集成后的结果只需要关注交集中的点即可,即异常记录,这些记录会同时出现在三种聚类算法的离群点之中,实验统计这样的点大概有22个。后续对于这些记录可以加入更多的关注,可以去数据库中找到该条记录对应的原始数据,人工分析一下该操作的合法性。
1.6 小结
本文首先提出了审计日志的需求和目标。接着做了数据的展示,数据处理和数据分析。使该系统在外网中也可以频繁地使用,保持了系统的稳定性和数据的安全性,防止了网络攻击达到系统优化的目标[8]。
参考文献
[1]科技广场[J],信息类文章摘要汇总,2010,第7期:92-93。
[2]张杰,基于B/S模式的实践教学管理系统的研制[J],电脑知识与技术,2009(1),2-3。
[3]深圳市永兴元科技有限公司,中文专利全文数据库[P],深圳:深圳市永兴元科技有限公司,2016。
[4]Willcocks LP, Lacity MC. Strategic sourcing of information systems. Perspectives and Practices Chichester, U.K:John Willey & Sons,1997.
[5]浪潮软件集团有限公司,中文专利全文数据库[P],北京:浪潮软件集团有限公司,2015。
[6]王胜利,田家庵发电厂物流管理系统设计与实现[C],安徽:安徽省电力工业计算机应用学术会议,2002。
[7]面孔[J],农家科技:城乡统筹,2013。
[8]威海兴达信息科技有限公司,中文专利全文数据库[P],威海:威海兴达信息科技有限公司,2015。