郑重声明:

近期笔者发现本文及其它文章被一条大河网非法盗用,该网站盗用链接如下:AppArmor零知识学习一、初识

截图如下:

笔者欢迎转载,也乐中于知识分享,但请在转载时注明原文出处。该网站在文章中并未注明“转载”字样,也没有给出转载链接,属于赤裸裸的侵权行为,在此对一条大河网予以强烈谴责!并在此申明:本系列文章系笔者(CSD 笔名蓝天居士)原创,其它未注明出处的转载均属于非法!

本文内容参考:

AppArmor · GitBook,

Linux安全模块AppArmor总结-CSDN博客,

AppArmor快速入门-CSDN博客,

apparmor 初识(一)_domybest_nsg的博客-CSDN博客,

AppArmor与SElinux_apparmor selinux_weixin_45216475的博客-CSDN博客,

apparmor_什么是AppArmor?如何确保Ubuntu安全?_culingluan4376的博客-CSDN博客,

学习LSM(Linux security module)之三:Apparmor的前世今生和基本使用_Yuri800的博客-CSDN博客

一、何为AppArmor

在研究SELinux的时候,发现还有个AppArmor,这也是第一次接触。见新名词、新事物不能交臂而失之,因此本系列文章就来认识、了解并深入研究AppArmor。

AppArmor的全称是Application Armor,Application自不必说,是应用的意思,那么Armor是什么意思?armor的英文原意是盔甲,作动词时意义是为……装盔甲。弄清楚了armor的意思之后,Application Armor的意思就豁然开朗了且一目了然吧:为应用程序装盔甲。你从字面上就能知道AppArmor一定和安全相关,不然都对不起这名字。

AppArmor是Linux内核的强制访问控制(MAC)的一个实现方案,与SELinux并列,也是使用了Linux安全模块(LSM)框架,因此它们可以互换。AppArmor默认集成在openSUSE和Ubuntu等发行版中(在openSUSE、Ubuntu等发行版上默认开启)。而SELinux则默认集成在Red Hat和CentOS上。

二、背景及产生原因

AppArmor最初由Immunix开发,随后由Novell维护。AppArmor的开发初衷是因为有人认为SELinux太过复杂,不适合普通用户管理。—— 这一点笔者举双手赞同,从开始研究SELinux到现在两周了,仍然没有弄清楚那些具体的策略怎样写(涉及主体、客体、域、许可……)。

那么具体比较一下AppArmor和SELinux,看看AppArmor与SELinux相比,到底有何异同:

  • 相同点

AppArmor和SELinux都是Linux内核的安全模块,都使用了Linux安全模块(LSM)框架;

AppArmor和SELinux都属于强制访问控制(MAC)机制;

AppArmor和SELinux基本的概念和使用类似,如都包括complain和enforce模式;

AppArmor和SELinux都有图形化配置工具。

  • 不同点

相比SELinux,AppArmor相对简单易用(例如规则文件无需编译),更加适合日常使用;

SELinux需要一个支持扩展属性的文件系统,而AppArmor对文件系统没有任何要求;

与SELinux必须只有明确的允许策略才能允许访问不同,AppArmor只有当程序的配置文件明确规定了受限,才会限制;

SELinux基于角色,AppArmor基于路径;

SELinux规则文件需要编译,AppArmor规则文件无需编译;

AppArmor具有学习模式。

三、AppArmor VS SELinux

实际上边已经比较了AppArmor和SELinux的异同。在此从宏观层面将两者进行更加全方位的比较:

  • 易用性

对一个FTP程序做相同的限制,使用AppArmor的规则只是SELinux的1/4,而且从代码的替代性上来看,Apparmor的代码也更易理解和易读。

  • 安全性

毋庸置疑,SELinux更安全。看下SELinux的出身,其是美国国家安全局「NSA」和SCC(Secure Computing Corporation)开发的Linux的一个扩展强制访问控制安全模块,可谓“根红苗正”。再从理论上也可以了解到SELinux与Apparmor最大的区别在于:Apparmor使用文件名(路径名)作为安全的标签,而SELinux使用文件的inode作为安全标签。这意味着,Apparmor机制可以通过修改文件名而被绕过。另外,在文件系统中,只有inode才具有唯一性。

最后做个小总结,无论是CentOS/Red Hat还是openSUSE/Ubuntu,它们都是优秀的产品。在AppArmor与SELinux的选择上,也都有各自的考量。如果从配置与上手的难易程序上来说,Apparmor更容易配置、入门和上手;如果从追求更高的安全性上来说,SELinux上更优一些。从日立软件的测试结果来看,也比较推荐使用SELinux而不是AppArmor。

