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发现, 凭证转储, 威胁检测, 安全检测, 家庭实验室, 密码喷洒, 插件系统, 攻击模拟, 数据展示, 数据统计, 暴力破解, 横向移动, 端口扫描, 端点安全, 红队, 红队行动, 编程规范, 网络安全, 脆弱性评估, 行为检测, 补丁管理, 误报调优, 隐私保护, 驱动签名利用