Azure Sentinel中网络会话异常告警无实体问题的分析与解决
问题背景
在Azure Sentinel安全监控实践中,用户报告了一个关于"Excessive number of failed connections"(连接失败次数过多)的告警触发问题。该告警源自Fortinet防火墙的监控数据,但触发后却未能显示任何关联实体信息,给安全分析带来了困扰。
问题现象
告警规则被触发后,在Azure Sentinel的告警详情页面中,实体(Entities)部分显示为空。这使得安全分析师无法直接识别出问题的源头IP地址或相关设备,增加了调查难度。
技术分析
告警规则工作机制
该告警规则基于Azure Sentinel的"Network Session Essentials"解决方案,其核心逻辑是通过KQL查询统计指定时间窗口内网络会话失败的数量。当失败次数超过预设阈值时触发告警。
实体缺失原因
经过技术团队深入分析,发现实体缺失主要有以下两个原因:
-
阈值设置问题:默认阈值(5000)可能设置过高,导致虽然触发了告警,但实际数据未能满足实体提取的条件。当降低阈值后,实体信息能够正常显示。
-
数据源特性:在本案例中,异常流量实际来源于Windows 11 24H2更新引入的打印服务问题。系统更新后,打印操作会触发UDP广播风暴,导致大量连接失败记录。
解决方案
临时解决方案
对于本案例中的特定问题,可通过以下注册表修改解决广播风暴问题:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Spooler\Printers]
"DeviceDiscovery"=dword:00000000
此修改会禁用打印设备的自动发现功能,从而避免UDP广播风暴。
长期优化建议
- 阈值调整:根据实际环境中的网络流量特征,适当调整告警规则的阈值参数。可使用以下KQL查询测试不同阈值下的效果:
let threshold = 1000; // 可根据实际情况调整
_Im_NetworkSession
| where EventResult == 'Failure'
| where isnotempty(SrcIpAddr)
| where TimeGenerated > ago(10h)
| summarize Count = count(),
DvcHostnames = make_list(DvcHostname),
DstHostnames = make_list(DstHostname),
EventOriginalResultDetails = make_list(EventOriginalResultDetails),
Process = make_list(Process),
InitiatingProcessFolderPath = make_list(InitiatingProcessFolderPath),
EventProduct = make_list(EventProduct),
Dst = make_list(Dst)
by SrcIpAddr, TimeBucket = bin(TimeGenerated, 5m), User
| where Count > threshold
| project TimeBucket, SrcIpAddr, Count, threshold, User, DvcHostnames, DstHostnames, EventOriginalResultDetails, Process, InitiatingProcessFolderPath, EventProduct, Dst
| order by Count desc
| take 10
-
实体映射优化:确保告警规则中正确配置了实体映射关系,特别是源IP地址(SrcIpAddr)到IP实体类型的映射。
-
数据源验证:定期验证数据连接器的数据质量,确保网络会话数据完整上传且格式符合预期。
最佳实践
-
分层阈值策略:建议采用分层阈值策略,针对不同网络区域设置不同的告警阈值,提高告警的准确性。
-
实体丰富化:在告警规则中添加更多上下文信息,如设备名称、用户信息等,便于快速定位问题。
-
定期规则评审:建立定期评审机制,根据网络环境变化调整告警规则参数。
-
根本原因分析:对于反复出现的告警,应深入分析根本原因,而非简单调整阈值。
总结
Azure Sentinel中的网络会话监控是安全运营的重要环节。通过本案例的分析,我们了解到告警规则配置需要结合实际环境特点进行优化。合理的阈值设置、完整的实体映射以及深入的根本原因分析,是确保安全监控有效性的关键要素。安全团队应建立持续优化的机制,使安全监控系统能够适应不断变化的网络环境。
kernelopenEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。C032
Kimi-K2-ThinkingKimi K2 Thinking 是最新、性能最强的开源思维模型。从 Kimi K2 开始,我们将其打造为能够逐步推理并动态调用工具的思维智能体。通过显著提升多步推理深度,并在 200–300 次连续调用中保持稳定的工具使用能力,它在 Humanity's Last Exam (HLE)、BrowseComp 等基准测试中树立了新的技术标杆。同时,K2 Thinking 是原生 INT4 量化模型,具备 256k 上下文窗口,实现了推理延迟和 GPU 内存占用的无损降低。Python00
kylin-wayland-compositorkylin-wayland-compositor或kylin-wlcom(以下简称kywc)是一个基于wlroots编写的wayland合成器。 目前积极开发中,并作为默认显示服务器随openKylin系统发布。 该项目使用开源协议GPL-1.0-or-later,项目中来源于其他开源项目的文件或代码片段遵守原开源协议要求。C00
HunyuanOCRHunyuanOCR 是基于混元原生多模态架构打造的领先端到端 OCR 专家级视觉语言模型。它采用仅 10 亿参数的轻量化设计,在业界多项基准测试中取得了当前最佳性能。该模型不仅精通复杂多语言文档解析,还在文本检测与识别、开放域信息抽取、视频字幕提取及图片翻译等实际应用场景中表现卓越。00
GLM-4.7GLM-4.7上线并开源。新版本面向Coding场景强化了编码能力、长程任务规划与工具协同,并在多项主流公开基准测试中取得开源模型中的领先表现。 目前,GLM-4.7已通过BigModel.cn提供API,并在z.ai全栈开发模式中上线Skills模块,支持多模态任务的统一规划与协作。Jinja00
GLM-TTSGLM-TTS 是一款基于大语言模型的高质量文本转语音(TTS)合成系统,支持零样本语音克隆和流式推理。该系统采用两阶段架构,结合了用于语音 token 生成的大语言模型(LLM)和用于波形合成的流匹配(Flow Matching)模型。 通过引入多奖励强化学习框架,GLM-TTS 显著提升了合成语音的表现力,相比传统 TTS 系统实现了更自然的情感控制。Python00
Spark-Formalizer-X1-7BSpark-Formalizer 是由科大讯飞团队开发的专用大型语言模型,专注于数学自动形式化任务。该模型擅长将自然语言数学问题转化为精确的 Lean4 形式化语句,在形式化语句生成方面达到了业界领先水平。Python00