使用密码保护应用程序旁边的数据库是否会增加安全性?

信息安全 数据库
2021-09-05 17:49:57

我见过这样的设置,其中受密码保护的数据库与以纯文本形式保存所述数据库凭据的应用程序位于同一服务器上。

这样的设置相对于简单的未受保护的数据库有什么好处?

除了一些混淆之外,必须同时为这些凭据配置数据库和应用程序似乎只会增加复杂性,而不是真正的安全性。有权访问服务器的攻击者总是可以在应用程序的配置文件中找到凭据。

编辑: 我说的是只在同一台机器上可见的数据库,而不是暴露在外面。

4个回答

如果您可以安全地访问保存明文凭据的应用程序配置文件,则密码保护数据库是有意义的。当您仅限制对应用程序帐户的读取访问权限时,攻击者需要 root 访问权限才能查看密码。如果他破坏了任何其他(特权较低的)帐户,他将无法访问数据库。

这是一种洋葱保护(也称为“分层安全”或“深度防御”,例如,在 SANS 的“分层安全:为什么有效”白皮书中)。如果攻击者可以访问机器,他就无法获得完整的数据库访问权限。应用程序应该具有仅限于所需表的受限访问,并且不需要写入的所有内容都应该是只读的。任何更高的访问权限都应该需要一个从未在应用程序中使用过的不同密码。

这样做的好处是,拥有对数据库的网络访问权限但没有对服务器的文件系统访问权限的攻击者将无法实际登录数据库。

这是否提供额外的安全性将取决于您的威胁场景和您的安全目标。我知道至少有两种情况可以增加安全性:

  • 它允许您更精细地控制对数据库的合法访问:可能有些人合法地需要访问数据库,但不需要访问里面的数据,例如执行维护的数据库管理员。加密数据库可能(取决于设置)允许授予数据库访问权限,同时仍保持数据机密。
    类似地,加密数据库的一部分(例如,只有带有密码的列)允许有限的访问(例如,用于调试问题、用于报告或用于数据仓库),同时保护关键信息。
  • 它可以保护数据库的备份如果数据库是在文件级别备份的,或者使用支持加密数据库的备份工具,备份将被加密。这很有用,因为备份可能是数据泄露的一个来源,因为它们通常不像它们从中获取的服务器那样受到保护(例如,请参阅糟糕的备份安全性导致 Ameriprise 客户端数据泄漏)。