作者:加勒比小洁_149 | 来源:互联网 | 2024-11-11 14:44
本文探讨了Oracle提供的免费工具DBSAT,该工具能够有效协助用户检测和优化数据库配置的安全性。通过全面的分析和报告,DBSAT帮助用户识别潜在的安全漏洞,并提供针对性的改进建议,确保数据库系统的稳定性和安全性。
随着数据安全事件的增长以及数据保护和隐私法规的不断发展,保护业务敏感和受监管的数据变得至关重要。但是,对于很多DBA来说,了解数据库是否已安全配置,谁可以访问数据库以及敏感的数据在哪里,它们是否已受到保护并不是那么容易。 今天就让我们来认识一个小工具——Oracle数据库安全评估工具(DBSAT),它是Oracle纵深防御功能的一部分,它可以帮助我们识别数据库配置、操作或执行中可能带来的风险领域,并能给出建议的措施以降低风险。还有一点也很重要,它对于合法的Oracle数据库用户是完全免费的!它可以评估数据库的配置安全性,确定谁是用户及其权利,并确定敏感数据在数据库中的位置。DBSAT具有三个组件:Collector, Reporter 和 Discoverer。Collector从数据库中收集所有相关数据,然后由Reporter进行分析并生成安全评估报告。Discoverer是一个独立模块,可识别数据库中不同类型的敏感数据并生成敏感数据评估报告。DBSAT收集并报告以下类别的数据:
为了发现数据库中敏感数据的类型和数量,DBSAT Discoverer对列名称和列注释进行模式匹配。它将敏感数据如下分类: 您一定会问,收集这些信息是否会对数据库的性能造成影响?不必担心,DBSAT Collector和Discoverer仅从数据库配置文件和Oracle数据字典视图中收集数据。它不查看应用程序数据,因此性能影响可以忽略不计。那么它学起来难吗?DBSAT本身是个易于使用的命令行工具,相信您可在短短的10分钟内就可以从“安装”转到“报告”。可以从My Oracle Support 网站Doc ID为2138254.1文档下载DBSAT。 2.如何安装DBSAT?
3.支持哪些数据库版本?
DBSAT支持Oracle数据库11.2.0.4和更高版本。 4.支持哪些平台?
– IBM AIX & zSeries Based Linux– Solaris x64 and Solaris SPARC DBSAT在大多数受支持的Oracle数据库平台上运行。但当前DBSAT Collector无法从Windows平台上运行的数据库服务器或远程执行时收集OS数据。如何使用DBSAT?
1.如何运行DBSAT Collector?
针对一个Oracle数据库调用Collector:是Collector将创建的输出文件的名称,不带扩展名后缀。例如:$ dbsat collect dbsatusr@orcl dbdata当DBSAT Collector同时分析数据库和操作系统配置时,建议您从运行数据库服务器的同一主机上运行DBSAT Collector。 远程执行时,会跳过某些检查(例如,操作系统)。 DBSAT Reporter可以在带有Python 2.6或更高版本的台式机/笔记本电脑在内的任何系统上运行。是Collector生成的JSON zip文件名(不带文件扩展名)。 DBSAT Reporter生成的所有报告文件都使用相同的路径名作为基础,并为Text,HTML,JSON和XLS报告格式添加了适当的后缀。DBSAT Reporter的输出将创建一个由多个Finding组成的数据库安全评估报告,Finding包括改善数据库安全状况或提供信息以供进一步分析的建议。您还可以从My Oracle Support下载DBSAT实用程序并利用它对JSON格式报告进一步处理,例如提取Finding并比较两个JSON报告等。需要注意的是,如果是多租户环境,需要针对CDB和每个PDB分别执行DBSAT。 3.DBSAT Discoverer如何工作?
DBSAT Discoverer使用一个配置文件以及一个或多个描述敏感数据类型的模式文件以及用于搜索列名和列注释的正则表达式。例如,为了搜索 “First Name”, 我们可以用COL_NAME_PATTERN =(^|[_-])(FNAME|(FIRST|GIVEN).*(NAME|NM)|FORE.?(NAME|NM))($|[_-])COL_COMMENT_PATTERN = (FIRST|GIVEN) NAME|FORENAMESENSITIVE_CATEGORY = Identification Info - Public IDsDBSAT附带了初始配置和特征码文件,但客户可以添加自定义敏感类型和类别/子类别。 DBSAT Discoverer支持扩展正则表达式(ERE)。 该语法由IEEE标准化,并常用于Java中。 例如,(^JOB.*(TITLE|PROFILE|POSITION)$)|^POSITION匹配以JOB (^JOB)开头的字符串,后跟零个或多个(*)出现的任意字符(.),并且以TITLE或PROFILE或POSITION结尾($);或(|),它匹配以POSITION开头(^)的字符串。 4.如何运行DBSAT Discoverer?
DBSAT Discoverer可以在任何装有Java Runtime Environment(JRE)1.8(jdk8-u172)或更高版本的计算机包括笔记本电脑上运行。无需在与数据库相同的服务器上运行Discoverer。例如: $ dbsat discover –c config dbdataDBSAT Discoverer是一个独立的组件,它不依赖于DBSAT Collector或Reporter。1.需要哪些特权才能收集数据?
尽管具有Oracle DBA角色的数据库用户帐户具有需要的全部特权,我们但应遵循最小特权的原则,建议运行DBSAT的数据库用户赋予下面的权限(详细信息请参考官方文档):READ or SELECT on SYS.REGISTRY$HISTORYRole DV_SECANALYST (如果启用了Database Vault或Database Vault OperationsControl)Role AUDIT_VIEWER (12c 及以上版本) Role CAPTURE_ADMIN (12c及以上版本)READ or SELECT on SYS.DBA_USERS_WITH_DEFPWD (11g及以上版本)执行DBSAT Collector的OS用户必须具有读取ORACLE_HOME目录和文件的权限。 2.如何保护收集的配置数据和生成的报告?
默认情况下,使用已安装的zip/unzip对DBSAT输出文件进行压缩和密码保护。强烈建议始终对所有输出文件进行加密,因为它具有您数据库的敏感信息。 3.运行DBSAT有哪些风险?
由于DBSAT仅读取配置和元数据,因此风险很小。 DBSAT执行的所有数据库操作都是只读的,建议以最低特权运行DBSAT来收集分析所需的数据;可以查看收集数据的DBSAT Collector SQL脚本,以查看执行了哪些操作;还可以检查DBSAT收集器的输出数据(以JSON格式),以准确查看收集了哪些数据。所以说, DBSAT是一个非常安全的工具,不过要注意,应限制对DBSAT生成报告的访问。DBSAT虽然只是一个免费的小工具,但它可以帮助我们评估数据库配置的安全性,并给出针对性的指导建议,对DBA来说,不失为一个简单实用的安全小助理,快去下载试试吧!
编辑:范宏伟