# iLang 安全模型：动词风险分级和运行时要求
Source: https://ilang.cn/security/

# 安全模型

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 安全公告](https://github.com/ilang-ai/ilang-spec/security/advisories/new)报告。

---

爱语言（I Language） · [掌媒科技有限公司](https://zhangmei.com) · © 2026

[鄂ICP备20005464号-25](https://beian.miit.gov.cn) | [鄂公网安备42018502008648号](https://beian.mps.gov.cn/#/query/webSearch?code=42018502008648)

MIT License · ilang:genesis:2026-03-04
