作为数据库管理员(DBA),你需要扎实掌握数据库安全基础,才能从容、自信地管理系统。具备扎实的数据库安全知识后,你就可以通过遵循最佳实践并确保遵守安全协议来保护组织的敏感信息和业务关键数据。
什么是数据库安全?
当我们使用“数据库安全”这一说法时,我们指的是所有旨在建立并维护数据库 完整性、可用性和保密性 的工具。确保数据库中存储的数据始终处于安全状态,是任何 DBA 最重要的职责之一。
数据库安全涵盖:
- 数据库中的数据存储区
- 数据库管理系统(DBMS)
- 访问数据库数据的应用程序
- 物理服务器
- 虚拟数据库服务器(包括基于云的服务器)
- 网络接入点
维护数据库安全需要一双“分寸感”很强的手。一方面,你需要优先考虑 data security;另一方面,为了让数据为企业创造价值,数据必须能够被访问。你允许对数据库中存储的数据开放的访问权限越多,这些数据就越容易受到威胁;但一个“滴水不漏”的数据库既不具备可用性,也不符合实际。这种悖论有时被称为“Anderson’s Rule”。
在安全性与可访问性之间取得恰当平衡的最佳方式,是制定周到的安全协议、为数据访问分配分级的权限层级,并投资于一套可靠的安全与数据库活动监控平台。
为什么数据库安全如此重要?
可以毫不夸张地说,组织的声誉、财务前景、法律合规以及整体功能,都取决于它能否安全地存储、传输和管理其所收集的数据。2019 年发生的 几起备受瞩目的重大泄露事件 都与不安全的数据库密切相关:导致数以百万计用户的密码和信用卡信息被盗,海量敏感信息被暴露,并面临巨额罚款。
不幸的是,数据库泄露并不只发生在资金雄厚、且拥有公关专家团队来帮助清理舆论“烂摊子”的大公司。各规模的企业都面临风险。即使是一家中型公司遭遇泄露,也可能最终要花费 数百万美元 用于法律费用、罚款、数据恢复工作、用户通知以及停机时间(downtime)。此外,泄露还可能影响未来收入,因为客户和合作伙伴更不愿意与他们认为不可信或在技术上落后的公司打交道。
如果您的知识产权遭到泄露,后果可能会更糟。若您的商业秘密、发明以及有关公司内部运作方式的信息落入不当之手,贵公司的存在都可能岌岌可危。
精心挑选的相关内容:
数据库安全威胁与挑战的常见类型
许多问题都可能使您的数据库容易遭受安全漏洞的侵害。以下是您应当做好准备的最常见安全威胁。
内部人员威胁
最明显的一种 insider threat 是意图造成危害的恶意用户。然而,这一概念也包括那些拥有能力犯下错误、从而使数据库暴露于攻击之下的用户。事实上,几乎 所有数据泄露 在 2018 年报告的案例中,有一半左右都源于人为错误,例如选择弱的邮箱或数据库密码、共享密码,以及对已创建的数据库凭据进行粗心的存储。insider threat 还有第三种类型:通过钓鱼等手段获取有效用户凭据的外部攻击者。
宽松的数据 库管理,尤其是允许过多员工拥有对数据库的高权限访问,会增加 insider threats 所带来的风险。
数据库软件漏洞
黑客不知疲倦地寻找并攻击平台和软件中的安全漏洞,包括数据库管理软件。未能在发布后及时应用安全补丁会增加您的暴露风险。
SQL/NoSQL 注入攻击
攻击者可以通过在 Web 应用程序提供的数据库查询或 HTTP 标头中插入特定字符串,来攻击 SQL 或 NoSQL 数据库。
缓冲区溢出利用
攻击者可以利用缓冲区溢出产生的多余数据作为发起攻击的基础。缓冲区溢出发生在某个进程尝试向固定长度的内存块写入比其所能容纳的更多数据时。
拒绝服务攻击
当攻击者向目标服务发送过多请求并对其进行“淹没”时,服务器将无法跟上合法用户产生的请求速度。这类拒绝服务(DoS)攻击可能导致网站不稳定,甚至完全崩溃。
分布式拒绝服务(DDoS)攻击源于对多个 Web 服务器的海量请求淹没。这类攻击一旦开始,就尤其难以停止,因此防范措施至关重要。
恶意软件
恶意软件攻击往往从终端设备开始,但也可能很容易扩展到数据库。物联网(IoT)设备尤其容易受到恶意软件攻击,因为它们通常无法像办公室中的主要硬件那样频繁更新安全补丁。
备份攻击
未受保护且未妥善加固的备份数据容易受到攻击。这包括存放在物理硬盘上的旧备份,也延伸到云端备份;而云端备份在过去几年中已变得更加普遍。
不断变化的企业环境与资源
一些不那么直观的威胁也可能增加数据库的脆弱性:
- 企业比以往任何时候都要保存和处理更多数据,从而导致数据库结构变得更加复杂。
- 网络拥有更多访问入口点,包括对云环境的访问以及来自云环境的访问。
数据库安全控制
数据库管理员应了解各种类型的数据库安全控制措施,这些措施有助于缓解数据库泄露事件。此类控制措施还能通过防止数据在传输过程中和存储时被篡改,帮助确保数据库的完整性。
受限访问
应根据 最小特权原则 来授予访问控制。该原则要求将用户账户和计算进程的系统权限限制为仅执行其被分配功能所必需的权限。
数据库审计
定期进行数据库审计可以揭示数据库漏洞和可疑活动,并帮助你证明数据库安全措施符合数据库安全标准与法规。理想情况下,这些解决方案应为无代理(agentless),以避免审计过程降低数据库性能。
身份验证
身份验证用于核验用户和账户的身份,以防止未经授权的用户访问数据或系统。 网络安全 协议应包含 身份验证措施 覆盖贵公司整个网络。
保护外部应用程序
数据库安全同样要求保护所有能够访问数据库的应用程序。默认设置旨在方便无缝的安装体验,但由于这些设置是众所周知的,攻击者很可能会加以利用,因此并不安全。你的任务是将应用程序安全性配置到尽可能最高的水平,同时仍能确保业务正常运行。保护底层操作系统同样遵循这一原则。例如,SQL 数据库依赖 Windows Server,因此必须保持 Windows Server 的安全性,才能维持数据库安全。
精选的相关内容:
其他安全措施
数据加密会使黑客更难使用他们设法窃取到的数据。将备份离线存储可以降低黑客获取备份的机会。此外,完善且(定期测试的)灾难恢复计划可帮助你在遭受入侵或遭遇灾难后迅速恢复数据库。
关键数据库安全最佳实践
有些 数据安全最佳实践 与直接管理数据库有关,而另一些则侧重于与数据库访问相关的规则。需要考虑的具体最佳实践包括:
- 强化你的数据库。这可能包括在所有具备数据库访问权限的应用程序和系统上部署防火墙,以及诸如将服务器放置在安全且上锁的机房之类的物理安全措施。
- 在数据存储的所有位置进行加密,包括在数据库中。
- 通过执行最小权限原则并定期进行 权限审查 来应对员工或访问需求的变化,从而控制数据库访问。
- 对可疑的变更和访问尝试进行 数据库活动审计与监控。
- 仅存储必须保持可访问的数据,从而降低数据库的价值。价值较低的数据库对恶意行为者的吸引力更低,发生泄露时造成的损害也更小。
- 强制使用强密码,并提供有关网络钓鱼攻击的培训等,以落实保护系统和数据的一般最佳实践。
考虑贵公司的需求
当您开始规划如何保护数据库时,请务必考虑贵公司的独特需求。收集有关员工和第三方需要以何种具体方式访问数据的信息,以及将被存储、访问和传输的数据量。确保您的网络安全措施具备可扩展性和灵活性,能够跟上预期的增长以及新技术的采用。
分享到
了解更多
关于作者
Dirk Schrader
安全研究高级副总裁(VP)
Dirk Schrader 是 Netwrix 的常驻 CISO(EMEA)以及安全研究高级副总裁(VP)。他拥有 CISSP(ISC²)和 CISM(ISACA)等资质,是一位在 IT 安全领域拥有 25 年经验的老兵。Dirk 致力于以现代化的方式应对网络威胁,从而推动网络韧性的发展。Dirk 曾参与全球范围内的网络安全项目:职业初期从技术与支持岗位做起,随后在大型跨国公司和小型初创企业中分别担任销售、市场与产品管理等职务。他已发表大量文章,强调为实现网络韧性,需要重视变更管理与漏洞管理。