Controle de acesso ao banco de dados via host name ou IP – Node Validation

Veja neste artigo uma forma simples e fácil de tratar a segurança de acesso ao banco de dados Oracle, com base no host que está solicitando o acesso.

Controle de acesso ao banco de dados via host name ou IP – Node Validation

 

A preocupação com a criação e manutenção de ambientes seguros têm sido tarefas cruciais de administradores de redes, de sistemas operacionais e de bancos de dados.

 

Pesquisas mostram que boa parte dos ataques, roubos de informações e acessos não-autorizados são feitos por pessoas que pertencem à organização alvo.

 

Isso faz com que estes profissionais se desdobrem para criar e usar artifícios para eliminar os acessos não-autorizados ou minimizar as chances de sucesso das tentativas de invasão (internas ou externas).

 

Subdividir redes, isolar servidores, controlar privilégios, entre outras, são práticas comuns de segurança em nível de rede e sistema operacional, mas são poucas as opções para se ter segurança de acesso em nível de banco de dados, no que diz respeito à máquina onde está o banco.

 

Neste artigo vamos falar sobre uma forma simples e fácil de tratar a segurança de acesso ao banco de dados Oracle, com base no host que está solicitando o acesso.

 

O host alvo no nosso caso será o equipamento onde está o banco de dados Oracle.

 

Este host pode ser tratrado por um firewall convencional, mas devemos considerar a complexidade de administrar um firewall, adicionando todas as regras necessárias, e os custos adicionais, o que, dependendo do caso, pode inviabilizar o seu uso.

 

 

Node Validation

 

A Oracle, disponibiliza uma ferramenta para controle de acesso ao banco de dados, filtrando pelo host name ou IP.

Trata-se do Node Validation disponibilizado gratuitamente com o Oracle Net.

 

O Node Validation funciona semelhante a um firewall convencional, onde é possível especificar quais máquinas podem acessar um determinado host e quais que não podem.

 

 

Habilitando o Node Validation

 

O Node Validation é configurado em um arquivo de parâmetros, que na versão 8i se chama protocol.ora, e na versão 9i em diante é encontrado com o nome de sqlnet.ora.

Os locais destes arquivos são especificados na variável de ambiente TNS_ADMIN, onde o default é $ORACLE_HOME/network/admin em UNIX, ou %ORACLE_HOME%\network\admin em Windows.

 

Para configurar este mecanismo é necessário, inicialmente, adicionar uma linha para ativar o controle de acesso pela rede, através do Node Validation:

 

TCP.VALIDNODE_CHECKING = YES

 

Após isso, podemos escolher entre liberar ou bloquear o acesso para uma lista de host names ou IPs.

 

Também pode ser feito um mix com as duas opções, em que os hosts a serem liberados têm precedência sobre os que devem ser bloqueados. Mas o uso deste mix não é aconselhável em caso de listas muito grandes.

 

 

Liberando acesso a uma lista de hosts

 

Caso haja a necessidade de liberar o acesso a uma lista de hosts, podemos adicionar a seguinte linha (no arquivo sqlnet.ora ou protocol.ora, dependendo da versão de banco):

 

TCP.INVITED_NODES=(200.100.0.1, 200.100.0.2, desktop_dba)

 

Com esta linha, estamos querendo dizer que somente estas três máquinas, 200.100.0.1, 200.100.0.2 e desktop_dba, podem acessar ao banco de dados, e todas as outras sejam barradas, independente do privilégio do usuário que está tentando acessar.

 

 

Bloqueando o acesso a uma lista de hosts

 

Por outro lado, podemos especificar uma lista de hosts que desejamos bloquear o acesso, caso de sub-redes. É possível configurar isso com a linha abaixo:

 

TCP.EXCLUDED_NODES=(desktop_secretaria, 200.100.1.1)

 

Com esta linha, estamos querendo dizer que somente estas duas máquinas, desktop_secretaria e 200.100.1.1, terão o acesso ao banco de dados bloqueado (independente do privilégio do usuário que está tentando acessar), e todas as outras podem acessar livremente (dependendo das permissões de acesso de cada usuário).

 

Obs.: Os IPs e host names usados aqui são meramente ilustrativos e pode ser usado apenas um IP ou host name, não necessariamente uma lista.

 

 

Papel do Listener

 

Quem controla o acesso dos demais hosts ao host onde está o banco de dados é o LISTENER, que 'lê' o arquivo de parâmetros, identifica o host name ou IP que está solicitando o acesso, e toma a decisão de bloquear ou liberar o acesso.

 

Assim, após configurar e salvar as alterações no arquivo de parâmetros, é necessário que o serviço do listener seja parado e reiniciado.

 

 

Finalizando

 

O Node Validation contribui para a segurança do acesso ao banco de dados Oracle, minimizando as chances de sucesso dos ataques externos e internos, dificultando a ação dos invasores.

 

Ele oferece uma cobertura extra, controlando o acesso até de hosts que já foram filtrados pelos firewalls convencionais, e é isso que o faz ser útil também para ataques internos.

 

Embora este método possa ser usado tendo ou não um um outro firewall configurado, como diz a minha mãe (dona Terezinha), 'o seguro morreu de velho'.

 

Segurança nunca é demais e se necessário, podem ser colocados os dois tipos de controle pra rodar: firewall + Node Validation.

 

 

 

Anderson Rodrigo Farias

DBA Oracle

Betha Sistemas LTDA

http://www.betha.com.br

 

Artigos relacionados