【AI面试临阵磨枪-94】Skill 安全:注入、越权、数据泄露、恶意代码、沙箱?

一、面试题目

请讲解 AI Agent Skill 层面的安全体系设计 ,重点防范:注入攻击、越权访问、数据泄露、恶意代码执行 ,以及沙箱隔离实现方案。

二、知识储备

1. 整体安全思路

Skill 是直接对接业务、可执行逻辑的单元,安全核心原则:

输入严格校验、权限前置拦截、运行环境隔离、数据最小化、操作可审计

2. 注入攻击防护(Prompt 注入 / SQL 注入)

风险

  • 用户恶意 Prompt 篡改 Skill 执行逻辑,越权执行、跳过校验
  • 参数带入数据库查询,导致 SQL 注入
  • 模型输出恶意指令,操控下游工具

防护手段

  1. 强参数校验:JSON Schema 严格校验类型、格式、长度、枚举,非法直接拦截
  2. Prompt 隔离:用户输入与系统指令严格隔离,不拼接原始用户文本直接执行
  3. 参数化查询:数据库全部使用预编译语句,禁止字符串拼接
  4. 白名单约束:Skill、工具、指令只能白名单内执行
  5. 敏感指令屏蔽:删除、批量操作、高危操作关键词拦截

3. 越权访问防护(水平越权、垂直越权)

风险

  • 水平越权:查别人订单、操作他人数据
  • 垂直越权:普通用户调用赔付、后台管理类 Skill

防护手段

  1. 三层权限强制校验
    • 租户级:tenant_id 全局过滤
    • 用户级:user_id 绑定本人数据
    • 功能级:高危 Skill(退款、赔付)单独鉴权
  1. 数据自动过滤:所有查询自动带上租户+用户条件,不依赖上层判断
  2. 高危操作二次审批:大额赔付、资金类操作人工复核
  3. 最小权限原则:Skill 只开放必要工具权限

4. 数据泄露防护

风险

日志打印手机号、身份证、订单隐私;上下文留存敏感信息;跨租户数据透出。

防护手段

  1. 敏感信息脱敏:手机号、身份证、地址日志脱敏
  2. 上下文裁剪:执行后自动清理敏感字段
  3. 传输加密:工具调用 HTTPS、内网加密传输
  4. 多租户数据物理/逻辑隔离,检索强制加租户过滤
  5. 禁止返回原始隐私数据,只返回业务结果

5. 恶意代码防护

风险

自定义 Skill 中写入恶意脚本、死循环、挖矿、批量删除数据、拒绝服务。

防护手段

  1. 禁止自定义代码执行:Skill 只允许配置化/编排,不开放原生代码
  2. 静态安全扫描:上架前扫描循环依赖、死循环、高危操作
  3. 超时熔断:最长执行时间限制,防止死循环卡死服务
  4. 资源配额:CPU、内存、IO 用量限制

6. 沙箱隔离(核心隔离手段)

目标

让每个 Skill 运行在独立沙箱,互不影响、防止逃逸、防止横向攻击

实现方案

  1. 轻量沙箱(企业级首选)
    • 进程级隔离:每个 Skill 独立进程
    • 容器沙箱:K8s 容器隔离,资源限制
  1. 逻辑沙箱
    • 权限沙箱:Skill 只能调用授权工具
    • 网络沙箱:禁止访问外部未知接口
  1. 运行时隔离
    • 独立上下文、独立存储、独立连接池
    • 禁止跨 Skill 内存访问

三、代码/架构伪代码

python 复制代码
class SecureBaseSkill:
    def __init__(self):
        self.sandbox = Sandbox()  # 沙箱实例
        self.auth = AuthService()

    def run(self, ctx):
        # 1. 注入防护:参数强校验
        self.validate_schema(ctx.params)
        # 2. 越权校验
        self.auth.check(ctx.user_id, ctx.tenant_id)
        # 3. 沙箱内执行
        with self.sandbox.limit(cpu=0.5, memory="256M", timeout=5):
            result = self.execute(ctx)
        # 4. 脱敏返回
        return self.desensitize(result)

四、破局之道(面试升华)

Skill 安全体系核心是四层防御

输入层防注入、权限层防越权、数据层防泄露、运行层用沙箱隔离恶意代码

通过前置校验、最小权限、沙箱隔离、全链路审计,让 Skill 既能灵活编排业务,又杜绝资损、越权、泄露等重大风险,是企业级 Agent 平台上线的硬性要求。

30 秒口述精简版

注入通过Schema强校验+参数化查询 防护;越权采用租户+用户+功能三层鉴权 ;数据泄露做脱敏+上下文裁剪 ;恶意代码通过静态扫描+超时熔断 ;最终通过沙箱隔离实现运行环境安全。

相关推荐
lhldsg2 分钟前
课程排课实战指南:从需求分析到系统落地全流程
数据库·数据挖掘·需求分析
ECT-OS-JiuHuaShan8 分钟前
共轭互逆链路论,彻底打击庸俗辩证法和不可知论
数据库·人工智能·算法·机器学习·数学建模
吴声子夜歌9 分钟前
Java面试——Flink原理及应用(二)
java·面试·flink
国科安芯12 分钟前
小卫星综合电子系统中RISC-V抗辐射MCU的功能安全与多接口集成架构分析
单片机·嵌入式硬件·安全·fpga开发·架构·risc-v
OpenCloudOS12 分钟前
高危|Linux 内核 XFS reflink 本地提权漏洞修复指南
linux·网络·安全
Sherotree15 分钟前
Agent 工程笔记①:工具调用失败时,先查哪三层
网络·数据库·笔记
深念Y17 分钟前
数据库层设计的取舍:ORM 便利性与手写 SQL 的安全性权衡
java·数据库·sql·golang·框架·语言·ome
XuCoder18 分钟前
你更新的数据明明还在内存里,可 MySQL 重启后凭什么没丢?
数据库
小江的记录本20 分钟前
【ORM 框架】MyBatis-Plus 核心特性、条件构造器、分页插件、乐观锁插件(附《思维导图》、《问题排查与实践清单》和《面试高频考点汇总》)
java·windows·spring boot·python·spring·面试·mybatis
clorinda21 分钟前
SQL 快速入门:题目单知识点精炼总结
java·数据库·sql