27、数据库安全防护全解析

数据库安全防护全解析

外部补救措施

在当今数字化时代,数据库安全至关重要。外部补救措施是保障数据库安全的重要环节,以下是用户请求数据的流程:
1. 用户浏览器生成对存储在数据库中的数据的请求(例如,零售目录中的一个页面),并将其传输到公司网络。
2. 边缘路由器将请求传递给 Web 服务器。
3. Web 服务器向数据库请求数据。
4. Web 服务器和数据库服务器之间的防火墙允许该消息通过,因为它来自数据库服务器。
5. 数据库服务器检索请求的数据,并通过防火墙将其发送回 Web 服务器。
6. Web 服务器格式化数据,并向用户发送响应,用户的浏览器显示新的网页。

需要注意的是,内部用户可以直接访问 Web 服务器,而无需通过非军事区(DMZ),前提是内部用户被授权直接访问数据库。

应对恶意软件

当数据库服务器受到恶意软件感染时,可能会导致严重问题,如数据丢失、无法访问数据库或失去对数据库服务器硬件的控制。通常,运行在防火墙和服务器上的“病毒防护”软件可提供针对恶意软件的保护。

大多数当前的病毒防护软件可以处理蠕虫、特洛伊木马、僵尸程序以及病毒。然而,要记住的是,编写恶意软件的人和开发病毒防护软件的人之间的斗争在不断升级。一旦识别出新的威胁,软件开发人员会迅速将新的恶意软件添加到他们的防护数据库中;而恶意软件制造者随后会编写通常比以前版本更强大、更复杂的新恶意软件。由于在检测到新的恶意软件和更新病毒防护软件以处理该恶意软件之间总是存在一定的延迟,无论多么短暂,因此永远无法完全免受恶意软件的侵害。最好的做法是定期更新病毒防护软件附带的数据库。

缓冲区溢出

缓冲区溢出问题是软件编写方式的缺陷,对于没有源代码访问权限和程序员团队的组织来说,实际上无法修复该问题。组织必须依靠软件开发人员发布代码更新(补丁)。

打补丁是一项合作操作,一旦供应商发布了补丁,使用该软件的组织就需要安装补丁。尽管如此,应对缓冲区溢出漏洞(以及软件中的任何其他漏洞)的最佳防御措施是应用所有可用的补丁。

补丁管理对于 IT 人员来说可能是一场噩梦。某些类型的软件(例如,各种版本的 Microsoft Windows)会发布大量补丁,很难知道哪些补丁是重要且稳定的,在大型组织中,也很难知道哪些补丁已应用到哪些机器上。尽管如此,为了保护数据库服务器(包括操作系统和数据库管理系统),必须与 IT 部门合作,确保应用了所有必要的补丁。

物理服务器安全

物理安全需要采取双管齐下的方法:防止对服务器的物理访问,如果这一措施失败,则保护管理账户。实际的物理方法包括以下任何一种或全部:
- 服务器机房门外安装安全摄像头,记录进入、离开和在该区域徘徊的每个人。
- 服务器机房门使用智能锁,存储每个进出人员的代码以及进出的日期和时间。如果需要,智能锁可以配备生物识别设备。
- 移除服务器机房门和走廊上的标识,使任何人无法通过在大楼走廊行走来找到硬件室。

必须定期检查安全摄像头和智能锁的记录,以确定是否出现任何异常的访问模式。

如果未经授权的人员设法突破了物理安全,他可能会试图获得计算机的软件访问权限(假设入侵者很少以对设备造成物理损坏为目标)。这意味着必须保护每个服务器的管理账户。首先,账户永远不应保持登录状态。虽然这对操作员来说可能更方便,但会使服务器容易受到任何路过人员的攻击。其次,应限制对管理账户的登录尝试。例如,在三次登录尝试失败后,服务器应在预定的时间内禁止进一步的登录尝试。

用户认证

任何被允许直接访问数据库的用户必须首先通过本地局域网的访问认证。这种认证的形式取决于网络的规模和安全风险。确定用户身份需要以下三个要素:
1. 用户知道的信息
2. 用户拥有的物品
3. 用户本身的特征

第一个要素可以通过密码实现,第二个要素可以通过物理登录设备实现,第三个要素可以通过生物识别技术实现。

用户 ID 和密码(用户知道的信息)

