• Anderson Graf

Oracle Database Security Assessment Tool (DBSAT)

O Oracle Database Security Assessment Tool (DBSAT), atualmente na versão 2.2 (Setembro de 2019), é uma ferramenta de linha de comando focada na detecção de potenciais vulnerabilidades de segurança. Sua maior abrangência ocorre dentro do banco de dados mas também inspeciona componentes do sistema operacional e rede (listener) em busca de falhas.


A ferramenta fornece uma visão sobre o atual status de usuários, roles, permissões e políticas de controle de segurança com o objetivo de promover abordagens bem-sucedidas para mitigar potenciais riscos de segurança.


O DBSAT é composto por três componentes:


Collector: Executa instruções SQL e comandos no sistema operacional para coletar dados. Os dados são armazenados em um arquivo que é usado posteriormente pelo Reporter na fase de análise;


Reporter: Analisa os dados coletados e gera reports em HTML, Excel, JSON e formato texto;


Discoverer: Conduz coleta de dados em diferentes máquinas: PC, laptop ou servidor. Não está limitado a executar o Discoverer no servidor de banco de dados ou na mesma máquina que o Collector ou o Reporter.


Os principais benefícios do uso do DBSAT são:


  • Identificação rápida dos erros de configuração de segurança do banco de dados;

  • Recomendações embasadas nas melhores práticas de segurança;

  • Redução da amplitude de um ataque e exposição ao risco.


O DBSTAT funciona sobre o Oracle database 10.2.0.5 e versões posteriores incluindo ambientes 11g,12c,18c,19c multitenant e cloud (Oracle Cloud DBCS (PaaS) e bancos de dados autônomos).


As plataformas suportadas são:


  • Solaris x64 and Solaris SPARC64

  • Linux x86-64

  • Windows x64

  • HP-UX IA (64-bit)

  • IBM AIX (64-bit) & Linux on zSeries (64-bit)


Na plataforma Windows, algumas regras e verificações no sistema operacional são ignoradas e podem ser encontradas no final do relatório.

Seu uso é muito simples e consiste em basicamente baixar o arquivo do MOS (My Oracle Support - Doc ID 2138254.1), descompactar e executar o script para coleta e reporte das vulnerabilidades de segurança.


O DBSAT é um utilitário leve que não prejudica o desempenho do sistema durante sua execução.


As versões liberadas e melhorias implementadas em cada uma podem ser encontradas na mesma nota:




Requisitos:


  • ZIP e Unzip para instalação e manipulação dos arquivos gerados;

  • Usuário contendo as permissões necessárias no banco de dados para a coleta de dados através do componente Collector (conforme o Security Assessment Tool User Guide);

  • Python 2.6 ou superior para a geração dos relatórios através do componente Reporter;

  • Java Runtime Environment (JRE) 1.8 (jdk8-u172) ou superior para execução do componente Discoverer


Instalação:


1. Conectar no servidor de banco de dados

2. Criar um diretório para o dbsat

3. Realizar o download ou a cópia do dbsat.zip para o servidor e descompactar o mesmo.


Execução do Collector:


Para que o DBSTAT colete todos os dados e realize uma validação completa ele deve ser executado a partir do servidor de banco de dados, pois são executados alguns comandos de sistema operacional para coleta de dados que não podem ser obtidos a partir do database. O DBSTAT também deve ser executado com um usuário de sistema operacional que tenha permissão de leitura em arquivos e diretórios do ORACLE_HOME para que os dados sejam coletados e processados adequadamente.

As coletas no banco de dados são realizadas principalmente sobre visões do dicionário de dados, desta forma o usuário que será fornecido na string de conexão com a base de dados deve conter as permissões suficientes para selecionar os dados a partir destas visões.

Podemos conceder ao usuário de conexão as permissões a seguir ou simplesmente atribuir a role DBA (mais a role DV_SECANALYST se o Database Vault ou o Database Vault Operations Control estiverem habilitados), ou ainda, podemos realizar uma conexão utilizando autenticação pelo sistema operacional estando conectado com um usuário membro do grupo especial, normalmente dba ou administrator (Windows) juntamente com o papel SYSDBA – “/ as sysdba”


Sintaxe para execução do DBSAT Colletor:

$ dbsat collect <connect_string> <destination>

connect_string: Credenciais de acesso ao banco de dados contendo as permissões necessárias, exemplos:


dbsat@pdb1

dbsat/senha@pdb1

“/ as sysdba”

destination: Nome do arquivo de coleta que será gerado (.json)


