Você está na página 1de 12

VII Simpsio Brasileiro de Sistemas de Informao

Uma Ferramenta Adaptativa Baseada em Agentes Mveis


Inteligentes para Segurana de Aplicaes Web
Mrcio A. Macdo1, Ruy J. G. B. de Queiroz1, Julio C. Damasceno2
1

Centro de Informtica Universidade Federal de Pernambuco (UFPE)


Cidade Universitria 50.740-540 Recife PE Brasil

Departamento de Informtica Universidade Federal Rural de Pernambuco (UFRPE)


Rua Dom Manuel de Medeiros, S/N 52.171-900 Recife PE Brasil
{mam5,ruy}@cin.ufpe.br, julio.damasceno@deinfo.ufpe.br

Abstract. Nowadays, we see the need for migration of desktop software to the
Internet. Because of this, the number of web applications developed grows
every day, and projections related to the persistence of such a steady growth
are even more optimistic. However, the security of web applications is not
prioritized the same way that the quest for rapid and agile software
development. Based on these considerations, this paper presents an alternative
to solve the aforementioned problem by using an adaptive web application
firewall that also protects web applications from known attacks, and protect
them from possible 0-day attacks that may arise.
Resumo. Nos dias atuais, observamos a necessidade de migrao dos
softwares desktop para a Internet. Por conta disso, cresce a cada dia o
nmero de aplicaes web desenvolvidas e as projees relacionadas a
continuidade desse crescimento so ainda mais otimistas. No entanto, a
segurana das aplicaes web no priorizada da mesma forma que a busca
pelo desenvolvimento de software rpido e gil. Com base em tais
consideraes, esse trabalho apresenta uma alternativa para solucionar o
problema supracitado atravs da utilizao de um firewall de aplicaes web
adaptativo que, alm de proteger as aplicaes web de ataques j conhecidos,
proteger as mesmas de possveis ataques 0-day que possam surgir.

1. Introduo

A proteo de servidores de aplicaes web, permitindo acesso s aplicaes somente


por pessoas autorizadas, uma necessidade global. Isso se deve ao crescimento do
desenvolvimento de aplicaes web, pois programadores, empresas e corporaes tm
observado que a Internet atualmente um dos meios mais importantes para se fazer
comrcio e isso provocou o desaparecimento de fronteiras para os negcios. Contudo,
devido ao crescimento exponencial desse mercado, empresas tm contratado mo de
obra inexperiente, e tm recorrido a solues de desenvolvimento fornecidas por
diversos frameworks, que muitas vezes escondem vrios problemas de segurana.

Um dos grandes problemas que estas empresas vm enfrentando o crescimento


dos ataques que exploram vulnerabilidades presentes em aplicaes web. Essas
vulnerabilidades em questo so criadas durante o processo de desenvolvimento e
colocam as aplicaes e consequentemente as empresas em risco, podendo levar ao

105

VII Simpsio Brasileiro de Sistemas de Informao

vazamento de informaes privilegiadas, o que pode acarretar no comprometimento do


modelo de negcio.

Apesar das dificuldades no tratamento de falhas de aplicaes, devido ao


surgimento de novas vulnerabilidades e da diversificao das tcnicas de ataques a
camada de aplicao [CERT.BR 2010], algumas empresas tm adotado possveis
solues para esse problema como: o investimento em treinamento de desenvolvimento
de cdigo seguro para suas equipes, a utilizao de um processo de software confivel e
baseado em testes de segurana e a utilizao de IDS (Intrusion Detection Systems)
[Bace and Mell 2001]. Porm, nenhuma dessas medidas ataca o problema de forma
eficaz ou pelo menos d ao desenvolvedor a garantia de proteo da sua aplicao.

A soluo apresentada neste artigo implementada atravs de um firewall de