任何网络认证方案的第一道防线是用户 ID 和密码。用户 ID 本身通常不被视为私密信息;事实上,许多用户 ID 基于用户的电子邮件地址。因此,安全性取决于密码。一般的安全实践告诉我们关于密码的以下信息:
- 长密码比短密码更好。
- 包含字母、数字和特殊字符(例如,标点符号)的密码比全是字母或全是数字的密码更安全。
- 需要对用户进行教育,以确保用户不与任何人共享密码,也不将密码写在其他人可能看到的地方。
- 密码应定期更改。

虽然“普遍认为”密码应定期更改,但该政策存在一些问题。当用户被迫更改密码时,他们往往会忘记自己使用的是哪个密码。解决方案是将密码写下来,但有时会将其放在不安全的位置,如桌子的中间抽屉或贴在显示器上的便签上。

登录设备(用户拥有的物品)

用户认证的第二层是要求登录者出示只有授权用户才有的物理设备。该设备以某种方式与用户 ID 唯一关联。

登录设备包括用户在输入密码前必须以某种方式扫描的访问卡,以及发放一次性密码的设备,用户除了输入常规密码外,还需输入该一次性密码。例如,PayPal 会以 5 美元的价格向用户发送一个生成一次性密码的小设备。登录时,用户必须先输入标准的用户 ID 和密码,然后认证应用程序会要求输入该设备生成的代码。该设备适用于关注账户安全的用户,但并非必需。

一些认证令牌需要将令牌物理插入直接连接到网络的计算机中。例如,Aladdin Systems 的 eToken 系列主要由插入 USB 端口的设备组成,用于验证用户及其位置。

登录设备的优点是体积小,通常小到可以挂在钥匙链上,方便用户随身携带。然而,如果用户没有该设备但需要访问,必须有替代的认证方式。例如,PayPal 提供了几种替代方式,如回答安全问题或提供与 PayPal 账户关联的金融账户号码。

生物识别技术(用户本身的特征)

生物识别识别——基于人的身体某些特征的识别——长期以来一直是科幻小说的一部分。视网膜印记、指纹、掌纹和面部扫描的想法似乎并不特别牵强。如今,你可以购买带有指纹读取器的鼠标,该读取器将指纹发送到计算机进行认证。除非计算机识别出指纹,否则不会解锁,这似乎是保护敏感区域的笔记本电脑和台式机的好方法。

VPN(虚拟专用网络)

如今,远程访问数据库很常见。用户会出差、在家工作。远程用户使用调制解调器和标准电话线拨入工作网络的时代早已过去。大多数远程访问通过互联网连接到内部网络。数据库管理员面临的问题是确保数据在外部网络传输时的安全。

一种常用的解决方案是虚拟专用网络(VPN)。VPN 为互联网上的数据传输提供加密。虽然有几种类型的 VPN,但许多使用一种称为 IPSec 的安全协议,包括内置在 Windows 和 Mac OS X 等桌面操作系统中的 VPN。

IPSec 对数据进行加密,使其对没有秘密加密密钥的人来说毫无意义。即使数据在互联网传输过程中被拦截,也将毫无用处。我们说 IPSec 为数据提供了一个安全通道。一种隧道技术仅在数据实际在互联网上时对其进行加密;另一种提供端到端加密,即数据从发送计算机到目标网络都被加密。

要运行 VPN,目标网络必须有一个 VPN 服务器,该服务器接收所有传入的 VPN 流量并处理对 VPN 用户的认证。VPN 服务器充当内部网络的守门人。一旦通过认证,VPN 用户可以像实际位于网络所在地一样与目标网络进行交互。

以下是 VPN 数据传输的 mermaid 流程图:

graph LR
    A[远程用户计算机] -->|运行 IPSec 客户端软件| B(互联网)
    B -->|通过 IPSec 隧道| C[本地网络的 IPSec 服务器]
    C -->|连接到本地网络| D[本地网络]
应对社会工程攻击

社会工程攻击根本不是技术攻击,而是心理/行为攻击,因此无法通过技术手段阻止。它需要对员工进行教育,以教导他们识别这种类型的攻击以及如何防范。

例如,Jane Jones 是一家高科技公司研发部门的秘书。她的老板 John Smith 经常在家工作。Jones 女士在公司工作多年,是一位值得信赖的员工。她知道自己的计算机、Smith 先生的台式机和笔记本电脑以及 Smith 先生的大型机账户的用户名和密码。

一天早上,Jones 女士接到一个电话。“Jones 女士,我是 IT 部门的 James Doe。我需要在你的计算机和 Smith 先生的计算机上安装一些升级。我不需要去你的办公室。如果我有用户 ID 和密码,就可以通过网络完成安装。”

