基于静态分析的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 • 轻量级 • 每一个对象与其二进制表示之间都存在一个双射映射 Repository Rust https://github.com/near/borsh-rs Typescript https://github.com/dao-xyz/borsh-ts Java, Kotlin, Scala https://github.com/near/borshj Go https://github.com/near/borsh-go Python https://github0 码力 | 21 页 | 3.35 MB | 1 年前3
Rust分布式账务系统 - 胡宇● CQRS ● Event Sourcing ● 针对读场景,写场 景分别优化 ● 稳定的底层 API ● 灵活的顶层 API ● 树状结构 ● 聚合查询 ● 正确性:内存安全,线程安全 ● 可靠性: Raft 共识算法 raft-rs ● 高性能:关键路径无锁单线程 顶层架构 ● Gateway 路由层 ○ 业务 API 到底层 API 的翻 译 ○ 产生转账计划 afeETv8G2jjQ 分布式账务系统 第一个吃螃蟹的人从招聘到上线的干货 心路历程 落地第一个 Rust 项目 磨刀霍霍 – 技术选型 心路历程 ● 对新技术持开放态度 ● Kotlin :简洁, JVM, GC ● Rust 引入 Linux 内核 ● Android 支持 Rust ● 积极探索新技术对金融科技的改变 ● 对于核心领域系统,追求极致性能,使用 Rust 更加容易吸引对技术有追求的人才 Rust 学习曲线 ● Java 背景, C++ 背景的同事 ● 学习《 rust 程序设计》 ● 1-3 月可以熟练转型使用 Rust Rust 与原有技术栈的融合 ● Kotlin : 偏业务,适合快速迭代 ● Rust :偏基础架构,适合精心打磨 ● gRPC :跨语言跨平台通讯 心路历程 真刀实枪 – 开发调试部署 IDE JetBrains + Rust0 码力 | 27 页 | 12.60 MB | 1 年前3
Rust 到底香不香?bennyhuo Kotlin 开发者的首“锈” 个人介绍 • 霍丙乾 bennyhuo • 猿辅导资深移动客户端工程师,Google 开发者专家 • 《深入理解 Kotlin 协程》 《深入实践 Kotlin 元编程》作者 • B 站连载《Rust 程序设计语言》读书视频已更新至 第 13 章 分享经历 2017.11 Android 技术大会 将 Kotlin 投入 Android 北京开发者大会 优雅地使用 Kotlin 的 Data Class 2020.5 机械工业出版社 《深入理解 Kotlin 协程》 2020.5 GDG Android 11 Meetup Kotlin 协程那些事儿 2020.10 / 11 GDG DevFest / 全球移动开发者峰会 Kotlin多平台在移动端应用与展望 2021.7 GDG 社区说 Kotlin 编译器插件:我们究竟在期待什么? GDG DevFest / Kotlin 中文开发者大会 从注解处理器 KAPT 到 符号处理器 KSP 2022.9 GDG 社区说 KLUE:统一 JS 调用 Native 函数的体验 2022.10 GDG DevFest 小猿口算 Android 项目优化实践 2023.4 GDG 社区说 如何开发一款 Kotlin 编译器插件 2023.5 Kotlin 北京 Meetup 你想知道的0 码力 | 10 页 | 484.75 KB | 1 年前3
简谈 Rust 与国密 TLS - 王江桐Table of Contents 目录 Use of Rust in Implementing Cryptographic Algorithms and Protocols #3 Rust 实现密码与安全协议的优势与现状 Introduction to Shangmi Algorithms and Protocols #2 国密算法与协议介绍 Huawei Ylong Rust Cryptographic Framework #4 华为 Ylong Rust 密码库 国密算法总览 Overview to Shangmi Cryptography Section #1 • 密码算法安全目标 • 密码算法分类 • 国密套件总览 密码算法安全目标 Security Goals Rust China Conf 2022 – 2023, Shanghai, China • 通常来说,通过加密方式,对于信息的传输,我们希望达成以下五个目标: TLS 简介 来源:国密算法加密芯片,支持国密全套件等安全算法,http://www.bjlcs- tech.com/article/95.html 国密套件总览 List of Shangmi Cryptography Rust China Conf 2022 – 2023, Shanghai, China 算法 算法标准 功能 类型 安全位数 (bit) 对应算法 是否公开 应用 Sm10 码力 | 44 页 | 3.70 MB | 1 年前3
Rust语言核心竞争力-庄晓立0版本 2013年末我开始关注Rust,但尚未深入实践 在重大场合正式演讲这是人生第一次 2016年春节至今认真准备讲稿近三个月 如有错误或纰漏,敬请谅解! 感谢臧秀涛主编盛情邀请! Rust 安全、高效、并发的系统编程语言 2006年 2009年 2012年 2015年 2016年 Rust Cargo v0.0 ... v0.2 ... v0.10 系统编程+零运行时+内存安全 系统编程+零运行时+内存安全 (应用领域) (运行效率) (系统安全) 系统编程 Systems Programming 系统编程+零运行时+内存安全 System programming • The programmer will make assumptions 系统编程 • 对硬件的控制(嵌入式, OS) • 对系统底层的控制(OS, kernel, driver) • 对CPU和内存的高效利用(Server, OS) • 对运算性能的高要求 • 对系统安全和内存安全的强需求 重点项目&热门领域 • 大数据 • 云计算 • 物联网 • 航空航天 • 超级计算机 • 科学运算/机器学习 • 图形图像处理 • 虚拟现实 ……都有系统编程的身影0 码力 | 51 页 | 1.09 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
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 解答 . . . . minutes • Day 4 Afternoon (2 hours and 10 minutes, including breaks) Segment Duration 错误处理 55 minutes 不安全 Rust 1 hour and 5 minutes 深入探究 除了为期四天的“Rust 基础”课程外,还有一些专业课题提供: Android 中的 Rust 深入探究 Android 中的0 码力 | 359 页 | 1.33 MB | 10 月前3
Rust 语言学习笔记语言设计的看法主要是:重大创新,却又博采众长。 Rust 为了解决内存安全问题重新设计了类型系统,提出了所有权的概念,同时 为了能够解决当前大多数语言无法检测到的运行时错误,rust 创造性地设计了 无畏并发。Rust 借鉴了很多优秀语言的设计理念,以及快速迭代的社区,这些 都是 Rust 受到赞赏的重要因素。 Rust 是一门系统级编程语言,被设计为保证内存和线程安全,并防止段错误。 作为系统级编程语言,它的基本理念是 可以被归为通用的、多范式、编译型的编程语言,类似 C 或者 C++。与 这两门编程语言不同的是,Rust 是线程安全的! Rust 编程语言的目标是,创建一个高度安全和并发的软件系统。它强调安全性、 并发和内存控制。尽管 Rust 借用了 C 和 C++ 的语法,它不允许空指针和悬 挂指针,二者是 C 和 C++ 中系统崩溃、内存泄露和不安全代码的根源。 Rust 中有诸如 if else 和循环语句 for 和 while (structured type)而不是类(class)。这点,与基于继承的 OO 语言 C++, Java 有相当大的差异。而跟 Ocaml, Haskell 这类函数式语言更加接近。 Rust 做到了内存安全而无需 .NET 和 Java 编程语言中实现自动垃圾收集器的 开销,这是通过所有权/借用机制、生命周期、以及类型系统来达到的。 Rust 程序设计语言的本质在于赋能(empowerment):无论你现在编写的是何0 码力 | 117 页 | 2.24 MB | 1 年前3
共 39 条
- 1
- 2
- 3
- 4













