热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

您的数据库配置是否安全?DBSAT工具助您一臂之力!

本文探讨了Oracle提供的免费工具DBSAT,该工具能够有效协助用户检测和优化数据库配置的安全性。通过全面的分析和报告,DBSAT帮助用户识别潜在的安全漏洞,并提供针对性的改进建议,确保数据库系统的稳定性和安全性。

随着数据安全事件的增长以及数据保护和隐私法规的不断发展,保护业务敏感和受监管的数据变得至关重要。但是,对于很多DBA来说,了解数据库是否已安全配置,谁可以访问数据库以及敏感的数据在哪里,它们是否已受到保护并不是那么容易。 今天就让我们来认识一个小工具——Oracle数据库安全评估工具(DBSAT),它是Oracle纵深防御功能的一部分,它可以帮助我们识别数据库配置、操作或执行中可能带来的风险领域,并能给出建议的措施以降低风险。还有一点也很重要,它对于合法的Oracle数据库用户是完全免费的!
DBSAT能做什么?
它可以评估数据库的配置安全性,确定谁是用户及其权利,并确定敏感数据在数据库中的位置。DBSAT具有三个组件:Collector, Reporter 和 Discoverer。Collector从数据库中收集所有相关数据,然后由Reporter进行分析并生成安全评估报告。Discoverer是一个独立模块,可识别数据库中不同类型的敏感数据并生成敏感数据评估报告。

DBSAT收集并报告以下类别的数据:

–用户帐户,特权和角色
–授权控制
–细粒度的访问控制
–审计策略 
–数据加密
–数据库配置
–侦听器配置
–相关的操作系统配置

为了发现数据库中敏感数据的类型和数量,DBSAT Discoverer对列名称和列注释进行模式匹配。它将敏感数据如下分类:
–身份信息
–生物信息
IT信息
–财务信息
–健康信息
–职位信息
–学术信息

您一定会问,收集这些信息是否会对数据库的性能造成影响?不必担心,DBSAT CollectorDiscoverer仅从数据库配置文件和Oracle数据字典视图中收集数据。它不查看应用程序数据,因此性能影响可以忽略不计。
那么它学起来难吗?DBSAT本身是个易于使用的命令行工具,相信您可在短短的10分钟内就可以从“安装”转到“报告”。
下载和安装
1.哪里下载Oracle DBSAT
可以从My Oracle Support 网站Doc ID2138254.1文档下载DBSAT

 2.如何安装DBSAT

DBSAT作为zip文件提供,只需解压缩即可。
$ unzip dbsat.zip –d

3.支持哪些数据库版本?

DBSAT支持Oracle数据库11.2.0.4和更高版本。

4.支持哪些平台?

DBSAT 运行于:
– Linux x86-64
– Windows x64
– HP-UX IA (64-bit)
– IBM AIX & zSeries Based Linux
– Solaris x64 and Solaris SPARC 
DBSAT在大多数受支持的Oracle数据库平台上运行。但当前DBSAT Collector无法从Windows平台上运行的数据库服务器或远程执行时收集OS数据。

如何使用DBSAT

1.如何运行DBSAT Collector

针对一个Oracle数据库调用Collector
$ dbsat collect
是连接到目标数据库所需的连接字符串。
Collector将创建的输出文件的名称,不带扩展名后缀。
例如:$ dbsat collect dbsatusr@orcl dbdata
DBSAT Collector同时分析数据库和操作系统配置时,建议您从运行数据库服务器的同一主机上运行DBSAT Collector 远程执行时,会跳过某些检查(例如,操作系统)。
 2.如何运行DBSAT Reporter
DBSAT Reporter可以在带有Python 2.6或更高版本的台式机/笔记本电脑在内的任何系统上运行。
$ dbsat report
Collector生成的JSON zip文件名(不带文件扩展名)。 DBSAT Reporter生成的所有报告文件都使用相同的路径名作为基础,并为TextHTMLJSONXLS报告格式添加了适当的后缀。
例如:$ dbsat report dbdata
DBSAT Reporter的输出将创建一个由多个Finding组成的数据库安全评估报告,Finding包括改善数据库安全状况或提供信息以供进一步分析的建议。

