VatsSanghvi/Kusto-Threat-Hunting-Lab

GitHub: VatsSanghvi/Kusto-Threat-Hunting-Lab

基于模拟网络入侵数据集的 KQL 威胁狩猎查询集合,用于练习和构建 Azure 安全生态中的安全检测规则。

Stars: 0 | Forks: 0

# 🛡️ Kusto 威胁狩猎实验室 这是一个用于网络安全威胁检测和分析的 **KQL (Kusto Query Language)** 查询集合,基于真实世界风格的网络入侵数据集构建。本项目展示了使用 Azure Data Explorer 的实际 SOC (Security Operations Center) 技能。 ## 📋 目录 - [关于数据集](#about-the-dataset) - [项目目标](#project-goals) - [如何运行这些查询](#how-to-run-these-queries) - [查询索引](#query-index) - [主要发现](#key-findings) - [所用技术](#technologies-used) ## 📊 关于数据集 数据集 (`data/cybersecurity_intrusion_data.csv`) 包含 **9,537 个模拟网络会话**,具有以下字段: | 列名 | 类型 | 描述 | |---|---|---| | `session_id` | string | 唯一会话标识符 | | `network_packet_size` | int | 网络数据包大小(字节) | | `protocol_type` | string | 网络协议 — TCP, UDP, ICMP | | `login_attempts` | int | 会话中的总登录尝试次数 | | `session_duration` | float | 会话持续时间(秒) | | `encryption_used` | string | 加密方法 — AES 或 DES | | `ip_reputation_score` | float | IP 信誉评分(0 = 恶意,1 = 干净) | | `failed_logins` | int | 失败登录尝试次数 | | `browser_type` | string | 使用的浏览器 — Chrome, Firefox, Edge, Safari, Unknown | | `unusual_time_access` | int | 标志:1 = 在异常时间访问 | | `attack_detected` | int | 标签:1 = 检测到攻击,0 = 干净 | **数据集统计:** - 总会话数:9,537 - 攻击会话:4,264 (~44.7%) - 干净会话:5,273 (~55.3%) - 协议分布:TCP 69% / UDP 25% / ICMP 5% ## 🎯 项目目标 1. 练习为安全分析用例编写真实的 KQL 查询 2. 模拟 SOC 分析师调查网络入侵数据的方式 3. 展示威胁狩猎模式:暴力破解检测、协议异常、IP 信誉评分、加密风险 4. 为 Azure Sentinel / Microsoft Defender 场景构建可复用的查询模板 ## 🚀 如何运行这些查询 ### 步骤 1 — 获取免费的 Azure Data Explorer 集群 1. 前往 [dataexplorer.azure.com](https://dataexplorer.azure.com) 2. 使用免费的 Microsoft 账户登录 3. 点击 **"+ Add cluster"** → 选择免费层 ### 步骤 2 — 创建数据库并导入数据 在查询窗口中运行以下命令以创建表: ``` .create table NetworkSessions ( session_id: string, network_packet_size: int, protocol_type: string, login_attempts: int, session_duration: real, encryption_used: string, ip_reputation_score: real, failed_logins: int, browser_type: string, unusual_time_access: int, attack_detected: int ) ``` 然后导入 CSV: ``` .ingest into table NetworkSessions 'https://raw.githubusercontent.com/YOUR_USERNAME/kusto-threat-hunting-lab/main/data/cybersecurity_intrusion_data.csv' with (format='csv', ignoreFirstRecord=true) ``` ### 步骤 3 — 运行查询 将 `queries/` 文件夹中的任何 `.kql` 文件复制到您的查询窗口并运行。 ## 📁 查询索引 | 文件 | 用例 | 关键 KQL 运算符 | |---|---|---| | `01_basic_exploration.kql` | 数据集概览和分析 | `count`, `summarize`, `extend` | | `02_attack_detection.kql` | 核心攻击过滤和细分 | `where`, `project`, `order by` | | `03_protocol_analysis.kql` | 按协议类型进行风险分析 | `summarize`, `render piechart` | | `04_brute_force_detection.kql` | 暴力破解和撞库攻击 | `where`, `bin`, `make_series` | | `05_encryption_risk.kql` | 弱加密 (DES) 风险标记 | `case()`, `summarize`, `extend` | | `06_time_based_anomalies.kql` | 非工作时间访问异常 | `iff()`, `summarize`, `render timechart` | | `07_ip_reputation_scoring.kql` | IP 信誉分桶和告警 | `case()`, `bin()`, `summarize` | ## 🔍 主要发现 - **DES 加密的会话** 的攻击率为 **53%**,而 AES 为 40% —— 弱加密与攻击密切相关 - **ICMP 会话** 的攻击率最高,为 **52%**,相比之下 TCP 为 44%,UDP 为 43% - 具有 **3 次以上失败登录且 IP 信誉低** (< 0.3) 的会话中有 **81%** 是攻击 - **非工作时间访问** (`unusual_time_access = 1`) 会话的攻击率为 **47%**,而正常时间为 44% - **"Unknown" (未知) 浏览器** 的攻击率最高,为 **49%**,可能代表自动化工具 ## 🛠️ 所用技术 - **Kusto Query Language (KQL)** — Microsoft 为 Azure Data Explorer, Azure Sentinel 和 Microsoft Defender 提供的查询语言 - **Azure Data Explorer (ADX)** — 用于运行和测试查询的免费集群 - **Dataset** — 模拟网络安全入侵数据(CSV 格式) ## 📬 联系 如果您觉得这个项目有帮助或有建议,欢迎开启 issue 或在 [LinkedIn](https://linkedin.com/in/YOUR_PROFILE) 上联系。
标签:Azure Data Explorer, Azure Sentinel, Cloudflare, IP信誉, IP 地址批量处理, KQL, Kusto, Kusto查询语言, MITRE ATT&CK, PE 加载器, SOC分析, Threat Hunting, 代码示例, 免杀技术, 威胁情报, 安全运营中心, 开发者工具, 异常检测, 插件系统, 数据分析, 暴力破解检测, 渗透测试数据, 渗透测试框架, 红队行动, 网络安全, 网络安全实验, 网络映射, 网络流量分析, 防御, 隐私保护