Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

13 melhores práticas de segurança do SQL Server




Os dados são um ativo crítico de todas as organizações, e os bancos de dados mal protegidos costumam ser os culpados pelas violações de segurança. Este artigo detalha as práticas recomendadas de segurança do SQL Server, bem como as considerações essenciais de segurança para proteger seus bancos de dados contra ataques mal-intencionados.

A segurança de dados é composta por três pilares essenciais – confidencialidade, integridade e disponibilidade (CIA) e trata de processos específicos para proteger os dados de acessos intencionais e acidentais. Vamos detalhar as diferentes áreas e etapas a serem seguidas ao abordar a segurança do SQL Server, um dos bancos de dados relacionais mais populares em uso atualmente.

Práticas recomendadas de segurança do SQL Server

1. Garanta a segurança física do seu SQL Server


Quando se trata de segurança do SQL Server, a segurança física não pode ser negligenciada. A segurança física refere-se à limitação do acesso não autorizado a data centers ou outros componentes de servidor físico. Por exemplo, você pode implementar uma sala trancada com acesso restrito usando um cartão inteligente, impressão digital ou reconhecimento facial. Você também pode configurar um segmento de rede restrito para o SQL Server.

Os data centers abrigam a infraestrutura de uma organização, como roteadores, switches, servidores, firewalls e dispositivos de armazenamento. A segurança física trata da proteção de hardware, software e rede contra qualquer acesso não autorizado ou desastres naturais. Pode envolver as seguintes áreas:
  • Proteger as instalações e o acesso ao equipamento apenas para pessoas autorizadas
  • Manutenção de sistemas de controle de acesso
  • Vigilância 24x7x365 usando guardas de segurança no local ou monitoramento de CCTV
  • Fonte de alimentação ininterrupta (UPS)
  • Ter um sistema de alarme de incêndio e um sistema de detecção de fumaça por aspiração
  • Ter um painel detector de vazamento de água ativo
  • Sistemas repelentes de roedores
  • Sistemas de supressão de incêndio
  • Controle e monitoramento de temperatura e umidade
  • Manutenção periódica de hardware

2. Proteja seu sistema operacional


O SQL Server é instalado em cima de um sistema operacional existente, como Windows ou Linux. Portanto, a segurança do sistema operacional desempenha um papel vital na segurança do SQL Server. Abaixo estão algumas recomendações para proteger seu sistema operacional:
  • Aplicar patches de segurança e service packs regulares do sistema operacional
  • Defina uma política de patches do sistema operacional que aplique patches em ambientes inferiores seguidos de patches de produção
  • Sempre use versões de sistema operacional de produtos estáveis ​​e com suporte. Por exemplo, a Microsoft descontinuou o suporte ao Windows Server 2003, portanto, você não deve usá-lo para hospedagem de banco de dados
  • Não permita acesso à Internet em seus servidores de banco de dados
  • Você deve desinstalar, interromper ou desabilitar aplicativos e unidades não utilizadas para garantir menos possibilidades de ataques em potencial
  • Implementar um firewall com acesso restrito a servidores de banco de dados para que apenas servidores de aplicativos que precisem de acesso ao servidor de banco de dados tenham permissão para passar tráfego dos firewalls
  • Abra portas específicas no firewall. Por exemplo, por padrão, o SQL Server é executado na porta 1433. Portanto, você pode permitir a porta TCP 1433 e 3389 para acesso remoto ao servidor se nenhum outro aplicativo for executado no servidor. Da mesma forma, o serviço de análise usa a porta padrão 2383 como porta padrão. Para obter uma lista completa de portas no SQL Server, consulte esta documentação sobre portas usadas pelo SQL Server. Você também pode usar certificados SSL ou TLS para proteger o acesso ao SQL Server. Esses certificados podem criptografar a transferência de dados entre o SQL Server e os aplicativos cliente. A configuração do SQL Server é necessária para um certificado autoassinado ou o certificado emitido pela autoridade de certificação (CA). Você pode consultar o artigo: Como definir e usar conexões criptografadas do SQL Server para obter mais detalhes.
  • Aproveite a opção Extended Protection for Authentication para evitar um ataque de retransmissão de autenticação usando a vinculação de serviço e a vinculação de canal. Para habilitar a proteção estendida, vá para o SQL Server Configuration Manager, expanda a tela, clique com o botão direito do mouse em Protocolos e vá para Avançada, Proteção estendida. Observe que, por padrão, isso está desativado.



