IsaacInCyber/detection-engineering-portfolio

GitHub: IsaacInCyber/detection-engineering-portfolio

提供针对常见攻击技术的KQL检测规则库,已在Sentinel/MDE环境中验证并调优至可用状态。

Stars: 0 | Forks: 0

# 检测工程作品集 针对常见攻击技术的 KQL 检测。每个检测都已在我的家庭实验室中模拟,在 Sentinel/MDE 中捕获,并经过调整直到误报率可控。 ## 实验室环境 | 组件 | 详情 | |-----------|---------| | 攻击机 | Parrot Security OS (ARM64) on UTM | | 目标 | Azure 中的 Windows 10 虚拟机 | | SIEM | Microsoft Sentinel | | EDR | Microsoft Defender for Endpoint | | 日志表 | DeviceNetworkEvents, DeviceLogonEvents, DeviceProcessEvents | ## 攻击链 这些检测遵循真实的攻击路径: ``` Port scan → Brute force RDP → Encoded PowerShell → LSASS dump → Persistence → Lateral movement ``` ## 检测规则 | 技术 | MITRE ID | 检测内容 | |-----------|----------|-----------------| | 端口扫描 | T1046 | 15分钟内来自单一源的50+个端口 | | 密码喷洒 | T1110.003 | 20+个不同IP对同一主机认证失败 | | RDP暴力破解 | T1110.001 | 10分钟内来自同一源的5+次失败登录 | | 编码PowerShell | T1059.001 | 带解码的Base64编码命令(-enc参数) | | LSASS转储 | T1003.001 | 命令行中的comsvcs.dll + MiniDump | 每个检测都位于 `detections/` 目录中,包含完整的 KQL 和解释逻辑的注释。 ## 示例:通过 comsvcs.dll 进行 LSASS 转储 这可以捕获使用签名 Windows 二进制文件进行的凭据盗窃: ``` DeviceProcessEvents | where TimeGenerated >= ago(30m) | where ProcessCommandLine has "comsvcs.dll" and ProcessCommandLine has "MiniDump" | project TimeGenerated, DeviceName, ProcessCommandLine ``` 为什么这能起作用:攻击者使用 comsvcs.dll 因为它是合法的——由 Microsoft 签名,系统上已有。无需投放 Mimikatz。该检测捕获的是行为模式,而不是特定的工具名称。 ## 经验总结 - 阈值调整是关键——从5次失败登录开始,不得不根据实际噪音进行调整 - 行为检测始终优于特征检测 - KQL 正则表达式用于提取和解码 Base64 载荷 - `has` 和 `contains` 之间的区别对性能确实很重要
标签:AMSI绕过, Cloudflare, EDR, KQL, Kusto查询, LSASS, Microsoft Defender for Endpoint, Microsoft Sentinel, MITRE ATT&CK, OpenCanary, PoC, PowerShell检测, URL发现, 凭证转储, 威胁检测, 安全检测, 家庭实验室, 密码喷洒, 插件系统, 攻击模拟, 数据展示, 数据统计, 暴力破解, 横向移动, 端口扫描, 端点安全, 红队, 红队行动, 编程规范, 网络安全, 脆弱性评估, 行为检测, 补丁管理, 误报调优, 隐私保护, 驱动签名利用