Exemplo de execução:


Por padrão o arquivo será gerado e compactado com senha, porem podemos omitir a necessidade de informar uma senha adicionando o parâmetro -n na chamada do dbsat collect, contudo pensando na segurança da informação isto não é recomendado.

Exemplo:

./dbsat collect -n "/ as sysdba" /tmp/dbsat/collect

Importante: Em um ambiente mutitenant rodando o DBSAT collector conectado no container root (CDB$ROOT) significa que as verificações serão realizadas unicamente no container root e não nos pluggable databases. Para verificar os PDBs é preciso rodar o DBSAT collector conectando em cada um dos PDBs separadamente (exemplo: system/senha@pdb1 – system/senha@pdb2).


Execução do Reporter:


O DBSAT Reporter tem como pré-requisito que o programa Python 2.6 ou superior esteja instalado no servidor onde será gerado o report. Por padrão ele já vem instalado na maioria dos ambientes UNIX.

Para confirmar a existência e versão do Python execute:

Caso seja retornado alguma mensagem de comando não encontrado, proceda primeiramente com a instalação do Phyton.

Sintaxe para execução do DBSAT Report:

$ dbsat report [-a] [-n] [-x <section>]  <pathname>

pathname: Caminho e nome do arquivo de coleta gerado pelo DBSAT coletor


Parâmetros suportados pelo Report:

-a : Inclui todas as contas de usuários na análise (Por padrão as contas fornecidas pela Oracle que já estão bloqueadas serão excluídas do relatório pois as conexões com as mesmas já não são mais possível)

-n : Gera o arquivo sem senha, igual ao DBSAT Collect

-x : Exclui as sessões especificadas no parâmetro do relatório final, omitindo o parâmetro todas as sessões serão consideradas. As sessões válidas são:

  • USER : User Accounts

  • PRIV : Privileges and Roles

  • AUTH : Authorization Control

  • CRYPT : Data Encryption

  • ACCESS : Fine-Grained Access Control

  • AUDIT : Auditing

  • CONF : Database Configuration

  • NET : Network Configuration

  • OS : Operating System

Para incluir múltiplas sessões basta separá-las por vírgula ou incluir várias vezes o parâmetro –x sessão:

-x USER,PRIV

ou:

-x USER -x PRIV


Exemplo de execução do report:



Ao final da execução é gerado um arquivo .zip protegido por senha pois não foi especificado o parâmetro –n, agora quando for necessário acessar os relatórios basta descompactar o arquivo passando a senha informada durante o DBSAT Report.


Relatórios DBSAT:


O DBSAT produz a saída em vários formatos para vários públicos e propósitos. O relatório em HTML, por exemplo, proporciona resultados detalhados em um formato fácil de navegar utilizando-se de links enquanto um relatório em Planilha fornece um resumo de alto nível de cada descoberta, bem como permite a manipulação de colunas adicionando novas para seus objetivos e priorização.

Exemplo de um sumário DBSAT em HTML:


As descobertas são similares ao exemplo a seguir e são compostas pelos seguintes componentes:


Título e ID único da regra:

O ID possui duas partes: o prefixo identifica a seção do relatório e o sufixo identifica a regra específica.

Status:

O status pode ser utilizado para definir a priorização dos indicadores, onde uma descoberta de alto risco requer ações imediatas enquanto uma de baixo risco pode ser programada e ajustada com menos prioridade.

Pass: Nenhum erro ou risco identificado;

Evaluate: Necessário realizar uma análise manual para identificar o grau de risco;

Some Risk: Baixo risco;

Significant Risk: Rico médio;

Severe Risk: Alto risco de segurança;

Opportunity: Oportunidades adicionais de melhorar a segurança utilizando tecnologias adicionais.

Sumário:

Resumo da descoberta.

Detalhes:

Fornece informações detalhadas para explicar a descoberta

Observações:

Explica o padrão usado para avaliar os resultados encontrados. Também pode explicar as ações recomendadas para uma remediação se um risco for relatado.

Referencias:

Elenca a descoberta com base no CIS Oracle Database Benchmark (Center for Internet Security)



Referências:

MOS: Oracle Database Security Assessment Tool (DBSAT) (Doc ID 2138254.1)

OTN: Oracle Database Security Assessment Tool (DBSAT)

Help Center (Docs): Security Assessment Tool User Guide Release 2.2

77 visualizações

© 2018 Exímio Solução em TI

  • Grey Facebook Ícone
  • Ícone cinza LinkedIn