DETECÇÃO DE INTRUSOS

 

Index >>Detecção de intrusos utilizando agentes autônomos (AAFID) >> Conclusão

 

  1. SDI utilizando Agentes Autônomos
    1. Arquitetura
    2. Componentes da Arquitetura
    3. Vantagens

SDI utilizando Agentes Autônomos

Quanto maior a proteção contra ações maliciosas, maior será o tempo e o esforço gastos na produção e gerenciamento de sistemas de segurança. Através de ferramentas que monitoram a estação ou o ambiente continuamente e emitem alertas ao suspeitarem que uma invasão esteja ocorrendo, sistemas de detecção de intrusos atuais obtêm relativo sucesso identificando ataques em tempo real. Essa proteção está associada, normalmente, a um alto custo em tempo e dinheiro tanto no processo de construção quanto no gerenciamento destes SDIs. Normalmente, estes também geram problemas de desempenho na estação ou ambiente protegido, o que é um ponto negativo aos olhos do(s) usuário(s).

A arquitetura monolítica de Sistemas de Detecção de Intrusão (SDI), comumente utilizada em sistemas comerciais ou de pesquisa, apresenta um número de problemas que limitam sua capacidade de configuração, escalabilidade ou eficiência [Crosbie, 1995a] [Crosbie, 1995b].[3]

Utilizando a abordagem monolítica (tais como nos sistemas apresentados anteriormente neste trabalho), ao surgir um novo método de intrusão ainda não previsto, o que ocorre frequentemente, todo o SDI deverá ser reconstruído estabelecendo novas diretrizes para tratar o novo método de invasão, o que não é uma operação simples e rápida.

Utilizar um ponto fixo e único para proteger um sistema gera uma alta propensão à falha visto que um ataque àquela máquina comprometeria todo o sistema.

Muitos autores vêm sugerindo a utilização de agentes autônomos em sistemas de proteção construindo SDIs não-monolíticos. Entre estes está o grupo AAFID (Autonomous Agents for Intrusion Detection) do Cerias/Purdue University [5], cuja obra publicada é instrumento de base para este trabalho.

"Em vez de um grande módulo monolítico, a proposta apresentada é de uma abordagem modular baseada em agentes autônomos e móveis para o desenvolvimento de um SDI. Este sistema consiste em um conjunto de pequenos processos (agentes) que podem agir independentemente no ambiente em construção. Eles são desenvolvidos para se moverem pelo ambiente no qual está inserido, observarem os comportamentos do sistema, cooperarem uns com os outros via passagem de mensagens, notificarem quando uma ação for considerada suspeita e, ainda, proverem ações reativas (contra-ataque).

Cada agente observa somente um pequeno aspecto de todo o sistema. Um simples agente, sozinho, não pode formar um sistema de detecção de intrusão, uma vez que sua visão é limitada a pequena “fatia” do sistema. Entretanto, se muitos agentes operam em um sistema e cooperam entre si, então um poderoso SDI pode ser desenvolvido. Uma vez que os agentes são independentes, eles podem ser adicionados e removidos do sistema dinamicamente, de forma que não é necessário reconstruir todo o SDI ou, ainda, interromper suas atividades. Assim, a qualquer sinal de identificação de uma nova forma de ataque, novos agentes especializados podem ser desenvolvidos, adicionados ao sistema e configurados para atender a uma política de segurança ou ação específica.

Outra vantagem da abordagem descrita é a facilidade de configuração apresentada pelo sistema em atendimento às necessidades políticas do ambiente ao qual está inserido. Isso se torna uma característica importante uma vez que, conforme as diferentes políticas de segurança nas corporações e suas interpretações, o que é considerado uma quebra de segurança para um ambiente pode não ser em outro, em função do tipo de informação que se quer proteger e em função da empresa e setor onde a segurança está sendo feita." [3]

[topo]

Arquitetura

A figura abaixo mostra um exemplo de arquitetura de um SDI utilizando agentes autônomos de acordo com a proposta de [5].

Arquitetura AAFID

O sistema AAFID pode ser distribuído por qualquer número de estações (hosts) em uma rede. Cada estação pode conter qualquer número de agentes que monitorem eventos interessantes ocorrendo no host. Agentes podem usar filtros para obter dados de uma maneira independente do sistema. Todos os agentes em um host reportam aquilo que encontram para um único transceptor (transceiver). Só há um transceptor por host que observam a operação dos agentes daquele host. Eles possuem a habilidade de iniciar, parar e enviar comandos de configuração para tais agentes. Eles também podem realizar uma redução nos dados recebidos dos agentes. Os transceptores enviam seus resultados para um ou mais monitores. Cada monitor observa a operação de alguns transceptores. Monitores têm acesso a dados mais amplos da rede, consequentemente, eles são capazes de realizar uma correlação de mais alto nível e detectar intrusões que envolvem um conjunto de estações.

[topo]

Os Componentes da arquitetura

Os Agentes

            Um agente é uma entidade que funciona de forma independente e monitora determinados aspectos de uma estação e os reporta a um transceptor apropriado. Por exemplo, um agente pode estar observando um grande nímero de conexões telnet para um host protegido, e considerar tal ocorrência como suspeita. O agente irá gerar um “relatório” que é enviado para o transceptor apropriado. O agente não tem a autoridade de gerar diretamente um alarme. Usualmente, um transceptor ou um monitor irá gerar um alarme para o usuário baseado na informação recebida dos agentes. Combinando as informações vindas de diferentes agentes, transceptores constroem uma idéia do estado de sua estação (host), e monitores têm a idéia do estado da rede que estão monitorando.

            Agentes não se cominicam diretamente uns com os outros na arquitetura AAFID. Ao invés disso, eles enviam todas suas mensagens para o transceptor. Este decide o que fazer com a informação baseado na informação de configuração do agente.

            A arquitetura não especifica qualquer requisito ou limitação para a funcionalidade de um agente. Eles podem ser um simples programa que monitoram um evento específico (por exemplo, contar o número de conexões telnet dentro dos últimos 5 minutos), ou um sistema complexo de software (por exemplo, uma instância do IDIOT [5] buscando um conjunto de padrões de intrusão local). Eles também podem migrar entre hosts combinando a arquitetura AAFID com alguma arquitetura de agentes móveis.

Os Filtros

            Filtros visam ser tanto seletores de dados como uma camada de abstração dos dados para os agentes. Na arquitetura original do AAFID, cada agente era responsável por obter os dados que precisava. Quando o primeiro protótipo foi implementado, esta abordagem mostrou os seguintes problemas:

  1. Em um único sistema, pode haver mais de um agente que precise de dados vindos de uma única fonte. Isto é comum em ambientes UNIX com arquivos de registros multifuncionais (multifunction log files) (tais como /var/adm/messages). Fazer com que cada agente leia os dados significa duplicar o trabalho de ler o arquivo, analisá-lo e descartam registros desnecessários.
  2. Podem haver agentes que possuam uma função útil para versões diferentes de UNIX ou diferentes arquiteturas (tais como Windows NT). Entretanto, os dados que os agentes precisam podem estar localizados em lugares diferentes em cada sistema e podem estar gravados em formatos diferentes. Isto significa ter que escrever diferentes agentes para cada sistema, que saiba onde encontrar os dados e como lê-los.

            Ambos os problemas acima são solucionados através da introdução de filtros. Estes possuem duas funções de prestação de serviço aos agentes.

Seleção de dados: Para cada fonte de dados, deverá haver um filtro, e múltiplos agentes podem acessá-lo. Quando um agente cantata um filtro, ele especifica que registro ele precisa (utilizando alguns critérios tais como expressões regulares), e o filtro apenas envia ao agente os registro que correspondem o determinado critério. Isto elimina qualquer trabalho duplicado em ler e filtrar dados.

Camada de abstração de dados: Filtros implementam todo o mecanismo de dependências de arquitetura e sistemas para obter os dados que os agentes necessitam. Por tal motivo, o mesmo agente pode rodar em diferentes arquiteturas simplesmente se conectando no filtro apropriado. Dessa forma, fica mais fácil reaproveitar código e rodar o AAFID em diferentes sistemas operacionais.         
           

Os Transceptores

            Transceptores representam a interface de comunicação externa para cada host. Eles têm dois papeis: controle e processamento de dados. Para um host ser monitorado por um sistema AAFID, deve haver um transceptor rodando naquela estação. No papel de controlador, o transceptor faz as seguintes funções:

  1. Manter a localização e controlar a execução dos agentes na estação.  As instruções para iniciar e parar agentes podem vir de informações de configuração, de um monitor, ou como uma resposta a um evento específico (por exemplo, o relatório de um agente pode engatilhar a ativação de outros agentes para executar um monitoramento mais detalhado do host).
  2. Responde a comandos emitidos por seu monitor provendo as informações apropriadas ou efetuando as ações requisitadas.

