apresentação do powerpoint - deljoe.com.brdeljoe.com.br/professor/cloud/cloud_aula01.pdf • tempo...
TRANSCRIPT
Introdução• Segurança“Conjunto das ações e dos recursos utilizados para proteger algo ou alguém. O que serve para diminuir os riscos ou os perigos. = GARANTIA”
– ISO/ IEC 27002:2005– Atributos - Confidencialidade, Integridade e Disponibilidade– Engenharia Social – Espionagem, Ação humana
• Ataque indireta – aplicativos instaladas, envio de e-mail, sites maliociosos e falsos, cartas, etc.
• Ataque direto – Telefone, fax, chat, etc.– Vulnerabilidade e Risco– Tecnologia
“mitigar o risco é desenvolver mecanismos para se reduzir o risco até um nível aceitável para a organização“ MARSHALL (2002)“isto pode ser feito em cima da prevenção contra perdas, reduzindo-se o impacto e a probabilidade de esta ocorrer” VAUGHAN (1997)
Segurança• Requisitos de segurança
– Ambiente– Integridade– Autenticidade– Autorização– Comunicação– Não Repudio– Monitoramento– Administração
• Técnicas de segurança– Autenticação
– Criptografia
– Assinaturas Digitais
– Comunicação Segura
– Papéis de Usuario
– Autorização
– Firewalls
Tipos de falhas• Causa:
– Humana– Técnica– Fisica
• Natureza: falha de hardware, falha de software, de projeto, de operação, ...
• Duração ou persistência: permanente ou temporária• Extensão: local a um módulo, global• Valor: determinado ou indeterminado no tempo
Disaster Recovery (Recuperação de Desastre)
• Cenários e procedimentos que devem ser apicados sempre que ocorrer uma falha decorrente de alguma inconsistência
• ISO27000, BACEN 3380 e SOX• Plano de ação
– Quem, O que, Como, Onde e Quando
• Ativação de serviços• Automatização de processo• Backup, Integridade e Disponibilidade• Sincronização• Plano
Avaliação de Riscos• EVENTO: Revelação, interrupção, modificação, roubo,
destruição, uso indevido, etc.
• TIPO DE AMEAÇA: Maliciosa, acidental, erro, falha, natural, requerimento externo, etc.
• RECURSO/ ATIVO: Pessoas, empresa, processos, infraestrutura, informação, aplicações, equipamentos, etc.
• VIABILIDADE DO ATAQUE: Custo menor que ganho, motivação pelo desafio (vaidade), capacidade de ser bem sucedido, sensação impunidade.
• ATOR: Internos (colaboradores, terceiros, eventuais). Externos (visitantes, concorrentes, parceiros, reguladores, governo, clientes, etc).
• CAPACIDADE DE CONTROLE: Qualidade dos controles, alinhados com negócio, padronizados, conhecidos, documentados, monitorados, melhorados.
Confiabilidade• TEMPO MÉDIO PARA FALHAR (Mean Time to Failure – MTTF)
• TEMPO MÉDIO ENTRE FALHAS (Mean Time Between Failure – MTBF) = é obtido pela soma dos tempos de operação de todas as unidades, incluindo as que não falharam e dividido pela somatória de falhas das unidades. O tempo de operação é a somatória de horas que as unidades estavam em uso, ou seja, não estavam desligadas.
• Quanto maior (MTTF e MTBF), menor a probabilidade da unidade falhar para uma dada missão de tempo e maior a confiabilidade. Um decréscimo na taxa de falha resulta em um aumento da MTTF e MTBF e consequentemente, um aumento da confiabilidade
ConfiabilidadeMTBF = (Tempo Total de operação / (Numero de Falhas + 1))
Confiabilidade
• MTTF = (Dt1 + Dt2 + Dt3)/nº defeitos• MTTF = 46,5/3 = 15,5 h• Taxa de defeitos () = 1/MTTF = 0,064 def/h
Confiabilidade• MTTR – Mean time to repair (Tempo médio de
reparação) = Tempo médio da parada do processo a até a recuperaçã como um todo
• MTBI – Mean time Between Interruption (Tempo médio de Interrupção) = Tempo médio entre interrupções
• OEE - Overall Equipament Effectivences (Eficiência Geral de Equipamento)
Disponibilidade• Disponibilidade é a probabilidade que uma unidade estará pronta
para uso num instante de tempo determinado, ou sobre um período de tempo determinado, baseados em aspectos combinados de confiabilidade e mantenabilidade. Em outras palavras, a disponibilidade é uma função de sua taxa de falha (confiabilidade) e o tempo requerido para restaurar a unidade após uma falha (mantenabilidade).
( )MTTRMTBF
MTBFDisponibilidade =
+
Calculo• Equipamento
– Trabalhou 8640 Horas Durante um ano– Falho 17 Vezes– Tempo médio de reparo foi de 2 Horas (MTTR)
Confiabilidade = 8640 / (17 + 1) = 480 (MTBF)
(MTBF + MTTR)
MTBFDisponibilidade = =(480 + 2)
480 =0,9958
ou
99,58%
Exercicio• Equipamento– Trabalhou 14 Horas por dia Durante 360 dias
– Falho 2 Vezes
– Tempo médio de reparo foi de 1,5 Horas (MTTR)
Exercicio• Equipamento
– Trabalhou 14 Horas por dia Durante 360 dias– Falho 2 Vezes– Tempo médio de reparo foi de 1,5 Horas (MTTR)
Confiabilidade = 5040/ (2 + 1) = 1680 (MTBF)
(MTBF + MTTR)
MTBFDisponibilidade = =(1680 + 1,5)
1680 =0,9991
ou
99,91%
Redundância para detecção e mascaramento
• Redundância– Detecção
• Encontro de uma falha durante uma operação.• Comparação• Ex.: Dois processadores trabalhando simultaneamente para o
mesmo propósito em um cluster, porém identificou-se que um deles esta trabalhando em um frequencia diferente. Logo identificou-se uma falha.
– Mascaramento• Numero maiores de componente que o Detecção• Continuidade da operação sem maiores problemas
Confinamento e avaliação de danos
• Latência de falha (Ocorrência de falha até o erro –detectado)– Pode provocar espalhamento de dados inválidos
• Confinamento– Estabelece limites para a propagação do dano
• Confinamento e avaliação dependem de decisões de projeto
• Facilitam detecção e recuperação
Confinamento e avaliação de danos
• confinamento: – Isolamento da área / Definir limites de corrupção– restrições ao fluxo de informações
• evitar fluxos acidentes • estabelecer interfaces de verificação para detecção de erros
• Avaliação dos danos: – Origem– Momento– estática: projeto inicial, hardware– dinâmica: fluxo da informação (execução e software)
Recuperação de Erros• troca do estado atual incorreto para um estado livre
de falhas
– ocorre após detecção
– pode ser um estado anterior, livre de falhas, do sistema
– pode ser um novo estado
– em último caso, pode ser o estado inicial
Recuperação de Erros• Avanço (forward error recovery)
– Condução a novo estado consistente
• ainda não ocorrido desde a última manifestação de erro
– Eficiente, mas específica a cada sistema
• Danos devem ser previstos acuradamente
Mais usadas em sistemas de tempo real, onde o retorno para um estado anterior (no tempo) seja inviável
Recuperação de Erros• Retorno (backward error recovery)
– Condução a estado anterior consistente
• Alto custo mas de aplicação genérica
– Exemplo de técnica de recuperação por retorno
• Pontos de verificação (checkpoints) – Mais simples
– Salvamento de todo o estado do sistema periodicamente
Tratamento de falhas• Localizar a origem do erro (falha)
– Localizar a falha de forma precisa
– Reparar a falha
– Recuperar o restante do sistema
• Hipótese de falha – Uma única falha de cada vez
Importante: falhas permanente é diferente de temporárias
Sistema• Atributos
– Interface– Ponto de vista– Nivel de abordagem (Detalhe)– Hierarquia (divisão)
• Caracteristicas– Elemento– Ambiente– Objetivo Comum– Relação entre elementos– Cumprir uma Função
Sistemas de alta disponibilidade• Sistemas que buscam-se manter ativos no maior tempo
possível• Utilização
– Redundância– Segurança– Contigência– Normas– Gestão– Cluster
• Preciso de sincronização (Processamento e dados)
Sistemas de vida longa• A confiabilidade é prioridade máxima e normalmente é impossível
realizar manutenção não-planejada. • Baixa utilização de energia, leves e finos• Resiliência = Capacidade de superar, de recuperar de adversidades.• Exemplos:
– Satélites– Controladores de Vôo (Espacial, doméstico e demais)– Sondas (espacial, maritima, terrestre)– Sistemas de Saude– Sistemas de monitoramento Geográfico (Mar, Vulcão e outros)
Computação Critica• Missão critica em ti = é quando um processo, equipamento
ou aplicação, ao falharem ou ficarem indisponíveis, afetam a operação de uma empresa ou causam grandes perdas e transtornos
• União entre investigação técnica, desenvolvimento e Teoria Critica
• Advanced Identity Representation (AIR) • Caracteristicas
– Alta Disponibilidade e Disponibilidade Continua– Redundância
Introdução• Projetando
– Requisitos– Objetivo– Ambiente– Tempo– Custo– Quem?
• Metologia de apoio / suporte– PMBOK, SCRUM, PRINCE2 (Gestão do Projeto)– CMMI, RUP, XP, UML (Desenv Soft)– ISO 27000 e 20000 (Infra Estrutura)– SOA (Serviço)– Cobit (Gestão de TI)– ITIL (Gestão do Serviços)
Pontos criticos de falha (SPOF)• Single points of Failure (Pontos unicos de Falha)
– Compromete toda a disponibilidade
– Compromete todo o processo / Sistema
– Pode surgir por:
• Uma falha de projeto ou concepção
• Execução falha
• Monitoramento indevido
Pontos criticos de falha (SPOF)• Fase de implementação
– Hardware• Estar atento a todo e qualquer componente• Saber da capacidade dos mesmos• Realizar testes de stress• Buscar referências
– Software• Buscar informações detalhadas• Alinhar requisitos e escopo• Simular, testar, ensaiar
– Processamento– Armazenamento
Revisão• Projetando um Sistema HA
– Projeto
– Metodologia
– Implementação da arquitetura
– Pontos Criticos de Falha (SPOF)
– Eliminando SPOF
Introdução• Definição: Formado por um conjunto de
computadores, que utiliza um tipo especial de sistema operacional classificado como sistema distribuído
• Objetivo: Ganho de performance ou Disponibilidade
• “Transparente", visto pelo usuário ou por outro sistema
• Não é necessário haver um conjunto de hardware exatamente igual em cada nó
Alta disponibilidade• permanecer ativos por um longo
período de tempo e em plena condição de uso
• nunca param seu funcionamento
• conseguem detectar erros se protegendo de possíveis falhas
Balanceamento de Carga• controlar a distribuição equilibrada
do processamento.
• Requer um monitoramento constante na sua comunicação e em seus mecanismos de redundância, pois se ocorrer alguma falha, haverá uma interrupção no seu funcionamento
Vantangens X Desvantagens• Obter resultados tão bons quanto
ou até superiores que um servidor sofisticado a partir de máquinas mais simples e mais baratas (ótima relação custo-benefício);
• Não é necessário depender de um único fornecedor ou prestador de serviço para reposição de componentes;
• É possível aumentar a capacidade de um cluster com a adição de nós ou remover máquinas para reparos sem interromper a aplicação;
• A facilidade de expansão do cluster pode torna a manutenção mais trabalhosa, o espaço físico pode ficar impróprio, etc;
• A tecnologia de comunicação (rede) utilizada pode não oferecer a velocidade de transferência de dados ou o tempo de resposta necessário, dependendo da aplicação;
Introdução - Grids• Uma evolução dos sistemas distribuídos das décadas de 80 e 90• Origem do nome: Sistema elétrico (rede)• O Grid Computing é um novo conceito que explora as potencialidades das redes de computadores,
provendo um ambiente computacional de alto desempenho por meio de compartilhamento de recursos geograficamente distribuídos (FOSTER, 2003).
• Permitem compartilhar, agregar e escolher recursos computacionais dos mais variados tipos:– Supercomputadores– Dispositivos especiais telescópios, radares, etc– Sistemas de armazenamento– Bancos de dados– Computadores comuns
• Objetivo específico de disponibilizar camadas virtuais que permitem a um usuário ter acesso a aplicações altamente exigentes
• possibilita agregar recursos computacionais variados e dispersos em um único “supercomputador virtual”, acelerando a execução de várias aplicações paralelas (RABELLO, 2005).
Em Resumo• Uma rede, onde os membros estão conectados em forma
de sistema distribuído, trabalhando pra atingir um objetivo, com o diferencial de uma gerência mais eficiente e justa de processamento de dados, de hardware, de banda de internet e o que mais se desejar
• Atualmente é usado mais no meio acadêmico, em pesquisas na área científica, como em Física, Ciência da Computação, Engenharia Elétrica, Engenharia de Telecomunicações, Climatologia, Criptografia, Biologia, Oceanografia, simulações etc.
Funcionamento• Gerais
– Funciona através de protocolos
– Estar conectado a demais grids, formando assim sub-grids
– Sistema de escalonamento
– Via dupla – posso tanto realizar o envio quanto receber a informação
Funcionamento• Identificação e autenticação: para que o usuário se beneficie dos recursos oferecidos
• Autorização e aderência a políticas: depois da identificação e autenticação, é necessário saber se a solicitação feita pelo usuário pode executar em determinado local
• Localização dos recursos: para se executar um job (trabalho), é necessário verificar onde os sistemas estão disponíveis para sua execução;
• Caracterização dos recursos: nem sempre há disponibilidade dos recursos para a execução de um determinado trabalho, desta forma, é necessário fazer uma verificação da disponibilidade
• Alocação de recursos: quando o trabalho está pronto para ser executado no Grid, ou seja, é encontrado todo recurso disponível para sua execução, é necessário saber se não há um job concorrente. Se houver, o sistema deverá prover recursos ao que tem maior prioridade;
• Contabilização/Billing/Nível de Serviço: não basta apenas a execução de um job, é necessário saber se os objetivos da execução foram alcançados;
• Segurança: é necessário garantir a segurança de um trabalho no Grid, para isso, é quase uma prioridade, registrar e notificar eventuais violações que ocorram
Arquitetura• Rede - este nível é a base para que exista a conexão de um Grid, e nela estão
inclusos os switches, roteadores e toda a infraestrutura das redes de comunicação• Recursos - servidores primários e dispositivos de armazenamento;• Middleware - Fornece ferramentas que permitem que elementos distintos pa
participem da grade. (Cérebro)– Recursos e protocolo de conectividade - cuidam da comunicação em rede entre
diferentes pc e recursos do grid– Serviços coletivos - são baseados em protocolos que obtêm informação sobre a estrutura
e o estado dos recursos.
• Aplicações - aplicações em diversas áres como em engenharia e financias, além de portais e desenvolvimento de ferramentas que auxiliam as aplicações (serviceware)
Vantagens• Redução de custos: Diminui-se a quantidade de máquinas que uma empresa tem
que adquirir para realizar armazenamento e/ou processamento de dados. Estes são armazenados e/ou processados distribuidamente na rede.
• Aumento da produtividade: Aumenta-se a quantidade de computadores que trabalham em determinada tarefa.
• Compartilhamento de recursos e informações: Torna possível que organizações agregem recursos
• Acesso distribuído a diversos tipos de recursos: Permite bases de dados sejam compartilhadas e acessadas remotamente por outras empresas. Esta característica é de fundamental importância para a comunidade de pesquisa, que, diariamente, acessa e gera grande quantidade de informação. Além disso, permite que haja colaboração entre centros de pesquisa.
• Aproveitamento de recursos ociosos: Utiliza os recursos ociosos dos computadores na grid, sem prejudicar a utilização pelo usuário.
Introdução• Como nasceu
1960SO
Popularização do mainframeVM para simular um
ambiente Comp.1970
1980Inicio MS, Unix e MAC
Ini Virt. Hardware – Stand by
Java JVM1990
2000Novo modelo
2010Grande Salto
2020... ?
Introdução• “Virtualização é a técnica que mascara as caracteristicas
fisicas de um recurso computacional dos usuarios, das aplicações ou dos sistemas que utilizam” - EMA (Enterprise Management Association)
• Consiste na emulação de ambientes isolados, capazes de rodar diferentes sistemas operacionais dentro de uma mesma máquina
• Aproveita ao máximo a capacidade do hardware• oferece uma camada de abstração
Maquina virtual• Definição
– Uma máquina que consiste em um espaço de endereçamento lógico onde as instruções e dados do programa residem (Processo)
– Um ambiente completo que oferece suporte de execução para várias aplicações – Processo (SO)
• O processo ou SO que executa sobre um MV (VM) é chamado de Hóspede ou Convidado
Introdução• Grupos:
– Hardware– SO– Linguagem de programação
• Objetos de virtualização:– Desktops remotos– Discos virtuais– Computação em cluster– Dados (com uso do XML)
• Por ser em um ambiente isolado, o comprometimento de sua segurança não afeta as demais
• Pode-se ter politicas de segurança diferentes
“Principio básico, dividir para conquistar”
Principais aspectos• Projeto do sistema
– Envolve componentes externos ao processador, como barramento, memória, controladores, arbitramento, subsistemas e suas conexões. Mecanismos de suporte necessários a multiprocessadores
• Processo– a representação de um programa. Trata-se basicamente de uma abstração que reúna os dados a serem manipulados
pelo programa e as funções usadas pelo programa. É implementado pela representação de um espaço de endereçamento lógico divididos em regiões que guardam informações específicas
• Emuladores– é um programa que funciona para enganar uma aplicação
• Instrução (ISA – Instruction set architecture)– A abstração do processador por meio de seu conjunto de instruções maquinas
• Maquina real– é um conjunto de componentes físicos
• Maquina Virtual– é a imitação, por software, de uma máquina real
Tipo• TIPO I
– Implementado diretamente sobre o hardware hospedeiro
– o monitor controla todas as operações de acesso requisitadas pelos sistemas convidados, simulando máquinas físicas com propriedades distintas, trabalhando de forma isolada.
– diferentes computadores virtuais operam sobre o mesmo hardware.
Tipo• TIPO II
– implementação o Monitor de Máquina Virtual sobre o sistema operacional instalado no hardware anfitrião e opera como um processo desse sistema operacional
Técnicas• Virtualização Completa (Total)
– o hardware hospedeiro é completamente abstraído e todas as características de um equipamento virtual são emulados
– todas as instruções solicitadas pelo sistema convidado são interpretados no Monitor de Máquina Virtual
• Paravirtualização– a máquina virtual não é idêntica ao equipamento físico original, para que o sistema hospedado possa
enviar as instruções mais simples diretamente para o hardware, restando apenas as instruções de nível mais alto para serem interpretadas pelo MMV
– requer que o sistema operacional convidado seja modificado para interagir com o MMV
• Recompilação Dinâmica– as instruções são traduzidas durante a execução do programa da seguinte forma:
• as instruções do programa são identificadas em forma de sequência de bits. • Depois, as sequências são agrupadas em instruções mais próximas do sistema operacional hospedeiro. • Por último, essas instruções são reagrupadas em um código de mais alto nível, que, por sua vez, é compilado na
linguagem nativa do sistema hospedeiro.
Objetos de Virtualização• Virtualização de Servidores
– Consolidar vários servidores “virtuais” num único físico. (Hyper-V, Vmware, Xen)
• Virtualização de Aplicação – Disponibilizar aplicações On-demand (MDOP – Microsoft Desktop Optimization Pack)
• Virtualização de Apresentação – Rodar um windows desktop num server – RDS (antigo Terminal Services – MetaFrame -
Citrix)
• Virtualização de Desktop – Consolidar vários desktops num único hardware criando “OS” separados (MED_V – APPV
– XEN Desktop).
Introdução• O que é um Sistema Tolerante a Falhas?
– É um sistema que continua provendo corretamente os seus serviços mesmo na presença de falhas de hardware ou de software.
– Defeitos não são visíveis para o usuário, pois o sistema detecta e mascara (ou se recupera) defeitos antes que eles alcancem os limites do sistema (ponto de fuga da especificação).
• O que é Tolerância a Falhas?– É um atributo que habilita o sistema para ser tolerante a falhas. É o
conjunto de técnicas utilizadas para detectar, mascarar e tolerar falhas no sistema.
Causas de falhas• Erro na especificação
• Falha/Defeito no componente
• Implementação
• Distúrbios externos
– Radição, eletromagnetismos, etc.
Tolerância a Falhas• Implementada por mascaramento ou
detecção de erros seguida de recuperação do sistema
• Classes de detecção de erros:
– Concorrente – execução concorrente ao serviço
– Preemptiva – execução c/ suspensão do serviço
• Recuperação consiste reestabelecimento de estado correto
– Implica em controle de erros e falhas
• Controle de erros
– Rollback (checkpoint)
– Compensação (redundância => mascaramento)
– Rollforward
• Controle de falhas
– Diagnóstico de falhas
– Isolamento de falhas
– Reconfiguração do sistema
– Reinicialização do sistema
– Diversidade de projeto
Redundância• Hardware
– Passiva ou estática - Visa mascaramento de falhas usando módulos adicionais– Ativa ou dinâmica - Para obter redução de custo, baseia- se em detecção/localização,
seguida de remoção e de reconfiguração/recuperação de falhas– Híbrida
• Software– Formas em que aparece:
• Linhas extras de código usadas para verificar a magnitude de sinais• Pequenas rotinas utilizadas para, periodicamente, testar a memória• Componentes de software
– Principais técnicas:• Verificação de consistência = validações (Ex. CEP, CPF, Nr. Telefone, etc)• Verificação de capacidade = Verifica recurso (Ex. Tem memória disponivel)• Métodos de replicação de software (software TF)
Objetivo da Tolerância a FallhasObter DEPENDABILIDADE
• Disponibilidade: prontidão para ser utilizado• Confiabilidade: execução contínua sem defeitos• Segurança (Safety): recuperação de defeitos temporários sem qualquer
acontecimento catastrófico• Mantenabilidade: versa sobre a facilidade com que um sistema é reparado• Desempenho: baixo custo computacional, degradação gradual• Testabilidade: facilidade para testar o sistema (pontos de teste, testes
automatizados)
Gerência de redes• Objetiva monitorar e controlar os elementos da rede, assegurando um certo nível de qualidade
de serviço• Elementos
– elementos gerenciados: possuem um software especial chamado agente. Este software permite que o equipamento seja monitorado e controlado através de uma ou mais estações de gerência;
– estação de gerência: Chamamos de gerente o software da estação de gerência que conversa diretamente com os agentes nos elementos gerenciados, seja com o objetivo de monitorá-los, seja com o objetivo de controlá-los. A estação de gerência oferece uma interface através da qual usuários autorizados podem gerenciar a rede;
– Protocolo de gerência: o idioma que eles falam é um, este protocolo permite operações de monitoramento (leitura) e controle (escrita);
– informações de gerência: definem os dados que podem ser referenciados em operações do protocolo de gerência, isto é, dados sobre os quais gerente e agente conversam.
• Prevenir e solucionar problemas na rede
Camadas• Enlace (Camada 2)
– Transformar um canal de transmissão bruta em uma linha que pareça livre de erros de transmissão não detectados para a camada de rede.
• Rede (camada 3)
– Controla a operação da sub-rede
– Uma questão fundamental de projeto é determinar a maneira como os pacotes são roteados da origem até o destino.
– As rotas podem se basear em tabelas estáticas, "amarradas" à rede e raramente alteradas ou podem ser altamente dinâmicas, sendo determinadas para cada pacote, com o objetivo de refletir a carga atual da rede.
– O controle de congestionamento também pertence à camada de rede.
• Aplicação (camada 7)
– Contém uma série de protocolos comumente necessários para os usuários
– Ela contém todos os protocolos de nível mais alto. Dentre eles estão o protocolo de terminal virtual (TELNET), o protocolo de transferência de arquivos (FTP) e o protocolo de correio eletrônico (SMTP)