LocalBrain 网络安全测试:关进隔离沙箱,默认跑不起来,授权了才放行

LocalBrain 网络安全测试:关进隔离沙箱,默认跑不起来,授权了才放行

2026/10/0310 分钟
分类:技术分享
标签:#AI#本地部署#自制软件#LocalBrain#网络安全

摘要 LocalBrain 新增授权目标的主动网络测试:只做连接和响应头两类低影响检查,关进按构造零出口的隔离沙箱;执行默认禁用,本地靶场反向验证五项全过才放行,隔离一离线就自动落锁。全程点鼠标,不用碰终端。 2026-10-03·黑粉科技

LocalBrain 网络安全测试:关进隔离沙箱,默认跑不起来,授权了才放行

这两天我给 LocalBrain 加了一个我自己都犹豫要不要做的功能:对授权目标做主动网络测试。先把结论放前面——它默认是跑不起来的,而且我花在「让它跑不起来」上的功夫,比花在「让它能跑」上的多得多。

一个本地 AI 工具箱,为什么要碰网络测试这种听起来就危险的东西?因为我自己有需要:手上有几台自己的机器和服务,想顺手确认某个端口开没开、某个服务回的响应头对不对。但只要这类能力一旦接进一个能被对话驱动的工具里,第一反应就该是警惕——万一模型自己发起呢?万一指到了不该指的地址呢?万一它顺着网络摸到我本机的别的东西呢?这篇就讲我怎么把这三个「万一」一个个堵死。

先说它到底能做什么,不能做什么

第二阶段(我把网络安全分成两个阶段,待会儿说)能做的,只有两类低影响检查:连接检查(某个 IP 的某个端口通不通)和 HTTP 响应头检查(拿回响应头看看)。就这两样。不是全功能扫描器,不扫端口段,不发攻击载荷,不做任何有破坏性的事。

能测的目标也被卡得很死:必须是单个明确的 IP——不接受域名、不接受网段、不接受通配符,连 IPv4 映射地址这种绕过写法都拒掉;一次最多 8 个端口;有效期 1 到 60 分钟;最多同时挂 8 条授权;而且全部只存在内存里,退出应用就没了。要测本机或内网,还得单独勾一个授权,不勾就连 127.0.0.1 都指不了。

这些限制不是建议,是代码里的硬门槛,填错直接拒绝。

第一个「万一」:模型会不会自己发起?

不会。这一条是地基。

整套第二阶段的所有操作——建授权、跑验证、运行测试——全是设置界面里你自己点的按钮,一个都没注册成模型可以调用的工具。模型在对话里再怎么说「我帮你测一下」,它也调不到这些命令,因为这些命令根本不在它的工具表里。建授权要你亲手勾「我确认拥有对该目标的测试授权」,每次运行也要你再确认一次。

把「能不能测」从「工具愿不愿意」挪成「人授没授权」,这是我做任何危险能力时的第一条线。

第二个「万一」:会不会指到不该指的地方、摸到本机别的东西?

这是最花功夫的一块,我换了两种思路才做对。

测试得在一个隔离环境里跑,我选了 Colima 加 Docker——起一台最小的专用 Linux 虚拟机(2 核 2G,--mount none 不挂我任何一个本机目录),LocalBrain 只用这台专用实例,不碰你机器上别的 docker。

一开始我想得挺自然:让测试容器能上网,然后用防火墙规则「只放行授权的那个 IP 和端口,其余全丢」。结果在 Docker 29 上翻了车——它把内部的 iptables 链整个重写了,我加的放行规则命中计数是 0,连授权端口都连不上。靠和 docker 抢防火墙链,既不可靠又会随它版本变动而失效。

后来我换了个根本思路:不做「允许大部分、禁止一部分」,而是「默认什么都到不了,只开一条缝」。 每个测试任务起一张 docker 的 --internal 网络——这种网络里的容器,我实测过,连默认路由都没有,跨网、公网全部连不上(nc 探测一律超时失败)。出口为零不是我用规则堵出来的,是 docker 的构造保证。

那它怎么还能测到授权目标?唯一的那条缝,是每个任务配一个只会往授权目标转发的小代理。测试容器只连得到这个代理,而且它自始至终不知道真实目标的 IP 是什么——它只往代理打,代理只往授权地址转。代理和测试跑在两个不同的容器里:测试容器能跑探测但哪儿都去不了,代理有出口但只会拨那一个地址。两个容器都丢光权限、只读文件系统、非 root 运行、限死内存和进程数、不挂任何本机目录。

