0
点赞
收藏
分享

微信扫一扫

LSM (linux security modules)

Linux Security Modules(LSM)是一个框架,它允许Linux内核支持各种不同的计算机安全模型,同时不偏爱任何特定的安全策略。LSM 最初在Linux 2.6内核中引入,它提供了一组挂钩点(hooks),这些挂钩点被插入到内核的关键操作中,安全模块可以使用这些挂钩来执行访问控制决策。

LSM的目的和功能

LSM的设计目的是为了在不需要修改内核源码的情况下提供安全功能。LSM使得不同的安全策略和模型可以通过模块的形式被添加到内核中。这样,操作系统的安全可以根据需求进行定制与扩展,而无需改动到内核的核心部分。

主要功能包括:

  • 强制访问控制(Mandatory Access Control, MAC):在标准的基于所有权和模式位的访问控制(Discretionary Access Control, DAC)之上增加额外的控制。
  • 可加载安全模块:系统管理员可以选择安装和配置各种安全策略,如SELinux、AppArmor、Smack或Tomoyo Linux。
  • 审计:跟踪并记录系统中的安全相关事件。

LSM挂钩点

LSM提供了超过200个挂钩点,覆盖了像文件操作、任务管理、网络操作、IPC等多个系统领域。通过这些挂钩点,安全模块可以拦截内核中的许多操作:

  • 文件系统操作(如打开、读取、写入文件)
  • 进程执行和权限变更
  • 网络套接字操作
  • 系统调用的执行
  • 内存映射操作
  • IPC操作

常见LSM实现

  • SELinux(Security-Enhanced Linux):由美国国家安全局(NSA)开发与维护的一个强制访问控制系统。SELinux提供了基于策略的安全性,其中策略描述了细粒度的访问控制规则。
  • AppArmor(Application Armor):另一种流行的LSM实现,它使用程序的路径名字来定义规则,主要关注程序的行为,以避免未经授权的文件访问和操作。
  • Smack(Simplified Mandatory Access Control Kernel):是为简化安全配置而设计的另一个MAC系统,特别是在嵌入式系统中。
  • Tomoyo Linux:这是一种日本开发的LSM,它使用路径名和程序行为历史信息来定义其安全策略。

如何选择和配置LSM

选择哪一个LSM取决于具体的安全需求和策略。管理员需要考虑的因素包括所需要保护的资源、系统的用途、以及他们自己的安全政策和程序的特性。另外还要考虑LSM对系统性能的影响,以及它们相对的复杂性和可维护性。

配置LSM通常涉及到编辑内核的配置文件,如.config,并在编译内核时选择需要启用的模块。一些发行版提供了预编译的内核选项来简化这个过程。在内核启动时,也可以通过传递启动参数来选择LSM,例如lsm=lockdown,yama,selinux,smack等。

LSM框架的设计有助于系统管理员根据他们自己的安全需求定制内核,创造出更安全的运行环境。随着Linux安全需求的不断发展,新的LSM钩子和模块也在持续被开发和集成到内核中去。

通过LSM,Linux系统能够更好地根据安全要求进行配置与管理,提高系统抵抗恶意软件和未授权操作的能力。

举报

相关推荐

0 条评论