Princípios de um Sistema Imunológico Computacional

Propaganda
Princípios de um Sistema Imunológico Computacional
Anil Somayaji, Steven Hofmeyr, & Stephanie Forrest
Departament of Computer Science
University of New Mexico
Albuquerque, NM 87131
{soma, steveah, forrest}@cs.unm.edu
Abstract
Os sistemas imunológicos naturais provem uma rica inspiração para a segurança computacional
na era da internet. Eles possuem muitas características que são desejáveis para os ambientes em que
muitos computadores trabalham, como por exemplo: distribucionalidade, diversibilidade,
disponibilidade, adaptabilidade, autonomia, cobertura dinâmica, detecção de anomalia, múltiplas
camadas, identidade por comportamento, componentes não confiáveis e detecção imperfeita. Estes
princípios sugerem uma larga variedade de arquiteturas para os sistemas imunológicos
computacionais.
1
Introdução
Os sistemas computacionais modernos estão cheios de vulnerabilidades. Do ponto de vista da
segurança computacional tradicional, estes problemas só serão possíveis de eliminar através de um
uso mais extensivo de métodos formais e melhoramentos na engenharia de software. A visão
tradicional acredita em três chaves para o sucesso de um sistema seguro:
1. Políticas de segurança devem ser explicitadas e corretamente especificadas,
2. Programas devem ser corretamente implementados, e
3. Sistemas devem ser corretamente configurados.
Na teoria isto funcionaria, porém, não é o que se vê na prática. Programas são adicionados e
removidos e suas configurações são alteradas continuamente. Uma verificação formal de um
sistema estático leva muito tempo e é difícil de ser feita. Uma verificação formal de um sistema
dinâmico é impraticável.
Os autores acreditam que é possível a construção de melhores sistemas de segurança
computacional através da adoção de princípios de modelagem que mais se adaptassem ao ambiente
imperfeito, incontrolável e aberto em que muitos computadores trabalham. Um ponto de abordagem
seria um sistema imunológico natural, que resolve problemas similares, porém de uma maneira
radicalmente diferente da computação tradicional. Ele é composto de muitos componentes que
agem de forma imperfeita, incerta e tem uma curta duração. É autônomo e incorreto, cometendo
engano algumas vezes. Mesmo com todos os seus problemas, ele consegue nos manter vivos por
mais ou menos 70 anos, apesar de ser ameaçado constantemente por parasitas, bactérias e vírus
potencialmente mortais.
A analogia entre os problemas de segurança computacionais e o processo biológico foi
reconhecida antes de 1987, quando o termo “vírus de computador” foi introduzido por Adelman [1].
A conexão entre sistemas imunológicos e segurança computacional foi introduzida em [4, 6] e
elaborada em [2, 3].
Para os autores, o sucesso do sistema imunológico baseia-se em grande parte na sua organização
e num entendimento de como o sistema imunológico pode ajudar-nos a projetar um robusto e
prático “sistema imunológico computacional”. Tal sistema incorporaria muitos elementos dos
sistemas de segurança atuais, incrementando sua atuação com uma camada de resposta adaptativa,
que seria similar aos sistemas de detecção de intrusão atuais, porém mais autônoma. Partes desta
camada pode ser diretamente análoga ao mecanismo presente no sistema imunológico; outras
devem ser completamente diferentes das encontradas na biologia.
2
Visão geral de um Sistema Imunológico
O sistema imunológico é capaz de virtualmente reconhecer qualquer célula ou molécula
estrangeira e eliminá-la do corpo. Para fazer isto, ele se baseia em tarefas de reconhecimento de
padrões para distinguir moléculas e células que pertencem ao próprio corpo (“self”) das demais
(“nonself”). O número exato de moléculas estrangeiras que o sistema imunológico pode reconhecer
é desconhecido, mas estima-se que seja maior que 1016 [5]. Estas proteínas estrangeiras precisam
ser distinguidas de 105 diferentes proteínas self, então, o reconhecimento deve ser altamente
específico.
A arquitetura do sistema imunológico é multi-camadas, com a defesa sendo proporcionada em
muitos níveis. A camada mais externa, a pele, é a primeira barreira. A segunda é fisiológica, onde as
condições como o pH e a temperatura impedem que alguns tipos de microorganismos se proliferem.
Uma vez que um agente patogênico entre no corpo, ele é controlado pelo sistema imunológico inato
e pela resposta imunológica adaptativa.
O sistema inato consiste primeiramente em circundar as células invasoras com macrófagos, que
ingerem materiais e moléculas extracelulares, limpando o sistema. A resposta adaptativa (também
chamada de resposta adquirida) é mais sofisticada e envolve diferentes tipos de células e moléculas.
O sistema imunológico adaptativo pode ser visto como um sistema de detecção distribuído, que
em como principal elemento os glóbulos brancos do sangue, chamados de linfócitos. Os linfócitos
funcionam como pequenos detectores independentes que circulam através sangue e do sistema
linfático. Eles podem ser vistos como detectores negativos, pois identificam as células nonself e
ignora as self. A detecção ou reconhecimento dos agentes patogênicos ocorre quando são formados
laços moleculares entre um patógeno e os receptores que cobrem a superfície do linfócito. Quanto
mais complementar for esta ligação, maior é a afinidade. A detecção é aproximada, e
conseqüentemente um linfócito se ligará com diferentes tipos de patógenos.
A habilidade de detectar diversos patógenos vem de uma fabricação de linfócitos receptores
altamente randomizada. Porém, nesta fabricação poderão ser gerados linfócitos que combinam com
moléculas self, causando desordem no sistema imunológico, ocasionando um ataque ao próprio
corpo. A desordem auto-imune raramente acontece, pois os linfócitos que circulam na corrente
sanguínea são self tolerantes. Esta tolerância é adquirida num processo chamado de eliminação
clonal: a maturação dos linfócitos ocorre em um órgão chamado timo, onde muitas proteínas self
circulam; se eles se ligam a estas proteínas durante a maturação, eles são eliminados.
A resposta imunológica adaptativa vai ficando mais específica com o tempo, pelo aprendizado e
memorização dos agentes patogênicos já identificados. Se o sistema imunológico detecta um
patógeno que não havia encontrado antes, ele dispara uma resposta primária. Neste momento o
sistema “aprende” sobre a estrutura deste patógeno específico, guardando a informação para quando
acontecer um “novo encontro”. Esta fase é conhecida como maturação da afinidade e nela, grandes
volumes de novos linfócitos, que tem uma alta afinidade com o novo agente patogênico, são
produzidos. Da próxima vez que o patógeno for identificado, a resposta imunológica será tão rápida
que os sintomas de infecção nem serão sentidos pelo indivíduo.
O sistema imunológico é único para cada ser vivo e uma das chaves desta singularidade está
numa molécula chamada Major-Histocompability Complex (MHC). A molécula MHC habilita o
sistema imunológico a detectar patógenos intracelulares (como por exemplo os vírus) que residem
dentro da célula. Os vírus são um problema, pois o que está dentro da célula não é visível para os
linfócitos, que só podem ligar-se à estruturas que estão na superfície da célula. O MHC consegue
laçar fragmentos de proteínas chamadas de peptídeos (que poderiam ser vírus) de dentro da célula e
transportá-los para a superfície, deixando a mostra para um linfócito que esteja passando naquele
momento.
Sumarizando, o sistema imunológico natural possui muitas características que são desejáveis
para o ponto de vista da ciência da computação. O sistema é massivamente paralelo e seu
funcionamento é realmente distribuído. Os seus componentes individuais são disponíveis e
inseguros, mesmo assim o sistema, como um todo, é robusto.
3
Princípios de sua Organização
A seção anterior não deixou exatamente claro de como usar o sistema imunológico como
modelo para a construção de bem sucedidos sistemas de segurança. Existem muitas diferenças que
são fundamentais entre a biologia e os sistemas de computadores. Desta maneira, a tarefa de criar
um sistema plenamente baseado na analogia do sistema imunológico é relativamente complexa.
Estudos desenvolvidos nesta área apontam para um conjunto de princípios organizacionais que
servem de guia para o desenvolvimento de sistemas de segurança.
 Agentes distribuídos: O sistema imunológico humano, através dos linfócitos, é um bom
