╭─── Claude Code v2.1.139 ─────────────────────────────────────────────────────╮ │ │ Tips for getting started │ │ Welcome back! │ Run /init to create a CLAUDE.md f… │ │ │ ────────────────────────────────── │ │ ▐▛███▜▌ │ What's new │ │ ▝▜█████▛▘ │ Added agent view (Research Previe… │ │ ▘▘ ▝▝ │ Added `/goal` command: set a comp… │ │ │ Added `/scroll-speed` command to … │ │ glm-5.1 · API Usage Billing │ /release-notes for more │ │ ~/ai/reverse/h100-claude-glm-ghidra │ │ ╰──────────────────────────────────────────────────────────────────────────────╯ ❯ translate ARCHITECTURE.md and SECURITY_ANALYSIS.md into simplify chinese ● Let me read both files first. Read 2 files (ctrl+o to expand) ● 现在我将创建这两个翻译文件。考虑到它们的大小,我将并行写入这两个文件。 ⎿  Error writing file ⎿  Error writing file ● 让我来写入这两个翻译文件。 ⎿  Error writing file ⎿  Error writing file ⎿  Error writing file ● 我将分部分写入翻译文件。从架构文档开始。 ⎿  Error writing file ⎿  Error writing file ⎿  Error writing file ⎿  Error writing file ⎿  Error writing file ● 我道歉遇到了这些错误——看起来工具调用格式有问题。让我正确地再试一次。 ⎿  Error writing file Listed 1 directory (ctrl+o to expand) ⎿  Interrupted · What should Claude do instead? ❯ 总结ARCHITECTURE.md和SECURITY_ANALYSIS.md,带着2个问题:1)对系统安全/AI等领 域是否有借鉴意义;2)NV等内核安全上是否可以看出什么特性。用纯文字 ● 总结 NVIDIA H100 LibOS内核是一个运行在GPU内部RISC-V微控制器上的微内核操作系统,从M 模式启动后委托至S模式运行。其核心设计围绕分区隔离展开:每个分区拥有独立地址空 间(Sv39页表隔离),任务间通过端口+穿梭子的IPC模型通信,DMA传输由GDMA引擎处理 。内存管理分五层,从物理页的伙伴分配器到虚拟地址空间,中间经过Slab对象池、红黑 树地址范围追踪和三级页表。调度采用线段树优先队列,支持抢占式定时器中断。 安全分析显示,该内核完全没有传统抗逆向混淆,但依赖硬件强制隔离(PMP、Sv39 MMU、GDMA权限)作为主要防护手段。最严重的漏洞是引用计数的非原子操作——KernelPor tClose和多个系统调用中,引用计数的读-减-写之间存在TOCTOU窗口,定时器中断可在其 间触发,导致双重释放和释放后使用。此外,SyscallPartitionConfig可将用户控制的64 位值写入全局页,而KernelInit在下次启动时读取该页,形成持久化攻击面。内核指针也 通过全局页泄漏,可绕过KASLR。ASID权限检查使用硬编码常量而非从句柄派生,存在权 限缺口。GDMA弹跳缓存在分区间共享且不清零,可造成跨分区数据泄漏。二进制中残留约 50条断言字符串和15条源文件路径,显著辅助了逆向工程。 --- 问题一:对系统安全与AI领域的借鉴意义 第一,GPU内核的安全模型对AI基础设施安全具有直接参考价值。H100的分区隔离设计本 质上是在GPU内部构建多租户隔离——当多个AI工作负载共享同一GPU时,这种硬件强制的地 址空间隔离比纯软件隔离可靠得多。但GDMA弹跳缓存的跨分区泄漏表明,共享资源通道( DMA、缓存)是多租户隔离中最容易出问题的环节,AI推理服务在设计多租户隔离时应特 别注意共享缓冲区的清零。 第二,引用计数的非原子操作是嵌入式/实时系统中的经典陷阱,对AI加速器固件开发有 警示意义。AI芯片内部微控制器的中断延迟通常是确定性的(H100为150万周期),这反 而使竞态窗口可预测、可利用。AI芯片固件开发者应意识到:确定性时序不等于安全,反 而可能使攻击更精确。 第三,全局页的持久化攻击路径对AI训练集群有实际威胁。如果攻击者能通过某个容器或 工作负载获得分区配置句柄,写入全局页的恶意数据可在GPU重启后仍被内核读取,实现 持久化驻留。这意味着AI基础设施的安全模型必须将GPU固件状态纳入可信计算基的考量 。 第四,断言字符串的泄漏提醒AI系统开发者:生产固件中的调试信息是双刃剑。虽然对调 试有帮助,但它暴露了内部设计意图和变量命名,大幅降低了攻击者的逆向成本。AI芯片 的量产固件应剥离或混淆这类信息。 --- 问题二:从NVIDIA内核安全上可观察到的特性 第一,NVIDIA的安全哲学是"硬件可信,软件从简"。内核几乎不使用软件层面的混淆或防 御,而是将安全托付给硬件机制——PMP寄存器限制内存访问、Sv39 MMU实现地址空间隔离、GDMA引擎验证传输权限。这种设计在硬件信任链完整时是高效的 ,但一旦攻击者获得M模式访问(例如通过JTAG或引导ROM漏洞),所有软件保护均失效。 这说明NVIDIA假设硬件信任链不可突破,这是一种典型的封闭生态安全假设。 第二,内核表现出明显的"功能优先于安全"特征。非原子引用计数出现在至少9个位置, 且涉及所有系统调用处理器——这不是偶然遗漏,而是在单核上下文中开发者认为不会被抢 占(中断除外)的设计取舍。硬编码的ASID常量(如ASID==10才能调用低级映射)表明权 限检查是按需硬编码而非系统性设计的,容易产生权限缺口。 第三,全局页作为内核与引导加载程序的共享接口,成为最大的次级攻击面。用户可写的 偏移量在重启后仍被内核读取,这是典型的持久化攻击面。这反映出NVIDIA在启动加载接 口设计时优先考虑了灵活性而非最小权限。 第四,断言字符串和源文件路径的保留表明这是生产发布而非开发构建,但NVIDIA选择了 不剥离调试信息。这可能是有意为之——在GPU驱动闭源生态中,内部调试信息的泄漏对外 部攻击者的价值高于对内部开发者的价值,但NVIDIA可能认为封闭生态降低了这一风险。 第五,权限模型存在"后门式"旁路。ASID==5始终绕过0x491位掩码检查,各系统调用中硬 编码的ASID检查(3、7、8、10、0xe)与位掩码授权的ASID集合(0、2、5、8、10)不一 致,暗示权限系统经历了多次增量修改而非统一设计。这种不一致在大型闭源项目中很常 见,但每个缺口都是潜在攻击入口。 总体而言,NVIDIA的内核安全呈现"硬件强、软件弱"的特征,这在封闭GPU生态中是合理 的设计权衡,但也意味着其安全边界完全依赖于硬件不可突破这一前提——而这一前提在物 理接触或供应链攻击场景下并不成立。 ✻ Baked for 47s ❯ /export ⎿ Conversation copied to clipboard