一句话:就算测试逻辑想干点别的,它在那张网里压根没有路。

每任务一张 --internal 网络,出口为零;唯一出口是只拨授权目标的代理。这张图说明「默认什么都到不了,只开一条缝」的构造性隔离

第三个「万一」:我怎么知道这套隔离是真成立,不是我以为成立?

这是我最在意的一点。安全功能最怕的就是「看起来关着,其实有缝」。所以我没让它默认能跑,而是加了一道本地靶场反向验证:点一下,程序自己起一个一次性的靶场,然后用真实的测试链路去撞五件事——

  1. 授权的目标,能不能经代理正常测到?(要能)
  2. 同一个目标上没授权的端口,拦不拦?(要拦)
  3. 绕过代理直接连目标,有没有路?(要没有)
  4. 连公网,通不通?(要不通)
  5. 点停止,任务的容器和网络拆不拆得干净?(要拆得干净)

五件事全过,程序才会写下一条验证记录,执行才被放开。我这台机器上实测跑完整套大概 4 秒多,五项全过。只要隔离环境离线、或者镜像缺了、或者没有这条验证记录,执行就自动回到禁用——我管这个叫 fail-closed:出了任何岔子,它倒向「关」,不倒向「开」。

验证完我顺手停掉了隔离虚拟机,面板立刻就显示「隔离环境离线 · 执行已禁用」了,这就是我要的效果:隔离一走,能力自动落锁。

界面:一个「网络安全」板块,两个选项卡,全程点鼠标

功能做完,界面我按「一看名字就知道干什么」来收:设置的系统访问里只留一个「网络安全」板块,里面两个选项卡,按功能命名——

  • 工作区安全审查:只读地看你授权的那个工作区的代码、依赖、配置,不碰网络。这个早就有了。
  • 主动网络测试:就是上面讲的这套。

名字直接说功能,不再叫「第几阶段」。更要紧的是全程不用碰终端:主动网络测试里有个「一键开启」按钮,点一下就自动把隔离环境起起来、拉好镜像、再跑一遍本地靶场反向验证;也可以单独点「启动隔离环境 / 停止隔离环境」。没通过验证时,它老老实实显示「执行已禁用」,不再丢给你一条要去终端敲的命令。

设置 → 系统访问 → 网络安全:一个板块两个选项卡(工作区安全审查 / 主动网络测试),一键开启按钮会自动起隔离环境、跑反向验证,不用碰终端

老实交代边界

  • 这套隔离和反向验证,目前只在我的 Mac 上实测通过。Windows 和 Linux 的安装包里有同一个功能,但隔离没在那两端实测过——好在它同样是 fail-closed,那两端也得各自在本机跑过反向验证才会放开执行。
  • 只有连接检查和响应头两类低影响检查,不是扫描器。
  • Linux 版本本身还是预览支持。
  • 隔离环境要你本机装 Docker/Colima,默认不随应用装。
  • 测试结果是「工具发现」,没经你人工复核不等于「已验证的结论」——这行字我直接写在了运行输出下面。

做这个功能最大的体会是:给一个能被对话驱动的工具加危险能力,真正的工作量不在「实现功能」,而在「把它关进一个就算想作恶也没有路的盒子里,并且能证明这个盒子是真的」。能跑,只花了我一小部分精力;让它默认跑不起来、而且证明得了跑不起来,才是大头。


🧰 我做的工具

这些工具都由我持续维护。预览版会明确标注,下载、更新和已知边界以发行页为准。

信息:黑粉盒子 HyphenBox 状态: 正式迭代

免费大模型 API 雷达:持续复测可用性,本地统一接口,Key 只存本机

下载与更新

信息:方寸智匣 LocalBrain 状态: 正式迭代

本地模型的多模态 MCP 工具箱:TTS / Whisper / 视频生成一站接入

下载与更新

信息:ScreenLex 光影词库 状态: 正式迭代

看美剧顺手把生词背了,Mac/Windows 双平台,免费

下载与更新

信息:黑粉录屏 HyphenScreen 状态: 正式迭代

录屏 + 智能剪辑一体:达芬奇式时间线、自动打码、导出前成片体检,免费

下载与更新


引用:黑粉科技 让AI成为你的超能力 本地部署 · 免费白嫖 · 自制软件 https://hyphentech.top

分享到:

留言

正在加载留言…

返回首页