introdução de teste de segurança app web
TRANSCRIPT
Kleitor Franklint
INTRODUÇÃO AO TESTE DE SEGURANÇA
APP WEB
Conceituações e Cenários
Análise de Vulnerabilidade X Pentest
2
Um Road Map Por que
precisamos de app seguras? Terminologia
Abordagens de Pentest
Classificação de ameaças
Proteção e padrões
Antes de iniciar
Por que precisamos de aplicações seguras?
75% ( 60~90) de todos os ataques ocorrem na camada de aplicação;
Fontes: OWASP, CWE, WASC, NIST, CERT, Black hat, White Hat, Sans Institute, Gartner Group.
90% das aplicãções web são vulneráveis;
1,000,000 sites usam SSL (~7,000,000 vulnerabilidades de localização
desconhecida);
17,000,000 de desenvolvedores: poucos treinados em segurança de
software;
4
Por que precisamos de aplicações seguras?
1.9 million files over the past 12 months Web Application Vulnerability Report 2015 http://www.acunetix.com/acunetix-web-application-vulnerability-report-2015/
Web apps
A cada 5 apps, 4 foram afetadas por vulnerabilidades médias
>80%
> 49% Quase metade continha vulnerabilidades graves
5
Mobile Application Security Study, 2013 report http://www8.hp.com/h20195/V2/GetPDF.aspx/4AA5-1057ENW.pdf
Por que precisamos de aplicações seguras?
Mobile apps
HP Research testou mais de 2,000 mobile apps em mais de 600 companhias.
97% Deram acesso a pelo menos uma fonte de informação privada.
86% Falharam no uso de simples proteções contra ataques modernos.
75% Não usam técnicas de encriptação adequada ao armazenar dados no dispositivo.
"Responsabilidade pelos Danos e Riscos Causados por Falhas de Segurança", Cassio Goldschmidt
Teste de segurança é
HACKING PENTEST AUDITORIA
E o objetivo é...?
TERMINOLOGIA ESSENCIAL
Terminologia e definições
Vulnerabilidade: uma fraqueza ou falha que pode acidentalmente ou intencionalmente ser explorada, resultando em quebra da politica de segurança.
Ameaça: vulnerabilidade que representa ameaça aos ativos.
Agente de ameaça: qualquer um ( ou qualquer coisa ) que tem potencial para materializar a ameaça.
Terminologia e definições
Fator de exposição: definido como a oportunidade
para uma ameaça causar perda.
Risco residual: risco remanescente após a implementação de mitigação do controles de segurança.
TERMINOLOGIA ESSENCIAL
White Hats – especialistas em segurança
Black hats - conhecimento
para atividades ilegais
Script kids – sem habilidades de hacking, usa ferramentas de terceiros
TERMINOLOGIA ESSENCIAL
Crackers- Ganho pessoal
Phreaks – invasão de redes telefônicas
Insiders – do lado de dentro. <=50%
-Não é Hacking, foco no pentest
-Só iniciam teste após autorização legal
-Conduzido de maneira estruturada e organizada
-Confidencialidade de informações
-Há a concordância do cliente com os testes: DOS, etc
13
Análise de Vulnerabilidade X Pentest
Ambos buscam brechas ou vulnerabilidades
Análise de Vulnerabilidade
-Podem ser feitas com analisadores
de vulnerabilidades e podem
necessitar testes manuais
-O processo é identificar, quantificar e priorizar as vulnerabilidades em um sistema
-Permite ao negócio entender se as estratégias de mitigação
empregadas estão funcionando conforme o esperado
-Explora vulnerabilidades com objetivo de ganhar acesso ao
sistemas e dados.
PenTest
Criatividade e
conhecimento são
fatores de sucesso
Isso significa que o preço de um teste de invasão ( tempo x
recursos) será maior que a de uma análise de vulnerabilidade.
Atenção voltada às vulnerabilidades que possam
conduzir a uma significativa perda de receitas, a
menos que sejam tratadas
PenTest
Exige maior nível de habilidade
do que é necessário para a
análise de vulnerabilidade.
17
Varredura Quão rápido e amplamente posso analisar a superfície?
Exploratório ( Pentest )
-Que tipos de ataques são relevantes?
-Qual a parte mais importante a ser protegida: mais impacto, maior risco ao negócio?
Como encontrar equilíbrio?
Teste continuo+Sprint pequeno + Restropectivas+ muito feedback+
envolva o time
18
Explorar pentest + varredura = done
Como encontrar equilíbrio? Valor x Produtividade
Pentest x analisadores
https://testmoz.com/767564/
Quanto a execução:
-Manual, automatizado, combinação
Quanto ao conhecimento sobre o sistema:
-Black-box, Grey-box, White-box
Quanto ao tipo de análise:
-DAST, SAST, IAST, RASP
Abordagens de PenTest
Quanto ao conhecimento
sobre o sistema: Abordagens de PenTest
Black Box
Gray Box
White Box
Abordagens de PenTest
Black Box
-Sem informações prévias, muitas variáveis desconhecidas ( blind testing)
-Demanda muito mais tempo
-Cenário realístico porém vasto
Black Box
http://www.proprofs.com/quiz-
school/story.php?title=mtu3otc4nqt8b5
Abordagens de PenTest
"Full Disclosure" testing: ip, código fonte, protocolos, RNs, funcionalidades, etc
- Risco de cenário não realístico
- É mais determinístico porque o Pentester tem informações privilegiadas e pode executar testes mais rigorosos e abrangentes
-Mais eficiente em custo x benefício que o caixa preta pois não gasta tempo com esconde-esconde.
-Pode incluir áreas de análise de código, maneira e eficaz de encontrar vulnerabilidades originarias de código
Abordagens de PenTest
-Conhece detalhes parciais
-Incorpora elementos de ambos
White e gray box
http://www.proprofs.com/quiz-
school/story.php?title=white-box-pentest
Quanto ao tipo de análise:
-DAST -Dynamic Application Security Testing
-SAST -Static Application Security Testing
-RASP -Runtime Application Self-Protection
-IAST -Interactive Application Security Testing
Abordagens de PenTest
Quanto ao tipo de análise:
-DAST –Analisadores ativos e passivos
-SAST –Analise de código
-RASP = built-in APP
-IAST =SAST+DAST+OP
Abordagens de PenTest
Ferramentas para Testadores e Desenvolvedores
SAST ( Static Application Security Testing)
OWASP LAPSE + JAVA EE https://www.owasp.org/index.php/OWASP_LAPSE_Project
FxCop .NET https://www.owasp.org/index.php/FxCop
RIPS PHP http://sourceforge.net/projects/rips-scanner/
GRAUDIT Suporta: php, asp, perl e python http://www.justanotherhacker.com/projects/graudit/download.html
1:42
Ferram. para DevOP
W3AF (Web Application Attack and Audit Framework ) http://w3af.sourceforge.net/
SKIPFISH http://code.google.com/p/skipfish/
NIKTO http://cirt.net/nikto2
DAST ( Dinamic Application Security Testing )
1:42
Análise Passiva: -Monitoramento contínuo x esporádico.
-Não substitui active scanners
-Ajudam a identificar ativos desconhecidos
-Ajudam a identificar áreas negligenciada por pentesters
Análise passiva x Análise ativa
Análise passiva x Análise ativa
Análise ativa:
- Scanning ativo pode complementar o pentest.
-Os resultados podem ser usados para decidir que áreas ignorar em um pentest.
-Não expande o pentest, dá foco a ele: foco no esforço.
Tipos de varreduras http://www.proprofs.com/quiz-school/story.php?title=tipos-de-varredura-em-pentest
http://www.owasp.org/index.php/About_OWASP
Classificação de
Vulnerabilidades
http://www.webappsec.org/
Web app Top Ten – 2013
http://pt.slideshare.net/bilcorry/bil-owasp-top-102013-presentation
Web: Testar o quê?
São exploradas em conjunto: um abre, outro vasculha. Classificação relativa.
36
Mobile: Testar o quê?
Mobile app Top Ten – 2014
https://www.arxan.com/what-we-do/industry-and-analyst-perspectives/
São exploradas em conjunto: um abre, outro vasculha. Classificação relativa.
WASC THREAT CLASSIFICATION, 2010
Localização das vulnerabilidades na
“Visão de Fase de Desenvolvimento”
Design Implementação Deploy
13 42 12
46 vulnerabilidades ao todo
Proteção no
Front-End
https://www.owasp.org/index.php/Category:OWASP_Enterprise_Security_API
1:42
Sanitização unitária x
Global
ESAPI - OWASP Enterprise Security API (ESAPI) Project
https://www.owasp.org/index.php/Category:OWASP_Enterprise_Security_API
Biblioteca open source de controle segurança de aplicações Web que torna
fácil aos desenvolvedores escreverem aplicações de baixo risco.
1:42
ModSecurity ( Módulo Apache ) http://www.modsecurity.org/
WAF ( Web Application Firewall )
1:42
Ameaças e proteção
http://www.proprofs.com/quiz-school/story.php?title=ameaas-e-proteo
Padrões e processos
O plano de teste no escopo da segurança
Antes do teste iniciar http://www.pentest-standard.org/index.php/Pre-engagement http://www.pentest-standard.org/ index.php/Main_Page
O plano de teste: Fases e escopo
-Modelagem de ameaças
-Interações pré- noivado ( escopo, objetivo, reuniões)
-Coleta de informação ( analisadores, eng. Social, etc)
-Análise de Vulnerabilidade
-Exploitation ( explorar para tirar vantagem)
-Pós Exploitation ( mais analise e decisão )
-Relatórios
Fases de um Pentest
O plano de teste no escopo da segurança
-Qual é a finalidade do teste?
-Quem tem a autoridade para autorizar o teste?
-Qual é o prazo proposto para o teste?
-Há alguma restrição sobre quando o teste pode
ser executado?
-O seu cliente percebe a diferença entre teste de
invasão de análise de vulnerabilidade?
-Necessitará cooperação de outros times?
Antes de começar...
O plano de teste no escopo da segurança
-É permitido engenharia social e negação de
serviço?
-Terá acesso a informações de tecnologia: bd, redes, servidores, tecnologia app servidor?
-Há restrição de range de IP para teste?
-Se o objetivo for alcançado no começo dos teste, continua ou para?
Antes de começar...
O plano de teste no escopo da segurança
-Existem implicações legais: sistemas de países
diferentes? Plug-ins de terceiros?
-Precisa de permissões ou usuários adicionais para o teste?
É possível realizar transações no Bd durante o teste?
Usabilidade é essencial nas recomendações de segurança?
O time de DevOP é Ágil? Entrega continua, integração continua, incremental
Antes de começar...
Plano de Pentest
http://www.proprofs.com/quiz-school/story.php?title=plano-de-um-pentest
Identifique cenários de riscos, sempre!!!
Se não sabe onde olhar, como encontrar valor?
Padrões e metodologias de desenvolvimento seguro S-SDLC da OWASP https://www.owasp.org/index.php/Secure_SDLC_Cheat_Sheet BSI – Software quality Assurance https://buildsecurityin.us-cert.gov/articles/knowledge/ sdlc-process/secure-software-development-life-cycle-processes SDL da Microsoft https://www.microsoft.com/en-us/sdl/
Framework para software seguro
Integrar praticas de segurança para SDL – CLASP https://www.owasp.org/index.php/CLASP_Concepts
Software Security Frameworks https://www.securesoftwarefoundation.org/ index.php/framework-secure-software/
OWASP – Aprendizagem
OWASP Hackademic Challenges Project https://www.owasp.org/index.php/OWASP_Hackademic_Challenges_Project
OWASP BROKEN WEB APPLICATIONS PROJECT -OWASP WebGoat (Java) -OWASP Vicnum (PHP/Perl) -Mutillidae version 1.5 (PHP) -Damn Vulnerable Web Application(PHP) -OWASP CSRFGuard Test Application (Java) – Broken and “Not broken” versions
Ampliar conhecimentos em testes de invasão e
reconhecimento de padrões maliciosos