You are on page 1of 42

FACULDADE DE ARACRUZ

DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO E INFORMÁTICA

POLÍBIO ÍCARO MORO CAPO

SISTEMA MULTIAGENTE DE VERIFICAÇÃO, NOTIFICAÇÃO E REAÇÃO


CONTRA APLICATIVOS SUSPEITOS

ARACRUZ
2008
POLÍBIO ÍCARO MORO CAPO

SISTEMA MULTIAGENTE DE VERIFICAÇÃO, NOTIFICAÇÃO E REAÇÃO


CONTRA APLICATIVOS SUSPEITOS

Trabalho de Conclusão de Curso apresentado ao


Departamento de Ciência da Computação e
Informática da Faculdade de Aracruz – FAACZ,
como requisito parcial para obtenção do grau de
Bacharel em Ciência da Computação.
Orientador: Ms. Prof. Célio Proliciano Maioli.

ARACRUZ
2008
Dedico este trabalho aos meus pais pelo
exemplo e ao meu amor Edvana da Silva
Silveira.
A todos que me apoiaram e estiveram ao
meu lado para conclusão deste trabalho.

A minha família pelo exemplo e


dedicação constantes.

A minha namorada e futura esposa


Edvana da Silva Silveira por ser minha
inspiração e sempre estar me dando
forças.

A todos os Professores.
RESUMO

Existem diversas técnicas de ataques a computadores, podem ser ataques externos,


pela Internet, ou internos causados por usuários legítimos do sistema. Usuários mal
informados ou mal intencionados podem causar grandes prejuízos; podem expor o
sistema a senhas fracas, fornecer sua senha a terceiros, utilizar programas de
origem duvidosa. Dado o potencial de um usuário executar um software de origem
duvidosa, ou até mesmo com intuito de roubar informações, este trabalho apresenta
um sistema modular para identificação, notificação e reação contra aplicativos
suspeitos em execução, adotando a tecnologia de agentes móveis para o seu
desenvolvimento. Utilizando o método de Pesquisa Explicativa. Do ponto de vista
dos procedimentos técnicos, a Pesquisa Bibliográfica e Experimental. A arquitetura
modular para desenvolvimento, trouxe benefícios para o sistema desenvolvido,
como fácil configuração, escalabilidade e capacidade de extensão. Através dos
resultados gerados pelo sistema, o administrador pode gerar relatórios sobre o
comportamento dos usuários atribuindo a estes as devidas responsabilidades, além
de propor melhorias na gestão de incidentes de segurança e na política de
segurança conforme norma ISO/IEC 27001:2005.

Palavras-chave: Agentes Móveis. Segurança Computacional. Aglets.


LISTA DE FIGURAS

Figura 1 - Comparativo entre Ambientes de Desenvolvimento........................16

Figura 2 - Servidor Tahiti do Ambiente Aglets da IBM......................................16

Figura 3 - Arquitetura em Camadas proposta por Bernardes...........................21

Figura 4 - Adaptação da Arquitetura Proposta por Bernardes.........................22

Figura 5 - Representação dos Elementos do DFD...........................................23

Figura 6 - Identificação de Serviços Não Permitidos........................................24

Figura 7 - Rede de Computadores Utilizada.....................................................26

Figura 8 - Interface do Agente de Controle.......................................................28

Figura 9 - Tela Inicial do Editor de Perfil...........................................................29

Figura 10 - Novo Perfil......................................................................................30

Figura 11 - Edição de Perfil Existente...............................................................31

Figura 12 - Notificação ao Administrador..........................................................34

Figura 13 - Mensagem ao usuário....................................................................35

Figura 14 - Mensagem ao administrador..........................................................36

A numeração não
corresponde a este
arquivo!!!
SUMÁRIO A numeração não
corresponde a este
arquivo!!!

1INTRODUÇÃO................................................................................................8

2 SEGURANÇA DA INFORMAÇÃO E ATAQUES.........................................10

2.1 NORMA ISO/IEC 27001:2005....................................................................10

2.2 ATAQUES...................................................................................................11

3 AGENTES......................................................................................................13

3.1 AGENTES MÓVEIS....................................................................................13

3.2 AMBIENTES SERVIDORES DE AGENTES MÓVEIS................................14

3.3 AGENTES MÓVEIS E PROBLEMAS DE SEGURANÇA............................17

4 SISTEMAS BASEADOS EM AGENTES MÓVEIS........................................19

4.1 VANTAGENS DA UTILIZAÇÃO DE AGENTES MÓVEIS...........................19

4.2 ARQUITETURA DO SISTEMA PROPOSTO..............................................21

4.3 CENÁRIO DE IDENTIFICAÇÃO DE SERVIÇOS NÃO PERMITIDOS........23

5 FERRAMENTAS PARA IMPLEMENTAÇÃO DO PROTÓTIPO....................25

5.1 LINGUAGEM DE PROGRAMAÇÃO E COMPILADOR...............................25

5.2 REDE DE COMPUTADORES UTILIZADA..................................................26

6 IMPLEMENTAÇÃO DO PROTÓTIPO............................................................27

6.1 AGENTE DE CONTROLE...........................................................................27

6.1.1 Gerenciamento de perfis........................................................................29


6.2 AGENTE DA CAMADA DE VIGILÂNCIA.....................................................32

6.3 AGENTE DA CAMADA DE TOMADA DE DECISÃO .................................33

6.4 AGENTE DA CAMADA DE NOTIFICAÇÃO................................................33

6.5 AGENTE DA CAMADA DE REAÇÃO.........................................................35

7 CONCLUSÕES E TRABALHOS FUTUROS.................................................37

7.1 CONCLUSÃO..............................................................................................37

7.2 TRABALHOS FUTUROS.............................................................................38

8 REFERÊNCIAS............................................................................................39
1 INTRODUÇÃO

Os estudos oriundos da Ciência da Computação podem ser aplicados em qualquer


área do conhecimento humano em que seja possível definir métodos de resolução
de problemas baseados em repetições previamente observadas. A formação
abrange a compreensão do campo científico da computação, a sua aplicação na
solução de problemas da sociedade e no desenvolvimento de conhecimento e
tecnologias que permitam a evolução da computação.

Na computação, raramente vemos computadores trabalhando sozinhos. O mundo


está interligado por redes de computadores, uma rede de computadores consiste de
dois ou mais computadores e outros dispositivos conectados entre si.

Visando o aproveitamento dos recursos para desenvolver as tarefas da instituição e


a segurança do ambiente, alguns administradores impõem limitações quanto à
execução de aplicativos. Apesar das limitações impostas em algumas redes,
usuários podem executar aplicativos diretamente de pen drive, cds. Além disso, em
ambientes sem administração de redes centralizada ou onde existam muitos
usuários com privilégios de administradores, aumenta a possibilidade de programas
serem executados sem as devidas licenças pondo em risco os recursos
computacionais da organização, deixando a rede vulnerável a ataques.

Ataques ocorrem onde existem falhas, segundo Bernardes (1999), falhas podem ser
atribuídas a três causas principais: softwares, administradores e usuários. Usuários
mal informados ou mal intencionados podem causar grandes prejuízos. Podem
expor o sistema através de senhas fracas, podem fornecer sua senha a terceiros,
utilizar programas de origem duvidosa, etc. Segundo Lobo (2008), “[...] 42% das
grandes empresas assumem que os ataques internos são de grande preocupação
[...]”.

Dado o potencial de um usuário executar um software de origem duvidosa, ou até


mesmo com intuito de roubar informações, este projeto tem como objetivo geral
desenvolver um sistema multiagente de verificação, notificação e reação contra
aplicativos suspeitos, adotando a tecnologia de agentes para o seu
desenvolvimento, especificamente agentes móveis. Este sistema visa mitigar
problemas causados por usuários que, acidental ou intencionalmente, executam
aplicativos não autorizados e acabam causando algum dano à organização.

A tecnologia de agentes móveis possui algumas vantagens sobre sistemas


centralizados. Segundo Bernardes (1999), fácil configuração, eficiência, capacidade
de extensão, resistência à subversão e escalabilidade, são algumas destas
vantagens.

Tendo em vista o objetivo deste projeto, adota-se o método de Pesquisa Explicativa.


Do ponto de vista dos procedimentos técnicos, a Pesquisa Bibliográfica e
Experimental, conforme descrição abaixo.

Segundo Gil (1991 apud SILVA e MENEZES, 2001) a pesquisa explicativa visa
identificar os fatores que determinam ou contribuem para a ocorrência dos
fenômenos. Aprofunda o conhecimento da realidade porque explica a razão, o “por
que” das coisas.

Do ponto de vista dos procedimentos técnicos (GIL, 1991 apud SILVA e MENEZES,
2001):

 Pesquisa Bibliográfica: quando elaborada a partir de material já publicado,


constituído principalmente de livros, artigos de periódicos e atualmente com
material disponibilizado na Internet.

 Pesquisa Experimental: quando se determina um objeto de estudo,


selecionam-se as variáveis que seriam capazes de influenciá-lo, definem-se
as formas de controle e de observação dos efeitos que a variável produz no
objeto.

O desenvolvimento deste trabalho está dividido nas seguintes seções: Introdução,


Segurança da Informação e Ataques, Agentes, Sistemas Baseados em agentes
móveis, Ferramentas para Implementação do Protótipo, Implementação do
Protótipo, Conclusões e Trabalhos Futuros.

Através dos resultados gerados pelo sistema, o administrador pode gerar relatórios
sobre o comportamento dos usuários atribuindo a estes as devidas
responsabilidades, além de propor melhorias na gestão de incidentes de segurança
e na política de segurança conforme norma ISO/IEC 27001:2005.
2 SEGURANÇA DA INFORMAÇÃO E ATAQUES

Segundo Bernardes (1999), a segurança está relacionada à necessidade de


proteção contra o acesso ou manipulação, intencional ou não, de informações
confidenciais por elementos não autorizados, e a utilização não autorizada do
computador ou de seus periféricos.

2.1 NORMA ISO/IEC 27001:2005

A norma ISO/IEC 27001 é um padrão para sistema de gerência da segurança da


informação (ISMS - Information Security Management System) publicado em outubro
de 2005 pelo International Organization for Standardization e pelo International
Electrotechnical Commision. Seu nome completo é ISO/IEC 27001:2005, mas
conhecido como "ISO 27001". Na família 27000 são abordados novos segmentos
sob normas que variam de 27000 a 27009 (ISO/IEC-27001, 2005).

A documentação da ISO/IEC-27001:2005 aborda 11 tópicos, dos quais se adota os


que apóiam o sistema proposto:

1. política de segurança. Descreve a importância e relaciona os principais


assuntos que devem ser abordados numa política de segurança.

2. segurança relacionada com as pessoas. Tem como enfoque o risco


decorrente de atos intencionais ou acidentais feitos por pessoas. Também
são abordados aspectos como a inclusão de responsabilidades relativas à
segurança na descrição dos cargos, a forma de contratação e a formação em
assuntos relacionados com a segurança.

3. gestão de incidentes de segurança. Incluída na versão 2005, apresenta dois


itens. Um deles é a notificação de fragilidades e eventos de segurança da
informação. O outro é a gestão de incidentes de segurança da informação e
melhorias.

O sistema contribuirá para a adequação dos usuários com a política de segurança,


