Você está na página 1de 40

CRITICAL SYSTEMS

Ian Sommerville, 8 edio Captulo 3


Aula de Luiz Eduardo Guarino de Vasconcelos

Objetivos
Explicar que uma falha pode causar graves consequncias humanas ou econmicas Explicar as quatro dimenses de confiana no sistema: disponibilidade, confiabilidade, segurana e proteo Explicar que para obter confiana, deve-se evitar erros durante o desenvolvimento, detectar e corrigir erros quando em uso e limitar danos causados por falhas operacionais

Tpicos abordados
Sistema crtico de segurana simples Confiana no sistema Disponibilidade e confiabilidade Segurana (Security) Proteo (Safety)

Concepo de Confiana
A propriedade emergente mais importante de um sistema crtico a confiana A confiana em um sistema est no grau de confiana dos usurios em que o sistema ir operar conforme sua expectativa e que no ir falhar durante o uso normal Confiana e utilidade no so a mesma coisa. Um sistema pode no ser muito confivel, mas pode ser til

Confiana importante
Reflete o grau de confiana do usurio no sistema Sistemas no confiveis, inseguros ou desprotegidos so frequentemente rejeitados por seus usurios. Se no confia, no usa. Alm disso, podem se recusar a comprar/usar outros produtos da mesma empresa. Custos de falha de sistema podem ser muito altos (queda de aeronave, mssil, aeroespacial, etc) Sistemas no confiveis podem causar perda de informao: redundncia cara

Sistemas crticos
Sistemas crticos de segurana
Ferimentos, perda de vida ou danos ao ambiente. Ex.: sistema de fbrica de produtos qumicos

Sistema crtico de misso


No atingir o objetivo. (Controle de aeronaves)

Sistema crtico de negcios


Falha resulta em custos para os negcios. (Sistema de contabilidade de clientes de um banco)

Mtodos de desenvolvimento para sistemas crticos


Uma falha em sistema crtico tem custo alto Uso de tcnicas onerosas de engenharia de software para sistemas no crticos, podem ser usadas:
Mtodos formais para reduo de testes (testes representam mais de 50% do custo de um sistema crtico) Anlise estatstica

Componentes sujeitos a falhas


Hardware
Erros de fabricao Fim da vida til (MTBF) Erro de especificao no projeto

Software
Enganos ou erros de implementao ou especificao

Humanos
M operao do sistema. Como o hardware e o software tornaram-se mais confiveis, falhas de operao so atualmente a maior causa de falhas de sistema.

Dimenses de confiana
Software Crtico Software cujas caractersticas possuem riscos inerentes a danos fsicos, financeiros e pessoais. Disponibilidade A capacidade do sistema disponibilizar servios quando necessrio;
Tempo Real intervalo <= a 1 segundo On-line intervalo > que 1 segundo

Confiabilidade A capacidade do sistema disponibilizar servios conforme especificado; Segurana (safety) A capacidade do sistema operar sem falhas catastrficas; Proteo (security) A capacidade do sistema se proteger contra invaso acidental ou deliberada.

Dimenses de confiana

Outras propriedades de confiana


Facilidade de reparo / Repairability
Falhas so inevitveis, mas interrupes devem ser minimizadas.

Facilidade de manuteno / Maintainability


Sistema deve ser adaptado aos novos requisitos;

Capacidade de sobrevivncia / Survivability


Capacidade do sistema funcionar mesmo sob ataque. Garantia de que pode fornecer o mnimo dos servios acordados. Trs estratgias para aprimorar sobrevivncia: resistncia a ataques; reconhecimento de ataque; recuperao de danos causados por ataques

Tolerncia a falhas / Error tolerance


Relacionada a usabilidade. At o onde o sistema foi projetado para evitar erros de entrada dos usurios. Quando ocorrem erros de usurios, o sistema deve detect-lo, corrigi-lo ou solicitar nova entrada do usurio

Facilidade de manuteno / Maintainability


Um atributo de sistema com capacidade de reparao de sistema aps uma falha ter sido descoberta ou alterando o sistema para incluir novos recursos muito importante para os sistemas crticos como falhas so muitas vezes introduzidas num sistema por causa de problemas de manuteno Manutibilidade diferente das outras dimenses da confiana porque um atributo de sistema esttico e no dinmico

Sobrevivncia / Survivability
A capacidade de um sistema de continuar a entregar os seus servios aos usurios aps um ataque acidental ou deliberado Este um atributo cada vez mais importante para sistemas distribudos cuja segurana pode ser comprometida Sobrevivncia incorpora a noo de resilincia a capacidade de um sistema para continuar em funcionamento, apesar dos fracassos de componentes

