乍得·基姆
数据库包含组织的一些最敏感数据,因此遵循数据库安全最佳实践对于保护数据免受网络攻击和内部数据盗窃至关重要。
有效的数据库安全性将敏感信息包含在控制层中,从而降低泄露风险并减少成功泄露的潜在危害。我们将讨论创建重叠控件的数据库安全性的七个最佳实践,然后是相关系统的其他七个最佳实践。其结果是进行严格的纵深防御,以最大限度地降低整个组织的风险。
什么是数据库安全?
数据库安全性包括组织实施的控制措施,以防止来自数据库文件、数据库管理系统 (DBMS) 和连接系统的未经授权的访问或数据泄露。安全控制包括体系结构技术、应用程序设计、过程、过程和工具,使数据更难访问和使用。
数据库安全性不佳会损害运营效率、应用程序性能和用户体验。安全性必须与运营需求相平衡,目标是在保持可用性的同时将风险降低到可接受的水平。
数据库安全最佳做法和控制措施专门适用于数据库。然而,数据库并不是纯粹孤立地存在的,因此组织还必须捍卫更广泛的生态系统。为了得到充分的保护,有效的数据库安全还需要实施适用于相关系统的更通用的安全最佳做法。
数据库安全最佳实践
若要保护数据库,数据库必须驻留在安全环境中,受其自身的外围安全性保护,并由受保护的用户访问。这七个最佳实践专门用于保护数据库和数据库数据。
1. 单独的数据库服务器
根据定义,Web 服务器必须可公开访问才能使用,但这也将 Web 服务器描绘成攻击的主要目标。成功的攻击可能授予攻击者访问网站或应用程序的主机服务器的权限,从而允许攻击者访问服务器上托管的任何其他内容。
数据库应隔离到单独的容器、物理服务器或虚拟服务器,以便进行额外的强化,并防止在网站或应用程序遭到破坏时进行访问。只应打开单独服务器上所需的端口,并且在可能的情况下,组织应更改默认通信端口,以使攻击更难执行。
有些人建议在数据库和查询之间设置一个 HTTPS 代理服务器,但将 Web 服务器和数据库服务器在功能上分离会实现相同的结果。但是,代理服务器可能有利于可由授权网络用户或设备直接查询的内部网络数据库。
若要进一步保护数据库,请考虑将数据库服务器放置在单独的物理或虚拟网段上,并具有高度限制的访问权限。这种类型的微分段可以防止已获得更常规网络访问权限的攻击者轻松横向移动以访问可能不会出现在受感染用户网络上的数据库服务器。
2. 使用数据库防火墙
数据库只有在被访问时才有用,但这种访问必须受到保护。第一层防御来自特定于数据库的防火墙,这些防火墙默认拒绝访问。允许通过防火墙的唯一流量应来自需要访问数据的特定应用程序、Web 服务器或用户,如果没有特定需求,防火墙应拒绝数据库启动出站连接。
如果用例允许,则应限制或拒绝对数据库的直接访问。防火墙规则更改必须由更改管理过程控制,并触发警报以进行安全监视。
组织可以部署专用数据库工具,其中包括特殊防火墙,例如 Oracle Audit Vault 和数据库防火墙、专用物理或虚拟下一代防火墙 (NGFW) 或 Web 应用防火墙 (WAF) 解决方案。资源有限的组织可以简单地部署数据库服务器操作系统防火墙的强化版本。
3. 保护数据库用户访问
应尽可能少地访问数据库的用户、应用程序和应用程序编程接口 (API)。只有在网络或应用程序授权后才能授予任何访问权限,即使如此,所有访问也应基于最小权限原则,并在尽可能短的时间内授予。此最佳实践可以分为三个子类别:用户授权、特权访问以及数据库的开发和运营 (DevOps) 使用。
用户授权
对数据库的访问控制由系统管理员或管理员管理。管理员通过向这些数据库角色添加用户帐户来授予由角色定义的权限。例如,行级安全性 (RLS) 角色根据用户的身份、角色成员身份或查询执行上下文限制对数据行的读取和写入访问。
专用数据库安全解决方案可能允许集中管理身份和权限,最大限度地减少密码存储,并启用密码轮换策略。全面的访问管理对于较小的组织来说可能不切实际,但通过角色或组而不是单个用户管理权限仍然很重要。
管理员还需要强化数据库访问规则:
不应允许使用空密码
应删除可能包含密码的临时安装文件
如果不需要,应删除默认帐户,否则从默认设置更改密码
需要所有用户的唯一 ID 进行跟踪和记录
用户和应用程序应使用单独的帐户
应按计划禁用或删除非活动用户
应记录、报告提升的数据库权限,并可能生成安全警报
应定期审查用户组和访问权限
帐户应在多次登录失败后自动锁定,通常建议为六次登录尝试失败
特权访问
管理员应仅具有执行所需任务所需的最低权限,并且仅在他们特别需要访问权限的持续时间内。应临时授予特权访问权限,并不断撤消特权访问权限。大型组织使用特权访问管理 (PAM) 软件自动执行访问管理。PAM 为授权用户提供临时密码、记录活动并防止共享密码。
DevOps数据库的使用
虽然通常不被视为用户,但 DevOps 团队需要创建测试环境来验证应用程序是否可以正确访问和使用数据库。不幸的是,使用实时或生产数据库数据通常会导致意外数据泄露。
为了避免出现问题,DevOps应使用以下做法:
敏感数据应限制在生产环境中
测试环境应在物理上和逻辑上与生产环境分开
测试环境应使用与生产环境不同的角色和权限
除非绝对必要,否则开发人员不应访问生产环境
测试环境不应包含真实的生产数据;应改用合成或匿名数据集
4. 强化数据库
正如必须加固服务器一样,数据库也应该加固,以防止简单的攻击和利用。
数据库强化因数据库平台类型而异,但常见步骤包括加强密码保护和访问控制、保护网络流量以及加密数据库中的敏感字段。
应删除或关闭数据库中所有未使用或不必要的服务或功能,以防止无法识别的利用。
应启用数据库提供的所有数据库安全控制。默认情况下,某些控件将处于启用状态,而其他控件可能具有禁用的特定原因,但应评估每个控件,并记录禁用控件的所有原因。在可能的情况下,管理员可以为敏感数据启用行级安全性和动态数据掩码。
DevOps 应设计数据库,以便敏感信息保留在隔离表中。管理员还应持续审核数据以发现敏感数据,以确定是否需要修改隔离表或应用其他安全性。某些法规或合规性标准将强制要求特定的数据发现要求,需要实施、遵循和记录这些要求以证明合规性。
5. 审计和持续监控数据库活动
DevOps 在设计时有一定的期望,但在将数据库与应用程序集成并将它们移动到生产环境后,可能会发生一些意外的访问、用户查询或数据行为。管理员需要持续监视和审核数据库日志、数据和活动,包括:
用户登录日志,尤其是尝试登录和失败的登录
锁定的帐户(由于登录尝试失败过多)
数据库权限提升
数据库数据提取、复制或删除(尤其是大规模更改或提取)
访问敏感或受监管的数据(可能需要合规性)
新帐户创建
审核通常可以检测到异常活动,安全团队可以针对关键事件建立安全警报,以警告安全团队或启用安全信息和事件管理 (SIEM) 工具警报。数据库活动监控 (DAM) 和文件完整性监控软件可以提供独立于本机数据库日志记录和审计功能的专用安全警报。
6. 测试数据库安全性
尽管审计可以捕获正在进行的恶意活动,但组织不应等待攻击来测试其数据库部署。应监视数据库供应商的更新,补丁管理过程应以最小的延迟更新数据库。
然而,修补只能解决公开宣布的漏洞。一些数据库供应商将提供安全和配置测试工具,例如 Oracle 的数据库安全评估工具,以帮助识别风险。但是,不应假定这些工具提供 100% 的保证,而应辅以使用漏洞扫描和渗透测试的后续测试,这些测试模拟潜在攻击以暴露错误配置、无意中访问的数据和其他问题。
7. 数据库数据最佳实践
数据库对数据进行结构化,但数据库中包含的数据也需要受到保护。第一步要求组织仅存储业务功能所需的受保护数据。消除过多的数据或清除不必要的历史信息可以最大限度地降低风险敞口。
接下来,必须有意识地控制数据。应在整个系统中消除受保护数据的冗余,并且必须尽可能避免在记录系统之外隐藏受保护数据。在将匹配目的所需的数据存储到系统外部之前,可以将哈希函数应用于受保护的数据元素。在可能的情况下,应将受保护的数据(如健康信息或信用卡号)与个人身份信息 (PII) 分离。
还应该进行加密以获得额外的保护。许多供应商提供解决方案来加密静态数据、传输中的数据,甚至使用中的数据。在数据库中,DevOps 可以加密或使用数据屏蔽来隐藏表中的数据。一些加密工具甚至允许在不解密的情况下处理和搜索数据,以便数据始终保持加密和保护状态。
默认情况下,某些云供应商(如 Oracle)会加密存储的数据或提供加密密钥管理工具,例如 Azure Key Vault。但是,组织本身有责任确保在整个数据存储和数据传输过程中提供充分的保护。
相关系统安全最佳实践
如果安全实践不专门适用于数据库,则不能仅将其视为数据库安全的一个组成部分。但是,这并不会降低这些做法的重要性,也不会降低这些安全做法的重要性,以确保数据库安全。
1. 物理安全最佳实践
虽然有时可能会被忽视,但绝不能假设人身安全。攻击者对数据中心的物理访问甚至会破坏最佳的网络安全实践和技术。保护包含服务器和网络设备的物理环境应该是基本 IT 安全的首要最佳实践。
现场数据中心需要物理安全措施,例如摄像头、锁和配备人员的安全人员,并且应控制、记录和定期审查任何物理访问服务器。如果常规访问不典型,则应生成警报。
托管在云中的资产可能不在组织的直接物理控制范围之内,但不在组织的职责范围之内。组织仍需要确认足够的物理安全性,这通常由云供应商在合规性指南中遵守物理安全标准来满足,例如:
ISO 27001认证
国际标准化组织 20000-1
NIST SP(SP 800-14、SP 800-23 和 SP 800-53)
国防部信息保障技术框架
SSAE 18 SOC 1 II 型、SOC 2 II 型和 SOC 3
2. 使用 Web 应用程序和网络防火墙
防火墙为所有 IT 资产提供基础保护。除了为数据库部署防火墙外,组织还需要部署下一代防火墙 (NGFW) 来保护其网络,并部署 Web 应用程序防火墙来保护访问数据库的网站和应用程序。
这些更通用的防火墙可保护整个组织免受影响数据库和其他系统的攻击,例如 SQL 注入攻击和分布式拒绝服务 (DDoS) 攻击。
3. 用户身份验证
当数据库授权用户访问时,固有的假设是用户已经过身份验证并证明了其身份。安全最佳做法要求对所有类型的用户(如来宾、员工、客户和管理员)进行身份验证或身份验证。用户身份验证安全子类别包括内部威胁管理、用户验证和特权访问管理 (PAM)。
内部威胁管理
有些数据可能非常有价值,犯罪组织会付钱给员工泄露数据,甚至以虚假借口让自己的成员从事工作以获取数据。为了最大程度地减少这些内部威胁问题,组织应对程序员、承包商、安全专业人员、数据库管理员以及任何可能能够访问或重定向敏感信息的人进行背景调查。
查看顶级数据丢失防护 (DLP) 解决方案
确认员工身份后,组织将实施用户和实体行为分析 (UEBA) 工具、其他安全工具上的 UEBA 功能以及审核日志,以查找不当或异常行为的迹象。请记住,在检测到异常行为之前,黑客使用的被盗凭据在大多数安全工具中都会显示为授权访问。最后,制定一项策略,以便在员工切换到不同的角色或离开公司时停用帐户或不必要的访问权限。
用户验证
为了维护已验证身份的完整性,用户必须定期甚至不断(在零信任的情况下)确认其身份。密码仍然是最常用的身份识别方法;但是,一些组织已开始部署无密码身份验证。
对于管理员帐户和其他特权帐户,组织应始终使用多重身份验证 (MFA)。对于最重要的数据,组织应考虑使用物理 MFA,例如磁卡、USB 令牌和其他无法被远程攻击者窃取或轻易复制的方法。
对于使用密码的组织,应使用强密码和密码管理:
应要求密码复杂度(大写、数字和特殊字符的混合)或密码短语(更长的密码)
密码长度应至少为 8 个字符,特权帐户的长度更长
密码哈希应加密存储并加盐
在重复和失败的登录尝试后,应锁定帐户;对于普通用户帐户,多达 6 个,对于特权帐户或管理员帐户,则少至 3 个
密码应过期
部署密码管理器的组织可能需要更复杂和更频繁的密码过期,而不必担心用户将其密码存储在不安全或易受攻击的位置。应定期更新用户访问权限,以防止过时和被遗忘的用户或设备访问权限。
特权帐户管理
管理员访问滥用可能会造成巨大损害,因此必须采取额外措施来保护管理员凭据。不仅密码要求应该更严格,而且组织可能还需要考虑特权访问管理 (PAM) 工具,这些工具会生成具有有限权限的临时密码,以便授权用户在每次访问数据库时都必须进行身份验证。
无论是否使用专用工具,特权访问都应强制执行其他规则:
没有密码共享
所有会议和活动都会被记录下来并定期审查
应记录并定期查看所有用户权限提升
4. 设备安全
所有访问数据库的设备以及一般的网络都需要进行验证和持续监控,以防潜在的入侵。防病毒保护提供最低级别的保护,但为了获得更多保护,组织通常会部署终结点检测和响应 (EDR) 工具或扩展检测和响应 (XDR) 工具,以提供更主动的检测。
应通过使用 IP 和 MAC 地址限制、白名单或网络访问控制 (NAC) 来进一步限制管理设备。这些措施限制了允许访问敏感区域的设备数量,以防止被盗凭据对黑客有用。
对于与数据库(或其他敏感系统)相关的基础结构,组织应记录所有设备、应用程序和工具。此外,配置文件和源代码必须锁定,只能由受保护的管理员帐户访问,并受更改管理策略和工具保护。
最后,应监控所有系统。应使用 XDR 或入侵检测和防御系统 (IDPS) 工具监控网络。所有安全系统都应向安全信息和事件监视 (SIEM) 工具、安全运营中心 (SOC) 或托管检测和响应 (MDR) 团队提供警报。
5. 应用程序和 API 安全
连接到数据库或其他 IT 资源的应用程序和 API 必须受到保护。DevOps应该首先将漏洞扫描工具应用于内部开发的网站和应用程序。大型组织将部署应用程序安全工具和 API 安全工具,以进一步保护和监控系统。
6. 定期更新您的操作系统和补丁
最好的安全工具和策略将因维护不善而受到破坏。应监控所有系统、应用程序、工具和固件,以发现新发布的补丁或披露的漏洞。关键系统(例如连接到数据库系统的系统)应优先进行定期补丁管理和漏洞管理。软件供应链组件(如开源库)也应进行跟踪和解决漏洞和更新问题。
7. 业务连续性最佳实践
即使是最好的计划也会遇到问题。无论问题源于心怀不满的员工、恶意黑客、电源故障还是洪水,业务连续性和灾难恢复设计系统的最佳实践都是为了实现弹性和快速恢复。
冗余架构设计可在系统发生故障时保持正常运行时间。通过使用主动-被动冗余进行故障转移恢复,或者使用将潜在负载拆分到多个服务器上的负载平衡服务器,可以使服务器更具弹性。
数据和系统备份可防止系统完全故障或恶意活动。备份应定期进行并受到高度保护。最佳做法遵循 3-2-1 备份规则,即备份数据的三个副本、两种类型的存储以及至少一个异地和脱机存储的副本。绝对不应该有对备份的公共访问,备份应该加密并与加密密钥分开存储。
备份不仅应包括数据,还应包括支持基础结构的设置、软件应用程序和配置,以便快速恢复受影响的系统。应定期测试任务关键型基础结构的备份,以验证备份过程的有效性,并为恢复预期设定基准。
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...