网络安全运营中心以用户为中心的机器学习框架
Posted 渣渣驴here
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网络安全运营中心以用户为中心的机器学习框架相关的知识,希望对你有一定的参考价值。
识别并关注~求点赞
这是2017年IEEE会议上发表的,目前已经被SCI检索。这篇介绍的比较粗略,一些细致的技术没有介绍,比如本文选择的多层神经网络和随机森林,此后会细致介绍
简介:网络安全事件将对企业造成重大的财务和声誉影响。为了检测恶意活动,SIEM(安全信息和事件管理)系统建立在公司或政府中。系统关联来自端点,防火墙,IDS / IPS(入侵检测/预防系统),DLP(数据丢失保护),DNS(域名系统),DHCP(动态主机配置协议),Windows / Unix安全事件,VPN的事件日志安全事件可以分为不同的类别[1]。这些日志每天都有数TB的数据。根据安全事件日志,SOC(安全运营中心)团队根据分析师的经验开发具有预先确定的严重性的所谓用例。它们通常基于规则关联来自不同日志的一个或多个指示符。这些规则可以基于网络/主机或基于时间/频率。如果触发了任何预定义的用例,SIEM系统将实时生成警报。然后,SOC分析师将调查警报,以确定与警报相关的用户是否存在风险(真正的积极)或不是(误报)。如果他们发现分析中的警报可疑,SOC分析师将创建OTRS(开源票证请求系统)票证。初步调查后,某些OTRS门票将升级为二级调查系统(例如Co3系统),作为严重安全事件,以便进一步调查和修复事件响应小组。但是,SIEM通常会生成大量警报,但误报率非常高。每天的警报数量可能是数十万,远远超过SOC调查所有警报的能力。因此,SOC可能会选择仅调查高严重性的警报或抑制相同类型的警报。这可能会错过一些严重的攻击。因此,需要更智能和自动化的系统来识别有风险的用户。机器学习系统处于SOC工作的中间流程,包含不同的事件日志,SIEM警报和SOC分析结果,并为安全运营中心生成全面的用户风险评分。 SOC分析师可以使用机器学习系统的风险评分,从风险最高的用户开始,优先考虑他们的调查,而不是直接挖掘大量的SIEM警报,并试图在大海捞针。
步骤:
A.特征创建
这些功能是在个人用户级别创建的,因为我们的主要目标是预测用户的风险。我们已经创建了100多个功能来描述用户的行为。这些功能包括:根据统计摘要(每天警报的数量)创建的摘要功能,从时间序列生成的时间特征。分析(事件到达率),从社交图分析得到的关系特征(用户事件图的用户中心性)等。
B.标签生成和传播
生成所有功能后,我们需要为我们的machnine学习模型附加目标或“标签”。初始标签由采矿分析师的调查笔记创建。文本挖掘技术,如关键词/主题提取和情感分析,用于从笔记中提取用户的实际状态。从具有注释的用户,通常在文本挖掘之后将其中很少(<2%)标记为“有风险”。如果我们仅将这些用户用于机器学习,则存在两个问题:没有注释的大多数用户被排除在模型之外,但他们可能拥有有价值的信息。许多机器学习模型不适用于高度不平衡的分类问题。为了缓解这两个问题,需要标签传播技术来获得更多标签。这里的主要想法是,如果我们了解某些有风险的用户,我们可以进行标记其他具有“相似”行为风险的用户。我们使用的标签传播技术包括:基于矩阵分解的聚类和监督PU学习。最后,我们将来自文本挖掘和标签传播的标签组合为我们机器学习模型的目标。最终的分析数据集如下所示:
User ID |
Summary feature 1 |
Indicator feature 2 |
Temporal feature 3 |
Relational feature 4 |
« |
Label |
User1 |
13 |
1 |
0.65 |
5.17 |
« |
1 (risky - Initial) |
User2 |
25 |
0 |
2.74 |
9.34 |
« |
1 (risky - Derived) |
User3 |
4 |
0 |
1.33 |
3.52 |
« |
0 (normal) |
B.模型性能测量
作为一种常见做法,建模数据应随机分为训练和测试集,并应对测试保持数据评估不同的模型。除了AUC,我们还在下面的等式(1)到(2)中定义了两个模型良好度量:
模型检测率
=(某些预测中有风险的主机数)/(风险主机总数)
模型杠杆
=(某些预测中风险主机的比例)/(风险主机的总体比例)
与在整个测试数据上评估模型的AUC相比,检测率和提升反映了模型在预测的不同部分中发现风险用户的好坏。为了计算这两个指标,结果首先按模型得分(在我们的例子中,用户存在风险的概率)按降序排序。检测率测量分类模型的有效性,作为使用和不使用模型获得的结果之间的比率。例如,假设测试数据中有60个风险用户,从预测的前10%,该模型捕获30个风险用户,检测率等于30/60 = 50%。提升测量与不使用模型相比,使用模型的次数更多。使用上面的相同示例,如果测试数据有5,000个用户,则杠杆等于(30/500)/(60/5000)= 5。较高的杠杆意味着某些预测模型的性能会更好。
C.模型验证结果
为了验证我们的机器学习系统的有效性,我们需要一个月的模型运行结果并计算性能测量。我们将数据随机分成训练(75%的样本)和测试(剩余的25%)。下表列出了不同型号的测试数据的AUC。随着平均AUC值超过0.80,多层神经网络和随机森林达到了令人满意的精度。
关于测试数据的模型AUC
MNN |
RF |
SVM |
LR |
|
MEAN |
0.807 |
0.829 |
0.775 |
0.754 |
STANDARD ERROR |
0.006 |
0.004 |
0.016 |
0.008 |
表格列出了分别在前5%至20%预测中的不同模型的检测率。有希望的是,随机森林能够检测到80%的真实风险病例,只有20%的预测最高。
模型检测率高达5%~20%的预测值
Top % Predictions |
MNN |
RF |
SVM |
LR |
5% |
31.67% |
25.00% |
20.00% |
31.67% |
10% |
58.33% |
43.33% |
46.67% |
50.00% |
15% |
70.00% |
70.00% |
70.00% |
68.33% |
20% |
78.33% |
80.00% |
80.00% |
76.67% |
最后,我们还评估模型升力也在表IV中列出的前5%至20%预测值。对于前5%的预测,多层神经网络实现了6.82的提升值,这意味着它几乎是当前基于规则的系统的7倍。如果我们看一下5%到20%预测的平均升力,多层神经网络是最高的,平均升力超过5.5,如表五的最后一行所列。这是非常令人鼓舞的。
模型升级前5%~20%的预测
Top % of Predictions |
MNN |
RF |
SVM |
LR |
5% |
6.82 |
5.30 |
4.19 |
6.82 |
10% |
6.25 |
4.55 |
4.92 |
5.30 |
15% |
4.92 |
4.92 |
4.92 |
4.80 |
20% |
4.09 |
4.19 |
4.19 |
4.00 |
Average |
5.52 |
4.74 |
4.56 |
5.23 |
以上是关于网络安全运营中心以用户为中心的机器学习框架的主要内容,如果未能解决你的问题,请参考以下文章