AppArmor
此條目包含過多行話或專業術語,可能需要簡化或提出進一步解釋。 (2018年2月3日) |
AppArmor (「Application Armor」,意為「應用盔甲」) 是一個Linux內核安全模組,允許系統管理員通過每個程式的設定檔限制程式的功能。如它的幫助頁面所說,「AppArmor 是一個對內核的增強工具,將程式限制在一個有限的資源集合中。AppArmor 獨特的安全模型將對訪問屬性的控制繫結到程式而非用戶。」[2]
原作者 | Immunix |
---|---|
開發者 | Canonical Ltd, SUSE ➝ Novell |
首次釋出 | 1998年 |
目前版本 |
|
原始碼庫 | |
程式語言 | C, Perl, C++, sh |
作業系統 | Linux |
類型 | 安全 |
特許條款 | GNU通用公眾特許條款 |
網站 | apparmor |
AppArmor 通過提供強制訪問控制(MAC)來補充傳統的Unix自主訪問控制(DAC)模型。 從Linux內核的2.6.36版本開始,它已經被包含在主流分支中,並且自2009年它的開發得到了 Canonical 公司的支援。[3][4]
功能特性[2]
AppArmor 對相關程式的約束與控制通過 apparmor_parser 載入到內核的設定檔來提供,這一般通過 /etc/init.d/apparmor 中的 SysV initscript ,如:
# /etc/init.d/apparmor start
# /etc/init.d/apparmor stop
# /etc/init.d/apparmor restart
AppArmor可以以兩種模式執行:執行(enforcement)模式或學習(complain/learning)模式:
- 執行模式 - 載入的設定檔中定義的策略將會被執行,並且會向 syslogd 報告違規嘗試。
- 學習 - 以「學習」模式載入的設定檔不會執行策略。 它僅僅會報告違反策略的嘗試。這種模式對於開發設定檔很方便。利用這種模式可以根據各個程式針對性地生成設定檔。
AppArmor 是使用Linux安全模組(LSM)內核介面實現的。[5] 在2009年,Linux 2.6.30 中包含了一個名為 Tomoyo 的新解決方案[6];像 AppArmor 一樣,它也使用基於路徑的訪問控制。
同 SELinux 的異同
AppArmor 是作為 SELinux 的替代品出現的,因為對 SELinux 的批評者認為它難以讓管理員設置和維護。[7]與基於將標籤應用於檔案的 SELinux 不同,AppArmor 使用檔案路徑來確認檔案。 AppArmor 的支持者聲稱,它對普通用戶而言要比 SELinux 更簡單、更易學習。[8][9] 他們還認為 AppArmor 對現有系統的要求更低:例如 SELinux 需要支援「安全標籤」的檔案系統[10],因此無法為通過 NFS 掛載的檔案提供訪問控制。 AppArmor 則對檔案系統沒有要求。
但不論如何,這兩個軟件產品對讓管理員加強系統的安全性都非常有幫助。他們都專注於訪問控制,強化了標準的Linux訪問控制策略。他們都生成紀錄檔,並提供審計活動的工具。他們都在應用程式層內工作。從技術上講,他們同樣地使用LSM與Linux內核進行互動。它們允許管理員使用GUI與非GUI工具。最後,它們都允許管理員在沒有真正阻止訪問的情況下嘗試策略(而只是警告),以便僅在足夠數量的測試之後才應用安全加固策略。[11]
SELinux 和 AppArmor 的不同主要體現在管理方式和整合方式上。例如一個重要的區別: SELinux 通過 inode 編號而不是路徑標識檔案系統對象。[12]這意味着如果給一個無法訪問的檔案建立了硬連結,在 AppArmor 中它將可以訪問,但 SELinux 通過新建立的硬連結仍然會拒絕訪問——由 inode 參照的基礎數據是一樣的。另外,在文件數量上 AppArmor 要比 SELinux 略遜一籌,這意味着網上尋找解決方案的難易程度同樣有所差異。[11]
歷史
AppArmor 在1998~2003年首先在 Immunix Linux中被使用。當時,AppArmor被稱為SubDomain,[13][14]這個名字意在將特定程式的安全設定檔分割成不同的域,而程式可以動態地在不同的域中進行切換。 AppArmor 首先在 SLES 和 openSUSE 中可用,並且在 SLES 10 和 openSUSE 10.1 中預設首先啟用。
2005年5月,Novell 收購了 Immunix 並將 SubDomain 重新命名為 AppArmor,並開始對其 Linux 內核進行代碼清理和重寫。[15]從2005年到2007年9月,AppArmor 由 Novell 維護。從那時起,SUSE 就是商標名 AppArmor 的合法所有者。[16]
AppArmor 在2007年4月第一次成功移植並打包於 Ubuntu。它成為Ubuntu 7.10版本的預設軟件套件,並最終作為Ubuntu 8.04發行版的一部分,預設設置只保護 CUPS。從 Ubuntu 9.04 開始,更多的專案(如MySQL)已經安裝了設定檔。在 Ubuntu 9.10 中,AppArmor 的功能不斷得到改進,因為它提供了客戶對談、libvirt 虛擬機器、Evince文件檢視器的設定檔。它還提供了一個可選的 Firefox 的設定檔。[17]
AppArmor 第一次被整合到 Linux 內核中是在2010年10月的2.6.36版本。[18][19][20][21]
2014年,AppArmor 已經整合到了 Synology 的 DSM 5.1 Beta中。[22]
參見
參考文獻
- ^ Release_Notes_3.1.7 · Wiki · AppArmor / apparmor · GitLab. 2024年2月2日 [2024年3月18日] (英語).
- ^ 2.0 2.1 Apparmor(7) man page.
- ^ Pete Graner. The Ubuntu Kernel (PDF). 2009年 [2018年2月]. (原始內容存檔 (PDF)於2018-12-22).
- ^ Canonical Mainlines A Bunch Of Their AppArmor Changes For Linux 4.13 - Phoronix. www.phoronix.com. [2018-02-02]. (原始內容存檔於2018-02-03) (英語).
- ^ Andreas Gruenbacher & Seth Arnold. AppArmor Technical Documentation (PDF). SUSE Labs / Novell. 2004年11月 [2018年2月]. (原始內容存檔 (PDF)於2019-02-15).
- ^ TOMOYO Linux [LWN.net]. lwn.net. [2018-02-02]. (原始內容存檔於2018-02-03).
- ^ Mayank Sharma. Linux.com :: SELinux: Comprehensive security at the price of usability. 2006-12-11 [2018-02-02]. (原始內容存檔於2009-02-02).
- ^ Ralf Spenneberg. Protective armor: Shutting out intruders with AppArmor. Linux Magazine. August 2006 [2008-08-02]. (原始內容存檔於2008-08-21).
- ^ Comparison Between AppArmor and Selinux. security.stackexchange.com. [2018-02-02]. (原始內容存檔於2018-02-03).
- ^ James Morris. Filesystem Labeling in SELinux (PDF). ]. 2004年11月 [2018年2月]. (原始內容存檔 (PDF)於2018-02-03).
- ^ 11.0 11.1 SELinux and AppArmor: An Introductory Comparison. Scribd. [2018-02-02]. (原始內容存檔於2019-02-15) (英語).
- ^ AppArmor与SELinux - 运维之路. www.361way.com. [2018-02-02]. (原始內容存檔於2018-02-03).
- ^ Vincent Danen. Immunix System 7: Linux security with a hard hat (not a Red Hat). 2001-12-17 [2018-02-02]. (原始內容存檔於2012-05-23).
- ^ WireX Communications, Inc. Immunix.org: The Source for Secure Linux Components and Platforms. 2000-11-15 [2018-02-02]. (原始內容存檔於2001-02-03).
- ^ AppArmor History. AppArmor. [2018-02-02]. (原始內容存檔於2017-07-02).
- ^ AppArmor Trademark. United States Patent and Trademark Office. [2018年2月]. (原始內容存檔於2018-02-03).
- ^ SecurityTeam/KnowledgeBase/AppArmorProfiles - Ubuntu Wiki. [9 January 2011]. (原始內容存檔於2018-02-03).
- ^ James Corbet. The 2.6.36 kernel is out. 2010-10-20 [2018-02-02]. (原始內容存檔於2018-02-03).
- ^ Linus Torvalds. Change Log. 2010-10-20 [2018-02-02]. (原始內容存檔於2011-09-04).
- ^ Linux 2 6 36. 2010-10-20 [2018-02-02]. (原始內容存檔於2018-06-10).
- ^ Sean Michael Kerner. Linux Kernel 2.6.36 Gets AppArmor. 2010-10-20 [2018-02-02]. (原始內容存檔於2018-02-03).
- ^ [email protected]. NAS Synology : le DSM 5.1 est là, avec des mises à jour automatiques. 2014-07-11 [2018-02-02]. (原始內容存檔於2018-02-03) (法語).
外部連結
- AppArmor Wiki (存檔)
- AppArmor openSUSE 百科中的一些評論 (英文)
- LKML thread(頁面存檔備份,存於互聯網檔案館) 包含一些對 AppArmor 的評論和評價 (英文)
- Ubuntu 百科中相關條目(頁面存檔備份,存於互聯網檔案館) (英文)
- Arch Linux 百科中相關條目(頁面存檔備份,存於互聯網檔案館) (英文)
- Counterpoint:(頁面存檔備份,存於互聯網檔案館) 原標題:Novell and Red Hat security experts face off on AppArmor and SELinux (英文)
- AppArmor Application Security for Linux(頁面存檔備份,存於互聯網檔案館) (英文)