Restringir o acesso ao administrador do Windows

11

Como as práticas recomendadas do SQL Server dizem, " o modo de autenticação do Windows é mais seguro que a autenticação do SQL ". E agora eu quero saber: existe uma maneira de proteger o SQL Server do usuário com direitos de administrador do Windows?

tsionyx
fonte
4
6ª Lei Imutável de Segurança: "Um computador é tão seguro quanto o administrador é confiável". As leis 2 e 10 também são relevantes aqui. technet.microsoft.com/library/cc722487.aspx
Dan é Fiddling por Firelight

Respostas:

15

Não.

Se um usuário for um administrador do Windows de uma caixa, suponha que ele possua tudo na caixa (incluindo o SQL Server). Com os direitos de administrador do Windows, é trivial ignorar qualquer proteção direcionada que você aplicar (como um gatilho de logon que identifique seu nome de usuário), personificando outra pessoa (inclusive NT AUTHORITY\SYSTEM, que obtém direitos de administrador de fato em todas as instâncias locais do SQL Server ). A auditoria também não ajudará muito, porque eles podem facilmente desativá-la, mas você deve tê-la por precaução.

Se você não confiar em alguém, não dê a eles direitos de administrador do Windows, ponto final.

Aaron Bertrand
fonte
2
+1 nada reivindicando a negar BUILTIN \ Administradores é óleo de cobra
Remus Rusanu
1

Não, não é possível impedir completamente que os administradores locais obtenham sysadminacesso a uma instância do SQL Server.

Se a instância for reiniciada no modo de usuário único , o SQL Server será codificado para permitir sysadminprivilégios de administrador local , mesmo que não haja um logon explícito. A razão disso existir é para fins de recuperação, pois é possível bloquear-se de uma instância.

Dito isto, restringir o acesso enquanto a instância está sendo executada no modo multiusuário (sem interrupções de serviço) não é tão difícil. Como Aaron mencionou, os administradores locais podem representar NT AUTHORITY\SYSTEM, que por padrão possui um sysadminlogon de nível criado no SQL Server 2008. Isso pode ser explorado para recuperar o sysadminacesso enquanto o servidor está em execução. (Observação: no SQL Server 2012, esse logon não é mais a sysadmin.) Não sei exatamente para que serve esse logon (atualizações / hot fixes / etc., Presumivelmente), mas acho que é seguro desativá-lo, exceto durante esses eventos. Se não houver outros logons personificáveis, isso deve ser suficiente para negar o acesso. Novamente, apenas se a instância estiver em execução, ininterruptamente .

Jon Seigel
fonte
0

Por padrão no SQL 2008 e 2012, não há acesso padrão para administradores do Windows em um SQL Server. Para que um administrador do Windows (ou seja, alguém que seja um administrador de domínio ou um administrador local) tenha acesso, seu logon precisa ter acesso explícito ou o grupo ao qual ele pertence, além de direitos no próprio SQL Server. Ao configurar a instância, você deve especificar um logon ou grupo do Active Directory como administrador, mas esse logon / grupo pode ser qualquer pessoa em seu domínio.

No SQL 2005, havia um BUILTIN\Administratorsgrupo com direitos de acesso sysadmin. Este grupo permitiria aos administradores locais o administrador de sistemas acessar o SQL Server. Esse grupo pode ser removido do SQL Server e foi considerado uma prática recomendada.

Dito isto, não há como impedir que o Windows (local ou domínio) afete o servidor em que o SQL Server mora. Isso significa que os administradores ainda podem afetar serviços e configurações no nível do sistema operacional, alterar a segurança do diretório e outras tarefas no nível do sistema operacional. É por isso que eles são administradores do Windows.

Em geral, você deve confiar em seus administradores, SQL Server e Windows. Embora os administradores do Windows não possam executar tarefas ou acessar dados (por padrão) no próprio SQL Server, eles ainda controlam o ambiente em que o SQL Server vive. Você precisa ter cuidado com quem designa para essas funções.

Mike Fal
fonte
3
Não tenha muito conforto nisso - enquanto as alterações feitas pela Microsoft o tornam um pouco mais seguro, ainda não está nem perto de ser à prova de balas. É trivial para um administrador local representar e fazer seus lances diretamente para qualquer instância local do SQL Server - portanto, você precisa se preocupar com mais do que apenas influência indireta no nível do sistema operacional.
Aaron Bertrand
Eu tenho que perguntar - que circunstâncias justificam conceder acesso de administrador de usuário não confiável a um servidor?
Mark Allen
Pessoalmente, não acho. Como muitas outras pessoas declararam em outras respostas (e não tão claramente aqui), você deve confiar nos seus administradores. E se você não confiar neles, não os torne administradores.
Mike Fal