um exemplo seria um cenário no qual se bloqueia a execução de um determinado
software não condizente com a política da organização.

No item 2, em casos onde um usuário executa um aplicativo não permitido, acidental


ou intencionalmente, o sistema informará ao administrador quem é este usuário,
quais são os aplicativos, atribuindo assim a responsabilidade ao usuário.

Quanto à gestão de incidentes, está relacionado com um dos resultados do sistema


que é a notificação de fragilidades visando manter o administrador informado sobre
as falhas. A gestão de incidentes pode ser feita com base nos arquivos de logs
gerados pelo sistema, com essas informações à disposição melhorias podem ser
realizadas na segurança.

Uma vez que a organização não adote medidas de segurança, temos um cenário de
risco. Bernardes (1999) afirma que semanalmente são divulgados relatórios com
novos problemas de segurança nos mais variados sistemas operacionais e
softwares. Segundo o autor, existe certa demora no lançamento de atualizações de
segurança e uma grande dificuldade dos administradores se manterem
constantemente atualizados, portanto, tem-se um cenário com redes potencialmente
vulneráveis a ataques.

2.2 ATAQUES

Existem diversas técnicas de ataques a computadores, podem ser ataques externos,


pela Internet, ou internos causados por usuários legítimos do sistema.
Tavares (2002), afirma que se considerarmos as diversas formas de ataques, elas
geralmente resultam em violações de quatro propriedades de segurança:
disponibilidade, confidencialidade, integridade e controle. Ele as descreve da
seguinte forma:

 Violação da confidencialidade - consiste no acesso aos dados sem


autorização (implícita ou explicita) do proprietário da informação;

 Violação da Integridade: Um ataque causa uma violação de integridade se


permitir que o estado do sistema ou de qualquer outro dado residindo ou
trafegando no sistema seja alterado ilegalmente;

 Violação da Disponibilidade - um ataque causa uma violação de


disponibilidade se ele não permitir que um usuário autorizado (humano ou
máquina) acesse um recurso particular de sistema quando, onde, e na forma
que for necessário;

 Violação do Controle - um ataque causa uma violação de controle se ele


garantir privilégios que violem a política de controle de acesso do sistema.
Estes privilégios habilitam uma violação de confidencialidade, integridade ou
disponibilidade subseqüente.

Conforme Tavares (2002), alguns tipos de ataques são reportados freqüentemente,


são eles: ataques de sondagem (scanning attacks), ataques de comprometimento de
recursos (Denial of Service attacks – DoS, conhecido como negação de serviço), e
ataques de penetração de sistema. Estes ataques podem ser lançados localmente
ou remotamente, utilizando uma rede para acessar o alvo.

Ataques ocorrem onde existir falhas. Segundo Bernardes (1999), falhas podem ser
atribuídas a três causas principais: softwares, administradores e usuários.

 softwares: Os softwares em execução no computador podem apresentar


falhas que podem ser exploradas por atacantes. Softwares de origem
duvidosa podem conter códigos maliciosos que roubam informações;

 administradores: As falhas mais comuns oriundas de administradores são: a


não instalação de sistemas de proteção e auditoria, não aplicação de patches
de problemas conhecidos e não orientar os usuários;
 usuários: Usuários mal informados ou mal intencionados podem causar
grandes prejuízos. Podem expor o sistema através de senhas fracas, podem
fornecer sua senha a terceiros, utilizar programas de origem duvidosa, etc.

Dado o potencial de um usuário executar um software de origem duvidosa, ou até


mesmo com intuito de roubar informações, este projeto apresenta uma ferramenta
de auxílio para identificação destes programas, adotando a tecnologia de agentes
para o seu desenvolvimento.

3 AGENTES

Conforme o Dicionário Eletrônico Aurélio, versão 5.0, da Língua Portuguesa, a


definição de agente consiste em “Pessoa especializada que trata de negócio por
conta alheia, ou que representa os interesses de seus clientes”.

Existem várias definições de agentes e este problema deve-se, em parte, à


falta de coordenação entre as diversas pesquisas paralelas que foram feitas
ao longo dos anos. Por outro lado, o termo agente não é propriedade dos
pesquisadores da área, sendo usado diariamente no mundo real (agente de
viagem, agente econômico, agente de seguros, etc.). (REAMI, 1998 apud
BERNARDES, 1999).

Segundo Nwana (1996 apud BERNARDES, 1999), existe tanta chance de se atingir
um consenso sobre a definição de agente, quanto dos pesquisadores de inteligência
artificial têm de chegar sobre uma definição da mesma, ou seja, nenhuma.

Neste trabalho será adotada a definição de Nagamuta (1999) de que, “Agente é uma
entidade de software (um programa) que executa um certo conjunto de tarefas em
nome do usuário que o criou.” (NAGAMUTA, 1999).

3.1 AGENTES MÓVEIS


Agentes móveis podem ser definidos como:

Agentes que possuem a capacidade de mover-se através da rede. Devem


possuir habilidades para executar operações em qualquer máquina
preparada para recebê-los dentro da rede, independente da plataforma
utilizada, o que motiva a utilização da linguagem Java na implementação
dos agentes móveis (PEREIRA FILHO, 2001).
Em modelos baseados em agentes móveis, um agente, que é enviado por
um usuário, é responsável por realizar a tarefa desejada, sendo que o
agente irá migrar para o servidor interagindo com ele localmente e em
seguida retornar os resultados obtidos ao usuário (OYAMADA & ITO, 1998,
apud PEREIRA FILHO).
Segundo Pereira Filho (2001) os agentes móveis são constituídos de código, estado
e atributos, onde o código de um agente móvel é o programa que define seu
comportamento. Este código pode ser escrito em uma linguagem interpretada
independente de plataforma, permitindo assim a mobilidade do agente. O estado do
agente é utilizado para que ele possa retomar suas atividades a partir do ponto onde
havia parado após se mover de um servidor para outro, pois o estado mantém
guardado o ponto de execução e as variáveis necessárias para a realização das
tarefas. Já atributos são utilizados para descrever o agente para seus servidores.
Estes atributos incluem um identificador único de cada agente, um endereço para
onde serão enviados os resultados intermediários, mensagens de erro, o tempo e a
história do agente. Além disso, os atributos impõem limitações na mobilidade dos
agentes.