aplicaes que trabalha diretamente na camada de aplicao. Essa soluo, alm de
funcionar como ponto nico de verificao atravs de um proxy reverso, filtra os
possveis pacotes que possam apresentar ameaas a aplicao e cria uma camada de
filtragem de forma segura e confivel. Alm disso, a nossa soluo conta com o auxilio
de um agente mvel inteligente, que aprende sobre novas formas de ataque e atualiza a
base de conhecimento do firewall de aplicaes em tempo real de forma totalmente
autnoma, fornecendo a nossa soluo caractersticas adaptativas.

2. Conceitos Preliminares
2.1. Web Application Firewall

De acordo com [WAFEC 2006], Web Application Firewall (WAF) uma nova
tecnologia de segurana que tem o papel de proteger aplicaes web de ataques. As
solues de um WAF so capazes de prevenir ou at mesmo neutralizar um ataque a
uma aplicao, conseguindo filtrar de forma eficiente o que um IDS (Intrusion
Detection Systems) e firewalls de rede no conseguem. Isso se deve ao fato de um WAF
agir diretamente na camada de aplicao, filtrando os dados e principalmente
parmetros utilizados em uma transao HTTP [Jones and Bejtlich 2006].
2.1.1. Implementaes e configuraes de um WAF

Os WAFs podem ser implementados de trs formas diferentes, cada uma possuindo
vantagens e desvantagens. Segundo [WAFEC 2006], as formas de implementao de
um WAF so:

No nvel da camada de rede.

Atravs de um proxy reverso.

Diretamente no servidor web.

De acordo com [WAFEC 2006], os firewalls de aplicaes web podem ser


configurados para detectar ataques de duas diferentes formas:

Modelo de segurana negativo.

Modelo de segurana positivo.

106

VII Simpsio Brasileiro de Sistemas de Informao

2.1.2. Modelo de segurana negativo

O modelo de segurana negativo simples de ser configurado e tem por base permitir o
trfego de todos os pacotes de solicitao, filtrando somente os que obedecem a alguma
assinatura ou regra do WAF (black list). O sucesso dessa implementao determinado
pela eficincia com que o firewall de aplicao web consegue detectar solicitaes
nocivas, de acordo com sua base de regras e assinaturas.
O problema em implementar o modelo de segurana negativo, reside no risco do
banco de dados de regras filtrar um grande nmero de falso-positivos (quando a regra
filtra pacotes autnticos da aplicao) e por esse modelo ser mais suscetvel a tcnicas
de evaso.
A vantagem de se usar o modelo de segurana negativo se deve a facilidade de
configurao que o mesmo proporciona, pois sero criadas regras e assinaturas de
ataques que sero aplicadas a todas as requisies.
2.1.3. Modelo de segurana positivo

O modelo de segurana positivo complexo considerando sua configurao e


implementao. Por padro todo e qualquer trfego bloqueado e permite-se somente
os pacotes de solicitao que respeitem a algumas regras que garantem que a solicitao
segura para a aplicao (white list). Essa forma de configurao mais segura e
eficiente, pois necessita de menos regras de segurana para filtragem.

O problema em configurar um firewall de aplicao com esse modelo se deve a


grande necessidade de conhecimento sobre a aplicao e, a partir desse conhecimento,
julgar o que nocivo ou no e assim, criar uma regra totalmente personalizada para
proteger a aplicao de ataques.
2.2. Honeypots

Honeypots so recursos computacionais estreitamente monitorados, tais como


softwares, hosts servidores ou mquinas virtuais instalados em um ambiente
computacional, cuja inteno que os mesmos sejam sondados, atacados e
comprometidos. Um honeypot funciona como uma armadilha para que seja possvel
aprender sobre o padro de ataque e ferramentas empregados por invasores durante o
processo de invaso. O honeypot no reage aos ataques, apenas armazena informaes
sobre o processo de ataque, desde a sondagem at a invaso, inclusive monitorando as
aes do invasor depois que o mesmo invade o sistema [Provos and Holz 2007].

