忘记密码   免费注册 查看新帖 | 论坛精华区

ChinaUnix.net

  平台 论坛 博客 认证专区 大话IT HPC论坛 徽章 文库 沙龙 自测 下载 频道自动化运维 虚拟化 储存备份 C/C++ PHP MySQL 嵌入式 Linux系统
最近访问板块 发新帖
查看: 10032 | 回复: 9

使用额外属性保护 ext3 文件系统安全 [复制链接]

论坛徽章:
13
技术图书徽章
日期:2014-04-29 14:15:42IT运维版块每日发帖之星
日期:2015-12-12 06:20:00IT运维版块每日发帖之星
日期:2015-08-30 06:20:00IT运维版块每日发帖之星
日期:2015-08-24 06:20:00IT运维版块每日发帖之星
日期:2015-08-02 06:20:002015年亚洲杯之澳大利亚
日期:2015-04-03 15:03:12申猴
日期:2015-03-20 09:00:292015年迎新春徽章
日期:2015-03-04 09:54:452015年辞旧岁徽章
日期:2015-03-03 16:54:15季节之章:冬
日期:2015-01-20 17:08:47双子座
日期:2014-11-21 16:30:31技术图书徽章
日期:2014-07-11 16:29:08
发表于 2012-02-14 22:24 |显示全部楼层
晚上看了一点资料,分享下,可能有高手已经熟悉了,不过对于我这种入门的来说还是刚知道的。

使用额外属性保护 ext3 文件系统安全

ext3 中的额外属性

从 Linux 的 1.1 系列内核开始,ext2 文件系统就开始支持一些针对文件和目录的额外标记或者叫作属性(attribute)。在 2.2 和 2.4 系列及其高版本的内核中,ext3 文件系统支持以下属性的设置和查询(如表 1 所示):


表 1. ext3 文件系统支持的属性含义
属性名  含 义  
A  Atime。告诉系统不要修改对这个文件的最后访问时间  
S  Sync。一旦应用程序对这个文件执行了写操作,使系统立刻把修改的结果写到磁盘  
a  Append Only。系统只允许在这个文件之后追加数据,不允许任何进程覆盖或者截断这个文件。如果目录具有这个属性,系统将 只允许在这个目录下建立和修改文件,而不允许删除任何文件  
i  Immutable。系统不允许对这个文件进行任何的修改。如果目录具有这个属性,那么任何的进程只能修改目录之下的文件,不允许建立和删除文件。  
d  No dump。在进行文件系统备份时,dump程序将忽略这个文件  
c  Compress。系统以透明的方式压缩这个文件。从这个文件读取时,返回的是解压之后的数据;而向这个文件中写入数据时,数据首先被压缩之后,才写入磁盘  
s  Secure Delete。让系统在删除这个文件时,使用0填充文件所在的区域  
u  Undelete。当一个应用程序请求删除这个文件,系统会保留其数据块以便以后能够恢复删除这个文件  


虽然文件系统能够接受并保留指示每个属性的标志,但是这些属性不一定有效,这依赖于内核和各种应用程序的版本。表 2 显示了 Linux 每个版本内核支持的属性标志的具体情况,其中:

•OK:表示允许设置这个标志并使设置生效;
OK:允许设置这个标志但忽略其值;
•——:表示完全忽略这个标志。

表 2. Linux 各内核版本对属性的支持情况
属性名 内核版本  Kernel 1.0  Kernel 1.2  Kernel 2.0  Kernel 2.2  Kernel 2.4  Kernel 2.6  
A  ——  ——  OK  OK  OK  OK  
S  OK  OK  OK  OK  OK  OK  
a  ——  OK  OK  OK  OK  OK  
i  ——  OK  OK  OK  OK  OK  
d  ——  OK  OK  OK  OK  OK  
c  POK  POK  POK  POK  POK  POK  
s  OK  OK  POK  POK  POK  POK  
u  OK  OK  OK  OK  OK  OK  


从上述表格可以看出:虽然早期的内核版本支持安全删除特征,但是从 1.3 系列的内核开始,开发者抛弃的对这个特征的实现,因为它似乎只能够提高一点点的安全性,而糟糕的是它会给不熟悉安全删除继承问题的用户造成安全的假象。在对具有 A 属性的文件进行操作时,A 属性可以提高一定的性能。而 S 属性能够最大限度的保障文件的完整性。

