赛题
「大数据平台安全事件检测与分类识别」
地址
http://go.datafountain.cn/HKe
@考试全队战队
获奖方案
团队简介
本战队由两名成员组成,队长朱东,国防科技大学硕士,计算机技术专业,主要研究方向为时间序列预测和异常检测,主要负责算法构建。另一位队员陈丹,湖南大学硕士,企业管理专业,擅长数据挖掘与分析,主要负责数据处理与分析。
摘要
大数据平台由于管理复杂、安全机制不健全导致平台上的大数据面临相当大的安全风险。近年来SQL注入攻击、差分攻击、重标识攻击、数据删除、数据泄露、加密勒索攻击等多种安全威胁,导致的数据泄露、滥用或不可用等数据安全事件不断涌现。
针对数据安全问题,日志审计分析是一种非常有效的风险应对手段,基于大数据平台日志、安全设备日志和平台网络流量等多源异构数据进行分析,可有效实现攻击行为的发现或预测,并进行溯源,保护企业或组织内部数据安全。
本团队提出一种基于孤立森林的无监督数据安全事件异常检测模型,首先采用分组建模的思想,根据不同日志类型和时间区间划分为多个组,在特征构建阶段,使用TFIDF提取操作命令、操作对象等关键字段的文本特征,用以挖掘单条日志的异常;接着结合每种安全事件的特点,构建上下文特征,用以挖掘连续性异常。最后结合语义特征以及上下文特征,通过孤立森林模型,检测出异常的日志。
关键词
安全事件检测、TF-IDF、上下文特征
孤立森林、无监督异常检测
数据探索
2.1 数据简介
赛题提供了大数据环境系统日志和相关编码表(角色、实体、操作行为)。初赛数据集包含正常行为日志和数据安全事件日志两类日志。复赛数据集,包含正常行为日志、SQL注入攻击日志、差分攻击日志、重标识攻击日志、数据删除日志、数据泄露攻击、加密勒索攻击日志七类日志。其中在不同时段发生了不同的攻击,例如:2022-07-01至2022-07-12采集到数据删除和泄露攻击日志;2022-07-13至2022-07-23采集到SQL注入攻击、差分攻击和重标识攻击日志;因此后续可考虑分时段建模。
每条数据包含15个字段,其数据格式如图1所示:
图 1 数据格式
2.2 数据探索
不同的类别的日志可能具有不同的数据特点,因此探索Logger变量的分布情况。通过查阅资料可知,数据集中主要包含两类日志,Hive审计日志和HDFS审计日志。
图 2 日志类型分布
接着对数据集中存在缺失值的特征进行了缺失比例的统计。通过图3可知,newtbl、dst、perm三个特征存在很高的缺失率,高达90%以上,而src、proto、allowed字段具有相同的缺失率,都为73.613%。通过进一步的数据探索发现,allowd、ugi、ip、src、dst、perm、proto只存在于HDFS日志中,且只有src、dst、perm三个特征具有多个取值,其余特征几乎都为某一恒定值,对模型预测没有任何帮助,因此删除这部分无用特征。同样,db、tbl、newtbl三个特征只存在于Hive日志中。基于以上分析,HDFS日志和Hive日志各自具有其特定的特征,因此我们对原始数据进行清洗,将原始数据拆分为两类日志,删除无关特征,进一步减少数据量,加快计算速度。
图 3:特征缺失率统计
基于上述分析,两类日志的实际数据字段存在较大的差异,因此在进行异常检测时可以考虑针对不同日志类型进行分组建模,提高检测的准确率。
接着探索操作命令cmd字段,该字段不存在缺失值,能够提供丰富的信息,对每类日志的cmd分布情况进行可视化。
图 4 hdf日志的操作命令种类统计
图 5 Hive日志的操作命令种类统计
从如图4和图5可知,cmd的数量分布非常不均匀,getfileinfo、get_table和get_database占了绝大部分,其余操作命令数量较少。
我们还发现Hive日志中操作命令cmd存在连续性,即在一段时间内,持续使用某一操作命令,我们将这种连续区间称为一个block,分别统计了每一个block的长度,其长度分布散点图如图所示,block长度主要集中在1和3,其余长度值较少。
图 6 block长度分布
特征工程
3.1文本特征
原始数据中的message特征列是其余各特征列的汇总,通过上面的分析,对于不同的日志,现有的大多数特征列都是冗余的,因此我们弃用了原始的message特征列,选择由cmd、src等部分特征列构建新的message特征。由于该特征由文本组成,因此我们采用了TF-IDF[1]提取文本特征,用以评估一个词对于整个语料库的重要程度。也采用过word2vec提取文本特征,但效果不太理想。此外,由于本数据集的数据量较大,为了进一步减小数据的维度,使用TruncatedSVD对TFIDF提取的文本特征进行降维,在初赛只使用该文本特征就取得了比较好的效果。
3.2. 上下文特征
文本特征仅仅以每条数据作为一个对象去构建特征,通过词频统计的方法得到某个词对语料库的重要性大小,没有考虑到上下文信息,通常会把占比较小的操作命令或操作对象识别为异常。而异常事件往往会持续一段时间,且在不同的上下文场景中,看似正常行为的日志有可能是异常日志。为此,我们通过构建上下文特征来捕获这些语境信息。
数据删除和泄露攻击发生在同一时间段,且都来源于HDFS日志,通过2.2节的可视化分析可知,setPermission操作命令占比非常少,而该操作命令涉及到系统权限的更改,这种操作是十分敏感的,因此重点关注该操作命令的上下文语境。数据删除和泄露分别与delete和open操作命令有语义关系。src字段表示操作对象,我们根据src字段进一步提取出每个对象的根目录,将根目录视为分析的实体对象。对于每个实体的一系列操作日志,当日志中存在delete和open操作命令时,记录其上文中是否存在setPermission操作命令,如有则进行标记,将其作为敏感操作命令的上下文特征。
通过2.2节的可视化分析,Hive日志中操作命令存在连续性block,我们统计了block的长度,即统计当前的操作命令cmd已经连续执行的次数,将其作为一种连续操作命令的上下文特征。
操作命令为create_table的日志中,我们从message中提取出表名、数据表中各个字段的名称等信息。经过分析,主要存在三种表:medical_info、demo_info和pums。其中medical_info、demo_info具有四个相同的字段。
重标识攻击[2]主要是是对匿名化/去标识化的数据重新关联到原始个人信息主体或一组个人信息主体的过程,它是匿名化/去标识化的一个逆向操作。通过以上分析medical_info和demo_info的组合查询存在重标识攻击的可能。
差分攻击[3]则主要通过对同一对象的多次不同查询从而造成隐私泄露。与重标识攻击相比,差分攻击往往是对同一对象的多次查询。
SQL注入式攻击通过把SQL命令插入到页面请求的查询字符串,欺骗服务器执行恶意的SQL命令。加密勒索攻击通过对目标数据强行加密,导致用户无法正常访问,以此要挟受害者支付赎金进行解密。
基于以上四种攻击的含义,对于每个连续操作命令段block,额外构建了get_table操作命令的操作对象集合信息,即操作的tbl集合以及集合的长度,该特征作为操作对象上下文特征。
模型构建
通过2.2节的分析,HDFS日志和Hive日志存在较大的差异,且在不同的时间段发生了不同类型的异常,因此我们采用分组建模的方式,根据日志类型和时间段划分为多个组,分别构建文本特征和上下文特征。
常用的无监督异常检测算法有孤立森林、One-Class-SVM、DBSCAN、kmeans等,综合比较了各模型的计算速度和精度后,最终选择孤立森林作为我们的异常检测模型。孤立森林[4]算法是基于 Ensemble 的异常检测方法,因此具有线性的时间复杂度。且精准度较高,在处理大数据时速度快,所以目前在工业界的应用范围比较广。
异常点相对于正常点而言,数量较小且特征差异较大,孤立森林通过构建二叉树的方法孤立每一个异常样本。被孤立的点所需的分割次数较少,而正常点需要的分割次数较多。孤立森林就是利用分割的次数来度量一个点是聚集的(正常)还是孤立的(异常)。
文本特征和上下文特征的构建使得孤立森林能够有效地检测出潜在的安全事件日志,最终复赛排名第五。
致谢
感谢中国计算机学会大数据与计算智能大赛组委会和大数据协同安全技术国家工程研究中心提供了宝贵的数据和探索安全数据的机会。感谢DataFountain平台工作人员的默默付出,保证了比赛的顺利进行。最后感谢队友的坚持不懈和相互鼓励。
参考
[1] 牛永洁,田成龙.融合多因素的TFIDF关键词提取算法研究[J].计算机技术与发展,2019,29(07):80-83.
[2] 陈磊,薛见新,张润滋,刘文懋.基于信息熵的数据集重标识风险评估方法[J].信息技术与网络安全,2020,39(12):1-6+12.
[3] Joseph P. Near and Chiké Abuah.Programming Differential Privacy. https://programming-dp.com/.
[4] Fei T, Kai M T, et al. Isolation Forest[C]. Eighth IEEE International Conference on Data Mining, 2008:413-422.
—End—
戳“阅读原文”,速来参赛办赛~
原文始发于微信公众号(DataFountain):【二等奖方案】大数据平台安全事件检测与分类识别赛题「考试全队」团队解题思路