SlideShare a Scribd company logo
1 of 29
Boas práticas de segurança no acesso a
dados em aplicações Web
Renato Groffe (Microsoft MVP, MTAC)
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
Renato Groffe - Contatos
/renatogroffe /in/renatogroffe
/canaldotnet
/renatogroffe
/canaldotnet
/renatogroff
https://medium.com/@renato.groffe/
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
Segurança da Informação e Desenvolvimento Web
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
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
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
O que há de errado aqui (.NET + Dapper)?
O que há de errado aqui (.NET + Dapper)?
Recomendável ao se utilizar Dapper
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
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)
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
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
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)
JWT (JSON Web Tokens) - Utilização
Um exemplo de token
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)
Recursos de Segurança na nuvem – Microsoft Azure
Hospedagem de Aplicações
Alternativas do Microsoft Azure que
oferecem o uso de HTTPS por default:
• Azure App Service
• Azure Web App for Containers
Azure App Service - Suporte
Azure Web App for Containers - Suporte
Azure SQL
•Gerenciamento de usuários da
mesma forma que em versões
on premise
•Acesso por faixas de IP
Azure Key Vault
• Armazenamento de
configurações sensíveis
• Acesso a dados armazenados
mediante concessão de acesso
• Integração com Azure Active
Directory
Dúvidas?
https://medium.com/@renato.groffe/
Obrigado!
https://medium.com/@renato.groffe/
Boas práticas de segurança no acesso a dados em aplicações Web - DBA BRASIL 4.0

More Related Content

What's hot

Direct Web Remoting Sun Tech Days2007
Direct Web Remoting Sun Tech Days2007Direct Web Remoting Sun Tech Days2007
Direct Web Remoting Sun Tech Days2007
Handerson Frota
 

What's hot (11)

Monitorando Bancos Oracle - 2º ZABBIX MEETUP DO INTERIOR-SP
Monitorando Bancos Oracle - 2º ZABBIX MEETUP DO INTERIOR-SPMonitorando Bancos Oracle - 2º ZABBIX MEETUP DO INTERIOR-SP
Monitorando Bancos Oracle - 2º ZABBIX MEETUP DO INTERIOR-SP
 
Segurança em desenvolvimento de software
Segurança em desenvolvimento de softwareSegurança em desenvolvimento de software
Segurança em desenvolvimento de software
 
Introducão a Web Applications Firewalls
Introducão a Web Applications FirewallsIntroducão a Web Applications Firewalls
Introducão a Web Applications Firewalls
 
API - Security and speed at layer 7 integrated in zabbix.
API - Security and speed at layer 7 integrated in zabbix.API - Security and speed at layer 7 integrated in zabbix.
API - Security and speed at layer 7 integrated in zabbix.
 
AZURE BLOCKCHAIN
AZURE BLOCKCHAINAZURE BLOCKCHAIN
AZURE BLOCKCHAIN
 
Apresentação - Microsoft 365 (MXM Day 2018 na Autoglass)
Apresentação - Microsoft 365 (MXM Day 2018 na Autoglass)Apresentação - Microsoft 365 (MXM Day 2018 na Autoglass)
Apresentação - Microsoft 365 (MXM Day 2018 na Autoglass)
 
Apresentacao_Zabbix
Apresentacao_ZabbixApresentacao_Zabbix
Apresentacao_Zabbix
 
Direct Web Remoting Sun Tech Days2007
Direct Web Remoting Sun Tech Days2007Direct Web Remoting Sun Tech Days2007
Direct Web Remoting Sun Tech Days2007
 
Primeiros passos com o framework Sencha Ext JS
Primeiros passos com o framework Sencha Ext JSPrimeiros passos com o framework Sencha Ext JS
Primeiros passos com o framework Sencha Ext JS
 
Segurança em aplicações web
Segurança em aplicações webSegurança em aplicações web
Segurança em aplicações web
 
Palestra Clavis - Octopus
Palestra Clavis - OctopusPalestra Clavis - Octopus
Palestra Clavis - Octopus
 

Similar to Boas práticas de segurança no acesso a dados em aplicações Web - DBA BRASIL 4.0

Similar to Boas práticas de segurança no acesso a dados em aplicações Web - DBA BRASIL 4.0 (20)

Implementando APIs seguras na nuvem - Outubro-2018 - Azure Brasil
Implementando APIs seguras na nuvem - Outubro-2018 - Azure BrasilImplementando APIs seguras na nuvem - Outubro-2018 - Azure Brasil
Implementando APIs seguras na nuvem - Outubro-2018 - Azure Brasil
 
