1 Confiabilidade de Sistemas Exemplos Ariane 5

Propaganda
Motivação
Confiabilidade de
Sistemas
Avelino Zorzo
Variedade de plataformas
Escalável
• Manter o serviço apesar da existência
de falhas – o que são falhas?
• Eliminar todas (?) as falhas
• O usuário não deve ser o responsável
por tolerar a falha
• Perspectiva
▪ Componentes de hardware cada vez
mais confiáveis
▪ Software e projetos cada vez menos
confiáveis – devido a complexidade e
rapidez para o desenvolvimento
Motivação
• Nesse ambiente qualidade passa a ser
um diferencial:
▪ O acesso a produtos concorrentes é
facilitado.
▪ Não se toleram “pequenos problemas”.
▪ É preciso manter os produtos sempre
atualizados e com qualidade.
Servidor
Cliente
Palms
Sensores
Baseado em apresentação
dos profs. Flávio e Bernardo
Exemplos
Ariane 5
1
Ariane 5
• Ariane 5 e sua carga foram destruídos 37
segundos depois de levantar vôo
• Erro devido a uma falha de software:
▪ Conversão de número em ponto flutuante
para inteiro de 16 bits
▪ Conversão gerou uma exceção que não foi
tratada
• Custo total do projeto: Us$ 7B
• Custo da carga: Us$ 500M
Ariane 5
"The failure of the Ariane 501 was caused by the complete loss of
guidance and attitude information 37 seconds after start of the
main engine ignition sequence (30 seconds after lift-off). This loss
of information was due to specification and design errors in the
software of the inertial reference system.
The internal SRI* software exception was caused during execution
of a data conversion from 64-bit floating point to 16-bit signed
integer value. The floating point number which was converted had
a value greater than what could be represented by a 16-bit signed
integer. "
*SRI stands for Système de Référence Inertielle
ou Sistema de Referência Inercial.
Ariane 5
Therac-25
SRI
Laser Gyro Aceleradores
Computador
OBC
Programa de vôo
Therac-25
Therac-25
• Therac-25 é um acelerador de
partículas para tratamento com
radioterapia.
• Dependia de software para segurança
(diferente do Therac-20, Therac-6).
• Máquina foi utilizada inúmeras vezes
sem problemas, mas causou
queimaduras e mortes.
• Problemas de software:
▪ Sem proteção para variáveis
compartilhadas (race conditions).
▪ Interface com usuário sensível a
velocidade do usuário.
2
Therac-25
Therac-25
• Acidentes
▪ 3 de junho de 1985: paciente recebeu
overdose
▪ 26 de julho de 1985: paciente recebeu
queimaduras graves – morreu em
novembro
▪ Dezembro de 1985: paciente recebe
overdose
▪ 21 de março de 1986: acidente – paciente
morreu
▪ 11 de março de 1986: acidente – paciente
morreu
▪ 17 de janeiro de 1987: nova overdose
Desafios
• Bugs no projeto de hardware e
software
▪ Complexidade dos sistemas
• Clusters e Grids, sistemas ubíquos
▪ Alto grau de paralelismo
• Computação móvel e computação
distribuída
▪ Baixa potência, tempo real
Desafios
• Novas tecnologias
▪ Computação quântica, nanotecnologia,
biotecnologia, RFID
Fundamentos básicos para
dependabilidade
• Interação humano-computador
▪ Complexidade, diferentes dispositivos
• Gerência de riscos
Baseado no artigo:
A. Avizienis, J-C. Laprie, B. Randell, C. Landwehr. “Basic
Concepts and Taxonomy of Dependable and Secure
Computing”. IEEE Transactions on Dependable and
Secure Computing, 1(1), 11-33, Jan. 2004.
3
Conceitos
• Sistema
Conceitos
• Função do sistema
▪ Entidade que interage com outras
entidades
• Outros sistemas (hardware, software,
pessoas, mundo físico, …)
▪ Estes outros sistemas compõem o
Ambiente
• Limite do Sistema
▪ Fronteira entre o Sistema e o Ambiente
▪ Aquilo para o qual o sistema foi
desenvolvido
• Comportamento do sistema
▪ Aquilo que o sistema faz para
implementar sua função – conjunto de
estados
• Estrutura do sistema
▪ Aquilo que habilita o sistema a gerar
seu comportamento
Conceitos
Dependabilidade
• Habilidade de entregar um serviço que
pode, justificadamente, ser confiado.
SISTEMA
AMBIENTE
• Habilidade de evitar defeitos no
serviço que são mais freqüentes e
mais severos do que é aceitável.
LIMITES DO SISTEMA
Dependabilidade
Ameaças
Falhas
Ameaças
Dependabilidade
Atributos
Formas de atingir
Ameaças
Erros
Defeitos
4
Ameaças
Ameaças - cadeia
• Defeito no serviço
▪ É o evento que acontece quando o
serviço desvia de seu correto
funcionamento
• Erro
FALHA
▪ Parte do estado do sistema que pode
levar o sistema a apresentar um
defeito
ERRO
ativação
DEFEITO
propagação
FALHA
causa
• Falha
▪ Hipótese da/ou considerado como a
causa de um erro
Ameaças - propagação
Componente B
Componente A
Disponibilidade
Falha
dormente
ativação
Atributos
propagação
erro
erro
propagação
Confiabilidade
erro
Interface do
serviço
Atributos
Falha externa
Serviço correto
Segurança (safety)
Integridade
defeito
Serviço incorreto
defeito
Manutenibilidade
Serviço correto
Atributos
• Disponibilidade (availability)
▪ Estar pronto para executar o serviço
corretamente
• Confiabilidade (reliability)
▪ Manter o serviço funcionando
corretamente
• Segurança (safety)
▪ Ausência de conseqüências
catastróficas sobre o usuário ou sobre
o ambiente
Atributos
• Integridade
▪ Ausência de alterações impróprias do
sistema
• Manutenibilidade
▪ Habilidade do sistema passar por
modificações e reparos
• Outros:
▪ Testabilidade, performabilidade,
confidencialidade, ...
5
Formas de atingir
Prevenção de falhas
Formas de atingir
• Prevenção de falhas
▪ Prevenir a ocorrência ou introdução de
falhas
Tolerância a falhas
• Tolerância de falhas
Formas de atingir
Remoção de falhas
▪ Evitar a ocorrência de defeitos nos
serviços na presença de falhas
Previsão de falhas
Formas de atingir
Dependabilidade
Falhas
• Remoção de falhas
Ameaças
▪ Reduzir o número de falhas e
gravidade das falhas
Erros
Defeitos
Disponibilidade
• Previsão de falhas
Dependabilidade
▪ Estimar o número atual, a incidência
futura, e as prováveis conseqüências
das falhas
Atributos
Confiabilidade
Segurança (safety)
Integridade
Manutenibilidade
Prevenção de falhas
Formas
de atingir
Tolerância a falhas
Remoção de falhas
Previsão de falhas
Falhas
• Falha pode ser:
▪ Ativa: quando causa um erro
▪ Dormente: quando ainda não causou
um erro
• Podemos classificar falhas de acordo
com oito perspectivas
• Algumas falhas podem ser
classificadas segundo diversas destas
perspectivas – combinação delas
Classificação para falhas
• Fase de criação ou ocorrência
▪ Falhas de desenvolvimento
• Ocorre durante o desenvolvimento do
sistema, ou manutenção durante a fase de
uso, ou geração de procedimentos para
operar ou manter o sistema
• Ex: furos de software, bombas lógicas
▪ Falhas operacionais
• Ocorre durante a entrega do serviço da fase
de uso
• Ex: tentativas de intrusão, vírus, entradas
incorretas
6
Classificação para falhas
• Limites do sistema
▪ Falhas internas
• Originada a partir da parte interna dos
limites do sistema
• Ex: Bombas lógicas, furos de software
▪ Falhas externas
• Originada fora dos limites do sistema e
propaga erros para dentro do sistema
através de interação ou interferência
• Ex: interferência física, vermes
Classificação para falhas
• Dimensão
▪ Falhas de hardware
• Originadas a partir de, ou que afetam, o
hardware
• Ex: problemas de produção, deterioração
física
▪ Falhas de software
• Afeta o software, programas ou dados
• Ex: entrada incorreta, vírus, bombas lógicas
Classificação para falhas
• Objetivo
▪ Falhas maliciosas
• Introduzida no sistema com o objetivo
malicioso de causar algum prejuízo ao
sistema
• Ex: Bombas lógicas, vírus, vermes
▪ Falhas não-maliciosas
• Introduzida sem um objetivo malicioso
• Ex: furos de software, entradas erradas
Classificação para falhas
• Causadas por fenômenos
▪ Falhas naturais
• Causada por um fenômeno natural sem a
interferência humana
• Ex: deterioração física, interferência física,
radiação
▪ Falhas geradas por humanos
• Resultado de ações de pessoas
• Ex: interferência física, bombas lógicas
Classificação para falhas
• Persistência
▪ Falhas permanentes
• Presença é contínua no tempo
• Ex: problemas no software, vírus,
deterioração física, interferência física
▪ Falhas transientes
• Presença tem tempo limitado
• Ex: deterioração física, interferência física
Classificação para falhas
• Intenção
▪ Falhas deliberadas
• A partir de decisões erradas com
conhecimento e intenção
• Ex: problemas de produção, vírus
▪ Falhas não deliberadas
• Devido a situações que o operador ou
desenvolvedor não tem conhecimento
• Ex: deterioração física
7
Classificação para falhas
• Capacidade
▪ Falhas acidentais
• Introduzidas inadvertidamente
• Ex: furos de software, entradas erradas
▪ Falhas por incompetência
• Resultado da falta de competência por
alguém que foi autorizado a fazer algo
• Ex: furos de software, interferência física
Defeitos
• Defeito de um serviço é definido como
um evento que ocorre quando o
serviço não atende sua funcionalidade
• Mesmo quando o serviço atende a
especificação ele pode apresentar um
defeito
▪ Ex: não está adequado para o usuário
▪ Defeito na especificação
• Classificação a partir de 4 categorias
Classificação para defeitos
Domínio
Detectabilidade
Defeitos
Consistência
Classificação para defeitos
• Quanto ao domínio
▪ Defeito de conteúdo: a informação
entregue pela interface do serviço se
desvia da função do serviço
▪ Defeito de tempo: o tempo da entrega
ou duração da informação se desvia da
função do sistema
• Cedo ou tarde
Conseqüências
Classificação para defeitos
• Quanto ao domínio
▪ Ambos conteúdo e tempo
• Defeitos de parada (halt): quando o estado
externo se torna constante, i.e., a atividade
externa, mesmo se existir, não é perceptível
ao usuário
• Defeitos erráticos (erratic): quando o
serviço é entregue mas de uma maneira
errática
Classificação para defeitos
• Quanto à detectabilidade
▪ Defeitos sinalizados:
• Uma sinalização ocorre na interface do
serviço quando um mecanismo verifica a
corretude do resultado do serviço
▪ Defeitos não sinalizados:
• Quando o serviço não informa defeitos para
o usuário
▪ Pode ainda existir alarme falso
▪ Serviço pode ser entregue mas em um
modo degradado
8
Classificação para defeitos
• Quanto à consistência
Classificação para defeitos
• Quanto à conseqüência
▪ Principalmente quando existem dois ou
mais usuários
▪ Defeitos consistentes: o resultado
incorreto do serviço é percebido da
mesma forma por todos usuários
▪ Defeitos inconsistentes: alguns ou
todos usuários recebem resultados
diferentes (alguns podem receber
inclusive resultados corretos)
▪ Defeitos inconsistentes = Defeitos
Bizantinos
▪ Defeitos menores: as conseqüências
ruins são equivalentes aos benefícios
do serviço quando correto
:
▪ Defeitos catastróficos: as
conseqüências são muito maiores, em
ordens de magnitude – as vezes não
calculáveis – do que o benefício do
serviço quando correto
Classificação para defeitos
Classificação para defeitos
Defeitos de conteúdo
• A gravidade (conseqüência) de um
defeito pode ser medido por diferentes
critérios:
▪ Disponibilidade: tempo que fica “forado-ar”
▪ Segurança: possibilidade de vidas
humanas estarem envolvidas
▪ Confidencialidade: tipo da informação
que pode ter sido “vazada”
▪ Integridade: grau de danos aos dados e
a possibilidade ou não de recuperação
Domínio
Tempo e conteúdo
Defeitos menores
Defeitos
Detectabilidade
Defeitos catastróficos
Consistência
▪ Redundância
▪ Estado errôneo não ser necessário para
entrega do serviço
Defeitos menores
Defeitos catastróficos
Conseqüências
Defeitos menores
Defeitos catastróficos
Erros
• Erro é a parte do estado sistema que
pode levar a um defeito
• Um erro pode ser detectado e então
uma mensagem é sinalizada
• Erros não detectados são chamados de
erros latentes
• Dois fatores - erro não gerar defeito
Defeitos de tempo
Classificação para erros
• Pode-se utilizar a mesma de defeitos
▪ Conteúdo-tempo; detectado-latente;
consistente-inconsistente; menorescatastróficos;
• Poderiam ainda ser classificados de
acordo com padrão de estragos:
▪
▪
▪
▪
Simples
Duplos
Aritmético
Byte ...
9
ATÉ A PRÓXIMA.
Extras
Segurança
Propriedades de um sistema
• Safety vs. Security
• Safety
▪ Segurança no sentido de algo que
funciona de maneira segura, sem
problemas ou acidentes
• Security
▪ Segurança no sentido de:
• Disponibilidade somente para acessos
autorizados
• Confidencialidade
• Integridade
• Safety vs. Liveness
• Safety
▪ Aquilo que o sistema não deve fazer
▪ Exemplo:
• Em um cruzamento duas sinaleiras em vias
perpendiculares não devem
• Liveness
▪ Aquilo que o sistema deve fazer.
▪ Exemplo:
• Em um cruzamento qualquer uma das
sinaleiras em um determinado momento vai
estar verde.
Voltar
10
Download