扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
输出结果显示,test.log只能被添加,而test.conf文件不准修改。在UNIX系统中,如果一个用户以root的权限登录,文件系统的权限控 制将无法对root用户和以root权限运行的进程进行任何的限制。这样对于UNIX类的操作系统,如果攻击者通过远程或者本地攻击获得 root权限将可能对系统造成严重的破坏。而ext2文件系统可以作为最后一道防线,最大限度地减小系统被破坏的程度,并保存攻击者的 行踪。ext2属性是由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属性文件的保护:
|
第一个命令删除任何用户(包括超级用户)对i标志的修改能力。第二个命令删除任何用户(主要针对超级用户)对块设备的原始访问 (raw access)能力,防止一些技术高超的攻击者直接修改文件系统索引节点的immutable域。BTW,在系统启动时,CAP_SYS_RAWIO能 力应该直接删除,这个能力是一个非常大的潜在威胁。高明的攻击者获得了超级用户权限之后,通过/dev/kmem设备可以直接修改内核 内存。通过这种方式,可以破坏系统的内核能力约束集(kernel capabilities bounding)。如果没有任何参数,会列出内核支持的能力和目 前生效的内核能力。
一旦一个内核能力被删除,就只有在系统重新启动,进入到单用户模式才能删除能力限制。感兴趣的读者,可以从下面的连接中获得更为详细的能力方面的知识:
LCAP - Linux内核能力约束集编辑器(Linux Kernel Capabilities Bounding Set Editor)
http://pw1.netcom.com/~spoon/lcap/
4.我们应该使用chattr做什么?
主机直接暴露在Internet或者位于其它危险的环境,有很多shell帐户或者提供HTTP和FTP等网络服务,一般应该在安装配置完成后使用 如下命令:
|
如果很少对帐户进行添加、变更或者删除,把/home本身设置为immutable属性也不会造成什么问题。在很多情况下,整个/usr目录树也 应该具有不可改变属性。实际上,除了对/usr目录使用chattr -R +ii /usr/命令外,还可以在/etc/fstab文件中使用ro选项,使/usr目录所在 的分区以只读的方式加载。另外,把系统日志文件设置为只能添加属性(append-only),将使入侵者无法擦除自己的踪迹。
当然,如果使用这种安全措施,需要系统管理员修改管理方式。
4.1.安装、升级软件
由于软件管理程序需要加入和删除某些文件和目录,因此在进行软件安装和升级之前需要删除某些目录和文件的immutable和append- only属性。对于Linux系统,我们一般使用rpm管理软件包,你可以使用以下命令查看要安装或者升级的软件包都有哪些文件:
|
然后曲调有关目录和文件的immutable和append-only属性。大多数软件包需要rpm命令对以下目录的一个或者多个进行写操作:
|
注意,如果你需要升级/usr/sbin/someprogram,你应该去掉someprogram文件以及目录/usr/sbin的immutable属性。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者