基于静态分析的Rust内存安全缺陷检测研究基于静态分析的Rust内存安全缺陷检测研究 报告人:徐辉 报告日期:2022.11.25 复旦大学 大纲 一、问题背景 二、Rust指针缺陷检测方法 三、实验结论 四、论文发表心得 大纲 一、问题背景 二、Rust指针缺陷检测方法 三、实验结论 四、论文发表心得 Rust语言 ❑ 系统级安全编程语言 ▪ 内存安全 ▪ 并发安全 ▪ 效率 2006年 2011年 Foundation成立 2020年 2021年 Mozilla裁员Servo团队 AWS, Huawei, Google, Microsoft, Mozilla… Rust如何保障内存安全? ❑ 内存安全问题产生的主要原因之一是指针别名导致悬空指针 ▪ 手动释放内存或调用析构函数 ▪ 函数返回时发生的自动析构或内存释放 ❑ Rust设计的目标之一是编译时检查指针别名(共享可变引用) ▪ 0x012345usize; let r = address as *const i32; } unsafe { risky(); } 调用unsafe函数 定义unsafe函数 Rust的安全哲学 ❑ Safe API无论如何被使用都不应带来未定义行为 ❑ 程序员应避免直接使用unsafe code ❑ Interior unsafe:将unsafe code封装为safe API0 码力 | 28 页 | 1.55 MB | 1 年前3
Borsh 安全高效的二进制序列化第三届中国 Rust 开发者大会 安全高效的二进制序列化 Daniel Wang @ NEAR Borsh • 运行、编码效率 • 确定性 • 跨平台兼容性 二进制序列化的问题 Binary Object Representation Serializer for Hashing • 字节级别确定性 • 执行速度快 Borsh • 轻量级 • 每一个对象与其二进制表示之间都存在一个双射映射0 码力 | 21 页 | 3.35 MB | 1 年前3
Rust 语言学习笔记...... 52 4.3.8 trait 定义中的生命周期和可变性声明 ........................................ 52 第五章 属性与 Cargo 配置 ......................................................................... 53 5.1 属性 ............ cargo 参数配置 ............................................................................ 57 5.2.1 package 配置 ...................................................................... 57 5.2.2 依赖的详细配置: ... ............................................................. 58 5.2.3 自定义编译器配置 ................................................................ 58 5.2.4 feature 段落................................0 码力 | 117 页 | 2.24 MB | 1 年前3
Comprehensive Rust(简体中文) 20241229.6.1 解答 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 30 不安全 Rust 174 30.1 不安全 Rust . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 30.2 解引用裸指针 177 30.6 实现 Unsafe Trait . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 30.7 安全 FFI 封装容器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 30.7.1 解答 . . . . . . . . . . . . . . . . . 237 46 添加第三方 Crate 238 46.1 配置 Cargo.tom 文件以添加 crate . . . . . . . . . . . . . . . . . . . . . . . . . 238 46.2 配置 gnrt_config.toml . . . . . . . . . . . . . . . . . . . .0 码力 | 359 页 | 1.33 MB | 10 月前3
Rust 程序设计语言 简体中文版 1.85.0. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300 14.1. 采用发布配置自定义构建 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465 20.1. 不安全 Rust . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Rust 中文社区翻译。 本书的当前版本假设你使用 Rust 1.85.0(2025-02-17 发布)或更高版本并在所有项目的 Cargo.toml 文件中通过 edition = "2024"将其配置为使用 Rust 2024 edition 惯用法。请查 看第一章的 “安装” 部分了解如何安装和升级 Rust。 本书的英文原版 HTML 格式可以在 https://doc.rust-lang0 码力 | 562 页 | 3.23 MB | 24 天前3
Rust 程序设计语言简体中文版的内容 ............................................................................... 349 14.1. 采用发布配置自定义构建 ........................................................................................... 350 ...................................................................................... 484 19.1. 不安全的 Rust ............................................................................................ 昭著的陷阱。即使谨慎的实践者,亦唯恐代码出现漏洞、崩溃或损坏。 Rust 破除了这些障碍:它消除了旧的陷阱,并提供了伴你一路同行的友好、精良的工具。想 要 “深入” 底层控制的程序员可以使用 Rust,无需时刻担心出现崩溃或安全漏洞,也无需因为 工具链不靠谱而被迫去了解其中的细节。更妙的是,语言设计本身会自然而然地引导你编写出 可靠的代码,并且运行速度和内存使用上都十分高效。 已经在从事编写底层代码的程序员可以使用 Rust0 码力 | 600 页 | 12.99 MB | 1 年前3
Comprehensive Rust(繁体中文)29.6.1 解決方案 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 30 不安全的 Rust 174 30.1 不安全的 Rust . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 30.2 對裸指標解參考 . 176 30.5 呼叫不安全的函式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 30.6 實作不安全的特徵 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 30.7 安全的 FFI 包裝函式 . . . minutes 模組 40 minutes 測試 45 minutes • 第 4 天下午 (2 小時 10 分鐘,含休息) Segment Duration 錯誤處理 55 minutes 不安全的 Rust 1 hour and 5 minutes 深入探索 In addition to the 4-day class on Rust Fundamentals, we cover some0 码力 | 358 页 | 1.41 MB | 10 月前3
Comprehensive Rust(繁体中文) 20240629.6.1 解決方案 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 30 不安全的 Rust 172 30.1 不安全的 Rust . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 30.2 對裸指標解參考 . 174 30.5 呼叫不安全的函式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 30.6 實作不安全的特徵 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 30.7 安全的 FFI 包裝函式 . . . minutes 模組 40 minutes 測試 45 minutes • 第 4 天下午 (2 小時 10 分鐘,含休息) Segment Duration 錯誤處理 55 minutes 不安全的 Rust 1 hour and 5 minutes 深入探索 In addition to the 4-day class on Rust Fundamentals, we cover some0 码力 | 356 页 | 1.41 MB | 1 年前3
洛佳 组件化驱动、ROM运行环境与RustSBI第三届中国Rust开发者大会 组件化驱动、ROM运行环境与RustSBI 洛佳 华中科技大学 网络空间安全学院 2023年6月 本次演讲…… 关于我…… • 笔名洛佳 • 华中科技大学网络空间安全学院研一 在读(导师:周威老师) • 研究方向:物联网安全、系统安全 • 热爱开源,乐于尝试新技术 • RustSBI项目维护者 • 致力于向科研、教学和产业界推广 Rust语言 结而成的新一代驱动开发方法。动、静态 基地址结合,高灵活性;一次开发,同时 复用于嵌入式、固件和内核中。 # 组件化驱动 合理利用嵌入式、桌面和服务器芯片片内 ROM代码,构造零开销的运行环境。进一 步地,可完成安全引导、安全镜像分发和 通常的嵌入式开发等功能。 # ROM运行环境 # 2023年的RustSBI 作为RISC-V SBI固件的RustSBI,2023年 将与UEFI、LinuxBoot擦出火花。在驱 表 示 封装寄存器、位域表示和数据结构 分享性外设:以GPIO为例 • 从前级环境获取所有权,如从ROM 运行环境的#[entry]获得; • 配置GPIO状态后,只有对应外设类 型允许的操作函数能通过编译,否则 拒绝编译,避免不安全行为; • 开源标准抽象的功能,使用抽象规定 的调用方法。本芯片外设专属的功能 也可通过专有函数使用; • 用户代码简短易懂,容易编写和调 试,降低开发成本。0 码力 | 21 页 | 3.12 MB | 1 年前3
Comprehensive Rust(日语) 202412. . 190 30.6 Unsafe なトレイトの実装 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 30.7 安全な FFI ラッパ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 30.7.1 解答 . . . . microcontrollers. • ランタイムやガベージコレクションがない。 • パフォーマンスを犠牲にせず、信頼性と安全性に焦点を当てている。 4.2 Rust のメリット Rust のユニークなセールスポイントをいくつか紹介します: 25 • コンパイル時のメモリ安全性 - クラス全体のメモリのバグをコンパイル時に防止します。 – 未初期化の変数がない。 – 二重解放が起きない。 – ることができます: • C または C++の経験がある場合:Rust は借用チェッカーを介して実行時エラーの一部を排除し てくれます。それに加え、C や C++と同等のパフォーマンスを得ることができ、メモリ安全性の 問題はありません。さらに、パターンマッチングや組み込みの依存関係管理などの構造要素を含 む現代的な言語です。 • Experience with Java, Go, Python, JavaScript0 码力 | 381 页 | 1.36 MB | 10 月前3
共 39 条
- 1
- 2
- 3
- 4













