经过多年以来的无数次审查、讨论和代码重写,LinusTorvalds通过了一项Linux内核新的安全功能,它被称为“锁定”(lockdown)。
这项新功能将作为LSM(LinuxSecurityModule,Linux安全模块)包含在即将发布的Linuxkernel5.4中。由于存在破坏现有系统的风险,因此该功能是可选的,并非默认开启。
这一新的锁定功能主要是为了防止root帐户篡改内核代码,从而在用户态进程和代码之间划清界限。启用该功能后,即便是root帐户也无法访问某些内核功能,从而保护操作系统免受受损的root帐户影响。
LinusTorvalds表示,启用锁定模块后,各种内核功能都会受到限制。其中包括对内核功能的访问限制;对/dev/mem的读写操作的阻止;对CPUMSR访问的限制;以及防止系统进入睡眠状态等等。
锁定功能支持两种不同模式,可用于激活不同级别的限制。“完整性”(integrity)模式将禁止用户修改正在运行的内核功能。另一种“机密性”(confidentiality)模式则会禁止用户从内核中提取机密信息。
内核锁定功能的研究始于2010年代初期,由现在的Google工程师MatthewGarrett牵头。该功能背后的想法是创建一种安全机制,以防止具有特权的用户(甚至是“root”帐户)篡改内核的代码。
在那个时候,即使Linux系统采用了安全启动机制,恶意软件仍然可以通过滥用具有特殊提升特权的驱动程序和root帐户等来篡改内核代码。多年以来,许多安全专家一直在要求Linux内核支持一种更有效的方式来限制root帐户,并提高内核安全性。
最初提出该功能时,LinusTorvalds本人是最大的反对者之一,他对此提出了不少批评。结果,许多Linux发行版开发了自己的Linux内核补丁,这些补丁在主线内核之上都添加了锁定功能。直到2018年,支持派和反对派才逐渐达成中间立场,关于锁定功能的工作也终于在今年取得了新的进展。
新功能获得批准后,也在Linux和网络安全社区受到了广泛欢迎。
领取专属 10元无门槛券
私享最新 技术干货