电子书《编译器开发者的低级别软件安全》
llsoftsec.github.io/llsoftsecbook/
为编译器开发者提供了一本开源的安全指南,涵盖了从内存漏洞攻击、侧信道攻击到供应链攻击等多方面的低级软件安全问题,并探讨了相关防护措施。开源书,可下载pdf
"编译器、汇编器及类似工具生成了处理器执行的所有二进制代码。因此,这些工具在相关二进制代码的安全分析和加固(hardening)中扮演着重要角色,这一点不足为奇。
通常,要对所有二进制文件应用某种特定的安全加固方法,唯一切实可行的方式就是通过编译器来实现。并且,随着近年来软件安全变得越来越重要,我们看到编译器中实现了种类日益繁多、针对各种漏洞的安全加固特性和缓解措施(mitigations),这也毫不令人意外。实际上,与几十年前相比,如今的编译器开发者更有可能需要参与安全特性的实现工作。
此外,随着(编译器中)实现的技术范围不断扩大,想要对典型编译器中实现的所有安全特性获得基本的了解变得非常困难。
这就带来了一个实际问题:编译器开发者必须能够胜任安全加固特性的工作,然而要对这些编译器特性获得良好且基础的理解却很困难。
现有的大量资料解释了单个漏洞或攻击向量(attack vectors),也有许多演示文稿阐述了具体的攻击利用(exploits)。但是,能够针对代码生成器(code generator)在防护方面所扮演的角色,对所有相关漏洞和攻击利用进行结构化概述的资料似乎很有限。
本书旨在提供这样一种结构化且宽泛的概述。它未必会深入所有细节,其目标是针对攻击、漏洞、缓解措施及加固技术的所有相关高层方面(high-level aspects)给出详尽的描述。对于更深入的细节,本书也提供了参考指引(pointers),指向包含特定技术更多详情的资料。
本书旨在为每一位需要学习编译器相关软件安全的编译器开发者提供指南。尽管本书的重点是编译器开发者,但我们期望它对于从事其他底层软件(low-level software)工作的专业人士同样有益。"