Um nome de conta conhecido como sa representa uma ameaça à segurança do banco de dados? Ao usar a autenticação do Windows no SQL Server, ela impõe a mesma diretiva de senha (se foi definida para dizer bloqueio de conta após 5 vezes)?
Um nome de conta conhecido como sa representa uma ameaça à segurança do banco de dados? Ao usar a autenticação do Windows no SQL Server, ela impõe a mesma diretiva de senha (se foi definida para dizer bloqueio de conta após 5 vezes)?
Respostas:
Um nome de conta conhecido como sa representa uma ameaça à segurança do banco de dados?
Uma conta de usuário "god" com um nome conhecido é geralmente considerada uma idéia pior do que um usuário god com um nome menos conhecido. Isso torna os ataques de força bruta um pouco mais fáceis, pois o invasor precisa adivinhar a senha e não o nome de usuário e a senha.
Também ter um usuário deus de qualquer maneira pode ser perigoso. Geralmente, é melhor ter usuários específicos com direitos específicos para o que eles precisam fazer. Esse tipo de segurança baseada em privilégios é mais fácil de implementar a partir do zero do que ser adaptado posteriormente ao seu ambiente.
Desabilitar sa e conceder a usuários específicos direitos de administrador específicos conforme necessário no SQL server é essencialmente a mesma recomendação que desabilitar root
e distribuir direitos de administrador conforme necessário via sudo
Linux e similares. Você sempre pode reativar sa
uma vez conectado diretamente à máquina com privilégios adequados, caso algo dê errado e você acaba com todos os direitos que seus usuários precisam para operar (e corrigir o problema) da mesma maneira que pode projetar o acesso root a um Linux box se você tiver acesso físico à caixa - portanto, desativar a conta não é uma arma mágica (mas uma vez que um invasor tenha acesso físico à sua máquina ou acesso administrativo completo via RDC ou SSH, todas as apostas serão desativadas).
Ao usar a autenticação do Windows no SQL Server, ela impõe a mesma diretiva de senha (se foi definida para dizer bloqueio de conta após 5 vezes)?
Ao usar a autenticação integrada do Windows, o servidor SQL não tem controle sobre os bloqueios de conta e tal - apenas mapeia um usuário do Windows para um usuário do SQL e solicita que o SO ateste o fato de que o usuário forneceu credenciais apropriadas. Para usuários humanos interativos, isso significa que qualquer bloqueio ocorreria quando o usuário tentasse se autenticar no Windows, e não quando eles efetuassem login no SQL Server.
Não é uma má idéia fazê-lo para que o usuário administrador padrão (admin / root / postgres / sa / etc) não exista realmente no seu sistema. Você sempre pode criar uma conta privilegiada com um nome diferente.
Se nada mais, as pessoas que tentam explorar o seu sistema não têm um tempo tão fácil como se estivessem trabalhando às cegas (por exemplo, injeção de sql sem ter um shell interativo nem ser capaz de ver a saída direta de seus comandos)
Quanto aos bloqueios de conta - se alguém conseguiu ir longe o suficiente para tentar entrar na sua máquina, a menos que você permita especificamente o login direto dos usuários, você já perdeu a batalha. Pessoalmente, eu não sou a favor de bloqueios na maior parte, porque isso permite que alguém crie uma negação de serviço se eles conseguirem obter o nome de qualquer um dos seus usuários. (e tê-los bloqueado o super usuário? não é divertido).
Eu recomendo examinar os Benchmarks da CIS ... eles não os têm para todos os bancos de dados, mas eles têm recomendações para Oracle, MS SQL, DB2 e MySQL. Se você estiver executando outra coisa, ainda vale a pena examinar os tipos gerais de coisas que eles recomendam.
Eu não vi mais ninguém mencionar isso, então eu vou adicioná-lo. Com o SQL Server 2005+, se o servidor fizer parte de um domínio e o domínio tiver uma política de senha, você poderá habilitar a política de senha a ser aplicada nos logons do SQL. Isso inclui requisitos de complexidade de senha e a capacidade de forçar alterações de senha no login.
Observe que às vezes isso pode causar problemas em alguns instaladores de software que não foram atualizados para funcionar com o SQL 2005+ e criar logins do SQL com senhas não seguras.
Existem dois modos de autenticação usados no SQL Server: autenticação do Windows e modo misto (habilita a autenticação do Windows e a autenticação do SQL Server)
O primeiro modo é menos vulnerável a ataques de força bruta, pois é provável que o invasor tenha um bloqueio de login (o recurso de Diretiva de Bloqueio de Conta) após um número finito de tentativas de ataque. Todo ambiente de produção, se estiver usando o modo de autenticação do Windows, deve utilizar o recurso de política de bloqueio, pois impossibilita ataques de força bruta
Quando se trata de vulnerabilidade de ataque de força bruta de autenticação do SQL Server, a situação não é tão favorável. A Autenticação do SQL Server não possui recursos que permitem detectar quando o sistema está sob um ataque de força bruta. Além disso, o SQL Server é muito responsivo quando se trata de validar as credenciais de autenticação do SQL Server. Ele pode lidar facilmente com tentativas repetidas, agressivas e de força bruta, sem desempenho geral negativo que possa indicar tais ataques. Isso significa que a autenticação do SQL Server é um alvo perfeito para quebra de senha por meio de ataques de força bruta
Além disso, os métodos de força bruta estão evoluindo com cada método de complexidade de criptografia e senha recém-introduzido. Por exemplo, os invasores que usam tabelas arco-íris (as tabelas pré-calculadas para reverter os valores de hash criptográfico para todas as combinações possíveis de caracteres) podem facilmente e rapidamente quebrar qualquer senha com hash
Para proteger seu SQL Server contra ataques de força bruta, considere o seguinte:
A SA (e outros nomes de contas conhecidos) são pontos bem conhecidos que os hackers podem atacar. Algumas das Oracle eram mal documentadas e, portanto, as senhas padrão nem sempre eram alteradas. Depois de controlar a conta SA no SQL Server, você controla o servidor em que está sendo executado e pode executar qualquer código ou instalar o que desejar. Nos meus dias de caubói, lembro de não ter permissão (precisava de papelada que não iria preencher) para instalar um controle ActiveX em um servidor da web que também hospedava o SQL Server - então usei xp_cmdshell para copiar e instalar o controle .