Dessa forma, ser possvel aprender mais sobre os mecanismos de ataques e usar
as informaes obtidas para proteger as aplicaes web do ambiente. Para o invasor, o
sistema parecer comprometido e, portanto, poder realizar vrias tentativas de
obteno de informaes de bancos de dados e/ou mesmo testar falhas na aplicao. Do
ponto de vista do modelo de segurana sugerido aqui, varias informaes importantes
esto sendo coletadas a respeito do mecanismo de ataque, do comportamento do
invasor, das ferramentas e que informaes exatamente o invasor busca.

Para entender melhor os honeypots, necessrio destacar os seus tipos e


particularidades, sendo assim, para uma primeira distino vamos esclarecer que os
honeypots podem ser hosts fsicos completos, ou seja, sistemas operacionais instalados
em uma mquina fsica com diversos servios ativos aguardando conexes entrantes.

107

VII Simpsio Brasileiro de Sistemas de Informao

Por outro lado podemos implementar honeypots atravs de mquinas virtuais rodando
sobre algum sistema de virtualizao, onde os honeypots apresentam as mesmas
funcionalidades implementadas em uma mquina fsica, no entanto, a escalabilidade
desse modelo muito maior, sua manuteno facilitada e, ainda, o custo bem menor
do que a utilizao de mquinas fsicas.

Outra importante distino dos honeypots quanto ao grau de interao entre os


mesmos e os invasores. Essa interao pode ser uma interao limitada ou uma
interao mais completa em termos de possibilidades para os potenciais atacantes. De
acordo com essa distino, temos os honeypots de baixa-interao e os de alta-interao,
respectivamente.

Os honeypots de baixa-interao so sistemas que emulam servios de rede,


aplicaes e alguns aspectos limitados de um servidor real. O seu objetivo, ao
implementar um subconjunto de funcionalidades de um sistema completo, coletar
informaes sobre um comportamento particular de ataque, por exemplo, como o acesso
a um determinado arquivo pode ser obtido, que ferramentas foram utilizadas e se algum
worm foi instalado. As informaes obtidas atravs do monitoramento dos ataques so
muito mais quantitativas que qualitativas, pois o atacante tem uma interao limitada
devido aos poucos servios e funcionalidades de rede disponveis. A vantagem da sua
utilizao a sua facilidade de implementao e de manuteno [Provos and Holz
2007].

Por outro lado, um honeypot de alta-interao um sistema de computao


convencional, assim como um servidor de comrcio eletrnico, um roteador, ou at
mesmo um switch. O importante que esse sistema no gera trfego para a rede, apenas
carga local devido aos processos dos servios que rodam localmente. Esse tipo de
honeypot um sistema completo, mas altamente vulnervel a aes maliciosas. Essa
considerao importante para a deteco de ataques, pois cada interao com esse tipo
de honeypot suspeita. Portanto, todo o trfego de e para o honeypot monitorado e
contabilizado em arquivos de log.
2.3. Agentes Mveis

Os agentes mveis tem se tornado uma tecnologia emergente para o desenvolvimento de


aplicaes e sistemas em ambientes abertos, distribudos e heterogneos, como, por
exemplo, a Internet [Wangham 2004]. O termo agente usado em diversas disciplinas
da cincia da computao, sendo um conceito estudado e aprofundado em inteligncia
artificial, sistemas distribudos, sistema de aprendizado adaptativo, sistema especialista,
algoritmos genticos e em estudos sobre ambientes sociais on-line e colaborativos.

Apesar de o paradigma de agentes mveis se apresentar como uma tecnologia


nova, o interesse nos agentes mveis no est motivado somente na tecnologia, mas
tambm pelos benefcios que eles fornecem para a criao de sistemas distribudos.
Lange (1998) apresenta sete boas razes para se utilizar agentes mveis, so elas:

Reduo da Carga da Rede;

Diminuio da Latncia da Rede;

Encapsulamento de Protocolos;

Execuo Assncrona e Autnoma;

108

VII Simpsio Brasileiro de Sistemas de Informao

Adaptao Dinmica;

Naturalmente Heterogneos;