Pereira Filho (2001) afirma que os ambientes servidores de agente têm que oferecer
todo o suporte para os agentes realizarem suas tarefas. Para que isto ocorra, os
agentes devem ser capazes de interagir com os servidores, se comunicarem com
outros agentes e moverem-se através da rede.
3.2 AMBIENTES SERVIDORES DE AGENTES MÓVEIS

Pereira Filho (2001), avalia diversos ambientes de agentes móveis em seu trabalho.
Conforme o autor, foram encontrados diversos ambientes servidores, comerciais e
acadêmicos, implementados em C++, TCL, PERL, LISP e Java. Ele apresenta
alguns kits de desenvolvimento em linguagem Java. De forma resumida são eles:

 Aglet Software Development Kit (IBM, 1998 apud PEREIRA FILHO, 2001) –
Aglets são objetos Java que podem mover-se de um host para outro na rede.
Em cada host deve haver o servidor de Aglets denominado Tahiti. O Tahiti é
uma aplicação Java que permite ao usuário receber, gerenciar, e enviar
Aglets para outros computadores que também estão executando o servidor
Tahiti.

 Concórdia (MITSUBISHI, 1997 apud PEREIRA FILHO, 2001) - concebido pela


Mitsubishi constitui-se de um framework para o desenvolvimento e
gerenciamento de agentes móveis podendo ser utilizado por qualquer
dispositivo que suporte Java. O sistema Concórdia é composto de uma JVM
(Máquina Virtual Java), o Concórdia Server e pelo menos um agente e um nó
da rede. Normalmente, o sistema Concórdia consiste em múltiplas máquinas
em uma rede, cada uma com uma JVM, Concórdia Server e agentes móveis.

 Grasshopper (IKV, 99a apud PEREIRA FILHO, 2001) – Grasshopper é


completamente desenvolvido em Java. Desta forma, o ambiente pode ser
instalado em qualquer computador que possui uma Máquina Virtual Java.
Além disso, oferece um suporte a segurança e facilidades para
gerenciamento. A proteção oferecida é aplicável aos agentes e ao ambiente
(contra agentes maliciosos).

 Gossip e Tryllian Agent Toolkit (TRYLLIAN, 1999 apud PEREIRA FILHO,


2001) – Na Tryllian, desenvolvedora do Gossip, a definição de um agente é
”assistente inteligente móvel”. Todas as informações do usuário, como
interesses e preferências, são armazenadas em um perfil do usuário. Os
agentes criados pela Tryllian demonstram certo nível de inteligência. Eles
utilizam um laço de sense-reason-act. O laço sense-reason-act é um
mecanismo que controla a interação entre uma entidade inteligente e um
ambiente dinâmico ou desconhecido.

Sense: observa o ambiente e o modela internamente. Reason: atualiza o


estado interno e determina uma ação baseada no estado do ambiente e no seu
estado interno. Act: Realiza a ação proposta.

A Figura 1 demonstra alguns dos resultados obtidos por Pereira Filho (2001), na
qual ele avalia os ambientes nos quesitos, segurança, desempenho e
documentação.

Figura 1 – Comparativo entre Ambientes de Desenvolvimento.


Fonte: Pereira Filho (2001).

Dentre as diversas plataformas de agentes móveis apresentadas na Figura 1,


podemos notar que a plataforma Aglets (ASDK) da IBM tem um desempenho
relativamente superior nos quesitos segurança, desempenho e obteve uma média
geral de muito bom a ótimo, o que a torna a escolha adequada para o
desenvolvimento do projeto. A Figura 2 apresenta a interface do ambiente Tahiti,
servidor dos agentes Aglets.
Figura 2 – Servidor Tahiti do Ambiente Aglets da IBM.

Além dos ambientes servidores, uma outra função de extrema importância dos
sistemas de agentes é a de garantir a segurança, tanto dos servidores quanto dos
agentes neles hospedados. A segurança é um aspecto crítico no processo de
execução de código móvel e em particular na execução de agentes móveis.

3.3 AGENTES MÓVEIS E PROBLEMAS DE SEGURANÇA

Sander e Tschudin (apud BERNARDES, 1999) fornecem um exemplo interessante


de problema de segurança que pode ocorrer durante uma busca por preços de
passagem feita por um agente de compras. Suponha que o objetivo programado
pelo usuário seja visitar os servidores de várias empresas aéreas, encontrar um vôo
disponível e, uma vez determinada a melhor oferta, agendar o vôo. Alguns ataques
possíveis são:

 Ao chegar a um servidor A (servidor malicioso), o estado e código do agente


são alterados de forma que ele esqueça os outros servidores já visitados e
opte pela oferta do servidor A;
 Alterar o estado interno do agente e roubar toda moeda eletrônica que ele
esteja levando;

 Agente resolve agendar o vôo e, portanto, precisa assinar digitalmente com


sua chave-privada: a chave-privada é roubada.

De forma geral, os problemas mais preocupantes são: proteger um host de um


agente mal intencionado e proteger um agente de um host mal intencionado. O
primeiro problema pode ser tratado através de técnicas convencionais como listas
de controle de acesso e autenticação. Por sua vez, é amplamente aceito que não
existe uma solução que previna a ocorrência do segundo problema, a menos que
haja hardware confiável e a prova de adulteração (CHESS et. al., 1995 apud
BERNARDES, 1999).

