LXBStudioLLC/TrustNoWire

GitHub: LXBStudioLLC/TrustNoWire

一款基于 Tauri 2 和 React 构建的 Windows 实时网络监控与威胁检测桌面应用,提供连接追踪、DNS 日志、数据包捕获和威胁评分功能,默认本地运行保护隐私。

Stars: 0 | Forks: 0

# TrustNoWire **不要信任任何网线——包括我们自己的。这就是证明。** 适用于 Windows 的实时网络监控和威胁检测。TrustNoWire 监控你机器上的每一个连接、每一个字节和每一个进程——然后准确向你展示正在发生的一切。 它使用 Tauri 2(Rust 后端)和 React 构建,作为轻量级桌面应用运行,具备数据包捕获、DNS 日志记录、威胁评分以及每个连接进程的 Authenticode 验证功能。地理信息增强和 VirusTotal 扫描是**可选开启的**——默认情况下,没有任何远程 IP 或文件哈希数据会离开你的机器。 此源代码是公开的,以便你可以准确验证它在你的机器上做了什么。一个你无法审计的网络监控器是一个你不应该信任的网络监控器。 ## 截图 ### Iron Man 主题 | 展开模式 | 正常模式 | 紧凑模式 | 小组件模式 | 设置 | |----------|--------|---------|--------|----------| | ![展开模式](https://static.pigsec.cn/wp-content/uploads/repos/cas/6c/6ccf595cfd60c62d4f97881281792646a3c5bb71430edb0e91b428db0d6398f9.png) | ![正常模式](https://static.pigsec.cn/wp-content/uploads/repos/cas/71/715c10ca4c62eb3bc3bd7ea55ec963e9e155e571ea1bcb4be485ae5418f096ac.png) | ![紧凑模式](https://static.pigsec.cn/wp-content/uploads/repos/cas/b3/b3f3d2d5d93fed0d454b744da0810c24f008d868d1047e0b07db57f06b1d4a7a.png) | ![小组件模式](https://static.pigsec.cn/wp-content/uploads/repos/cas/e6/e6c0a4571e8f5f428d930df8c3775cb8454958e555e08fbfc11d2f6fa251ea9d.png) | ![设置](https://static.pigsec.cn/wp-content/uploads/repos/cas/38/38face9a901758c8dd75e6ea1266624005cd7f7f6b333b3d9ab201641a299bba.png) | ### Stealth 主题 | 展开模式 | 正常模式 | 紧凑模式 | 小组件模式 | 设置 | |----------|--------|---------|--------|----------| | ![展开模式](https://static.pigsec.cn/wp-content/uploads/repos/cas/20/2096d1e64981f016af5aead2d3c73b9273008d0dd23805173b8fe1ac0b4ff0af.png) | ![正常模式](https://static.pigsec.cn/wp-content/uploads/repos/cas/01/01364e85d14f5fc2845aca0e544e802e44cffe5ec5fe292d0568477d961db06d.png) | ![紧凑模式](https://static.pigsec.cn/wp-content/uploads/repos/cas/4a/4abcce9615dad9b920f52c1b0abd6589732935d37eaf2f01edde1eb9100b04d2.png) | ![小组件模式](https://static.pigsec.cn/wp-content/uploads/repos/cas/ab/abaf1e872305ce91b608230d543a83e6a0ffdfc25592f4c1ef89d51746713496.png) | ![设置](https://static.pigsec.cn/wp-content/uploads/repos/cas/e1/e18fcae550cbdb9b5fff9f2564dcf5d66ea80aac145e3deff9c7fa789cc03049.png) | ### Cyberpunk 主题 | 展开模式 | 正常模式 | 紧凑模式 | 小组件模式 | 设置 | |----------|--------|---------|--------|----------| | ![展开模式](https://static.pigsec.cn/wp-content/uploads/repos/cas/ed/edec9b95069dc64e3f5d3e3284626df1b0116fdb1975441b64306c5d69b7f68b.png) | ![正常模式](https://static.pigsec.cn/wp-content/uploads/repos/cas/70/709e657ef086506b35cf2c1711ddd19b448e680f31f0bf9618720fdd1a794717.png) | ![紧凑模式](https://static.pigsec.cn/wp-content/uploads/repos/cas/da/dac771e683064ff797d59516e594fb6e4937b834a9a5322cdce2419b0594b234.png) | ![小组件模式](https://static.pigsec.cn/wp-content/uploads/repos/cas/61/61b1eeb0a915c745edd67b3e3aac2d3daeb517e096726dd7a272edbbb01a061f.png) | ![设置](https://static.pigsec.cn/wp-content/uploads/repos/cas/42/4250d572cc089447dbd6201c27eb5c9fb8137b0bb43fc0425f792642a750317e.png) | ### Light 主题 | 展开模式 | 正常模式 | 紧凑模式 | 小组件模式 | 设置 | |----------|--------|---------|--------|----------| | ![展开模式](https://static.pigsec.cn/wp-content/uploads/repos/cas/54/54c4e76f8045b6f81bf273d1770a6dc2684c2b7320d36af481c3c1323ca474e4.png) | ![正常模式](https://static.pigsec.cn/wp-content/uploads/repos/cas/53/533127b01bc40abf194e10a746206e501abfc0d3c3af8642d61a3a1327a64f7d.png) | ![紧凑模式](https://static.pigsec.cn/wp-content/uploads/repos/cas/e8/e87ae77db45fcd9667bfe35a8148982afa17b8248bac8145b795e3c6695982f7.png) | ![小组件模式](https://static.pigsec.cn/wp-content/uploads/repos/cas/67/67760a1202dda2edb1027b8877e6b9be5b2a4eface9dcf8a52dd64e55a722ce4.png) | ![设置](https://static.pigsec.cn/wp-content/uploads/repos/cas/a9/a92ad30e82003d9343a67e9459e1c8b4f11709c5ceab8573bd8b118b44e77853.png) | ### Matrix 主题 | 展开模式 | 正常模式 | 紧凑模式 | 小组件模式 | 设置 | |----------|--------|---------|--------|----------| | ![展开模式](https://static.pigsec.cn/wp-content/uploads/repos/cas/f8/f81514b69bf6c009123e2011feee29db33031b5975f0d48ea9d1d485c5431c5f.png) | ![正常模式](https://static.pigsec.cn/wp-content/uploads/repos/cas/7e/7e1f603fe2f8b127c1614f7c26ae4ded5aa3dc40db63153d56c18b1c266fd2f1.png) | ![紧凑模式](https://static.pigsec.cn/wp-content/uploads/repos/cas/34/34327007c31c2955e274bfe473e29dc08a499cf36c769c79c40eab5ba4e2368f.png) | ![小组件模式](https://static.pigsec.cn/wp-content/uploads/repos/cas/e0/e0caf512c764d7f42789ec5161cb7bfa6f71388fb7900baa504c1e68619efe9a.png) | ![设置](https://static.pigsec.cn/wp-content/uploads/repos/cas/80/80a1e6fa09fbe846e327e3a30382b747effcd74efc254b479ba7eea4d4a41cea.png) | ## 功能 - **实时连接表** —— 每个活跃的 TCP 连接(IPv4 **和** IPv6)以及观察到的 UDP 流(通过操作系统 UDP 套接字表归因于其所属进程),包含进程名、远程 IP、端口、国家/地区(启用地理信息时)以及 Authenticode 签名验证。QUIC (UDP/443) 和 DNS (UDP/53) 流有其各自的协议标签。 - **数据包捕获** —— 通过 Npcap 进行实时带宽监控(IPv4 和 IPv6,所有 IP 协议——ICMP 及其同类也会计算在内)。802.1Q VLAN 标记帧会被解包;IPv6 扩展头会被遍历。每个连接的字节计数器与显示界面解耦,因此刷新周期不会丢失传输中的增量。页眉提供实时迷你图。**默认关闭**混杂模式(可通过设置选择开启)。 - **DNS 日志记录** —— 捕获从网络上解析出的 DNS 查询和响应 (UDP/53),包含响应 IP、TTL 以及**每个查询的进程归因**(通过查询的源端口匹配)。域名 → IP 缓存是有界的(LRU,1万条记录);可见日志保留最近的 5,000 次查询。 - **威胁评分** —— 每个连接的 0-100 风险评分,综合考虑进程信任度(Authenticode 签名者、已知二进制文件白名单、安全配对规则)、流量比率、端口标准化程度以及托管服务提供商声誉关键字。 - **VirusTotal 集成(可选)** —— 在设置中粘贴 API key 以启用。针对任何威胁评分 ≥ 30 的连接,自动根据 VirusTotal 的文件声誉数据库扫描其**二进制文件** (SHA256);右键单击任何连接即可进行按需扫描。API key 在 `%APPDATA%/com.trustnowire.app/secrets.json` 中跨重启持久化保存,并且可以从设置中清除。 - **地理信息增强(可选)** —— 默认禁用。在设置 → 捕获引擎 中开启它,即可通过 HTTPS 使用 [ipinfo.io](https://ipinfo.io) 查询每个远程 IP 的国家/地区、组织和 ASN。一个 30 天的滚动速率限制器将查询上限设为 49,000 次(对免费层级安全),达到限制后会暂停一小时。 - **Windows Toast 通知** —— 当出现新的高严重性威胁(评分 ≥ 60)时发出可选的 Toast 警报;受信任的进程会被抑制,并且每个进程+目标只通知一次。 - **CSV / JSON 导出** —— 在设置中一键将当前连接表和 DNS 日志写入你的“下载”文件夹。 - **小组件模式** —— Win7 小工具风格的微型仪表板 (200x290),可一目了然地查看实时统计信息、带宽图和首要威胁。 - **系统托盘** —— 最小化到托盘并带有工具提示,左键单击恢复,右键单击菜单。隐藏时,UI 会完全暂停渲染(后端继续监控)。 - **单实例** —— 启动第二个副本会聚焦现有窗口,而不是争夺捕获句柄。 - **5 种主题** —— Iron Man、Stealth、Cyberpunk、Light、Matrix。 - **3 种显示模式** —— 紧凑、正常、展开。 - **无边框透明窗口** —— 自定义标题栏,可拖动,可选置顶。 - **管理员提权** —— 发布版本通过 UAC 清单自动请求管理员权限,以实现完全的网络可见性。 ## 系统要求 - Windows 10 或 11(64 位) - 已安装 [Npcap](https://npcap.com/)(数据包捕获必需) - 管理员权限(用于原始数据包捕获和完全的进程可见性) ## 从源代码构建 ### 前置条件 - [Rust](https://rustup.rs/) 1.77.2 或更高版本 - [Node.js](https://nodejs.org/) 18 或更高版本 - [Npcap SDK](https://npcap.com/#download) —— 解压至 `%USERPROFILE%\npcap-sdk\`(build.rs 会自动检测 `Lib\x64\wpcap.lib`) - 机器上已安装 Npcap 运行时 ### 构建 ``` cd trustnowire npm install npm run tauri build ``` MSI 安装程序、NSIS 安装程序 (.exe) 和独立可执行文件将位于 `src-tauri/target/release/bundle/` 中。 **代码签名。** LXB Studio 的官方发布版本通过 Azure Trusted Signing 进行签名。构建过程通过 `tauri.conf.json` 中的 `bundle.windows.signCommand` 进行配置,该配置会委派给 `LXB_SIGN_SCRIPT` 环境变量指向的任何脚本(传递 `-FilePath`、`-ProductName` 和 `-ProductUrl`)。如果未设置该变量——这对于贡献者来说是常态——该钩子将不执行任何操作,并且构建会生成未签名的产物,这对于本地测试来说没有问题。在发布机器上,`LXB_SIGN_SCRIPT` 指向一个签名包装器,该包装器使用 `AZURE_TENANT_ID`、`AZURE_CLIENT_ID` 和 `AZURE_CLIENT_SECRET` 自动对内部 exe、MSI 和 NSIS 安装程序进行签名。 ### 开发 ``` npm install npx tauri dev ``` 注意:`tauri dev` 在运行时没有管理员提权。某些功能(对 SYSTEM 进程的原始捕获)需要以管理员身份运行。 ## 可选设置 这两个选项都是可选的。没有任何这两者,应用程序也能完全正常运行——连接跟踪、DNS 日志、威胁评分、数据包捕获都会继续工作。 ### VirusTotal API Key 1. 在 [virustotal.com](https://www.virustotal.com/) 创建一个免费帐户,并从你的个人资料中复制 API key。 2. 打开 TrustNoWire → 设置 → VirusTotal 自动扫描,粘贴该 key,然后点击 **SAVE**。 3. 该 key 将持久化保存到 `%APPDATA%/com.trustnowire.app/secrets.json`,并在启动时重新加载。设置界面会显示“Key 已保存”,但绝不会将其值透露回前端;输入新值即可覆盖,或者使用 **CLEAR** 将其删除。 4. 自动扫描的速率限制为每分钟大约 4 次请求(对免费层级安全),并且仅针对威胁评分表上得分 ≥ 30 的连接触发。手动扫描(右键单击 → 使用 VirusTotal 扫描)可绕过自动扫描的速率限制。 ### 地理信息增强 默认禁用。要启用:设置 → 捕获引擎 → 切换“启用地理查询”。开启后,每个未缓存的远程 IP 都会通过 HTTPS 发送到 ipinfo.io。随时禁用即可返回完全离线操作;以前缓存的国家/组织数据仍然可用,但不会触发新的查询。 ### MaxMind GeoIP(离线替代方案 —— 功能门控) 如果你根本不想将 IP 传输给 ipinfo.io,MaxMind 的离线数据库可作为直接替代品(`geoip` Cargo feature flag 专为此保留;完整的集成已在路线图上): 1. 从 [MaxMind](https://dev.maxmind.com/geoip/geolite2-free-geolocation-data) 下载 GeoLite2-City.mmdb 和 GeoLite2-ASN.mmdb 2. 将它们放在应用程序数据目录中 3. 使用 `cargo build --features geoip` 构建(前端仍然使用相同的开关) ## 隐私 TrustNoWire 的构建前提是,你应该准确了解你的网络监控器如何处理你的数据。以下是完整的说明。 ### 网络捕获 (Npcap) 默认情况下,捕获引擎以**非混杂**模式打开选定的适配器:它仅查看到达和离开此机器的流量。混杂模式是“设置 → 捕获引擎”中的一个可选开关。当你在共享/Wi-Fi 网络上启用它时,捕获还会查看到达同一广播域中*其他*设备的流量——来自室友笔记本电脑的 DNS 查询可能会显示在 DNS 日志中,并且他们的带宽也会计入 IN/OUT 总量中。开关在你翻转之前就会明确说明这一点。在交换式/有线网络上,这种区别通常无关紧要(交换机不会将流量转发到非目标端口)。 捕获的 DNS 数据**仅存在于内存中**:一个有界的 LRU 映射表(≤ 10,000 条 IP→主机名记录)加上一个最新查询日志(≤ 5,000 条记录)。除非你明确使用“导出”按钮(会写入你自己的“下载”文件夹),否则任何内容都不会写入磁盘,并且任何内容都不会被传出本机。 ### 地理信息增强(可选,HTTPS) 默认禁用。在设置中启用后,每个未缓存的远程 IP 都会通过 HTTPS 发送到 `ipinfo.io`,以解析国家/地区、组织和 ASN。ipinfo.io 将看到你的机器连接到的远程 IP 列表。一个 30 天的滚动计数器将查询上限设为 49,000 次,并在达到限制后暂停一小时。 ### VirusTotal(可选,需要你的 API key) 在你将 key 粘贴到设置中之前处于禁用状态。一旦启用,被标记为有威胁的进程(评分 ≥ 30)将自动进行扫描:TrustNoWire 会读取该二进制文件,计算其 SHA256,并查询 `https://www.virustotal.com/api3/files/{hash}`。VirusTotal 会看到哈希值和你的 API key——**绝不会看到二进制文件本身**,绝不会看到你的 IP 级别的连接数据,也绝不会看到你联系的目标。你的 API key 在本地持久化(`%APPDATA%/com.trustnowire.app/secrets.json`),并且永远不会往返于前端。 ### 我们不做的事情 - **无遥测。** 没有分析调用。没有崩溃报告信标。没有首次运行时的“回报总部”行为。 - **无自动更新通道。** 更新是手动的——重新下载已签名的安装程序。 - **无广告,无跟踪像素,无第三方 SDK。** TrustNoWire 自身发起的唯一网络调用是上面记录的两个可选查询。你在连接列表中看到的其他所有内容都是由*你的其他应用程序*生成的流量,这正是其核心目的。 这两个可选的网络调用是任何数据离开你机器的唯一途径。你可以自己验证——这两个调用点分别位于 [src-tauri/src/intel/geoip.rs](src-tauri/src/intel/geoip.rs) 和 [src-tauri/src/intel/virustotal.rs](src-tauri/src/intel/virustotal.rs)。 ## 架构 ``` src-tauri/src/ analysis/ -- DNS parsing (with per-query process attribution), process resolution (sysinfo + WMI fallback), threat scoring. tls.rs is a stub (JA3 fingerprinting on the roadmap). capture/ -- Npcap packet capture (IPv4 + IPv6, VLAN unwrap, IPv6 extension headers). diff.rs queries the OS tables: TCP (IPv4 + IPv6) plus the UDP socket table used for process attribution and UDP row synthesis. etw.rs is a stub. intel/ -- GeoIP via ipinfo.io HTTPS, VirusTotal v3 client. asn.rs and reputation.rs are stubs (offline ASN + IP reputation feeds on the roadmap). models/ -- Connection, DnsEntry, ProcessInfo data structures commands.rs -- Tauri IPC command handlers, export, refresh pipeline state.rs -- Shared application state (atomic counters, LRU caches, connection table, traffic counters decoupled from display) lib.rs -- App setup, system tray, persistent-store init, event push, reverse-DNS worker, toast notifications, refresh-thread bootstrap src/ components/ -- React UI components (Header, ConnectionList, ThreatLog, etc.) hooks/ -- Event-subscription hooks (useConnections, useBandwidth, useDns) — backend pushes updates; no polling loops utils/ -- Threat flag labels, byte formatting, country codes themes/ -- 5 color themes ``` 有关每个版本的详细分析,请参阅 [CHANGELOG.md](CHANGELOG.md)。 ## 许可证 TrustNoWire 在 [Business Source License 1.1](LICENSE.md) 下提供源代码。 你可以出于个人用途阅读、审计和构建代码。该许可证将于 2030-02-09 转换为 MIT。有关完整条款,请参阅 LICENSE.md。 ## 作者 Win 10/11 exe/msi 安装程序 @[TrustNoWire](https://trustnowire.com/) 由 [LXB Studio LLC](https://lxb-studio.com/) 构建
标签:AMSI绕过, IP 地址批量处理, React, Syscalls, Tauri, Wildcard支持, 可视化界面, 威胁检测, 流量监控, 网络安全, 自定义脚本, 隐私保护