Instituto Politécnico de Castelo Branco Escola Superior de Tecnologia Departamento de Engenharia Informática

Sistemas Informáticos Industriais

• Análise de Sistemas • Bug e Debug • Tipos de Bugs • Outros tipos de Bugs • Métodos de Detecção de Bugs • Ciclo de vida de um Bug
2

• Identificação:
– Papel do sistema – Requisitos

• Realizada por Analistas de Sistemas ou Programadores • Uma das fases da análise é a verificação de bugs.

3

• Ocorrência de um erro de fábrica
– Hardware – Software

• Provém do ano 1945
– Quando foi encontrada uma mariposa num circuito do MARK II.

• É usado por engenheiros para classificar pequenas falhas • Debug
– Processo de depuração de bugs

4

5

• Podem ocorrer em diversas fases
– Fase de requisitos
• Mau entendimento das necessidades dos utilizadores • Descrição ambígua ou incompleta • Interface gráfica pobre.

– Fase de análise e desenho
• Arquitectura de software • Modelo de dados • Interfaces do sistema

– Fase de Construção
• Implementação inadequada dos algoritmos de processamento • Falta da documentação do código • Deficiente interligação dos componentes

6

• Podem ocorrer em diversas fases
– Fase de requisitos
• Mau entendimento das necessidades dos utilizadores • Descrição ambígua ou incompleta • Interface gráfica pobre.

– Fase de análise e desenho
• Arquitectura de software • Modelo de dados • Interfaces do sistema

– Fase de Construção
• Implementação inadequada dos algoritmos de processamento • Falta da documentação do código • Deficiente interligação dos componentes

7

• Originados devido:
– Pressão nos prazos de entrega do software – Código complexo – Mudanças na tecnologia

• Condições ambientais
– Radiação – Magnetismo – Poluição
8

• Geração de sequências de instruções de forma dinâmica
– Imediatamente antes da execução do programa.

• Complica a introdução de código por parte de terceiros
– Aquando da execução do programa.

• Controlo da probabilidade de distorção do programa por influências externas
– Através da execução de um programa de correcção automática a cada X ciclos.

• Geração de código demorada -> Alguma operações implementadas em Hardware • Não permite detectar bugs introduzidos pelo programador no acto de criação do programa
9

• Sistema automático que identifica o programa ou o módulo do programa
– Pattern Recognition -> coloca dados de entrada nas classes, responsáveis por extrair os atributos/propriedades essenciais que caracterizam estes mesmos dados. – Classe -> categoria constituída por um número de propriedades igual para todos os elementos que lhe pertencem.
10

• Princípios para a subdivisão de elementos em classes:
– Enumeração dos membros da classe – Uniformização das propriedades
• Quais as propriedades comuns entre os elementos da mesma classe.

– Agrupamento

• Bugs existentes no ambiente de software nem sempre são detectados
– Impossibilidade de determinar os atributos que caracterizam inequivocamente uma classe
11

• Analisa o software, em termos de segurança, relativamente à existência de DPM’s (Destructive Program Means)
– Exemplos de DPM’s: Vírus, Trojan Horses, etc.

• 3 níveis = 3 fases:
– Análise Lexical – Análise Sintáctica – Interpretação Semântica
12

• Análise Léxica
– Verificação estática num programa relativamente à presença de pedaços de código de DPM’s conhecidos e de outros códigos suspeitos.

• Análise Sintáctica
– Desmonta o código de um programa e faz a retradução deste em construções algorítmicas – Faz a comparação destas construções com as construções de DPM’s conhecidos
• Existentes numa Base de Conhecimento (espécie de Base de Dados)

13

• Interpretação Semântica
– Inicia os programas num ambiente virtual para a obter os códigos do programa após a sua auto-encriptação e autoextracção. – Obtenção de um protocolo de desafio/resposta relativo ao programa e ao seu ambiente operacional

• Vantagem: Uso de uma Base de Conhecimento
– O Volume da Base de Conhecimento indica a qualidade do meio de detecção de DPM’s

• Desvantagens:
– Impossibilidade de detecção de DPM’s que não estejam na sua Base de Conhecimento. – Bugs podem utilizar métodos especiais que os protejam, na desmontagem e no rastreio do programa – Possibilidade de que nem todos os ramos de um programa sejam rastreados 14

• Um sistema computacional isolado = Sistema protegido! • Antes da instalação de um sistema de protecção:
– Verificar a BIOS. – Verificar o Sistema Operativo. – Verificar o Software instalado.
15

• Um sistema computacional isolado = Sistema protegido! • Antes da instalação de um sistema de protecção:
– Verificar a BIOS. – Verificar o Sistema Operativo. – Verificar o Software instalado.
16

• Um bug deve ter a capacidade de:
– Activar e iniciar – Continuar em memória principal – Activação após o reinicio do sistema – Duplicação – para que se consiga infiltrar noutras máquinas – Autodestruição – elimina o código e indicadores da sua presença

17

• GOANNA
• Software Inteligente de detecção de bugs:
– CP-Miner

• Falta de informação existente na internet -> os métodos anteriormente apresentados podem-se encontrar já desactualizados
– Podendo existir novos métodos que derivem destes e que forneçam melhores condições no acto da detecção de bugs.

• Existem vários tipos de bugs, bem como diversas formas de estes aparecem num programa
• Existem softwares responsáveis por fazer a detecção da maior parte destes bugs
– Baseados nos métodos anteriormente explicados ou, baseados em evoluções destes mesmos métodos.
19

Questões?