可公开访问的数据库的安全后果?

信息安全 Web应用程序 数据库
2021-08-25 02:56:52

我被要求公开公开 Web 应用程序的数据库,以便外部服务可以直接连接到数据库(通过用户名/密码)以读取信息。此数据库当前位于防火墙后面,Web 应用程序在本地连接到它。

这立即在我的脑海中敲响了警钟,认为这是一种安全威胁,但我想总结一下为什么这不是一个好主意。那么真正威胁是什么?

我会立即想到数据库的潜在 DDOS 攻击以及特定数据库服务器本身存在的任何漏洞利用和漏洞?数据库服务器的简单重新配置,暴露数据?不使用 SSL 连接?

1个回答

你脑海中响起的钟声是正确的,我会和你在一起。这是一种不好的做法,恐怕我已经看过很多次了。

以下是将数据库暴露给第三方和公众时想到的一些漏洞和威胁:

  • 通过用户名/密码进行的身份验证很弱,容易受到暴力攻击和密码喷洒。实施 MFA 将很困难。
  • 有些数据库支持 TLS/SSL,有些不支持。最好确保启用端到端加密。
  • 根据您是否存储 PHI,您肯定不符合 HIPPA。
  • 缺乏剪辑级别,或者在某人多次验证失败后将其锁定的能力。
  • 数据库软件可能非常复杂,您最好及时更新所有补丁。如果你迟到或错过一个,祝你好运。
  • 我希望你 1000% 信任这个第三方,任何妥协和你的数据库都消失了。
  • DOS 攻击是唾手可得的成果
  • 任何扫描您面向外部的网络并找到以运行数据库而闻名的开放端口的攻击者都可能知道您在其他领域很容易成为目标
  • 管理。你要为每个用户设置一个用户名和密码吗?
  • 如果您有 30 个用户,那么要确保他们拥有正确的数据库和表视图以及访问权限是非常困难的。最小特权在这里非常困难。

考虑一下这样做的正确方法(还有其他方法):

  • 向公众公开 API。API 最好通过 WAF 连接回数据库。API 可以授予具有特定权限(数据库视图)和访问时间的令牌。如果操作正确,这些很容易撤销,并且您的数据库更加安全*。API 可以通过 TLS、白名单、MFA 和其他控制轻松保护,例如在多次尝试失败后锁定某人