Utilize este identificador para referenciar este registo: http://hdl.handle.net/10451/13878
Título: WEST:wormhole-enhanced state transfer
Autor: Correia, Rogério Paulo da Fonseca
Orientador: Sousa, Paulo Jorge Paiva de, 1979-
Palavras-chave: Segurança
Regeneração
Transferência de estado
Tolerância a intrusões
Teses de mestrado - 2009
Data de Defesa: 2009
Resumo: Esta dissertação descreve o trabalho desenvolvido no âmbito da disciplina Projecto em Engenharia Informática, parte integrante do Mestrado em Engenharia Informática da Faculdade de Ciências da Universidade de Lisboa, durante o ano lectivo 2008/2009. O trabalho foi desenvolvido no laboratório de investigação LaSIGE (Laboratório de Sistemas Informáticos de Grande Escala), durante o período compreendido entre 1 de Setembro de 2008 e 1 de Junho de 2009 e integrou o projecto FOREVER (Fault/intrusiOn REmoVal through Evolution & Recovery), financiado pela Comissão Europeia através da rede de excelência ReSIST. Nos últimos anos, tem se tornado inegável o efeito que a Internet tem na sociedade moderna. Esta rede possibilita a interligação de sistemas electrónicos e computacionais por todo o mundo, que fazem movimentar a sociedade global e a economia. Cada vez mais serviços que anteriormente tinham um acesso restrito e burocrático, são agora encontrados online, acedidos de forma simples e prática. Grande parte destes serviços podem ser encontrados no dia-a-dia, e são responsáveis por gerir diferentes tipos de informação com diversos níveis de criticalidade (e.g., banca online, comércio electrónico). Dada a sua natureza, é necessário que estes serviços mantenham um funcionamento correcto e com alta disponibilidade durante o seu tempo de vida. No entanto, tais requisitos não são facilmente atingidos. A Internet é um ambiente em que estão presentes adversários maliciosos, o que faz com que os serviços referidos estejam constantemente expostos a ataques. Para além disso, é sabido que os atacantes estão envolvidos activamente no desenvolvimento de novas e mais sofisticadas técnicas para praticar ataques, com o objectivo de explorar vulnerabilidades existentes. Se esta exploração for bem sucedida, pode gerar uma intrusão, que por sua vez pode dar ao adversário total controlo do sistema informático. Contudo, ataques maliciosos não são únicas as faltas1 possíveis. Os sistemas de informação dos dias de hoje, estão a ficar cada vez mais complexos e têm que lidar não só com faltas simples (e.g., faltas por paragem) mas também com faltas mais severas, causadas por erros de software. Estas faltas podem fazer com que um serviço, ainda que altamente sofisticado, fique indisponível ou possa mesmo perder dados. 1Uma falta é um acontecimento que poderá causar a falha de um sistema informático. O ideal para tolerar faltas de âmbito malicioso seria a remoção completa de todas as vulnerabilidades de um sistema. No entanto, a complexidade intrínseca dos sistemas informáticos existentes hoje em dia torna esta tarefa bastante difícil, se não mesmo impossível, de se concretizar. Para além disso, os sistemas informáticos estão em evolução constante (e.g., instalação de correcções, adição de novas funcionalidades) e podem surgir novas vulnerabilidades como resultado desta evolução. Enquanto a maior parte dos paradigmas de segurança têm como objectivo a prevenção de intrusões, a tolerância a intrusões assume que os sistemas computacionais são complexos, as vulnerabilidades são inevitáveis, as intrusões vão ocorrer e há que lidar com elas. A exploração contínua de vulnerabilidades de sistemas e a proliferação dos ataques a sistemas informáticos, fizeram da tolerância a intrusões uma área de grande interesse. A ideia é construir um sistema resiliente, onde a exploração de uma vulnerabilidade não afecta o comportamento habitual do sistema. Este objectivo pode ser atingido usando protocolos de tolerância a faltas bizantinas (ou arbitrárias) (BFT) e com replicação de máquina de estados (SMR). Estes protocolos assumem que o serviço está replicado em n servidores (ou réplicas) sendo que o conjunto dos n servidores implementa o serviço. Os protocolos permitem que o sistema funcione de forma correcta, desde que não sejam comprometidas mais do que f réplicas num grupo de n. Estes protocolos fornecem resiliência, no entanto, dada uma quantidade de tempo suficiente, um adversário malicioso pode encontrar maneira de comprometer mais dos que f réplicas. Uma forma de contornar este problema foi proposta recentemente e combina os protocolos BFT com recuperações proactivas e reactivas que rejuvenescem as réplicas periodicamente ou a pedido, removendo não só efeitos de um ataque malicioso/falta, mas também reduzindo a probabilidade da mesma vulnerabilidade ser explorada novamente. O mecanismo descrito pode ser usado para aumentar a segurança em vários sistemas informáticos, nomeadamente serviços que contêm estado (i.e., serviços que armazenam informação essencial, para poder fornecer um serviço correcto, por exemplo uma base de dados). No entanto, quando uma réplica é recuperada, processo que tipicamente consiste em desligar a réplica e reiniciar a mesma com o sistema operativo e código da aplicação transferidos de uma fonte segura (pois podem ter sido comprometidos), é necessário transferir um estado actualizado para garantir que a réplica fica coerente com as restantes (pois as restantes réplicas continuaram a progredir no sistema). No trabalho descrito pela presente dissertação, o objectivo foi conceber, concretizar e avaliar um mecanismo de transferência de estado para sistemas tolerantes a faltas arbitrarias que efectuam recuperações proactivas e reactivas. Este mecanismo tem que lidar com os problemas inerentes à transferência de estado em sistemas informáticos. Em primeiro lugar, a réplica tem que terminar a transferência de estado atempadamente, uma vez que durante a recuperação esta não participa activamente no serviço. Se a transferência de estado demora demasiado tempo, as restantes réplicas activas podem ficar sobrecarregadas com pedidos de clientes (uma vez que existe uma réplica a menos a participar nas operações do serviço). Além disso, durante a transferência de estado, a réplica que se encontra recuperar deve manter reduzido o número de mensagens que usa para actualizar o seu estado, caso contrário este comportamento pode sobrecarregar a rede e afectar o desempenho do serviço. Se o número de mensagens for reduzido, então com grande probabilidade também será reduzido o tempo que a réplica leva a actualizar o seu estado e, consequentemente, o processo de recuperação é mais rápido. Por fim, a transferência de estado não deve introduzir per´ıodos de indisponibilidade do serviço. A recuperação do estado e a reintegração da réplica recuperada no grupo de réplicas activas deve ser transparente para o cliente. Esta dissertação descreve a concepção, concretização e avaliação de um protocolo de transferência de estado eficiente para sistemas tolerantes a faltas bizantinas (BFT) com replicação de máquina de estados (SMR) e que usam recuperações(proactivas e/ou reactivas), abordando a problemática descrita anteriormente. O protocolo proposto, de nome WEST (Wormhole-Enhanced State Transfer), usa como base um modelo de sistema híbrido. Este modelo preconiza a divisão de um sistema em duas partes (dois subsistemas) com diferentes propriedades e pressupostos: payload e wormhole. O payload é um subsistema potencialmente assíncrono (i.e., sem quaisquer pressupostos temporais), em que no máximo f réplicas podem ser sujeitas a falhas bizantinas (arbitrárias) durante um dado período de recuperação e no máximo k réplicas podem ser recuperadas ao mesmo tempo. O wormhole é um subsistema síncrono (i.e., com pressupostos temporais ao nível do processamento local e da comunicação distribuída), ligado através de um canal de controlo seguro e isolado das restantes redes. Existe um wormhole local por cada réplica. A propriedade de sincronia oferecida pelo wormhole é ideal para controlar o processo de transferência de estado. O objectivo é criar periodicamente (e.g., a cada c pedidos de clientes) cópias do estado da aplicação (checkpoints) e guardá-los no wormhole. Os checkpoints são apenas guardados após ser feita uma verificação sobre a integridade do seu estado. Esta aproximação permite ao sistema ter sempre uma cópia recente e correcta do estado, que nunca é perdida e encontra-se segura em cada wormhole local. O checkpoint é mais tarde obtido pela réplica payload (logo que inicia o processo de transferência de estado), ajudando assim a reduzir a quantidade de dados transferidos, necessários para que uma réplica fique actualizada. Os wormholes locais são responsáveis por gerir e controlar o processo de transferência de estado. Por outro lado, é da responsabilidade da réplica payload actualizar o estado, usando a sua rede (rede payload, ligada à Internet potencialmente assíncrona) para pedir às restantes réplicas activas os pedidos mais recentes do cliente (i.e., os pedidos que a réplica em recuperação perdeu enquanto esteve off-line a recuperar). Esta opção permite que o canal de controlo do wormhole não seja sobrecarregado com mensagens desnecessárias, mantendo ao mesmo tempo as suas funções ao mínimo necessário. O protótipo desenvolvido concretiza os mecanismos de recuperação proactiva e reactiva, bem como o protocolo de transferência de estado. Ambas as componentes foram desenvolvidas em Java, perfazendo um total de 4101 LDC (Linhas de Código, não incluindo comentários). Finalmente, foi feita a avaliação ao protótipo de forma a analisar como este se comporta num ambiente controlado, variando um conjunto de parâmetros (micro benchmarks) e usando uma aplicação real (macro benchmarks). Nas micro benchmarks foi avaliado 1) o impacto que o ritmo de envio de pedidos do cliente tem na transferência de estado; 2) o impacto que o período do checkpoint tem na transferência de estado e no desempenho do sistema (i.e., tempo de resposta a um pedido de um cliente). Nas macro benchmarks é usado um serviço de nomes e directorias como aplicação. Foram criadas duas versões do serviço, nomeadamente uma versão simples e uma versão que inclui o protocolo de transferência de estado proposto (e recuperações proactivas e reactivas). A versão que inclui o protocolo WEST foi comparada com a versão simples de forma a avaliar: 1) o impacto adicional que a concretização do WEST tem no desempenho do sistema; 2) o tempo que o WEST demora a concluir a transferência de estado usando o serviço referido como aplicação.
This thesis presents WEST, an efficient state transfer protocol for Byzantine fault tolerant state machine replication systems enhanced with proactive-reactive recovery. Proactive-reactive recovery allows a system to be rejuvenated in order to remove the effects of a possible intrusion. However, for stateful applications, after a recovery a replica has to transfer and update the application state. Usually this operation consumes a large amount of time. As a result it is essential to reduce the state transfer time, simultaneously guaranteeing that correct replicas never lose their state, and the recently recovered replica has a state consistent with the remaining replicas. Our approach uses a hybrid system model and architecture where the system is composed of two parts with distinct properties and assumptions: payload (any-synchronous component) and wormhole (secure and synchronous component). The wormhole is responsible for storing a recent copy of the application state (checkpoint) that is never lost and whose integrity is checked before being stored, and is also in charge of managing/controlling the state transfer process. When a replica is recovered, it retrieves the checkpoint from the secure component (which is always correct) and starts updating its state based on the checkpoint. The replica uses the payload network to query and fetch the remaining active replicas for up-to-date requests, in order to not burden the wormhole network with unnecessary messages. The checkpoint mechanism allows the replica to start the state transfer from a correct and recent copy of the state, and reduces the state transfer time. When the state transfer finishes, the replica can rejoin the active replicas group and resume its normal operation based on the up-to-date state. Experimental results show that by using an appropriate checkpoint period one can reduce the state transfer time greatly. This value depends on the client request rate, but in general a high checkpoint period (e.g., 128) is a good choice. In the experiments conducted, it was possible to recover a 4 KB state size within a few seconds. Comparing a naming and directory service (NDS) application with and without WEST, WEST had a negligible impact in the system performance, and allowed the NDS application to recover its state in a short period of time.
Descrição: Tese de mestrado em Engenharia Informática (Arquitectura, Sistemas e Redes de Computadores), apresentada à Universidade de Lisboa, através da Faculdade de Ciências, 2009
URI: http://hdl.handle.net/10451/13878
http://repositorio.ul.pt/handle/10455/3263
Aparece nas colecções:FC-DI - Master Thesis (dissertation)

Ficheiros deste registo:
Ficheiro Descrição TamanhoFormato 
0809rf_32526.pdf1,35 MBAdobe PDFVer/Abrir    Acesso Restrito. Solicitar cópia ao autor!


FacebookTwitterDeliciousLinkedInDiggGoogle BookmarksMySpace
Formato BibTex MendeleyEndnote Degois 

Todos os registos no repositório estão protegidos por leis de copyright, com todos os direitos reservados.