Robustos e Tolerantes a Falhas.

3. Trabalhos Relacionados
3.1. ModSecurity

O ModSecurity [ModSecurity 2010] o WAF mais conhecido e utilizado na Internet,


sendo um projeto Open Source que mantido pela Breach Security. "O ModSecurity
um firewall de aplicaes web que funciona interligado ao container Apache como um
mdulo acoplado, e trabalha de duas formas, diretamente no servidor ou como um proxy
reverso. O mesmo fornece proteo contra uma srie de ataques a aplicaes web e
permite a monitorao do trfego HTTP, registro e anlise em tempo real"
[ModSecurity 2010].

O ModSecurity geralmente usa o modelo de segurana negativo e, por ser o mais


conhecido e tambm o primeiro firewall de aplicaes Open Source, o mesmo possui
vrios outros projetos relacionados, tambm Open Source, que ajudam a melhorar essa
soluo.

4. JShield Security Appliance

O jShield Security Appliance a nossa soluo para segurana de aplicaes web, que
tem por finalidade impedir que atacantes comprometam a segurana desse nicho de
aplicaes. Essa soluo composta por trs ferramentas, que so:

jShield Web Application Firewall;

Loki Honeypot;

Savant Mobile Agent;

A seguir, apresentaremos as trs ferramentas separadamente, observando todas


as caractersticas das mesmas. Aps isso, ser abordado a arquitetura completa do
jShield Security Appliance definindo o funcionamento das 3 ferramentas em conjunto e
sua comparao com trabalhos relacionados.
4.1. JShield Web Application Firewall
A nossa soluo de WAF denominada jShield [Macdo et al. 2010] uma ferramenta
desenvolvida na linguagem de programao Java. Um dos motivos para escolha desta
linguagem foi a camada de abstrao que Java oferece ao gerenciamento do protocolo
HTTP, alm da necessidade de um proxy reverso robusto e estvel para os containers
que rodam aplicaes desenvolvidas nessa linguagem como, por exemplo, o Tomcat da
Apache Software Foundation [Macdo et al. 2010].

O jShield funciona atravs de um proxy reverso, podendo utilizar tanto o modelo


de filtragem negativo baseado em regras de black list (configurao padro), como
tambm o modelo de filtragem positivo utilizando regras especficas para cada tipo de
requisio, baseando-se em regras de white list (deve ser configurado). O jShield
trabalha com um ponto nico de verificao, que tem como funo receber todas as

109

VII Simpsio Brasileiro de Sistemas de Informao

solicitaes HTTP direcionadas aos servidores web e filtrar pacotes potencialmente


nocivos s aplicaes, redirecionando esse trfego de pacotes suspeitos para os
honeypots a fim de documentar o ataque.

Alm disso, o jShield tambm faz a verificao dos dados enviados da aplicao
para o cliente, onde o mesmo filtra os dados da transao para evitar que a aplicao
ataque o usurio. Um exemplo que podemos citar so os ataques cross-site scripting
persistidos, onde o atacante insere o cdigo malicioso no banco de dados, por exemplo.

Outra caracterstica interessante do jShield que o mesmo implementa um


algoritmo que ativa subclasses de regras referente as grandes categorias de ataques
baseadas no top 10 de ataques a aplicaes web [OWASP 2010], aumentando assim a
capacidade da ferramenta em detectar e prevenir ataques nessas categorias. A Figura 1
retrata o funcionamento do jShield.

Figura 1. Esquema de gerenciamento de trfego e filtragem do jShield.

Primeiramente, o firewall de rede recebe todas as solicitaes HTTP


provenientes da internet que foram endereadas para os servidores web, e redireciona
essas solicitaes para o jShield.
Aps receber os pacotes, o jShield normaliza os dados da transao a fim de
evitar tentativas de evaso, ao mesmo tempo que verifica os parmetros e mtodos da
solicitao HTTP em busca de assinaturas ou padres de ataques.

Depois de receber e analisar cada pacote do trfego comum repassado pelo