Diversas pesquisas têm sido feitas com intuito de criar ambientes de agentes que
possam garantir um mínimo de segurança. Uma delas é o trabalho de Uto (2003), o
qual descreve diversas formas de segurança voltadas a agentes móveis.
4 SISTEMAS BASEADOS EM AGENTES MÓVEIS

A tecnologia de agentes vem sendo aplicada academicamente nos mais diversos


campos, principalmente em inteligência artificial, sistemas distribuídos e engenharia
de software (PEREIRA FILHO, 2001).

No desenvolvimento de sistemas, a tecnologia de agentes pode ser aplicada nas


seguintes áreas (AGENTBUILDER, 2003 apud KNYCHALA NETO, 2003):

 automação de processos e workflow;

 comércio eletrônico;

 solução de problemas distribuídos;

 ensino Colaborativo;

 aplicação de Internet.

Além das aplicações citadas por Knychala Neto, diversos autores como Bernardes
(1999), Pereira Filho (2001) e Tavares (2002), propõem a utilização voltada à
segurança computacional, citando algumas vantagens sobre abordagens
centralizadas.
4.1 VANTAGENS DA UTILIZAÇÃO DE AGENTES MÓVEIS

Tavares (2002) diz que em um sistema centralizado a análise dos dados é realizada
em um número fixo de lugares, independente da quantidade de máquinas sendo
monitoradas. Segundo o autor em um sistema distribuído (neste caso, agentes
móveis) a análise dos dados é realizada em um número de posições proporcional ao
número de máquinas que estão sendo monitoradas.

Conforme Bernardes (1999) uma abordagem centraliza apresenta alguns problemas


práticos, dentre eles, uma preocupação diz respeito à tolerância à falhas, uma vez
que um sistema centralizado apresenta-se como um único ponto de falha e ataques.
Consequentemente, metodologias de ataques, como, ataques Denial of Service, são
proferidos a máquina que hospeda o sistema e comprometem por completo a
integridade do sistema.

Bernardes (1999) destaca algumas vantagens de sistemas baseados em agentes


móveis sobre sistemas centralizados:

 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
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;

 capacidade de extensão - 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;
 resistência à subversão: caso um sistema de defesa seja subvertido, ele
poderá dar a falsa sensação de segurança. Entretanto, com agentes
móveis, 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.

Tendo em vista os aspectos citados acima, este projeto apresenta a proposta de


uma abordagem modular baseada em agentes móveis para o desenvolvimento de
um Sistema Multiagente de Verificação, Notificação e Reação contra aplicativos
suspeitos, em execução no ambiente de rede.

4.2 ARQUITETURA DO SISTEMA PROPOSTO

Uma arquitetura para a introdução de agentes móveis em Sistemas Detecção de


Intrusão foi proposta por Bernardes (1999) e é apresentada na Figura 3.

Figura 3 – Arquitetura em Camadas proposta por Bernardes.


Fonte: Bernardes (1999).
As camadas são numeradas a partir da camada de Vigilância (camada 1), e
cada uma delas representa um grupo de tarefas específicas
desempenhadas por agentes especializados nas funções desta camada.
Através do mecanismo de troca de mensagens, um agente em uma camada
aciona um ou mais agentes em uma camada superior. Em outras palavras,
a camada N utiliza os serviços da camada N-1, desempenha suas funções e
fornece serviços para a camada N+1 (BERNARDES, 1999).

Com base na arquitetura apresentada por Bernardes, algumas modificações foram


realizadas para desenvolvimento do sistema proposto, conforme Figura 4.

Figura 4 – Adaptação da Arquitetura Proposta por Bernardes.

Como visto na Figura 3 os agentes da camada de Notificação se comunicavam com


os da camada 4 (Reação), esta comunicação foi retirada visando dar maior controle
ao responsável pela rede, uma vez que este decide a melhor maneira de sanar o
problema identificado.
A introdução de um agente de controle se deu em virtude da necessidade de
gerenciar o envio e recebimento dos agentes, diminuindo o trabalho do
administrador em gerenciar os agentes de vigilância e visualização dos resultados.

A nova arquitetura pode ser descrita, de forma mais específica, da seguinte maneira:

 Agente de Controle - controla o envio e recebimento dos agentes. É a


interface entre o administrador da rede e os agentes, possibilita a
visualização dos resultados;

 Agentes de Vigilância - responsáveis por verificar os possíveis serviços


em execução não permitidos a determinado usuário, os mesmos se
comunicam através de mensagens com os Agentes de Tomada de
Decisão;

 Agentes de Tomada de Decisão - analisa os resultados do agente de


vigilância e compara com o perfil de usuário, detectando possíveis
serviços suspeitos, uma vez identificados serão enviadas mensagens
aos Agentes de Notificação;

 Agentes de Notificação - coletam os resultados dos Agentes de


Tomada de Decisão e notificam o administrador da rede;

 Agentes de Reação - com base nos resultados dos Agentes de


Notificação o administrador solicita uma reação, neste caso, fechar o
processo não permitido.

4.3 CENÁRIO DE IDENTIFICAÇÃO DE SERVIÇOS NÃO PERMITIDOS

No processo de modelagem torna-se interessante a representação do cenário de


execução do sistema. Para essa representação, utiliza-se uma ferramenta lógica
conhecida como Diagrama de Fluxo de Dados (DFD), por ser uma ferramenta
simples, de fácil entendimento e bastante utilizada na modelagem de sistemas.

A Figura 5 apresenta os símbolos utilizados e sua representação neste contexto.