因此,我们将主要讨论 a 属性和 i 属性,因为这两个属性对于提高文件系统的安全性和保障文件系统的完整性有很大的好处。同样,一些开放源码的 BSD 系统(比如 FreeBSD 和 OpenBSD),在其 UFS 或者 FFS 实现中也支持类似的特征。

使用 ext3 文件系统的属性

在任何情况下,标准的 ls 命令都不会一个文件或者目录的扩展属性。ext3 文件系统工具包中有两个工具:chattr 和 lsattr。它们被专门用来设置和查询文件属性。因为 ext3 是标准的 Linux 文件系统,因此几乎所有的发布都有 e2fsprogs 工具包。如果由于某些原因,系统中没有这个工具,用户可以从以下地址下载这个工具包的源代码编译并安装:http://sourceforge.net/projects/e2fsprogs

Lsattr 命令

lsattr 命令只支持很少的选项,其选项如下:

•-a:列出目录中的所有文件,包括以 . 开头的文件。
•-d:以和文件相同的方式列出目录,并显示其包含的内容。
•-R:以递归的方式列出目录的属性及其内容。
•-v:列出文件版本(用于网络文件系统 NFS)。
Chattr 命令

chattr 命令可以通过以下三种方式执行:

•chattr +Si filename:给文件添加同步和不可变属性。
•chattr -ai filename:把文件的只扩展(append-only)属性和不可变属性去掉。
•chattr =aiA filename t:使文件只有 a、i 和 A 属性。
最后,每个命令都支持 -R 选项,用于递归地对目录和其子目录进行操作。

ext3 属性和文件权限的区别

几乎所有的系统管理员都理解 Linux 风格文件系统的权限和所有者以及 ls 命令的显示,如图 5 所示:
image005.jpg

图 5. ls 显示结果


从 ls 的输出结果看,这些文件属于用户 super,而 super 所在的用户组是 super。用户 super 本人和 super 用户组的成员对 test2 和 test3 具有对文件的修改权限,而其他的用户对 test1、test2、test3 均只有读取文件的权限。图 6 给出了与图 5 对比的 lsattr 命令的输出:
image006.jpg

图 6. lsattr 显示结果


输出结果显示,test2 只能被添加,而 test1 文件不准修改。在 Linux 系统中,如果一个用户以 root 的权限登录,文件系统的权限控制将无法对 root 用户和以 root 权限运行的进程进行任何的限制。这样对于 Linux 类的操作系统,如果攻击者通过远程或者本地攻击获得 root 权限将可能对系统造成严重的破坏。而 ext3 文件系统可以作为最后一道防线,最大限度地减小系统被破坏的程度,并保存攻击者的行踪。ext3 属性是由 sys_open() 和 sys_truncate() 等系统调用检查和赋予的,不受用户识别号和其他因素的影响,在任何情况下,对具有不可修改(immutable)属性的文件的进行任何修改都会失败,不管是否是 root 用户进行的修改。

但是,还有一个问题是 root 权限的用户可以通过删除 i 属性实现对文件的修改。这种防护只不过给获得 root 权限的攻击者加了一点小麻烦罢了,系统的安全性并没有根本性的提高。

在 2.1 之前的内核版本中,存在一个安全层(securelevel)的特征。使用安全层可以解决上述问题,因为如果系统的安全层大于 0,内核将 不允许对任何文件的 i 属性进行修改。这些版本的内核由 sysctl 命令的"kernel.securelevel"变量进行控制。如果在启动时,这个变量的值被设置为 1 或者更大的值,内核将不允许对具有 i 属性和 a 属性文件进行修改,除非国旗动到单用户状态。但是,由于引入了更为灵活的内核能力特征(kernel capabilities),以后的内核不再支持安全层。使用内核能力,也可以实现类似的 限制。工具 lcap 用来查询和调整内核能力约束集(kernel capabilities bounding set)。在启动脚本中加入以下命令,就可以实现对具有 i 属性和 a 属性文件的保护:

lcap CAP_LINUX_IMMUTABLE
lcap CAP_SYS_RAWIO



第一个命令删除任何用户(包括超级用户)对 i 标志的修改能力。第二个命令删除任何用户(主要针对超级用户)对块设备的原始访问 (raw access) 能力,防止一些技术高超的攻击者直接修改文件系统索引节点的 immutable 域。BTW,在系统启动时,CAP_SYS_RAWIO 能 力应该直接删除,这个能力是一个非常大的潜在威胁。高明的攻击者获得了超级用户权限之后,通过 /dev/kmem 设备可以直接修改内核 内存。通过这种方式,可以破坏系统的内核能力约束集 (kernel capabilities bounding)。如果没有任何参数,会列出内核支持的能力和目 前生效的内核能力。一旦一个内核能力被删除,就只有在系统重新启动,进入到单用户模式才能删除能力限制。

使用 chattr

Linux 主机直接暴露在 Internet 或者位于其它危险的环境,有很多 shell 帐户或者提供 HTTP 和 FTP 等网络服务,一般应该在安装配置完成后使用如下命令:

chattr -R +i /bin /boot /etc /lib /sbin
chattr -R +i /usr/bin /usr/include /usr/lib /usr/sbin
chattr +a /var/log/messages /var/log/secure (...)



如果很少对帐户进行添加、变更或者删除,把 /home 本身设置为 immutable 属性也不会造成什么问题。在很多情况下,整个 /usr 目录树也应该具有不可改变属性。实际上,除了对 /usr 目录使用 chattr -R +ii /usr/ 命令外,还可以在 /etc/fstab 文件中使用 ro 选项,使 /usr 目录所在的分区以只读的方式加载。另外,把系统日志文件设置为只能添加属性(append-only),将使入侵者无法擦除自己的踪迹。当然,如果使用这种安全措施,需要系统管理员修改管理方式。

由于软件管理程序需要加入和删除某些文件和目录,因此在进行软件安装和升级之前需要删除某些目录和文件的 immutable 和 append-only 属性。对于 Linux 系统,一般使用 rpm 管理软件包,用户可以使用以下命令查看要安装或者升级的软件包都有哪些文件:

#rpm -qipl foopackage.rpm



然后去掉有关目录和文件的 immutable 和 append-only 属性。大多数软件包需要 rpm 命令对以下目录的一个或者多个进行写操作:

/bin
/sbin
/usr/bin
/usr/sbin
/usr/man
/lib
/etc



值得注意的是:如果用户需要升级 /usr/sbin/someprogram,应该去掉 someprogram 文件以及目录 /usr/sbin 的 immutable 属性

评分

参与人数 1可用积分 +6 收起 理由
send_linux + 6 感谢分享!

查看全部评分

论坛徽章:
4
CU大牛徽章
日期:2013-03-13 15:29:07CU大牛徽章
日期:2013-03-13 15:29:49CU大牛徽章
日期:2013-03-13 15:30:192015年迎新春徽章
日期:2015-03-04 09:57:09
发表于 2012-02-14 23:07 |显示全部楼层
不错,谢谢分享。

论坛徽章:
3
CU十二周年纪念徽章
日期:2013-10-24 15:41:34狮子座
日期:2014-03-27 15:44:382015年辞旧岁徽章
日期:2015-03-03 16:54:15
发表于 2012-02-15 09:47 |显示全部楼层
不错,以前看到过一些。但不系统

论坛徽章:
0
发表于 2012-03-16 23:18 |显示全部楼层
学习下~~~~~

论坛徽章:
0
发表于 2012-04-01 14:40 |显示全部楼层
以前接触过一些,可是没有深入了解,多谢楼主分享

论坛徽章:
12
2015亚冠之北京国安
日期:2015-10-07 14:28:19NBA常规赛纪念章
日期:2015-05-04 22:32:03处女座
日期:2015-01-15 19:45:44卯兔
日期:2014-10-28 16:17:14白羊座
日期:2014-05-24 15:10:46白羊座
日期:2014-03-12 20:52:17午马
日期:2014-03-01 08:37:27射手座
日期:2014-02-19 19:26:54子鼠
日期:2013-11-30 09:03:56寅虎
日期:2014-05-10 09:50:35狮子座
日期:2013-09-08 08:37:5215-16赛季CBA联赛之同曦
日期:2016-01-28 19:52:03
发表于 2012-05-31 12:51 |显示全部楼层
楼主知道的真多,谢谢分享