.Net Community Summit - Construindo APIs REST seguras com o ASP.NET Core - Re...
.Net Community Summit - Construindo APIs REST seguras com o ASP.NET Core - Re....Net Community Summit - Construindo APIs REST seguras com o ASP.NET Core - Re...
.Net Community Summit - Construindo APIs REST seguras com o ASP.NET Core - Re...
 
Implementando APIs REST mais seguras - TDC 2019 - São Paulo
Implementando APIs REST mais seguras - TDC 2019 - São PauloImplementando APIs REST mais seguras - TDC 2019 - São Paulo
Implementando APIs REST mais seguras - TDC 2019 - São Paulo
 
Implementando APIs REST mais seguras - TDC 2019 - Porto Alegre
Implementando APIs REST mais seguras - TDC 2019 - Porto AlegreImplementando APIs REST mais seguras - TDC 2019 - Porto Alegre
Implementando APIs REST mais seguras - TDC 2019 - Porto Alegre
 
Acesso a Dados em .NET: Boas práticas de Segurança - Agosto/2017
Acesso a Dados em .NET: Boas práticas de Segurança - Agosto/2017Acesso a Dados em .NET: Boas práticas de Segurança - Agosto/2017
Acesso a Dados em .NET: Boas práticas de Segurança - Agosto/2017
 
Acesso a Dados em .NET: Boas práticas de Segurança - .NET SP - Setembro/2017
Acesso a Dados em .NET: Boas práticas de Segurança - .NET SP - Setembro/2017Acesso a Dados em .NET: Boas práticas de Segurança - .NET SP - Setembro/2017
Acesso a Dados em .NET: Boas práticas de Segurança - .NET SP - Setembro/2017
 
Api todo list
Api todo listApi todo list
Api todo list
 
Alternativas para implementação de Microsserviços no Azure | MVPConf Latam 2021
Alternativas para implementação de Microsserviços no Azure | MVPConf Latam 2021Alternativas para implementação de Microsserviços no Azure | MVPConf Latam 2021
Alternativas para implementação de Microsserviços no Azure | MVPConf Latam 2021
 
Microsoft Azure para Desenvolvedores Web - Azure para Devs e DBAs - Maio-2018
Microsoft Azure para Desenvolvedores Web - Azure para Devs e DBAs - Maio-2018Microsoft Azure para Desenvolvedores Web - Azure para Devs e DBAs - Maio-2018
Microsoft Azure para Desenvolvedores Web - Azure para Devs e DBAs - Maio-2018
 
Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...
Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...
Tutorial: Principais Vulnerabilidades em Aplicações Web – Rafael Soares Ferre...
 
Desenvolvendo APIs seguras com ASP.NET Core, JWT, Docker e Azure Web App on L...
Desenvolvendo APIs seguras com ASP.NET Core, JWT, Docker e Azure Web App on L...Desenvolvendo APIs seguras com ASP.NET Core, JWT, Docker e Azure Web App on L...
Desenvolvendo APIs seguras com ASP.NET Core, JWT, Docker e Azure Web App on L...
 
Secure Coding with OWASP & SSDLC.pptx
Secure Coding with OWASP & SSDLC.pptxSecure Coding with OWASP & SSDLC.pptx
Secure Coding with OWASP & SSDLC.pptx
 
Alternativas para a Implementação de Microservices no Microsoft Azure - Novem...
Alternativas para a Implementação de Microservices no Microsoft Azure - Novem...Alternativas para a Implementação de Microservices no Microsoft Azure - Novem...
Alternativas para a Implementação de Microservices no Microsoft Azure - Novem...
 
Alternativas para a Implementação de Microservices no Microsoft Azure - Jane...
 Alternativas para a Implementação de Microservices no Microsoft Azure - Jane... Alternativas para a Implementação de Microservices no Microsoft Azure - Jane...
Alternativas para a Implementação de Microservices no Microsoft Azure - Jane...
 
Slide Palestra "Metasploit Framework"
Slide Palestra "Metasploit Framework"Slide Palestra "Metasploit Framework"
Slide Palestra "Metasploit Framework"
 
GUJavaSC - Protegendo Microservices em Java
GUJavaSC - Protegendo Microservices em JavaGUJavaSC - Protegendo Microservices em Java
GUJavaSC - Protegendo Microservices em Java
 
