Segurança e Disponibilidade através de Resiliência Proactiva - Sousa, Paulo (2008)
Desde o aparecimento da Internet, a segurança dos sistemas informáticos é uma preocupação crescente da sociedade. Por um lado, as ferramentas de ataque a sistemas informáticos estão cada vez mais acessíveis e os atacantes têm vindo a aumentar a eficácia e furtividade dos seus ataques. Por outro lado, os piratas informáticos têm começado a desviar a sua atenção para as infra-estruturas críticas (por exemplo, redes de distribuição de electricidade, água, gás) uma vez que, por razões de eficiência operacional, as mesmas usam redes públicas como a Internet para interligarem as suas várias instalações (por exemplo, sub-estações de energia eléctrica espalhadas por um país são monitorizadas e comandadas por centros de controlo regionais). Neste cenário, torna-se imperativo dotar os sistemas informáticos críticos de mecanismos que lhes permitam ser resilientes mesmo na presença de ataques bastante severos que podem ser tipicamente difíceis de detectar em tempo útil. Para além disso, esta resiliência deve ser assegurada de forma automática durante todo o tempo de vida do sistema informático. A primeira parte do trabalho introduz um novo predicado de segurança, segurança-contra-exaustão, e estuda as condições necessárias e suficientes para se construir um sistema informático seguro contra a exaustão de nós. Note-se que um sistema informático é tipicamente constituído por bastantes nós, isto é, um sistema informático é tipicamente distribuído. Alguns destes nós podem servir como backup ou permitir o mascaramento de erros (tolerância a faltas) e existe tipicamente um número mínimo de nós correctos N_m necessário ao correcto funcionamento do sistema distribuído. Diz-se que um sistema distribuído é seguro contra a exaustão de nós quando garante, durante todo o seu tempo de vida, que existe sempre um número de nós correctos maior ou igual do que N_m. No contexto específico da tolerância a faltas, o trabalho prova que é impossível, sob o modelo assíncrono (isto é, quando não são feitos quaisquer pressupostos temporais), construir-se um sistema distribuído tolerante a faltas (acidentais ou maliciosas) seguro contra a exaustão de nós. A importância deste resultado advém da importância que a tolerância a faltas tem vindo a ganhar nos últimos anos, nomeadamente na vertente da tolerância a faltas maliciosas, e por se acreditar que os sistemas mais seguros seriam aqueles onde não são feitos pressupostos temporais. Ora, este trabalho mostra precisamente que sem pressupostos temporais não é possível garantir-se segurança-contra-exaustão de nós. A segunda parte do trabalho apresenta um novo paradigma, resiliência proactiva, para a construção de sistemas distribuídos tolerantes a faltas seguros contra a exaustão de nós. A resiliência proactiva é baseada em hibridização da arquitectura e modelação híbrida de sistemas distribuídos: o sistema é maioritariamente assíncrono e faz uso de um subsistema síncrono para recuperar periodicamente os nós e remover os efeitos das faltas/ataques. Por fim, o trabalho descreve um cenário de aplicação da resiliência proactiva. Neste contexto, é apresentada um nova arquitectura para a replicação de máquina de estados tolerante a faltas. É estabelecido um novo resultado de que um mínimo de 3f+2k+1 réplicas são necessárias para garantir resiliência e disponibilidade, num sistema onde f faltas arbitrárias possam acontecer entre recuperações, com um máximo de k réplicas a recuperar ao mesmo tempo