Da mesma forma, você pode forçar a conexão criptografada com o SQL Server usando a opção a seguir.



Você também pode consultar a proteção estendida para obter mais detalhes.

3. Reduza sua área de superfície


A área de superfície do SQL Server é composta por recursos de mecanismo de banco de dados que fornecem funcionalidades adicionais, como o envio de emails. Esses componentes podem ser um alvo potencial para obter acesso ao SQL Server para atividades maliciosas. Portanto, você deve desabilitar o componente e os recursos do SQL Server que não estão sendo usados, pois isso limitará as chances de um possível ataque. Os principais componentes que você pode revisar e desabilitar estão listados abaixo.
  • Procurar procedimentos de inicialização
  • Procedimentos de automação OLE
  • CLR ativado
  • Encadeamento de propriedade entre bancos de dados
  • xp_cmdshell
  • XPs de correio de banco de dados

Você pode consultar este artigo para obter informações detalhadas sobre as opções de configuração do servidor.

4. Configure um servidor para escutar em uma porta diferente


O Microsoft SQL Server usa a porta padrão 1433 para todas as conexões de banco de dados. É um risco de segurança comum em muitos ambientes de banco de dados porque os profissionais de banco de dados normalmente não alteram a porta padrão. É uma porta bem conhecida e os invasores podem utilizar essa oportunidade para acessar o SQL Server. Portanto, você deve usar uma porta não padrão para proteger a segurança do SQL Server. Você pode modificar isso usando o SQL Server Configuration Manager.


5. Ajustar a autenticação do SQL Server


A proteção de seus dados depende da capacidade de autenticar o acesso a dados específicos. O SQL Server oferece duas opções para autenticação de banco de dados.
  • Autenticação do Windows
  • Autenticação Windows e SQL (modo misto)

Para verificar o modelo de autenticação do servidor, clique com o botão direito do mouse na instância do SQL Server e navegue até Segurança.



A autenticação do Windows usa contas do Active Directory para autenticações. Você pode ter um controle de política centralizado para complexidade de senha, expiração de senha, bloqueio de conta e grupos de diretório ativo no diretório ativo. Portanto, você deve usar a autenticação do Windows em vez da autenticação do SQL Server. Aqui, o usuário se conecta usando uma conta do Windows e o SQL Server valida as credenciais usando o token principal do Windows. Ele usa o protocolo de segurança Kerberos para autenticações. Consulte o modo de autenticação para mais detalhes.

No entanto, se você precisar usar os logons do SQL Server, ainda poderá aplicar a política de senha conforme destacado abaixo.


6. Lembre-se das permissões da conta de serviço


O SQL Services usa uma conta do Windows para executar seus serviços. Você não deve usar as contas internas de alto privilégio, como Serviço de Rede ou Sistema Local. Da mesma forma, para uma conta de serviço de domínio, você deve atribuir privilégios apropriados à função.

Portanto, recomendo consultar configurar contas e permissões de serviço do Windows para obter mais detalhes sobre as permissões de contas de serviço do SQL Server.

7. Aplicar patches do SQL Server na produção


A Microsoft lança service packs regulares (SQL Server 2016 ou anterior) e pacotes cumulativos (SQL Server 2017 em diante) para corrigir problemas conhecidos e problemas de segurança. Portanto, você deve sempre planejar a implementação de patches do SQL Server nas instâncias de produção. No entanto, não aplique patches diretamente em instâncias de produção. Sempre aplique-os primeiro no ambiente de teste, valide e planeje a implantação de produção.

Você pode consultar as últimas atualizações do Microsoft SQL Server para encontrar detalhes sobre os service packs e pacotes cumulativos mais recentes.

8. Proteja seus backups


Quando se trata de segurança do SQL Server, proteger seus backups é fundamental. Normalmente, os profissionais de banco de dados não consideram todos os requisitos para proteger backups de banco de dados. Backup de banco de dados é o processo de criação de uma cópia do estado operacional, arquitetura e dados armazenados de um banco de dados. Portanto, é igualmente importante protegê-lo. Significa restringir o acesso aos arquivos de backup e criptografá-los adequadamente. Quando se trata de proteger backups, aqui estão alguns lembretes.
  • Não conceda a todos direitos na pasta de backup para criar, visualizar, modificar e excluir arquivos de backup
  • Use backups de banco de dados com criptografia; consulte este artigo sobre criptografia de backup para mais detalhes

