数据如今已经成为企业最重要的资产之一。企业通常将数据存储在数据库中,因此了解如何保护这些数据至关重要。
本文将介绍从1到10的等级范围内量化数据库的安全级别。首席信息安全官和数据库管理员(DBA)可以使用它来确定他们的安全成熟度等级,并确定进一步改进的步骤。
1到10级的安全等级,1级是最低安全等级,10级是最高安全等级。所有安全等级的内容都是累积的,因此每个等级都包含先前评等级的所有要求。
安全等级的顺序反映了安全性的增加以及成本和复杂性的增加。虽然无需额外软件即可实现较低等级,但实现更高的安全等级变得越来越困难,并且需要合适的产品。
等级1适用于不安全的数据库。这些数据库都提供了固有的安全级别,没有额外的安全措施。例如,他们需要凭据才能连接并拥有角色和特权。管理数据库中的数据是确保数据安全的第一步。
等级2适用于数据库和操作系统均按照行业标准和最佳实践进行配置的数据库。
这个等级还要求所有数据库帐户的权限最低,这意味着授予帐户的权限是履行其职责所需的最低权限。
作为等级2要求的一部分,应该努力消除共享帐户。如果存在共享帐户,则不应经常使用它们,并且它们的凭据应保密。
对于内置于数据库中的特权共享帐户,限制使用尤其如此。Oracle公司中的SYS和SYSTEM或SQL-Server中的SA等数据库帐户不应经常使用,它们的密码应安全保存并限制访问。
例如,当应用程序使用特权帐户或共享帐户是企业运营方式的一部分时,这一要求可能具有挑战性。减少和控制这些帐户的使用对于安全至关重要。
等级3适用于受变更控制的数据库。这意味着对元数据(例如用户、权限、配置和对象)的任何更改都应经过更改控制批准流程。
作为等级3要求的一部分,需要制作配置、用户、权限和对象元数据的每日快照。应及时调查和批准快照之间的更改。
此外建议将这些快照与类似数据库进行交叉比较,以确保一致且统一的配置、用户、权限等。
变更控制的挑战在于它可能很麻烦并且被视为无用的繁文缛节。然而,缺乏对元数据更改的控制很快就会变成对数据的缺乏控制。
等级4适用于所有登录都受到监控和定期审查的数据库。企业应该及时调查来自意外用户、程序或机器的登录。
破坏数据库安全的最简单方法之一是窃取凭证。例如,窃取数据库管理员(DBA)用户名和密码将授予攻击者对数据的无限制访问权限。监控登录可以降低这种风险。
大多数数据库允许以最小的开销审计登录和失败的登录。实施挑战是通过报告提供对信息的有效审查。
等级5适用于定期记录、报告和审查高风险SQL活动的数据库。
高风险SQL活动包括:
所有DDL(包括DCL)——修改数据库配置、对象、用户、权限等的SQL。
来自意外来源的DML,例如特权用户和特定程序。
该要求的目的是对不频繁和高风险的活动实施控制。审核罕见的活动通常不会产生性能开销,并且需要最少的时间投入。实施方面的挑战是允许对活动进行及时有效的审查。
等级6适用于接受全面SQL审计的数据库,其中所有具有潜在风险的SQL活动都会定期记录、报告和审查。
这将转化为审计大量活动,包括查询。例如:
使用查询和DML访问敏感表。
所有的数据库管理员(DBA)和特权用户活动。
来自高风险程序(例如SQL Plus、Management Studio等)的所有活动。
不是来自应用程序服务器的应用程序帐户的活动。
即使在数据库内部由存储过程或触发器执行的敏感活动。
等级6还要求所有数据库网络活动完全加密,以防止网络嗅探和欺骗。这一要求的目的是开始对SQL活动应用严格的安全措施,并防止许多网络攻击。
在大多数数据库中,网络活动的加密措施是免费内置的,并且很容易开启。这一要求中的主要实施挑战是在没有适当解决方案的情况下审计过多活动,这可能会对数据库性能产生重大影响。第二个挑战是实现高效的报告,以最少的时间投入及时审查信息。
在搜索审计解决方案时,需要注意某些产品没有避免数据库性能开销,而其他产品不支持网络加密。
等级7适用于对异常活动源进行自动检测和警报的数据库。与等级4中执行的人工会话审查不同,这一等级需要能够检测活动源配置文件变化并发出警报的自动化。
其中包括:
对连接到数据库的新用户、程序、机器或它们的组合发出警报。
检测共享帐户(多个个人使用的帐户)以及使用多个帐户的个人。
这个要求的目的是通过自动化来补充人工审查,以注意到并突出异常活动。这有助于避免意外疏忽,并确保快速检测和响应。实施需要适当的解决方案来执行分析。
等级8适用于对异常SQL活动进行自动检测和警报的数据库。与等级5和等级6中的人工SQL审查不同,等级8需要能够分析数据库中所有SQL活动(包括应用程序活动)的自动化。
其中包括:
异常的应用程序行为,例如潜在的SQL注入。
异常活动水平。例如,执行的SQL数或访问的行数异常多。
在一天中的奇数时间进行活动。
涉及敏感表新的SQL。
这一要求的目标远远超出了避免意外疏忽和改进检测时间的范围。其目的是对无法接受人工审查的数据库中不可能高的活动量进行控制。
即使是低活动的数据库每天也可能执行数百万次SQL查询,如果没有实现自动化,就不可能对它们应用任何级别的控制。实施需要能够以低开销捕获所有活动并执行分析的软件。
等级9适用于定期进行主动活动审查的数据库。这意味着熟悉数据库活动概况的人员会定期检查活动(例如每月一次)。
取证审查的目的是识别可能未被发现的行为,包括内部滥用和外部攻击。此外还可以突出控制、风险做法等方面的差距。
实施取证审查需要一个解决方案,能够以最小的开销捕获所有活动,减少并将其存储在合理数量的磁盘空间中,并提供取证工具来分析和审查它。
等级10适用于限制访问帐户的数据库,否则对数据的访问不受限制,例如数据库管理员(DBA)帐户、特权帐户和应用程序帐户。
此类限制通常不是原生数据库功能的一部分,可能包括:
防止特权帐户访问他们不应访问的模式、表或对象。例如,数据库管理员(DBA)帐户通常不应访问数据。
防止不应访问的程序或机器访问该帐户。例如,只有应用程序和应用服务器才能访问应用帐号。
防止在不应该使用帐户的日子和时间访问帐户。
防止帐户访问超出预期的数据(速率限制)。
通过要求安全人员预先授权某些特权活动来强制分离职责。
这个要求需要一个解决方案来实施,因为它超出了内置的数据库预防控制。对数据库应用预防控制会带来阻止合法活动的操作风险。因此,必须按照适当的最佳实践谨慎地部署此类措施,以最大程度地减少中断的可能性。
如果企业的安全等级没有想象的那么高,那么不要担心,继续加强。而保持数据库安全需要坚持不懈的追求,这将逐渐提高企业的安全等级。
数据库安全是一项必不可少的投资,它将让企业确信其数据是安全和可靠的。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。