Boas práticas de segurança
no acesso a dados em aplicações Web
Renato Groffe (Microsoft MVP, MTAC)
https://medium.com/@renato.groffe/
Explore
your PASS
community
Free online
webinar events
Connect with the
global data community
Local user groups
around the world
Online special
interest user groups
Learning on-demand
and delivered to you
Get involved
Own your career with interactive learning built
by community and guided by data experts.
Get involved. Get ahead.
.org
Missed PASS Summit 2019?
Get the Recordings
Download all PASS Summit sessions
on Data Management, Analytics, or
Architecture for only $399 USD
More options available at
PASSstuff.com
We are thrilled to say the first ever PASS Virtual Summit will be taking place this November!
We will be launching PASS Summit into a whole new world, and with that comes exciting
opportunities with what we can offer you. We will go beyond simply moving sessions online to fully
embracing everything a virtual environment can offer.
Find out more at PASS.org/summit
Thank You to our SQLSaturday BH Sponsors
If you’re eager to learn
more tips and best
practices, check out
these free resources and
learning materials.
Free Resources
eBook: Professional Azure SQL DBA
http://aka.ms/sqlsaturday_packt
Handbook: Essential Guide to Data in the Cloud
https://aka.ms/sqlsaturday_essential
Case studies: Future Proof your Data
Infrastructure with Azure
https://aka.ms/sqlsaturday_future
Training: Microsoft Learn
https://aka.ms/azuresqlfundamentals
SQL Server 2019 Free Training
aka.ms/sqlworkshops
eBook: SQL Server 2019
aka.ms/sql19_ebook
This event was sponsored by Microsoft.
Boas práticas de segurança
no acesso a dados em
aplicações Web
• 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
Agenda
• 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
Desenvolvedores e a questão da Segurança
• Injeção de SQL (SQL Injection)
• Acesso em produção com permissões
especiais
• Acesso indevido a informações
confidenciais
E se essas “verdades” falharem?
• Concatenação de comandos e parâmetros em strings
• Descuidos com a manipulação de query strings em
aplicações Web
O que torna possível a injeção de SQL?
O que há de errado aqui (Dapper)?
O que há de errado aqui (Dapper)?
Recomendável ao se utilizar Dapper
• 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
Diminuindo o impacto – Injeção de SQL
• Criptografia de arquivos de configuração
• HTTPS em aplicações Web sempre (sites, serviços, APIs)
• Implementar mecanismos e políticas de controle de acessos
em sites
• Tirar proveito recursos de segurança oferecidos por
tecnologias de bancos de dados
• Armazenar segredos em alguma solução específica (Azure
Key Vault, por exemplo)
• JWT (JSON Web Token) em APIs REST
Evitando o acesso indevido a informações
• Hospedagem de aplicações Web
• Publicação em Windows ou Linux e também
utilizando imagens Docker
• Suporta diversas stacks de desenvolvimento
(.NET, Java, Node.js, Python, PHP, Ruby)
• Escalabilidade (vertical e horizontal)
• HTTPS habilitado por default
Azure App Service
• Gerenciamento de usuários da
mesma forma que em versões on
premise
• Acesso por faixas de IP
Azure SQL
• 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
SQL Server e Dynamic Data Masking
• Armazenamento de configurações
sensíveis
• Acesso a dados armazenados
mediante concessão de acesso
• Integração com Azure Active
Directory
Azure Key Vault
• 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)
JWT (JSON Web Tokens) – Utilização
Um exemplo de token
Obrigado
Blog - Renato Groffe (disponibilizarei este conteúdo lá)
https://medium.com/@renato.groffe
Minicurso gratuito - SQL, PostgreSQL, MySQL na Nuvem – 07/11
https://bit.ly/anp-bds-gratuito-lives
Azure na Prática - Cursos
https://azurenapratica.com/
Obrigado!
Renato Groffe (Microsoft MVP, MTAC)

