Skip to content
KitploitKITPLOIT
工具博客
Log in
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
log-horizon — Microsoft Sentinel SIEM 日志源分析器 | Kitploit
工具/GitHubGitHub/lnfernux/log-horizon
云基础设施安全配置审计云安全DevSecOps威胁情报事件响应日志分析
GitHublnfernux/log-horizon

log-horizon

Microsoft Sentinel SIEM 日志源分析器

查看仓库
282518天前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
网站

Microsoft Sentinel SIEM 日志源分析器

PowerShell 7+ 模块版本


我回答过无数次 “我们到底从这些日志中得到了什么?” 或 “Microsoft Sentinel 的推荐日志是什么?” 这样的问题。答案总是取决于很多因素,但我们可以给出通用的建议。所以我就在这里构建了这个工具。

Log Horizon 连接到你的 Microsoft Sentinel 工作区(可选地连接到 Defender XDR),遍历你正在引入的每个日志表,并告诉你是否能从中获得安全价值,还是只是在烧钱。它对表进行分类,根据你的检测规则对其进行评分,并给出带有节省估算的具体建议。

重要提示:这是一种通用方法。如果你知道某个日志源对你的环境很重要,那么该上下文始终优先于此工具告诉你的内容。分类只是一个起点,并非绝对真理。

想了解更多?我在博客上写了一些关于 Log Horizon 的文章:

  1. 工具发布:Log Horizon
  2. 更新:Log Horizon v0.5.0
  3. 构建实用的日志基线以及 Log Horizon 如何帮助你做到这一点
  4. 如何使用 Log Horizon

功能

功能描述
分类引擎包含 481 条目的知识库,覆盖 240+ 连接器、22 个类别,具有生命周期状态(已弃用/旧版及替换表),并为未知表提供自动启发式回退
成本-价值评分按表的成本层级与检测层级矩阵,结合综合评估(高价值到低价值),并根据观察到的计划(Analytics、Basic、Data Lake)定价
建议13 种优先操作类型:数据湖或 Basic 候选、零检测表、XDR 流式传输浪费、引入时过滤、拆分候选、计划使用、已弃用源、保留不足、XDR 检查器和检测分析器发现,每种都带有节省估算
检测映射将分析规则、搜寻查询和 XDR 检测映射到每个表,以发现覆盖缺口
关联标签检测规则描述中的 #DONT_CORR# / #INC_CORR# 标签,并标记被排除在 Defender 关联之外的规则
保留合规性根据行业标准和安全最佳实践,将实际保留期与建议的最低保留期进行比较
SOC 优化从 Security Insights API 拉取 Microsoft 自身的 SOC 改进建议
关键词缺口分析根据供应商/产品关键词,标记你应该引入但尚未引入的表
转换发现发现针对工作区的数据收集规则(DCR)(按目标过滤的订阅列表、工作区转换 DCR 和工作区关联),解析内联和多阶段转换,并标记每个操作(过滤、投影、列删除、富化、聚合)
拆分表检测识别 _SPLT_CL 拆分表,并在分类引擎中将其链接回父表
拆分 KQL 生成器从精选知识库、实时规则分析和社区字段频率统计生成可直接用于门户的拆分 KQL——仅条件格式,可直接粘贴到 Sentinel 拆分规则编辑器中。字段列表与表的实时架构相交;任何不存在的字段都会报告为已丢弃
检测分析器使用事件结果(自动关闭率、误报率和事件量百分位数)对分析规则的潜在噪音进行评分
XDR 检查器添加以 XDR 为重点的咨询层:流式传输覆盖检查,以及针对 XDR 相关遥测的一年数据湖保留指导
自定义分类提供你自己的 JSON 以添加或覆盖内置分类数据库
收集缓存收集的工作区数据在本地缓存(默认 60 分钟),因此重新运行和重新导出只需几秒钟;可使用 -NoCache 选择退出
主权云ARM、Log Analytics 和 Graph 端点遵循已登录的 Azure 环境(公有云、美国政府、中国)
交互式 TUISpectre.Console 仪表板,带菜单、彩色编码表、下钻、保留向导和 ASCII 艺术
导出JSON、Markdown 或静态 HTML 报告,便于与团队共享

免责声明

[!CAUTION] 免责声明