Figura 5 – Representação dos Elementos do DFD.
Fonte: Bernardes (1999).
Visando sua compreensão e visualização do relacionamento entre as camadas da
arquitetura proposta, a modelagem do cenário de identificação de serviços não
autorizados é apresentada conforme Figura 6.

Figura 6 – Identificação de Serviços Não Permitidos.

Este sistema consiste de um conjunto de pequenos processos (agentes) que podem


agir independentemente no ambiente. Eles serão desenvolvidos para moverem-se
pelo ambiente (rede de computadores), observarem os comportamentos dos
aplicativos em execução, cooperarem uns com os outros via passagem de
mensagens, notificarem quando uma ação for considerada suspeita e, se
necessário, executar uma reação.

5 FERRAMENTAS PARA IMPLEMENTAÇÃO DO PROTÓTIPO

Uma vez definidos o ambiente servidor de agentes e a arquitetura, e modelado o


cenário de execução, devemos especificar as tecnologias utilizadas, como
linguagem de programação, compilador para linguagem e definir o ambiente de
rede.

5.1 LINGUAGEM DE PROGRAMAÇÃO E COMPILADOR

Conforme visto na seção 3.2, o ambiente servidor de agentes adotado, Tahiti, utiliza
a linguagem Java como padrão. Isto torna Java a linguagem adequada para
desenvolvimento do sistema proposto.
O compilador Java traduz programas-fonte Java em um código intermediário e
independente da plataforma, chamado Java Byte Code, que é interpretado por uma
Java Virtual Machine (JVM), o que torna a linguagem independente da plataforma
(Windows, Linux, Mac OS, etc) sendo necessário apenas a JVM adequada ao seu
sistema operacional.

Existem diversos IDEs (Integrated Development Environment), ambientes integrados


para desenvolvimento de software em Java, entre eles foram testados o Eclipse,
versão 3.4, e o NetBeans, versão 5.5.1. O ambiente adotado para desenvolvimento
do sistema foi o NetBeans, pois para desenvolvimento dos agentes o compilador
atendeu de forma satisfatória. Principalmente quanto a interface, este ambiente nos
deu maior flexibilidade e facilidade para desenvolvimento da interface do sistema.

5.2 REDE DE COMPUTADORES UTILIZADA

Como o sistema tem a finalidade de execução em rede, foi montado um ambiente


para implementação e testes do sistema, conforme Figura 7.
Figura 7: Rede de Computadores Utilizada.

O ambiente é composto por três máquinas, sendo duas físicas e uma virtual
emulada por um software de virtualização.
6 IMPLEMENTAÇÃO DO PROTÓTIPO

O desenvolvimento do protótipo foi realizado em camadas sendo elas, agente de


controle, agente de vigilância, agente de tomada de decisão, agente de notificação e
agente de reação, conforme seção 4.2, Figura 4.

6.1 AGENTE DE CONTROLE

O Agente de Controle é a interface do sistema com o administrador, responsável


pelo envio e recebimento de agentes, além de possuir um gerenciador de perfis.

De forma específica este agente tem as seguintes características:

 Parâmetros: Endereços IP das máquinas de destino (envio de Agentes de


Vigilância), ou Nome do Serviço a ser fechado e o IP Remoto (envio de
Agentes de Reação), Resultados de Notificação;

 Função: Interface com o Administrador, Controle de Envio e Recebimento de


agentes, Criar e Editar perfis de usuários;

 Agente ativador: Administrador da rede;

 Agente a ser ativado: Agente de Vigilância ou Agente de Reação.

Outra característica importante é o ID do agente de controle, este é o identificador


único do agente, como se fosse o C.P.F dos brasileiros. Este identificador é enviado
através de todas as camadas da arquitetura proposta (Figura 4), para que possa ser
feito o controle.

Na Figura 8, apresenta-se a interface do agente de controle com o administrador.


Figura 8: Interface do Agente de Controle.

Na interface, temos a interação entre administrador e agente. Em “Rede Local”


temos a faixa de endereços IP para ser realizada a verificação (Agentes de
Vigilância). No campo “Fechar Processo” é efetuado o envio do Agente de Reação.
O botão “Limpar” limpa os resultados da tela, “Salvar” tem a finalidade de salvar os
resultados obtidos. Dentre as funcionalidades do agente de controle deve-se
destacar o Gerenciamento de Perfis, cuja função é a edição e criação de novos
perfis de usuário, onde constam os serviços permitidos a este.
6.1.1 Gerenciamento de perfis

No decorrer do projeto, nota-se a necessidade de ter um gerenciamento de perfis,


pois o perfil de usuário tem papel importantíssimo para funcionamento do sistema,
uma vez que este é usado como parâmetro para a identificação dos serviços não
permitidos.

A seguir é apresentada a interface do gerenciamento de perfis.

Figura 9: Tela Inicial do Editor de Perfil.


O editor do gerenciamento tem como funcionalidade a criação, edição a remoção de
usuários. Sendo selecionado “Novo Perfil”, será permitido ao administrador introduzir
os serviços permitidos a um novo usuário, conforme Figura 10.

Figura 10: Novo Perfil.

Os processos listados na Figura 10 são os processos utilizados pelo sistema para


sua execução, logo estes deverão ser permitidos a todos os usuários. São eles
java.exe (Máquina Virtual Java), cmd.exe (Prompt de comando do Windows),
tasklist.exe (Gerenciador de tarefas), taskkill.exe (Fecha determinado processo em
execução).

Novos aplicativos podem ser instalados nas máquinas, então a edição do perfil
torna-se essencial, a edição pode ser vista na Figura 11.
Figura 11: Edição de Perfil Existente.

Depois de selecionado o usuário e a opção de “Abrir”, temos a lista de serviços


permitidos ao usuário, sendo possível editar (remover, adicionar determinados
serviços). É possível apagar o perfil inteiro, removendo assim o usuário.

