Hardening de segurança do Oracle Database (auditoria, rede, TLS, autenticação, privilégios, Unified Auditing, TDE)
OracleNível: AvançadoDuração: 5 min (verificação) – 4 horas (hardening completo)Não é um guia de instalação: encontra e corrige as vulnerabilidades de um banco de dados Oracle 19c / 23ai (26ai) em execução (instância única, Oracle Restart ou RAC; CDB/PDB). Primeiro, a Verificação de estado, somente leitura, lista as vulnerabilidades por ordem de gravidade e indica para qual cartão cada achado leva; depois você corrige as áreas uma a uma ou todas em sequência: listener e TCP.VALIDNODE_CHECKING, firewall, TCPS (wallet) ou native network encryption, verificador de senha 12C e profiles, bloqueio das contas padrão, desenho de roles e revogação dos privilégios UTL_* de PUBLIC, Unified Auditing e limpeza do AUDSYS, TDE, backup criptografado, sistema operacional e acompanhamento de RU. O TDE e a criptografia do RMAN/Data Pump exigem a licença Advanced Security; todo o resto dispensa licença. Ao final, a verificação é executada novamente.
Topologia: Instância única / Oracle Restart / RAC (2–8 nós), CDB + PDB; servidor de aplicação (validação do cliente)
Cenários
- Verificação de estado: quais são as minhas vulnerabilidades? (somente leitura) — A primeira varredura a executar: contas abertas e com senha padrão, verificadores de senha antigos, profile, privilégios DBA/ANY, packages PL/SQL UTL_ abertos para PUBLIC, auditoria, TDE, sessões sem criptografia, listener e permissões de arquivos; não altera nada.
- Hardening completo (tudo em sequência) — Banco de dados recém-instalado ou nunca endurecido: todas as áreas são aplicadas em uma ordem segura; o listener e o banco de dados são reiniciados uma ou duas vezes (requer janela de manutenção).
- Rede e conexão: quem pode se conectar e de onde? (listener, TCP.VALIDNODE_CHECKING, firewall) — O listener está aberto em todos os endereços, não há invited nodes definidos e as portas 1521/5500 estão abertas para todos. O listener é reiniciado (as sessões abertas não são afetadas).
- Criptografar a conexão (wallet TCPS ou native network encryption) — O tráfego de rede não é criptografado; TLS (TCPS, wallet, certificado, SSL_SERVER_DN_MATCH no cliente) ou native encryption sem certificado (SQLNET.ENCRYPTION_SERVER=REQUIRED). Os dois caminhos dispensam licença; o listener é reiniciado, as sessões abertas não são afetadas.
- Autenticação e senha (verificador 12C, profile, contas padrão) — Verificadores de senha 10G/11G, nenhum profile de senha, contas de exemplo ou com senha padrão abertas; conta DBA pessoal. Sem parada.
- Privilégio mínimo: roles, PUBLIC e conta da aplicação — Privilégios DBA/RESOURCE/ANY na conta da aplicação, UTL_FILE/UTL_TCP/UTL_HTTP abertos para PUBLIC; owner do schema, roles de leitura/escrita e relatório de privilégios. Sem parada.
- Auditoria: quem fez o quê? (Unified Auditing, limpeza do AUDSYS) — O auditor quer registros de logon, de alterações de contas e de schemas; políticas de unified audit, limpeza do AUDSYS conforme o período de retenção e envio dos registros para o syslog/servidor central. O Unified Auditing dispensa licença.
- Criptografar os dados em disco (TDE) — TDE contra a leitura de datafiles, backups ou cópias de disco: WALLET_ROOT, keystore, master key, criptografia de tablespace (online). Requer a licença Advanced Security; uma reinicialização para o WALLET_ROOT.
- Segurança dos backups (criptografia RMAN, automação sem senha, permissões) — Backups RMAN/Data Pump sem criptografia, senhas em texto claro nos scripts, diretório de backup aberto para todos; RMAN encryption, ENCRYPTION_PWD_PROMPT, wallet (SEPS) e permissões de diretório. A criptografia do RMAN e do Data Pump exige a licença Advanced Security.
- Lado do sistema operacional (conta oracle, permissões de arquivos, core dump, SELinux) — A senha da conta oracle está ativa, as permissões do arquivo de senhas/network admin/wallet estão frouxas, o SELinux está desativado. O limite de core dump passa a valer em uma nova sessão/após a reinicialização.
- Patch e versão: estou na última RU? — RU instalada, estado do datapatch e calendário de suporte; para a aplicação, remete ao guia de patch de RU. Somente leitura.
Antes de começar
- O perfil do usuário oracle define ORACLE_HOME=…, ORACLE_SID… (nome da instância conforme o nó)… e PATH; sqlplus / as sysdba funciona sem senha (autenticação do sistema operacional). Os passos rodam em um login shell com sudo -iu oracle, e o perfil é carregado.… O listener é administrado a partir do home do Grid Infrastructure (…) com ….… Se caracteres acentuados aparecerem como ? na saída, adicione export NLS_LANG=AMERICAN_AMERICA.AL32UTF8 ao perfil (apenas exibição; não afeta os dados).
- Há duas sessões separadas abertas no servidor; em uma delas o sqlplus / as sysdba fica aberto. A conexão local / as sysdba (bequeath) não é afetada pelo listener, pelas regras de rede do sqlnet.ora nem pelos profiles: é sempre o caminho de volta em caso de erro de listener, invited nodes ou criptografia. Depois de cada passo que restringe o acesso, teste uma nova conexão em outra sessão (a partir do servidor de aplicação).
- Janela de manutenção: o listener será reiniciado (novas conexões são recusadas por alguns segundos, as sessões abertas não são afetadas)…; os parâmetros estáticos WALLET_ROOT para o TDE e UNIFIED_AUDIT_SYSTEMLOG para a auditoria exigem reiniciar o banco de dados….… No RAC, a reinicialização do banco de dados pode ser feita nó a nó (rolling): srvctl stop instance -db … -node <node> / start.…
- O TDE, a criptografia de backup do RMAN e a criptografia do Data Pump exigem a licença Oracle Advanced Security (Enterprise Edition + licença adicional; incluída no Oracle Cloud / Exadata Cloud). Se você não tem a licença, não aplique esses passos; use criptografia no nível do disco (LUKS) ou criptografia do storage. A Native Network Encryption e o TLS dispensam licença em todas as edições (desde o 11gR2).
- A lista de endereços e as versões de cliente das aplicações que se conectam ao banco de dados e dos servidores de Data Guard/OEM/backup. O passo de verificação mostra as sessões atuais.
- Existe um backup RMAN atual e com restauração testada (estratégia de backup RMAN). Um backup feito antes do TDE pode ser aberto sem keystore: depois do TDE, os novos backups não podem ser abertos sem o backup do keystore.
Fases do guia
- Verificação de estado (somente leitura) — Listar os achados de dentro do banco de dados · Verificar o sistema operacional e a parte de rede (Net)
- Antes de começar: ponto de retorno — Registrar os arquivos de rede e os parâmetros · Exportar a definição de usuários, profiles e privilégios
- Privilégios — 1. Diagnóstico — Mostrar os privilégios das contas da aplicação e os packages PL/SQL abertos para PUBLIC
- Privilégios — 2. Rede de segurança — Encontrar os objetos que dependem do privilégio de PUBLIC
- Privilégios — 3. Aplicação — Criar o owner do schema, as roles e as contas · Conceder às roles os privilégios nas tabelas · Revogar os privilégios excedentes da conta da aplicação · Revogar de PUBLIC os privilégios dos packages PL/SQL UTL_* e perigosos · Relatório de privilégios
- Privilégios — 4. Verificação — Verificar os privilégios efetivos da conta da aplicação · Tentativa de DDL a partir do servidor de aplicação
- Autenticação — 1. Diagnóstico — Mostrar os estados das contas, os verificadores e os profiles
- Autenticação — 2. Rede de segurança — Verificar as versões dos clientes
- Autenticação — 3. Aplicação — Bloquear as contas Oracle com senha padrão, de exemplo e não usadas · Criar os profiles de senha · Endurecer o profile DEFAULT no CDB root · Forçar o verificador de senha 12C (sqlnet.ora) · Definir as senhas das contas da aplicação · Criar a conta DBA pessoal …
- Autenticação — 4. Verificação — Verificar o estado das contas e dos verificadores · Testar o logon a partir do servidor de aplicação (nova sessão)
- Criptografia de rede — 1. Diagnóstico — Mostrar o estado de criptografia das sessões
- Criptografia de rede — 3. Aplicação — Tornar obrigatória a native network encryption · Criar a wallet do servidor · Adicionar à wallet os certificados devolvidos pela CA · Liberar a wallet para o owner do listener… e copiá-la para os outros nós… · Gravar as configurações de TLS do listener · Gravar as configurações de TLS do home do banco de dados …
- Criptografia de rede — 4. Verificação — Verificar se a nova conexão está criptografada
- Criptografia de rede — 5. Depois — Fechar a porta 1521 sem criptografia e renovar o certificado
- Rede — 1. Diagnóstico: quem se conecta e de onde? — Mostrar o listener e as origens das conexões
- Rede — 3. Aplicação — Fazer o listener aceitar somente endereços permitidos (valid node checking) · Reiniciar o listener · Abrir as portas no firewall somente para as redes permitidas
- Rede — 4. Verificação — Testar a conexão a partir do servidor de aplicação (nova sessão)
- Auditoria — 1. Diagnóstico — Mostrar o modo de auditoria, as políticas e o tamanho do AUDSYS
- Auditoria — 3. Aplicação — Definir e ativar as políticas de auditoria · Mover o AUDSYS para um tablespace separado e agendar a limpeza · Ativar as políticas prontas e a limpeza no CDB root · Gravar o resumo da auditoria no syslog (UNIFIED_AUDIT_SYSTEMLOG) · rsyslog: encaminhar o local3 ao servidor central · Reiniciar o rsyslog e o banco de dados
- Auditoria — 4. Verificação — Fazer uma alteração e ver o registro
- Sistema operacional — 1. Diagnóstico — Conta oracle, permissões de arquivos, core dump e SELinux
- Sistema operacional — 3. Aplicação — Bloquear a senha da conta oracle · Corrigir as permissões do arquivo de senhas e dos arquivos de rede · Desativar o core dump do usuário oracle · Manter o SELinux em Enforcing
- Sistema operacional — 4. Verificação — Verificar as alterações
- TDE — 1. Diagnóstico — Mostrar o estado do keystore e da criptografia dos tablespaces
- TDE — 2. Rede de segurança — Backup e verificação de espaço antes do TDE
- TDE — 3. Aplicação — Configurar o WALLET_ROOT · Reiniciar o banco de dados para o WALLET_ROOT · Criar e abrir o keystore e definir a master key · Copiar o keystore para os outros nós RAC · Criptografar o tablespace · Fazer backup do keystore
- TDE — 4. Verificação — Verificar o keystore e o tablespace criptografado
- Backup — 1. Diagnóstico — Mostrar a configuração de criptografia do RMAN e o estado dos backups
- Backup — 3. Aplicação — Ativar a criptografia de backup do RMAN · Testar um backup criptografado · Criptografar a exportação do Data Pump · Conexão sem senha para os scripts (Secure External Password Store) · Corrigir as permissões dos diretórios de backup e de wallet
- Patch e versão — 1. Diagnóstico — Mostrar a RU instalada e o estado do datapatch