pdf文档 Rust API可靠性分析与验证

1.68 MB 13 页 0 评论
语言
中文(简体)
格式
.pdf
评分
3
摘要
Rust China Conf 2021 – 2022, Online, China 姜剑峰 Rust API可靠性分析与验证 Rust China Conf 2021 – 2022, Online, China 主题内容 • Rust第三方库API可靠性现状 • 现用方法的局限性 • 基于程序合成+模糊测试的可靠性分析方法 Rust China Conf 2021 – 2022, Online, China 自我简介 • 本(2019)硕(2022)毕业于复旦大学 • 目前在蚂蚁集团安全计算部门开发应用于机密计算的Rust系统软件 • 研究生期间主要从事Rust测试与验证工具的研究,本人所在的是国内最早 开展Rust程序分析相关研究的实验室(https://artisan-lab.github.io) • 我们关于Rust库模糊测试的论文 RULF: Rust Library Fuzzing via API Dependency Graph Traversal 获得了软件工程顶级会议ASE2021的ACM杰出论文奖 Rust China Conf 2021 – 2022, Online, China 引言:Rust for Linux “If the Rust compiler ends up doing hidden allocations, and they then cause panics, then one of the main *points* of Rustification is entirely broken.” —— Linus Torvalds1 “There is clearly a need to identify dynamic checks that can never fail and dynamic checks that could potentially fail. ” —— Alastair Reid2 1 https://lwn.net/ml/linux-kernel/CAHk-=wiVY56LzwV_G075NEFwsdf-p7GOTy_cB7-UU9b=49rB1g@mail.gmail.com 2 https://project-oak.github.io/rust-verification-tools/2021/08/22/rust-on-linux-1.html Rust China Conf 2021 – 2022, Online, China Rust静态检查与动态检查 静态检查: • 基于所有权和生命周期的内存管理模型:内存安全 • 通过trait来确保代码符合某些规范:Send, Sync, Unpin等 动态检查: • 数组越界 • 整数溢出 • Unicode字符边界 Rust China Conf 2021 – 2022, Online, China Rust API 可靠性 现有的机制是否足够呢? • unsafe代码没有破坏内存安全性 • no memory leakage • panic free 在任何合法使用API的情况下 • 所有静态检查提供的保证都应该被满足(不应该被unsafe所破坏) • 所有动态检查都不应该被违背(可以被安全的移除),除非panic是一种 允许的行为 Rust China Conf 2021 – 2022, Online, China 现有的可靠性分析方法及其局限性 模糊测试(afl.rs, libfuzzer):分支覆盖率;用例程序的构造 符号执行(klee, angr):路径爆炸;求解困难 静态分析(MirChecker, Rudra, SafeDrop):分析特定问题;假阳性 形式化验证(RustBelt):无法方便的验证第三方库 其他工具(Miri等)…..... Rust China Conf 2021 – 2022, Online, China API 测试用例合成 出错的API1 能够执行到出错API的程 序 通过模糊测试来寻找到触 发崩溃的特定输入 1. https://github.com/casey/just/issues/363 Rust China Conf 2021 – 2022, Online, China 模糊测试简介 图.1 一个简单的模糊测 试用例程序 初始化种子集合 选择一个种子并且进行变异 如果这个种子比较有趣的话 把这个种子加入种子集合 Yes 图.2 典型模糊测试工 具的工作流程 使用变异后的种子执行程序 No Rust China Conf 2021 – 2022, Online, China RULF:模糊测试用例程序生成...
来源www.y-droid.com
Rust API可靠性分析与验证 第2页
Rust API可靠性分析与验证 第3页
下载文档到本地,方便使用
共 13 页, 还有 5 页可预览, 继续阅读
文档评分
请文明评论,理性发言.