全局可写的文件实际上是一个安全漏洞

全局可写的文件实际上是一个安全漏洞

作者:BlogUpdater |  时间:2021-12-28 |  浏览:1274 |  评论已关闭 条评论

如果,我是说如果,每当有用户为一项新功能提出建议,但是这项新功能实际上是一个安全漏洞时,我就可以得到一枚金币的话,我估计会有很多金币。

举个例子,”我希望一个文件是全局可写的,也就是说,任何用户都可以往里面写入数据。这压痕我的程序就可以把它当做一个通用数据库来使用了”。

这实际上是一个安全漏洞。首先,我们假设一个用户以独占方式打开了这个文件,并永远不关闭它,这就相当于发起了一项拒绝服务攻击。另外,还有可能出现一种数据篡改攻击,具体就是,用户打开这个文件后,使用大量的无效数据覆盖整个文件,或者只是对文件进行细小的改动。导致的结果是,你的音乐索引中丢失所有小甜甜班兰妮的歌曲。(话又说回来,也许这是件好事。偷偷摸摸是编辑索引,这样当有人试图播放布兰妮斯皮尔斯的歌曲时,他们听到的是麦当娜的歌。)

关于这项设计,我的一位安全团队的同事指出来另外一个问题:磁盘配额。即使文件中的大部分条目属于其他人,创建该文件的人仍需为该文件所消耗的磁盘空间付费。如果你在安装程序中创建该文件,那么它很可能由管理员所拥有。管理员不受配额限制,这意味着每个人都可以免费将他们的数据加入文件中! (使用备用数据流,这样你就可以将数据存储在那里,而不会影响文件的普通用户。)如果文件在系统分区上(可能是这样),那么用户可以尝试填满所有可用磁盘空间并使系统崩溃。

如果你有一个共享资源想共享给其他用户使用,一种方法是使用服务。这样设计的好处是,用户不直接访问资源,而是通过服务接口来访问。该服务决定允许用户对资源做什么。也许一些用户只允许增加”播放次数”计数器,而其他用户则允许编辑歌曲名称。如果用户正在占用资源,服务器可能会在一段时间内拒绝来自该用户的连接。

文件不会让你对它的访问控制实施精细化的控制。如果你授予用户对一个文件的写入权限,则该用户可以写入文件的任何部分。该用户可以以独占模式打开文件并防止其他任何人访问它。另外,用户还可以将无效数据写入到文件中,试图迷惑机器上的其他用户。

换句话说,用户可以对系统进行更改,从而影响其他用户如何使用该系统。这种”影响其他用户”的能力是为管理员保留的。在一个优秀的操作系统里,一个没有特殊权限的用户应该只被允许”搞砸”自己的生活,他不应该被允许扰乱其他用户的生活。

总结
现实世界是一个有级别的世界,所以我们在虚拟的数字世界里,也需要设计一个层次化的系统。
权限的设计不能太紧,但也不能太松。

最后
Raymond Chen的《The Old New Thing》是我非常喜欢的博客之一,里面有很多关于Windows的小知识,对于广大Windows平台开发者来说,确实十分有帮助。
本文来自:《When people ask for security holes as features: World-writable files》

最近我写了个东西
正如你们所知道的,拓扑梅尔智慧办公平台(Topomel Box)是一款绿色软件,主要面向经常使用电脑的朋友。它提供了各种提升办公效率的小功能,同时操作上尽可能地简单方便。
我想:你值得拥有。

标签:

评论已关闭。