Melhorando a vulnerabilidade do seu ambiente

Recentemente estive envolvido em um projeto da equipe de segurança para melhorar a vulnerabilidade do ambiente SQL Server e a questão de segurança vai muito além de permissões de acesso a instancia e ao banco de dados.

Vou listar algumas dicas que podem melhorar a vulnerabilidade de seu ambiente.

  • Instalar o ultimo Service Pack e Hotfixes disponível: Verificar se o SQL Server possui as últimas atualizações de segurança e caso não possua, providencie a atualização. Alguns sites indicam qual a versão mais nova do SQL Server ( http://www.sqlteam.com/article/sql-server-versions e http://www.sqlsecurity.com/faqs-1/sql-server-versions)
  • Restringir o acesso aos arquivos do SQL Server: restringir o acesso às pastas do SQL Server que contém datafiles e arquivos de sistema. Nestas pastas deverão conter permissão apenas o grupo de DBAs, o grupo de administradores do sistema operacional, o usuário que inicializa os serviços do SQL e o usuário SYSTEM.
  • Restringir o acesso as chaves de registros do SQL Server: restringir o acesso ao registro do SQL Server. Nas chaves que fazem referência ao SQL Server deverá conter permissão apenas o grupo de DBAs, o grupo de administradores do sistema operacional, o usuário que inicializa os serviços do SQL e o usuário SYSTEM.
  • Habilitar a Auditoria de Login: habilitar a auditoria de sucesso e falha de conexões.
  • Aumentar a quantidade de ErrorLogs: aumentar a quantidade de ErrorLogs do SQL Server para um numero considerável para seu ambiente e facilitará uma análise de troubleshooting. Uma quantidade que tenho utilizado é de 30 arquivos.
  • Configurar um senha forte para conta SA: Criar uma senha forte para o usuário SA. Um bom exemplo é criar uma senha com mais de 14 caracteres alfa numéricos e caracteres especiais.
  • Usar um nome diferente para conta ‘sa’: alterar o nome do usuário “sa” para outro nome. O usuário “sa” é conhecido mundialmente é um dos primeiros pontos de ataque na sua instancia.
  • Criar um grupo administrador para o SQL Server: criar um grupo de usuários para ter acesso de administrador no SQL Server. Este grupo deve estar obrigatoriamente criado no AD e com os DBAs associados a ele.
  • Usar uma porta TCP diferente para o SQL Server: Mudar a porta padrão (1433) do SQL Server.
  • Desabilitar xp_cmdshell Extended Stored Procedure: Desabilitar a Store Procedure “xp_cmdshell”. Por padrão já vem desabilitada nas novas versões do SQL Server, mas é sempre bom validar essa opção.
  •  Habilitar a opção ‘Enforce password policy’: Habilitar a opção “Enforce password policy” faz com que SQL Server possa usar o mecanismo de senha do Windows.
  • Habilitar a opção ‘Enforce password expiration’: Habilitar a opção “Enforce password expiration” faz com que o SQL Server gerencie o tempo de vida de uma senha.
  • Habilitar criptografia de rede com SSL: Alterar a opção “ForceEncryption” para “Yes” irá criptografar os dados que são transmitidos através de uma rede entre uma instância do SQL Server e um aplicativo cliente.
  • Remover usuários desnecessários da role ‘System Administrator’ role: Deve-se verificar se os usuários realmente necessitam deste acesso. Em caso de algum usuário não necessitar do privilégio, deverá ser removido o privilégio. Lembre-se de conceder os privilégios necessários para que o usuário consiga trabalhar normalmente.
  • Remover o grupo BUILT-IN/Administrators: Excluir o login BUILT-IN/Administrators do SQL Server. É muito importante que ao remover este item, seja incluído um novo grupo de DBAs no SQL Server. Dessa maneira administradores do sistema operacional não terão privilégios no SQL Server.
  • Remover ‘Server Permissions’ dos usuários desnecessários: Remover privilégios de servidor de usuários que não necessitam dos mesmos. Por algum motivo os usuários podem ter permissões elevadas e é uma boa hora para efetuar uma limpeza.  
  • Remover usuários desnecessários do grupo MSSQLServer: Remover usuários que não deveriam estar neste grupo.
  • Remover usuários desnecessários do grupo SQLAgent: Remover usuários que não deveriam estar neste grupo.

Se tem você tem mais alguma dica de segurança, por favor compartilhe!!

This is Tiago Balabuch's website, and this is a bit of copy about him. He is enthusiast, fascinated, passionate, fanatic by SQL Server and in the off-hours a Data Engineer who loves what he does and he is traveling in the cloud and surfing on the wave of the moment called Azure! Originally from Brazil and with encouragement from family and friends, Tiago moved to Europe in 2017 where lives in Ireland. In addition to being a data engineer, he is also active speaker in the SQL PASS events and keeps up to date on the key technologies and technical certifications. Tiago hold these certification MCT, MCSE - Data Management and Analystics, MCSA - SQL Server 2016/2014/2012. Simply psychedelic and manic he is just one more freak who likes SQL Server and its new features ...

Responda