Teste de Software para Segurança de Sistemas2017.caos.ufrj.br/palestras/sergioMendes.pdf · Teste...

26
Teste de Software para Segurança de Sistemas COTI Informática Escola de Nerds Sergio Mendes [email protected] www.cotiinformatica.com.br

Transcript of Teste de Software para Segurança de Sistemas2017.caos.ufrj.br/palestras/sergioMendes.pdf · Teste...

Page 1: Teste de Software para Segurança de Sistemas2017.caos.ufrj.br/palestras/sergioMendes.pdf · Teste de “Caixa Branca” Teste de “Caixa Preta” Sistemas e programas de software

Teste de Software para Segurança de Sistemas

COTI Informática Escola de Nerds

Sergio Mendes [email protected] www.cotiinformatica.com.br

Page 2: Teste de Software para Segurança de Sistemas2017.caos.ufrj.br/palestras/sergioMendes.pdf · Teste de “Caixa Branca” Teste de “Caixa Preta” Sistemas e programas de software

A COTI Informática A COTI Informática é uma instituição de ensino nas áreas de

Programação, Banco de Dados, Análise de Sistema e Web Design, fundada pelos professores Edson Belém e Fernanda Nunes, com a proposta de especializar e preparar os alunos

para o mercado de trabalho.

Page 3: Teste de Software para Segurança de Sistemas2017.caos.ufrj.br/palestras/sergioMendes.pdf · Teste de “Caixa Branca” Teste de “Caixa Preta” Sistemas e programas de software

Localização:

Av. Rio Branco, 185 - Sala 307 - Rio de Janeiro

2262-9043

Page 4: Teste de Software para Segurança de Sistemas2017.caos.ufrj.br/palestras/sergioMendes.pdf · Teste de “Caixa Branca” Teste de “Caixa Preta” Sistemas e programas de software

Visite nosso site: www.cotiinformatica.com.br

Page 5: Teste de Software para Segurança de Sistemas2017.caos.ufrj.br/palestras/sergioMendes.pdf · Teste de “Caixa Branca” Teste de “Caixa Preta” Sistemas e programas de software

Sergio Mendes [email protected] www.cotiinformatica.com.br

Page 6: Teste de Software para Segurança de Sistemas2017.caos.ufrj.br/palestras/sergioMendes.pdf · Teste de “Caixa Branca” Teste de “Caixa Preta” Sistemas e programas de software

Sergio Mendes [email protected] www.cotiinformatica.com.br

O objetivo principal do processo de Testes é fornecer informações sobre a qualidade de

um software. A qualidade de um software é medida a partir do grau em que o mesmo

atende aos requisitos inicialmente estabelecidos.

Revisão do Software

Transição do Software

Operação do Software

Portabilidade

Reutilização

Interoperabilidade

Manutenção

Flexibilidade

Testabilidade

Confiabilidade Usabilidade Integridade Eficiência

Dentre os fatores que afetam a qualidade de um software, podemos citar:

•Confiabilidade: Ele se comporta com precisão o tempo todo? •Eficiência: Ele rodará em meu hardware tão bem quanto possível? •Usabilidade: Ele foi projetado para o usuário? •Flexibilidade: Posso mudá-lo? •Portabilidade: Serei capaz de usá-lo em outra máquina? •Reusabilidade: Serei capaz de reutilizar parte do software? •Interoperabilidade: Serei capaz de compor uma interface com outro sistema?

Page 7: Teste de Software para Segurança de Sistemas2017.caos.ufrj.br/palestras/sergioMendes.pdf · Teste de “Caixa Branca” Teste de “Caixa Preta” Sistemas e programas de software

Sergio Mendes [email protected] www.cotiinformatica.com.br

Técnicas de teste de software

Tem como objetivo avaliar o

comportamento interno de um

software, analisando diretamente o

seu código-fonte.

Características:

•Estrutural

•Orientado à Lógica

•Atua diretamente no

código-fonte

Tem como objetivo avaliar o

comportamento externo de um

software, analisando os resultados

obtidos a partir dos dados de entrada.

Características:

•Funcional

•Orientado à Dados

•Atua diretamente na

especificação

Teste de “Caixa Preta” Teste de “Caixa Branca”

