数据库安全小议
作者:网络转载 发布时间:[ 2016/2/18 10:42:14 ] 推荐标签:数据库 数据库安全
数据库安全目前是安全从业者讨论的重要主题之一。随着越来越多的突发事件发生,是时候采取一些行动了。
安全的数据库应当为成员的访问提供了有效控制与保护,同时还能保障所有的数据质量。我们必须充分了解数据库安全的相关挑战并努力提供一个解决方案。针对数据库的威胁取决于很多因素,例如互联网安全、物理安全、加密、身份验证等等。由于所处组织的不同,数据的敏感度也大不相同。数据库中可能是客户数据、财务记录以及许多其他类型的具有价值的信息。
因此保护这些数据免受内部或者外部的攻击,都至关重要。进行定期审核来检查数据库中存在的缺陷和漏洞是非常必要的,由于在程序设计时忽略了安全因素,或因没有及时更新、使用过期版本的应用程序而出现一些缺陷。了解数据库的结构,并在初始阶段识别出潜在的威胁是非常重要的。
在我们保护数据库时应当考虑如下三个要点:
● 保护数据免受未经授权的访问;
● 防止未经授权的泄露;
● 修复硬件或软件的错误。
因此,与数据库安全相关的任何情况,都需要考虑到控制访问权限、应用程序访问、漏洞管理以及审计。由于几乎所有数据库都与互联网相连,我们需要明白其结构的复杂性。
下图中显示了一个数据库通常的使用情况:
图1:数据库环境
身份验证
访问数据库的第一步是在身份验证过程完成后进行数据库服务器登录。如果身份验证过程的配置不正确,攻击者便更容易获取对数据库的访问权限。如果数据库包含高优级数据,那应该采取多层身份验证,以达到高的安全保护级别。即便采用的用户名或密码验证比较普通,我们必须确保关键字是高强度的。以下是增加密码强度的几条建议:
● 密码中采用的字符应当介于8-20个之间;
● 它不应当与你的用户名、电子邮件地址、服务器名称或者电话号码有关。这些密码都很容易被猜到;
● 应当避免多账户采用相同的密码;
● 混合数字、字母和符号将增加密码强度。
这里有许多用于检测密码强度的应用,使用其中的一个软件,便可确保大强度的密码。
访问控制
保护数据的佳方式便是限制其访问。我们应当对每个用户访问数据的用户进行授权和身份验证。通常的做法是将用户名和密码分配到每个登录数据库的用户。同时,对于不同用户应当根据敏感数据的分类要求,进行不同权限设置。让我们通过具体的实例来进行解释,例如一个大学的数据库。学生应当被授予登录他们各自账户数据库的权限,以及数据库中相关内容的读取权限。教师以及其他工作人员则需要拥有数据库的录入权限。这是保护数据库的基本步骤。即使攻击者设法使用学生账户登录,所具有的权限也是有限的。在这个过程中,识别每个用户并且分配他们对应数据的访问权限,至关重要。访问控制主要可以实现于以下四个级别:
● 自主访问控制(DAC):在这个层次上,基于一些预设的权衡性政策,根据用户身份及特权授予其访问权限。通过这一方法,用户可以授权其他用户访问该数据,处于这一特性,这也被用于大多数企业。用户能够在存在需求时,对权限进行添加或删减。
● 基于内容的访问控制:在这里权限的授予与否是基于内容而定的。在一个组织中,同一时间可能运行多个项目,因此用户需要访问的数据只需是和项目有关的。
● 细粒度访问控制:可设置不同级别的访问控制。例如,我们能够在Oracle虚拟数据库中看到这些内容。
● 强制访问控制(MAC):这是个基于用户和数据对象分类的模型。分类基于不同等级,被称为访问类。一个访问类包含多层安全水平,可以用于给不同类适当的读写权限。
应用程序访问
用户总是将记录文件同放在数据库放在一个目录,并且通过某个软件或者应用程序来管理数据库,透过分析这些应用的构造框架,我们可以逐一击破并修复其中的毛病。这个工具是用来进行身份认证以及权限获取的,这个应用框架同样也提供一个数据可视化管理的功能,应用中,将显示各数据库、类之间的关联关系,并提供出关于当前数据详细的提示。而对于一个程序来说,大的问题在于确定软件框架定义的权限授予是否真的是按提交过来的用户身份而对应分配的。
数据库威胁
研究发现,数据库是易遭到破坏的资产。数据库是所有组织的心脏,因此保护数据库安全至关重要。当攻击者得到了访问数据库的权,他们便会想方设法进行破坏、曝光,足以扰乱整个组织的运作。下面将列举出在很长一个阶段内,存在的影响数据库安全的一些威胁:
● 过度和未使用的特权:用户总是获得超出他们需求的特权。这些超出的特权落入“特殊用户”手中往往会导致各种问题。如果这个人居心叵测,他便可以利用这些特权窃取敏感数据。而这之所以会发生,是不恰当的权限控制机制所造成的。
● 滥用特权:有时用户会在一些未经授权的活动中“错用”自己的权限。此事在很多情况下都会发生。因此,不建议他们在未经授权的活动中使用权限。
● SQL注入:通过向Web应用程序中插入恶意语句发动攻击。攻击者便有机会获得整个数据库的访问权限。
● 恶意软件:攻击者使用黑客技术,将钓鱼邮件将恶意软件发送到用户邮箱。用户在不知情的情况下,点击邮件链接从而被控制。攻击者利用这个用户,便可通过各种路径进入数据库。
● 糟糕的审计记录:自动化系统记录应当是每个数据库的一部分。如果没有进行适当的记录,便可能导致各种问题。大多数公司都会进行系统审计,这一般是由数据库厂商提供的。而这种软件通常无法满足每个公司的需求。
● 存储媒体曝光:人们花费了很多努力保护活跃对象。他们有时会忘记安全备份,尽管这与保护系统同样重要。一个攻击者可以轻松进入未加密备份,然后对公司进行入侵。因此,保护备份数据文件也非常重要,请保持对高优先级用户的持续关注。
● 拒绝服务(DOS):这是一个很常见的攻击类型,攻击者对网络设备或数据造成拒绝访问。在数据库中,DOS通常由大量请求、占用大量资源从而服务器过载。这使得服务器没有响应,终导致数据库沦陷。DOS是一个严重的危害,应当被重视。任何一个系统都会受此影响。
数据库审计
在定期监控的帮助之下,针对数据库的攻击可以降到小。审计可以帮助我们发现现存架构中的漏洞和缺陷,然后找到一个适合的解决方案来修复它们。数据库审计包含以下不同层次:
● 访问及身份验证审计:这里包括了登录用户使用的数据库。它记录了用户访问数据库的时间、内容以及途径。
● 用户与管理员审计:针对用户和管理员执行的活动进行分析和报告。
● 安全活动监控:这里对全部活动列表进行了跟踪,并将数据库中任何未授权或者可疑的活动进行报告。
● 漏洞与威胁审计:漏洞普遍存在于所有系统中。我们的职责便是及时地发现并修复它们。在这个审计步骤中,漏洞会被发现并修复。同时,想要利用这些漏洞的“用户”也会被发现。
● 审计中的变化:首先,为审计过程建立一个基础结构。然后审计政策会根据需求而进行变化,由此可以避免出现任何含糊不清的地方。
如何进行数据库审计?
● 明确数据:这并不像听起来那么简单。确定那些真正需要保护的数据是非常重要的。数据库可能包含了各类型、优先级不同的数据。对这些类型的数据进行分类,会使审计过程变得非常轻松。
● 利用在建功能的基础审计:现在每个数据库服务器都有默认审计功能。第一件事是运行这些运用于审计的工具。他们的登录触发功能在许多服务器中都是默认开启的,这样有助于我们对登录的详细信息进行控制与监视。使用这些工具,我们无法自定义地进行审计工作,特别是一些复杂的工作。对于这种情况,可以使用第三方审计软件来开展工作。
● 使用第三方的审计软件和网络设备:这些审计工具可以为满足用户需求进行特殊定制。因为它们具有超多功能,为创造大输出而进行了深度挖掘。这些设备可用于提供保护的同时还能监控服务器。而它们的主要优势是,服务器性能不会受到影响,因为这些工具都是单独安装于服务器的。
数据加密
加密是应当被给予更多关注的领域之一。数据加密对保护数据库而言非常重要。而在实际情况中情,我们需要处理两种类型的数据。第一种是对静态数据进行加密,另一种则是通过强验证转化的数据。对于静态数据而言,多种加密算法并不能轻易被未授权的用户破解。不同的算法取决于各自的加密技术。一些用于服务器是算法包括DES、Triple DES、DESX、128位AES、192位AES等等。这些算法根据各自的特点被用于适合的位置。无论如何,完美的算法是并不存在的。用于传输数据的安全shell流量应当获得保护。通常数据使用明文在网络中传递,这种类型的数据很容易在嗅探器的“帮助下”被获取。为了避免这样的情况,数据应该通过SSH加密通道。
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11