此工具是在 AI 的帮助下开发和维护的。 请谨慎使用此解决方案,并在生产环境中运行之前始终了解你正在运行的内容。开发者对任何漏洞或问题不承担任何责任。

下载、安装或使用此工具,即表示你确认已阅读、理解并同意这些条款。

先决条件

你需要什么版本
PowerShell7.0+
Az 模块Az.Accounts
其他模块PwshSpectreConsole 2.6.3+
可选Microsoft.Graph.Authentication(用于以已登录用户身份使用 -IncludeDefenderXDR)

端点遵循当前 Connect-AzAccount 会话的 Azure 环境,因此 Azure Government 和 Azure China 工作区无需额外参数即可工作。当没有可用环境时,使用公有云值。

如果你尚未登录 Azure,模块将为你启动 Connect-AzAccount。如果你已登录,它将直接继续。

权限:工作区上的 Log Analytics Reader 和 Microsoft Sentinel Reader 即可覆盖分析。转换发现还需要订阅或资源组上的 Microsoft.Insights/dataCollectionRules/read(Monitoring Reader);如果没有,运行将继续并打印一条警告,指出缺少的权限。-IncludeDefenderXDR 使用 Microsoft Graph 和 CustomDetection.Read.All,对于已登录用户,这意味着需要可选的 Microsoft.Graph.Authentication 模块。

快速开始

非常简单:```powershell

Grab the dependencies

Install-Module -Name Az.Accounts -Scope CurrentUser Install-Module -Name PwshSpectreConsole -Scope CurrentUser

Clone and import

git clone https://github.com/lnfernux/log-horizon Import-Module ./log-horizon/LogHorizon.psd1

## 使用方法

### 基础操作

首先连接到 Azure,并确保选择了正确的账户和订阅:```powershell
Connect-AzAccount

然后我们可以调用该工具:```powershell Invoke-LogHorizon -SubscriptionId '00000000-0000-0000-0000-000000000000' -ResourceGroup 'rg-sentinel' -WorkspaceName 'my-sentinel-ws'

<img width="860" height="842" alt="{F4FFA929-B24F-490C-BD3D-F75E214BCD93}" src="https://assets.kitploit.com/production/public/readmes/13110/ff9d1da85043d02a216df72913ecf63520310b8d820b1bd1278b8e4aca718494.png" />

此外,还有一个菜单可以深入查看其他输出:

<img width="395" height="223" alt="{83CE9E6E-F373-49CD-BE05-182DB69F36BE}" src="https://assets.kitploit.com/production/public/readmes/13110/0606a575b10640bd13ebb87b930f74b2438167b5578cb843b412b4fcf273fc26.png" />


### 关键词缺口 + Defender XDR

想知道你是否遗漏了与特定供应商相关的表?加入一些关键词。如果你还想要 XDR 分析,请添加 `-IncludeDefenderXDR`。```powershell
Invoke-LogHorizon -SubscriptionId '...' -ResourceGroup 'rg' -WorkspaceName 'ws' -Keywords 'CrowdStrike','AWS','Okta' -IncludeDefenderXDR

检测分析器

基于事件和自动化规则启用规则质量/噪音分析:```powershell Invoke-LogHorizon -SubscriptionId '...' -ResourceGroup 'rg' -WorkspaceName 'ws' -IncludeDetectionAnalyzer -DetectionLookbackDays 90

### 导出报告```powershell
# JSON
Invoke-LogHorizon -SubscriptionId '...' -ResourceGroup 'rg' -WorkspaceName 'ws' -Output json -OutputPath ./report.json

# Markdown
Invoke-LogHorizon -SubscriptionId '...' -ResourceGroup 'rg' -WorkspaceName 'ws' -Output markdown -OutputPath ./report.md

# Static HTML (self-contained, no JS, works offline)
Invoke-LogHorizon -SubscriptionId '...' -ResourceGroup 'rg' -WorkspaceName 'ws' -Output html -OutputPath ./report.html

# Auto-generate timestamped filename by pointing at a directory
Invoke-LogHorizon -SubscriptionId '...' -ResourceGroup 'rg' -WorkspaceName 'ws' -Output html -OutputPath ./reports/

管理表保留期和类型

现在您可以直接从交互式 TUI 中更新表保留期和表类型:

  • 正常打开 Invoke-LogHorizon,然后从主菜单中选择 管理表保留期和类型,以进行批量保留期或类型更新。
  • 打开 日志调优 / 转换 > 评估特定表,然后选择 管理此表的保留期/类型,以进行单表更改。

