APP下载

基于EBLOF算法的攻击者IP分析系统及应用

2022-05-25李昌茂陈飞宇陈超一

工程科学与技术 2022年3期
关键词:批处理攻击者日志

范 敏,李昌茂,陈飞宇,陈超一

(1.奇安信科技集团股份有限公司,四川 成都 610000;2.电子科技大学 计算机科学与工程学院,四川 成都 610000)

近年来,随着网络通信技术和互联网应用的发展,网络与信息系统被企业和政府部门广泛应用,极大地改善了人们的生活便捷性。但是,针对企业和政府的网络攻击事件也愈发频繁,尤其是有组织、有目的、隐匿性的攻击逐渐增多,网络空间安全问题俨然成为企业和政府关注的焦点。为了全面有效地防御网络攻击,企业和政府通常会部署IDS、IPS、防火墙、终端检测等多种安全防护设备来抵御网络入侵。例如,针对校园网,刘海龙和李小志等采用防火墙和IPS作为基础安全防护,姜开达等基于IDS设备建立了大数据安全分析平台。张贺然等基于传统的网络安全防护系统(防火墙系统、IDS和IPS)设计了一种基于安全网关控制的近威胁源攻击阻断方法。随着防御方检测能力深度和广度的增加,人工智能技术也引入到网络安全检测和响应中,企业安全运营中心被动接入的原始告警日志成倍增加,发现真实威胁犹如大海捞针。因此,安全分析人员面临着巨大的压力和挑战。基于海量、多源、异构的原始安全告警日志,如何自动化和智能化地过滤大量重复、误报的告警,发现高优先级、亟需处理的攻击者IP并构建其特征,进而辅助安全分析人员从中发现真正具有危害性的安全事件,是网络空间安全中亟需解决的难点问题。因此,近年来建立网络安全态势感知平台逐渐成为企业和政府构建网络防御基础设施的共识。态势感知平台通过对不同安全厂商的各种安全防护设备产生的告警信息进行了一定的关联融合,能够有效降低原始日志的告警数量,例如:基于攻击者行为假设建立行为基线和行为关联规则,但这些规则往往需要较多的人工参与且场景预先固定,对于多场景甚至未知场景的情况无法应对。

利用机器学习实现态势感知平台的海量日志异常分析、威胁检测和态势预测,是目前网络安全态势感知研究的一个重点方向。在海量日志异常分析方面,Valeur和秦子燕等提出将原始安全日志聚类关联成高级别的入侵告警展示给安全分析人员。郑志娴等采用了K-means聚类算法在网络安全数据集KDDCup99上进行聚类分析。李蓉等提出了改进的K-means算法来解决IDS系统的告警数量巨大的问题。张园园将增量的AIDM密度聚类算法应用于入侵检测系统中以解决静态聚类形成的轮廓不容易改变的缺点。洪飞等将K-Medoide聚类算法应用到攻击者IP的群体画像刻画中,进而实现预警模型。这些方法虽然能够通过聚类的方式聚焦群体IP行为,但侧重于群体行为,对单IP没有进行深入刻画和分析。在威胁检测方面,Mirsky等提出了基于集成学习的自动编码器模型来进行实时的网络入侵检测。Xu等提出了基于变分自编码器的Web应用异常检测模型。Zhao等基于Xgboost算法提出了原始告警日志的评分排序方法。但上述算法模型均是离线学习的模型,没有考虑到模型如何在真实现场自动更新的问题。在态势预测方面,Haslum和李建平等分别基于连续马尔可夫模型和条件随机场来量化预测网络环境的安全态势,并观察到了一个现象:大多数的攻击行为对安全态势的威胁都是低的。这也证实了日常安全设备探测到的大量攻击行为都是无效的,进一步造成安全日志误报高的特点。