AppArmor零知识学习一、初识相关推荐

  1. AppArmor零知识学习十四、实操与实践(2)

    本文内容参考: Linux安全模块AppArmor总结-CSDN博客, apparmor首页.文档和下载 - 应用程序访问控制系统 - OSCHINA - 中文开源技术交流社区, AppArmor · ...

  2. TPM零知识学习一 —— 初识

    本文内容参考借鉴了以下链接: TPM安全芯片_百度百科 TCG(可信计算组织)_百度百科 TPM是什么? TPM英文全称为Trusted Platform Module,中文译为可信赖平台模块.TPM ...

  3. libvirt零知识学习3 —— libvirt源码编译安装(1)

    接前一篇文章libvirt零知识学习2 -- libvirt源码下载 上一篇文章中详细介绍了libvirt的源码下载过程,下载了libvirt-8.10.tar.xz并解压.本文在前文的基础上进行源码 ...

  4. SELinux零知识学习四、Audit应用层源码下载、编译和安装

    接前一篇文章:SELinux零知识学习三.SELinux应用层源码下载.编译和安装 在前篇文章中编译SELinux源码时,出现了如下错误: seusers_local.c:11:10: 致命错误:li ...

  5. LSM零知识学习六、插桩原理实现细节(4)

    接前一篇文章:LSM零知识学习五.插桩原理实现细节(3) 本文内容参考: LSM(Linux Security Modules)框架原理解析_lsm linux_pwl999的博客-CSDN博客 特此 ...

  6. Nancy in .Net Core学习笔记 - 初识Nancy

    原文:Nancy in .Net Core学习笔记 - 初识Nancy 前言 去年11月份参加了青岛MVP线下活动,会上老MVP衣明志介绍了Nancy, 一直没有系统的学习一下,最近正好有空,就结合. ...

  7. libvirt零知识学习6 —— libvirt源码编译安装(4)

    接前一篇文章libvirt零知识学习5 -- libvirt源码编译安装(3) 上一篇文章中解决了YAJL包的编译时依赖问题.但是在解决后再次执行meson build时又遇到了新的错误"E ...

  8. libvirt零知识学习4 —— libvirt源码编译安装(2)

    接前一篇文章libvirt零知识学习3 -- libvirt源码编译安装(1) 上一篇文章中讲到执行以下构建命令时出现了错误"ERROR: Problem encountered: YAJL ...

  9. Nacos学习之初识Nacos

    Nacos学习之初识Nacos 在分布式项目中既然存在Eureka这个注册中心,那么Nacos有充当什么角色?Nacos到底是个啥?他又是咋么下载安装的?本文我会将从什么是Nacos.Nacos与其他 ...

最新文章

  1. java一维数组初始化_Java一维数组,初始化一维数组详解
  2. 据说只有程序员才看得懂 | 每日趣闻
  3. 开发板 pc机 虚拟机 三者之间如何互ping通
  4. python第一堂课
  5. EMR集群安全认证和授权管理
  6. JAVA中数组Array与List互转
  7. springboot中的拦截器interceptor和过滤器filter,多次获取request参数
  8. 期待鸿蒙是什么意思,如何看待华为将于 6月2 日举办鸿蒙发布会?你对此有哪些期待?...
  9. Shrink space合并表的碎片
  10. MySQL 之事务 及 其隔离级别
  11. android学习—— context 和 getApplicationContext()
  12. 存管 托管 监管 区别
  13. SpringBoot上传文件到服务器
  14. 考虑实时安全优化的自学习自适应交通信号控制
  15. STC12C5A60S2A/D转换
  16. 图着色问题(超详细!!!)
  17. 大数据案例--电信日志分析系统
  18. 【排序】八大排序算法简介及它们各自的特点总结
  19. java实现如何定时给微信群中发送消息
  20. 路径规划——CH算法

热门文章

  1. 每日一C:自然数倒数的平方和
  2. 学python人工智能电脑要什么配置_本人是大一人工智能专业,不打游戏,我们需要学习C++和Python。用什么配置的笔记本电脑比较好?...
  3. 雨水泛洪和网络泛洪那个更可怕
  4. canvas横屏签名,签名图片旋转90度生成base64
  5. 电压跟随器在电子电路设计中的主要作用
  6. 泼辣修图专业版 Polarr Photo Editor 5.4.9 中文特别版 Mac 强大易用的修图工具
  7. 模电中的经典运放电路总结
  8. SQL数据库开发笔记
  9. Oracle各种版本下“示例数据库的创建”的创建
  10. MSS代码解读-MmwDemo_mboxReadTask线程(八)