SuperAPI AI 工具集

aegis-memory-safety

编程与开发

查看项目

更新于 10-15 17:19

技能介绍

用途:对仓库中的原生代码进行内存安全审计,按攻击者可触达性排序,逐一审查解析器、拷贝点、分配点和生命周期转换,确认或排除候选缺陷。每个汇聚点回答同一问题:谁控制长度,长度是否与分配匹配。

适用语言:C(.c/.h)、C++(.cc/.cpp/.cxx/.hpp)、Objective-C/Objective-C++(.m/.mm);Rust 仅限 unsafe 块、unsafe fn、unsafe impl、extern "C" FFI 表面与 -sys 绑定 crate,以及这些语言之间的混合边界。

覆盖缺陷类别:缓冲区溢出(CWE-120/121/122)、越界读取(CWE-125)、来自不可信字段的索引运算、整数截断与符号混淆及大小计算溢出(CWE-190)、释放后使用(CWE-416)、双重释放(CWE-415)、悬垂指针(含容器重分配失效)、源自不可信输入的 NULL 解引用(CWE-476)、printf 系列格式串缺陷(CWE-134)、未初始化或部分初始化内存使用(CWE-457)、FFI 边界的长度单位与所有权错误。

明确不在范围内:正则/引擎级资源耗尽(归 DOS 模块)、解释型语言注入(INJECTION)、原生二进制中的密钥(SECRETS)、已知存在漏洞的 vendored 依赖版本审计(A06:2021)。

使用方式:先枚举原生代码文件并记录构建系统,再按网络/消息解析器、文件格式导入导出、IPC 处理器、被特权进程使用的共享库、内部工具的顺序排序,对每个拷贝、索引、分配大小、格式串和释放点应用审计问题阶梯,用正则扫描后人工分类每个命中,判定危险参数是否受攻击者影响或边界是否错误。报告需给出汇聚点位置、长度来源、缺失或不足的边界检查、最坏情况下的攻击者可控值,使维护者可读两三个文件即验证。

限制与注意:缓解措施不等于修复,栈 canary 仅事后检测、ASLR 可被信息泄露绕过、DEP/NX 可被 ROP 绕过,因此不因二进制已加固而降级发现。Rust 中 mem::uninitialized 始终是发现项,跨 extern "C" 边界的 panic 视为发现。Objective-C 桥接关注 C 字符串处理,NSRegularExpression 用户模式属资源耗尽并交叉引用 DOS 模块。缺失事实:本条目未提供具体命令输出、版本要求或收费标准。