oneKn8/nutcracker

GitHub: oneKn8/nutcracker

一款自托管的 Linux 主机出站连接监控与防御工具,通过威胁情报评估并拦截恶意连接。

Stars: 0 | Forks: 0

# Nutcracker 一款个人、自托管的 Linux 主机防御 agent。它赋予你对所有离开你机器的数据进行“透视”的能力,根据威胁情报评估每个目标,并通过自然语言工具拦截恶意行为。 大多数人都无法看到自己的计算机正在发送什么数据,也无法在交出银行卡号之前分辨出真实网站和诈骗网站。Nutcracker 旨在用通俗的语言回答三个问题:**我的机器正在向外发送什么?我是否正被监视?如果遭到攻击,能否被阻止?** 它特意采用开源设计。商业隐私工具是你付费并盲目信任的黑盒。Nutcracker 的初衷是供人阅读、审计,并完全在你自己的硬件上运行——除了你可以在代码中看到的查询外,不会有任何数据离开你的机器。 ## 两大支柱 - **WATCH** —— 查看每一个出站连接(哪个进程、发往何处、数据量多少),对其进行评估(威胁情报匹配、malware/phishing 检查、newly-registered-domain 和 beacon 检测),自动拦截高可信度威胁,并对其余威胁发出警报。*(v1,开发中。)* - **VANISH** —— 降低你被追踪的可能性:encrypted DNS、tracker 拦截、anti-fingerprinting 指导、掩码电子邮件/电话。*(规划中。)* ## 工作原理 Nutcracker 运行在 Linux 应用层防火墙 [OpenSnitch](https://github.com/evilsocket/opensnitch) 之上。其 pipeline 如下: ``` OpenSnitch (sensor + enforcer) -> read the connection log -> enrich (threat intel, ASN/geo, domain age, URL reputation) -> classify (known-bad | suspicious | benign) -> enforce (auto-block known-bad, alert on suspicious) -> persist (local history + block ledger) -> answer questions through MCP tools ``` ### 安全态势(决策策略) - **known-bad**(自动拦截):命中威胁情报黑名单、Safe Browsing 恶意软件/网络钓鱼,或命中恶意软件 hostlist。 - **suspicious**(发出警报,由你决定):首次见到的目标、进程出现新的连接国家/地区、异常端口、类似 beacon 的周期性连接、newly-registered domain,或非浏览器进程使用了 hosting/ad-tech ASN。 - **benign**:除此之外的所有情况,以及你明确允许的目标。 ## 设计说明 - **你的数据归你所有。** 状态数据保存在本地(默认为 `~/.nutcracker/`)。不存在所谓的 Nutcracker 云端。 - **流程中无任何机密。** 它不需要密码或政府身份证件。密码/数据泄露检查(添加时)将使用 k-anonymity,确保机密绝不会离开本机。 - **坦诚面对局限性。** 加密 (TLS) 流量会暴露目标和流量大小,但不会暴露内容。它能提高攻击者的成本,并抓住现实中的大多数 tracker、malware 和骗局——但它无法保证抵御针对性的高级攻击者。 ## 环境要求 - Linux,已安装并运行 [OpenSnitch](https://github.com/evilsocket/opensnitch),且其连接日志设置为文件模式。在非常新的内核版本上,如果 eBPF 进程监控模块加载失败,请设置 `ProcMonitorMethod: proc`。 - Node.js >= 22。 - 为内置的 helper 程序配置最小权限的 `sudoers` 条目(用于写入规则文件、终止进程)——严格遵循最小权限原则,不提供无限制的 root 权限。 ## 开发 ``` npm install npm test # unit tests (vitest) npm run typecheck npm run build ``` ## 许可证 [Apache-2.0](./LICENSE) (c) 2026 Shifat Islam Santo。详见 [NOTICE](./NOTICE)。
标签:Docker镜像, MITM代理, 自动化攻击