Boas práticas de segurança no acesso a dados em Web Apps - SQLSaturday #972 - Belo Horizonte

  • 1.
    Boas práticas desegurança no acesso a dados em aplicações Web Renato Groffe (Microsoft MVP, MTAC) https://medium.com/@renato.groffe/
  • 2.
    Explore your PASS community Free online webinarevents Connect with the global data community Local user groups around the world Online special interest user groups Learning on-demand and delivered to you Get involved Own your career with interactive learning built by community and guided by data experts. Get involved. Get ahead. .org
  • 3.
    Missed PASS Summit2019? Get the Recordings Download all PASS Summit sessions on Data Management, Analytics, or Architecture for only $399 USD More options available at PASSstuff.com
  • 4.
    We are thrilledto say the first ever PASS Virtual Summit will be taking place this November! We will be launching PASS Summit into a whole new world, and with that comes exciting opportunities with what we can offer you. We will go beyond simply moving sessions online to fully embracing everything a virtual environment can offer. Find out more at PASS.org/summit
  • 5.
    Thank You toour SQLSaturday BH Sponsors
  • 6.
    If you’re eagerto learn more tips and best practices, check out these free resources and learning materials. Free Resources eBook: Professional Azure SQL DBA http://aka.ms/sqlsaturday_packt Handbook: Essential Guide to Data in the Cloud https://aka.ms/sqlsaturday_essential Case studies: Future Proof your Data Infrastructure with Azure https://aka.ms/sqlsaturday_future Training: Microsoft Learn https://aka.ms/azuresqlfundamentals SQL Server 2019 Free Training aka.ms/sqlworkshops eBook: SQL Server 2019 aka.ms/sql19_ebook This event was sponsored by Microsoft.
  • 7.
    Boas práticas desegurança no acesso a dados em aplicações Web
  • 8.
    • Segurança daInformaçã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 Agenda
  • 9.
    • Nunca vaiacontecer comigo • A aplicação é pequena, não há muitos usuários • O pessoal de TI é confiável • Nossos usuários são leigos demais Desenvolvedores e a questão da Segurança
  • 10.
    • Injeção deSQL (SQL Injection) • Acesso em produção com permissões especiais • Acesso indevido a informações confidenciais E se essas “verdades” falharem?
  • 11.
    • Concatenação decomandos e parâmetros em strings • Descuidos com a manipulação de query strings em aplicações Web O que torna possível a injeção de SQL?
  • 12.
    O que háde errado aqui (Dapper)?
  • 13.
    O que háde errado aqui (Dapper)?
  • 14.
    Recomendável ao seutilizar Dapper
  • 15.
    • Evitando aconcatenaçã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 Diminuindo o impacto – Injeção de SQL
  • 16.
    • Criptografia dearquivos de configuração • HTTPS em aplicações Web sempre (sites, serviços, APIs) • Implementar mecanismos e políticas de controle de acessos em sites • Tirar proveito recursos de segurança oferecidos por tecnologias de bancos de dados • Armazenar segredos em alguma solução específica (Azure Key Vault, por exemplo) • JWT (JSON Web Token) em APIs REST Evitando o acesso indevido a informações
  • 17.
    • Hospedagem deaplicações Web • Publicação em Windows ou Linux e também utilizando imagens Docker • Suporta diversas stacks de desenvolvimento (.NET, Java, Node.js, Python, PHP, Ruby) • Escalabilidade (vertical e horizontal) • HTTPS habilitado por default Azure App Service
  • 18.
    • Gerenciamento deusuários da mesma forma que em versões on premise • Acesso por faixas de IP Azure SQL
  • 19.
    • Mascarar visualizaçãode 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 SQL Server e Dynamic Data Masking
  • 20.
    • Armazenamento deconfigurações sensíveis • Acesso a dados armazenados mediante concessão de acesso • Integração com Azure Active Directory Azure Key Vault
  • 21.
    • Uso detokens criptografados • Bearer Authentication • Emprega HMAC ou RSA • Tecnologia multiplataforma • Tokens formados por 3 partes (Header, Payload e Signature) JWT (JSON Web Tokens)
  • 22.
    JWT (JSON WebTokens) – Utilização
  • 23.
  • 24.
    Obrigado Blog - RenatoGroffe (disponibilizarei este conteúdo lá) https://medium.com/@renato.groffe Minicurso gratuito - SQL, PostgreSQL, MySQL na Nuvem – 07/11 https://bit.ly/anp-bds-gratuito-lives Azure na Prática - Cursos https://azurenapratica.com/
  • 25.