KeePass 安全本地恶意软件

信息安全 恶意软件 数据库 系统妥协 守望先锋
2021-08-11 00:27:25

感染本地计算机的恶意软件会以任何方式破坏本地存储的 KeePass 数据库吗?

如果是的话,如果 KeePass 无法抵抗这种情况,那么拥有如此强大的安全机制又有什么意义呢?如果您将数据库保存在本地,这种情况不是存在的主要威胁吗?

4个回答

是的 - 例如,如果恶意软件包含键盘记录器,它可以在您输入主密码时简单地读取主密码。防止这种情况的唯一真正方法是让 KeePass 成为唯一在经过验证的安全计算机上运行的软件(例如没有硬件键盘记录器,没有虚拟机等),这在某种程度上会破坏手头密码的目的。

但是,当您打开基于云的数据库时,同样的恶意软件也能够读取它的主密码。它并不特定于本地数据库文件。事实上,它可能需要一个侵入性较小的恶意软件来做到这一点——如果你安装了一个狡猾的浏览器扩展程序并通过一个网站查看你的密码,它将能够看到你在浏览器中输入的内容,但是(可能) 不是您在任何其他程序中输入的内容。

如果您使用的系统带有恶意软件,假设它可以做任何您可以做的事情 - 如果您可以读取文件,那么恶意软件也可以。如果您可以联系特定服务器,那么恶意软件也可以。如果您可以禁用您的 AV 软件,那么恶意软件也可以。为了做到这一点,它可能需要从您那里获取详细信息(例如密码),但关键是要避免在系统上获取它,而不是试图确保每个软件都检测到它的存在。

当您的计算机受到威胁时,几乎所有对它的防御都应被视为已损坏。安全威胁模型将此视为超出范围的场景 - 除非有极少数例外(例如,您的软件的真正目的是成为最后一道防线)。

也就是说,在本地存储密码数据库的密码管理器(如 KeePass)确实在一定程度上抵抗了妥协——通过使用强大的措施对数据库进行加密。如果您按预期对其进行配置(例如,使用强主密码 + 您不在本地存储的密钥文件),它将抵抗暴力破解和字典攻击。如果您只使用自动输入功能,它甚至会阻止从剪贴板中捕获密码。剪贴板曝光也可以仅限于一次性使用,并且只需几秒钟。

但是,它无法抵抗键盘记录器,因为这是 KeePass 之外的环境问题。环境是给 KeePass 的——不是它可以控制的。键盘记录器可能会在您键入主密码时捕获它并打电话回家报告它 - 以及 KDB / KDBX 文件和任何关联的密钥文件。

我不希望每个软件都能抵抗所有可能的攻击(有点像寻找灵丹妙药)。我会考虑密码管理器 - 尤其是 KeePass / KeePassX 非常适合他们的工作。

值得一提的是,KeePass 中有一些设置可以帮助限制恶意软件(和您)可以做什么。例如,这使您可以防止恶意软件通过注入一些击键来简单地导出整个数据库。

这不是故障保险,但它在您被感染和您真正意识到自己已被感染之间提供了更多的缓冲。

KeePass 2.x 中的策略对话框

(截图来自 KeePass 2.36)

对 KeePass 的攻击

感染您本地计算机的恶意软件会以任何方式破坏本地存储的 KeePass 数据库吗?

如果你不打开它,他们只能抢夺数据库文件并尝试暴力破解密码(不容易)——当然,除非他们设法以其他方式获取主密码。

如果您确实打开了文件,他们可以在您输入主密码以解锁数据库时尝试获取主密码。至少有一个恶意软件就是这样做的

此外,恶意软件可能会将自身注入 KeePass 进程并提取存储在数据库中的密码。执行此操作的概念验证恶意软件于 2015 年发布

为什么要使用密码管理器?

如果是的话,如果 KeePass 无法抵抗这种情况,那么拥有如此强大的安全机制又有什么意义呢?

好吧,当然要防御所有其他可能导致您的密码被泄露的情况!因为,密码管理器的替代方案是什么?在笔记本上写密码?为多个帐户重复使用相同的密码,因为您不记得数百个密码?想出一些“聪明”的密码创建方案,为每个帐户生成不同但完全可预测的密码?

是的,理论上可以通过这些方式访问您的密码数据库,但由于 KeePass 提供的保护,只能通过这些方式破坏您的密码。(好吧,还有另一种方法。)

但是有很多方法不会泄露您的密码,例如:

  • 一个爱管闲事的同事正在用你的密码查看笔记本;
  • 您的密码文件包含在备份中并存储在不安全的地方;
  • 当你输入密码时,有人在看着你;
  • 有人在您离开时忘记锁定您的计算机;
  • 一个通用的间谍软件转储您的浏览器密码数据库,或使用您的密码窃取文件;
  • 恶意软件在加密之前拦截网络浏览流量(假设您使用的是 HTTPS)并从那里窃取您的登录详细信息;
  • 硬件键盘记录器(虽然他们可以窃取主密码,但攻击者仍需要使用其他方式获取密码数据库);
  • 您用于保存密码崩溃的编辑器以及将密码崩溃转储发送给开发人员;
  • 有人从 USB 或 CD 启动您的 PC 并获取您的密码文件;
  • 有人偷了你的电脑并拿走了你的密码文件
  • 您在多个网站上重复使用您的密码,因为您不记得 1,219 个不同的密码,并且其中一个网站被黑客入侵
  • ……等等。

如果您将数据库保存在本地,那么这种情况不是存在的主要威胁吗?

不。我很肯定,在上述情况中,有多种情况比专门针对 KeePass 的恶意软件更可能发生。风险 #1 可能是跨网站重复使用密码,并且该网站受到威胁。(例如,目前有3,805,757,030 个被泄露的帐户列在“我被控制了吗?”中。)

防御

虽然,正如 KeePass 的开发人员所同意的那样,最终无法阻止针对 KeePass 的攻击,但肯定有可能提高攻击者的门槛。例如,有一个功能可以防止键盘记录器在解锁数据库时获取主密码,一个功能可以在您不使用密码数据库时锁定密码数据库等等。

如果您想启用其中一些功能,值得研究,但我不建议您不加思索地打开部分或全部功能;对可用性有不可忽视的影响,而且潜在的好处可能很小,这取决于你所面对的。请注意,攻击者不一定要从KeePass 获取您的密码,但也可以选择攻击您在.

结论

密码管理器不会为您提供一切保护……因为它不能。引用十项不变的安全法中的第 1 条,

如果一个坏人可以说服你在你的电脑上运行他的程序,那它就不再是你的电脑了。

然而,密码管理器确实防御的事情仍然意味着使用一个是一个非常好的主意。