• Nenhum resultado encontrado

Servic¸os Distribu´ıdos Tolerantes a Intrus˜oes:

N/A
N/A
Protected

Academic year: 2023

Share "Servic¸os Distribu´ıdos Tolerantes a Intrus˜oes:"

Copied!
58
0
0

Texto

A Seção 3 apresenta soluções e algoritmos para implementar serviços de TI distribuídos iterativamente. A seção 6 passa dos algoritmos para a arquitetura de serviços distribuídos de TI, apresentando as diversas arquiteturas e sistemas propostos na bibliografia.

Confiabilidade

Supressão de erros - meios usados ​​durante o projeto do sistema para reduzir o número e/ou a gravidade dos erros. Previsão de erros - meios de estimar o número de erros no sistema e prever o número e as consequências de erros futuros.

Figura 1: Conceitos de confiabilidade [Avizienis et al., 2004].
Figura 1: Conceitos de confiabilidade [Avizienis et al., 2004].

Tolerˆancia a intrus˜oes

Os meios de prevenção de erros podem incluir mecanismos clássicos de segurança, como controle de acesso e autenticação. Os serviços baseados neste tipo de mecanismos mascaram ou ocultam a existência de erros.

Sistemas distribu´ıdos

Os trabalhos que estamos prestes a estudar geralmente consideram o modelo assíncrono, o que não pressupõe nenhuma hipótese sobre os tempos de processamento e comunicação no sistema6. Este modelo foi escolhido por prudência, por assim dizer, uma vez que muitas suposições temporais podem ser quebradas por certos ataques (por exemplo, uma hipótese de atraso de comunicação pode ser quebrada por um ataque de negação de serviço).

Figura 3: Arquitectura gen´erica de um sistema com um servic¸o distribu´ıdo tolerante a intrus˜oes.
Figura 3: Arquitectura gen´erica de um sistema com um servic¸o distribu´ıdo tolerante a intrus˜oes.

Criptografia de limiar

  • BFT
  • Rampart
  • SINTRA, SecureRing, SecureGroup, Worm-IT
  • Optimizac¸˜ao da resistˆencia

Na fase de preparação, o primário (servidor0 na figura) transmite a requisição recebida com o número de sequência n e o número da visão em todos os secundários. Primeiro, um primário mal-intencionado não pode "criar" uma solicitação do zero, pois as réplicas corretas processam apenas as solicitações recebidas do cliente.

Figura 4: Algoritmo BFT em funcionamento normal [Castro and Liskov, 2002].
Figura 4: Algoritmo BFT em funcionamento normal [Castro and Liskov, 2002].

Quoruns

Vari´aveis partilhadas com quoruns

O trabalho em sistemas de quorum é frutífero em algoritmos para realizar esses tipos de variáveis. Começaremos com a aula que leva a algoritmos mais simples, sistemas de quorum de distribuição f. A principal característica desses sistemas é que os dados armazenados são assinados pelo cliente que os escreve - dados autoverificáveis ​​- para que os servidores não possam falsificar ou modificar esses dados.

É fácil entender que fservers maliciosos não podem interferir na operação do algoritmo porque os valores não são devidamente assinados por um gravador Wx. Agora vamos considerar o caso geral em que não temos dados assinados pelos escritores, ou seja, em que os dados não são autoverificáveis. Um protocolo não confirmado difere daquele que vimos, pois não é possível determinar quando uma gravação termina.

Outros objectos de mem´oria partilhada com quoruns

De forma a garantir a confidencialidade para além da disponibilidade e integridade, os dados terão de ser fragmentados ou espalhados pelos vários servidores/torres e só poderão ser reconstruídos por quem esteja autorizado a fazê-lo. Pouco tempo depois [Fraga e Powell, 1985], Rabin publicou uma solução de fragmentação – o que ele chama de algoritmo de disseminação de informação – que otimiza o espaço ocupado com base em c Códigos de apagamento [Rabin, 1989]. Estes códigos são semelhantes aos códigos de correção de erros usados ​​nas telecomunicações, mas enquanto no primeiro a informação pode apenas ser apagada, no segundo também pode ser alterada.

Mais tarde, o projeto PASIS (programa OASIS) definiu um sistema eficiente de disseminação de informações com semântica atômica que tolera clientes desonestos [Goodson et al., 2004]. Observe que esse esquema é ortogonal à fragmentação e pode ser adicionado a um serviço baseado em replicação de máquina de estado ou quorum para garantir a confidencialidade dos dados armazenados. Para evitar ataques de negação de serviço devido ao uso de selos muito grandes, o esquema de não pular é usado.

Figura 9: Fragmentac¸˜ao-redundˆancia-dispers˜ao [Deswarte et al., 1991].
Figura 9: Fragmentac¸˜ao-redundˆancia-dispers˜ao [Deswarte et al., 1991].

Partilha de segredos

Na prática, a TI usa um mecanismo de tratamento de erros chamado recuperação proativa. Na prática, o risco de danificar mais de um servidor está limitado a uma janela de vulnerabilidade que depende do período de recuperação. O sistema BFT (Seção 3.1.1) foi estendido para executar a recuperação proativa e agora é chamado de BFT-PR [Castro e Liskov, 2002].

As soluções de recuperação proativa anteriores ao BFT-PR, começando com [Ostrovsky e Yung, 1991], exigiam que o código da réplica estivesse na memória somente leitura. O artigo em questão estabelece várias suposições de que esse tipo de recuperação é possível. Janela de vulnerabilidade BFT-PR ´eTv = 2Tk+Tr, onde Tk é o período máximo de recuperação da chave e Tr é o período de recuperação do servidor.

COCA

Quando isso acontece, o monitor cria uma imagem do código e do estado da réplica no disco. Para verificar se o sistema operacional ou o código de serviço está corrompido, o monitor usa seus resumos criptográficos, que são armazenados na memória somente leitura. Cada servidor de alguma forma obtém o certificado e o assina com sua parte da chave privada.

Se o adversário móvel conseguisse capturar f + 1 peças, ele seria capaz de se passar pelo serviço, então a recuperação proativa tem que renovar essas peças. Um protocolo de compartilhamento de segredo proativo assíncrono mais eficiente do que o APSS foi proposto em [Cachin et al., 2002]. Por fim, vale ressaltar que na esteira do COCA surgiu o sistema CODEX, uma evolução do COCA para armazenamento de dados [Marsh e Schneider, 2004].

Figura 11: Funcionamento b´asico do COCA [Zhou et al., 2002a].
Figura 11: Funcionamento b´asico do COCA [Zhou et al., 2002a].

Recuperac¸˜ao proactiva em sistemas ass´ıncronos?

O objetivo da correção proativa é garantir que o Atexaust nunca seja atingido pela remoção de qualquer intrusão. Deve-se notar que ainda se assume que as invasões nos servidores não ocorrem imediatamente (em tempo real), mas gradualmente. Apresentamos acima quatro tipos de soluções para tolerar invasões: replicação de máquina de estado, sistemas de quorum, fragmentação e recuperação proativa.

No entanto, existem outras técnicas que podemos considerar tolerantes a adulterações e que podem ser usadas para construir serviços de TI distribuídos. Exemplos são detecção de intrusão, remoção de intrusão (quando ocorrem, não proativamente) e reconfiguração. Cada servidor inclui um CMDaemon (daemon de gerenciamento de configuração) encarregado da detecção de intrusão local.

Figura 12: Arquitectura encaminhamento centralizado / gest˜ao central- central-izada [Gupta et al., 2003].
Figura 12: Arquitectura encaminhamento centralizado / gest˜ao central- central-izada [Gupta et al., 2003].

Arquitectura com firewall de privacidade

Essas duas primeiras arquiteturas têm o inconveniente de perder requisições devido ao encaminhamento de mensagens para servidores com invasões que ainda não foram detectadas e removidas. No entanto, apenas são necessários f+1 servidores e os pedidos são processados ​​em paralelo, o que em princípio permite um melhor throughput (pedidos processados ​​por unidade de tempo). A terceira arquitetura é chamada de roteamento broadcast / gerenciamento descentralizado e difere da anterior pela ausência de um gerenciador de configuração (fig. 14).

