关于Rust编译器如何应对Trusting trust attack的讨论。
【题外话】
Trusting trust attack,又叫Thompson hack,它是由图灵奖获得者的 Ken Thompson,在获得图灵奖时的演讲《Reflect on Trusting Trust》中首次提出。
Thompson hack就是让编译器“学会”编译后门的方式,并在将来的编译器代码中移除它从而无法再从源码中再现,最终利用人们对编译器忠实性的信任来激活后门的攻击方式。这种攻击手段号称是比XcodeGhost植入还邪恶的手段。
Ken Thompson是谁? 他是:Unix 之父/ C 语言前身 B 语言之父/UTF-8 之父/UTF-8 的诞生地 Plan9 操作系统之父/前贝尔实验室成员
于 2006 年就职 Google 公司后,又成为了 Go 语言之父!然后他在自己设计的Go语言上实施了Trusting Trust Go的PoC。🙏
【话说回来】
Rust可以借助mrustc来应对Trusting trust攻击:
使用mrustc编译rustc,然后使用rustc自行编译,即可拥有一个可信任的二进制文件。当然(前提是你有一个可信任的C++编译器)
但这也无法从根本上解决 Trusting trust攻击,只能做到缓解。另外官方还一直在做reproducible builds测试,来帮助用户信任官方的二进制版本是和源代码相对应的可信版本。
Rust: 拯救企业服务
该文章作者用在这个行业三十年的功力告诉你:
Rust在企业服务领域也是一个明显的赢家(Clear Winner),是替代Java的正确选择。
sudo_pair 是Rust实现的一个sudo插件
它允许另外一个人来授权和监控sudo的权限。
在一些敏感的系统中,可以确保没有人能够完全依据自己的sudo权限来进行特权操作,以保证安全。
python写的一个gdb可视化界面
调试Rust代码可以更加方便
用Rust来写微服务
作者尝试了 Rocket和Gotham,配合ORM框架diesel
使用Rust和Runiq过滤重复的日志条目
linux中有一个uniq命令可以过滤文件中重复的行,但性能比较慢,很难用于处理海量的日志文件。作者用rust实现了runiq,实现了这个需求。
评论区
写评论还没有评论