Linux 1Password的幕后花絮
Linux 的 1Password 后端是由Rust编写。
文章讲述了 1Password 团队使用 Rust 开发 1Password 的心路历程及幕后花絮。
ReadMore:https://dteare.medium.com/behind-the-scenes-of-1password-for-linux-d59b19143a23
进一步优化 Hashmaps
- hashmap 和 hash 算法
- 枚举作为 key
- 静态字符串作为 key
- 混合静态+动态 key
- 展望未来
- 结论
- 笔记
ReadMore:https://blog.yoshuawuyts.com/optimizing-hashmaps-even-more/
Yew 0.18 发布
Yew是一个使用WebAssembly创建多线程前端Web应用程序的框架。
ReadMore:https://github.com/yewstack/yew
INTELLIJ RUST 更新日志
- 解析宏时正确支持文本作用域
- 解决多段宏路径和文件包含的文件内的宏调用 include!
- 支持文件级别
#![macro_use]
和cfg
属性 - 查找
impl
类型别名的所有可能块。以前,出于性能原因,仅当对应类型的别名数量不超过10时才对它们进行处理。现在,可以正确解析大量使用类型别名的crates,例如nalgebra或winapi
ReadMore:https://intellij-rust.github.io/2021/05/18/changelog-147.html
sok - 后端由rust编写的知识图谱
sok 可以根据Stack Exchange数据集生成完整的知识图谱,不仅仅可以用于计算机科学和编程,任何知识内容都可以用 sok 展示出来,sok 可以探索将不同的主题和概念联系在一起。
ReadMore:https://github.com/eastrd/sok
【Rust 安全案例】Rust 也能写出漏洞,但都是逻辑漏洞
题外话: 之前看到知乎上有人说 Rust 2021 年光 CVE 就有近百个。那咱们今天就捡个热乎的 CVE 看看到底是咋回事。
2021-05-18 ,openSUSE 邮件列表里收到一份安全报告,主题如下:
- [oss-security] please: CVE-2021-31153,CVE-2021-31154,CVE-2021-31155: local root exploit and further
缘由:
please 是一个 Rust 实现的替代 sudo 的工具,该库作者向SUSE 团队提出setuid-root 的代码安全审核。然后就被发现存在很多安全问题,并且包含一个比较严重的本地root漏洞,允许执行命令。
报告摘录如下:
- 可以进行任意文件存在测试,并且可以以root用户身份打开任意文件
- 通过search_path()函数进行任意文件存在性测试
- 通过
-d
开关进行任意文件存在性测试 - 使用不可信的umask创建令牌目录“ / var / run / pleaser / token”
- 允许通过pleaseedit编辑任何文件,允许任意文件覆盖和所有权更改
结论:
- 哪怕是 Rust 这样的现代语言,要实现 setuid-root 二进制文件也是一个很大的挑战。
- please库中几乎没有unsafe(只有几行 libc/nix调用),所以基本已经不存在内存安全类的漏洞了,但是像这种逻辑漏洞是无法避免的。(除非你不写代码。
setuid 二进制文件是在非 root 用户 shell 程序中运行的 root 权限二进制文件
https://marc.info/?l=oss-security&m=162133298513412&w=2
https://bugzilla.suse.com/show_bug.cgi?id=1183669
From 日报小组 冰山上的 mook && 挺肥
社区学习交流平台订阅:
评论区
写评论还没有评论