因此,本文基于大量攻击行为都是无效且日常安全日志存在大量误报的两个经验假设下,结合传统异常检测算法LOF,提出了一种基于集成学习的局部异常因子(ensemble based local outlier factor,EBLOF)算法的攻击者IP分析系统。该系统通过对海量、多源、异构的安全告警日志进行CAPEC标准化操作和实时流式的解析,并结合攻击者IP的属性维度和攻击行为的时空维度构建特征工程,辅助安全分析人员进行快速分析,降本增效。本文所提的系统具有以下两个特点:1)借鉴随机森林的特征空间抽样的思想,提出EBLOF算法模型,增强异常检测模型LOF的鲁棒性,减少模型的敏感度;2)通过结合批处理方式的批次学习和通过数据库调用预测结果的模式,构建了一套在线更新模型的架构,缓解数据分布漂移带来的问题。

1 系统架构

机器学习算法本身只是整个机器学习应用系统中很小的一个环节,因此首先从数据流转和机器学习应用系统模式的角度来设计系统架构。

1.1 数据流转图

态势感知平台往往需要接入多个不同厂商、多种不同设备的外部告警数据,不同设备的告警数据结构通常不一致,需要经过标准化范式处理之后才存入大数据分析平台。其数据流转如图1所示。

图1 数据流转图Fig. 1 Pipeline of data flow

由图1可知:外部数据指安全产商的安全设备(如IDS探针、WAF等设备)产生的告警数据;数据采集通常会利用消息中间件(如kafka)将外部数据上传至大数据平台;数据范化通常利用自定义范化插件有效解决多源异构数据的标准化结构定义,范化存储指将范化好的数据存入大数据仓库(如HDFS或者ClickHouse等)中;数据计算一般采用Spark或者Flink等计算框架进行计算;业务存储通常是将计算结果存入MySQL或者ES等数据库,方便业务使用。

1.2 机器学习应用系统设计

在大数据领域,对数据的处理一般分为批处理和流处理。同样,在机器学习领域对数据的学习一般也分为批次学习和逐次学习。批次学习指权重计算需要所有的训练数据,运用所有数据才能算出最优权重;逐次学习指给一个训练数据,就立即计算一次权重,更新一次模型。因此,在大数据与机器学习结合的领域中,在训练阶段对机器学习模型的学习通常存在以下3种组合:采用批处理方式进行批次学习,采用批处理方式进行逐次学习,采用流处理方式进行逐次学习。其中,采用批处理方式进行批次学习的模式在实际场景中得到广泛的应用。在预测阶段,围绕采取批处理方式的批次学习通常存在以下3种预测架构:通过Web应用调用预测结果、通过API调用预测结果、通过数据库调用预测结果。

在现实生产环境中,机器学习应用系统一旦部署到真实现场,很难人工离线更新模型。因此,在机器学习应用系统设计时,应该考虑到如何让学习到的模型能够自动根据现场的最新数据自动在线更新,缓解数据分布漂移带来的问题。本文通过结合批处理方式的批次学习和通过数据库调用预测结果的模式,构建了一套在线更新模型的架构,从系统架构层面而非算法层面解决了模型的在线更新问题。整体系统架构如图2所示,分为预测批处理和学习批处理两阶段。

图2 系统架构Fig. 2 System architecture

图2中:在学习批处理阶段,特征提取器通过从泛化存储的数据库中提取告警日志,形成特征向量;学习器是核心算法模块,用于训练形成预测模型。在预测批处理阶段,先利用特征提取器从数据库中提取特征,再结合预测模型进行预测。该系统架构保证了模型能够定期在线更新,定时根据最近一段时间窗口的告警日志数据训练得到模型,并实现批次预测。图2所示的系统架构有以下4个特点:1)通过系统架构层面而非算法层面实现了模型的定时在线更新,缓解数据分布漂移问题;2)学习批处理的执行间隔要比预测批处理间隔设置得更长;3)预测数据应该在执行预测批处理前存在;4)Web应用与机器学习系统通过数据库解耦,避免特定的编程语言依赖关系。

2 算法建模

算法建模主要包括图2所示的系统架构中的特征提取器模块和学习器模块。数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限。因此在机器学习算法建模时,首先,应该结合业务,抽象建模问题,提出假设;接着,结合领域业务知识构建业务特征向量;然后,考虑选择什么算法及其如何优化;最后,还要考虑算法的业务可解释性问题。

2.1 问题假设

企业侧态势感知平台接收的告警日志通常符合图3中的金字塔分布。