Confiana vs Desempenho
Os sistemas que no so confiveis, no apresentam segurana ou so inseguros no so utilizados Os custos da falha de um sistema podem ser enormes difcil readequar a confiana Freqentemente, possvel compensar a falta de desempenho do sistema Sistemas no confiveis podem causar a perda de informaes

Custos de confiana
Custos de confiana tendem a aumentar exponencialmente como os nveis de confiana so necessrios Existem duas razes:
O uso de tcnicas mais caras desenvolvimento e de hardware que so necessrios para atingir os nveis mais elevados de confiabilidade O aumento dos testes e validaes de sistema que so necessrios para verificar que os nveis de confiabilidade exigidos foram atingidos

Curva de custo/confiana

Disponibilidade e Confiabilidade
Confiabilidade
a probabilidade de operao livre de falhas durante um tempo especificado, em um dado ambiente, para um propsito especfico

Disponibilidade
a probabilidade de um sistema, em determinado instante, ser operacional e capaz de fornecer os servios requeridos

Estes atributos podem ser expressados quantitativamente

Disponibilidade e Confiabilidade
Sistema A: Falha uma vez por ano, porm a cada falha o sistema demora 3 dias para reiniciar Sistema B: Falha 1 vez por ms e cada falha demora 10 minutos para reiniciar o sistema. Concluso: A mais CONFIVEL que B. B tem mais DISPONIBILIDADE que A.

Disponibilidade e Confiabilidade
Saber se um sistema confivel ou no, uma questo relativa, ou seja, depende do contexto em que est sendo aplicado.
Exemplo do carro a 100 Km/h (Convencional e de corrida) Exemplo de limpador em chuva forte (Seatle clima mido, pode usar; Las Vegas clima seco pode nem usar)

Terminologia da confiabilidade

Falhas e fracassos
Fracassos so geralmente um resultado de erros de sistema que so derivados de falhas no sistema No entanto, falhas no necessariamente resultam em erros no sistema Erros no conduzem necessariamente para falhas de sistema

Assegurar a confiabilidade
Evitar defeitos
So utilizadas tcnicas de desenvolvimento que minimizam a possibilidade de erros e/ou os captam antes que eles resultem na introduo de defeitos no sistema

Deteco e excluso de defeitos


Uso de tcnicas de verificao e validao, que aumentam as chances de que defeitos sejam detectados e removidos antes que o

sistema seja utilizado Tolerncia a defeitos


Uso de tcnicas que asseguram que os defeitos em um sistema no resultem em erros do sistema ou que assegurem que os erros do sistema no resultem em falhas

Modelando confiabilidade
Pode-se modelar um sistema com o mapeamento de entrada/sada onde algumas entradas podem resultar em sadas errneas A confiabilidade do software a probabilidade de que, em uma execuo em particular, a entrada seja membro do conjunto de entradas que provoquem um sada errnea Cada usurio de um sistema utiliza-o de diferentes maneiras

Mapeamento de Entrada e Sada


Inputs causing erroneous outputs Input set Ie

Program

Erroneous outputs Output set Oe

Percepo de confiabilidade
Possible inputs User 1 Erroneous inputs

User 3

User 2

Melhoria da confiabilidade
Removendo X% de falhas de um sistema no quer dizer que melhorou a confianbilidade em X%. Um estudo da IBM mostrou que removendo 60% de defeitos de um produto o resultado foi de 3% na melhoria da confiana Defeitos em programas podem estar em reas do cdigo que so raramente executadas e podem nunca ser encontrado pelo usurio. Removendo estes defeitos a percepo de confiana no ser alterada

Segurana (safety)
A segurana de um sistema um atributo que reflete a capacidade do sistema de operar, normal e anormalmente, sem ameaar as pessoas ou o ambiente cada vez mais importante a considerar como software de segurana cada vez mais incorporam os dispositivos software baseado em sistemas de controle Requisitos de segurana so necessidades exclusivas, ou seja, eles excluem situaes indesejveis em vez de especificar o que exigido pelos servios de sistema

Softwares crticos de segurana


Software crtico de segurana primria
um software que embutido como um controlador em um sistema, a disfuno desse software pode causar um disfuno de hardware, o que resulta em ferimentos em pessoas ou em dano ambiental. Ex.: sistema de aeronave.

Software crtico de segurana secundria


um software que pode indiretamente resultar em ferimentos. Ex.: Banco de dados com detalhes de medicamentos. Se tiver erros neste sistema, a administrao incorreta pode resultar em danos ao paciente

