热门标签 | 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来说,不失为一个简单实用的安全小助理,快去下载试试吧!


编辑:范宏伟



推荐阅读
  • 如果应用程序经常播放密集、急促而又短暂的音效(如游戏音效)那么使用MediaPlayer显得有些不太适合了。因为MediaPlayer存在如下缺点:1)延时时间较长,且资源占用率高 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 在 Ubuntu 中遇到 Samba 服务器故障时,尝试卸载并重新安装 Samba 发现配置文件未重新生成。本文介绍了解决该问题的方法。 ... [详细]
  • 浅析python实现布隆过滤器及Redis中的缓存穿透原理_python
    本文带你了解了位图的实现,布隆过滤器的原理及Python中的使用,以及布隆过滤器如何应对Redis中的缓存穿透,相信你对布隆过滤 ... [详细]
  • 使用jqTransform插件美化表单
    jqTransform 是由 DFC Engineering 开发的一款 jQuery 插件,专用于美化表单元素,操作简便,能够美化包括输入框、单选按钮、多行文本域、下拉选择框和复选框在内的所有表单元素。 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • importpymysql#一、直接连接mysql数据库'''coonpymysql.connect(host'192.168.*.*',u ... [详细]
  • Oracle 用户锁定问题及解决方法
    本文介绍了如何在 Oracle 数据库中检查和处理用户锁定问题,包括查询被锁定的用户、解锁用户以及调整登录失败次数限制的方法。 ... [详细]
  • window下的python安装插件,Go语言社区,Golang程序员人脉社 ... [详细]
  • Framework7:构建跨平台移动应用的高效框架
    Framework7 是一个开源免费的框架,适用于开发混合移动应用(原生与HTML混合)或iOS&Android风格的Web应用。此外,它还可以作为原型开发工具,帮助开发者快速创建应用原型。 ... [详细]
  • 本文详细介绍了如何使用Python中的smtplib库来发送带有附件的邮件,并提供了完整的代码示例。作者:多测师_王sir,时间:2020年5月20日 17:24,微信:15367499889,公司:上海多测师信息有限公司。 ... [详细]
  • Android开发技巧:使用IconFont减少应用体积
    本文介绍如何在Android应用中使用IconFont来显示图标,从而有效减少应用的体积。 ... [详细]
  • php更新数据库字段的函数是,php更新数据库字段的函数是 ... [详细]
  • 开机自启动的几种方式
    0x01快速自启动目录快速启动目录自启动方式源于Windows中的一个目录,这个目录一般叫启动或者Startup。位于该目录下的PE文件会在开机后进行自启动 ... [详细]
  • 通过使用Sqoop导入工具,可以精确控制并高效地将表数据的特定子集导入到HDFS中。具体而言,可以通过在导入命令中添加WHERE子句来指定所需的数据范围,从而在数据库服务器上执行相应的SQL查询,并将查询结果高效地存储到HDFS中。这种方法不仅提高了数据导入的灵活性,还确保了数据的准确性和完整性。 ... [详细]
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社区 版权所有