为什么这个命令可以在没有密码的情况下解锁我的锁屏?(安全问题)

Den*_*nny 4 password lock-screen login 18.04

我在一家 IT 公司工作,不久前开始在这里工作。我们中的许多人都在使用 linux,我发现 Ubuntu 存在问题或安全问题。就像现在一样,如果有用户启用的进程运行某个命令,锁定屏幕是没有用的:gnome-screensaver-command --lock或者loginctl unlock-session

没有一个命令需要密码来重新激活我的桌面,老实说,我认为这非常不安全(或者至少消除了锁定屏幕周围的安全性)。我原以为它在尝试重新进入桌面环境时会要求输入密码。

我在开发自己的蓝牙锁定功能时注意到了这种行为,所以如果有人离开电脑,屏幕就会锁定。但没想到解锁这么容易。

之前有没有关于这个的讨论?我觉得很奇怪它应该是这样的。

Oli*_*Oli 44

在这两个用例中,这些似乎都是次要问题。

如果有人可以运行gnome-screensaver-commandloginctl 像您一样远程运行,那么您的家、您的 $PATH,基本上是您的整个计算机——从您的安全和隐私的角度来看——都会受到损害。

如果有人只是在你的电脑前摇摆不定,他们就不能运行这些东西。

  • 你仍然给攻击者一个窗口。让我们直截了当地说,如果您将驱动的攻击者与您的未锁定和/或未加密的计算机单独放置超过约 30 秒,他们现在“拥有”该用户帐户。它运行的任何命令都可以被颠覆,可以建立完全的远程控制。他们可以解锁屏幕并不*重要*。停止那个初始窗口是目标。 (33认同)
  • @Denny:安装的程序不需要绕过这个。可以这么说,他们已经在墙内跑了。屏幕锁定功能就像那些外面有钥匙孔但里面有把手的门锁——它用来保护计算机免受外人的侵害,而不是保护计算机本身。 (12认同)
  • @Denny 那只是安全剧院。伪装成安全的不便。 (9认同)
  • @Denny:[瞬时物理访问是否危险?](https://security.stackexchange.com/q/187515) on security.SE 有一个答案,其中包含一个真实世界的故事,即插入 USB 几秒钟解锁桌面以安装企业间谍活动的后门。**如果机器连接到网络,对解锁系统的暂时物理访问意味着未来的物理访问是无关紧要的。** (3认同)

Aar*_*ron 18

不,这不是锁屏安全的缺陷

如果出于正当理由自己做类似的事情,您预计会发生什么?比如说,您使用的是另一台计算机,然后通过 ssh 连接到您常用的计算机并远程运行命令?

这是我们在我工作的地方实际做的事情,因为我们有奇怪的屏幕保护程序问题并且还没有弄清楚原因 - 我们的问题阻止了某人合法地解锁计算机,因此他们无法重新进入它。他们通常走到最近的计算机,ssh 到锁定的计算机,然后远程解锁,然后走回去。所以你所描述的实际上一直发生在我的工作地点。

这不是安全漏洞,因为您的计算机应该按照您的指示执行操作,并且您的用户帐户就是您的计算机。

因此,这可能是对安全性的限制,安全措施未涵盖的情况,但不是现有安全性的缺陷。这就像说普通围栏有一个缺陷,因为它们不能阻止物体攀爬或飞越它们 - 不,这不是缺陷,只是对其安全性的限制,如果它是一个,您可以采取其他措施忧虑。

现实世界的类比

作为一个物理类比,您描述的犯罪行为是小偷在您不注意时偷走您的房钥匙,将其带到某个地方制作副本,然后在您注意到之前将原件放回原处......并且您暗示这是一个可以通过禁止密钥复制服务来解决密钥的安全漏洞。并不是说这会禁止密钥复制,因为它只会禁止公共服务......人们仍然会复制密钥,就像如果你离开它解锁,人们仍然会将恶意软件偷偷带入你的计算机。

如何提高安全性

您提到的蓝牙近距离解锁听起来有些过分,但如果这确实是您所在位置的重大安全问题,那么这是更好的方法之一。您可能甚至不需要自己开发它,因为可能有产品可以做到这一点。

继续类比,蓝牙接近功能就像是在您的房钥匙离您太远时触发警报。这将需要小偷在你身后在你身边做他们的工作;仍然有可能,但更难。

其他一些安全方法可能涉及培训人们在离开办公桌时始终锁定他们的屏幕,或者甚至进一步制定一项政策,规定如果用户不在视线范围内,则必须锁定所有计算机

这实际上是我工作的一项政策。如果我在拐角处离开办公桌 60 秒去喝杯咖啡(它在我办公桌的耳中,我可以从拐角处偷看它),并且如果我在这样做时忘记锁定我的电脑我可以惹上麻烦。这是我们安全政策的一部分,人们因此受到谴责。

另一件事是减少自动锁定超时。如果现在是 10 分钟,请将它们放在 1 分钟或更短的时间。在阅读一页文本时,这可能会很短,但如果这是一个足够大的安全问题,那么人们只需要处理它。

如果有人在您走开几分钟后碰巧走过,看到您走了,并且您的计算机已解锁,则减少自动锁定时间将阻止您陈述的情况发生。该漏洞仅适用于那些积极跟踪您并准备好在您离开后几秒钟内突袭您的用户帐户的人。

带走

100% 安全是不可能的

无论您做什么,都不可能 100% 停止您所描述的内容。即使用户在场,有人也可以破坏计算机。当您坐在办公桌前时,有人可能会过来拜访,据说只是为了与您交谈。

嘿,那是你的 ABC 文件吗?你能向上滚动吗,这样我就可以向你指出一些事情。

[当你盯着显示器时,将 U 盘插入电脑]

@Pa?lo Ebermann 评论道:“你的攻击者甚至没有输入恶意软件的命令,他的 USB 设备也可以伪装成键盘。” 非常正确,感谢您使这一点变得更好。删除了多余的不必要的步骤。

这就是假设你不能只是让别人来运行恶意软件本身。“嘿,鲍勃,你能试试我最新版本的软件吗?我想我已经修复了这个错误。” (Bob 然后运行他与 Tim 一起开发的软件,不知道 Tim 将恶意软件放入了它的特定版本中,然后 Tim 在 5 分钟内将其删除)

这就是全部,那么您的计算机帐户已经 100% 受到威胁,即使在锁定时也是如此

  1. 保护用户帐户免受该用户帐户采取的操作实际上是不可能的,并且

  2. 几乎不可能保证该账户采取的行动完全符合该账户的人类所有者的愿望。

回到类比......

我使用关键示例是因为您的特定锁屏情况,其中锁屏是关键。但是,正如评论者@David Z 所指出的,问题实际上更糟。打个比方,钥匙失窃是一个小问题,因为您已经有人在您不知情的情况下住在您的房子里,即使您的门是锁着的,他们也会在您离开的时候整天为所欲为。

如果你幸运的话,他们会留下一团糟,你会回到一个看起来明显被洗劫一空的家。“什么???如果我幸运的话?” 是的,因为最坏的情况要糟糕得多。他们可以在你的房子里住很多年,总是自己捡起来,这样他们就可以继续偷你的东西,在你家里住很多年,而你甚至都没有注意到。甚至将您的家用作犯罪活动的中心,例如贩毒或典当被盗物品。

这就像你办公室的电脑都装有键盘记录器、远程控制软件,不断下载你所有的公司数据,甚至被当作僵尸网络的一部分使用,以至于这些电脑实际上每天都在从事非法活动而你甚至不知道. 就在门还锁着的时候。


我偶然发现了这个很棒的 XKCD 笑话,它让我想起了这个答案,所以我添加了它。注意底部的第 5 个“安全漏洞”。

CVE-2018-?????:事实证明,Bruce Schneier 只是两个穿着风衣的淘气孩子。


小智 15

我想起了这个关于 sudo 授予 root 访问权限的U&L 问题是的,在您的用户帐户下运行的命令能够解锁您的计算机。这是因为,在 Linux 的安全模型下,在您的用户帐户下运行的任何命令都是您自己。

无论是通过 GUI 还是终端,您启动的程序发出的命令与您发出的命令实际上没有区别。如果您正在运行自动解锁屏幕的程序,您的屏幕将被解锁,因为您单击按钮触发程序和以其他方式运行的程序之间没有区别。如果您运行由恶意攻击者编写的程序,那么您的用户帐户将完全且不可撤销地受到损害。此攻击者编写的服务可以解锁您的计算机,是的,但该服务也可以允许远程访问您的会话,或执行攻击者想要的任何操作。

所以,是的,你可以有可能将系统配置为只允许一个程序,提示您输入密码来解锁你的系统。但是,如果您必须这样做,如果您试图阻止在您的用户帐户下运行的恶意程序危害您的用户帐户,那么您已经输了。

TL;DR:该程序可以这样做,因为它已经以您的身份登录。可以这样做,因为这是您的帐户,就像可以这样做一样rm -rf ~。传统上,类 UNIX 系统的任务是防止您误伤自己。如果您无法控制帐户下运行的内容,那么您已经失去了对帐户的控制权。