SQL Saturday #844 - Belo Horizonte - Segurança no SQL Server: Você está deixa...
SQL Saturday #844 - Belo Horizonte - Segurança no SQL Server: Você está deixa...SQL Saturday #844 - Belo Horizonte - Segurança no SQL Server: Você está deixa...
SQL Saturday #844 - Belo Horizonte - Segurança no SQL Server: Você está deixa...
 
Analysis of vulnerabilities in web applications - LinuxCon Brazil 2010
Analysis of vulnerabilities in web applications - LinuxCon Brazil 2010Analysis of vulnerabilities in web applications - LinuxCon Brazil 2010
Analysis of vulnerabilities in web applications - LinuxCon Brazil 2010
 
Desenvolvendo APIs seguras com ASP.NET Core, JWT, Docker e Azure Web App for ...
Desenvolvendo APIs seguras com ASP.NET Core, JWT, Docker e Azure Web App for ...Desenvolvendo APIs seguras com ASP.NET Core, JWT, Docker e Azure Web App for ...
Desenvolvendo APIs seguras com ASP.NET Core, JWT, Docker e Azure Web App for ...
 
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
 

More from Renato Groff

More from Renato Groff (20)

Microsoft Azure role-based certifications valem a pena? | Interop Day Edição ...
Microsoft Azure role-based certifications valem a pena? | Interop Day Edição ...Microsoft Azure role-based certifications valem a pena? | Interop Day Edição ...
Microsoft Azure role-based certifications valem a pena? | Interop Day Edição ...
 
Kubernetes: dicas e truques para o dia a dia | Azure Experts - Novembro-2020
Kubernetes: dicas e truques para o dia a dia | Azure Experts - Novembro-2020Kubernetes: dicas e truques para o dia a dia | Azure Experts - Novembro-2020
Kubernetes: dicas e truques para o dia a dia | Azure Experts - Novembro-2020
 
Como o Microsoft Azure pode melhorar o desenvolvimento de seu Back-End? | Dev...
Como o Microsoft Azure pode melhorar o desenvolvimento de seu Back-End? | Dev...Como o Microsoft Azure pode melhorar o desenvolvimento de seu Back-End? | Dev...
Como o Microsoft Azure pode melhorar o desenvolvimento de seu Back-End? | Dev...
 
Como avançar na Power Platform com Azure Functions e Logic Apps | MVPConf Lat...
Como avançar na Power Platform com Azure Functions e Logic Apps | MVPConf Lat...Como avançar na Power Platform com Azure Functions e Logic Apps | MVPConf Lat...
Como avançar na Power Platform com Azure Functions e Logic Apps | MVPConf Lat...
 
GitHub Actions: descomplicando o build/deployment automatizados | MVPConf Lat...
GitHub Actions: descomplicando o build/deployment automatizados | MVPConf Lat...GitHub Actions: descomplicando o build/deployment automatizados | MVPConf Lat...
GitHub Actions: descomplicando o build/deployment automatizados | MVPConf Lat...
 
A evolução da plataforma .NET: passado, presente e futuro | Baixada NERD - No...
A evolução da plataforma .NET: passado, presente e futuro | Baixada NERD - No...A evolução da plataforma .NET: passado, presente e futuro | Baixada NERD - No...
A evolução da plataforma .NET: passado, presente e futuro | Baixada NERD - No...
 
Polly: aplicações .NET resilientes e um melhor tratamento de falhas | MVPConf...
Polly: aplicações .NET resilientes e um melhor tratamento de falhas | MVPConf...Polly: aplicações .NET resilientes e um melhor tratamento de falhas | MVPConf...
Polly: aplicações .NET resilientes e um melhor tratamento de falhas | MVPConf...
 
Containers no Azure: Docker, Kubernetes e suas diferentes possibilidades | MV...
Containers no Azure: Docker, Kubernetes e suas diferentes possibilidades | MV...Containers no Azure: Docker, Kubernetes e suas diferentes possibilidades | MV...
Containers no Azure: Docker, Kubernetes e suas diferentes possibilidades | MV...
 
Docker: dicas e truques para o dia a dia | MVPConf Latam 2020
Docker: dicas e truques para o dia a dia | MVPConf Latam 2020Docker: dicas e truques para o dia a dia | MVPConf Latam 2020
Docker: dicas e truques para o dia a dia | MVPConf Latam 2020
 
Simplificando a montagem de ambientes de Dev+Testes com Docker | DEVDAY 2020
Simplificando a montagem de ambientes de Dev+Testes com Docker | DEVDAY 2020Simplificando a montagem de ambientes de Dev+Testes com Docker | DEVDAY 2020
Simplificando a montagem de ambientes de Dev+Testes com Docker | DEVDAY 2020
 