9. Lembre-se das técnicas de criptografia e mascaramento de dados do SQL Server


Uma área chave na segurança do SQL Server é a criptografia. Você pode usar vários mecanismos de criptografia para proteger dados confidenciais em seu banco de dados SQL Server. As diferentes opções de criptografia são as seguintes.
  • Sempre criptografado:A técnica sempre criptografada ajuda a criptografar dados confidenciais dentro dos aplicativos clientes. O driver sempre criptografado criptografa e descriptografa automaticamente dados confidenciais nos aplicativos cliente. As chaves de criptografia nunca são reveladas ao mecanismo de banco de dados do SQL Server. Ele protege dados confidenciais.
  • Criptografia de dados transparente (TDE):a TDE criptografa dados em repouso. Ajuda a proteger os arquivos de dados, arquivos de log e arquivos de backup.
  • Criptografia em nível de coluna:a criptografia em nível de coluna ajuda a criptografar dados de coluna específicos, por exemplo, números de cartão de crédito e CPF.
  • Mascaramento de dados estáticos:o mascaramento de dados estáticos substitui os dados confidenciais usando as regras de transformação de dados definidas.
  • Mascaramento de dados dinâmicos:o mascaramento de dados dinâmicos ajuda a limitar a exposição de dados confidenciais a usuários não privilegiados.
  • Segurança em nível de linha:a segurança em nível de linha restringe o acesso à linha de dados.

10. Complicar a senha do administrador do sistema


Se você estiver usando a autenticação SQL, ela criará uma SA de logon com as permissões sysadmin. Para proteger seu SQL Server, faça o seguinte.
  • Renomeie o login chamado SA para um nome diferente
  • Desative a conta se você não planeja usá-la
  • Use uma senha complexa
  • Não permitir que aplicativos usem a conta SA nas strings de conexão

11. Auditoria de logins do banco de dados


A auditoria geralmente é negligenciada quando se trata de segurança do SQL Server. Você deve fazer auditoria regular do SQL Server para logons com falha. Você pode usar o mecanismo de auditoria de login padrão para revisar as contas. Por exemplo, suponha que qualquer usuário esteja tentando se conectar ao SQL Server com uma conta de alto privilégio. Nesse caso, você pode ver a falha de login e o endereço IP da solicitação de entrada (cliente). Isso pode ajudá-lo a capturar e eliminar atividades suspeitas.

Você pode usar os eventos estendidos, rastreamento de SQL, captura de dados de alteração, gatilhos (DDL, DML ou Logon), banco de dados ou especificações de auditoria em nível de servidor para a auditoria do SQL Server.

12. Esteja atento às permissões no nível do servidor e do banco de dados


Os profissionais de banco de dados devem ter cuidado ao atribuir permissões no nível do servidor ou do banco de dados. Às vezes, vemos que os desenvolvedores obtêm sysadmin no nível do servidor ou as permissões do proprietário do banco de dados no nível do banco de dados. Essas são as permissões mais altas que um usuário pode ter em um nível de instância ou banco de dados, respectivamente.
  • Consulte funções fixas no nível do servidor para entender as funções fixas no nível do servidor e seus recursos.
  • Consulte os papéis no nível do banco de dados para entender melhor os papéis fixos no nível do banco de dados.

13. Desative o serviço de navegador do SQL Server


O SQL Server usa o serviço de navegador para a instância nomeada. Ele escuta todas as solicitações de entrada para conexões do SQL Server. Ele usa a porta UDP 1434 e responde às solicitações com o número da porta TCP/IP necessária para se conectar ao SQL Server. Portanto, você pode desativar o serviço do navegador e definir explicitamente o número da porta nas strings do aplicativo. Isso evita a exposição do número da porta às solicitações de conexão de entrada e ajuda na segurança do SQL Server.

Você pode consultar o artigo Como funciona o navegador do SQL Server para entender melhor o serviço do navegador do SQL Server.

Outras considerações de segurança do SQL Server


Conforme descrito, a segurança do SQL Server é um processo contínuo com vários fatores e etapas. Você deve revisitar regularmente as instâncias do SQL Server, as políticas de segurança e atualizá-las rotineiramente nos níveis do sistema operacional e do SQL Server. Ao aplicar essas práticas recomendadas regularmente, você ajudará a criar um serviço de banco de dados mais seguro e sem interrupções para sua empresa.