Por que eu devo ler este artigo:Os SGBDs atuais possuem diversos recursos e opções para garantir que o acesso seja realizado apenas por quem esteja devidamente autenticado, uma vez que este é o mecanismo mais comum para conseguir “entrar” no banco de dados e acessar suas informações.

O conteúdo deste artigo auxilia os profissionais que trabalham com banco de dados a conhecer as técnicas de ataque e invasão de servidores. Com o conhecimento básico sobre estas técnicas é possível realizar um teste de penetração simples baseado em um ataque de força bruta no SQL Server, Oracle, MySQL e PostgreSQL que pode ser útil ao DBA quando ele estiver avaliando a segurança do seu ambiente de banco de dados.

A segurança das informações armazenadas em um banco de dados é uma das principais responsabilidades atribuídas a um DBA ou profissional que gerencia o banco de dados.

Esta segurança deve levar em consideração vários aspectos, contextos, tecnologias e fatores que influenciam como será o acesso autorizado dos dados e também quais são as medidas necessárias para prevenir o acesso não autorizado.

Os SGBDs atuais possuem diversos recursos e opções para garantir que o acesso seja realizado apenas por quem esteja devidamente autenticado, uma vez que este é o mecanismo mais comum para conseguir “entrar” no banco de dados e acessar suas informações.

Apesar de existirem muitas opções, o modelo de autenticação baseado no fornecimento de um usuário (login) e senha ainda é o mais utilizado nos principais bancos de dados relacionais e não relacionais (NoSQL) existentes no mercado.

A partir deste contexto, este artigo explora algumas opções para realizar um teste de penetração (pentest) nos bancos de dados relacionais mais comuns do mercado brasileiro: SQL Server, Oracle, MySQL e PostgreSQL.

O teste apresentado emprega a técnica de diversas tentativas de login, conhecida como força bruta, para tentar obter o acesso ao banco de dados. Os detalhes do ambiente, das ferramentas e demais informações serão explicadas neste artigo para compreender como é possível aplicar este técnica de força bruta e possivelmente conseguir acesso não autorizado a um SGBD.

O objetivo da apresentação deste teste de senhas em SGBDs engloba diversos aspectos. Em primeiro lugar, a intenção é mostrar como é possível realizar um teste de penetração sem muitas dificuldades.

Em seguida, espera-se que a apresentação deste conteúdo possa alertar e guiar o interesse em profissionais ligados a bancos de dados para procurar medidas que possam dificultar o uso da técnica de força bruta em seus SGBDs.

Por fim, o teste apresentado também pode ser encarado como um motivador para investimentos tanto nos aspectos defensivos ao ataque como em novas técnicas que continuem a explorar configurações padrão, vulnerabilidades e características dos produtos que fornecem uma brecha de segurança para acessos não autorizados.

Autenticação do usuário

O cenário atual do mercado de banco de dados basicamente é composto de produtos que utilizam uma arquitetura distribuída conhecida como cliente/servidor. Nesta abordagem uma aplicação cliente, seja um ERP, servidor Web, aplicativo móvel ou qualquer outro, se conecta a um servidor de banco de dados.

Esta descrição dos papéis de cliente e servidor é lógica, ou seja, apenas conceitual e na prática é possível que tanto o cliente como o servidor sejam implementados em computadores locais ou remotos. De qualquer maneira, para garantir que a utilização do serviço de banco de dados seja feita apenas por clientes válidos, isto é, usuários legítimos que devem ter acesso concedido, é preciso implementar algum tipo de autenticação que vai liberar ou negar o acesso ao servidor.

Neste ponto é importante destacar a diferença entre dois conceitos importantes de segurança da informação identificados pelos termos autenticação e autorização. Apesar de serem utilizados em conjunto, tais conceitos possuem significados diferentes.

A autenticação é o primeiro passo para o acesso e ela deve garantir que o cliente (ou usuário) é quem ele diz ser. Tecnologias como biometria, tokens e login/senha são os principais métodos para garantir a autenticação.

Uma vez que o cliente esteja autenticado ele precisa ser autorizado, isto é, o servidor precisa atribuir os privilégios a este usuário e garantir que ele possa usar os recursos de acordo com seu nível de acesso.

Em banco de dados a autorização assume a forma de permissões a bancos de dados específicos, objetos e comandos geralmente atribuídos pelo comando GRANT ou pelo fato do usuário participar de algum tipo de grupo que possui a permissão.

Nos SGBDs atuais a autorização é reali ...

Fim do trecho gratuito • continue abaixo
CONTEÚDO EXCLUSIVO

Desbloqueie toda a DevMedia

  • +2000 artigos e vídeos
  • +40 trilhas sobre Front-end, Back-end, IA e muito mais
  • +5000 exercícios práticos
  • Mentorias ao vivo individuais
até 50% OFF
A partir de
R$ 69 /mês
Assinar agora