.NET Core + Serverless: Desenvolvimento Multiplataforma com Azure Functions |...
.NET Core + Serverless: Desenvolvimento Multiplataforma com Azure Functions |....NET Core + Serverless: Desenvolvimento Multiplataforma com Azure Functions |...
.NET Core + Serverless: Desenvolvimento Multiplataforma com Azure Functions |...
 
Aplicações Distribuídas com .NET | TDC Recife Online 2020
Aplicações Distribuídas com .NET | TDC Recife Online 2020Aplicações Distribuídas com .NET | TDC Recife Online 2020
Aplicações Distribuídas com .NET | TDC Recife Online 2020
 
Novidades do .NET 5 e ASP.NET 5 | Visual Studio Summit 2020
Novidades do .NET 5 e ASP.NET 5 | Visual Studio Summit 2020Novidades do .NET 5 e ASP.NET 5 | Visual Studio Summit 2020
Novidades do .NET 5 e ASP.NET 5 | Visual Studio Summit 2020
 
Serverless + Integrações com BDs: Azure Functions e Logic Apps - SQLSaturday ...
Serverless + Integrações com BDs: Azure Functions e Logic Apps - SQLSaturday ...Serverless + Integrações com BDs: Azure Functions e Logic Apps - SQLSaturday ...
Serverless + Integrações com BDs: Azure Functions e Logic Apps - SQLSaturday ...
 
.NET: passado, presente e futuro | Semana FCI 2020 - Mackenzie
.NET: passado, presente e futuro | Semana FCI 2020 - Mackenzie.NET: passado, presente e futuro | Semana FCI 2020 - Mackenzie
.NET: passado, presente e futuro | Semana FCI 2020 - Mackenzie
 
Docker: visão geral e primeiros passos | Fatec Praia Grande - Semana Tecnológ...
Docker: visão geral e primeiros passos | Fatec Praia Grande - Semana Tecnológ...Docker: visão geral e primeiros passos | Fatec Praia Grande - Semana Tecnológ...
Docker: visão geral e primeiros passos | Fatec Praia Grande - Semana Tecnológ...
 
Kubernetes na Nuvem | Minicurso Gratuito - Azure na Prática
Kubernetes na Nuvem | Minicurso Gratuito - Azure na PráticaKubernetes na Nuvem | Minicurso Gratuito - Azure na Prática
Kubernetes na Nuvem | Minicurso Gratuito - Azure na Prática
 
Kubernetes de ponta a ponta: do Pod ao Deployment Automatizado | Setembro-2020
Kubernetes de ponta a ponta: do Pod ao Deployment Automatizado | Setembro-2020Kubernetes de ponta a ponta: do Pod ao Deployment Automatizado | Setembro-2020
Kubernetes de ponta a ponta: do Pod ao Deployment Automatizado | Setembro-2020
 
Sobrevoando os serviços do Azure | TDC São Paulo Online 2020
Sobrevoando os serviços do Azure | TDC São Paulo Online 2020Sobrevoando os serviços do Azure | TDC São Paulo Online 2020
Sobrevoando os serviços do Azure | TDC São Paulo Online 2020
 
.NET 5, C# 9.0 e outras novidades | TDC São Paulo Online 2020
.NET 5, C# 9.0 e outras novidades | TDC São Paulo Online 2020.NET 5, C# 9.0 e outras novidades | TDC São Paulo Online 2020
.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
  • 4. Renato Groffe - Contatos /renatogroffe /in/renatogroffe /canaldotnet /renatogroffe /canaldotnet /renatogroff https://medium.com/@renato.groffe/
  • 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
  • 6. Segurança da Informação e Desenvolvimento Web
  • 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
  • 10. O que há de errado aqui (.NET + Dapper)?
  • 11. O que há de errado aqui (.NET + Dapper)?
  • 12. Recomendável ao se utilizar Dapper
  • 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)
  • 18. JWT (JSON Web Tokens) - Utilização
  • 19. Um exemplo de token
  • 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)
  • 21. Recursos de Segurança na nuvem – Microsoft Azure
  • 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
  • 23. Azure App Service - Suporte
  • 24. Azure Web App for Containers - Suporte
  • 25. Azure SQL •Gerenciamento de usuários da mesma forma que em versões on premise •Acesso por faixas de IP
  • 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