Teste de banco de dados - segurança
O teste de segurança do banco de dados é feito para encontrar as brechas nos mecanismos de segurança e também para encontrar as vulnerabilidades ou fraquezas do sistema de banco de dados.
O principal objetivo dos testes de segurança de banco de dados é descobrir vulnerabilidades em um sistema e determinar se seus dados e recursos estão protegidos contra invasores em potencial. Os testes de segurança definem uma maneira de identificar vulnerabilidades potenciais de forma eficaz, quando realizados regularmente.
A seguir estão os principais objetivos da realização de testes de segurança de banco de dados -
- Authentication
- Authorization
- Confidentiality
- Availability
- Integrity
- Resilience
Tipos de ameaças em um sistema de banco de dados
Injeção SQL
Este é o tipo mais comum de ataque em um sistema de banco de dados onde instruções SQL maliciosas são inseridas no sistema de banco de dados e são executadas para obter informações críticas do sistema de banco de dados. Esse ataque tira proveito de lacunas na implementação de aplicativos do usuário. Para evitar isso, os campos de entrada do usuário devem ser tratados com cuidado.
Elevação de privilégio no banco de dados
Neste ataque, um usuário já possui algum acesso no sistema de banco de dados e ele apenas tenta elevar este nível de acesso mais alto para que possa realizar algumas atividades não autorizadas no sistema de banco de dados.
Negação de serviço
Nesse tipo de ataque, um invasor torna um sistema de banco de dados ou recurso de aplicativo indisponível para seus usuários legítimos. Os aplicativos também podem ser atacados de maneiras que tornam o aplicativo, e às vezes a máquina inteira, inutilizável.
Acesso não autorizado aos dados
Outro tipo de ataque é obter acesso não autorizado aos dados em um aplicativo ou sistema de banco de dados. O acesso não autorizado inclui -
- Acesso não autorizado a dados por meio de aplicativos baseados no usuário
- Acesso não autorizado, monitorando o acesso de terceiros
- Acesso não autorizado a informações de autenticação de cliente reutilizáveis
Falsificação de identidade
No Identity Spoofing, um hacker usa as credenciais de um usuário ou dispositivo para lançar ataques contra hosts de rede, roubar dados ou contornar os controles de acesso ao sistema de banco de dados. A prevenção desse ataque requer mitigações em nível de rede e infraestrutura de TI.
Manipulação de dados
Em um ataque de manipulação de dados, um hacker altera os dados para obter alguma vantagem ou para danificar a imagem dos proprietários do banco de dados.
Técnicas de teste de segurança de banco de dados
Teste de Penetração
Um teste de penetração é um ataque a um sistema de computador com a intenção de encontrar brechas de segurança, potencialmente obtendo acesso a ele, sua funcionalidade e dados.
Descoberta de risco
A Localização de Risco é um processo de avaliação e decisão sobre o risco envolvido com o tipo de perda e a possibilidade de ocorrência de vulnerabilidade. Isso é determinado dentro da organização por várias entrevistas, discussões e análises.
Teste de Injeção SQL
Envolve a verificação das entradas do usuário nos campos do aplicativo. Por exemplo, inserir um caractere especial como ',' ou ';' em qualquer caixa de texto em um aplicativo de usuário não deve ser permitido. Quando ocorre um erro no banco de dados, significa que a entrada do usuário é inserida em alguma consulta, que é então executada pela aplicação. Nesse caso, o aplicativo fica vulnerável à injeção de SQL.
Esses ataques são uma grande ameaça aos dados, pois os invasores podem obter acesso a informações importantes do banco de dados do servidor. Para verificar os pontos de entrada de injeção de SQL em seu aplicativo da web, descubra o código de sua base de código onde consultas diretas do MySQL são executadas no banco de dados aceitando algumas entradas do usuário.
O teste de injeção SQL pode ser executado para colchetes, vírgulas e aspas.
Quebra de senha
Esta é a verificação mais importante ao realizar o teste do sistema de banco de dados. Para acessar informações críticas, os hackers podem usar uma ferramenta de quebra de senha ou adivinhar um nome de usuário / senha comum. Essas senhas comuns estão facilmente disponíveis na Internet e também existem ferramentas de cracking de senha livremente.
Portanto, é necessário verificar na hora do teste se a política de senhas é mantida no sistema. No caso de quaisquer aplicativos bancários e financeiros, é necessário definir uma política de senha rígida em todos os sistemas de banco de dados de informações críticas.
Auditoria de segurança do sistema de banco de dados
Uma auditoria de segurança é um processo de avaliação das políticas de segurança da empresa em um intervalo de tempo regular para determinar se os padrões necessários são seguidos ou não. Vários padrões de segurança podem ser seguidos de acordo com os requisitos de negócios para definir a política de segurança e, em seguida, a avaliação das políticas definidas em relação a esses padrões pode ser feita.
Exemplos dos padrões de segurança mais comuns são ISO 27001, BS15999, etc.
Ferramentas de teste de segurança de banco de dados
Existem várias ferramentas de teste de sistema disponíveis no mercado, que podem ser usadas para testar o sistema operacional e verificar o aplicativo. Algumas das ferramentas mais comuns são discutidas abaixo.
Proxy de Ataque Zed
É uma ferramenta de teste de penetração para encontrar vulnerabilidades em aplicativos da web. Ele foi projetado para ser usado por pessoas com uma ampla gama de experiência em segurança e, como tal, é ideal para desenvolvedores e testadores funcionais que são novos em testes de penetração. É comumente usado para Windows, Linux, Mac OS.
Paros
Todos os dados HTTP e HTTPS entre o servidor e o cliente, incluindo cookies e campos de formulário, podem ser interceptados e modificados usando esses scanners. É usado para plataforma cruzada, Java JRE / JDK 1.4.2 ou superior.
Kit de ferramentas para engenheiro social
É uma ferramenta de código aberto e os elementos humanos são atacados em vez do elemento do sistema. Ele permite que você envie e-mails, miniaplicativos java etc. contendo o código de ataque. É preferível para Linux, Apple Mac OS X e Microsoft Windows.
Skipfish
Esta ferramenta é usada para verificar vulnerabilidades em seus sites. Os relatórios gerados pela ferramenta servem como base para avaliações de segurança de aplicativos da web profissionais. É preferível para Linux, FreeBSD, MacOS X e Windows.
Vega
É uma ferramenta de segurança da web multiplataforma de código aberto que é usada para encontrar instâncias de injeção de SQL, script entre sites (XSS) e outras vulnerabilidades em aplicativos da web. É preferível para Java, Linux e Windows.
Wapiti
Wapiti é uma ferramenta de código aberto e baseada na web que varre as páginas da aplicação web e verifica se há scripts e formulários onde pode injetar dados. É construído com Python e pode detectar erros de manuseio de arquivos, injeções de banco de dados, XSS, LDAP e CRLF, detecção de execução de comandos.
Web Scarab
Ele é escrito em Java e é usado para analisar os aplicativos que se comunicam por meio de protocolos HTTP / HTTPS. Esta ferramenta foi projetada principalmente para desenvolvedores que podem escrever códigos sozinhos. Esta ferramenta não depende do sistema operacional.