Como visto o editor de perfil torna-se peça fundamental para execução do sistema,
uma vez que o perfil é base para o funcionamento do sistema.
6.2 AGENTE DA CAMADA DE VIGILÂNCIA

Agentes de Vigilância têm a função de trafegar pela rede nas máquinas que irão
monitorar, e capturar uma lista com informações dos usuários.

O Agente de Vigilância tem as seguintes características:

 Parâmetros - Identificador do Agente de Controle, IP da máquina a ser


monitorada;

 Função - Capturar nomes de serviços em execução relacionados aos


usuários “conectados” em determinada máquina;

 Agente ativador - Agente de Controle;

 Agente a ser ativado - Agente de Tomada de Decisão.

Os parâmetros são passados pelo agente de controle. Conforme Figura 6, tem-se


em “Rede Local” a faixa de endereços IP para os quais serão emitidos os Agentes
de Vigilância. Foi implementada uma verificação “offline”, ou seja, uma verificação
na máquina local, sem a presença de conexão de rede, tendo como parâmetro o IP
127.0.0.1 (Localhost).

Para realizar sua função, foi utilizado um comando do próprio sistema operacional
(Windows XP Professional): o agente executa o comando tasklist.exe, obtendo
informações dos serviços executados pelo usuário que está “on-line” no sistema.
Estas informações são armazenadas em arquivos texto, os quais serão parâmetros
para o agente de tomada de decisão.
6.3 AGENTE DA CAMADA DE TOMADA DE DECISÃO

O Agente de Tomada de Decisão tem as seguintes características:

 Parâmetros - Identificador do Agente de Controle, IP do servidor, IP do


destino, Nome do usuário, Perfil do usuário, Arquivo de Verificação;

 Função - Identificar os serviços suspeitos em execução relacionados ao


usuário “conectado” em determinada máquina;

 Agente ativador - Agente de Vigilância;

 Agente a ser ativado - Agente de Notificação.

Através do IP do servidor e do nome de usuário, o agente de tomada de decisão


busca no servidor (máquina do administrador) o perfil do usuário para realizar a
comparação com o resultado do agente de vigilância. Assim são identificados os
serviços suspeitos, armazenando os resultados em arquivo texto. Depois de realizar
sua tarefa, o agente da camada superior é ativado, Agente de Notificação.

6.4 AGENTE DA CAMADA DE NOTIFICAÇÃO

O Agente de Notificação tem as seguintes características:

 Parâmetros - Identificador do Agente de Controle, Arquivo de Decisão, IP do


servidor;

 Função - Notificar o administrador;

 Agente ativador - Agente de Tomada de Decisão;

 Agente a ser ativado - Comunica-se com o agente de controle.


Este agente é responsável pelo retorno ao servidor de origem. O agente carrega o
arquivo com os resultados finais do processo, passando assim a notificação para a
interface do agente de controle.

A Figura 12 apresenta uma notificação ao administrador sobre possíveis serviços


suspeitos.

Figura 12: Notificação ao Administrador.

Com base na notificação cabe ao responsável pela rede tomar as medidas cabíveis,
sendo possível solicitar uma reação ao Agente de Reação.
6.5 AGENTE DA CAMADA DE REAÇÃO

O Agente de Vigilância tem as seguintes características:

 Parâmetros - IP da máquina de destino, Nome do Serviço;

 Função - Fechar serviço suspeito em determinada máquina;

 Agente ativador - Agente de Controle;

 Agente a ser ativado – Comunica-se com o administrador.

Os parâmetros são enviados pelo agente de controle (Figura 12), na interface temos
o campo “Fechar Processo”, estes são os parâmetros necessários para efetuar a
reação (Nome do serviço suspeito e o IP da máquina remota).

Para realizar sua tarefa, foi utilizado um comando do próprio sistema operacional
(Windows XP Professional). O agente executa o comando taskkill.exe que efetua o
fechamento do processo em execução.

Este agente é o único que se comunica com o usuário conectado ao sistema, uma
vez que este não tem permissão para executar determinado serviço, sendo
necessário que o mesmo fique ciente que está sendo monitorado. Esta comunicação
pode ser vista na Figura 13, onde o usuário não tinha permissão para executar o
aplicativo iexplore.exe (Browser Internet Explorer).

Figura 13: Mensagem ao usuário


O agente de reação retorna ao servidor e informa ao administrador, se obteve êxito
na sua tarefa, vide Figura 14.

Figura 14: Mensagem ao administrador.

Como visto o agente de reação não tem a função de bloquear o serviço ao usuário,
dando a liberdade ao administrador tomar a decisão cabível que atenda a sua
política de segurança.
7 CONCLUSÕES E TRABALHOS FUTUROS

7.1 CONCLUSÃO

Neste trabalho foi desenvolvido um sistema multiagente de verificação, notificação e


reação contra aplicativos não permitidos como apoio a segurança do ambiente de
rede. Adotou-se uma arquitetura modular baseado em agentes móveis.

A arquitetura modular para desenvolvimento, trouxe benefícios para o sistema


desenvolvido, como fácil configuração, escalabilidade e capacidade de extensão.
Uma vantagem encontrada foi quanto a ataques de negação de serviço (DoS).
Apesar do agente de controle ser centralizado, a tecnologia de agentes móveis
possibilitou que o sistema fosse utilizado em qualquer máquina da rede, sendo
assim menos suscetível a ataques DoS.

Conforme descrito na seção 2.2 ataques podem ser ocasionados por execução de
aplicativos de origem suspeita e não permitidos. Em testes realizados no ambiente
de rede adotado o sistema atendeu de forma satisfatória, identificando os processos
suspeitos, notificando o administrador e, quando solicitada uma reação, o mesmo
cumpriu com sua tarefa.