Sistemas e programas de software podem ser decompostos de diferentes formas.

Para o teste, podemos considerar o comportamento observável externamente (funcionalidades) ou a estrutura do sistema de software (unidades, subsistemas e componentes).

Dentro deste contexto, podemos considerar dois tipos de testes:

Page 8: Teste de Software para Segurança de Sistemas2017.caos.ufrj.br/palestras/sergioMendes.pdf · Teste de “Caixa Branca” Teste de “Caixa Preta” Sistemas e programas de software

Sergio Mendes [email protected] www.cotiinformatica.com.br

Page 9: Teste de Software para Segurança de Sistemas2017.caos.ufrj.br/palestras/sergioMendes.pdf · Teste de “Caixa Branca” Teste de “Caixa Preta” Sistemas e programas de software

Sergio Mendes [email protected] www.cotiinformatica.com.br

Testes Automatizados A automação vem aos longos dos anos ganhando um papel importante na área de Teste de Software. E isso se deve a uma série de fatores, dentre os quais podemos destacar:

• Diminuição do uso de mão de obra; • Diminuição dos custos; • Aumento na velocidade do processo de Teste de Software; • Maior sustentabilidade da garantia da qualidade, perante o “triângulo da gerência de projeto” (escopo, tempo e dinheiro).

Podemos utilizar a automação em qualquer fase do Teste de Software, como especificação de casos de teste, geração de métricas de testes, execução de testes, montagem do ambiente, etc. Porém, é importante salientar que a automação costuma ser um passo a ser dado, apenas após já termos um processo de Teste de Software bem estruturado e uma equipe preparada, pois ela muitas vezes exige um alto conhecimento técnico, principalmente para alguns tipos de testes específicos e é um esforço que precisa ser apoiado por um processo maduro.

Page 10: Teste de Software para Segurança de Sistemas2017.caos.ufrj.br/palestras/sergioMendes.pdf · Teste de “Caixa Branca” Teste de “Caixa Preta” Sistemas e programas de software

Sergio Mendes [email protected] www.cotiinformatica.com.br

https://g1.globo.com/tecnologia/noticia/ataques-para-tirar-sites-do-ar-no-brasil-crescem-138-em-2016.ghtml

Durante o ano passado, o CERT.br recebeu 60.432 notificações de máquinas que se envolveram em algum ataque de DDoS, quase 10% de todos os incidentes virtuais registrados.

Page 11: Teste de Software para Segurança de Sistemas2017.caos.ufrj.br/palestras/sergioMendes.pdf · Teste de “Caixa Branca” Teste de “Caixa Preta” Sistemas e programas de software

Sergio Mendes [email protected] www.cotiinformatica.com.br

Page 12: Teste de Software para Segurança de Sistemas2017.caos.ufrj.br/palestras/sergioMendes.pdf · Teste de “Caixa Branca” Teste de “Caixa Preta” Sistemas e programas de software

Sergio Mendes [email protected] www.cotiinformatica.com.br

Ataques de negação de serviço (DDoS)

Page 13: Teste de Software para Segurança de Sistemas2017.caos.ufrj.br/palestras/sergioMendes.pdf · Teste de “Caixa Branca” Teste de “Caixa Preta” Sistemas e programas de software

Sergio Mendes [email protected] www.cotiinformatica.com.br

https://inovedados.com.br/as-10-principais-vulnerabilidades-web

Ranking Vulnerabilidade

1 SQL Injection e Script Injection

2 Gerenciamento de Sessão e quebras de autenticação

3 Cross Site Scripting (XSS)

4 Quebras no controle de acesso

5 Configuração incorreta de segurança

6 Exposição de dados sensiveis

7 Proteção de ataque insuficiente

8 Cross-site Request Forgery (CSRF)

9 Utilizar componentes com vulnerabilidades conhecidas

10 APIS DESPROTEGIDAS

Page 14: Teste de Software para Segurança de Sistemas2017.caos.ufrj.br/palestras/sergioMendes.pdf · Teste de “Caixa Branca” Teste de “Caixa Preta” Sistemas e programas de software

Sergio Mendes [email protected] www.cotiinformatica.com.br

