我发了一条tweet,声称Linux在安全缓解方面落后了。这篇文章将概述添加到Windows、MacOS甚至ChromeOS等平台上的缓解措施,这些平台还没有在Linux桌面上亮相。
Linux发行版在实现现代二进制漏洞利用缓解方面落后。Linux用户空间做的最后一件事是ASLR/PIE和堆栈金丝雀:这一点多年来没有改变。Windows和MacOS强制对所有二进制文件进行签名检查。与LLVM的Scudo分配器相比,glibc#39;的分配器是原始的,它减少了释放后使用和堆溢出。
除了硬件强制的控制流保护之外,Windows还对堆页面进行签名,以确保它们是不可变的。现代iOS也是这样做的。Windows还实现了一种令人兴奋的东西,称为影子堆栈,它将返回地址存储在一个秘密的、独立于本地变量的堆栈中。这比堆栈cookie更快、更安全。
Linux发行版没有沙箱的概念,也没有任何有意义的应用程序安全模型。在Xorg下运行的任何应用程序都可以看到在Xorg下运行的任何其他应用程序的内容。Flat Pack和Snap都是安全噩梦,从根本上存在缺陷,且实现不力。Linux内核提供的唯一好的sandoxing API是seccomp-bpf,唯一使用它的程序是Google Chrome/Chromium。相比之下,ChromeOS要求每个服务都有自己的seccomp过滤器。
这也是一个友好的提醒,Debian在CVE上总是落后的,我确信大多数发行版的情况也不会更好。
我只是一个对安全感兴趣的学生,如果上面的任何信息有错误,我都很乐意改正!