安全模型

iLang 是一种指令格式,不是绕过授权的手段。所有危险操作都要有宿主运行时的确认、权限检查和审计日志。

核心原则

iLang 是一种指令格式,不是绕过授权的手段。

iLang 把交给 Agent 的指令写成结构化的格式,但不授予 Agent 执行的权限。所有危险操作都要有宿主运行时的确认、权限检查和审计日志。

动词风险分级

安全动词(没有副作用)

这些动词读取、分析或格式化数据,不改变外部状态。

动词风险原因
READ, GET, LIST, STRM安全只读访问
FMT, CONV, SPLIT, MERGE, MAP, FILT, SORT, DEDU安全在内存里转换
SCAN, MTCH, CNT, STAT, EVAL, SCOR, RANK安全分析,不改变状态
OUT, DISP, EXPT, PRNT, LOG安全输出给用户
HELP, DESC, INTR, NOOP安全只提供信息

受控动词(需要确认)

这些动词会修改文件、发送数据或改变外部状态。宿主运行时必须在执行前要求用户确认。

动词风险必要防护
WRIT受控写入前确认文件路径和内容
MOVE受控确认来源和目标
COPY受控确认目标不会被覆盖
SEND受控确认收件人和内容
SYNC受控确认同步方向和范围
CACH受控确认缓存的存放位置
SAVE受控确认状态检查点的存放位置

危险动词(需要明确授权)

这些动词能造成数据丢失、执行任意代码,或者改动生产系统。宿主运行时必须强制落实权限检查、试运行模式、沙箱执行和审计日志。

动词风险必要防护措施
DEL危险用户确认 + 试运行预览 + 审计日志
RUN危险沙箱执行 + 命令预览 + 用户批准
DPLO危险确认目标环境 + 回滚方案 + 审计日志

运行时要求

任何执行 iLang 指令的运行时,都必须实现下面这些防护:

要求说明
权限检查执行受控或危险动词之前,核实 Agent 对目标资源有授权
用户确认对受控和危险动词,先展示将要发生什么,再要求用户明确批准
试运行模式让用户不执行就能预览一条链的效果
沙箱执行RUN 这样的危险动词,默认必须在隔离环境里执行
审计日志每一次受控和危险动词的执行,都必须记录时间戳、动词、目标、修饰符和批准它的用户
宿主策略优先不管 iLang 指令怎么写,宿主系统都可以限制或拦截任何动词

iLang 不做什么

iLang 不会说明
授予权限iLang 把意图写成结构化指令,权限由宿主运行时把关。
绕过安全层行为定义(::GENE{})在模型已有的安全约束之内起作用。
直接执行代码[RUN|cmd=...] 是交给运行时的指令,不是直接执行代码。
推翻宿主策略如果宿主拦截 DEL,任何 iLang 指令都推翻不了。

报告安全问题

如果你发现 iLang 规范或任何 iLang 工具有安全问题,请通过 GitHub 安全公告报告。