Unix文件系统与安全:SUID、SGID及设备文件深度解析
1. SUID攻击示例:IFS与 /usr/lib/preserve漏洞
在Unix系统中,SUID(Set User ID)程序与系统程序或库之间的交互有时会产生安全漏洞,而这些漏洞可能连程序作者都未曾察觉。以 /usr/lib/preserve 程序为例,它被 vi 和 ex 编辑器用于在用户意外断开系统连接且未保存文件更改时自动备份文件。该程序会将更改写入特殊目录下的临时文件,然后使用 /bin/mail 程序通知用户文件已保存。
由于被编辑的文件可能是私人或机密文件,旧版本的 preserve 程序使用的目录大多数用户无法访问。因此,为了让 preserve 程序能够写入该目录,以及让 recover 程序能够读取该目录,这些程序被设置为SUID root。
/usr/lib/preserve 程序的三个实现细节共同作用,使得有经验的系统用户可以利用该程序获取root权限:
1. preserve 被安装为SUID root。
2. preserve 以root用户身份运行 /bin/mail 程序,以提醒用户文件已保存。
3. preserve 使用 system() 函数调用执行
超级会员免费看
订阅专栏 解锁全文
6018

被折叠的 条评论
为什么被折叠?



