Netdef — 用 SOLO 为普通人打造零信任网络安全盾

# 【Hello AI 科技致善】Netdef — 用 SOLO 为普通人打造零信任网络安全盾

## ① 摘要

**Netdef(Network Definer)** 是一个面向普通 Windows 用户的零信任网络安全套件,开源免费(MIT许可),提供 4 种安全场景一键切换(家庭/办公/旅行/锁定)、Wail2Ban 入侵检测自动封禁、双界面 GUI 操作。使用 TRAE SOLO 在约 72 小时内完成从零到发布,安全审计 30 秒发现 15 个漏洞、2 小时全部修复。项目解决的核心问题:**普通人用不起、用不懂、用不上企业级安全防护,在公共 WiFi 下裸奔而不自知。**

**GitHub**https://github.com/yaozhen99/Netdef_Network-Definer

## ② 真实场景与需求

### 目标人群

每一个在公共网络下使用电脑的普通人——求职大学生、远程办公者、出差商务人士、咖啡厅常客。

### 痛点描述

你可能不知道:**每次连接公共 WiFi,你的电脑都在被扫描。**

- 在咖啡厅投简历时,攻击者通过 ARP 欺骗截获你的登录凭证

- 在图书馆视频面试时,端口扫描器正在探测你电脑的 445 端口(SMB)

- 在酒店 WiFi 处理工作时,WannaCry 类漏洞利用可能正在传播

- 你的招聘平台账号被盗,不仅丢失投递记录,更泄露身份证号、家庭住址

**一个真实场景**:大学生在星巴克用公共 WiFi 登录招聘网站,30 秒内她的电脑就可能被端口扫描器发现开放了 445 端口——而她完全不知道这一切正在发生。

### 现有做法为什么不够

| 现有方案 | 问题 |

|---------|------|

| 什么都不做(大多数人) | Windows 默认防火墙对公共网络防护不足,危险端口默认开放 |

| 购买商业安全软件 | 每年 $500+,功能臃肿,普通人负担不起也用不明白 |

| 找 Linux 开源工具 | fail2ban 等优秀工具只支持 Linux,Windows 用户无福消受 |

| 手动配置防火墙 | 需要懂 netsh 命令、知道哪些端口危险、理解零信任模型——门槛太高 |

**核心矛盾**:安全是刚需,但安全工具要么太贵、要么太复杂、要么不支持 Windows。

## ③ 作品介绍

**Netdef(Network Definer)** — Windows 个人网络安全套件

### 核心功能

| 功能 | 说明 | 场景价值 |

|------|------|---------|

| **零信任入站过滤** | 默认阻止所有入站,仅白名单 IP 允许 | 公共 WiFi 下别人无法扫描你的电脑 |

| **4 种安全配置一键切换** | 家庭 / 办公 / 旅行 / 锁定 | 从家到咖啡厅,一条命令切换防护级别 |

| **旅行模式端口阻止** | 阻止 SMB(445)/RDP(3389)/VNC(5900) 等危险端口 | 防止 WannaCry 类攻击和远程接管 |

| **Wail2Ban 入侵检测** | 监控暴力破解,逐级递增封禁(1h→5h→25h→5d→90d) | 自动封禁试图入侵的攻击者 IP |

| **异常检测告警** | 5 分钟内 >100 次连接丢弃时告警 | 及时发现正在被扫描攻击 |

| **双界面操作** | CLI 菜单 + HTML 桥接 GUI / WinForms GUI | 技术小白也能用 GUI 一键操作 |

### 三层纵深防御架构

```

第 1 层:网络配置(默认拒绝)—— 所有入站默认阻止,仅白名单 IP 允许

第 2 层:端口级控制(旅行模式)—— 阻止危险出站端口防止恶意软件外联

第 3 层:行为监控(Wail2Ban)—— 监控暴力破解,自动逐级封禁

```

### 界面展示

**中文 GUI 仪表板**

**英文 GUI 仪表板**(内置 i18n 系统,一键切换语言):

**家庭模式 — 防火墙规则设置**

**旅行模式 — 公共 WiFi 最高防护**(核心亮点功能):

**命令行启动界面**

**Wail2Ban 入侵检测日志**

### 项目信息

- **GitHub**https://github.com/yaozhen99/Netdef_Network-Definer

- **技术栈**:Batch + PowerShell(纯 Windows 原生,零第三方依赖)

- **许可**:MIT(完全免费开源)

- **版本**:v1.0.2(已通过安全审计,修复 15 个漏洞)

- **平台**:Windows 10/11 / Server 2019+

## ④ 用 SOLO 实现的过程

### 整体开发节奏

我将整个项目拆解为 6 个阶段,每个阶段都深度使用 TRAE SOLO:

| 阶段 | 任务 | SOLO 的角色 |

|------|------|-------------|

| Phase 0 | 项目定位与架构规划 | 分析竞品、定义目标用户、制定 6 阶段计划 |

