how to break software capítulo 2 taíse dias testing from the user interface

15
How to Break Software Capítulo 2 Taíse Dias Testing from the User Interface

Upload: internet

Post on 19-Apr-2015

109 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: How to Break Software Capítulo 2 Taíse Dias Testing from the User Interface

How to Break Software

Capítulo 2 Taíse DiasTesting from the User Interface

Page 2: How to Break Software Capítulo 2 Taíse Dias Testing from the User Interface

Roteiro

Usando o modelo Fault para guiar testes

Explorando Inputs Attack 1 Attack 2

Page 3: How to Break Software Capítulo 2 Taíse Dias Testing from the User Interface

Modelo Fault para guiar testes Baseado em estratégias: ataques Divididos em 4 categorias:

aceitar entradas produzir entradas armazenar dados executar cálculos (computação)

Devem ser executados um de cada vez

Page 4: How to Break Software Capítulo 2 Taíse Dias Testing from the User Interface

Explorando Inputs

Aplicações sem documentação

Testadores precisam conhecer comportamento do software

Dificuldade pra realizar testes

Solução: conhecer a aplicação usando o software

Page 5: How to Break Software Capítulo 2 Taíse Dias Testing from the User Interface

Attack 1

“Apply inputs to force all error messages to occur”

Page 6: How to Break Software Capítulo 2 Taíse Dias Testing from the User Interface

Quando aplicar esse ataque? Característica essencial de um

software: desvidar entradas incorretas ou responder apropriadamente a essas entradas

Assegurar que código de erro escrito pelo desenvolvedor foi testado

Page 7: How to Break Software Capítulo 2 Taíse Dias Testing from the User Interface

Quando aplicar esse ataque? Inputs que estão fora do intervalo permitido

ou de tipo diferente do permitido

Provavelmente serão encontrados bugs

Conhecer técnicas utilizadas por

desenvolvedores Input Filters: entradas incorretas filtradas

pela interface gráfica Input checking: software não é executado

com entradas incorretas (if else) e retorna mensagens de erro

Exception handlers: “permite” o sistema falhar, permite que o sistema continue interagindo com o usuário

Page 8: How to Break Software Capítulo 2 Taíse Dias Testing from the User Interface

Quando aplicar esse ataque? O teste deve focar em inputs

erradas

Gerar cada mensagem de erro pelo menos uma vez

Page 9: How to Break Software Capítulo 2 Taíse Dias Testing from the User Interface

Que falhas do software tornam esse ataque bem sucedido? Desenvolvedor pára de pensar

no fluxo principal e considera entradas incorretas

Software pára a execução para mostrar a mensagem de erro e continua a execução da aplicação

Exception handler Benefícios aos usuários e aos

desenvolvedores de manutenção

Page 10: How to Break Software Capítulo 2 Taíse Dias Testing from the User Interface

Como determinar se esse ataque revela falhas? Dados de entrada que os

desenvolvedores não sabiam que eram incorretos

Casos específicos negligenciados Provocam o travamento dos

softwares Mensagens mal formadas

prejudicam credibilidade do software

Page 11: How to Break Software Capítulo 2 Taíse Dias Testing from the User Interface

Como conduzir esse ataque? Considerar as seguintes

propriedades:

O tipo da entrada: utilizar tipos inválidos geralmente causam mensagens de erro

Tamanho da entrada

Valores de fronteiras: todo tipo de dado numérico possui valores limites

Page 12: How to Break Software Capítulo 2 Taíse Dias Testing from the User Interface

Attack 2

“Apply inputs that force the software to estabilish default

values”

Page 13: How to Break Software Capítulo 2 Taíse Dias Testing from the User Interface

Ocorre falha caso o software seja executado sem que o valor default da variável seja atribuído

Garante que a maior parte de valores default para dados são testados

Bugs surgem caso variáveis não inicializadas sejam utilizadas

Aplicado em qualquer programa que declara, inicializa e usa dados

Funciona por causa de falhas na compilação Setar compilador corretamente Ferramentas para analisar código

Exemplo: deixar um campo em branco não atribui nenhum valor à variável

Quando aplicar esse ataque?

Page 14: How to Break Software Capítulo 2 Taíse Dias Testing from the User Interface

Como conduzir esse ataque? Verificar opções de botões,

configuração de painéis, telas de instalação

As mensagens retornadas por esses itens são comumente usadas em toda a aplicação

O testador deve selecionar os dados de acordo com sua intuição (se o dado está sendo o usado)

Consultar o código na seção de declaração de dados

Page 15: How to Break Software Capítulo 2 Taíse Dias Testing from the User Interface

Como conduzir esse ataque? Após identificar dados:

Aceitar valores default exibidos pelo software

Entrar com valores nulos Trocar o valor default Usar primeiro o valor default e depois

trocar por valor nulo