firewall de rede, o jShield decide se o pacote nocivo ou no para a aplicao web.
Caso a solicitao no seja nociva, o jShield encaminha os pacotes para os servidores
web de forma totalmente transparente para a aplicao.

Caso a solicitao seja nociva, por padro, o jShield descarta o pacote sem
encaminhar a solicitao do atacante para nenhum local abortando a conexo. Outras
possibilidades seriam: redirecionar a requisio para uma pgina de acesso negado;
encaminhar a requisio para um aplicativo honeypot, que poder receber e documentar
toda a tentativa de ataque para, por exemplo, analisar e gerar novas regras e assinaturas
de ataques com base nas inferncias realizadas nesses logs.
4.2. Loki Honeypot

O Loki um honeypot de baixa iteratividade que armazena somente situaes julgadas


por ele como suspeita. Esta ferramenta ir capturar o trfego atravs do proxy reverso,

110

VII Simpsio Brasileiro de Sistemas de Informao

que estar recebendo as transaes direcionadas a uma aplicao vulnervel. Esse


mtodo de captura analisa os pacotes de informao que sero direcionados s
aplicaes web, e ento, atravs de regras para deteco de anomalias que sero
configuradas para cada pgina da aplicao vulnervel de forma especfica, o Loki ir
documentar todas as tentativas de intruso a essa aplicao, o que auxiliar o Savant a
detectar novos padres de ataques.
As regras especficas, para cada pgina da aplicao que o Loki usar para
detectar anomalias, sero escritas em XML obedecendo a uma representao de dados
muito simples, que facilitar tanto a configurao e programao de novas regras,
quanto a leitura das mesmas pelo honeypot.
Inicialmente, quando o proxy reverso receber a transao direcionada a aplicao
vulnervel, ir solicitar ao Loki para que o mesmo carregue as regras especficas para
pgina da aplicao especificada na transao.

Aps isso, o Loki receber do proxy reverso o contedo da transao para


analisar se o mesmo respeita ou no as regras definidas para essa pgina. A Figura 2
descreve esse processo.

Figura 2. Funcionamento do Loki Honeypot.

Caso a transao no respeite as regras, o Loki ir considerar a transao como


uma possvel tentativa de ataque e ir documentar todos os detalhes da mesma. Para
fazer essa documentao ser criado um documento XML que servir como repositrio
de logs, onde sero armazenadas todas as informaes inerentes aos ataques detectados
pelo Loki Honeypot.

Utilizando essa estratgia, conseguiremos, perfeitamente, detectar as tentativas


de ataques que sero feitas s aplicaes web vulnerveis utilizadas como honeypots,
alm de representar esses dados da melhor forma possvel, para que o Savant possa
extrair informaes e, com isso, gerar novas regras de produo para o jShield.
4.3. Savant Mobile Agent

Savant um agente mvel implementado na linguagem de programao Java, utilizando


o framework de desenvolvimento para agentes mveis chamado de Aglets [IBM 1996].
Aglets etimologicamente a unio das palavras applets e agent e foi desenvolvido nos
laboratrios da IBM do Japo. Aglets so agentes mveis baseados na linguagem de

111

VII Simpsio Brasileiro de Sistemas de Informao

programao Java, em outras palavras, so objetos mveis que podem visitar ns de


uma rede de computadores.

Uma vez executando em um computador, um Aglet pode parar sua execuo


repentinamente ou pode ser despachado para outro computador e retomar sua execuo
neste novo computador, pois o Aglet leva consigo seu cdigo e seu estado. Os Aglets
so executados dentro de um contexto-aglet, o qual o espao de trabalho dos Aglets e
tem como responsabilidade gerenciar os agentes em execuo. Em 7 de julho de 2000 a
IBM disponibilizou o cdigo fonte do sistema sob licena pblica, aprovada como uma
iniciativa de cdigo aberto.
Esse framework nos proporcionou vrias facilidades como, por exemplo, o
fornecimento de um contexto (ambiente para funcionamento do agente), protocolo de
comunicao/transferncia de agentes (ATP Agent Transfer Protocol) e as
funcionalidades necessrias para a vida desse agente como criao, migrao,
reobteno (ao de chamar o agente mvel de volta ao n origem) e eliminao.

O Savant Mobile Agent tem por funo principal navegar por contextos que
contenham o Loki Honeypot, com finalidade de analisar os logs gerados por essa
ferramenta, gerar regras de assinaturas dos ataques detectados, e transportar as regras
teis geradas de forma autnoma para o jShield, onde essas regras sero adicionadas a
sua base de conhecimento. A Figura 3 descreve o funcionamento do Savant.

Figura 3. Arquitetura de funcionamento do Savant Mobile Agent.

No primeiro estgio, o Savant transferido para o contexto que est localizado


no servidor do Loki Honeypot, nesse instante o objeto do agente serializado e enviado
pela rede, e totalmente desconectado do contexto origem. No segundo estgio, o
agente reconstrudo no contexto destino, onde executar sua principal funo, que
dividida em 3 etapas: analisar os logs do Loki Honeypot, miner-los a fim de gerar
novas regras para o jShield, baseando-se nesses logs e adicionar essas regras em sua
lista de regras. Aps terminar esse processo, o objeto do agente novamente serializado
e devolvido para o contexto de origem. Quando isso acontece, o Savant totalmente
desconectado do contexto em que se encontra. No terceiro estgio, o agente
reconstrudo mais uma vez, e executar a ao de atualizar a base de dados do jShield
com as novas regras, de forma totalmente autnoma.

112

VII Simpsio Brasileiro de Sistemas de Informao

Para classificar as tentativas de ataques, o Savant faz uso de tcnicas de


sensibilidade ao contexto baseado em um conhecimento pr-estabelecido sobre tipos de
ataques existentes. Dessa forma, a ferramenta poder classificar as possveis tentativas
de invaso detectadas, o que tambm o ajudar a minerar o conhecimento existente nos
logs.
Na etapa de minerao, primeiramente, analisado o contedo dos parmetros
de uma solicitao registrada como tentativa de ataque pelo Loki, a ferramenta ir
executar 2 passos: normalizar todos os dados (tcnicas anti-evaso) e analisar se algum
parmetro da solicitao possui palavras reservadas baseando-se em uma ontologia de
possveis padres de ataque. Essa ontologia mapeia palavras reservadas as suas
respectivas classes de ataques.

Caso o parmetro possua palavras reservadas, o Savant ir considerar a


solicitao como uma possvel tentativa de ataque. Aps isso, a solicitao passa por
uma nova anlise, por meio da qual ser verificado se as regras atuais do jShield
conseguem filtrar a possvel tentativa de invaso. Esse teste verificado utilizando a
lista de regras que o Savant conhece.

Caso o teste dessa etapa seja considerado negativo, a ferramenta ir classificar a


tentativa de ataque baseando-se nas palavras reservadas detectadas durante a primeira
etapa. Em seguida, ser gerada uma nova regra de filtragem para o modelo negativo do
jShield, utilizando os dados da solicitao interceptada pelo Loki. Para gerar essa regra,
utilizaremos as palavras reservadas existentes nesse log e tokens que representem
operaes lgicas. No prximo passo, a ferramenta adiciona a nova regra em sua lista de
regras conhecidas, onde aguardar o agente mvel ser transportado de volta ao contexto
onde se encontra o jShield, para ento atualizar a base de regras do mesmo.

5. Teste de Desempenho: JShield vs ModSecurity

Para validar a nossa pesquisa, foram realizados vrios testes de carga e estresse no
jShield e no ModSecurity (Ambos configurados como proxy reverso). O objetivo desses
testes foi comparar o jShield com o ModSecurity nos quesitos desempenho (vazo),
nmero de usurios simultneos que os WAFs testados suportam (escalabilidade), e
tambm a perda de velocidade que ocorre nas transaes que passam pelos mesmos
(latncia). Para executar esses testes utilizamos a ferramenta Apache JMeter [JMeter
2010].

