基于静态分析的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
邓良驹 编写更安全的Python代码编写安全的Python代码 邓良驹 2019.10.19 思考题 if user.balance >= product.price: user.balance -= product.price ? 目录 CONTENTS 常见不安全代码 代码检查的工具 总结:如何规避风险 常见不安全代码 小心 eval 应对: 在生产环境中,任何情况下都不要使用eval。 import sys "__main__": shellcode = pickle.dumps(ShellExp()) pickle.loads(shellcode) 应对: 绝不对不可信/未认证数据进行unpickle,使用更安全的JSON 或YAML做序列化。必须使用pickle时在沙盒环境执行。 小心 PyYAML 应对: 使用yaml.safe_load,必要时编写自定义 Loader 做更严格的检查。 对不可信来源的序列化检查后操作。 有的甚至是故意、恶意为之。 应对: 谨慎选择第三方 PyPI 包,尽量少导入 PyPI 包; 利用 https://pyup.io/ 等服务保持检查和更新依赖; 利用 Chef InSpect 落实代码安全规范的检查。 *参考资料:“驹说码事” 《如何import一个不存在的对象》 https://mp.weixin.qq.com/s/0_ivKVDU-nKf3r-c96sqrA 利用 Bandit0 码力 | 18 页 | 988.40 KB | 1 年前3
3 Thautwarm 解放python的表达力 性能和安全性 语法和语义扩展 JIT 静态检查解放Python的 表达力,性能和安全性 Thautwarm 目录 CONTENTS 语法和语义扩展 JIT 静态类型 语法和语义扩展 表达力的扩展, 可用性的保留,白来的午餐? 演示一小部分: 模式匹配, Quick Lambda, Pipe运算 语言决定思维模型 GNU-APL C++ Haskell 说 到 质 数 � 人 们 想 到 什 么 � 语言决定思维模型 54 -> 0.59 3.14 -> 0.93 2.00 -> 0.03 2.60 -> 0.96 如果还有时间,我们用静态类型 来写一个简单的网页生成框架 一个用起来,没有学习曲线的框架。 很安全,因为没有程序员需要付出心 智负担的工作。 THANK YOU thautwarm: - github.com/thautwarm - twshere@outlook.com0 码力 | 43 页 | 10.71 MB | 1 年前3
Qcon北京2018-《以Null的处理、回调地狱的应对为例,看C#背后的问题解决思路》-Mads+TorgersenNulls and other C# stories from the future Chapter One Herding nulls Every reference type allows null! Code must be defensive about it C# shares this with most object oriented languages Not all languages public string? MiddleName { get; set; } public string LastName { get; set; } } J 1. Protect non-null types from nulls 2. Protect nulls from dereference Must be optional Turn it on when you’re ready job with existing code Can’t force you to rewrite good code Recognize existing ways of ensuring null safety (checks and assignments) Can’t be exhaustive Tradeoff between completeness and convenience0 码力 | 32 页 | 2.66 MB | 1 年前3
2022年美团技术年货 合辑才能感受到漫天星辰的光芒和温暖。 在2023年春节到来之际,我们从去年美团技术团队公众号上精选了60多 篇技术文章,整理制作成一本1300多页的电子书,作为新年礼物赠送给 大家。 这本电子书内容覆盖算法、前端、后端、数据、安全等多个技术领域, 希望能对同学们的工作和学习有所帮助。 也欢迎大家转给更多有相同兴趣、积极上进的同事和朋友们,一起切 磋,共同成长。 祝愿2023年,大家诸事顺遂,健康平安。 序 算法 业务数据治理体系化思考与实践 1233 数据治理一体化实践之体系化建模 1263 vi > 2022年美团技术年货 运维 / 安全 1277 数字化新业态下数据安全创新——Token 化 1277 Linux 中基于 eBPF 的恶意利用与检测机制 1293 如何应对开源组件风险?软件成分安全分析(SCA)能力的建设与演进 1328 算法 < 1 YOLOv6:又快又准的目标检测框架开源啦 作者:楚怡 quantize_scale_node 节点无法融合,进而导致了额外的开 销。如何解决这个问题?我们使用了一个简单的方法,就是强制使所有分支节点的 量化 scale 相同(根据经验,在同一数量级上的 scale 可以安全合并),即直接修改 QAT 网络中的 Quantizer 节点的参数。 我们整理了 YOLOv6s_repopt 中所有需要进行 scale 融合的节点(如表 7 所示), 由于 TensorRT0 码力 | 1356 页 | 45.90 MB | 1 年前3
跟我学Shiro - 张开涛跟我学 Shiro——http://jinnianshilongnian.iteye.com/ 5 第一章 Shiro 简介 简介 Apache Shiro 是 Java 的一个安全框架。目前,使用 Apache Shiro 的人越来越多,因为它相 当简单,对比 Spring Security,可能没有 Spring Security 做的功能强大,但是在实际工作时 可能并不需要那么复杂的东西,所以使用小而简单的 Manager:会话管理,即用户登录后就是一次会话,在没有退出之前,它的所有信 息都在会话中;会话可以是普通 JavaSE 环境的,也可以是如 Web 环境的; Cryptography:加密,保护数据的安全性,如密码加密存储到数据库,而不是明文存储; Web Support:Web 支持,可以非常容易的集成到 Web 环境; Caching:缓存,比如用户登录后,其用户信息、拥有的角色/权限不必每次去查,这样可以 SecurityManager:安全管理器;即所有与安全有关的操作都会与 SecurityManager 交互; 且它管理着所有 Subject;可以看出它是 Shiro 的核心,它负责与后边介绍的其他组件进行 交互,如果学习过 SpringMVC,你可以把它看成 DispatcherServlet 前端控制器; Realm:域,Shiro 从从 Realm 获取安全数据(如用户、角色、权限),就是说0 码力 | 219 页 | 4.16 MB | 10 月前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(简体中文) 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
FISCO BCOS 2.9.0 中文文档ii FISCO BCOS Documentation, 发布 v2.9.0 请根据需求选择FISCO BCOS的版本,并确认周边组件与其版本相匹配。 FISCO BCOS 是一个稳定、高效、安全的区块链底层平台,经过多家机构、多个应用,长时间在生产环 境运行的实际检验。 注解: 本技术文档适用于FISCO BCOS 2.x版本, FISCO BCOS 3.x技术文档请参考 FISCO BCOS 1 FISCO BCOS 区块链 标签:FISCO BCOS介绍 关键特性 开发工具 FISCO BCOS是由深圳市金融区块链发展促进会(以下简称“金链盟”)开源工作组牵头研发的金融级、 国产安全可控的区块链底层平台。作为最早开源的国产联盟链底层平台之一,FISCO BCOS于2017年面 向全球开源。 开源六周年至今,FISCO BCOS开源社区在技术创新、应用产业以及开源生态均取得了非凡成绩。 BCOS以联盟链的实际需求为出发点,兼顾性能、安全、可运维性、易用性、可扩展性, 支持多种SDK,并提供了可视化的中间件工具,大幅缩短建链、开发、部署应用的时间。此外,FISCO BCOS通过信通院可信区块链评测功能、性能两项评测,单链TPS可达两万。 1.1 关键特性 1.2 架构 FISCO BCOS 在2.0中,创新性提出“一体两翼多引擎”架构,实现系统吞吐能力的横向扩展,大幅提升性 能,在安全性、可运维性、易用性、可扩展性上,均具备行业领先优势。0 码力 | 1489 页 | 107.09 MB | 1 年前3
共 1000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 100













