Azure-Sentinel中SharePoint下载行为异常检测规则的分析与优化
2025-06-09 13:11:24作者:胡易黎Nicole
背景介绍
在Azure-Sentinel安全分析平台中,SharePoint下载行为监控是一个重要的安全检测场景。其中"SharePoint_Downloads_byNewIP"规则用于检测用户从新IP地址下载SharePoint文件的异常行为,这是识别潜在账户泄露或内部威胁的关键指标。
问题发现
在分析该检测规则的KQL查询逻辑时,发现其基线计算部分存在潜在缺陷。原始查询通过以下方式计算用户行为基线:
- 首先在14天的时间窗口内统计每个用户对每个站点URL从特定IP地址的操作次数
- 然后简单地计算这些计数的平均值作为基线
这种计算方法忽略了时间维度上的分布特征,可能导致基线计算不准确。例如,一个用户在13天内有少量操作,但在第14天有大量操作,原始方法会将这些操作平均计算,无法真实反映用户日常行为模式。
技术分析
正确的基线计算方法应考虑时间维度上的分布特征。具体来说:
- 应该先将时间划分为固定间隔(如1天)
- 统计每个时间间隔内的操作次数
- 然后计算这些日统计值的平均值
这种方法能更准确地反映用户的日常行为模式,避免因某天异常活动而影响整体基线计算。
优化方案
优化后的KQL查询逻辑应调整为:
let userBaseline = OfficeActivity
| where TimeGenerated between(ago(starttime)..ago(endtime))
| where RecordType =~ szSharePointFileOperation
| where Operation in~ (szOperations)
| where isnotempty(UserAgent)
| summarize Count = count() by UserId, Operation, Site_Url, ClientIP, bin(TimeGenerated, 1d)
| summarize AvgCount = avg(Count) by UserId, Operation, Site_Url, ClientIP;
关键改进点是在第一次summarize时增加了按天分组(bin(TimeGenerated, 1d)),这样后续的平均值计算才是真正的日均值,而非总平均值。
影响范围
这种基线计算方法的问题不仅存在于"SharePoint_Downloads_byNewIP"规则中,其他采用类似逻辑的检测规则也可能存在相同问题。安全团队应全面审查所有基于用户行为基线的检测规则,确保其统计方法的正确性。
实施建议
对于使用Azure-Sentinel的组织,建议:
- 检查所有基于用户行为基线的检测规则
- 确保时间维度被正确纳入基线计算
- 根据实际业务场景调整时间分桶粒度(如1小时、1天等)
- 对修改后的规则进行充分测试,验证其检测效果
正确的基线计算方法能显著提高异常检测的准确性,减少误报和漏报,提升整体安全运营效率。
登录后查看全文
热门项目推荐
相关项目推荐
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0215
cann-learning-hubCANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。Jupyter Notebook0138
uni-appA cross-platform framework using Vue.jsJavaScript08
GLM-5.2智谱开源 GLM-5.2,这是针对长文本任务的最新旗舰模型。相较于前代产品 GLM-5.1,它在长文本任务处理能力上实现了显著飞跃,并且首次在稳定的 100 万 token 上下文中提供这一能力。Jinja00
SwanLab⚡️SwanLab - an open-source, modern-design AI training tracking and visualization tool. Supports Cloud / Self-hosted use. Integrated with PyTorch / Transformers / LLaMA Factory / veRL/ Swift / Ultralytics / MMEngine / Keras etc.Python00
tiny-universe《大模型白盒子构建指南》:一个全手搓的Tiny-UniverseJupyter Notebook03
项目优选
收起
deepin linux kernel
C
32
16
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
471
465
暂无描述
Dockerfile
779
5.08 K
本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。
C++
876
2.03 K
Ascend Extension for PyTorch
Python
758
968
本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。
C++
697
1.4 K
昇腾LLM分布式训练框架
Python
185
231
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
1.1 K
1.14 K
本仓库是 Flutter SDK 与 Flutter Engine 的 OpenHarmony 适配版本,由 CPF-Flutter 团队维护。开发者可使用熟悉的 Flutter 技术栈开发 OpenHarmony 应用,3.35.7 及以后的适配版本可基于本仓库源码构建支持 OpenHarmony 的 Flutter Engine。
Dart
1.04 K
271
JiuwenSwarm 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。
Python
2.25 K
677