图3 告警日志金字塔示意图Fig. 3 Pyramid diagram of alarm log

图3中:L5表示确实导致安全事件或者指示已发生的安全事件;L4表示攻击方试图利用漏洞,但没有成功;L3表示试探性的恶意行为,就算存在漏洞也不会失陷;L2表示误报,或者攻击类告警但实际上没有恶意;L1表示日志型低危告警,难以直接关联到恶意行为。从图3可看出,绝大部分都是无效告警、重复告警和误报,例如,试探性的恶意行为、黑客使用自动化工具发起的尝试性攻击,而真正高威胁的攻击如L5相对较少。因此,可以假设:大部分源IP产生的告警被认为是正常点,少量真正高威胁IP产生的告警被认为是异常点,进而利用异常检测算法进行挖掘。

2.2 特征工程

特征工程属于系统架构中的特征提取器模块。在特征工程中,至关重要的一个环节是通过结合业务领域的经验知识对原始数据进行一系列工程处理,将其提炼为具有领域知识的特征。在攻击者IP分析过程中,为了更好地贴合在威胁入侵场景下对事件攻击行为的描述,本文借鉴用户行为分析的思路,从攻击者IP的属性维度和行为维度进行特征提取。其中,属性维度的特征来源于互联网数字号码分配机构(Internet Assigned Numbers Authority,IANA)的IP Whois信息、测绘信息、地址库信息、备案信息、情报信息,累计18维,例如,源IP是否命中情报、源IP是内网还是外网、源IP是否失陷、源IP是国内还是国外、源IP是否恶意家族、源IP是否攻击组织。行为维度特征可以通过对范式化安全告警日志的统计归并实现行为刻画,累计32维,例如,源IP产生多少条日志、源IP攻击了多少个目的IP、源IP触发了多少种类型的告警、源IP触发的最严重的威胁级别、源IP连接的目的端口个数、源IP触发的漏洞个数、源IP杀伤链最严重的阶段、源IP攻击类型分布占比、源IP危害等级分布占比、源IP活跃时间段等。每一个源IP经过特征提取器加工后,被映射为特征空间中的一个点,EBLOF算法基于特征空间中的这些点进行学习,得到预测模型。

2.3 EBLOF算法

EBLOF算法属于系统架构中的学习器模块。不同网络环境由于面向不同的业务,因此在安全设备的部署上存在差异。例如:政务云、互联网公司等面向公众,外网部署的安全设备更多;而有些政府集团企业面向内部使用更多,内网部署的安全设备更多。由内网源IP和外网源IP所产生的告警数量和类型差异很大,其经过特征提取器的加工后在特征空间中形成多个团簇分布,存在类团密度不一致的现象。根据Goldstein等对无监督异常检测的综述,局部异常因子(local outlier factors,LOF)是一种评估局部相对密度的异常情况的算法,能够较好地适用于类团密度不一致的数据集。

一方面,LOF算法的关键超参数

k

决定了异常点的参照范围。当

k

为无穷大时,表示检测的全局异常;当

k

为1时,表示检测的最小尺度局部异常。不同生产环境中,数据分布情况常常不同,超参数

k

的值也不同,固定某一个

k

值会导致算法的表现不够鲁棒。因此,可以借鉴集成学习的思想,通过集成多个不同的

k

值来提升模型在不同数据分布下的鲁棒性。另一方面,从不同的特征子空间观察特征数据,得到的异常值结论是不同的。有些异常点在全局特征空间中是正常点,但是从子空间来看是异常点。因此,为了增强模型的鲁棒性,可以借鉴随机森林算法的特征空间抽样思想,集成多个特征子空间输出的异常得分求平均值。基于上述两点思考和真实环境下的数据情况,本文提出了EBLOF算法,具体过程如下。

算 法

本文提出的EBLOF算法输入:所有特征组成的特征空间

X

、特征子空间个数

m

、近邻尺度个数

n

、 第

i

个 近邻尺度参数

k

;输出:单个源IP的EBLOF异常分数值

s

算法过程如下:

1)随机从特征空间

X

中抽取

m

个 特征子空间

x