Cada requisição é processada por apenas um dos servidores, mas os CMDaemons detectam invasões e chegam a um acordo sobre as reconfigurações necessárias. Em outras palavras, ele obtém acesso a h+ 1 dessas cópias (e uma nos servidores de execução) para que o invasor obtenha informações confidenciais.

Arquitectura SITAR

Arquitectura DPASA

A área de gerenciamento contém um componente que vincula informações sobre intrusões recebidas de sensores localizados em clientes e zonas de buffer e operações. Depois de tudo o que foi dito até agora, fica claro que a tolerância à interferência atingiu uma certa maturidade. Quando falamos em intervenção, o problema de garantir a independência da culpa não é simples.

Claramente, a independência de erros deve ser garantida no lado das vulnerabilidades, pois é arriscado fazer suposições sobre ataques. A combinação de todos esses níveis de diversidade com técnicas de análise estática de código [Viega e McGraw, 2002] pode levar a um alto nível de confiança, mas de que adianta a independência de erros que essa combinação realmente oferece. É possível criar automaticamente diferentes versões de software independentemente de vulnerabilidades, possivelmente para diferentes sistemas operacionais?

Figura 16: A arquitectura SITAR [Wang et al., 2001].
Figura 16: A arquitectura SITAR [Wang et al., 2001].

Determinismo

Apesar do alto custo que representa, em geral o custo de cada release pode ser apenas cerca de 0,7 a 0,85 do custo de um release normal de software, devido a custos não multiplicativos (estabelecimento de requisitos, modelagem do sistema) [Deswarte et al. , 1998]. A recuperação proativa pressupõe que o ataque a cada servidor leva um certo tempo, mas isso não é totalmente verdade. Se um invasor depois de alguns dias descobrir como atacar f+ 1 servidores e o ataque durar alguns milissegundos, a recuperação proativa é inútil (o período de recuperação típico é de cerca de um minuto).

Uma solução seria cada recuperação modificar o servidor de forma que o invasor tivesse que recomeçar o processo para descobrir como atacá-lo. A ideia era construir um servidor web de TI usando replicação de máquina de estado. Muitos outros parâmetros podem gerar falta de determinismo, desde a representação de números reais até as respostas a erros, que passam por todo tipo de operação dependente do tempo.

Detecc¸˜ao e remoc¸˜ao de intrus˜oes

As páginas consideradas eram em HTML (não foram utilizados PHP ou ASPs) e não foi considerado o uso de HTTP-S, apenas HTTP. Mesmo com todas essas limitações, o cabeçalho HTTP possui vários campos que não são determinísticos. A solução é criar uma especificação abstrata do serviço, com um estado abstrato e uma série de operações que manipulam esse estado.

Em seguida, é aplicado um wrapper de conformidade que oculta cada cópia atrás de uma interface que está em conformidade com a especificação abstrata do serviço. Finalmente, se for necessário transferir estado entre réplicas, como no BFT, é definida uma função de abstração que traduz o estado de uma implementação em estado abstrato e vice-versa.

Avaliac¸˜ao

In Montanari, U., Rolim, J., and Welzl, R., editors, Proceedings of the 27th International Colloquium on Automata, Languages ​​and Programming, volume 1853 Lecture Notes in Computer Science, pages 576–. In Guerraoui, R., editor, Proceedings of the 18th International Conference on Distributed Computing, volume 3274 Lecture Notes in Computer Science, pages 405-419.

Imagem

Figura 1: Conceitos de confiabilidade [Avizienis et al., 2004].
Figura 2: O modelo AVI e os mecanismos para evitar a falha [Ver´ıssimo et al., 2003].
Figura 3: Arquitectura gen´erica de um sistema com um servic¸o distribu´ıdo tolerante a intrus˜oes.
Figura 4: Algoritmo BFT em funcionamento normal [Castro and Liskov, 2002].
+7

Referências

Documentos relacionados

Este trabalho se propõe a expor e desenvolver algumas considerações afetas à evolução das políticas públicas e dos diplomas legais que têm ligação com a temática ambiental e com a