我听到很多关于 apparmor 的讨论,我想知道以下内容:
- 首页 > 文件 > apparmor > 什么是 apparmor?
- apparmor 如何工作?
答案1
这是什么
Apparmor 是一种强制访问控制 (MAC) 系统。它使用 LSM 内核增强功能来限制程序使用某些资源。AppArmor 通过在系统启动时将配置文件加载到内核来实现这一点。Apparmor 有两种配置文件模式:强制和投诉。强制模式下的配置文件执行syslog
该配置文件的规则并报告或中的违规尝试auditd
。投诉模式下的配置文件不执行任何配置文件规则,仅记录违规尝试。
在 Ubuntu 中,Apparmor 是默认安装的。它将应用程序限制在配置文件中,以确定程序需要访问哪些文件和权限。一些应用程序会自带属性,更多属性可以在软件包中找到apparmor-profiles
。
您可以apparmor-profiles
通过运行来安装sudo apt-get install apparmor-profiles
。
我在 Ubuntu 论坛上找到了 Apparmor 的一个很好的例子,我为这篇文章重写了它。
Apparmor 是一个安全框架,可以防止应用程序作恶。例如:如果我运行 Firefox 并访问一个恶意网站,该网站试图安装恶意软件并删除我的
home
文件夹,Apparmor 会限制 Firefox,但会阻止它执行任何我不想执行的操作(例如访问我的音乐、文档等)。这样,即使您的应用程序受到攻击,也不会造成任何损害。
怎么运行的
该apparmor-utils
软件包包含用于配置 Apparmor 的命令行工具。使用它,您可以更改 Apparmor 的执行模式、查找配置文件的状态、创建新的配置文件等。
这些是最常见的命令:
笔记:个人资料存储在/etc/apparmor.d/
- 您可以使用 检查 Apparmor 的状态
sudo apparmor_status
。您将获得已加载的所有配置文件*、强制模式下的所有配置文件、投诉模式下的所有配置文件的列表,以及在强制/投诉中定义的进程等。 - 将配置文件放入抱怨您使用的模式
sudo aa-complain /path/to/bin
,/path/to/bin
程序bin
文件夹在哪里。例如,运行:sudo aa-complain /usr/bin/firefox
将使 Firefox 处于投诉模式。 - 您用来
sudo aa-enforce /path/to/bin
强制执行程序配置文件。 - 您可以加载全部
sudo aa-complain /etc/apparmor.d/*
分别使用和将配置文件分为投诉/强制模式sudo aa-enforce.d/*
。
要将配置文件加载到内核,您可以使用apparmor_parser
。您可以使用参数重新加载配置文件-r
。
- 要加载配置文件,请使用:
cat /etc/apparmor.d/profile.name | sudo apparmor_parser -a
,它可以有效地将内容打印profile.name
到 Apparmor 的解析器中。 - 要重新加载配置文件,请使用
-r
参数,如下所示:cat /etc/apparmor.d/profile.name | sudo apparmor_parser -r
- 要重新加载 Apparmor 的所有配置文件,请使用:
sudo service apparmor reload
要禁用配置文件,请关联像这样 /etc/apparmor.d/disable/
使用它:然后运行:。 ln
sudo ln -s /etc/apparmor.d/profile.name /etc/apparmor.d/disable/
sudo apparmor_parser -R /etc/apparmor.d/profile.name
笔记:不要混淆apparmor_parser -r
和apparmor_parser -R
它们不是同一件事!
- 要重新启用配置文件,请删除指向它的符号链接,
/etc/apparmor.d/disable/
然后使用参数加载它-a
。sudo rm /etc/apparmor.d/disable/profile.name
cat /etc/apparmor.d/profile.name | sudo apparmor_parser -a
- 您可以
sudo service apparmor stop
使用以下命令禁用 Apparmor 并删除内核模块sudo update-rc.d -f apparmor defaults
- 使用以下命令启动 Apparmor
sudo service apparmor start
并使用以下命令加载内核模块sudo update-rc.d apparmor defaults
个人资料
配置文件存储在 中/etc/apparmor.d/
,并以其所分析的可执行文件的完整路径命名,将 '/' 替换为 '.'。例如中的/etc/apparmor.d/bin.ping
配置文件。 ping
/bin
配置文件中使用的条目主要有两种类型:
路径条目确定应用程序可以访问哪些文件。
能力条目决定进程可以使用什么权限。
ping
让我们以位于 的的个人资料etc/apparmor.d/bin.ping
为例。
#include <tunables/global>
/bin/ping flags=(complain) {
#include <abstractions/base>
#include <abstractions/consoles>
#include <abstractions/nameservice>
capability net_raw,
capability setuid,
network inet raw,
/bin/ping mixr,
/etc/modules.conf r,
}
#include <tunables/global>
global
包含目录中的文件tunables
,这允许将与多个应用程序有关的语句放在一个公共文件中。
/bin/ping flags=(complain)
设置被分析程序的路径,并将模式设置为投诉。
capability net_raw
允许应用程序访问该CAP_NET_RAW Posix.1e
功能。
/bin/ping mixr
允许应用程序读取并执行该文件的访问。
/etc/modules.conf r,
给出r
了应用程序读特权/etc/modules.conf
笔记:创建/编辑配置文件后,您需要重新加载配置文件以使更改生效。
以下是您可以使用的权限列表:
r
- 读w
- 写ux
- 不受约束的执行Ux
- 不受约束的执行——清理环境px
- 离散轮廓执行Px
- 离散配置文件执行——清理环境ix
- 继承执行m
-允许PROT_EXEC
通话mmap(2)
l
- 关联
来源
答案2
AppArmor 是一种强制访问控制 (MAC) 系统,它是内核 (LSM) 的增强功能,用于将程序限制在一组有限的资源内。AppArmor 的安全模型是将访问控制属性绑定到程序而不是用户。AppArmor 限制通过加载到内核的配置文件提供,通常在启动时加载。AppArmor 配置文件可以处于两种模式之一:强制和投诉。在强制模式下加载的配置文件将导致强制执行配置文件中定义的策略以及报告策略违规尝试(通过 syslog 或 auditd)。投诉模式下的配置文件不会强制执行策略,而是报告策略违规尝试。
AppArmor 与 Linux 上一些其他 MAC 系统的不同之处在于,它是基于路径的,允许混合强制和投诉模式配置文件,使用包含文件来简化开发,并且进入门槛比其他流行的 MAC 系统低得多。
AppArmor 是一项成熟的技术,最早见于 Immunix,后来被集成到 Ubuntu、Novell/SUSE 和 Mandriva。从 2.6.36 开始,AppArmor 的核心功能就已包含在主线 Linux 内核中;AppArmor、Ubuntu 和其他开发人员正在努力将其他 AppArmor 功能合并到主线内核中。
我为您提供了更多有用的链接:维基百科 Ubuntuforums.org
Apparmor 指南Ubuntu 12.04&Ubuntu 12.10
希望这对你有帮助。
答案3
以下是来自Apparmor 维基:
AppArmor 是一种有效且易于使用的 Linux 应用程序安全系统。AppArmor 通过强制执行良好行为并防止未知的应用程序漏洞被利用,主动保护操作系统和应用程序免受外部或内部威胁,甚至是零日攻击。AppArmor 安全策略完全定义了各个应用程序可以访问哪些系统资源以及具有哪些权限。AppArmor 包含许多默认策略,并且通过使用高级静态分析和基于学习的工具的组合,即使是非常复杂的应用程序的 AppArmor 策略也可以在数小时内成功部署。