17、Linux与Unix安全编程:临时文件、锁机制及信任通道的使用指南

Linux与Unix安全编程:临时文件、锁机制及信任通道的使用指南

1. 临时文件管理

在管理系统时,用户若想为特定应用设置一个特殊的临时目录,可在运行该应用时专门设置环境变量。不过,若这些环境变量可能由不可信源设置,就应忽略它们。

当使用NFS版本2(NFSv2)远程挂载临时目录时,上述方法可能失效,因为NFSv2不能很好地支持O_EXCL。而NFS版本3及更高版本能正确支持O_EXCL,简单的解决办法是确保临时目录为本地目录,或者若使用NFS挂载,要使用NFS版本3或更高版本。对于NFS v2,虽有通过link(2)和stat(2)来安全创建临时文件的技术,但较为复杂。

值得一提的是,FreeBSD最近对mk*temp()系列函数进行了修改,去除了文件名中的PID部分,改用base - 62编码的随机数替代。这大大增加了使用6个X作为“默认”文件名时可能的临时文件数量,意味着即使是使用6个X的mktemp(3),在不频繁使用的情况下,从概率上来说也能有效防止被猜测。

Openwall Linux补丁包含一个可选的“临时文件目录”策略,可抵御许多基于临时文件的攻击。Linux安全模块(LSM)项目中的“owlsm”模块实现了部分OpenWall的理念,使得带有LSM的Linux内核能快速将这些规则应用到运行系统中。启用该策略后,有以下两种保护机制:
- 硬链接 :在某些情况下,进程不能对文件创建硬链接。在LSM版本中,若进程的uid和fsuid(通常与euid相同)与被链接文件的uid不同,进程uid不是root,且进程不具备FOWNER能力,那么创建硬链接将被禁止。未来可能会取消对进程uid的检查,届时规则将

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值