安全数据库

安全数据库

我们是一家 Oracle 数据库商店。我有一个应用程序,我认为 Oracle 可能不是最佳选择。我正在寻找一个轻量级、性能良好且非常安全的数据库。数据库本身可能有十几个表和数百万条记录。我不需要存储过程、集群或任何高端功能。

我的终极目标是安全。我正在寻找内置加密、整体安全设计和低调,以最大限度地减少潜在的安全漏洞。

我希望在 *nix 上运行它,因为它们比 Windows 更容易制作低调的版本。

例如,在 BSD 世界中,有几种变体。FreeBSD 是最可移植的,而 OpenBSD 是最安全的。我正在寻找数据库世界中的 OpenBSD。

答案1

我不知道有任何现有产品具有这种特定的设计目标。您能得到的最好的东西是具有相当好的内置安全性的 DBMS。大多数“NoSQL”DBMS 应用程序在安全性方面没有提供任何特别的东西。传统的数据库管理系统通常具有相当丰富的安全模型,这种类型的系统的安全性是一门成熟且易于理解的学科。

如果您希望在安全的 Web 应用程序背后提供某种支持,那么您别无选择,只能在设计应用程序时考虑安全性 - 传统的数据库安全性(例如,通过存储过程来调解所有写入访问,而没有对表的直接写入访问)是您可能获得的最佳安全性。不要忘记为机器配备单独的 DBMS 服务器和防火墙访问权限。

如果你担心服务器的物理安全,许多 DBMS 平台都有物理加密数据的选项(例如PostgreSQL)。一些操作系统还将支持加密文件系统和某些磁盘还支持物理加密。请注意,密钥恢复仍将使加密失效 - 如果密钥实际存在于 DBMS 服务器上,那么技术娴熟的黑客很可能能够恢复它。

为了设计安全性并评估哪种架构合适,您确实必须进行威胁评估,以了解您要防范哪些威胁。一些场景可能是:

  • 如果您想保护内部系统不被窥探,那么 DBMS 平台上适当的用户/角色安全性可能就足够了。

  • 如果您想要保护 Web 应用程序,那么您可以通过 sprocs 添加安全事务层来获得一些增量安全性。这会将数据库写入限制为明确支持的事务 - 例如,如果入侵者想要删除审计线索,他们必须同时破坏应用程序和数据库安全性才能从审计表中删除条目。但是,入侵者仍然可以执行任何有效的事务。

  • 如果您有物理安全问题,您可以尝试在磁盘级别进行加密。入门级 SAN 也可能有助于解决此问题,因为磁盘只能通过 SAN 控制器访问。这要求窃贼破坏 SAN 控制器的安全性或对其内部分区格式进行逆向工程。一些 SAN 还提供物理磁盘加密。

请记住,大多数广泛使用的 DBMS 平台都用于 Web 应用程序,并且在这个领域具有一定程度的成熟度。没有一个是专门为强化而设计的,但大多数(特别是开源平台)已经在 Web 应用程序中使用了近 15 年。在这个领域,应用程序安全性确实是薄弱环节。

答案2

全面披露:我在 Sybase SQL Anywhere 工程团队工作。实际上,我负责许多安全功能。我试图回答这个问题,但又不让答案听起来像广告。

Sybase SQL 任意位置是一个轻量级 RDBMS,它包括所有标准 RDBMS 功能,如存储过程、触发器、行级锁定等,以及标准安全功能,如用户、组和对象(表、过程等)权限。它还包含许多高级安全功能,包括强(AES)数据库加密和 SSL/HTTPS 通信加密。有一个 FIPS 批准的加密组件可用,并且它已经实现了通用标准认证(寻找 Adaptive Server Anywhere)处于 EAL3+ 级别。

我必须说,SQL Anywhere 在设计时并没有考虑到安全性,因为它基本的焦点;我不知道有任何这样的数据库产品。

相关内容