| Phase 1 | 中文→英文全面转换 | 翻译所有代码注释、文档、UI 文本,修复编码问题 |

| Phase 2 | 核心功能开发 | 编写 Wail2Ban 引擎、旅行模式、INI 解析器 |

| Phase 3 | GUI 界面开发 | 设计 HTML 桥接 GUI + WinForms GUI,实现双向通信 |

| Phase 4 | **安全审计** :star: | 以安全专家视角审查代码,发现 15 个漏洞 |

| Phase 5 | 文档与发布准备 | 生成完整 README、CHANGELOG、测试报告 |

### SOLO 关键能力实录

#### :one: 安全审计 — 30 秒发现 15 个漏洞

发布前我让 SOLO 像安全专家一样审查代码。**30 秒内发现了 15 个我遗漏的问题**

- :red_circle: 严重 5 个:INI 配置注入漏洞、动态脚本代码注入、ExecutionPolicy Bypass、UAC 路径注入、关键路径缺错误处理

- :yellow_circle: 中等 7 个:IP 验证不足、临时文件未清理、静默失败隐藏 bug、防火墙规则匹配范围过宽等

- :green_circle: 低 3 个:日志级别不一致、边界情况处理缺失

**2 小时内全部修复**,独自完成需要 2-3 天。这是 SOLO 最让我震撼的时刻——它帮我看到了我自己看不到的盲区。

#### :two: 系统性 Bug 修复 — 9 项修复 14 步计划

v1.0.1 发布前,SOLO 帮我制定了详细的 14 步修复计划,逐一执行:

- **state.json 文件锁竞争** → Mutex + 原子写入(临时文件→重命名),带 3 次重试机制

- **Wail2Ban 多实例启动** → BAT 层 exit code 检测,阻止重复启动

- **INI 解析跨节键冲突** → 用 PowerShell 节感知解析器替换 findstr,每个键只在对应节内查找

- **HTML GUI 中英文一致化** → 默认语言改为英文,所有回退文本替换

- **真实 IP 泄露** → 替换为标准示例值

- **占位符文本** → LICENSE/README/CHANGELOG 全部替换

- **Netdef.bat 语法错误** → 修复缺少的 echo 命令

- **临时文件残留** → 启动时清理 netdef_*.ps1

SOLO 从计划书编写、文件备份、逐一修复、文档更新到版本记录,全程自动化执行,15 个文件变更 +1077/-179 行。

#### :three: i18n 国际化系统 — 从零到完整

GUI 原本只有中文,SOLO 帮我实现了完整的 i18n 系统:

- ****80+ 翻译键****覆盖所有 UI 文本(静态文本 + 动态状态 + 交互提示 + PS 消息)

- `data-i18n` 属性标记所有可翻译元素

- `t(key)` / `applyLang()` / `toggleLang()` 核心函数

- `localStorage` 持久化语言偏好,下次打开保持选择

- 顶栏 “EN”/“中” 一键切换按钮

- IE11 兼容(var 声明、Unicode 转义、JSON2 polyfill)

一次对话完成整个 i18n 架构,+412/-136 行变更。

#### :four: 架构重构 — BAT→PS1 逻辑分离

旅行模式 `outdoor-config.bat` 原本在批处理文件中动态生成 PowerShell 脚本,转义字符层层嵌套导致语法错误频发。SOLO 帮我完成了关键架构重构:

- 创建独立的 `outdoor-config.ps1`,将复杂 PS 逻辑从 BAT 中分离

- 创建独立的 `cleanup-rules.ps1`,同样分离

- BAT 层只负责参数传递和编排,PS1 层负责逻辑执行

- 彻底消除批处理转义地狱

同时修复了 `cleanup-rules.bat` 的括号嵌套问题(改用逐行追加),以及出站规则匹配范围过宽导致误删系统规则的问题(仅匹配 `Netdef_*`/`Wail2Ban_*` 前缀)。

#### :five: 安全漏洞修复细节

SOLO 发现并修复的关键安全漏洞:

| 漏洞 | 严重性 | 修复方案 |

|------|--------|---------|

| INI 配置注入 | :red_circle: 严重 | 环境变量 + 内联 PS 命令,消除代码注入风险 |

| ExecutionPolicy Bypass | :red_circle: 严重 | 全部改为 RemoteSigned,尊重组织策略 |

| UAC 路径注入 | :yellow_circle: 中等 | `%0` 替换为 `%~dpnx0`,防止路径展开攻击 |

| IP 格式未验证 | :yellow_circle: 中等 | Test-IpFormat/Test-ValidIp 验证后再传给 netsh |

| state.json 完整性 | :yellow_circle: 中等 | HMAC-SHA256 签名校验,旧格式自动迁移 |

| 规则匹配范围过宽 | :yellow_circle: 中等 | 仅匹配 Netdef_*/Wail2Ban_* 前缀,防止误删 |

