SIEM 代表安全信息和事件管理。 SIEM 平台提供安全操作的集中管理,使其变得更加轻松供组织监控、管理和保护其 IT 基础设施。 SIEM 平台简化了事件响应流程,使安全团队能够快速有效地响应安全事件。 SIEM 解决方案通过提供集中的日志记录和报告功能,帮助组织实现并保持对行业法规和标准的遵守。 SIEM 系统可以及早检测 数据工程中,数据/对于大容量源来说,日志收集是一项具有挑战性的任务。例如,在大型组织中,Linux 日志每天可能约为 100 亿条,防火墙日志可能约为 50 亿条。日志收集中数量激增是由于数据突然增加而导致的,这会影响数据摄取过程、存储级别的平台和网络。
解决方案
利用机器学习算法及早识别流量峰值,可以提高日志监控的有效性和效率,并使组织能够领先于可扩展性问题和运营挑战。使用机器学习 (ML) 算法来识别交易量峰值具有多种优势与传统监控方法相比:
- 复杂模式:机器学习算法可以识别日志数据中的复杂模式,而传统监控系统可能难以检测到这些模式。他们可以同时分析多个变量并适应随时间变化的模式。
- 可扩展性:ML 模型可以扩展以高效处理大量日志数据。它们可以实时处理大量信息,适合具有动态和大容量数据流的环境。
- 异常检测:机器学习算法擅长异常检测,能够有效识别流量峰值和其他可能表明安全威胁或操作问题的异常模式。他们可以区分正常波动和异常行为。
- 适应性:机器学习模型可以适应不断变化的数据模式,并随着时间的推移从新信息中学习。他们可以动态调整检测阈值并更新算法,以提高准确性并减少误报。
- 预测功能:机器学习算法可以预测未来趋势,并根据历史数据模式预测潜在的交易量峰值。这种主动的方法使组织能够采取先发制人的措施来降低风险并优化资源分配。
有不同类型的有监督和无监督算法(或自行开发的解决方案)从该特定解决方案中进行选择。下面使用的算法是森林隔离算法。隔离森林提供了一种轻量级、可扩展且有效的异常检测方法,特别是在高维数据集中,传统的监督学习算法可能会遇到困难或需要大量的预处理。
代码块
Python
从 sklearn.ensemble 导入 IsolationForest
将 pandas 导入为 pd
# 示例数据(替换为您的实际数据)
数据 = {
'feed_type': ['linux', 'linux', 'linux', 'linux', 'linux', 'PA', 'PA', 'PA', 'PA', 'linux', 'linux', ' linux', 'linux', 'PA', 'PA', 'PA', 'PA', 'PA', 'PA', 'PA', 'PA', 'linux', 'linux', 'linux' ,'linux','linux','PA','PA','linux','linux','PA','PA'],
'卷': [6098989898, 6098989899, 6548989198, 7098989898, 7098989899, 7198989198, 6398989898, 6498989899, 6198989198, 6098989898 , 6098989898, 6198989898, 6298989898, 6598989898, 6698989898, 6798989898, 6898989898, 6598989898, 6698989898, 6798989898, 819 8989898、6998989898、6698989898 , 6898989898, 6998989898, 7098989898, 6898989898, 6698989898, 7898989898, 7698989898, 8898989898, 7098989898]
}
# 创建一个数据框
df = pd.DataFrame(数据)
# 提取特征名称
feature_names = df.columns.tolist()
# 训练模型
model = IsolationForest(contamination=0.01) # 根据您的数据集调整污染
model.fit(df[['体积']])
# 检测异常的函数
def detector_anomalies(feed_type, 体积):
anomaly_prediction = model.predict([[体积]])
返回 anomaly_prediction[0] == -1, feed_type
# 模拟传入数据
# 示例数据(替换为您的实际数据)
传入数据 = [
{'feed_type':'linux','卷':8698989898},
{'feed_type':'PA','体积':14000000000 }
]
# 检查每个传入数据点的异常情况
警报=[]
对于传入数据中的数据点:
is_anomaly, feed_type = detector_anomalies(data_point['feed_type'], data_point['volume'])
如果是_异常:
警报.append(feed_type)
# 检查异常情况
如果警报:
print(f"警报:检测到 {' 和 '.join(alerts)} 的音量峰值!")
# 将新数据转换为DataFrame
new_df = pd.DataFrame(incoming_data)
# 将现有的 DataFrame 与新的 DataFrame 连接起来
df = pd.concat([df, new_df],ignore_index=True)
# 使用组合数据重新训练模型
model.fit(df[['体积']])
print("使用新数据重新训练模型。")
别的:
print("未检测到异常。")
示例结果
正常音量:
交易量激增:
结论
机器学习算法非常有用,特别是在 SIEM 网络安全领域,尤其是在数据工程中,可以使组织主动解决特定问题。通过利用机器学习进行数据摄取中的流量峰值检测,组织可以提高运营效率、增强系统可靠性并强化其数据基础设施以应对潜在的中断。