
DeepBot安全机制深度剖析路径白名单如何守住AI Agent的系统安全底线【免费下载链接】deepbotDeepBot is a system-level AI assistant built for both personal productivity and enterprise workflows — one-click setup, seamless experience, and native Feishu integration.项目地址: https://gitcode.com/gh_mirrors/de/deepbotDeepBot 是一款系统级 AI 助手支持一键配置、飞书原生集成与个人/企业工作流自动化。但 AI Agent 拥有读写文件、执行命令的真实系统权限如何防止它越界访问敏感数据DeepBot 用一套路径白名单机制从文件系统、命令执行、敏感文件三个层面守住系统安全底线。为什么 AI Agent 需要安全边界AI Agent 的强大之处在于手它能读取文件、修改代码、运行 shell 命令。但这也意味着一个提示词攻击Prompt Injection就可能诱使它去读取你的 API Key、删除重要文件。DeepBot 的设计哲学很清晰不信任模型的自觉只信任代码层面的硬拦截。安全逻辑不写在提示词里避免被模型说服而是作为工具调用前的必经关卡强制执行。这套机制的核心入口是路径安全工具模块path-security.ts其中的isPathAllowed函数是所有文件访问的总闸门。第一道防线路径白名单 —— 只允许点名的目录白名单机制的核心思想默认拒绝例外放行。系统预先枚举所有允许访问的目录任何不在名单内的路径直接拒绝。白名单包含哪些目录通过 getAllowedDirectories 可以看到允许的目录包括工作目录用户在设置中配置的workspaceDirs主战场数据目录Electron 模式下的~/.deepbotDocker 模式下的/data/db功能目录脚本目录、Skill 目录、图片生成目录、记忆目录、会话目录系统临时目录跨平台兼容的/tmp、/var/tmp、WindowsTEMP等匹配时还做了两个关键细节防止经典绕过手法路径规范化先展开~再path.resolvepath.normalize消除../../相对路径穿越分隔符结尾匹配目录名强制以路径分隔符结尾再比较避免/data/workspace被误匹配到/data/workspace-other这类前缀陷阱敏感文件黑名单白名单目录内的禁区即使路径落在允许目录内这些文件也一律禁止访问SENSITIVE_FILE_PATTERNS文件保护原因system-config.db系统配置数据库含 API Keysystem-config.db-wal/shmSQLite 日志文件同样泄露密钥scheduled-tasks.db定时任务数据库.env环境变量文件常见密钥存放地这是典型的双保险设计白名单管门黑名单管房间。第二道防线工具调用前的统一拦截钩子真正精彩的部分在 agent-initializer.ts 的createBeforeToolCall钩子。每次工具调用执行前都会经过这道关卡分 Tab 动态构建当前会话的允许目录列表。文件工具read / write / edit 逐一检查read、write、edit工具调用时args.path必须落在允许目录内否则返回{ block: true }并附完整原因说明路径检查逻辑文件工具本身的包装层 file-tool.ts 也保留了安全包装位形成双层防御写入内容检查堵住脚本间接读取的口子一个容易被忽略的绕过手法让 Agent 写一个脚本在脚本里读取敏感数据库。DeepBot 对write/edit的内容做扫描——只要内容中出现system-config.db等敏感文件名直接拦截内容安全检查。bash 命令提取路径参数逐个校验命令执行是风险最高的入口。DeepBot 的做法是外科手术式解析命令路径检查敏感文件名全命令扫描不管路径怎么拼接命令中出现敏感数据库文件名就拦截引号内容剥离先移除引号内的字符串避免误伤数据内容文件操作命令提取用正则提取cp/mv/rm/cat/ls/find/grep/python等命令的路径参数逐个规范化后比对白名单重定向检查和的写入目标同样必须落在白名单内系统路径豁免/dev/null、/proc/、/sys/等系统路径有专门白名单不影响正常使用Docker 模式更严格的强制边界在 Docker 容器中运行时白名单直接收紧为/data/和/tmp/前缀Docker 限制把爆炸半径限制在容器数据卷内。第三道防线危险命令黑名单与交互命令拦截路径白名单管能碰哪里命令黑名单管能做啥。exec-tool.ts 内置了跨平台危险命令黑名单覆盖毁灭性删除rm -rf /、rm -rf ~、Windowsdel /f /s /q系列磁盘覆盖mkfs、dd if/dev/zero、format c:系统关机重启shutdown、reboot、halt等Fork 炸弹与注册表破坏类命令判定逻辑在 isDangerousCommand命令执行前先过这一关。另外exec-blocking-check.ts 会拦截vim、ssh、裸python/nodeREPL 等交互式命令——Agent 无法应答交互输入卡住比出错更糟。这类命令会被拦截并给出替代方案提示。第四道防线智能客服 Tab 的安全沙箱对接真实业务的场景需要更严格的约束。智能客服smart-kfTab 拥有独立的沙箱策略沙箱实现禁止 write / edit客服会话中 Agent 不可写文件Bash 命令白名单只允许ls、grep、python等约 30 个只读/计算类命令禁止子 shell 语法$()和反引号会被直接拦截防止用命令替换绕过白名单这体现了最小权限原则不同业务场景授予不同量级的权限。普通用户如何配置安全边界安全机制的配置入口就在设置面板中打开系统设置 → 工作区配置指定你的工作目录——这是 AI 可以操作的主区域其余功能目录脚本、Skill、图片、记忆、会话由 DeepBot 默认管理无需手动干预相关配置项定义在 workspace-config.ts 中设置界面组件见 WorkspaceConfig.tsx当访问被拦截时Agent 会收到一条清晰的错误信息错误提示模板列出所有允许目录和调整建议——对模型友好也方便你排查问题。外部调用同样受保护gateway-adapter.ts 在处理文件类请求时同样执行isPathAllowed校验API 入口与本地入口共用同一套闸门。更多接入细节可参考 docs/external-api.md。小结一套纵深防御的完整闭环DeepBot 的安全机制可以概括为四层纵深防御层级机制解决的问题路径白名单目录级默认拒绝防止越界读取任意文件敏感文件黑名单文件名级禁止保护 API Key 等密钥数据命令安全危险命令 路径参数双重检查防止破坏性操作与间接绕过场景沙箱按 Tab 动态降权最小权限匹配业务场景核心源码地图安全工具 src/main/utils/path-security.ts、拦截钩子 src/main/agent-runtime/agent-initializer.ts、执行工具 src/main/tools/exec-tool.ts。对新手而言记住一句话即可DeepBot 的 AI 能力再强也跑不出你划定的目录圈。️【免费下载链接】deepbotDeepBot is a system-level AI assistant built for both personal productivity and enterprise workflows — one-click setup, seamless experience, and native Feishu integration.项目地址: https://gitcode.com/gh_mirrors/de/deepbot创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考