您还可以从My Oracle Support下载DBSAT实用程序并利用它对JSON格式报告进一步处理,例如提取Finding并比较两个JSON报告等。
需要注意的是,如果是多租户环境,需要针对CDB和每个PDB分别执行DBSAT

 3.DBSAT Discoverer如何工作?

DBSAT Discoverer使用一个配置文件以及一个或多个描述敏感数据类型的模式文件以及用于搜索列名和列注释的正则表达式。
例如,为了搜索 “First Name”, 我们可以用
[FIRST NAME]
COL_NAME_PATTERN =(^|[_-])(FNAME|(FIRST|GIVEN).*(NAME|NM)|FORE.?(NAME|NM))($|[_-])
COL_COMMENT_PATTERN = (FIRST|GIVEN) NAME|FORENAME
SENSITIVE_CATEGORY = Identification Info - Public IDs
DBSAT附带了初始配置和特征码文件,但客户可以添加自定义敏感类型和类别/子类别。
DBSAT Discoverer支持扩展正则表达式(ERE)。 该语法由IEEE标准化,并常用于Java中。
例如,(^JOB.*(TITLE|PROFILE|POSITION)$)|^POSITION匹配以JOB (^JOB)开头的字符串,后跟零个或多个(*)出现的任意字符(.),并且以TITLEPROFILEPOSITION结尾($);或(|),它匹配以POSITION开头(^)的字符串。

 4.如何运行DBSAT Discoverer

DBSAT Discoverer可以在任何装有Java Runtime EnvironmentJRE1.8jdk8-u172)或更高版本的计算机包括笔记本电脑上运行。无需在与数据库相同的服务器上运行Discoverer
$ dbsat discover –c
例如: $ dbsat discover –c config dbdata
DBSAT Discoverer是一个独立的组件,它不依赖于DBSAT CollectorReporter

注意事项

1.需要哪些特权才能收集数据?

尽管具有Oracle DBA角色的数据库用户帐户具有需要的全部特权,我们但应遵循最小特权的原则,建议运行DBSAT的数据库用户赋予下面的权限(详细信息请参考官方文档):
CREATE SESSION
READ or SELECT on SYS.REGISTRY$HISTORY
Role SELECT_CATALOG_ROLE
Role DV_SECANALYST (如果启用了Database VaultDatabase Vault OperationsControl)
Role AUDIT_VIEWER (12c 及以上版本) 
Role CAPTURE_ADMIN (12c及以上版本)
READ or SELECT on SYS.DBA_USERS_WITH_DEFPWD (11g及以上版本)
执行DBSAT CollectorOS用户必须具有读取ORACLE_HOME目录和文件的权限。

 2.如何保护收集的配置数据和生成的报告?

默认情况下,使用已安装的zip/unzipDBSAT输出文件进行压缩和密码保护。强烈建议始终对所有输出文件进行加密,因为它具有您数据库的敏感信息。

 3.运行DBSAT有哪些风险?

由于DBSAT仅读取配置和元数据,因此风险很小。 DBSAT执行的所有数据库操作都是只读的,建议以最低特权运行DBSAT来收集分析所需的数据;可以查看收集数据的DBSAT Collector SQL脚本,以查看执行了哪些操作;还可以检查DBSAT收集器的输出数据(以JSON格式),以准确查看收集了哪些数据。所以说, DBSAT是一个非常安全的工具,不过要注意,应限制对DBSAT生成报告的访问。

DBSAT虽然只是一个免费的小工具,但它可以帮助我们评估数据库配置的安全性,并给出针对性的指导建议,对DBA来说,不失为一个简单实用的安全小助理,快去下载试试吧!


编辑:范宏伟



推荐阅读
author-avatar
加勒比小洁_149
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有