GrimthornRedbeard/nitewatch

GitHub: GrimthornRedbeard/nitewatch

NiteWatch 是一款 Windows 端点安全监控工具,通过无内核驱动的本地分析记录出站连接并重建因果链,以通俗语言解释异常行为并提供一键修复。

Stars: 1 | Forks: 0

# NiteWatch **凌晨3点有人在敲你的门。这就是告诉你谁在敲门。** [![Licence: GPL v3](https://img.shields.io/badge/licence-GPL--3.0--or--later-blue)](LICENSE) ![Platform: Windows](https://img.shields.io/badge/platform-Windows%2010%2F11-informational) ![Status: pre-release](https://img.shields.io/badge/status-pre--release-orange) NiteWatch 是一款适用于 Windows 的轻量级个人安全助手。它监控着你的 计算机实际在做什么——哪些程序在运行,它们在与谁 通信,它们在触碰哪些文件——当出现异常时,它会 用通俗易懂的语言告诉你事情的来龙去脉,并提供一键修复。 - **谁在通信?** 永久记录每一个出站 连接及其对应进程的日志:哪个程序、哪个服务器、哪个域名、何时——外加该 地址块的归属者及其注册所在的国家/地区。 - **完整脉络。** 点击任意连接即可查看产生它的 因果链:*程序启动 → 查询名称 → 建立连接*。该过程基于 因果事件图重构,按逻辑时钟而非物理时间排序。 - **一键操作。** 告警附带通俗的解释和 一键修复功能——拦截、停止、隔离、从启动项移除——对于可逆的更改,均可执行撤销操作。 - **隐私至上。** 所有分析均在你的本地机器上完成。威胁 情报和地址归属数据是*向下*拉取的;关于你流量的任何信息都*不会向上*发送。 ## 检测范围 | 领域 | 示例 | |---|---| | **命令与控制(C2)** | 连接已知恶意软件基础设施、程序拨测从未解析过的裸 IP 地址、未签名软件连接新目标、首次与受监控管辖区通信 | | **持久化** | 从临时文件夹添加自启项、现有启动项被静默重定向、启动劫持(IFEO/AppInit) | | **勒索软件** | 单个程序跨文件夹重写多个文档、加密式重命名、勒索信、备份数据销毁 | | **凭证窃取** | 非归属程序读取已保存的密码、SSH 密钥、云凭证或钱包文件 | 噪声控制被视为一项核心功能,而非细枝末节:已验证发布者抑制机制、安装后的学习窗口、基于程序/目标的“始终允许”设置,以及严重级别过滤,确保只有严重的安全发现才会打扰你。 ## 状态 已实现最初设计的所有功能;**但尚未在真实硬件上经过长期验证。** 日常使用中的误报率是目前亟待解决的问题。 - 设计:[docs/plans/2026-07-24-nitewatch-design.md](docs/plans/2026-07-24-nitewatch-design.md) - 阶段计划:[P1](docs/plans/2026-07-25-p1-flight-recorder.md) · [P2](docs/plans/2026-07-25-p2-detections.md) - Feed 许可(添加源之前请阅读):[docs/feed-licensing.md](docs/feed-licensing.md) - 已知局限性:[agent/internal/help/known-limitations.md](agent/internal/help/known-limitations.md) ——已被编译进二进制文件中,可在仪表盘的 **Limits** 下阅读,因此它会随构建版本一同发布,而不仅仅是留存在此代码库中 ## 运行说明 构建(纯 Go 语言,单一静态 exe,无 CGO): ``` cd agent && CGO_ENABLED=0 go build -o nitewatch ./cmd/nitewatch ``` 为 Windows 交叉编译: ``` cd agent && GOOS=windows GOARCH=amd64 CGO_ENABLED=0 go build -trimpath -ldflags "-s -w" -o ../dist/nitewatch.exe ./cmd/nitewatch ``` `-trimpath` 非常重要:构建必须是可复现的,且已发布的二进制文件已公开其 SHA-256 哈希值,因此如果在构建时不加此参数,即使源代码完全相同,生成的哈希值也会与 下载页面上的不一致。 `dist/` 是被 git 忽略的构建输出目录。如果需要向他人提供可运行的副本,请将 exe 文件连同 `agent/scripts/run-nitewatch.bat` 一起分发——该启动脚本是 事实来源,它必须与 exe 位于同一目录下,因为它会 自动提权,然后从其所在位置运行 `nitewatch.exe`。 **`dist/` 是提取构建版本的路径,因此每当交付出的内容发生更改时,请务必重新构建。** 存放在那里的过期 exe 从表面上看与最新版本无异, 而且文件的时间戳也起不到辨别作用:Go 会将*提交*时间嵌入二进制文件, 而不是构建时间,因此旧代码的新构建版本与旧代码的旧构建版本看起来是一样的。要检查二进制文件的真实身份,请运行: ``` go version -m dist/nitewatch.exe | grep vcs ``` 正在运行的 agent 会在其“关于”面板中报告相同的身份,这在没有安装 Go 的机器上是唯一的检查方式。 **Windows(实时模式)** —— 必须以**提权(管理员)**方式运行;ETW 需要 Administrator 权限: ``` nitewatch.exe --serve ``` 或者直接双击 `run-nitewatch.bat`,它会自动为你请求提权。然后 打开 。 **开发/演示(任意操作系统)** —— 重放已记录的追踪数据,无需提权: ``` ./nitewatch --replay testdata/traces/basic.jsonl ``` 实用参数:`--no-feeds`(跳过威胁情报下载),`--no-recon`(跳过 地址归属数据集),`--rules `(在开发期间从磁盘加载规则包)。其他所有配置均可在仪表盘的 Settings 面板中完成。 ## 布局 ``` agent/ cmd/nitewatch/ entrypoint and run modes internal/ source/ telemetry: Windows ETW, and a JSONL replay source for tests event/ the source-agnostic event vocabulary graph/ causal event graph (GoRapide poset) + rolling window ledger/ SQLite flight recorder: connections, alerts, actions detect/ detection engine, detectors, suppression gates filewatch/ file classification and encryption-burst tracking autostart/ autostart snapshot + diff intel/ threat-intel feeds, matched offline recon/ offline address ownership (ASN, country) respond/ remediation actions and undo notify/ notification gating and Windows toasts api/ loopback HTTP + embedded dashboard rules/ shipped detection rule packs (YAML), embedded in the binary testdata/traces/ replay fixtures ``` ## 第三方数据 请参阅 [NOTICE](NOTICE) 获取必需的归属声明。 ## 许可证 Copyright © 2026 Threat Tape LLC. NiteWatch 是自由软件,基于 **GNU General Public License version 3 or later** 许可证发布。完整文本请参阅 `LICENSE`。 采用此许可证与其说是偏好,不如说是传承:该 agent 所依赖的 Windows 事件追踪消费者(`github.com/0xrawsec/golang-etw`) 基于 GPL-3.0,将其进行链接会使整个程序变为 GPL-3.0。在发布二进制文件之前(而非之后),请务必检查依赖项的许可证。 每个源文件都包含 SPDX 标头。`agent/internal/help/licenses.md` 会 被编译进二进制文件中,并显示在仪表盘的 **Limits & roadmap** 面板内,这正是 GPL 要求交互式程序放置法律声明的地方,也是威胁情报 feed 要求显示其归属声明的地方。 第三方组件及其许可证均已列在该文档中。简述如下:golang-etw 和 golang-utils 基于 GPL-3.0,gorapide 基于 MIT, golang.org/x/sys 和 modernc.org SQLite 技术栈基于 BSD-3-Clause。
标签:EDR, EVTX分析, IP 地址批量处理, 日志审计, 系统运维, 终端安全, 网络信息收集, 脆弱性评估