对于脚本编写或自动化操作,请使用专用的公共命令:```powershell

Preview a single-table change (prints a Table / Plan / Interactive / Total / Status / Reason table, applies nothing)

Set-LogHorizonTableRetention -SubscriptionId '...' -ResourceGroupName 'rg' -WorkspaceName 'ws' ` -TableName 'SigninLogs' -TotalRetentionInDays 365 -WhatIf

Switch tables to Basic and set total retention

Set-LogHorizonTableRetention -SubscriptionId '...' -ResourceGroupName 'rg' -WorkspaceName 'ws' ` -TableName 'AzureDiagnostics','VMConnection' -TargetPlan Basic -TotalRetentionInDays 730

Use -1 for inherit/default semantics

RetentionInDays = inherit workspace default

TotalRetentionInDays = remove long-term retention

Set-LogHorizonTableRetention -SubscriptionId '...' -ResourceGroupName 'rg' -WorkspaceName 'ws' ` -TableName 'SigninLogs' -RetentionInDays -1 -TotalRetentionInDays -1

### 非交互式 / CI 模式

跳过交互式 TUI,直接导出到文件,适用于流水线或定时运行:```powershell
Invoke-LogHorizon -SubscriptionId '...' -ResourceGroup 'rg' -WorkspaceName 'ws' -NonInteractive -Output json -OutputPath ./reports/

如果省略 -Output,分析对象将返回到管道中,以便你可以将其传递到你自己的逻辑中。

集合缓存

数据收集阶段(使用情况、规则、事件、表、DCR)默认会被缓存,因此针对同一工作区重新运行(例如导出第二种格式或重新打开 TUI)只需几秒钟,而不是几分钟。缓存位于 $env:LOCALAPPDATA\LogHorizon\cache 下(可通过 -CachePath 覆盖),每个订阅、资源组、工作区、-DaysBack、-DetectionLookbackDays、-IncludeDefenderXDR、-IncludeDetectionAnalyzer、三个价格参数及模块版本的组合对应一个文件。早于 -CacheMaxAgeMinutes(默认 60)的条目会被忽略,并且每次保存都会删除过期的条目,因此该文件夹不会累积来自其他参数集或旧版本的文件。令牌永远不会写入缓存;每次调用都会执行身份验证,因此保留向导始终拥有实时凭据。

缓存文件是纯文本 Clixml。使用 -IncludeDetectionAnalyzer 时,它包含来自你工作区的事件标题、编号、状态和分类;事件所有者、规则作者和指定所有者身份不会被收集。在共享机器上使用 -NoCache,或将 -CachePath 指向具有所需访问控制的位置。```powershell

Force a fresh collection and refresh the cache

Invoke-LogHorizon -SubscriptionId '...' -ResourceGroup 'rg' -WorkspaceName 'ws' -RefreshCache

Never read or write the cache

Invoke-LogHorizon -SubscriptionId '...' -ResourceGroup 'rg' -WorkspaceName 'ws' -NoCache

Accept cached data for up to a day

Invoke-LogHorizon -SubscriptionId '...' -ResourceGroup 'rg' -WorkspaceName 'ws' -CacheMaxAgeMinutes 1440

### 日志调优与拆分 KQL

交互式 TUI 包含一个 **日志调优 / 转换** 菜单,提供实时调优建议(基于已部署规则和搜寻查询中的字段使用情况)、知识库拆分 KQL,以及按表评估器。每个 KQL 块仅包含条件,可直接粘贴到 Sentinel 拆分规则编辑器中,并带有来源归属(知识库、规则分析或两者结合)。

### 自定义定价

默认价格为西欧简化即用即付(PAYG)美元计价:分析日志 5.59 美元/GB,基础日志 1.15 美元/GB,数据湖 0.20 美元/GB(摄取 0.07 + 处理 0.13)。每个表根据 `Usage` 表中观察到的计划定价,免费状态来自 `Usage.IsBillable`。容量使用计费 GB(1000 MB)。如果您的承诺层级不同:```powershell
Invoke-LogHorizon -SubscriptionId '...' -ResourceGroup 'rg' -WorkspaceName 'ws' -PricePerGB 4.61 -BasicPricePerGB 1.15 -LakePricePerGB 0.20

所有参数

下载工具