,且满足空间

X

是所有特征子空间的和,即

x

X

,任意两个特征子空间

x

x

满足:

2)给定近邻尺度参数

k

, 在特征子空间

x

中任意一点

p

的局部异常因子函数为:

式中,

N

(

p

)为 在特征空间

x

中与点

p

k

近邻距离的点的集合,

d

(

o

) 为 点

o

的 局部可达密度,

d

(

p

) 为点

p

的局部可达密度,点

o

属 于

N

(

p

)集合中任意一点。3)假设 {

k

,

k

,···,

k

} 为

n

个LOF算法的近邻尺度参数。则单个IP的异常得分计算公式为:

式中:

i

=1,2,···,

n

j

=1,2,···,

m

; 异常得分

s

为EBLOF算法的最终输出,用于衡量点

p

相对于其周围点的异常程度。当近邻参数

k

和 特征空间

x

给定时,点

p

的异常得分越高,表示点

p

与周围点的分布相比越异常。

如图2所示的系统架构,在学习批处理阶段,学习器模块基于EBLOF学习算法和特征提取器得到的特征数据进行学习,通过并行训练输出预测模型。该模型的更新机制为:将EBLOF算法学习器基于最近时间数据训练得到的模型输出与高危级别的关联规则引擎的输出进行比较,当两者输出的源IP交集占比超过一定阈值,则更新模型,否则保留原有模型用于预测。

3 实 验

本文实验分为两部分:1)在公共数据集ODD(outlier detection datasets)中,将本文的EBLOF算法和传统LOF算法模型进行对比;2)在真实攻防演练应用实践中,将本文所提的整个系统和人工检出进行对比。

3.1 公共数据集对比实验

ODD数据集提供了来自不同领域、不同类型的数据集,包括多维表格型数据集、时间序列数据集、视频数据集等。本文提出的EBLOF算法是针对特征工程后的表格型数据集,因此,在ODD数据集中选择如表1所示的多维表格型数据集进行对比实验。

表1 多维表格型数据集
Tab. 1 Multidimensional tabular datasets

数据集名称 样本数量 样本维度 异常值占比/%ForestCover 286 048 10 0.90 Shuttle 49 097 9 7.00 Mammography 11 183 6 2.32 Mnist 7 603 100 9.20 Annthyroid 7 200 6 7.42 Pendigits 6 870 16 2.27 Satellite 6 435 36 32.00 Satimage-2 5 803 36 1.20 Thyroid 3 772 6 2.50 Musk 3 062 166 3.20 Cardio 1 831 21 9.60 LetterRecognition 1 600 32 6.25 Vowels 1 456 12 3.40 BreastW 683 9 35.00 Arrhythmia 452 274 15.00 Ionosphere 351 33 36.00 WBC 278 30 5.60 Glass 214 9 4.20 Lympho 148 18 4.10

公共数据集对比实验在配备CPU为8核Intel(R)Core(TM)i7@2.9 GHz、内存为16 GB 2 133MHz LPDDR3的MacOS笔记本上完成。在公共数据集中,通常存在类别不平衡的问题,因此算法评价指标采用AUC(area under the ROC curve)指标,AUC指标值越大,说明模型对漏报和误报的平衡性能越好。

将本文所提的EBLOF算法和传统LOF算法在表1中的数据集进行AUC对比实验,结果如表2所示。

表2 EBLOF和LOF算法的AUC对比
Tab. 2 AUC comparison between EBLOF and LOF

