软件和应用|Rust和LLVM编译器中添加了Windows CFG支持

微软方面宣布 , 该公司已与 LLVM 和 Rust 开发团队达成合作 , 将对 Windows Control Flow Guard(CFG)平台安全功能的支持添加到了 Clang 和 Rustc 编译器中 。此前 , CFG 仅适用于使用 Microsoft Visual C ++ 编译的 C/C ++ 代码 。CFG 是微软自 Windows 8.1 版本开始添加的一项强大的安全功能 , 目前已在 Windows 10 中被广泛使用。
软件和应用|Rust和LLVM编译器中添加了Windows CFG支持
文章图片

(详情可查看官方博客)
该功能可以保护应用程序代码的执行流 , 以防止恶意代码(例如内存错误的结果)劫持本机“控制流”并使应用程序执行有害的操作 。CFG 是对其他漏洞利用缓解措施的补充 , 例如地址空间布局随机化(Address Space Layout Randomization , ASLR)和数据执行保护(Data Execution Prevention , DEP) 。
目前 , CFG 功能已在 LLVM 10.0 和 Rust 1.47(当前为 Nightly 版本)两个版本中可用 。

LLVM 10.0 现在支持 CFG 。我们对 CFG 的实现完全包含在核心库中 , 这使得它可以在基于 LLVM 的任何编译器中重用–前端编译器只需要设置正确的 flags 即可 。
CFG 在 Rust 1.47(当前为 Nightly 版本)中可用 。要启用 CFG , 只需添加 -C control-flow-guard flag 即可 。
【软件和应用|Rust和LLVM编译器中添加了Windows CFG支持】值得一提的是 , 微软方面透露 , 将 CFG 支持扩展到 LLVM/Clang的主要驱动器是 Chromium , 而 Chromium 代码库是使用 Clang 编译的 。“因此 , Chromium 团队正在努力在 Windows 版本中启用 CFG , 这是在 Google Chrome 和 Microsoft Edge 中采用 CFG 的第一步 。”


    推荐阅读