exemplo de uma arquitetura altamente distribuída e robusta.
 Multicamadas: no sistema imunológico, múltiplas camadas de diferentes mecanismos são
combinadas para proporcionar um alto grau de segurança.
 Diversidade: Fazendo sistemas diversificados, vulnerabilidades de segurança em um
sistema são menos provável de serem difundidas.
 Disponibilidade: Nenhum componente do sistema imunológico humano é essencial, isto é,
cada célula pode ser substituída. Em termos de sistemas computacionais, isto se aplicaria a
processos ou agentes, portanto, software.
 Autonomia: O sistema imunológico não requer gerenciamento ou manutenção externa. Ele
autonomamente classifica e elimina o patógeno, além de reparar a si próprio pela
substituição de células
 Adaptabilidade: O sistema imunológico aprende detectando novos patógenos e conserva a
habilidade de reconhecer patógenos já vistos através da memória imunológica.
 Sem camada de segurança: Inclusive uma célula do sistema imunológico que esteja
infectada pode ser destruída pelos linfócitos, que por sua vez também são células.
 Mudança dinâmica da cobertura: O repertório de linfócitos que circulam pela corrente
sanguínea é constantemente substituído por outros produzidos randomicamente.
 Identificação por comportamento: o comportamento é identificado pela variedade de
