introdução de teste de segurança app web

53
Kleitor Franklint INTRODUÇÃO AO TESTE DE SEGURANÇA APP WEB [email protected] Conceituações e Cenários

Upload: kleitor-franklint-correa-de-araujo

Post on 09-Apr-2017

16 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Introdução de teste de segurança app web

Kleitor Franklint

INTRODUÇÃO AO TESTE DE SEGURANÇA

APP WEB

[email protected]

Conceituações e Cenários

Page 2: Introdução de teste de segurança app web

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

Page 3: Introdução de teste de segurança app web

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;

Page 4: Introdução de teste de segurança app web

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

Page 5: Introdução de teste de segurança app web

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.

Page 6: Introdução de teste de segurança app web

"Responsabilidade pelos Danos e Riscos Causados por Falhas de Segurança", Cassio Goldschmidt

Teste de segurança é

HACKING PENTEST AUDITORIA

E o objetivo é...?

Page 7: Introdução de teste de segurança app web

TERMINOLOGIA ESSENCIAL

Page 8: Introdução de teste de segurança app web

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.

Page 9: Introdução de teste de segurança app web

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.

Page 10: Introdução de teste de segurança app web

TERMINOLOGIA ESSENCIAL

White Hats – especialistas em segurança

Black hats - conhecimento

para atividades ilegais

Script kids – sem habilidades de hacking, usa ferramentas de terceiros

Page 11: Introdução de teste de segurança app web

TERMINOLOGIA ESSENCIAL

Crackers- Ganho pessoal

Phreaks – invasão de redes telefônicas

Insiders – do lado de dentro. <=50%

Page 12: Introdução de teste de segurança app web

-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

Page 13: Introdução de teste de segurança app web

13

Análise de Vulnerabilidade X Pentest

Ambos buscam brechas ou vulnerabilidades

Page 14: Introdução de teste de segurança app web

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

Page 15: Introdução de teste de segurança app web

-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

Page 16: Introdução de teste de segurança app web

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.

Page 17: Introdução de teste de segurança app web

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?

Page 18: Introdução de teste de segurança app web

Teste continuo+Sprint pequeno + Restropectivas+ muito feedback+

envolva o time

18

Explorar pentest + varredura = done

Como encontrar equilíbrio? Valor x Produtividade

Page 19: Introdução de teste de segurança app web

Pentest x analisadores

https://testmoz.com/767564/

Page 20: Introdução de teste de segurança app web

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

Page 21: Introdução de teste de segurança app web

Quanto ao conhecimento

sobre o sistema: Abordagens de PenTest

Black Box

Gray Box

White Box

Page 22: Introdução de teste de segurança app web

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

Page 23: Introdução de teste de segurança app web

Black Box

http://www.proprofs.com/quiz-

school/story.php?title=mtu3otc4nqt8b5

Page 24: Introdução de teste de segurança app web

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

Page 25: Introdução de teste de segurança app web

Abordagens de PenTest

-Conhece detalhes parciais

-Incorpora elementos de ambos

Page 26: Introdução de teste de segurança app web

White e gray box

http://www.proprofs.com/quiz-

school/story.php?title=white-box-pentest

Page 27: Introdução de teste de segurança app web

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

Page 28: Introdução de teste de segurança app web

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

Page 29: Introdução de teste de segurança app web

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

Page 30: Introdução de teste de segurança app web

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

Page 31: Introdução de teste de segurança app web

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

Page 32: Introdução de teste de segurança app web

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.

Page 33: Introdução de teste de segurança app web

Tipos de varreduras http://www.proprofs.com/quiz-school/story.php?title=tipos-de-varredura-em-pentest

Page 34: Introdução de teste de segurança app web

http://www.owasp.org/index.php/About_OWASP

Classificação de

Vulnerabilidades

http://www.webappsec.org/

Page 35: Introdução de teste de segurança app web

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.

Page 36: Introdução de teste de segurança app web

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.

Page 37: Introdução de teste de segurança app web

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

Page 38: Introdução de teste de segurança app web

Proteção no

Front-End

https://www.owasp.org/index.php/Category:OWASP_Enterprise_Security_API

1:42

Sanitização unitária x

Global

Page 39: Introdução de teste de segurança app web

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

Page 40: Introdução de teste de segurança app web

ModSecurity ( Módulo Apache ) http://www.modsecurity.org/

WAF ( Web Application Firewall )

1:42

Page 41: Introdução de teste de segurança app web

Ameaças e proteção

http://www.proprofs.com/quiz-school/story.php?title=ameaas-e-proteo

Page 42: Introdução de teste de segurança app web

Padrões e processos

Page 43: Introdução de teste de segurança app web

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

Page 44: Introdução de teste de segurança app web

O plano de teste: Fases e escopo

Page 45: Introdução de teste de segurança app web

-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

Page 46: Introdução de teste de segurança app web

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...

Page 47: Introdução de teste de segurança app web

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...

Page 48: Introdução de teste de segurança app web

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...

Page 49: Introdução de teste de segurança app web

Plano de Pentest

http://www.proprofs.com/quiz-school/story.php?title=plano-de-um-pentest

Page 50: Introdução de teste de segurança app web

Identifique cenários de riscos, sempre!!!

Se não sabe onde olhar, como encontrar valor?

Page 51: Introdução de teste de segurança app web

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/

Page 52: Introdução de teste de segurança app web

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/

Page 53: Introdução de teste de segurança app web

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