EBLOF算法 LOF算法训练AUC 测试AUC 训练AUC 测试AUC ForestCover 0.939 3 0.944 1 0.874 1 0.87 Shuttle 0.907 2 0.908 9 0.854 6 0.86 Mammography 0.838 5 0.835 6 0.832 0 0.81 Mnist 0.877 1 0.876 5 0.879 3 0.88 Annthyroid 0.923 3 0.923 0 0.762 1 0.74 Pendigits 0.942 5 0.936 5 0.916 2 0.91 Satellite 0.701 3 0.751 3 0.700 0 0.74 Satimage-2 0.993 9 0.992 2 0.938 0 0.94 Thyroid 0.935 8 0.931 6 0.972 8 0.97 Musk 1.000 0 1.000 0 1.000 0 0.99 Cardio 0.941 0 0.947 0 0.934 8 0.95 LetterRecognition 0.878 7 0.908 0 0.902 3 0.90 Vowels 0.927 8 0.874 6 0.948 7 0.93 BreastW 0.979 9 0.967 4 0.936 9 0.92 Arrhythmia 0.782 3 0.791 9 0.771 0 0.79 Ionosphere 0.876 7 0.979 4 0.868 8 0.95 WBC 0.936 2 1.000 0 0.933 3 1.00 Glass 0.837 0 1.000 0 0.826 1 1.00 Lympho 0.965 6 1.000 0 0.965 6 1.00数据集名称

由表2可知:在异常值占比最少的ForestCover数据集和特征维度最高的Arrhythmia数据集中,EBLOF算法的训练AUC指标和测试AUC指标均比传统LOF算法高。并且,在大部分数据集下,EBLOF算法的性能也优于传统LOF算法。因此,EBLOF算法在不同数量级、不同特征维度、不同异常值占比的数据集中,相比传统LOF算法都具有更好的鲁棒性。

3.2 应用实践对比实验

本系统的应用实战数据来源于2021年4月一次真实网络演练行动。在网络中部署WAF、IDS、探针等网络安全设备,进行连续一周的真实攻防演练。本系统运行在单机版Spark分布式计算系统上,节点的CPU为48核Intel(R) Xeon(R) CPU E5-2620v3@2.40 GHz,内存为64 GB,操作系统为CentOS。各种安全设备采集的各类型告警日志数量如图4所示,日均产生告警日志4 505 043条。

图4 每日告警日志数量Fig. 4 Daily alarm log numbers

在本次持续一周的演练行动中,1名安全分析人员每天需要从百万级别的告警日志中筛选出真正具有威胁的告警并对其源IP进行处置。本系统通过定时运行,自动化地将每小时异常分数高的源IP推送给安全分析人员进行处置。安全分析人员人工处理的真实攻击IP数和本系统发现的真实攻击IP数对比情况如图5所示。

图5 本系统和人工检出的真实攻击IP数对比Fig. 5 Real attack IP number comparison between the system and analyst

从图5中可以看出,人工日均综合研判并检出攻击IP约43个,其中本分析系统命中约1/3(15个)。并且,随着攻击演练的深入和数据的积累,效果越来越明显,例如,最后一天人工累计处置50个攻击IP,本分析系统命中32个。同时,在本系统发现的攻击IP中,也存在部分关联分析规则漏报的攻击IP。因此,本系统能够很好地辅助安全分析人员从海量的告警日志中及时发现真正的高威胁告警,提高人工效率,节省时间成本,并且和关联分析规则引擎形成互补关系。

4 结 论

本文提出一种基于EBLOF算法的攻击者IP分析系统。该系统首先以网络安全态势感知平台采集的各种安全设备的原始日志为基础;然后,基于 CAPEC标准,将海量、多源、异构的数据快速范式化成为统一的告警日志;接着,对攻击者IP的属性特征和行为特征进行了提取刻画;最后,利用本文提出的EBLOF算法检测和发现高威胁攻击IP。通过在公共数据集的对比实验发现,EBLOF算法比传统LOF算法在不同数量级、不同特征维度、不同异常占比的数据中具有更好的鲁棒性。同时,在真实攻防演练中,本系统能够从海量日志中有效辅助安全分析人员快速发现和聚焦真正值得关注的攻击者IP。但是,系统仍然存在一些问题,例如,EBLOF算法对计算内存的占用比传统LOF更多,以及模型的业务可解释性问题,这些是未来进一步研究的方向。

猜你喜欢

批处理攻击者日志
基于贝叶斯博弈的防御资源调配模型研究
一名老党员的工作日志
读扶贫日志
恶意批处理文件导致电脑黑屏、反复重启、无响应的原因分析及应对思路
不装软件批处理为文件夹加锁
雅皮的心情日志
雅皮的心情日志
正面迎接批判
正面迎接批判
借助批处理 让Cortana变聪明