Segurança no MS SQL Server
Quando falamos em segurança, de uma maneira geral pensamos em tranquilidade. Em um mundo ideal todos nós queremos ter esse sentimento de poder confiar que tudo ocorrerá da forma como planejamos, porém, nem sempre é algo que acontece e, é exatamente por isso que a prevenção é extremamente necessária, ainda mais se tratando de banco de dados.
Em uma empresa de grande porte, por exemplo, podem ocorrer milhares de registros diariamente em um banco de dados, supondo que todas as informações são de valor inestimável para quem o detém, tratando-se de grande fonte de conhecimento, como citava o filósofo Francis Bacon “conhecimento em si é poder”. Permitir que esse banco de dados seja facilmente acessível por pessoas não autorizadas pode ser um problema, não é verdade?
Hoje encontramos uma gama de SGBDs (Sistema de Gerenciamento de Banco de Dados), de SQL a NoSql e muitos deles possuem recursos que ajudam na segurança dos dados que portam.
Neste artigo irei me aprofundar no SQL Server da Microsoft, que possui algumas funcionalidades interessantes no quesito segurança de dados, como:
Transparent Data Encryption
O TDE é uma funcionalidade interessante nas versões SQL SERVER Enterprise e Developer, pois permite que um banco de dados físico inteiro seja encriptado, impossibilitando que o mesmo seja restaurado em outro servidor ou instância sem as devidas credenciais.
Isso ocorre porque antes de encriptar um banco de dados, é criada uma chave mestra responsável por decifrar a criptografia e, esta mesma chave deve estar presente na restauração em um outro ambiente. Porém, a função possui as seguintes limitações:
• Encripta as informações a nível físico e não em memória, isso significa que qualquer usuário com acesso de DBA conseguirá visualizar os dados;
• Dados de tipo FileStream não são criptografados;
• Caso um banco esteja criptografado e os demais não, pode ocorrer perda de performance nos bancos não criptografados;
• Bancos criptografados não podem usar o recurso de backup compactado do SQL Server.
Apesar das limitações, é um poderoso recurso de proteção.
Row Level Security
O RLS é uma funcionalidade que permite manipular o acesso a certos usuários a nível de linha. É possível efetuar filtros que mostram apenas linhas predeterminadas e bloqueios para ações de insert, update e delete a certos usuários. Sua configuração é feita através da criação de uma função que executará a forma como o bloqueio funcionará e, em seguida é inserida em uma política que será replicada para a tabela específica selecionada.
É de grande valia nas situações em que um usuário só consiga enxergar apenas os registros ao qual inseriu. Está disponível em versões iguais ou superiores a 2016.
Dynamic Data Masking
O Dynamic Data Masking, como o próprio nome sugere, é uma máscara utilizada em um ou mais campos de uma ou mais tabelas com a finalidade de esconder valores importantes de usuários que não tenham a devida permissão.
No Data Masking os dados são alterados em memória para que apareçam com um valor pré-definido pelo DBA, fazendo com que campos sensíveis não sejam facilmente identificados. Está disponível em versões iguais ou superiores a 2016.
Server Audit
É um recurso do SQL Server disponível nas versões Enterprise e Developer e nas versões posteriores ao MS SQL Server Express e Standard 2016, utilizado para fins de auditoria onde ocorre a gravação de um log mediante a um evento pré-configurado.
É possível guardar estes logs de três formas: Arquivo, log de segurança ou log de aplicação, sendo os dois últimos acessados através do event viewer do S.O. É possível configurar tanto a nível de servidor onde pode-se registrar operações de create, alter, drop, login, falha de login e a afins, enquanto a nível de banco é registrado operações de insert, update, select e delete. Dependendo da quantidade de eventos, pode causar perda na performance, portanto deve-se levar as configurações de hardware e software para que seja bem executado.
Essas são algumas das tratativas que o MS SQL proporciona para auxiliar na segurança dos dados. É de extrema importância estabelecer uma política de segurança para suas senhas, evitando as fatídicas “teste123” que costumam ocorrer.
E você, já conhecia essas funcionalidades? Já aplicou alguma delas? Se não, experimente e torne seus dados cada vez mais seguros. Clique aqui para falar com um de nossos especialistas.
Wallace Mendes
Especialista em Banco de Dados na AMT