论坛徽章:
13
技术图书徽章
日期:2014-04-29 14:15:42IT运维版块每日发帖之星
日期:2015-12-12 06:20:00IT运维版块每日发帖之星
日期:2015-08-30 06:20:00IT运维版块每日发帖之星
日期:2015-08-24 06:20:00IT运维版块每日发帖之星
日期:2015-08-02 06:20:002015年亚洲杯之澳大利亚
日期:2015-04-03 15:03:12申猴
日期:2015-03-20 09:00:292015年迎新春徽章
日期:2015-03-04 09:54:452015年辞旧岁徽章
日期:2015-03-03 16:54:15季节之章:冬
日期:2015-01-20 17:08:47双子座
日期:2014-11-21 16:30:31技术图书徽章
日期:2014-07-11 16:29:08
发表于 2012-05-31 13:42 |显示全部楼层
别客气@!!!

论坛徽章:
12
2015亚冠之北京国安
日期:2015-10-07 14:28:19NBA常规赛纪念章
日期:2015-05-04 22:32:03处女座
日期:2015-01-15 19:45:44卯兔
日期:2014-10-28 16:17:14白羊座
日期:2014-05-24 15:10:46白羊座
日期:2014-03-12 20:52:17午马
日期:2014-03-01 08:37:27射手座
日期:2014-02-19 19:26:54子鼠
日期:2013-11-30 09:03:56寅虎
日期:2014-05-10 09:50:35狮子座
日期:2013-09-08 08:37:5215-16赛季CBA联赛之同曦
日期:2016-01-28 19:52:03
发表于 2012-08-02 20:44 |显示全部楼层
回复 7# dengbao2001


    现在用的什么OS ? fedora? ^_^

论坛徽章:
13
技术图书徽章
日期:2014-04-29 14:15:42IT运维版块每日发帖之星
日期:2015-12-12 06:20:00IT运维版块每日发帖之星
日期:2015-08-30 06:20:00IT运维版块每日发帖之星
日期:2015-08-24 06:20:00IT运维版块每日发帖之星
日期:2015-08-02 06:20:002015年亚洲杯之澳大利亚
日期:2015-04-03 15:03:12申猴
日期:2015-03-20 09:00:292015年迎新春徽章
日期:2015-03-04 09:54:452015年辞旧岁徽章
日期:2015-03-03 16:54:15季节之章:冬
日期:2015-01-20 17:08:47双子座
日期:2014-11-21 16:30:31技术图书徽章
日期:2014-07-11 16:29:08
发表于 2012-08-03 09:16 |显示全部楼层
Red Hat Enterprise Linux 5.7

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
发表于 2013-01-25 13:16 |显示全部楼层
没评分权限啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10张SACC2017门票等你来拿~

在数字化转型时代,云已成为万物智能的数字化大脑。而随着大数据应用、人工智能、移动互联网等技术的飞速发展,“智慧 +” 的概念正在深入到各行各业,提升企业效率,释放商业潜能,创造全新机遇。作为国内顶级技术盛会之一,2017 中国系统架构师大会(SACC2017)将于 10 月 19-21 日在北京新云南皇冠假日酒店震撼来袭。今年,大会以 “云智未来” 为主题,云集国内外顶级专家,围绕云计算、人工智能、大数据、移动互联网、产业应用等热点领域展开技术探讨与交流。本届大会共设置 2 大主会场,18 个技术专场;邀请来自互联网、金融、制造业、电商等多个领域,100 余位技术专家及行业领袖来分享他们的经验;并将吸引 4000 + 人次的系统运维、架构师及 IT 决策人士参会,为他们提供最具价值的交流平台。
----------------------------------------
优惠时间:2017年10月19日前

活动链接>>
  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号 北京市公安局海淀分局网监中心备案编号:11010802020122
广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员  联系我们:
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP