信息安全手册之数据库系统指南

admin 2022年4月26日00:52:58评论36 views字数 3144阅读10分28秒阅读模式
数据库服务
保护数据库服务器内容
通过使用加密,可以保护数据库服务器内容免受未经授权的访问(例如,数据库服务器的物理盗窃或在处置前未能对数据库服务器硬件进行消毒)。
数据库服务器的硬盘使用全磁盘加密进行加密。
数据库服务器和 Web 服务器之间的功能分离
将 Web 应用程序使用的数据库放在与 Web 服务器相同的物理服务器上,可能会使它们面临被对手破坏的可能性增加。
数据库服务器和 Web 服务器在物理上或虚拟上在功能上是分开的。
数据库服务器和 Web 服务器之间的通信
数据库服务器和 Web 应用程序之间通信的数据,尤其是通过 Internet 传输的数据,很容易被对手捕获。
数据库服务器和 Web 应用程序之间通信的数据是加密的。
网络环境
将数据库服务器放置在与组织的工作站相同的网段上,并允许它们与其他网络资源进行通信,会使它们更容易受到对手的攻击。或者,如果只能从自己的数据库服务器访问数据库,则允许远程访问数据库服务器会带来不必要的安全风险。
需要网络连接的数据库服务器放置在与组织工作站不同的网段上。实施网络访问控制是为了将数据库服务器通信限制为严格定义的网络资源,如 Web 服务器、应用程序服务器和存储区域网络。如果只需要对数据库进行本地访问,则会禁用或指示数据库管理系统 (DBMS) 软件的网络功能以仅侦听本地主机接口。
生产、测试和开发数据库服务器的分离
使用生产数据库服务器进行测试和开发活动可能会导致其完整性或内容意外损坏。
测试和开发环境不使用与生产环境相同的数据库服务器。
数据库管理系统软件
临时安装文件和日志
DBMS 软件通常会在安装过程中留下临时安装文件和日志,以防管理员需要对失败的安装进行故障排除。这些文件可以包含明文中的密码短语,对对手来说可能是有价值的。
安装 DBMS 软件后,将删除所有临时安装文件和日志。
强化和配置
配置不当的 DBMS 软件可能为攻击者提供未经授权访问数据库内容的机会。为了帮助组织部署 DBMS软件,供应商通常会提供有关如何安全配置其 DBMS 软件的指导。此外,在安装 DBMS 软件时,大多数功能通常默认处于启用状态。
DBMS 软件是根据供应商指南配置的。不需要的 DBMS 软件功能、存储过程、账户和数据库将被禁用或删除。
限制权限
如果以本地管理员或 root 账户身份运行的 DBMS 软件遭到攻击者的威胁,则可能会给基础操作系统带来重大的安全风险。DBMS 软件通常还能够访问它在数据库服务器上具有读取访问权限的文件。例如,使用结构化查询语言 (SQL) 注入的对手可以使用命令 LOAD DATA LOCAL INFILE'etc/passwd' into TABLE Users 或 SELECT load_file("/etc/passwd")来访问 Linux 密码文件的 contents。禁用 DBMS 软件从服务器读取本地文件的功能将阻止此类 SQL 注入成功。例如,可以通过禁用"LOAD DATA LOCALINFILE"命令来执行此操作。
DBMS 软件配置为作为单独的账户运行,具有执行其功能所需的最低权限。运行 DBMS 软件的账户对数据库服务器文件系统的非必要区域具有有限的访问权限。DBMS 软件从服务器读取本地文件的功能被禁用。
数据库管理员账户
DBMS 软件通常预先配置了供应商文档中列出的默认数据库管理员账户和密码。应禁用、重命名或更改这些默认数据库管理员账户的密码。当共享数据库管理员账户以执行管理活动时,所执行的任何操作都不能归因于单个数据库管理员。这可能会阻碍与未遂或成功的定向网络入侵相关的调查。此外,在不同数据库之间共享的数据库管理员账户可能会加剧对手对数据库管理员账户的任何损害。创建新的数据库管理员账户时,通常会为这些账户分配管理员可用的所有权限。大多数数据库管理员只需要所有可用权限的子集即可履行其授权职责。
默认数据库管理员账户将被禁用、重命名或更改其密码。数据库管理员具有唯一且可识别的账户。数据库管理员账户不会在不同的数据库之间共享。数据库管理员账户专门用于管理活动,标准数据库账户用于与数据库的常规用途交互。数据库管理员访问权限仅限于已定义的角色,而不是具有默认管理权限或所有权限的账户。