Segurana e confiabilidade
Segurana e confiabilidade esto relacionadas, mas so distintas Em geral, segurana e confiabilidade so necessrias, mas no so condies suficientes para a segurana de um sistema Confiabilidade est relacionada com a conformidade de uma especificao e prestao de servio Segurana est relacionada com a garantia de que o sistema no pode causar danos independentemente de serem ou no conforme a especificao Confiabilidade = Qualidade no tempo! Segurana (safety) = Qualidade no uso!

Sistemas confiveis inseguros


Especificao incompleta, por no descrever o comportamento exigido do sistema em algumas situaes crticas. Dificuldades com requisitos constituem a causa principal dos erros de software relacionados com segurana, ainda mais se chegarem a integrao. Disfunes de hardware podem fazer com que o sistema se comporte de maneira imprevisvel e apresentar o software com um ambiente no previsto. O operador do sistema pode gerar entradas que no so individualmente incorreta, mas que podem levar a uma disfuno do sistema. Ex. mecnico aciona boto para levantar trem de pouso mas avio est no cho.

Terminologia de segurana

Assegurar a segurana
Evitar o perigo
O sistema projetado de modo que os perigos sejam evitados.

Detectar e eliminar o perigo


O sistema projetado de modo que os perigos sejam detectados e eliminados antes que resultem em acidentes

Limitar o prejuzo
O sistema pode incluir caractersticas de proteo que minimizem os danos que podem resultar de um acidente

Acidentes normais
Acidentes em sistemas complexos raramente tm uma nica causa, uma vez que estes sistemas so projetados para serem resistentes a um nico ponto de falha Projetar sistemas de tal forma que um nico ponto de falha no cause um acidente constitui um princpio fundamental de seguro de projeto de Sistemas Quase todos os acidentes so um resultado de combinaes de vrias coisas que acontecem de errado ao mesmo tempo Os sistema controlados por software podem fornecer intertravamentos de segurana sofisticados e aceitar estratgias de controle que reduzem o tempo

Proteo (security)
A proteo de um sistema uma avaliao do ponto em que o sistema protege a si mesmo de ataques externos, que podem ser acidentais ou deliberados A proteo importante para todos os sistemas crticos, onde os ataques externos podem provocar danos ao sistema A proteo um pr-requisito essencial para disponibilidade, confiabilidade e segurana

Proteo fundamental
Se um sistema foi comprometido de alguma maneira, ento os argumentos para confiabilidade e segurana no podem ser sustentados O software de sistema pode ser corrompido e se comportar de maneira imprevisvel Se um sistema no responde a entradas inesperadas ou se seus limites no so verificados, ento os atacantes podem explorar essas fraquezas, a fim de obter acesso ao sistema

Terminologia de proteo

Danos por falta de proteo


Interrupo de servio (Denial of Service)
O sistema pode ser forado a um estado em que seus servios normais se tornem indisponveis

Corrupo de programas ou dados


Os componentes de software de sistemas podem ser alterados sem autorizao

Revelao de informaes confidenciais


Informaes gerenciadas pelo sistema podem ser expostas a pessoas no autorizadas

Assegurar a proteo
Evitar a vulnerabilidade
O sistema projetado de modo que vulnerabilidades no ocorram. Por exemplo, se no existir uma conexo de rede externa ento um ataque externo impossvel

Detectar e neutralizar ataques


O sistema projetado para detectar vulnerabilidades e remov-las antes que resultem em uma exposio. Por exemplo, um verificador de vrus que analisa arquivos recebidos a fim de remover os possveis vrus

Limitar a exposio
O sistema projetado para que as conseqncias de um ataque bem sucedido sejam minimizadas. Por exemplo, uma poltica de backup que permita que informaes danificadas sejam restauradas.

Pontos-chave
A confiana em um sistema reflete o grau de confiana do usurio no sistema A disponibilidade de um sistema a probabilidade de que ele ser capaz de prestar servios quando for necessrio A confiabilidade a probabilidade de que os servios do sistema sejam prestados conforme especificado A confiabilidade e a disponibilidade so geralmente as mais importantes, mas no so condies suficientes para assegurar segurana (safety) ou proteo (security)

Pontos-chave
A confiabilidade est relacionada probabilidade de um erro ocorrer durante o uso operacional. Um sistema com erros conhecidos pode ser confivel A segurana (safety) de um sistema um atributo, que reflete a capacidade de o sistema operar sem ameaar as pessoas ou a ambiente A proteo (security) de um sistema um atributo, que reflete a capacidade do sistema se proteger em caso de ataques externos

Você também pode gostar