3 dicas de segurança para base de dados

14:25 Marcos Ferreira 0 Comentarios


Conforme o número de aplicações web e APIs crescem, também cresce a utilização de banco de dados. Hoje em dia, como o grande número de incidentes tem o foco, as aplicações web, os bancos de dados também acabam tendo um papel muito importante na segurança da infraestrutura como um todo.

Os bancos de dados possuem informações valiosíssimas e sensíveis de uma empresa, incluindo dados de clientes e informações financeiras. A segurança dessas informações pode depender de diversos fatores e poderá variar de empresa para empresa, podendo envolver segurança de rede, segurança física, criptografia, backup, etc.

É muito importante proteger esses dados contra ataques internos e externos, seja utilizando controles de acessos efetivos, auditorias periódicas ou análise de vulnerabilidade para verificar as falhas que existem. Confira abaixo, 3 dicas para aumentar a segurança da sua base de dados:

Autenticação

O primeiro passo ao acessar o banco de dados é a processo de autenticação e caso este não seja configurado corretamente, poderá ser facilmente acessado por um atacante. Neste caso, as melhores opções para se prevenir são:

- Utilizar senhas com no mínimo de 8 caracteres, incluindo números e caracteres especiais;
- Não utilizar a mesma senha em mais de um servidor, ex.: DEV e Produção.
- Definir uma senha para a conta de administrador e não utilizar essa conta nas aplicações;
- Criar usuários e senhas específicos para aplicações/tarefas.

Controle de acesso

Para proteger os dados é importante limitarmos o acesso, após criar um usuário e senha específicos para determinadas tarefas, chegou a hora de determinar qual será o acesso que cada um deles irá ter. Os privilégios devem ser diferentes para cada usuário e deverá ter restrições conforme a sensibilidade que o dado apresenta. 

Um exemplo simples é uma aplicação onde são exibidas informações, o usuário do banco de dados que busca essas informações quando um cliente visita essa página não precisa ter todos os acessos, apenas permissão para leitura dos dados em determinada tabela, já quem é o editor, precisa ter mais permissões, como leitura, escrita e edição, mas apenas em determinadas tabelas e não em toda base.
Quando for definir os controles de acesso na base de dados, tenha em mente que todos os usuários precisam ter o mínimo de permissão necessária para realizar sua tarefa.

Criptografia

A criptografia dos dados é também uma das partes mais importantes para a segurança da base de dados. Neste caso, precisamos pensar em dois pontos para nos preocuparmos com a segurança - são os dados que serão armazenados e os dados que estarão em trânsito.

Em primeiro lugar, vamos falar dos dados em trânsito, infelizmente é muito comum encontrarmos aplicações que transmitem os dados de um servidor para o outro (cliente/server) sem nenhum tipo de criptografia e com isso os dados confidenciais ficam completamente expostos e passíveis de interceptação e alteração, por isso, é muito importante configurar um canal de comunicação seguro entre a base de dados e a aplicação.

Já na criptografia dos dados que serão armazenados, um exemplo muito simples e comum é quando uma aplicação web fornece usuário e senha para seus utilizadores, essas senhas deverão ser armazenadas de forma criptografada, por incrível que pareça, muitas aplicações hoje em dia ainda não fazem isso e armazenam esses dados em texto puro. Se você tem uma loja virtual e pretende armazenar as informações de compras de seus clientes, incluindo dados de cartões de crédito e informações confidenciais, tenha muito cuidado!

Procure seguir as recomendações do PCI DSS 3.1 e as recomendações do OWASP para criptografia de dados, ambos os links encontram-se nas referências no final do texto.

Conclusão

Da mesmo forma que temos um processo contínuo de correção de vulnerabilidades nas aplicações web, na base de dados funciona da mesmo forma. Além de realizar o hardening do sistema operacional, é importante aplicar os patches de segurança que são liberados constantemente e configurar de forma correta o seu servidor SQL, para que, em caso de comprometimento, os impactos sejam minimizados. Além disso, nunca se esqueça: faça backups constantes!

Referências:






0 comentários: