Finalmente chegamos ao ponto mais conhecido do nosso sistema, a proteção das aplicações que acessam o banco de dados. Apesar de não existir uma regra única para proteção de tal estrutura, alguns pontos comentados nos tópicos anteriores e reforçados novamente aqui, juntamente com cuidados e avaliações constantes à medida que suas aplicações são atualizadas, ajudam a protege-la, afinal, é normalmente o ponto de entrada para usuários mal-intencionados procurando por vulnerabilidades a serem exploradas.
Os bancos de dados, à medida que evoluem, incorporam características particulares possibilitando aos desenvolvedores a criação de aplicações mais seguras. É importante, porém, atentarmos ao fato de que atualizações e o monitoramento constante são cruciais em um ambiente cada vez mais conectado e disponível.
Ameaças comuns
Todos os envolvidos no desenvolvimento de aplicações devem conhecer as ameaças digitais mais comuns e como tentar evitá-las. Como a Microsoft costuma dizer, a segurança digital é melhor compreendida como uma corrente que, ao ser quebrada, pode comprometer a tenção ou a estabilidade do todo. Resumimos abaixo, os principais pontos de atenção a serem avaliados na sua aplicação:
- Senhas: Muitos ataques são bem-sucedidos porque um invasor conseguiu obter ou adivinhar a senha de um usuário privilegiado. As senhas são sua primeira linha de defesa contra intrusos, portanto, como já dissemos anteriormente nesse documento, definir políticas fortes e complexas é essencial para a segurança do seu sistema.
- Elevação de Privilégio: Ataques de elevação de privilégio ocorrem quando um usuário comum pode assumir privilégios de uma conta confiável, como o proprietário dos objetos ou o DBA do banco. Novamente, execute sempre suas aplicações com contas de usuário pouco privilegiados e atribua apenas as permissões estritamente necessárias para o funcionamento do processo. Isso limita o estrago de um ataque bem-sucedido.
- Sondagem: Uma sondagem pode usar mensagens de erro geradas por um aplicativo para pesquisar brechas de segurança. Implemente o tratamento de logs em toda aplicação. Jamais permita o retorno de códigos de erro do seu banco de dados ou servidor de aplicação diretamente ao usuário final. Esse, quando mal-intencionado, fará uso dessa informação para ataques específicos de vulnerabilidades conhecidas dos produtos envolvidos.
- SQL Injection: Injeção de SQL é o processo pelo qual um usuário malicioso insere comandos SQL no lugar de uma entrada válida. Se o código injetado for passado para o servidor e executado inadvertidamente, terá o potencial de danificar ou destruir dados. Desenvolvedores podem impedir tais ataques fazendo uso de stored procedures e comandos parametrizados, evitando SQL dinâmico e restringindo permissões dos usuários utilizados na aplicação.