“哦,听起来不错,”Jones 女士说。“我讨厌 IT 部门来打断我的工作来修复问题。我的用户 ID 是……”(她告诉了 Doe 先生用户名和密码)。

不幸的是,自称 James Doe 的人并不是他所说的那个人。他是一名黑客,只需进行一些研究并打一个电话,就获得了对两台公司台式机的访问权限。首先,他在公司目录中在线查找,很容易就找到了一名 IT 员工的名字,以及研发部门负责人和他的秘书的名字。然后他只需给 Jones 女士打个电话,她就配合了,他的计划得逞了。

假 James Doe 在每台受影响的计算机上安装了一两个文件。然而,这些文件实际上是特洛伊木马,他可以在需要控制受影响的机器时激活它们。

Jones 女士犯了一个关键错误:她透露了用户名和密码。她这样做是因为她知道有一个叫 James Doe 的人在 IT 部门工作。她从未想过信任该部门的人会有问题,从未想过会有人冒充。

对于这种类型的社会工程攻击,没有技术解决方案。最好的预防措施是员工的安全意识。通过角色扮演的培训课程来演示此类攻击是如何实施的会非常有帮助。一些简单的政策也会有很大帮助:
- 永远不要向任何人透露你的用户 ID 或密码,无论那个人声称是谁。
- 如果有人声称是公司员工并要求你的用户名和密码,记下他或她的名字、主管的名字和分机号,然后挂断电话并致电主管,报告有人试图获取用户 ID 和密码的情况。
- 如果有人声称是供应商代表(或任何非员工)并要求用户 ID 和密码,立即挂断电话并通知 IT 安全部门。

组织还应采取措施限制其公开的信息,使黑客更难实施有说服力的社会工程攻击。例如,员工目录不应公开提供。相反,在非员工可访问的任何联系人列表中使用职位头衔(如“IT 经理”)。拥有注册互联网域名的组织还应限制对那些对域名发出“whois”命令的人提供的信息。

应对其他员工威胁

组织可以采取以下措施来防范其他员工威胁:
- 制定并执行政策,禁止员工在公司机器和网络上安装自己的硬件和软件。使用网络发现和映射软件监控网络硬件,检测任何未经授权的设备。
- 开展员工培训课程,使员工熟悉组织关于信息发布的政策。
- 记录所有组织安全政策,分发给员工,并要求员工签字,表示他们已阅读并接受这些政策。
- 要求员工至少每两年连续休两周假期。如果员工正在入侵组织的信息系统并掩盖未经授权的访问,两周的缺勤很可能足以暴露正在发生的事情。
- 当员工即将被解雇时,在告知员工解雇决定之前,禁用该员工的所有计算机账户。

内部解决方案

到目前为止,我们讨论的安全措施都应用于数据库管理系统(DBMS)之外,这些措施由网络管理员而非数据库人员实施。然而,关系型 DBMS 会在网络提供的安全基础上增加至少两层安全措施。

内部数据库用户 ID 和密码

前面讨论的用户 ID 和密码用于让用户访问网络,但不一定(可能也不应该)让用户访问数据库。如今,大多数关系型 DBMS 都提供自己的用户 ID 和密码机制。一旦用户获得了网络访问权限,他或她必须再次进行认证才能直接访问数据库(可以在命令行或通过应用程序进行)。

需要注意区分直接访问数据库和 Web 客户的账户访问。在网站上进行购买的用户不会直接与数据库交互,只有 Web 服务器有这种访问权限。Web 用户提供用户名和密码,这两者可能都存储在数据库中。Web 服务器向 DBMS 发送查询,以检索与用户 ID/密码对匹配的数据。假设找到了匹配的账户,Web 服务器可以然后发送查询以检索 Web 用户的账户数据。Web 客户不能使用查询语言发出临时查询,他们只能使用为他们提供的基于浏览器的应用程序。因此,典型的 Web 用户对数据库安全造成威胁的可能性较小。

然而,内部数据库用户可以直接访问为其账户配置的数据库元素。他们可以在命令行上制定临时查询,以操作他们有权访问的表或视图。因此,关键是根据每个用户 ID“需要知道”的信息来定制对数据库元素的访问。关系型数据库通过使用授权矩阵来实现这一点。

授权矩阵

大多数支持 SQL 的 DBMS 使用其数据字典来提供一定级别的安全。这种安全最初称为授权矩阵,它提供对表、视图及其组件的访问权限控制。

