【操作系统百科】SELinux 与 AppArmor

💡 原文中文,约3300字,阅读约需8分钟。
📝

内容提要

DAC(自主访问控制)和MAC(强制访问控制)是Linux的安全机制。DAC基于用户ID(UID)和组ID(GID),而MAC在此基础上增加了强制策略。LSM框架支持多个安全模块的堆叠,SELinux采用类型强制,AppArmor则使用路径强制。SELinux复杂但粒度细,AppArmor简单但粒度粗。BPF_LSM提供可编程的安全策略。

🎯

关键要点

  • DAC(自主访问控制)基于用户ID(UID)和组ID(GID),一旦进程被入侵就拥有该用户的全部权限。

  • MAC(强制访问控制)在DAC之上增加了一层强制策略。

  • LSM框架支持多个安全模块的堆叠,包括SELinux、AppArmor等。

  • SELinux采用类型强制,具有更细的粒度但复杂度高,适用于RHEL/Fedora等发行版。

  • AppArmor使用路径强制,粒度较粗,复杂度低,适用于Ubuntu/SUSE等发行版。

  • BPF_LSM提供可编程的安全策略,不需要编写内核模块。

  • SELinux和AppArmor都可以通过拒绝日志生成策略,SELinux使用audit2allow,AppArmor使用aa-logprof。

  • Linux 5.1及以上版本支持LSM堆叠,可以同时使用多个安全模块。

🔎

延伸解读

DAC与MAC的区别

DAC(自主访问控制)和MAC(强制访问控制)是Linux安全机制的两种不同模型。DAC依赖于用户ID和组ID,存在被入侵后权限过大的风险;而MAC则在此基础上增加了强制策略,提供了更高的安全性。理解这两者的区别有助于选择合适的安全策略。

SELinux与AppArmor的适用场景

SELinux和AppArmor各有优缺点,适用于不同的发行版。SELinux提供更细粒度的控制,适合需要高安全性的环境,如RHEL和Fedora;而AppArmor则因其简单易用,适合Ubuntu和SUSE等用户。选择时应考虑系统需求和管理复杂度。

LSM框架的灵活性

Linux的LSM框架支持多个安全模块的堆叠,这意味着用户可以根据需求同时使用SELinux、AppArmor等模块。此灵活性使得系统管理员能够根据具体的安全需求定制安全策略,提升系统的整体安全性。

延伸问答

SELinux和AppArmor有什么主要区别?

SELinux采用类型强制,粒度更细但复杂度高;AppArmor使用路径强制,粒度较粗且复杂度低。

什么是DAC和MAC,它们的作用是什么?

DAC(自主访问控制)基于用户ID和组ID,MAC(强制访问控制)在DAC基础上增加强制策略,提供更高的安全性。

LSM框架的作用是什么?

LSM框架支持多个安全模块的堆叠,允许在内核关键操作前调用安全钩子以增强系统安全性。

如何生成SELinux和AppArmor的安全策略?

SELinux可以通过拒绝日志生成策略,使用audit2allow工具;AppArmor则可以通过学习模式记录访问并生成策略。

BPF_LSM是什么,它有什么优势?

BPF_LSM是可编程的安全策略模块,允许动态定义安全策略,无需编写内核模块,增强了灵活性。

SELinux和AppArmor的默认发行版分别是什么?

SELinux的默认发行版是RHEL/Fedora,AppArmor的默认发行版是Ubuntu/SUSE。

🏷️

标签

➡️

继续阅读