我来扯几句。
就计算机安全来说,离不开谈论的环境,即所谓要确立”可信计算域”的概念和范围,就当前这个问题来说,内核的安全性。嗯,话题有点大,写一米厚的书都够了,我简单写点NT的。
首先,已经是内核了,那么在NT内核里面执行的代码的权限就是无限大,linux我想应该是差不多的,所以首先要确立对于这个问题来说,内核内就是“可信计算域”,这里面能做出危害整个系统的事情。
OK,那么问题就分两方面,NT内核对内对外的安全性体现。
首先说NT内核自身,因为这货是闭源的,所以普通的扩展方法就是写驱动,驱动加载进去基本也就什么都能做了。ok,你可以认为这是一个不安全的地方。但是,首先,安装驱动程序是需要权限的,如果你每天开着administrator上网还扯什么安全性,这就是搞笑;其次,现在的NT内核因为x64下面patch guard技术的引入,胡乱Hook的现象少多了,进一步限制了驱动胡搞;最后x64要求驱动有sign,恶意代码进系统比以往有了很大的难度。
其次说说内核对外的安全性体现。NT其实有一大弱点,就是r3有几个进程是不能结束的,crash掉会马上BSOD,但这和今天的话题无关。
1 当下的NT内核提供了ASLR,大大提高了进程被inject后shellcode run起来的难度;
2 传统NT的ACL模型就不废话了
3 UAC,这货也不扯了
4 EFS和Bitlocker,EFS的易受攻击性已经是被证明的,所以这货只能提供有限的安全性,但是Bitloacker在正确配置的情况下,可以提供几乎不存在什么弱点的安全保护,相关话题我就不在这里扯了,有兴趣的自己看看相关资料。
5 UMDF,因为内核驱动会导致BSOD,所以现在NT内核提供用户模式驱动,这货崩掉只会导致一个系统服务crash,重启服务即可(并不是重启计算机,比如USB的,只需要重新插一下就行了)
就说这么多,以下是嘲讽时间:
如上所述,要确立“可信计算域”,安全是对用户来说的,无论吹得多么天花乱坠,伤害了最终用户,再先进的技术也是不安全的。
举例来说,安卓对用户来说就是一完全恶意不安全的系统,当然你可以反驳我“你觉得这个app要的权限多,你可以不用,你换一个阿”,这是废话,当每一个app都可以(事实上也都是)肆无忌惮的要求各种权限的时候,用户没得选,用户也没地方设置。
另外总有人蹦出来说linux如何优越,开源就是棒,一般来说这种嚷嚷得越欢的越菜,开源等于安全是一个悖论,不多扯了,跑题,能战100页。
— 完 —
本文作者:知乎用户(登录查看详情)
【知乎日报】
你都看到这啦,快来点我嘛 Σ(▼□▼メ)
此问题还有 5 个回答,查看全部。
延伸阅读:
Linux 为何不把图形用户界面写入内核?
怎样安装 Windows 7 与 Linux 的双系统?