O Apache JMeter, uma aplicao desktop desenvolvida na linguagem de


programao Java. Sendo largamente utilizando na realizao de testes de carga em
aplicaes cliente/servidor, tambm podendo ser usado para simular cargas de trabalho
em um servidor, rede, aplicaes ou mesmo em objetos. O seu desenvolvedor original
foi Stefanno Mazzochi, membro da Apache Software Foundation, mas hoje a
ferramenta, que Open Source, resultado do trabalho de milhares de pessoas [JMeter
2010].

Para efetuar os testes de desempenho, utilizamos o website da faculdade CEUT


(http://www.ceut.com.br/). Os testes foram divididos em trs etapas, das quais o
itinerrio do teste era acessar a pgina e fazer a solicitao de uma notcia no banco de
dados, sempre visando o pior caso. No primeiro caso, foram utilizados 10 usurios
acessando a aplicao simultaneamente. No segundo caso, foram utilizados 20 usurios

113

VII Simpsio Brasileiro de Sistemas de Informao

simultneos. E por final, no terceiro caso, foram utilizados 40 usurios simultneos


acessando a aplicao. Cada etapa do teste foi repetida 1000 vezes, e com os resultados
das mesmas foi feito uma mdia ponderada para chegar aos valores finais obtidos.

Os testes foram realizados em uma mquina com processador dual core, 2 Gb de


RAM e uma conexo com a internet do tipo 3G com a velocidade de 128 Kbps. Na
maquina foram instalados e configurados um Apache Tomcat com o jShield
devidamente configurado para o modelo de filtragem negativo contendo 30 regras de
filtragem em sua black list. E um servidor Apache com o ModSecurity devidamente
configurado para o modelo de filtragem negativo contendo tambm 30 regras em sua
black list. Os Grficos 1 e 2 demonstram a interpretao dos dados obtidos nos testes
realizados.
Com os resultados do primeiro teste (ver Grfico 1), podemos observar que com
10 usurios simultneos, o tempo de resposta atravs do jShield foi levemente superior
ao trfego comum e ao ModSecurity, pois a mdia por solicitaes foi
aproximadamente 5 segundos mais eficiente que a mdia por solicitaes do trfego
comum e 7 segundos mais eficiente que o ModSecurity. Porm, a vazo de dados do
trfego com jShield, obteve aproximadamente 4 operaes a menos por minuto que o
trfego comum e 1 operao a mais que o ModSecurity (Grfico 2).

No segundo resultado (ver Grfico 1), observamos que com 20 usurios


simultneos, o tempo de resposta atravs do jShield foi muito superior, pois a mdia por
solicitaes, foi aproximadamente 27 segundos mais eficiente que a mdia por
solicitaes do trfego comum e 30 segundos mais eficiente que o ModSecurity. J a
vazo dos dados foi aproximadamente 0,3 operao por minuto inferior ao trfego
comum e 0,5 operaes superior ao ModSecurity (ver Grfico 2), portanto, foram
considerados tecnicamente iguais.
E por final, no terceiro caso (ver Grfico 1), observamos que com 40 usurios
simultneos, o tempo de resposta atravs do jShield tambm foi considerado muito
superior, pois a mdia por solicitaes foi aproximadamente 25 segundos mais eficiente
que a mdia do trfego comum e 29 segundos mais eficiente que o ModSecurity. No
entanto, a vazo dos dados foi aproximadamente 0,4 operao por minuto inferior ao
trfego comum e 0,2 operaes superior ao ModSecurity (ver Grfico 2), portanto, mais
uma vez, considerados tecnicamente iguais.

Ento, com os resultados obtidos, podemos concluir que as solicitaes sendo


encaminhadas pelo jShield, so mais eficientes quando se trata de tempo de resposta, e
no causam prejuzos considerveis ao nmero de operaes por minuto da aplicao
que est sendo protegida. Isto se deve pelo jShield possuir um algoritmo de cache, o que
ajudou bastante nos resultados dos testes.

114

VII Simpsio Brasileiro de Sistemas de Informao

Grfico 1. Representao grfica do tempo de resposta.

Grfico 2. Representao grfica de operaes por minuto.

6. Concluses

O jShield um firewall de aplicao que implementa algumas caractersticas dos


sistemas autonmicos e, devido a sua arquitetura de aplicao, o mesmo pode ser
expandido para evoluir da categoria de software adaptativo para a de software
autonmico. As funcionalidades oferecidas pelo jShield tentam tirar, seno
completamente, mas grande parte da responsabilidade com a anlise de segurana das
aplicaes web das mos dos desenvolvedores. Assim, a sempre prioritria preocupao
com as regras de negcios das aplicaes pode continuar sendo o foco da equipe de
desenvolvimento.

Como demonstrado nos testes, o jShield alm de tornar a aplicao mais segura,
agiliza o tempo de resposta das solicitaes graas ao algoritmo de caching
implementado, ao mesmo tempo que no h perdas significantes na vazo dos dados
que passam pela ferramenta, tornando-o uma ferramenta extremamente atrativa pelos
seus resultados.
E, por fim, a grande contribuio deste trabalho a combinao de agentes
mveis (Savant Agent Mobile) em honeypots (Loki Honeypot) para minerar logs

115

VII Simpsio Brasileiro de Sistemas de Informao

gerados pelos mesmos e realizar inferncias para aperfeioar as regras do jShield de


forma totalmente autnoma, tornando-o mais robusto sem, no entanto, torn-lo um
gargalo evitando a configurao de regras excessivas de filtragem de pacotes.

Referncias
Bace, R., Mell, P. (2001). Intrusion Detection Systems. NIST - National Institute of
Standards and Technology. http://www.snort.org/docs/nist-ids.pdf.
CERT.BR (2010). Estatsticas dos Incidentes
http://www.cert.br/stats/incidentes/index.html. Julho.

Reportados

ao

CERT.br.

IBM. (1996) The Aglets Portal. http://aglets.sourceforge.net/old_site/links.html, Julho.


JMeter (2010). JMETER: Uma Aplicao desktop projetada para testes de carga e
medidas de performance. http://jakarta.apache.org/jmeter/. Julho.
Jones, K. J. and Bejtlich, R. Rose, C. W. (2006). Real Digital Forensics Computer
Security and Incident Response, Addison-Wesley.

Lange, D. (1998). Mobile objects and mobile agents: The future of distributed
computing?.
ECOOP98
Object-Oriented
Programming.
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.18.7189&rep=rep1&type=
pdf.

Macdo, M. A.; Queiroz, R. G. and Damasceno, J. C. (2010). JShield: Uma Soluo


Open Source para Segurana de Aplicaes Web. VI Simpsio Brasileiro de Sistemas
de Informao SBSI, Anais SBSI 2010.
ModSecurity (2010). ModSecurity:
http://www.modsecurity.org. Julho.

open

source

web

application

firewall.

OWASP (2010). The ten most critical web application security vulnerabilities. Open
Web
Application
Security
Project
OWASP.
http://owasptop10.googlecode.com/files/OWASP%20Top%2010%20-%202010.pdf.
Provos, N. and Holz, T. (2007) Virtual Honeypots From Botnet Tracking to Intrusion
Detection. Addison-Wesley.

WAFEC (2006). Web Application Firewall Evaluation Criteria. Web Application


Security Consortium. http://www.webappsec.org/projects/wafec/v1/wasc-wafecv1.0.pdf.

WANGHAM, M. (2004) Esquema de Segurana para Agentes Mveis em Sistemas


Abertos. Tese de Doutorado, Universidade Federal de Santa Catarina, 2004.
http://www.tede.ufsc.br/teses/PEEL1050.pdf.

116

Você também pode gostar