Segurança em Banco de Dados: Cuidando do bem mais valioso da empresa

A segurança da informação, até pouco tempo não estava em destaque, dificilmente ouvíamos assuntos referente a invasões ou vazamento de informações. Porém, esse tempo mudou como também o conceito das empresas, onde hoje a informação é o bem mais valioso da organização.

Quando falamos em segurança inúmeros métodos surgem como forma de proteção de sua organização. Veremos assim, alguns métodos para proteger o seu banco de dados e algumas boas práticas para mantê-lo íntegro.

Normalmente quando falamos em segurança de banco de dados estamos relacionando também a integridade do mesmo, porém são conceitos completamente distintos. Segurança significa proteger os dados contra usuários não autorizados e integridade é proteger os dados contra usuários autorizados.

A proteção total do banco de dados contra um acesso indevido é praticamente impossível, porém podemos criar formas de retardar esse acesso, tornando o custo alto para que seja realizada a invasão.

Parecer ser obvio, porém de suma importância, os servidores devem estar em uma sala onde o acesso é restrito com sistemas contra incêndios e inundações, por exemplo, desta forma já estamos restringindo o acesso físico e protegendo os servidores contra agentes naturais.

Já pensando em estruturas lógicas, podemos restringir o acesso dos usuários da forma que desejamos, sendo assim montando uma política de acessos e limitar cada usuário a realizar somente o que realmente lhe remete. As visões são muito utilizadas para essas situações, porém podemos dar autorizações diretamente aos usuários do SGBD onde ele pode ter autorização de leitura, inserção, atualização e eliminação de determinadas tabelas. Além de permissões podemos conceder privilégios aos usuários, no entanto, devemos ter muito cuidado. Um usuário com privilégio de atualização, por exemplo, pode ceder seu privilégio a demais usuários e assim perdemos o controle sobre o nosso banco de dados.

Outro cuidado que devemos tomar é a forma que os comandos SQL estão sendo utilizados na nossa aplicação e principalmente protegê-los contra ataques de injeção de SQL. As injeções SQL são formas de burlar um login, por exemplo. O invasor submete um comando sobre um comando já existente para tentar se infiltrar no software tornando-se assim um risco eminente, pois a partir deste momento o invasor terá acesso aos dados da empresa para manipula-los ou copiá-los.

Os métodos já citados de segurança podem não ser eficientes para proteger o banco de dados contra algumas ameaças. Nesta situação ao usar criptografia podemos disfarçar a informação de modo que, mesmo que a transmissão seja desviada, a mensagem não será revelada. A criptografia é a conversão de dados para um formato de texto criptografado, que não pode ser facilmente interpretado por pessoas não autorizadas. Com ele estaremos melhorando a segurança e a privacidade quando os controles de acesso são evitados pelo invasor.

Ainda assim, se sofrermos um ataque ao banco de dados, podemos usufruir de serviços como as auditorias em banco de dados, que consistem em modificar o log do sistema. O log inclui uma entrada para cada operação aplicada ao banco de dados que pose também ser utilizado para a recuperação de uma falha de transação ou do sistema.  Caso haja uma suspeita de adulteração do banco de dados, podemos realizar uma auditoria, que consiste em examinar todos os acessos e operações realizadas no banco de dados durante um período.

Todos esses métodos são quase que essenciais para que o banco de dados se torne seguro o bastante para garantir a integridade, disponibilidade e confidencialidade, porém não podemos nos esquecer de uma boa política de backup, para que em situações onde não for possível a prevenção possa ser útil a restauração imediata do backup, perdendo o mínimo possível de informações.

Autor João Luís Trentin,
Artigo do Seminário de Segurança em Desenvolvimento de Sistemas 2011-2
Revisão Thiarlei Macedo | Fonte Micreiros.com

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *