Quais ameaças à segurança a conta SA e outros nomes conhecidos representam para a segurança?

10

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)?

Sevki
fonte
Você pode melhorar sua pergunta? 1) Faça do título uma pergunta. 2) Você pode restringir o escopo da pergunta? Você está interessado em ataques de força bruta ou nas vulnerabilidades de contas conhecidas. Em que área de segurança você está interessado?
Brian Ballsun-Stanton
Falo mais sobre isso em um livro que escrevi que deve ser publicado em cerca de um mês. Coloquei isso separadamente, pois a compra do livro não faz parte da resposta. Amazon.com
Secure
@ Mrdenny, você poderia nos dar algumas citações úteis do livro? Ela pode ajudar a responder a sua pergunta, e citando-o como uma fonte é bastante aceitável :)
Brian Ballsun-Stanton
@ Brian Vou ter que verificar o contrato para ver se consigo fazer isso. Talvez eu tenha que parafrasear, mas verei o que posso fazer.
mrdenny

Respostas:

11

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 roote distribuir direitos de administrador conforme necessário via sudoLinux e similares. Você sempre pode reativar sauma 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.

David Spillett
fonte
4

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.

Joe
fonte
4

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.

AndrewSQL
fonte
3

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:

  • Não use o modo de autenticação do SQL Server - force o invasor a acessar o bloqueio de logon via autenticação do Windows
  • Caso você precise usar o modo de autenticação do SQL Server, desative ou remova o logon do SA - dessa maneira o invasor deve adivinhar e emparelhar o nome de usuário e a senha
Ivan Stankovic
fonte
1

A conta sa, quando ativada, pode fazer qualquer coisa no SQL Server. Se um invasor entrar nessa conta, ele poderá fazer qualquer coisa na instância do SQL Server (e possivelmente no SO host) que desejar.

Mrdenny
fonte
1

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 .

Tangurena
fonte
11
A senha padrão do Oracle SYS é change_on_install e você ficaria surpreso com quantas pessoas não!
Gaius