Teste de invasão O teste de invasão, também chamado teste de intrusão ou penetration testing (pentest), avalia a segurança de sistemas, plataformas e de qualquer ambiente através da simulação. A finalidade do teste é medir o nível de riscos do ambiente, fornecendo um relatório minucioso que apresenta, além dos resultados, as melhores soluções para os problemas.

São 4 os níveis de risco: • Crítico; • Alto; • Médio; • Baixo. É um processo de natureza cíclica, que exige certo grau de conhecimento técnico por parte do profissional responsável. Através das simulações de ataques reais, é possível identificar e explorar todas as vulnerabilidades.

Page 15: Teste de Software para Segurança de Sistemas2017.caos.ufrj.br/palestras/sergioMendes.pdf · Teste de “Caixa Branca” Teste de “Caixa Preta” Sistemas e programas de software

Sergio Mendes [email protected] www.cotiinformatica.com.br

Criação e controle efetivos das senhas Sabe-se da importância que as senhas têm para garantir a confidencialidade dos dados. No entanto, ainda assim, a criação de senhas fracas é um erro frequente, favorecendo que um ataque de força bruta descubra qual o login/senha utilizado.

Page 16: Teste de Software para Segurança de Sistemas2017.caos.ufrj.br/palestras/sergioMendes.pdf · Teste de “Caixa Branca” Teste de “Caixa Preta” Sistemas e programas de software

Sergio Mendes [email protected] www.cotiinformatica.com.br

HTTP x HTTPS Outra falha é confiar no protocolo HTTP que, na verdade, não oferece segurança na comunicação dos dados. A melhor opção é o HTTPS (protocolo HTTP sobre SSL ou TLS), que pode ser utilizado para segurança para as aplicações, oferecendo serviços como: Confidencialidade da informação entre servidor-cliente (criptografia); Autenticação do servidor para o cliente mediante a apresentação de certificados digitais.

Page 17: Teste de Software para Segurança de Sistemas2017.caos.ufrj.br/palestras/sergioMendes.pdf · Teste de “Caixa Branca” Teste de “Caixa Preta” Sistemas e programas de software

Sergio Mendes [email protected] www.cotiinformatica.com.br

Atualização e configuração de softwares A atualização dos softwares garante a segurança das aplicações web, dos servidores e da rede, e por isso deve sempre estar em dia. Outro ponto importante é a configuração adequada dos softwares das aplicações. Um erro muito repetido é usar a mesma configuração do ambiente de desenvolvimento no ambiente de produção. É importante observar que cada ambiente requer suas próprias configurações.

Page 18: Teste de Software para Segurança de Sistemas2017.caos.ufrj.br/palestras/sergioMendes.pdf · Teste de “Caixa Branca” Teste de “Caixa Preta” Sistemas e programas de software

Sergio Mendes [email protected] www.cotiinformatica.com.br

Ferramentas de Segurança OpenSource

Vega – É uma ferramenta de varredura de vulnerabilidades e testes escritos em Java. Ele funciona com as plataformas OS X, Linux e Windows. É GUI habilitado e inclui um scanner automatizado e um proxy de interceptação. Ele pode detectar vulnerabilidades em aplicações web como injeção de SQL, injeção de cabeçalho, cross site scripting etc. Pode ser estendida através de uma API JavaScript. https://subgraph.com/vega/

Page 19: Teste de Software para Segurança de Sistemas2017.caos.ufrj.br/palestras/sergioMendes.pdf · Teste de “Caixa Branca” Teste de “Caixa Preta” Sistemas e programas de software

Sergio Mendes [email protected] www.cotiinformatica.com.br

Ferramentas de Segurança OpenSource

SqlMap – Detecta vulnerabilidade de injeção SQL em um banco de dados site. Ele pode ser usado em uma ampla gama de bancos de dados e suporta 6 tipos de técnicas de injeção SQL: cegos baseado em tempo, cegos à base de boolean, baseada em erro, consulta união, consultas empilhados e out-of-band. Ele pode se conectar diretamente ao banco de dados sem usar uma injeção SQL e tem grandes recursos de impressão digital banco de dados e enumeração. http://sqlmap.org/

Page 20: Teste de Software para Segurança de Sistemas2017.caos.ufrj.br/palestras/sergioMendes.pdf · Teste de “Caixa Branca” Teste de “Caixa Preta” Sistemas e programas de software

