- Auditoria no SQL Server (Server Audit)
- Como criar uma auditoria para monitorar a criação, modificação e exclusão de Jobs no SQL Server
- Como criar uma trigger de Auditoria para logar a manipulação de objetos no SQL Server
- SQL Server – Como implementar auditoria e controle de logins (Trigger de Logon)
- Monitorando operações de DDL e DCL utilizando a fn_trace_gettable do SQL Server
- Utilizando o trace padrão do SQL Server para auditar eventos (fn_trace_gettable)
- SQL Server – Trigger de auditoria de permissões e privilégios a nível de database e instância (GRANT e REVOKE)
- SQL Server – Como monitorar e auditar alterações de dados em tabelas utilizando Change Data Capture (CDC)
- SQL Server 2016 – Como “viajar no tempo” utilizando o recurso Temporal Tables
- SQL Server – Como utilizar auditoria para mapear permissões necessárias reais em um usuário
- SQL Server – Trigger para prevenir e impedir alterações em tabelas
- SQL Server – Como criar um histórico de alterações de dados para suas tabelas (logs para auditoria)
- SQL Server – Como evitar ataques de força bruta no seu banco de dados
- SQL Server – Checklist de Segurança – Uma SP com mais de 70 itens de segurança para validar seu banco de dados
- SQL Server – Como saber a data do último login de um usuário
- SQL Server – Como evitar e se proteger de ataques de Ransomware, como WannaCry, no seu servidor de banco de dados
- SQL Server – Cuidado com a server role securityadmin! Utilizando elevação de privilégios para virar sysadmin
- SQL Server – Como evitar SQL Injection? Pare de utilizar Query Dinâmica como EXEC(@Query). Agora.
- SQL Server – Entendendo os riscos da propriedade TRUSTWORTHY habilitada em um database
- SQL Server – Políticas de Senhas, Expiração de Senha, Troca de Senha Obrigatória e Bloqueio de Login após N tentativas
- SQL Server – Como criar uma auditoria de logins utilizando os logs da instância
Fala pessoal!
Nesse artigo eu gostaria de compartilhar com vocês um projeto que venho desenvolvendo desde novembro de 2018 e hoje conta com mais de 4.500 linhas de código, que é um Checklist de Segurança bem completo (provavelmente, o mais completo e abrangente que você encontrará na Internet), contando com mais de 70 itens de Segurança para validar seu banco de dados, passando pela parte de configurações e parâmetros, permissões, objetos de programação e muito mais!
Depois de tanto ver as empresas, desenvolvedores (e às vezes, os próprios DBA’s) negligenciarem a parte de segurança, onde vemos ambientes em que a aplicação utiliza o usuário “sa”, encontramos milhares de tentativas de conexão com senha incorreta e ninguém faz nada, ambientes SEM BACKUP e tantos outros absurdos, resolvemos criar uma forma muito prática e fácil de rapidamente ter uma visão geral de como está a segurança da instância, num formato amigável e com informações técnicas ao mesmo tempo, e que permita facilmente exportar para um Excel e demonstrar para o cliente os vários problemas encontrados, o impacto que issso pode causar no ambiente e como resolver.
Conheçam nesse artigo, a solução definitiva para a grande maioria dos problemas de segurança do seu SQL Server.
Os resultados das verificações estão organizados da seguinte forma:
- Código: Apenas um número único para facilitar a identificação do item de verificação, inclusive quando eu liberar a versão em inglês (spoiler!!)
- Categoria: Uma forma de agrupar as verificações de acordo com uma categoria lógica que imaginei para essas validações
- O que é verificado: Título da verificação, que é um resumo do que esse item está validando no banco de dados
- Avaliação: É o resultado da validação. Ela informa se o item passou na validação (OK), se é apenas um item informativo ou se identificou um POSSÍVEL problema
- Descrição do Problema: Uma breve explicação sobre o motivo desse item estar sendo verificado e qual o risco de segurança que ele pode nos trazer
- Detalhamento da Verificação: Detalhes mais técnicos e específicos do que está sendo verificado na instância
- Sugestão de Correção: Algumas orientações de como corrigir ou contornar o possível problema identificado pela Stored Procedure
- Resultados da Validação: XML que retorna os registros que causaram a falha da validação e os artefatos identificados (alguns itens são limitados a TOP(N) registros, pois podem tem muitos registros retornados no XML)
- URL de Referência: Link de algum artigo ou documentação que possa agregar ou ajudar no entendimento desse item de verificação
Se a desculpa para não tratar a parte de segurança na sua empresa era não ter uma forma prática e fácil de identificar as brechas, não sabia como resolver ou não sabia quais eram os problemas de segurança, suas desculpas acabaram HOJE! Nunca mais isso será um dificuldade para você.
Esse é um projeto que utilizo em vários clientes aqui na Fabrício Lima – Soluções em BD, um das melhores consultorias de banco de dados e BI do Brasil, e é o resultado de bastante estudo, testes e discussões técnicas com vários grandes profissionais da área de dados e depois de conversar com o Fabrício, resolvemos liberar isso de forma GRATUITA para toda a comunidade técnica.
Depois de tanto utilizar a sp_Blitz, do mito Brent Ozar, sempre achei incrível o quanto ela era prática e simples para identificar vários ítens de performance, manutenção, auditoria e alguns ítens de segurança. Pensando em algo tão prático quanto, me inspirei nessa ideia para desenvolver a stpChecklist_Seguranca, tentando entregar para vocês algo bem “versão F5”.
Esse não é um projeto do Dirceu ou do Fabrício, e sim de vocês. Por este motivo, estou liberando o código dessa Stored Procedure no Github, para que todos vocês possam baixar, utilizar em seus ambientes e ajudar a deixá-la cada vez melhor através de commit’s e pull requests para trazer novos recursos e correções:
– https://github.com/dirceuresende/checklist_seguranca (código-fonte)
Não deixem de acompanhar os meus artigos de segurança! Esse é um tema cada vez em alta no Brasil, especialmente depois da LGPD (Lei Geral de Proteção de Dados), e por este motivo, lancei o curso Segurança no SQL Server – Módulo 1, onde vou passar por cada um desse itens de segurança e explicar nos mínimos detalhes, com exemplos exclusivos e demonstrar como eles podem prejudicar a instância e como podemos tratá-los.
Chega de ficar pesquisando em vários sites e dezenas de artigos e manuais de boas práticas em que as pessoas te falam que “você deve desativar isso”, mas sem explicar o por quê de forma convincente e sem argumentos técnicos de como isso pode prejudicar seu ambiente.
Espero que vocês gostem dessa Procedure, um grande abraço pra vocês e até a próxima!
Bom dia, baixei a SP estou achando fantástico o trabalho realizado ? ! Ela dá suporte a qual banco? Estou testando no SqlServerExpress 2008 e me retornou o erro abaixo!
RegQueryValueEx() retornou erro 2, ‘O sistema não pode encontrar o arquivo especificado.’
Mensagem 22001, Nível 1, Estado 1
Warning: Null value is eliminated by an aggregate or other SET operation.
Configuration option ‘show advanced options’ changed from 0 to 1. Run the RECONFIGURE statement to install.
Configuration option ‘Ole Automation Procedures’ changed from 0 to 1. Run the RECONFIGURE statement to install.
Configuration option ‘Ole Automation Procedures’ changed from 1 to 0. Run the RECONFIGURE statement to install.
Configuration option ‘show advanced options’ changed from 1 to 0. Run the RECONFIGURE statement to install.
Mensagem 0, Nível 11, Estado 0, Linha 6291
Erro grave no comando atual. Os resultados, se houver algum, deverão ser descartados.
Boa tarde Dirceu!
Gostaria de agradecer ao trabalho incrível que você e o Fabrício realizam e por nos ajudar também com o repasse do conhecimento.
VCS SÃO FERAS!
Obrigado pelas palavras e elogios. Fazemos realmente por paixão em compartilhar conhecimentos.
Realmente é um grande prazer fazer isso e fico feliz em saber que te ajudamos de alguma forma 🙂
Através dessa procedure, consigo auditar transações DML nas tabelas também?
Ei Michelle, tudo bem ?
Essa SP não tem auditoria, mas você pode fazer isso utilizando:
– Auditoria (https://www.dirceuresende.com/blog/auditoria-sql-server-audit-dml-ddl/)
– CDC (https://www.dirceuresende.com/blog/sql-server-como-monitorar-e-auditar-alteracoes-de-dados-em-tabelas-utilizando-change-data-capture-cdc/)
– Trigger (https://www.dirceuresende.com/blog/sql-server-como-criar-um-historico-de-alteracoes-de-dados-para-suas-tabelas-logs-auditoria/)
TOP Demais Dirceu!!! Com certeza isso irá ajudar muita gente a descobrir vários problemas nos seus ambientes para corrigir e se prevenir de ataques! Mandou bem demais!!
Obrigado, Luiz.
Vamos tornar os bancos sql server mais seguros!! Rs