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


编辑:范宏伟



推荐阅读
  • 本文深入探讨了 Delphi 中类对象成员的核心概念,包括 System 单元的基础知识、TObject 类的定义及其方法、TClass 的作用以及对象的消息处理机制。文章不仅解释了这些概念的基本原理,还提供了丰富的补充和专业解答,帮助读者全面理解 Delphi 的面向对象编程。 ... [详细]
  • Symfony是一个功能强大的PHP框架,以其依赖注入(DI)特性著称。许多流行的PHP框架如Drupal和Laravel的核心组件都基于Symfony构建。本文将详细介绍Symfony的安装方法及其基本使用。 ... [详细]
  • 精选多款高效实用软件及工具推荐
    本文介绍并推荐多款高效实用的软件和工具,涵盖系统优化、网络加速、多媒体处理等多个领域,并提供安全可靠的下载途径。 ... [详细]
  • 本文详细介绍了如何在PHP中进行数组删除、清空等操作,并提供了在Visual Studio Code中创建PHP文件的步骤。 ... [详细]
  • 深入解析Serverless架构模式
    本文将详细介绍Serverless架构模式的核心概念、工作原理及其优势。通过对比传统架构,探讨Serverless如何简化应用开发与运维流程,并介绍当前主流的Serverless平台。 ... [详细]
  • Linux环境下C语言实现定时向文件写入当前时间
    本文介绍如何在Linux系统中使用C语言编程,实现在每秒钟向指定文件中写入当前时间戳。通过此示例,读者可以了解基本的文件操作、时间处理以及循环控制。 ... [详细]
  • 本文详细介绍了在 Windows 7 系统中配置 Nginx 1.10.3 和 PHP 7.1.1 NTS 的步骤,包括修改 PHP 配置文件、处理依赖项以及创建批处理脚本启动和停止服务。重点解释了如何解决常见的运行时错误。 ... [详细]
  • 本文详细介绍了 Python 中的条件语句和循环结构。主要内容包括:1. 分支语句(if...elif...else);2. 循环语句(for, while 及嵌套循环);3. 控制循环的语句(break, continue, else)。通过具体示例,帮助读者更好地理解和应用这些语句。 ... [详细]
  • 在编译BSP包过程中,遇到了一个与 'gets' 函数相关的编译错误。该问题通常发生在较新的编译环境中,由于 'gets' 函数已被弃用并视为安全漏洞。本文将详细介绍如何通过修改源代码和配置文件来解决这一问题。 ... [详细]
  • 本文探讨了如何利用HTML5和JavaScript在浏览器中进行本地文件的读取和写入操作,并介绍了获取本地文件路径的方法。HTML5提供了一系列API,使得这些操作变得更加简便和安全。 ... [详细]
  • 本文详细介绍了如何解压并安装MySQL集群压缩包,创建用户和组,初始化数据库,配置环境变量,并启动相关服务。此外,还提供了详细的命令行操作步骤和常见问题的解决方案。 ... [详细]
  • CentOS 7.6环境下Prometheus与Grafana的集成部署指南
    本文旨在提供一套详细的步骤,指导读者如何在CentOS 7.6操作系统上成功安装和配置Prometheus 2.17.1及Grafana 6.7.2-1,实现高效的数据监控与可视化。 ... [详细]
  • 本文详细介绍了 Linux 系统中用户、组和文件权限的设置方法,包括基本权限(读、写、执行)、特殊权限(SUID、SGID、Sticky Bit)以及相关配置文件的使用。 ... [详细]
  • 本文深入探讨了 PHP 实现计划任务的方法,包括其原理、具体实现方式以及在不同操作系统中的应用。通过详细示例和代码片段,帮助开发者理解和掌握如何高效地设置和管理定时任务。 ... [详细]
  • 本文介绍如何配置SecureCRT以正确显示Linux终端的颜色,并解决中文显示问题。通过简单的步骤设置,可以显著提升使用体验。 ... [详细]
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社区 版权所有