- Auditing in SQL Server (Server Audit)
- How to Create an Audit to Monitor Job Creation, Modification, and Deletion in SQL Server
- How to create an Audit trigger to log object manipulation in SQL Server
- SQL Server - How to implement login auditing and control (Logon Trigger)
- Monitoring DDL and DCL operations using SQL Server's fn_trace_gettable
- Using the standard SQL Server trace to audit events (fn_trace_gettable)
- SQL Server – Permissions and privileges audit trigger at database and instance level (GRANT and REVOKE)
- SQL Server - How to monitor and audit data changes in tables using Change Data Capture (CDC)
- SQL Server 2016 - How to "time travel" using the Temporal Tables feature
- SQL Server - How to use auditing to map actual required permissions on a user
- SQL Server - Trigger to prevent and prevent changes in tables
- SQL Server - How to Create a Data Change History for Your Tables (Audit Logs)
- SQL Server - How to avoid brute force attacks on your database
- SQL Server – Security Checklist – An SP with over 70 security items to validate your database
- SQL Server - How to know the last login date of a user
- SQL Server - How to avoid and protect yourself from Ransomware attacks like WannaCry on your database server
- SQL Server - Watch out for the securityadmin server role! Using elevation of privileges to become sysadmin
- SQL Server – How to avoid SQL Injection? Stop using Dynamic Query like EXEC(@Query). Now.
- SQL Server - Understanding the risks of the TRUSTWORTHY property enabled on a database
- SQL Server - Password Policies, Password Expiration, Mandatory Password Change and Login Blocking after several Attempts
- SQL Server - How to create a login audit using instance logs
Hey guys!
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