A segurança é a principal preocupação nos dias de hoje em todos os setores. A segurança do banco de dados também é uma grande preocupação para qualquer cliente. O SQL Server foi projetado para proteger todos os seus dados armazenados nos bancos de dados, mas às vezes não aplicamos o conjunto correto de configurações e deixamos um buraco em nosso sistema. Hackers e alienígenas não autorizados podem usar essas brechas para penetrar em seu sistema. Seus dados podem ser comprometidos ou difamados, seus recursos do sistema podem ser excluídos para criar uma interrupção para interromper suas atividades comerciais, os dados de seus clientes podem ser expostos a concorrentes etc.
Bloqueio ou proteção do SQL Server
Todo o processo para proteger seu ambiente de banco de dados é conhecido como bloqueio de banco de dados \ SQL Server. Descreverei vários parâmetros e detalhes de configuração que você pode aplicar para proteger seu ambiente de banco de dados.
Instalar apenas os componentes necessários
Vamos iniciar as práticas de bloqueio com a instalação do SQL Server. O SQL Server oferece vários componentes e recursos que os DBAs escolhem para vários requisitos. Alguns desses componentes e recursos são fornecidos abaixo:
- Mecanismo de banco de dados
- Serviços de relatórios
- Serviços de integração
- Mecanismo de serviços de análise
- Serviços de notificação
- Documentação e amostras (bancos de dados e códigos de amostra)
- Pesquisa de texto completo
- Outros recursos, como replicação, serviços de aprendizado de máquina, serviços de qualidade de dados etc.
É uma boa prática instalar apenas os recursos necessários porque, ao fazer isso, você reduz ou limita as possibilidades de ataque à superfície. Além disso, você terá uma baixa utilização de recursos do sistema.
Instalar atualizações mais recentes
Certifique-se de atualizar seus sistemas a tempo. Se alguma nova vulnerabilidade for descoberta, ela será publicada em boletins de segurança pelos fornecedores de seus produtos.
Não estou falando de atualizar apenas os patches do SQL Server, mas tudo o que está sendo executado em seu sistema, desde o sistema operacional até qualquer outro aplicativo que esteja instalado em sua máquina. Sempre aplique patches para manter seu software atualizado para evitar ameaças ou ataques externos.
Usar o modo de autenticação do Windows
Sempre escolha o modo de autenticação do Windows para conexões de usuário se você não tiver nenhuma dependência para usar o modo de autenticação do SQL Server. É mais seguro e autentica o login do Windows com o Windows Active Directory durante cada tentativa de login. O SQL Server tem dois tipos de modos de autenticação.
- Autenticação do Windows
- Modo misto (Windows + SQL Server)
Modo de autenticação do Windows: Este é um modo de autenticação padrão para o SQL Server. O modo de autenticação do Windows aproveita contas locais, contas de usuário do Active Directory e grupos ao conceder acesso ao SQL Server. Nesse modo, você, como administrador de banco de dados, pode conceder aos usuários do domínio ou do servidor local acesso ao servidor de banco de dados sem criar e gerenciar uma conta separada do SQL Server.
Modo misto: O modo de autenticação misto tem ambas as opções. Você pode usar a autenticação baseada no Windows, bem como as autenticações baseadas em logon do SQL Server. O mecanismo de autenticação do SQL Server é baseado em contas gerenciadas dentro do SQL Server, incluindo a política de senha. A autenticação mista pode ser necessária se você tiver algumas dependências para dar suporte a aplicativos herdados.
Você pode seguir as etapas abaixo para selecionar ou alterar o modo de autenticação do servidor:
- Inicie o SQL Server Management Studio e conecte-se à sua instância de destino do SQL Server.
- No SQL Server Management Studio, clique com o botão direito do mouse na instância do SQL Server e clique em Propriedades .
- Clique em Segurança página no painel do lado esquerdo, você pode ver as duas opções de autenticação no painel do lado direito em Autenticação do servidor seção. Se você quiser proteger sua instância, certifique-se de alternar para o modo de autenticação do Windows. Você só precisa clicar no botão de rádio do modo de autenticação do Windows e clicar em OK para aplicar as alterações.
- Na caixa de diálogo SQL Server Management Studio, clique em OK para reconhecer a necessidade de reiniciar o SQL Server.
O modo de autenticação do Windows é uma opção mais segura. No entanto, se a autenticação de modo misto for necessária, você deverá fornecer senhas complexas para logons do SQL Server e aplicar diretivas de segurança\bloqueio para maior segurança. Também é recomendável desabilitar a conta do SQL Server sa se você estiver usando o modo de autenticação misto. Discutirei isso na próxima seção.
Renomear/desativar a conta sa
O login sa é criado por padrão durante a instalação do SQL Server, portanto, esse pode ser um dos possíveis motivos para os invasores invadirem ou assumirem o controle dessa conta. Lembre-se de que este login possui privilégios de administração do sistema para que qualquer pessoa que tenha acesso a esta conta possa gerenciar seus bancos de dados e instâncias do SQL Server.
Você deve executar o comando abaixo para desabilitar a conta sa.
--Disable sa login
USE MASTER
GO
ALTER LOGIN sa DISABLE;
GO
Você pode ver sua execução na figura abaixo.
Antes de renomear ou desabilitar a conta sa, verifique se existe outra conta com privilégios administrativos na instância do SQL Server.
Alterar portas padrão do SQL Server
Todos sabemos que o SQL Server usa a porta 1433 para quaisquer solicitações e comunicações de clientes. Como essa configuração é de domínio público, os hackers podem direcionar essa configuração para se conectar à sua instância do SQL Server.
Você pode alterar a porta do SQL Server seguindo as etapas abaixo.
- Faça login na máquina de destino onde o SQL Server está instalado.
- Inicie o Gerenciador de configuração do servidor ferramenta.
- Expandir a Configuração de rede do SQL Server nó no painel esquerdo e selecione Protocolos para que a instância do SQL Server seja configurada.
- No painel direito, clique com o botão direito do mouse no nome do protocolo TCP/IP e escolha Propriedades .
- Nas Propriedades TCP/IP caixa de diálogo, selecione os Endereços IP aba. Há uma entrada correspondente para cada endereço IP atribuído ao servidor.
- Limpe os valores das Portas dinâmicas TCP e Porta TCP para cada endereço IP, exceto para os endereços IP em IPAll .
- No IPAll seção para cada instância, insira uma nova porta na qual você deseja que o SQL Server escute.
- Clique em Aplicar e reinicie os Serviços do SQL Server.
Desativar o serviço de navegador SQL
Os serviços do SQL Server Browser são instalados com a instalação da instância do SQL Server. Este serviço redireciona sua conexão para a porta na qual o SQL Server está sendo executado. Se esse serviço estiver em execução, será um passo mais fácil para os invasores, pois permite que eles se conectem ao SQL Server sem passar o número da porta. Portanto, é melhor desabilitar esse serviço depois de alterar a porta.
Desativar opção xp_cmdshell
O SQL Server oferece um xp_cmdshell de procedimento armazenado estendido para executar comandos do sistema operacional do SQL Server. Ele deve ser desativado para evitar qualquer risco de segurança. Você pode encontrar esse procedimento armazenado estendido nas configurações de nível de servidor ou executando o procedimento armazenado T-SQL sp_configure. Você pode executar as instruções T-SQL abaixo para desabilitar essa configuração.
-- Enable advanced options to display configure xp_cmdshell
sp_configure 'show advanced options', '1'
RECONFIGURE
-- Disable xp_cmdshell
sp_configure 'xp_cmdshell', '0'
RECONFIGURE
GO
Usar criptografia ou mascaramento de dados
O SQL Server oferece várias metodologias de criptografia para proteger seus dados. A criptografia é recomendada se seus usuários acessarem dados pela rede pública. O SQL Server tem várias opções para implementar o conjunto certo de criptografias, considerando sua necessidade de negócios. Esta é a lista de opções de criptografia ou mascaramento de dados que podemos usar para proteger nossos dados:
- TDE (Criptografia de Dados Transparente)
- Proteja os dados usando chaves de criptografia
- Sempre criptografar
- Mascaramento dinâmico de dados
Remover BUILTIN\Administrators do SQL Server
Devemos sempre remover a conta BUILTIN\Administrators da instância do SQL Server para restringir o acesso indesejado à instância do banco de dados. A melhor maneira é conceder aos usuários acesso ao SQL Server individualmente. Você também pode adicionar um grupo de pessoas no grupo Windows e conceder a elas acesso ao SQL Server. Você pode usar a instrução T-SQL abaixo para descartar esse logon da instância do SQL Server.
Você também pode descartar esse logon usando a GUI por meio do SQL Server Management Studio. Você só precisa se conectar à sua instância do SQL Server e expandir a pasta de segurança no nível da instância. Aqui você pode clicar com o botão direito do mouse neste logon para removê-lo da instância do SQL Server.
--DROP Login
DROP LOGIN [BUILTIN\Administrators]
Senhas fortes e privilégios de usuário adequados
Sempre atribua direitos adequados a cada usuário, eles devem ser mínimos, considerando sua função ao acessar os bancos de dados. Além disso, nunca devemos usar senhas fracas para nenhum login ou o mesmo login e senha. Sempre use a política de senha para qualquer logon SQL.
Configurar a auditoria de login do SQL Server
O SQL Server forneceu um recurso de auditoria para capturar detalhes sobre todos os logons com falha e bem-sucedidos. Esta é uma configuração muito útil se você deseja auditar quem está se conectando ou tentando se conectar aos seus bancos de dados. Podemos configurar o alerta do SQL Server que enviará uma notificação por email em cada logon com falha e bem-sucedido no SQL Server. Você pode seguir as etapas abaixo para habilitar a auditoria de login.
- Conecte-se à instância de destino do SQL Server no SQL Server Management Studio
- Clique com o botão direito do mouse no nome da instância do SQL Server e clique em Propriedades .
- Clique em Segurança guia no painel do lado esquerdo. Você receberá auditoria de login no painel do lado direito, conforme mostrado na primeira captura de tela deste artigo
- Escolha a opção desejada e feche as Propriedades do servidor página
- Reinicie o serviço SQL Server para aplicar essa alteração
Remover logins não usados do SQL Server
Sempre fique de olho em seus logins do SQL Server. Você deve estar atento ao remover todas as contas de login que não estão mais em uso. Eu sei que é difícil gerenciar manualmente, mas você pode configurar um alerta de email para enviar um email sobre todos os logons do SQL Server e seus privilégios.
Conclusão
Expliquei algumas das possíveis configurações que podemos aplicar para proteger nossos bancos de dados contra ameaças externas. Considere todos os pontos acima ao implantar as políticas de proteção de banco de dados no ambiente.
Por favor, compartilhe este artigo e dê seus comentários na seção de comentários para que possamos melhorar.