SuperAPI AI 工具集

detecting-insecure-deserialization

编程与开发

查看项目

更新于 10-15 23:25

技能介绍

用途:该技能用于扫描源码树,发现默认不安全的反序列化 API 调用,对应 CWE-502 与 OWASP A08:2021。此类 API 在反序列化时会执行对象构造代码,若输入可被攻击者控制,反序列化即等同于代码执行。

主要能力:覆盖多语言高危 API,包括 Python 的 pickle.loads/load、dill.loads、yaml.load(无 Loader)、yaml.unsafe_load、shelve.open;Java 的 ObjectInputStream.readObject;PHP 的 unserialize;.NET 的 BinaryFormatter、NetDataContractSerializer、LosFormatter;Ruby 的 Marshal.load 与旧版 YAML.load;Node.js 的 node-serialize.unserialize 与 serialize-javascript reviver。多数标记为 CRITICAL,shelve 与部分 Node 场景为 HIGH。

使用方式:需 Python 3.9+ 与本地源码树。运行:python3 ${CLAUDE_PLUGIN_ROOT}/skills/detecting-insecure-deserialization/scripts/scan_deserialization.py /path/to/repo。支持 --output、--format、--min-severity、--include-tests、--languages 选项。输出 JSON/JSONL/Markdown,退出码 0/1/2。可用于 CI,例如对 Celery worker 目录执行 --min-severity high。

适用场景:审计使用 pickle 默认配置的队列、检查遗留代码中的不安全反序列化调用。

限制:扫描器可能将应用自身写入的私有缓存文件误报为 CRITICAL,需人工确认输入来源;修复方式依数据形态而定,可改用 json.loads、严格 schema 校验或带类型白名单的 HMAC 签名序列化,具体迁移见 references/PLAYBOOK.md。