| IE 注册表键泄漏 | :yellow_circle: 中等 | 退出时恢复原始 FEATURE_BROWSER_EMULATION 值 |

| 临时文件残留 | :yellow_circle: 中等 | 启动时清理 + 关键操作 ErrorAction Stop |

### 中间踩过的坑

1. **INI 配置注入漏洞**(最严重):最初 `lan-config.bat` 直接将 INI 值拼接到 PS1 脚本中,攻击者可以在 `setting.ini` 写入恶意 PowerShell 代码。SOLO 发现后改用环境变量方式,彻底消除代码注入风险

2. **Wail2Ban 文件锁竞争**:多个进程同时读写 `state.json` 导致"文件正在使用"错误。SOLO 建议使用 Mutex + 原子写入,带 3 次重试机制,彻底解决

3. **BAT 转义地狱**:`outdoor-config.bat` 在批处理中动态生成 PS1 脚本,foreach/if 的花括号被 BAT 解析器误读,导致"缺少语句体"错误。SOLO 帮我创建独立 PS1 文件,BAT 只做编排

4. **GUI 犀牛图片覆盖界面**:`transform: scale(2.0)` 导致图片放大 2 倍覆盖整个界面。SOLO 定位到问题,将缩放改为 1.0 并添加尺寸限制

5. **出站规则误删系统规则**:cleanup 脚本匹配了 `[Outbound] Block TCP/UDP` 格式的规则,但这些可能是系统或其他安全软件创建的。SOLO 缩窄匹配范围到 `Netdef_*`/`Wail2Ban_*` 前缀

## ⑤ 成果展示

### 最终产出

- **完整可运行的 Windows 网络安全套件**:4 种安全配置 + 入侵检测 + 双界面 GUI + i18n

- **开源代码仓库**https://github.com/yaozhen99/Netdef_Network-Definer

- **MIT 许可**:完全免费,任何人都可以使用和改进

### 性能数据

| 指标 | 数据 |

|------|------|

| 开发总耗时 | 约 72 小时(无 AI 估计 5+ 周) |

| AI 加速倍率 | 4.4x(安全审计 10x) |

| 安全漏洞修复 | 15 个(2 小时内) |

| 代码行数 | ~2000+ |

| 文档字数 | ~8000+ |

| 全功能测试 | 7 项全部通过 |

| Wail2Ban 内存占用 | ~40MB(相当于多开一个浏览器标签) |

| 防火墙延迟增加 | <1ms(内核层执行,无代理) |

### 使用演示

**场景:从家出发去咖啡厅**

```bash

# 在家时:家庭网络模式(标准防护)

.\Netdef.bat 1

# → 仅允许家庭设备通信,阻止外部入站

# 到咖啡厅时:一键切换旅行模式(最高防护)

.\Netdef.bat 2

# → 阻止 SMB/RDP/VNC 等危险端口

# → 启用 Wail2Ban 自动检测暴力破解

# → 5 分钟内 >100 次异常连接自动告警

# 回家后:一键恢复家庭模式

.\Netdef.bat 1

# → 安全配置随场景无缝切换

```

**GUI 操作**:不熟悉命令行的用户,可以通过菜单选项 [8] 启动图形界面,4 个颜色编码按钮(家庭绿 / 办公蓝 / 旅行橙 / 锁定灰)一键切换,实时显示防火墙和入侵检测状态。支持中英文一键切换。

### 社会价值

1. **经济普惠**:免费替代 $500+/年 的商业安全软件,让经济条件有限的人也能获得企业级防护

2. **降低门槛**:一键操作 + GUI 界面,不需要任何网络安全知识就能保护自己

3. **真实威胁防护**:针对公共 WiFi 真实攻击场景(邪恶双胞胎、ARP 欺骗、端口扫描、SMB 漏洞利用、恶意软件外联)

4. **开源透明**:MIT 许可,代码完全公开,任何人可以审查、信任、改进

5. **Windows 平台补位**:为 Windows 用户提供 Linux fail2ban 等效的入侵检测能力

### AI 开发故事

> “我让 TRAE SOLO 审计代码,30 秒发现了 15 个安全漏洞——包括我自己完全没意识到的 INI 配置注入风险。那一刻我真正理解了 AI 辅助开发的价值:不是替代你思考,而是帮你看到你看不到的盲区。2 小时修复所有问题,独自完成需要 2-3 天。整个项目 72 小时从零到发布,AI 加速了 4.4 倍,安全审计环节加速了 10 倍。”

**:high_voltage::heart: 和 TRAE SOLO 构建 | :house: 为真实的人而做,由真实的人制作**

**GitHub**https://github.com/yaozhen99/Netdef_Network-Definer

*如果这个工具帮助保护了你的网络安全,请给仓库加个星 :star: 帮助更多人发现 Netdef!*