戴文的Linux内核专题:04 安全
创始人
2024-03-01 11:38:04
0

Linux内核是所有Linux系统的核心。如果有任何恶意代码控制或破害了内核的任何一部分,那么系统会严重受损,文件可能被删除或损坏,私人信息可能被盗等等。很明显,保持内核安全涉及到用户的最大利益。值得庆幸的是,由于Linux内核极其安全,Linux是一个非常安全的系统。在用户比例上,Linux病毒比Windows病毒更少,并且Linux用户比Windows用户个人更少感染病毒。(这就是为什么许多公司使用Linux来管理他们的服务器的一个原因。) 然而,我们仍然没有借口去忽视内核的安全。Linux有几个安全特性和程序,但本文只讨论Linux安全模块(LSM)及其它的内核安全特性。

AppArmor(应用盔甲)最初是由Immunix写的安全模块。自从2009年以来,Canonical维护着这些代码(Novell在Immunix之后,Canonical以前管理这些代码)。这个安全模块已经从2.6.36版本进入Linux主分支之中。AppArmor限制了程序的能力。AppArmor使用文件路径来跟踪程序限制。许多Linux管理员称AppArmor是最容易配置的安全模块。然而,而许多Linux用户觉得这个模块与其它的替代品相比很糟糕。

安全增强Linux(SELinux)是AppArmor的替代品,它最初由美国国家安全局开发(NSA)。SELinux自从2.6版本就进入内核主分支中。SELinux是限制修改内核和用户空间的工具。SELinux给可执行文件(主要是守护进程和服务端程序)最小特权去完成它们的任务。SELinux也可以用来控制用户权限。SELinux不像AppArmor那样使用文件路径,而SELinux在追踪权限时使用文件系统去标记可执行文件。因为SElinux本身使用文件系统管理可执行文件,所以SELinux不能像AppArmor那样对整个文件系统提供保护。

注意:守护进程是在后台运行的程序

注意:虽然在内核中有AppArmor、SELinux及其它安全模块,但只能有一个安全模块被激活。

Smack是安全模块的另一种选择。Smack从2.6.25起进入内核主分支。Smack应能比AppArmor更安全,但比SELinux更容易配置。

TOMOYO,是另外一个安全模块,在2.6.30进入内核主分支。TOMOYO可以提供安全防护,但是它的主要用途是分析系统安全缺陷。

AppArmor、SELinux、Smack和TOMYO组成了四个标准Linux安全模块。这些都通过使用强制访问控制(MAC : mandatory access control)工作,这种访问控制是通过限制程序或者用户执行一些任务来实现的。安全模块还有某些形式的列表规定了它们可以做什么不可以做什么。

Yama在Linux内核中一个新安全模块。Yama还没有作为标准的安全模块,但是在将来他会成为第5个标准安全模块。Yama和其他安全模块一样使用相同的机制。

“grsecurity”是一系列Linux内核安全补丁的集合。多数补丁用于处理远程网络连接和缓冲区溢出的安全问题(以后讨论)。grsecurity中有一个叫PaX的有趣组件。PaX补丁允许内存里的代码使用最少的所需权限。例如,存储程序的内存段被标为不可写。想想看,为什么一个可执行的程序需要在内存中是可写的?通过这个补丁,恶意代码就不能修改目前正在执行的程序。缓冲区溢出是一种当程序由于bug或者恶意代码在内存上写入数据,并让它的内存边界超出到其他程序的内存页上的安全事件。当Pax被激活时,它会帮助阻止这些缓冲区溢出,因为程序没有写到其他内存页上的权限了。

Linux入侵检测系统(LIDS)是一个内核安全补丁,提供了强制访问控制(MAC)的特性。这个补丁就像扮演LSM模块的角色。

Systrace是一个减少和控制应用程序访问系统文件和系统调用的工具。系统调用是对内核的服务请求。比如,当一个文本编辑器写入一个文件到硬盘上时,程序将会发送一个系统请求让内核写入文件到硬盘中。

这些是在Linux安全系统中非常重要的组件。这些安全模块和补丁使内核免于受到恶意代码的攻击。没有这些特性,Linux系统将会变成一个不安全的操作系统。

via: http://www.linux.org/threads/the-linux-kernel-security.4223/

译者:geekpi 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

相关内容

全通教育:在AI校园安全、...
每经AI快讯,有投资者在投资者互动平台提问:请介绍一下公司在AI+...
2025-06-28 06:40:31
等了30年,微软MS-DO...
曾经称“开源是毒瘤”时有多么嫌弃,现在“微软 ❤️ 开源”就有多么...
2025-06-26 09:11:25
开源图像编辑器 GIMP ...
IT之家 6 月 24 日消息,科技媒体 9to5Linux 昨日...
2025-06-24 13:12:59
微软 Win11 Linu...
IT之家 6 月 20 日消息,在今年 5 月的微软 Build ...
2025-06-21 13:12:08
Qt Creator 17...
IT之家 6 月 19 日消息,科技媒体 9toLinux 昨日(...
2025-06-19 15:11:13
赛昇研究院申请开源软件代码...
金融界2025年6月18日消息,国家知识产权局信息显示,赛昇数字经...
2025-06-18 17:40:38

热门资讯

Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
使用 KRAWL 扫描 Kub... 用 KRAWL 脚本来识别 Kubernetes Pod 和容器中的错误。当你使用 Kubernet...
JStock:Linux 上不... 如果你在股票市场做投资,那么你可能非常清楚投资组合管理计划有多重要。管理投资组合的目标是依据你能承受...
通过 SaltStack 管理... 我在搜索Puppet的替代品时,偶然间碰到了Salt。我喜欢puppet,但是我又爱上Salt了:)...
Epic 游戏商店现在可在 S... 现在可以在 Steam Deck 上运行 Epic 游戏商店了,几乎无懈可击! 但是,它是非官方的。...
《Apex 英雄》正式可在 S... 《Apex 英雄》现已通过 Steam Deck 验证,这使其成为支持 Linux 的顶级多人游戏之...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
2024 开年,LLUG 和你... Hi,Linuxer,2024 新年伊始,不知道你是否已经准备好迎接新的一年~ 2024 年,Lin...
什么是 KDE Connect... 什么是 KDE Connect?它的主要特性是什么?它应该如何安装?本文提供了基本的使用指南。科技日...
Opera 浏览器内置的 VP... 昨天我们报道过 Opera 浏览器内置了 VPN 服务,用户打开它可以防止他们的在线活动被窥视。不过...