以下是典型的基于 SQL 的 DBMS 提供的六种访问权限类型:
| 访问权限类型 | 描述 |
| ---- | ---- |
| SELECT | 允许用户从表或视图中检索数据。 |
| INSERT | 允许用户在表或可更新视图中插入新行。可以授予对特定列的权限,而不是整个数据库元素。 |
| UPDATE | 允许用户修改表或可更新视图中的行。可以授予对特定列的权限,而不是整个数据库元素。 |
| DELETE | 允许用户从表或可更新视图中删除行。 |

通过合理配置授权矩阵,可以确保不同用户只能访问他们工作所需的数据库信息,从而提高数据库的安全性。

综上所述,保障数据库安全需要综合考虑外部和内部的各种因素,采取多种措施,包括应对恶意软件、缓冲区溢出、物理安全、用户认证、VPN 应用、防范社会工程攻击和员工威胁等,同时利用内部的用户 ID 和密码机制以及授权矩阵来进一步增强数据库的安全性。只有这样,才能有效地保护数据库中的数据,避免数据泄露和其他安全问题的发生。

数据库安全防护全解析

数据库安全策略的综合应用

为了更全面地保障数据库安全,需要将上述的各种安全措施进行综合应用。以下是一个综合应用的示例流程:

  1. 用户访问请求 :用户通过浏览器向公司网络发送数据请求,如请求零售目录中的页面。
  2. 网络传输与验证
    • 边缘路由器将请求传递给 Web 服务器。
    • Web 服务器检查用户的网络访问权限,通过用户 ID 和密码、登录设备或生物识别技术进行身份验证。
  3. 数据库交互
    • 经过验证的 Web 服务器向数据库请求数据。
    • 防火墙根据规则允许或拒绝该请求,确保数据传输的安全性。
  4. 数据处理与响应
    • 数据库服务器检索请求的数据,并通过防火墙返回给 Web 服务器。
    • Web 服务器格式化数据后,将响应发送给用户,用户浏览器显示新的网页。

以下是这个流程的 mermaid 流程图:

graph LR
    A[用户浏览器] -->|发送请求| B(边缘路由器)
    B -->|传递请求| C(Web 服务器)
    C -->|验证用户| D{用户是否合法?}
    D -- 是 --> E(Web 服务器向数据库请求数据)
    D -- 否 --> F(拒绝访问)
    E -->|通过防火墙| G(数据库服务器)
    G -->|检索数据| H(通过防火墙返回数据)
    H --> I(Web 服务器格式化数据)
    I -->|发送响应| J[用户浏览器显示网页]
数据库安全的持续监控与优化

数据库安全是一个持续的过程,需要不断地进行监控和优化。以下是一些建议:

  1. 定期安全审计
    • 检查数据库的访问日志,查看是否有异常的访问行为。
    • 审查授权矩阵,确保用户的访问权限仍然符合其工作需求。
  2. 漏洞扫描与修复
    • 使用专业的漏洞扫描工具,定期对数据库和相关系统进行扫描。
    • 及时应用软件供应商发布的补丁,修复发现的漏洞。
  3. 员工培训与教育
    • 定期开展安全培训课程,提高员工的安全意识和应对能力。
    • 更新培训内容,以反映最新的安全威胁和防范措施。
  4. 应急响应计划
    • 制定完善的应急响应计划,以应对可能的安全事件。
    • 定期进行应急演练,确保团队能够快速、有效地应对安全事故。
总结

数据库安全是一个复杂而重要的领域,涉及到多个方面的技术和管理措施。通过综合应用外部补救措施和内部解决方案,如用户认证、物理安全、VPN 应用、授权矩阵等,可以有效地保护数据库免受各种威胁。同时,持续的监控和优化也是确保数据库安全的关键。

以下是一个总结表格,概括了本文讨论的主要安全措施:
| 安全措施 | 描述 |
| ---- | ---- |
| 外部补救措施 | 包括应对恶意软件、缓冲区溢出、物理服务器安全、用户认证、VPN 应用、应对社会工程攻击和其他员工威胁等。 |
| 内部解决方案 | 内部数据库用户 ID 和密码、授权矩阵,用于控制用户对数据库的直接访问。 |
| 持续监控与优化 | 定期安全审计、漏洞扫描与修复、员工培训与教育、应急响应计划。 |

在实际应用中,组织应根据自身的需求和风险状况,制定适合的数据库安全策略,并不断调整和完善,以确保数据库的安全性和可靠性。通过采取这些措施,可以有效地保护数据库中的敏感信息,避免数据泄露、数据丢失等安全问题的发生,为组织的正常运营提供有力的保障。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值