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

Post on 09-Apr-2017

16 views 1 download

Transcript of Introdução de teste de segurança app web

Kleitor Franklint

INTRODUÇÃO AO TESTE DE SEGURANÇA

APP WEB

Kleitor.franklint@gmail.com

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