Através dos resultados, o administrador pode gerar relatórios sobre o


comportamento dos usuários atribuindo a estes as devidas responsabilidades, além
de propor melhorias na gestão de incidentes de segurança e na política de
segurança conforme norma ISO/IEC 27001:2005.

Em questões de desempenho do sistema na rede, problemas com tráfego de dados


não afetaram o sistema, pois os agentes possuem um tamanho muito pequeno se
comparado à taxa de transmissão da rede. Além do tamanho dos agentes, o sistema
foi construído visando minimizar estes problemas. O único agente que depende do
fluxo da rede e dos resultados dos demais agentes é o agente de controle. Sendo
assim, se uma estação deixar de funcionar o sistema não é afetado de maneira a
comprometer sua execução.
7.2 TRABALHOS FUTUROS

Durante o desenvolvimento deste projeto foram identificados alguns pontos visando


melhor desempenho, flexibilidade e a introdução de novos recursos ao sistema, bem
como o estudo de alguns aspectos relacionados à metodologia de agentes e ao
ambiente adotado. Sugere-se para trabalhos futuros:

 Introdução de novos agentes - por exemplo, agentes de chat visando dar ao


administrador controle e comunicação com o usuário;

 Gerenciamento de perfis - propor melhorias no gerenciamento de perfis, via


banco de dados, arquivos binários, arquivos criptografados, visando maior
segurança e mobilidade ao sistema, sendo possível a introdução de um
agente de edição de perfil;

 Adaptação do ambiente servidor - visando maior segurança e melhor


desempenho melhorias no ambiente servidor podem ser introduzidas, pois o
mesmo possui código aberto;

 Técnicas de segurança ao ambiente e ao sistema - com base no trabalho de


Uto (2003), avaliar as técnicas que se adequariam ao sistema proposto;

 Testes de impacto - realizar testes deste tipo de sistema em organizações de


médio a grande porte, com grande tráfego de rede e muitos usuários;

 Integração do sistema - integrar o sistema aos mecanismos de segurança


existentes, tais como, firewall, sistemas de detecção de intrusão, etc;

 Introduzir módulo de estatísticas - visualização gráfica dos resultados, visando


maior controle e facilidades de administração;

 Adaptação para outros sistemas operacionais - o protótipo atual adota apenas


o sistema operacional Windows XP Professional, no entanto, é possível
propor alterações ou até mesmo a introdução de agentes específicos para
cada plataforma;

 Proteção das máquinas em “tempo real” - tornar o sistema capaz de executar


suas funções a partir da inicialização do sistema operacional de cada
máquina, assim dando a possibilidade de identificação dos serviços suspeitos
quando inicializados pelo usuário.

8 REFERÊNCIAS

1 BERNARDES, Mauro César. Avaliação do uso de agentes móveis em


segurança computacional. Dissertação de mestrado apresentada ao
ICMC/USP em dezembro de 1999. Disponível em:
<http://www.teses.usp.br/teses/disponiveis/55/55134/tde-04022002-103542/>
Acesso em: 22 de abr. de 2008.

2 ISO/IEC 27000:2005, Norma. Código de Boas Práticas


da Gestão de Segurança da Informação. Disponível em
<http://www.sinfic.pt/SinficNewsletter/sinfic/Newsletter92/ISO17799.html>
Acesso em: 27 de mai. de 2008.

7 KNYCHALA NETO, Adalberto. Agentes Móveis. Monografia apresentada ao


Centro Universitário do Triangulo – Unit, em dezembro de 2003. Disponível em <
computacao.unitri.edu.br/downloads/monografia/97651129128112.pdf>
Acesso em: 1 de out. de 2008.

8 LOBO, Ana Paula. Segurança da Informação movimentou US$ 370 milhões


no Brasil. Texto disponibilizado em 11 mar. 2008. Disponível em:
<http://www.convergenciadigital.com.br/cgi/cgilua.exe/sys/start.htm?infoid=12772
&sid=18> Acesso em: 26 de nov. de 2008.

9 NAGAMUTA, Vera. Coordenação de Agentes Móveis através do Canal de


Broadcast. Dissertação de mestrado apresentada ao IME/USP em novembro de
1999. Disponível em: <http://www.teses.usp.br/teses/disponiveis/45/45134/tde-
11102005-123304/ > Acesso em: 19 de abr. de 2008.

10 PEREIRA FILHO, Stênio Firmino. Avaliação de ambientes servidores para


agentes móveis. Dissertação de mestrado apresentada ao ICMC/USP em
dezembro de 2001. Disponível em:
<http://www.teses.usp.br/teses/disponiveis/55/55134/tde-08022002-173805/>
Acesso em: 19 de abr. 2008.

11 SILVA, Edna Lúcia da; MENEZES, Estera Muszkat. Metodologia da pesquisa e


elaboração de dissertação. 3. ed. Florianópolis 2001 Disponível em:
<projetos.inf.ufsc.br/arquivos/Metodologia%20da%20Pesquisa%203a%20edicao.
pdf> Acesso em: 27 mai. 2008.

12 TAVARES, Dalton Matsuo. Avaliação de técnicas de captura para sistemas


detectores de intrusão. Dissertação de mestrado apresentada ao ICMC/USP
em dezembro de 2002. Disponível em:
<http://www.teses.usp.br/teses/disponiveis/55/55134/tde-02122002-015238/>
Acesso em: 16 de abr. 2008.

13 UTO, Nelson. Segurança de Sistemas de Agentes Móveis. Dissertação


apresentada ao Instituto de Computação, UNICAMP. Disponível em:
<www.las.ic.unicamp.br/paulo/teses/trabalhos-relacionados/NelsonUto.pdf>
Acesso em: 19 de abr. 2008.

You might also like