Sergio Mendes [email protected] www.cotiinformatica.com.br

Ferramentas de Segurança OpenSource

ZED Proxy Attack (ZAP) – Ele foi desenvolvido pela AWASP e está disponível para as plataformas Windows, Unix / Linux e Macintosh. Tem elevada facilidade de utilização. Ele pode ser usado como um scanner ou para interceptar um proxy para testar manualmente uma página da web. Suas principais características são tradicionais e AJAX aranhas, Fuzzer, apoio soquete Web e uma API baseada em REST https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project

Page 21: Teste de Software para Segurança de Sistemas2017.caos.ufrj.br/palestras/sergioMendes.pdf · Teste de “Caixa Branca” Teste de “Caixa Preta” Sistemas e programas de software

Sergio Mendes [email protected] www.cotiinformatica.com.br

Ferramentas de Teste de Invasão Metasploit O Metasploit é um framework com uma sólida base de fãs entre os programadores. Ele adiciona ferramentas de teste customizadas, que procuram fraquezas em sistemas operacionais e aplicações. Os módulos customizados são lançados no GitHub e no Bitbucket, repositórios online para projetos de código.

Page 22: Teste de Software para Segurança de Sistemas2017.caos.ufrj.br/palestras/sergioMendes.pdf · Teste de “Caixa Branca” Teste de “Caixa Preta” Sistemas e programas de software

Sergio Mendes [email protected] www.cotiinformatica.com.br

Ferramentas de Teste de Invasão Nessus Vulnerability Scanner O Nessus Vulnerability Scanner também é popular na localização de vulnerabilidades. A tecnologia vasculha computadores e firewalls à procura de portas abertas para a instalação de software potencialmente malicioso. “Como ferramenta de teste, ela se comunica com o sistema operacional para encontrar vulnerabilidades. Ela é normalmente usada para compliance, determinando se os patches estão atualizados”, explica Garrett Payer, líder de tecnologia da provedora de soluções ICF International. “O Nessus só compara scans a bases de dados de fragilidades conhecidas”, complementa Saez.

Page 23: Teste de Software para Segurança de Sistemas2017.caos.ufrj.br/palestras/sergioMendes.pdf · Teste de “Caixa Branca” Teste de “Caixa Preta” Sistemas e programas de software

Sergio Mendes [email protected] www.cotiinformatica.com.br

Ferramentas de Teste de Invasão Kali Linux O Kali Linux é uma suíte de ferramentas pré-instaladas de testes de penetração, segurança e forense. “Ela tem funcionalidades para pessoas com zero conhecimento de segurança”, aponta Saez. De acordo com ele, instale a Kali Linux e abra qualquer uma das mais de uma dúzia de ferramentas que possui. “Ela vem com um grande volume de documentação de usuário”, assinala.

Page 24: Teste de Software para Segurança de Sistemas2017.caos.ufrj.br/palestras/sergioMendes.pdf · Teste de “Caixa Branca” Teste de “Caixa Preta” Sistemas e programas de software

Sergio Mendes [email protected] www.cotiinformatica.com.br

Medidas de precaução:

• Criar um plano de segurança para aplicações web

• Realizar um inventário das suas aplicações web

• Priorize suas aplicações web

• Priorizar Vulnerabilidades

• Executar aplicativos usando o mínimo de privilégios

• Use cookies de forma segura

• Conduzir Treinamentos para Conscientização de Segurança em Aplicações Web

Page 25: Teste de Software para Segurança de Sistemas2017.caos.ufrj.br/palestras/sergioMendes.pdf · Teste de “Caixa Branca” Teste de “Caixa Preta” Sistemas e programas de software

Sergio Mendes [email protected] www.cotiinformatica.com.br

Page 26: Teste de Software para Segurança de Sistemas2017.caos.ufrj.br/palestras/sergioMendes.pdf · Teste de “Caixa Branca” Teste de “Caixa Preta” Sistemas e programas de software

Agradecimentos • UFRJ - Conferência Anual Orientada à Segurança (CAOS)

www.cotiinformatica.com.br

COTI Informática Escola de Nerds

Sergio Mendes [email protected]