最近,随着OpenClaw“养龙虾”的爆火,AI不再是屏幕后的“对话者”,而是已经演变成了拥有手脚、能够自主决策的AI Agent(智能体)。然而,当AI Agent开始代你回邮件、管财务、规划行程时,其安全风险也随之浮现。在AI Agent进行资源调度与任务执行的过程中,不可避免地需要处理高价值、强敏感的数据。如何确保Agent的执行逻辑不被篡改、处理过程中的数据不被泄露、处理的结果可靠可信,都是Agent时代安全面临的挑战。本文分三步走,手把手介绍了鲲鹏AI Agent安全解决方案,展示了从鲲鹏机密虚机配置拉起,到OpenClaw高安部署,再到龙虾安全skills度量与证明的全流程,为鲲鹏开发者提供安全参考方案。
智算时代的“安全危机”Agent系统面临的安全挑战
在AI技术从“简单的对话框”向“自主决策的Agent(智能体)”进化的过程中,Agent被赋予了前所未有的权限:它们可以读取私密文档、调用系统API,甚至自主编写并执行代码。然而,这种能力的飞跃也带了巨大的安全风险,针对Agent的安全攻击也开始涌现。
OpenClaw爆火之后,网信办发布了Agent安全风险提示,OWASP也发布了Agent系统面临的Top 10安全威胁。结合多方观点,我们总结了Agent面临的四大核心安全风险:
提示词注入风险:提示词注入攻击是AI时代的新型攻击形式,攻击者在Agent与外部交互的数据中嵌入恶意指令,诱导Agent执行恶意操作。
数据泄露风险:在多Agent系统中,不同Agent之间往往共享计算资源,攻击者可以通过内存嗅探、非法跨域访问等手段窃取其他高价值Agent的核心模型参数与输入数据。
超高权限运行风险:以OpenClaw为代表的Agent通常拥有调用底层系统资源、访问内网数据库以及操控办公软件等高特权,增加了系统级的安全风险。从两个方面看,一方面是当Agent自身出现“误操作”时,可能带来恶劣的影响,如删除邮件,篡改关键信息等;另一方面当Agent被攻击时,很容易成为自动化的横向移动跳板。
供应链安全风险: 攻击者通过插件、技能包等向Agent植入恶意代码或者污染记忆文件植入恶意指令,使Agent执行有害行为。
鲲鹏新一代CCA机密计算架构
面对上述安全风险,鲲鹏下一代机密计算架构CCA通过在芯片层面引入全新的隔离与加密机制,将AI Agent的运行环境从“易受攻击的公共环境”搬进了“安全可信的保险箱”。
如图所示,鲲鹏CCA架构主要有三大安全机制增强:
硬件隔离的Realm动态管理机制
鲲鹏CCA架构中引入了一个超越传统TrustZone安全区(Secure)的概念——机密域(Realms),从而将系统通过硬件级强隔离分为了三个不同特权等级的分区:
普通区(normal)用以运行传统的系统软件和应用,如操作系统,Hypervisor等;
高安区(secure)用以部署专用的安全应用,提供密钥管理、加解密、安全存储、设备认证等服务,确保系统核心数据加密密钥的安全性;
机密区(Realm)根据客户需求灵活配置资源,动态拉起和销毁,极大提升了分布式推理服务器的资源利用率。把AI Agent的核心执行逻辑部署在Realm中,即便底层的Linux内核被攻破,攻击者也无法窥探或进入Realm内部。
内存加密技术
鲲鹏CCA架构采用国密SM4算法对属于Realm和Secure的内存空间进行硬件级高性能加密。即便是通过 FPGA 进行内存取证或冷启动攻击,攻击者抓取的也只能是毫无意义的乱码,无法提取保存在内存中的 Agent 的敏感私有知识库
可信远程证明
用户在向CCA中部署的Agent交付任务前,可以通过远程证明协议校验当前运行环境的完整性,以及验证用户定义的 Skills、插件的完整性,任何细微的代码篡改或投毒都会导致证明失败。
为“龙虾”穿上“防弹衣”:基于CCA构建机密Agent,软硬件结合保证Agent看得见、管得住、用得好
当OpenClaw的灵活性遇上鲲鹏CCA的坚固性,一套专为 AI Agent 设计的“纵深防御体系”应运而生。如图所示,鲲鹏AI Agent安全解决方案包含如下关键技术:
安全隔离:将Agent部署在机密计算环境中,防止外部攻击者获取Agent的敏感信息,并阻止恶意Agent横向攻击其他Agent实例以及Host。
可信授权:通过linux内核的eBPF等技术,实现Agent的细颗粒度动态权限管控,并结合安全沙箱,保证进程运行在容器中只能看到预定义的资源,防止恶意进程越狱,破坏宿主机OS。
记忆安全:Agent记忆存储按是否涉及用户隐私进行分类,隐私数据在私有存储空间加密存储,非隐私数据多Agent共享明文存储。结合高安域的高性能密钥管理服务,实现一Agent实例一密钥,最大可支持1000 Agent实例。
同时,结合openGauss数据库的闪回技术实现记忆和文件数据的秒级恢复与回滚,有效消减了因为Agent高权限带来的误操作风险。具体来说,就是将Agent的操作在直接写入文件系统前,先写入数据库,结合数据库闪回恢复功能,可以有选择性的撤销一个已提交事务的影响,将数据从人为不正确的操作中进行恢复。在采用闪回技术之前,只能通过备份恢复、PITR等手段找回已提交的数据库修改,恢复时长需要数分钟甚至数小时。采用闪回技术后,恢复已提交的数据库修改前的数据,只需要秒级,而且恢复时间和数据库大小无关。
远程证明:对机密虚机的运行环境以及运行在机密虚拟机中的Agent Skills完整性进行校验,并通过可视化的报告向用户提供安全性证明。一旦运行环境或者skills被篡改,则可以动态报警。
该方案的Demo视频及鲲鹏昇腾创享月AI Agent解决方案&安全主题演讲可观看下方视频进一步了解:
该完整方案计划分步骤开源开放,当前在已经发布的鲲鹏920新型号上支持了基于virtCCA的机密虚拟机能力和OpenClaw的机密部署。接下来,我们会介绍如何一步步在鲲鹏服务器上部署一个机密Agent。
机密龙虾部署流程
首先,服务器需加载TEE License使能TEE套件特性,在缺少TEE License情况下特性关闭,BIOS无法打开特性使能开关。在TEE License已导入的情况下,我们首先通过BIOS配置选项选择开启TEE特性并配置TEE安全内存大小。
配置TEE支持
Step 1:重启或上电服务器,登录BIOS配置选项
Step 2:在BIOS配置选项,进入“Advanced > Memory Configuration”配置菜单
Step 3:将“Channel Interleaving 3Way”选项配置为“Disabled”
Step 4:在BIOS配置选项中,进入“Security > TEE Configuration”配置菜单
Step 5:将“Support TEE”选项配置为“Enabled”
Step 6:根据业务场景需要配置TEE安全内存大小
说明:
Max Volume of Secure Memory:表示当前内存插法下NUMA均分时,允许配置的最大安全内存大小。
TEE Memory Size:表示选取目标安全内存大小。其中AUTO模式,不会考虑NUMA均分,会分配尽可能多的安全内存。
Step 7:按“F10”,保存、退出BIOS配置选项。
安装核心组件并配置环境变量
为构建一个安全的虚拟化环境,支持TEE的隔离执行和安全启动,需安装libvirt、QEMU、Host Kernel、EDK2、qcow2镜像一系列相关组件。具体安装过程和环境变量的配置可以参考:
https://www.hikunpeng.com/document/detail/zh/kunpengaiagent/bestpractice/aiagent-0084.html
配置机密虚拟机
Step 1:创建并编辑libvirt启动机密虚拟机的cvm.xml,编辑内容如下:
<domain type='kvm' xmlns:qemu="http://libvirt.org/schemas/domain/qemu/1.0"><name>cvm</name><memory unit='GiB'>8</memory><vcpu placement='static'>4</vcpu><cputune><vcpupin vcpu='0' cpuset='0'/><vcpupin vcpu='1' cpuset='1'/><vcpupin vcpu='2' cpuset='2'/><vcpupin vcpu='3' cpuset='3'/><emulatorpin cpuset='0-3'/></cputune><numatune><memnode cellid='0' mode='strict' nodeset='0'/></numatune><os><type arch='aarch64' machine='virt'>hvm</type><loader readonly='yes' type='rom'>/usr/share/edk2/aarch64/QEMU_EFI.fd</loader><boot dev='hd'/></os><features><acpi/><gic version='3'/></features><cpu mode='host-passthrough'><topology sockets='1' dies='1' clusters='1' cores='4' threads='1'/><numa><cell id='0' cpus='0-3' memory='8' unit='GiB'/></numa></cpu><on_poweroff>destroy</on_poweroff><on_reboot>restart</on_reboot><on_crash>destroy</on_crash><devices><emulator>/usr/libexec/qemu-kvm</emulator><console type='pty'/><disk type='file' device='disk' model='virtio-non-transitional'><driver name='qemu' type='qcow2' queues='2' cache='none' iommu='on'/><source file='/home/virsh/cvm/openEuler-24.03-SP2-cvm-aarch64.qcow2'/><target dev='vda' bus='virtio'/></disk><interface type='bridge'><source bridge='virbr0'/><driver iommu='on' event_idx='off'/><model type='virtio-non-transitional'/></interface></devices><launchSecurity type='cvm'/><qemu:commandline><qemu:arg value='-object'/><qemu:arg value='tmm-guest,id=tmm0,sve-vector-length=128,num-pmu-counters=1'/></qemu:commandline></domain>
Step 2:启动前机密虚拟机的libvirt配置xml文件内容应修改vda disk的source file路径为qcow2文件系统绝对路径。
Step 3:使用virsh define定义虚拟机配置。
virsh define cvm.xmlStep 4:执行以下命令启动机密虚拟机
virsh start cvmStep 5:执行以下命令进入机密虚拟机串口
virsh console cvm在机密虚机中部署OpenClaw
Step 1:构建LUKS加密盘,作为记忆存储区域。可自定义加密盘大小
qemu-img create -f qcow2 disk.qcow2 10GStep 2:将镜像写入机密虚拟机启动配置xml
<devices><disk type='file' device='disk'><driver name='qemu' type='qcow2'/><source file='/path/to/disk.qcow2'/><target dev='vdb' bus='virtio'/><address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/></disk></devices>
Step 3:启动并登录机密虚机,安装加密工具,查看挂载镜像路径
安装加密工具并查看块设备
yum install cryptsetuplsblk
使用cryptsetup将磁盘格式化为指定加密模式的磁盘,并映射到“/dev/mapper”下作为DM设备,后续读写均通过该设备进行(设置口令要求至少8位)。
盘符需根据实际情况选择,防止系统盘被破坏(确认命令请输入大写YES)。
cryptsetup luksFormat /dev/vda -c sm4-xts-plain64 --key-size 256 --hash sm3解密并映射磁盘,根据提示输入口令,映射成功后可通过lsblk查看设备信息。
cryptsetup luksOpen /dev/vda crypt1制作文件系统,并挂载到指定目录。
mkfs.ext4 /dev/mapper/crypt1 #首次部署使用该命令,后续可不执行,以免数据丢失mkdir -p /mnt/cryptmount /dev/mapper/crypt1 /mnt/crypt
使用完毕后解除挂载,并使用cryptsetup关闭加密磁盘。
umount /mnt/crypt/cryptsetup close crypt
Step 4:部署并安装依赖
更新njs22的源。当前openEuler镜像不支持在njs安装脚本中进行版本检查,需注释相关代码。虚拟机内使用wget时,可能因证书问题导致下载失败,建议在执行wget命令前执行以下命令。
echo "check_certificate=off" > ~/.wgetrcwget https://rpm.nodesource.com/setup_22.xsed -i '35,37s/^/#/' setup_22.xbash setup_22.x
安装依赖。
yum install -y git cmakeyum install -y nsolidwget https://rpm.nodesource.com/pub_22.x/nodistro/nsolid/aarch64/nsolid-22.22.0-ns6.2.0.aarch64.rpmrpm -ivh nsolid-22.22.0-ns6.2.0.aarch64.rpm
安装完成后,可通过以下命令进行验证。
node -v安装pnpm。
npm install -g pnpm如果安装过程中出现如下报错,可以执行以下命令关闭证书检验。
npm config set strict-ssl falseStep 5:安装并配置OpenClaw
配置环境变量。
export OPENCLAW_STATE_DIR="/mnr/crypt/.openclaw"export OPENCLAW_CONFIG_PATH="/mnt/crypt/.openclaw/openclaw.json"
安装OpenClaw。
cd<work dir>git clone https://github.com/openclaw/openclaw.gitcd openclawpnpm install
说明:
如果不希望验证,可以配置git config --global http.sslVerify false。
pnpm setupsource /root/.bashrcpnpm link --globalpnpm run build
查看OpenClaw版本。
openclaw -v运行机密龙虾
Step 1:初次运行OpenClaw需要setup。
openclaw setup --workspace /mnt/crypt/.openclaw/workspaceStep 2:修改“.bashrc”文件,在文件中加入如下环境变量:
export OPENCLAW_STATE_DIR="/mnt/crypt/.openclaw"export OPENCLAW_CONFIG_PATH="/mnt/crypt/.openclaw/openclaw.json"
修改后,导入配置并再次setup:
source ~/.bashrcopenclaw setup --workspace /mnt/crypt/.openclaw/workspace
Step 3:运行Gateway
openclaw gatewayStep 4:拉起机密OpenClaw,开始互动
openclaw tui总结与展望
AI时代,Agent系统的规模应用带来了巨大的机会,也带来了严峻的安全挑战,如何通过新的安全架构保证Agent系统的安全可信将是未来一段时间安全研究的重中之重。
本文介绍了华为鲲鹏AI Agent安全解决方案的整体思路,并在鲲鹏已发布产品和开源代码上展示了如何结合鲲鹏机密计算部署OpenClaw实现“机密龙虾”。未来我们会持续在AI和Agent安全上深耕,并逐渐开源开放更多的安全方案。