peptídeos ou fragmentos de proteínas encontrados nos patógenos.
 Detecção por anomalia: O sistema imunológico possui a habilidade de detectar agentes
patogênicos que ele nunca havia encontrado antes.
 Detecção imperfeita: Por aceitar a detecção imperfeita, o sistema imunológico aumenta a
flexibilidade com a qual ele pode alocar recursos.
 O jogo dos números: O sistema imunológico humano replica detectores para lidar com a
replicação dos agentes patogênicos.
4
Possíveis arquiteturas
Algumas arquiteturas baseadas no mapeamento direto dos princípios do sistema imunológico
estão descritas abaixo.
 Protegendo dados estáticos: Um lugar natural para começar é no nível dos vírus de
computador. Self é interpretado como dados não corrompidos e nonself é interpretado por
alguma mudança no self.
 Proteção de processos ativos em um computador: Se nós virmos cada processo ativo em um
computador como uma célula, nós podemos pensar que um computador rodando muitos
processos é como um organismo multicelular. Nesta implementação, a figura de um
linfócito seria um processo que ajudaria o kernel e estaria habilitado a monitorar outros
processos na busca de anomalias. Se um processo não estiver de acordo, o processo linfócito
pode frear, suspender, matar ou reiniciar o mal comportado.
 Protegendo uma rede confiável de computadores: Uma outra abordagem é pensar que cada
computador corresponde a um órgão em um animal. Cada processo continuaria a ser uma

5
célula, mas agora a rede seria o indivíduo. Neste modelo o sistema inato é composto dos
mecanismos de segurança baseados nos hosts, combinado com um firewall, por exemplo. O
sistema adaptativo poderia ser implementado como um processo linfócito assistente do
kernel.
Protegendo uma rede de computadores mutuamente disponíveis e confiáveis : Movendo a
analogia para um nível mais acima, podemos considerar cada computador como uma célula,
e a rede como o indivíduo. A imunidade inata emerge das defesas de rede tradicionais, como
Kerberos e firewalls. O sistema adaptativo pode ser criado através de uma série de
máquinas linfócitos que monitorariam o estado de outras máquinas na rede. Quando uma
anomalia é detectada, a máquina problemática pode ser isolada, reiniciada, ou desligada.
Limitações
Embora os autores acreditem que a tradução da estrutura do sistema imunológico humano para
os computadores possa render frutos, a solução biológica não é diretamente aplicável aos sistemas
computacionais. Portanto, soluções não biológicas serão levadas em consideração quando se
apresentarem mais apropriadas.
A segurança computacional está fundamentada em cinco princípios: confidencialidade,
integridade, disponibilidade, contabilidade e corretude. No sistema imunológico, há somente um
fator realmente importante: sobreviver, que pode ser conseguido com a combinação de integridade e
disponibilidade. Esta é provavelmente a mais importante limitação da analogia.
6
Conclusões
Senhas difíceis, sistemas de acesso apropriados e um projeto cauteloso continuarão sendo
necessários para se obter um nível de segurança satisfatório. Todas estas medidas podem ser vistas
como equivalentes à pele e o sistema inato nos seres humanos. O foco deste artigo baseou-se no
sistema adaptativo por se tratar de um tipo de mecanismo que não está presente nos sistemas
computacionais atuais. Por esse motivo, os autores acreditam que a implementação deste recurso
traria muito mais segurança aos sistemas computacionais do que os mecanismos hoje existentes.
Referências
[1] Fred Cohen. Computer viruses. Computer & Security, 6:22-35, 1987.
[2] S. Forrest, S. Hofmeyer, A. Somayaji. Computer immunology. Communications of ACM,
(submitted Dec. 1996)
[3] S. Forrest, S. Hofmeyer, A. Somayaji, and T. Longstaff. A sense of self for UNIX processes.
In Proceedings of the 1996 IEEE Symposium Security and Privacy. IEEE Press, 1996.
[4] S. Forrest, A. S. Perelson, L. Allen, and R. Cherukuri. Self-nonself discrimination in a
computer. In Proceedings of the 1994 IEEE Symposium on Research in Security and Privacy,
Los Alamos, CA, 1994. IEEE Computer Society Press.
[5] J. K. Inman. The Antibody combining region: Speculations on the hipótesis of general
multispecificity. In G. I. Bell, A. S. Perelson, and Jr. G. H. Pimbley, editors, Theoretical
Immunology, pages 243-278. M. Dekker, NY, 1978.
[6] J. O. Kephard. A biologically inspired immune system for computers. In R. A. Brooks and P.
Maes, editors, Artificial Life IV: Proceeding of the Fourth International Workshop on the
Synthesis and Simulation of Living System, pages 130-139, Cambridge, MA, 1994. MIT Press.
Download