O documento discute boas práticas de segurança no acesso a dados em aplicações Web, abordando tópicos como injeção de SQL, acesso indevido a informações e uso de tokens criptografados (JWT). Também apresenta recursos de segurança na nuvem da Microsoft Azure, como o Azure App Service, Azure Web App for Containers, Azure SQL e Azure Key Vault.
.NET 5, C# 9.0 e outras novidades | TDC São Paulo Online 2020
Boas práticas de segurança no acesso a dados em aplicações Web - DBA BRASIL 4.0
1. Boas práticas de segurança no acesso a
dados em aplicações Web
Renato Groffe (Microsoft MVP, MTAC)
2.
3. Renato Groffe
• Microsoft Most Valuable Professional (MVP)
• Multi-Plataform Technical Audience Contributor (MTAC)
• Mais de 15 anos de experiência na área de Tecnologia
• Autor Técnico e Palestrante
• Um dos organizadores do Canal .NET
5. Agenda
• Segurança da Informação e Desenvolvimento Web
• Um pouco de Segurança no SQL Server
• JSON Web Tokens (JWT): protegendo APIs REST
• Recursos de Segurança na nuvem: Microsoft Azure
• Exemplos práticos
7. Desenvolvedores e a questão da Segurança
• Nunca vai acontecer comigo
• A aplicação é pequena, não há muitos
usuários
• O pessoal de TI é confiável
• Nossos usuários são leigos demais
8. E se essas “verdades” falharem?
• Injeção de SQL (SQL Injection)
• Acesso em produção com permissões
especiais
• Acesso indevido a informações
confidenciais
9. O que torna possível a injeção de SQL?
• Concatenação de comandos e parâmetros em strings
• Descuidos com a manipulação de query strings em aplicações
Web
13. Diminuindo o impacto – Injeção de SQL
• Evitando a concatenação de parâmetros em
comandos SQL
• Criar um usuário para a aplicação no servidor
de banco de dados, retirando direitos de de
execução de comandos do tipo DDL (CREATE,
DROP, ALTER)
• Utilizando soluções ORMs como Entity
Framework e NHibernate
14. Evitando o acesso indevido a informações
• Criptografia de arquivos de configuração
• Armazenar segredos em alguma solução específica
(Azure Key Vault, por exemplo)
• Implementar mecanismos e políticas de controle de
acessos em sites
• JWT (JSON Web Token) em APIs REST
• HTTPS em aplicações Web sempre (sites, serviços,
APIs)
15. E se essas “verdades” falharem?
• Injeção de SQL (SQL Injection)
• Acesso em produção com permissões
especiais
• Acesso indevido a informações
confidenciais
16. SQL Server e Dynamic Data Masking
• Mascarar visualização de informações
sensíveis
• Presente desde a versão 2016
• Controle de acordo com permissões de um
usuário
• Extremamente útil na produção de relatórios
17. JWT (JSON Web Tokens)
• Uso de tokens criptografados
• Bearer Authentication
• Emprega HMAC ou RSA
• Tecnologia multiplataforma
• Tokens formados por 3 partes (Header,
Payload e Signature)
20. JWT (JSON Web Tokens)
• Uso de tokens criptografados
• Bearer Authentication
• Emprega HMAC ou RSA
• Tecnologia multiplataforma
• Tokens formados por 3 partes (Header,
Payload e Signature)
22. Hospedagem de Aplicações
Alternativas do Microsoft Azure que
oferecem o uso de HTTPS por default:
• Azure App Service
• Azure Web App for Containers
26. Azure Key Vault
• Armazenamento de
configurações sensíveis
• Acesso a dados armazenados
mediante concessão de acesso
• Integração com Azure Active
Directory