Linux内核模块 – 安全风险?

Linux内核模块有多少安全风险?我记得读过如果有人有权访问,他们所要做的就是加载一个rootkit模块.它是否正确?有什么方法可以防止这种情况发生吗?

内核的哪些部分实际上是通过模块接口公开的,程序员可以访问哪些功能,可以用于恶作剧目的?

解决方法

道格拉斯所说的完全正确,Linux是 monolithic,模块可以做任何事情.这是一个主要由Linus Thorvalds驱动的设计选择,并且符合开源理念(为什么限制,它需要性能,你可以从源头看到模块做什么 – 实际上只说真正的书呆子:-) – ).

现在也许你必须从第三方加载一些所谓的二进制模块.即使它们似乎被编译,通常也会有一个共同的目标文件作为黑盒子,并且实际上只编译它周围的接口(就像我使用的nvidia图形驱动程序一样).没有明确的答案,如果您加载这些模块,您必须信任供应商,如果没有,不要这样做…

只有root才能加载理论上正确的模块.但实际上,没有一个系统是完美的(甚至是Linux).有时会出现内核漏洞,使本地用户或远程用户(非常罕见的情况)可以将代码引入内核,以便他们可以拥有root权限,从而可以控制您的系统.拥有最新的内核是件好事……

在对此进行精确化之后,让我们进入到目前为止尚未回答的问题的第二部分:“程序员可以访问哪些功能,可以用于恶作剧目的?”.为SE-Linux做的许多事情也可用于恶意目的,例如:

>隐藏/ proc或/ sys目录中的信息,例如隐藏恶意用户进程,以便它们不会显示在top,ps等工具中.这包括隐藏恶意模块本身,因此它未在lsmod中列出.
>记录和记录击键…
>向外界发送数据.没有内核模块需要连接到站点并发送信息(原始linux代码中的网络堆栈除外),如果模块的代码确实有异味.如果某些字符串被加密和解密以进行某些操作,那就更难闻了……
> ……

列表很大,如果你想了解更多细节,你可以看看Rootkit Hunter(http://www.rootkit.nl/projects/rootkit_hunter.html).这是我不时运行的工具.它可以检测到一些广泛使用的rootkits的存在.它管理一个rootkit列表和谷歌搜索名称将使你清楚这些野兽正在遵循什么样的目标…像道格拉斯所说,可以使用的功能实际上是所有的内核中可用的函数,没有限制.因此,告诉模块是否是一个坏人并不是一件明显的事情.

相关文章

Linux中的ARP防火墙主要用于防御ARP欺骗攻击,其效果取决于多...
insmod和modprobe加-f参数导致Invalid module format错误 这...
将ArchLinux安装到U盘 几个月前入门Arch的时候上网搜了不少安...
1、安装Apache。 1)执行如下命令,安装Apache服务及其扩展包...
一、先说一下用ansible批量采集机器信息的实现办法: 1、先把...
安装配置 1. 安装vsftpd 检查是否安装了vsftpd # rpm -qa | ...