No papel de processador de dados, o transceptor tem as seguintes funções:

  1. Recebe os relatórios gerados pelos agentes rodando naquele host
  2. Realiza o processamento apropriado na informação recebida dos agentes
  3. Distribuir a informação recebida dos agentes, ou o resultado do processamento destas, tanto para outros agentes quanto para o monitor, conforme o apropriado.

Os Monitores

            Monitores são as entidades de maior alto nível na arquitetura AAFID. Eles têm o papel de controle e processamento de dados da mesma forma que os transceptores. A maior diferença é que os monitores podem controlar entidades que estão rodando em hosts diferentes enquanto transceptores apenas controlam agentes locais.

            No papel de processadores de dados, monitores recebem informação de todos os transceptores que controlam, e podem realizar correlações de alto nível e detectar eventos que não sejam notados pelos transceptores.

            No papel de controladores, monitores podem receber instruções de outros monitores e podem controlar transceptores e outros monitores. Monitores têm a habilidade de comunicação com uma interface com o usuário que provém o ponto acesso a todo o sistema AAFID. Tal interface inclui mecanismos de acesso a informações que o monitor possui, de efetuar comandos para ele, ou enviar comandos para entidades de mais baixo nível tais como transceptores e agentes.

            Se dois monitores controlam o mesmo transceptor, devem ser implementados mecanismos para garantir a consistência da informação e comportamento. A arquitetura AAFID não especifica os mecanismos para alcançar essa consistência.

A interface com o usuário

            Mesmo que um SDI seja complexo e cheio de funções, ele será inútil se não possuir um bom mecanismo para os usuários interagirem.

            A arquitetura AAFID separa claramente a interface do usuário da coleta de dados e processamento de elementos. Uma interface de usuário deve interagir com um monitor para obter informações e prover instruções.

            Esta separação permite diferentes implementações de interface com usuários para serem utilizadas no sistema AAFID. Por exemplo, uma interface gráfica (GUI) pode ser utilizada para prover acesso interativo ao sistema de detecção de intrusos, enquanto uma interface baseada em linha de comando pode ser utilizada em códigos para automatizar algumas funções de manutenção e geração de relatórios.

Os Mecanismos de comunicações

            A transmissão de mensagens entre entidades é uma parte central da funcionalidade de um sistema AAFID. A arquitetura deste, entretanto, não especifica que mecanismos de comunicação têm que ser utilizados, apenas se considera alguns  pontos importantes sobre os mecanismos de comunicação utilizados em um sistema AAFID,que são relatados em [5].

[topo]

Vantagens *

Além dessas vantagens já citadas anteriormente, os pesquisadores do AAFID especificam um sistema baseado em agentes autônomos no qual as capacidades dos agentes são modificadas por meio do uso de algoritmos genéticos. Os autores reconhecem, entre outras, as seguintes vantagens de sistemas baseados em agentes autônomos sobre sistemas monolíticos:

• Fácil configuração: uma vez que é possível ter uma série de pequenos agentes especializados em tarefas específicas de detecção, o sistema de detecção pode ser configurado da forma mais adequada para cada caso; a adição e remoção de agentes do sistema são facilitadas;

• Eficiência: agentes podem ser treinados previamente e otimizados para que realizem suas tarefas de maneira a gerar a menor sobrecarga possível no sistema;

• Distribuição da vigilância: um sistema de agentes pode ser facilmente modificado para operar em rede e permitir migração para rastrear comportamentos anômalos através da rede, ou mover para máquinas onde eles possam ser mais úteis. A monitoria interna do sistema também pode ser destacada, já que estatisticamente, a segurança externa é mais reforçada e o maior número de ataques possuem origem interna;

• Resistência à subversão: caso um sistema de defesa seja subvertido, ele poderá dar a falsa sensação de segurança. Entretanto, isto se torna mais difícil, pois os conhecimentos adquiridos de um agente não fornecem o conhecimento das operações de outros, visto que eles desempenham funções diferentes;

• Escalabilidade: para atuar em sistemas maiores, basta adicionar mais agentes e aumentar sua diversidade.

*[3]

[topo]

<< Anterior || Próxima >>