#serialization

共收录 2 条相关安全情报。

← 返回所有主题
👥 作者: Justin Applegate, Andreas Kellas

Python原生的序列化协议pickle虽然功能强大,但存在已知的安全风险,尤其是在传输不可信数据或保存机器学习模型时。为了缓解风险,开发者通常会在反序列化时限制导入的模块,或使用静态和动态分析工具检测恶意负载。然而,这些方法依赖于对Pickle虚拟机(PVM)操作码的准确解释,而Python的三种原生PVM实现(pickle、cPickle、_pickle等)之间存在行为差异,可能导致误判或漏检。为了高效、可扩展地发现这些差异,本文提出了PickleFuzzer,一种基于生成的定制化模糊测试工具。PickleFuzzer根据自定义语法生成pickle对象,然后分别传递给不同实现,通过比较异常抛出和关键内部状态的变化来检测不一致性。它不需要规范的预言机,而是通过差分测试比较执行行为。实验发现了14个新的不一致性,其中4个是严重的安全缺陷,可绕过Hugging Face等模型托管平台使用的安全扫描工具。作者已向Python软件基金会报告了所有发现,并通过漏洞赏金平台获得750美元奖励。研究表明差分测试是发现pickle实现中安全相关差异的有效方法,为未来更定向的模糊测试提供了方向。

💡 推荐理由: pickle在AI/ML生态中广泛使用,其实现差异可能被攻击者利用绕过安全扫描,导致反序列化攻击。该研究直接揭示了现有防御的盲区,对模型托管和依赖pickle的框架有重要安全参考价值。

🎯 建议动作: 研究跟进

排序因子: 来自网络安全顶级会议 (+8) | 命中热门研究主题 (+2) | Community 数据源 (+1) | LLM 评分加成 (+0.6)
👥 作者: Yi Cai, Pratap Singh, Zhengyao Lin, Jay Bosamiya, Joshua Gancher, Milijana Surbatovich, Bryan Parno

本论文针对 Rust 语言中解析和序列化操作的安全性与性能挑战,提出了一种名为 Vest 的新型框架。Rust 以其内存安全著称,但手写解析器和序列化器仍然容易出错且效率低下。现有方案(如 serde)虽提供自动化,但缺乏形式化验证,且难以应对复杂格式。Vest 结合了形式化验证与高性能实现:首先,用户使用一种安全领域专用语言(DSL)描述数据格式规范;然后,Vest 自动生成经过验证的解析器和序列化器代码。其核心创新在于利用符号执行和 SMT 求解器对生成的代码进行属性验证(如内存安全、无崩溃、格式合规),同时通过编译器优化和运行时技术(如零拷贝、预分配)保持接近手写代码的性能。实验在多个实际数据格式(如 JSON、MessagePack、FlatBuffers)上评估,结果显示 Vest 不仅消除了常见漏洞(如缓冲区溢出、未定义行为),而且性能与 serde 相当或更优,在某些场景下提升高达 30%。该工作为 Rust 生态系统提供了安全与效率兼顾的解析/序列化基础设施,适合编译器工程师、形式化方法研究者及系统程序员阅读。

💡 推荐理由: Rust 语言在系统编程中地位日益重要,而解析/序列化环节仍是安全薄弱点。Vest 提供了一种可验证、高性能的替代方案,直接减少内存安全漏洞,对构建可信基础软件具有实际意义。

🎯 建议动作: 研究跟进

排序因子: 来自网络安全顶级会议 (+8) | Community 数据源 (+1) | LLM 评分加成 (+0.5)