数据库
数据库寄存器
如果不了解组织中的所有数据库及其包含的数据,组织将无法适当地保护其资产。
维护数据库寄存器并定期审核。
保护数据库
通过对数据库文件应用基于文件的访问控制,可以防止未经授权的复制和随后的脱机分析。
基于文件的访问控制应用于数据库文件。
保护数据库中的身份验证凭据
在数据库中将身份验证凭据(如用户名和密码短语)存储为明文会带来重大的安全风险。设法访问数据库内容的对手可以提取这些身份验证凭据以访问用户账户。此外,用户可能已为其工作站重复使用用户名和密码,从而带来额外的安全风险。
存储在数据库中的密码短语使用唯一的澳大利亚信号局批准的加密算法进行哈希处理。
保护数据库内容
数据库管理员和数据库用户应了解与数据库及其内容关联的敏感度或分类,以确保应用足够的安全控制。如果数据库的所有内容都具有相同的敏感度或分类,组织可以选择在此级别对整个数据库进行分类。或者,如果数据库的内容具有不同的敏感度或分类级别,并且数据库用户对此类数据的访问级别不同,则组织可以选择在数据库中更精细的级别应用分类。限制数据库用户根据其工作职责访问、插入、修改或删除数据库中内容的能力,可确保应用"需要知道"原则并降低未经授权修改的可能性。
数据库及其内容根据其所包含数据的敏感性或分类进行分类。数据库用户访问、插入、修改和删除数据库中内容的能力根据其工作职责受到限制。通过应用最低权限、数据库视图和数据库角色,对数据库内容强制实施需要知道原则。
数据库内容的聚合
如果担心数据库中不同数据片段的总和或聚合可能导致对手确定更敏感或更机密的数据,则应将数据库视图与数据库用户访问角色结合使用。或者,可以通过实现多个数据库来分离关注的数据,每个数据库都有受限制的数据集。如果实施得当,这将确保对手无法访问导致聚合数据的数据组件的总和。
如果担心数据库中不同数据片段的总和或聚合可能导致数据库用户确定更敏感或分类的数据,则将数据库视图与数据库用户访问角色结合使用。
生产、测试和开发数据库的分离
在测试或开发数据库中使用来自生产数据库的数据可能会导致对数据应用的保护不足。
生产数据库中的数据不会在测试或开发数据库中使用,除非测试或开发环境的安全级别与生产环境相同。
Web 应用程序与数据库的交互
SQL 注入对数据库内容的机密性、完整性和可用性构成重大威胁。SQL注入可以允许攻击者从数据库中窃取数据,修改数据库内容,删除整个数据库,甚至在某些情况下获得对基础数据库服务器的控制。此外,当来自 Web 应用程序的数据库查询失败时,它们可能会向 Web 应用程序的用户显示有关数据库架构的详细错误信息。攻击者可以使用它来定制 SQL 注入尝试。
从 Web 应用程序对数据库的所有查询都会被筛选为合法内容和正确的语法。参数化查询或存储过程用于数据库交互,而不是动态生成的查询。Web 应用程序旨在向用户提供有关数据库架构的尽可能少的错误信息。

注:本文档翻译参考来源为澳大利亚ACSC,部分内容在本文中做了技术性调整,具体实施请参考我国有关标准,本文仅为大家提供一个信息安全的思路拓展。

信息安全手册之数据库系统指南

原文始发于微信公众号(祺印说信安):信息安全手册之数据库系统指南

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年4月26日00:52:58
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   信息安全手册之数据库系统指南http://cn-sec.com/archives/943096.html

发表评论

匿名网友 填写信息