Você está na página 1de 193

UNIVERSIDADEDEBRASLIA

FACULDADEDETECNOLOGIA
DEPARTAMENTODEENGENHARIAELTRICA

UTILIZAODEUMAMBIENTEDEHONEYNETNO
TREINAMENTODEREDESNEURAISARTIFICIAISPARA
DETECODEINTRUSO

DANIELLYRAROCHA

ORIENTADOR:RAFAELTIMTEODESOUSAJUNIOR

DISSERTAODEMESTRADOEMENGENHARIADEREDESDE
COMUNICAO
PUBLICAO:PPGENE.DM259/06
BRASLIA/DF:MAIO/2006

UNIVERSIDADEDEBRASLIA
FACULDADEDETECNOLOGIA
DEPARTAMENTODEENGENHARIAELTRICA
UTILIZAODEUMAMBIENTEDEHONEYNETNO
TREINAMENTODEREDESNEURAISARTIFICIAISPARA
DETECODEINTRUSO

DANIELLYRAROCHA
DISSERTAODEMESTRADOSUBMETIDAAODEPARTAMENTODEENGENHARIA
ELTRICADAFACULDADEDETECNOLOGIADAUNIVERSIDADEDEBRASLIA,COMO
PARTEDOSREQUISITOSNECESSRIOSPARAAOBTENODOGRAUDEMESTRE.

APROVADAPOR:

RAFAELTIMTEODESOUSAJUNIOR,Doutor,UnB
(ORIENTADOR)

NOMEDOMEMBRODABANCA,Ttulo,Instituio
(EXAMINADORINTERNO)

NOMEDOMEMBRODABANCA,Ttulo,Instituio
(EXAMINADOREXTERNO)

NOMEDOMEMBRODABANCA,Ttulo,Instituio
(SUPLENTE)
DATA:BRASLIA/DF,DIADEMSDEANO.

ii

FICHACATALOGRFICA
ROCHA,DANIELLYRA.
Utilizaodeumambientedehoneynetnotreinamentoderedesneuraisartificiaisparadetecode
intruso[DistritoFederal]2006.
xii,193p.,297mm(ENE/FT/UnB,Mestre,EngenhariaEltrica,2006).
DissertaodeMestradoUniversidadedeBraslia,FaculdadedeTecnologia.Departamentode
EngenhariaEltrica.
1.DetecodeIntruso2.RedesNeuraisArtificiais
3.Honeynet
I.ENE/FT/UnB.II.Ttulo(Srie)

REFERNCIABIBLIOGRFICA
ROCHA,DANIEL.LYRA.(2006).Utilizaodeumambientedehoneynetnotreinamentoderedes
neurais artificiais para deteco de intruso. Dissertao de Mestrado, Publicao 259/2006,
DepartamentodeEngenhariaEltrica,UniversidadedeBraslia,Braslia,DF,193p.

CESSODEDIREITOS
AUTOR:DanielLyraRocha
TTULO: Utilizaodeumambientedehoneynetnotreinamentoderedesneuraisartificiaispara
detecodeintruso.
GRAU:Mestre

ANO:2006

concedidaUniversidadedeBrasliapermissoparareproduzircpiasdestadissertaode
mestrado e para emprestar ou vender tais cpias somente para propsitos acadmicos e
cientficos.Oautorreservaoutrosdireitosdepublicaoenenhumapartedessadissertao
demestradopodeserreproduzidasemautorizaoporescritodoautor.

DanielLyraRocha
SRESQ.10BlO1Casa15CruzeiroVelho
CEP70.645515BrasliaDFBrasil

iii

AGRADECIMENTOS
AomeuorientadorProf.Dr.RafaelTimteodeSousaJnior,pelatotalconfianae
apoio.

AoProf.RicardoStaciariniPuttini,coorientadordotrabalho.
AoamigoJnior,parceirodeprojetofinaldegraduao.Entramosjuntosnomestrado
e escolhemos juntos o tema. A partir de uma primeira pesquisa mais apurada, cada um
escolheuumfocoparatrabalhar,massempreseajudando.
AosmeuscolegasdetrabalhoCarlosVersati,LaertePeotta,MarcoAntnio,Nilson
BorgeseFernandoHigaquenomediramesforosnahorademeincentivareajudarnoque
fossenecessrionapartetcnica.
Cadaumdelestevegrandecontribuionestetrabalho.SemoVersati,eunosaberia
porondecomearaprogramarosnifferemC,chamadodsni.OPeottameensinoumuito
sobre honeynet, que fora seu objeto de trabalho anteriormente. O Marco ajudou no
entendimentodeIDS.ONilsondisponibilizouasmquinaseforneceutotalapoioparaque
fossemontadaumahoneynetnoambientedetrabalho.OHigapossibilitoudeimediatominha
mudanadeturnonotrabalhoparaqueeupudesseterminaradissertao.
minhafamlia,quedemonstroupreocupaoetotalincentivoduranteoperodode
realizaodadissertao.
E aos meus amigos de todos os finais de semana, sem esquecer da Liana, minha
namorada que sempre me incentivou e entendeu as vezes que precisei ficar e fazer a
dissertao.

iv

Aosmeuspais,irmos,amigosenamorada.

RESUMO
UTILIZAO DE UM AMBIENTE DE HONEYNET NO TREINAMENTO DE
REDESNEURAISARTIFICIAISPARADETECODEINTRUSO
Autor:DanielLyraRocha
Orientador:RafaelTimteodeSousaJnior
ProgramadePsgraduaoemEngenhariaEltrica

Braslia,msdemaio(2006)

Otrabalhodescritonestadissertaoobjetivarealizarumacontribuioacadmicano
avanodautilizaoderedesneuraisartificiaisparadetecodeintruso.Deumamaneira
bemdidticaoleitorvaiaprendendo,captuloacaptulo,sobreosparadigmasenvolvidosno
problema. No ltimo captulo, ele pode acompanhar uma prova de conceito real sobre a
propostarealizada.Tratasedautilizaodeumrederealparaacoletadedadosdeintruso
queserviroparaotreinamentoderedesneuraisartificiaisvoltadasparadetecodeintruso.
Acontribuiosobreostrabalhosjrealizadosnoassuntoanteriormenteautilizaodeuma
honeynetparacoletadessasintruses.

ABSTRACT
USE OF A HONEYNET ENVIRONMENT IN THE TRAINING OF ARTIFICIAL
NEURALNETSFORINTRUSIONDETECTION
Author:DanielLyraRocha
Supervisor:RafaelTimteodeSousaJnior
ProgramadePsgraduaoemEngenhariaEltrica

Braslia,monthofmay(2006)

Thedescribedworkinthisthesisobjectivetocarrythroughanacademiccontribution
intheadvanceoftheuseofartificialneuralnetsforintrusiondetention.Inawelldidacticway
thereadergoeslearning,chapterafterchapter,ontheinvolvedparadigmsintheproblem.In
thelastchapter,ithecanfollowatestofrealconceptontheproposalcarriedthrough.Oneis
abouttheuseofarealnetforthecollectionofintrusiondatathatwillserveforthetrainingof
artificial neural nets directed toward intrusion detention. The contribution on the carried
throughworksalreadyinthesubjectpreviouslyistheoneusehoneynetforcollectionofthese
intrusions.

SUMRIO
Captulo

Pgina

1.INTRODUO...................................................................................................................17
2.PROTOCOLOSDECOMUNICAO............................................................................23
2.1.MODELOOSIEMODELOTCP/IP.............................................................................23
2.2.CAMADADEINTERFACECOMAREDE................................................................25
2.3.CAMADAINTERNET....................................................................................................26
2.3.1.ENDEREAMENTOIP..........................................................................................................26
2.3.2.PROTOCOLOARP..............................................................................................................28
2.3.3.PROTOCOLOIP..................................................................................................................29
2.3.4.PROTOCOLOICMP...........................................................................................................33
2.4.CAMADADETRANSPORTE.......................................................................................36
2.4.1.PROTOCOLOUDP..............................................................................................................36
2.4.2.PROTOCOLOTCP..............................................................................................................37
2.5.CAMADADEAPLICAO..........................................................................................46
2.5.1.PROTOCOLODNS..............................................................................................................47
3.SEGURANADAINFORMAO.................................................................................50
3.1.INTRODUOSEGURANADAINFORMAO..............................................50
3.2.VULNERABILIDADESEMPROTOCOLOS..............................................................55

3.2.1.CAMADAINTERNET.............................................................................................................55
3.2.2.CAMADADETRANSPORTE....................................................................................................58
3.2.3.CAMADADEAPLICAO ......................................................................................................59
3.3.ATAQUES.........................................................................................................................64
3.3.1.ENGENHARIASOCIAL..........................................................................................................64
3.3.2.ROUBODESENHA...............................................................................................................64
3.3.3.LEVANTAMENTODOSDADOS.................................................................................................65
3.3.4.EXPLORAO REMOTADEVULNERABILIDADES.......................................................................67
3.3.5.NEGAO DESERVIO .........................................................................................................71
3.3.6.MANINTHEMIDDLE...........................................................................................................74
3.4.PROTEO.....................................................................................................................75
3.4.1.CRIPTOGRAFIA...................................................................................................................75
3.4.2.AAA(AUTENTICAO ,AUTORIZAO EAUDITORIA)...........................................................78
3.4.3.SEGURANADEHOST..........................................................................................................80
3.4.4.FIREWALL..........................................................................................................................83
3.4.5.SISTEMASDEDETECO DEINTRUSO.................................................................................87
4.REDESNEURAISARTIFICIAIS....................................................................................93
4.1.ABIOLOGIA...................................................................................................................93
4.2.ONEURNIOARTIFICIAL,OPERCEPTRONEOADALINE............................96

4.2.1.ONEURNIOBOOLEANO......................................................................................................96
4.2.2.PERCEPTRONS....................................................................................................................99
4.2.3.ADALINE..........................................................................................................................102
4.3.BACKPROPAGATION..................................................................................................105
4.3.1.OALGORITMO..................................................................................................................105
4.3.2.NAPRTICA.....................................................................................................................109
4.4.ASREDESRECORRENTESEAAPRENDIZAGEMCOMPETITIVA................113
4.4.1.REDESRECORRENTES........................................................................................................113
4.4.2.APRENDIZAGEMCOMPETITIVA...........................................................................................117
4.5.CONSIDERAESFINAISSOBREREDESNEURAIS........................................123
5.DETECODEINTRUSOUTILIZANDOREDESNEURAIS.............................126
5.1.ABASEDARPADEDETECO DEINTRUSO.........................................................................127
5.2.APLICAO EMHIDS.........................................................................................................128
5.2.1.RSTCorporation.........................................................................................................128
5.2.2.TexasUniversity..........................................................................................................129
5.2.3.UFMG..........................................................................................................................130
5.3.APLICAO EMNIDS.........................................................................................................130
5.3.1.MIT...............................................................................................................................131
5.3.2.NovaSoutheasterneGeorgiaUniversity...................................................................131

10

5.3.3.NewMexicoInstitute..................................................................................................134
5.3.4.Brasil............................................................................................................................135
5.3.5.UBILABlaboratory....................................................................................................136
5.3.6.OhioUniversity...........................................................................................................139
5.3.7.UniversityofNewBrunswick.....................................................................................141
5.3.8.KingMongkut'sUniversityofTechnologyThonburi..............................................143
5.3.9.RensselaerPolytechnicInstitute................................................................................143
5.4.CONSIDERAE SFINAIS.......................................................................................................144
6.HONEYNET......................................................................................................................146
6.1.HONEYNETPROJECT................................................................................................147
6.2.HONEYPOTS.................................................................................................................149
6.2.1.HONEYPOTSDEBAIXAINTERAO .....................................................................................150
6.2.2.HONEYPOTSDEALTAINTERAO ......................................................................................151
6.3.HONEYNETS................................................................................................................152
6.3.1.CONTROLEDEDADOS.......................................................................................................152
6.3.2.CAPTURADEDADOS.........................................................................................................153
6.3.3.RISCOS...........................................................................................................................153
6.3.4.NAPRTICA....................................................................................................................155
6.4.HONEYPOTFARMSEHONEYPOTSDINMICOS.............................................159

11

6.4.1.HONEYPOTFARMS............................................................................................................159
6.2.1.HONEYPOTSDINMICOS....................................................................................................160
6.5.CONSIDERAESFINAIS........................................................................................162
7.HONEYNET,UMAMBIENTEPARATREINAMENTODEREDESNEURAIS
ARTIFICIAISPARADETECODEINTRUSO........................................................163
7.1.APROPOSTA.................................................................................................................163
7.2.APROVADECONCEITO...........................................................................................166
7.2.1.AHONEYNET...................................................................................................................167
7.2.2.ASREDESNEURAIS...........................................................................................................170
7.3.OSRESULTADOS.........................................................................................................173
7.3.1.AREDESOMEOSATAQUESSOFRIDOS...............................................................................174
7.3.2.MLP..............................................................................................................................179
7.4.CONSIDERAESFINAISDAPROVADECONCEITO......................................184
8.CONCLUSO...................................................................................................................186
9.BIBLIOGRAFIA...............................................................................................................190

12

LISTADETABELAS
Tabela

Pgina

2.1ICMPTYPE(MODIFICADOCOMER,1995)........................................................................33
2.2MQUINADEESTADOSTCP(TANENBAUM,1997)................................................................42
3.1FILTRODEPACOTES..............................................................................................................85
7.1PARMETROSDEENTRADADAREDENEURAL.........................................................................171
7.2PARMETROSDETREINAMENTODAREDESOM....................................................................172
7.3DIVISODOSMAPASPORPERODO.......................................................................................175
7.4TIPOSDEATAQUE,PORMAPA...............................................................................................178
7.5PARMETROSDETREINAMENTODAREDEMLP....................................................................180
7.6TESTESDASREDESNEURAISESPECIALISTAS...........................................................................183

13

LISTADEFIGURAS
Figura

Pgina

2.1MODELOSDEREFERNCIA;TCP/IPXOSI..........................................................................24
2.2CLASSESDEENDEREAMENTOIP..........................................................................................27
2.3DATAGRAMAIP...................................................................................................................30
2.4EXEMPLOSDEMENSAGENSICMP;ECHOEUNREACHABLEDESTINATION.................................35
2.5PACOTEUDP.....................................................................................................................37
2.6SEGMENTOTCP(STEVENS,2000)......................................................................................39
2.7ESTABELECIMENTODACONEXO...........................................................................................40
2.8EXEMPLODESLIDINGWINDOWOUJANELADESLIZANTE...........................................................41
2.9MQUINADEESTADOSTCP................................................................................................43
2.10HIERARQUIADNS............................................................................................................48
3.1NIDSNOSWITCH...............................................................................................................91
4.1NEURNIOHUMANO.............................................................................................................94
4.2SINAPSE...............................................................................................................................94
4.3POTENCIALDEAO ............................................................................................................95
4.4NEURNIOARTIFICIAL........................................................................................................96
4.5NEURNIOBOOLEANO.........................................................................................................97

14

4.6DISCRIMINADORLINEAR......................................................................................................98
4.7REGIESAEB..................................................................................................................98
4.8EXEMPLODECOLEE SLINEARMENTEENOLINEARMENTESEPARVEIS..................................98
4.9FUNE SE,OUEOUEXCLUSIVO.........................................................................99
4.10PERCEPTRONMULTICAMADAS...........................................................................................100
4.11ADALINE.........................................................................................................................102
4.12ERROMNIMOQUADRTICOLMS.....................................................................................104
4.13MNIMOLOCAL..............................................................................................................104
4.14FUNO DEATIVAO SIGMIDE........................................................................................106
4.15CONVERGNCIADAREDE;OSCILANASUPERFCIEDEERROCOMTAXADEAPRENDIZAGEMMUITO
ALTA..........................................................................................................................................110

4.16SUPERFCIEDEERRO:MNIMOGLOBALEMNIMOSLOCAIS....................................................110
4.17REDESRECORRENTESDEJORDANEELMAN........................................................................114
4.18REDEDEHOPFIELD.........................................................................................................115
4.19PADRESEFUNO DEENERGIADAREDEDEHOPFIELD.....................................................117
4.20APRENDIZAGEMCOMPETITIVA..........................................................................................118
4.21CONJUNTOSDEDADOSENTRADACLASSIFICADOSPORUMAREDEDEAPRENDIZAGEMCOMPETITIVA:
CLUSTERING...........................................................................................................................119
4.22QUANTIZAO DEVETORES................................................................................................119
4.23LVQLEARNINGVECTORQUANTIZATION..........................................................................120

15

4.24REDEKOHONENBIDIMENSIONAL........................................................................................121
4.25TREINAMENTODEUMAREDEKOHONENBIDIMENSIONAL.......................................................123
4.26MICROEMESOESTRUTURASDEREDESNEURAIS.................................................................124
4.27APLICAE SDEREDESNEURAIS.........................................................................................124
5.1MAPADEKOHONEN(GIRARDIN,1999)..............................................................................138
5.2ARQUITETURAINBOUNDS(RAMADAS/OSTERMANN/TJADEN,2003).................................140
6.1HONEYNETGENIIDOHONEYNETPROJECT.........................................................................156
7.1ARQUITETURADAHONEYNET..................................................................................................167
7.2MAPASDEKOHONEN,00A07...........................................................................................174
7.3MAPASDEKOHONEN,08A15...........................................................................................175
7.4MAPASDEKOHONEN,16A18............................................................................................175
7.5TOPOLOGIADASREDESBF22,SCANEATAUTRESPECTIVAMENTE..............................................181
7.6IMPORTNCIARELATIVADOSPARMETROSDEENTRADAEMCADAREDE...................................181
7.7GRFICODETREINAMENTODAS3REDESESPECIALISTAS........................................................182

16

1.INTRODUO
No comeo da dcada de 60, diversos pesquisadores das principais Universidades
americanas comearam a desenvolver trabalhos paralelos a respeito de interligao de
computadores. A idia entusiasmou o governo americano, que planejava uso militar da nova
tecnologia e criou a ARPA (Advanced Research Projects Agency), passando a incentivar
pesquisas na rea. Mais tarde, diversas Universidades passaram a se interligar atravs de uma
rede batizada de ARPANET. Uma arquitetura de protocolos surgiu com o objetivo de
interligar computadores independentemente de seus dispositivos fsicos. Foi batizada de
TCP/IP em aluso a seus dois principais protocolos de comunicao [1,3].
A ARPANET cresceu exponencialmente e diversas redes de computadores foram
acrescentadas a ela. A arquitetura flexvel e em camadas incentivou a criao de diversos
protocolos interessantes de aplicao, que por sua vez incentivaram a criao de vrias
aplicaes teis e interessantes para o dia-a-dia no s de universitrios ou militares, mas de
qualquer indivduo. Um novo mundo sem fronteiras, extremamente conectado e annimo
surgiu na vida de pessoas comuns, que no necessariamente sabem alguma coisa de
informtica. Os softwares passaram a lidar com a comunicao de forma cada vez mais
transparente ao usurio final, permitindo que ele pudesse realizar tarefas complexas com um
simples comando ou toque no mouse.
As mudanas ocorridas, entretanto, no eram imaginadas no comeo e no foram
planejadas, nem coordenadas. Os protocolos e aplicaes foram surgindo de todas as
maneiras, por todos os lados do mundo. Cada pessoa, annima ou no contribuiu com o que
podia para que a Internet funcionasse como hoje. Tudo era uma grande brincadeira, onde
podia-se trocar mensagens, ler notcias, jogar virtualmente, conhecer pessoas, adquirir
conhecimento e muitos outros passatempos. Entretanto, a partir de um certo momento,
descobriu-se que a Internet poderia trabalhar, ou servir como instrumento de trabalho,
muitas vezes o principal intrumento. Surgiu o e-commerce e as lojas virtuais, o mercado
virtual, surgiram os contatos de emprego pela Internet, surgiram os bancos pela Internet:
extremamente prticos e econmicos. De repente, boa parte das instituies estava
representada na Internet. Diversos pases, diversas empresas, diversos negcios. Tudo est na
Internet. A informao que l trafega simplesmente todos os tipos de informao do mundo.
Da mais banal mais valiosa. Da informao de utilidade pblica aos segredos mais

17

irrevelveis. De iniciativas solidrias pedofilia. A Internet tornou-se a entidade mais


democrtica do mundo. A rede tornou-se um mundo paralelo, um novo Universo, com
infinitas possibilidades.
Como em todas as esferas da vida, existem pessoas bem intencionadas e pessoas mal
intecionadas conectadas rede. O crescimento desregrado da Internet permitiu a criao de
protocolos e softwares que so uma verdadeira caixa preta para alguns e uma verdadeira
fonte de estudos para outros. A documentao do funcionamento da Internet extensa na
rede, a troca de informaes fcil e freqente. Aps adquirirem o conhecimento da
arquitetura, dos protocolos, servios e estruturas, as pessoas os utilizam de trs maneiras:
propondo melhorias nas aplicaes e protocolos existentes ou criando novos de acordo com o
interesse e necessidade; explorando falhas em protocolos e softwares existentes; apenas
operando as solues existentes. Neste ltimo caso, h operadores bengnos: aqueles que
apenas querem fazer o seu trabalho ou usufruir das vantagens da rede sem prejudicar
ningum; e operadores malgnos: aqueles que utilizam softwares e solues propostas por
estudiosos malignos visando prejudicar pessoas ou instituies e levar vantagem, seja ela
financeira ou no.
Por causa dessa bipolarizao de idias e intenses, a Internet virou uma espcie de
campo de batalha. Uma batalha invisvel e interminvel. Uma batalha irreversvel e
imprevisvel[44]. De um lado pessoas annimas, mal intensionadas, bem informadas,
distribudas, organizadas ou no: os atacantes. Sero chamados atacantes, pois o conceito de
hackers, como so conhecidos, um tanto quanto controverso na literatura. Alguns
consideram que hackers podem ser tanto pessoas que estudam as falhas de segurana dos
softwares para prejudicar e levar vantagens, quanto pessoas que estudam o mesmo tipo de
falhas na inteno de melhorar a segurana, de divulgar as falhas para que possam ser
corrigidas. Este o outro lado da batalha. Profissionais e entusiastas da rea de segurana da
informao. Pessoas que estudam o assunto na inteno de combater os atacantes e
principalmente proteger as instituies, os servios da Internet e a si prprio. Eles so os
defensores. para eles que estudos como este so publicados. Qualquer servio ou empresa
que tenha alguma importncia na Internet precisa deles. E eles precisam de qualquer
informao relevante de como proteger sistemas e patrimnios virtuais.
Entretanto, para proteger preciso conhecer o outro lado. Saber como o atacante
pensa, como ele age, do que ele precisa. Nada melhor que conhecer o inimigo para enfrent-lo

18

em iguais condies. , portanto, uma batalha em que os dois lados utilizam as mesmas
armas, o mesmo conhecimento. O atacante faz de tudo para permanecer annimo, escondido.
No tem nada a perder, a no ser seu prprio tempo. Pode ganhar dinheiro ou status,
satisfazendo seu prprio ego com invases no permitidas, embora vez ou outra ele se
entregue, por necessidade de se comunicar e trocar informaes, ou por preciosismo ou
exibicionismo. O defensor, como indivduo, tambm annimo. Todavia, ele defende um
patrimnio palpvel, disponvel virtualmente e muitas vezes precisa mostrar a cara, fornecer
informaes preciosas. A batalha eterna e a ameaa cresce a cada dia. Um dia conseguiro
parar a Internet? Torn-la obsoleta por falta de segurana? So possibilidades no nulas, como
tudo na vida. Resta aos defensores a esperana. E seguir trabalhando, seguir defendendo. O
presente trabalho pretende contribuir para a comunidade de segurana da informao no
sentido de prover uma pesquisa acadmica e uma prova de conceito de uma soluo
relativamente nova e promissora na deteco de padres de ataques: as redes neurais
artificiais.
As RNAs so modelos matemticos no lineares que buscam atingir caractersticas de
redes neuronais biolgicas reais do crebro humano. Caractersticas tais como aprendizagem,
associao, generalizao e abstrao. Existem elementos somadores, chamados de neurnios,
que esto conectados com outros do mesmo tipo atravs de conexes sinpticas. Os
parmetros matemticos dessas conexes: pesos e bias, carregam o conhecimento da rede.
H um perodo de treinamento, onde estes parmetros so ajustados conforme as entradas da
rede vo sendo apresentadas. Neste perodo a rede se acostuma s entradas e se prepara para
responder da mesma maneira quando uma entrada com o mesmo padro for apresentada aps
o treinamento. a capacidade de generalizao das redes neurais aplicada no reconhecimento
de padres. As entradas so os parmetros do pacote IP, que podem caracterizar um ataque ou
um trfego normal. Aps o treinamento, a rede ser capaz de reconhecer entre um pacote
normal e um pacote de ataque[17,18,19,20,21,22,23,24,25,26].
A etapa mais crtica na construo de uma soluo deste tipo justamente o
treinamento da rede neural. neste perodo que se d o aprendizado. necessrio escolher
corretamente os parmetros da rede, como nmero de neurnios, valores iniciais, critrio de
parada e, principalmente, dados de treinamento. necessrio que os dados representem, o
mais fielmente possvel, os dados que sero detectados posteriormente. A grande dificuldade
esta. No h como prever que tipo de ataque a rede ir sofrer e simular esses ataques em

19

laboratrio. O ideal que se treine com dados reais de ataques sofridos em produo. A surge
outro problema: classificar corretamente o pacote em ataque e no ataque. Existem
mecanismos de segurana que conseguem realizar essa classificao. So chamados de IDS
(Intrusion Detection Systems). A grande limitao destes mecanismos que eles so baseados
em assinatura, ou seja, para um ataque ser reconhecido, ele precisa estar na base de
assinaturas do IDS, exatamente como est acontecendo na produo. Uma simples mudana
ou fragmentao no pacote pode enganar o IDS convencional. A vantagem de um
mecanismo baseado em redes neurais a capacidade de generalizao, podendo reconhecer
um ataque apenas pelo seu padro, mesmo que ele no tenha sido treinado anteriormente.
Quer dizer, ataques novos e desconhecidos, que no podem ser detectados por um mecanismo
baseado em assinatura, teoricamente podem ser reconhecidos por um algoritmo no linear,
como o de redes neurais.
Permanece o desafio: como coletar dados de entrada que representem os possveis
ataques rede de produo e fugir da dificuldade de capturar ataques no reconhecidos para
treinamento? A soluo proposta no trabalho montar um dispositivo de segurana chamado
honeynet. Uma rede real, rodando servios e aplicativos reais, construda exclusivamente para
ser invadida e coletar dados de ataque. Quanto mais prxima for esta rede da rede de
produo, mais fiel ser o treinamento e melhores resultados ele trar. Todo e qualquer trfego
coletado em uma honeynet ser trfego no autorizado, ou seja, ataque. No existem servios
legtimos funcionando nela. Ataques conhecidos e desconhecidos sero coletados e treinados.
A proposta do presente trabalho , alm de construir um prottipo da soluo discutida,
fornecer subsdios tericos para que o leitor menos entendido do assunto possa compreender
cada varivel envolvida no problema e na proposta. Por este motivo, a dissertao foi dividida
de uma maneira bem didtica.
O captulo 2 uma contextualizao bsica sobre o funcionamento da internet e dos
protocolos de comunicao. Este conhecimento ser essencial para a compreenso do restante
do trabalho. Aps uma breve explanao histrica, o leitor poder conhecer os principais
protocolos da arquitetura TCP/IP, camada a camada, com nfase nos protocolos IP e TCP. Os
protocolos de aplicao, devido quantidade e diversidade, no foram detalhados. O captulo
seguinte trata de questes relativas segurana dos principais.
O captulo 3 destinado segurana da informao. importante adquirir a cultura de
segurana e ter em mente a infinidade de ataques que os sistemas e protocolos esto sujeitos e

20

as possveis protees e precaues a serem tomadas. Aps uma viso geral da segurana da
informao, o captulo discute uma srie de vulnerabilidades a que os protocolos esto
sujeitos. Destaque para os protocolos de aplicao que no foram citados anteriormente.
Depois, so mostrados os principais tipos de ataques: engenharia social, roubo de senha,
explorao de vulnerabilidades, negao de servio e man-in-the-middle. Por ltimo, algumas
das principais protees disponveis atualmente para os sistemas e equipamentos exstentes:
criptografia, AAA (autenticao, autorizao e auditoria), segurana de hosts, firewall e IDS.
Uma aprofundada maior nos sistemas de IDS, objetos diretos do estudo.
No captulo 4, a parte terica de redes neurais artificiais apresentada. Aps um
histrico do surgimento e evoluo das RNAs, atravs do perceptron e do ADALINE, o
principal algoritmo de aprendizagem supervisionada visto, o backpropagation. Os clculos
matemticos no so bvios, mas esto presentes apenas para ilustrar o funcionamento das
redes. A importncia maior para o trabalho est nas consideraes prticas. As redes
recorrentes e de aprendizagem competitiva, ou no supervisionada, tambm esto presentes
no restante do captulo.
O captulo 5 tem importncia vital no entendimento das motivaes do trabalho.
Diversas pesquisas foram realizadas no mundo todo recentemente a respeito de deteco de
intruso atravs de redes neurais artificiais e outros algoritmos no lineares. Algumas dessas
pesquisas so apresentadas no captulo: as configuraes das redes, os tipos de dados de
entrada e os resultados foram muito importantes para a maturidade da proposta. Apesar do
presente trabalho tratar de um sistema de deteco em rede, alguns trabalhos sobre deteco
em hosts tambm so apresentados no captulo.
O captulo 6 apresenta a honeynet, a maior inovao do trabalho em relao aos
trabalhos anteriormente publicados e apresentados no captulo anterior. Aps uma
apresentao do honeynet project, projeto precursor do mecanismo de honeynet, so
discutidos tipos de honeypots, de baixa e de alta interao. Depois, os cuidados e mecanismos
de uma honeynet de controle e captura de dados so mostrados. Por ltimo, algumas possveis
evolues dos honeypots existentes so debatidas: honeypot farms e honeypot dinmicos.
Por fim, o captulo 7 apresenta a proposta prtica do trabalho. Mesclar todos os
conceitos vistos anteriormente e criar um ambiente de treinamento para redes neurais
artificiais aplicadas deteco de intruso utilizando uma honeynet como geradora de dados
de entrada para treinamento. Uma honeynet real foi construda e alguns softwares foram

21

utilizados para coletar, tratar e treinar os pacotes de rede. Em resumo, a proposta coletar os
pacotes de rede capturados na honeynet, filtr-los, normaliz-los e treinar uma rede neural
artificial no supervisionada. Esta rede cria um mapa visual de representao do trfego da
honeynet que ir auxiliar na determinao de perfis diferentes de ataque. Com base nesses
perfis, a rede neural supervisionada treinada com o algoritmo backpropagation. Espera-se
poder separar nesses perfis, e com ajuda de ferramentas auxiliares, tipos de ataques comuns e
reconhecidamente classificados, como ataques de scanning, denial of service e explorao
remota de vulnerabilidades. Desta maneira, por exemplo, possvel construir 3 diferentes
treinamentos de redes neurais artificiais especialistas, um para cada tipo de ataque. Um
sistema de deteco poderia ser construdo para consultar cada uma dessas redes a cada
pacote e determinar se se trata de um ataque e a qual tipo ele pertence. Ainda neste captulo,
os resultados so apresentados.

22

2.PROTOCOLOSDECOMUNICAO

Este captulo apresenta os protocolos existentes na Internet que so mais pertinentes ao


assunto a ser tratado e que sero vistos nos captulos subseqentes, com o objetivo de
subsidiar teoricamente o leitor.
No auge da guerra fria, nos anos 60 e 70, o governo americano comeou a investir em
pesquisas para desenvolver uma rede de comutao de pacotes que conectasse os rgos do
governo de maneira mais segura do que as redes telefnicas existentes. Ento a diviso
cientfica do Pentgono, a ARPA (Advanced Research Project Agency) criou uma rede de
pesquisas interligando Universidades e governo, a ARPANET. Pouco a pouco centenas de
Universidades e reparties pblicas foram sendo conectadas a ela atravs de linhas privadas.
Depois foram criadas as redes de rdio e satlite e comearam a surgir problemas com os
protocolos existentes. Foi criada, ento, uma arquitetura de protocolos com o objetivo de
conectar vrias redes diferentes ao mesmo tempo. Essa arquitetura ficou conhecida como
modelo de referncia TCP/IP graas aos seus dois protocolos principais[3].

2.1MODELOOSIEMODELOTCP/IP

O modelo OSI (open systems interconection) trata da interconexo de sistemas abertos


a comunicao com outros sistemas, ou seja, seu modo de funcionamento publicamente
disponvel para que qualquer fabricante possa desenvolver aplicaes que sigam este padro e
se comuniquem com outras aplicaes diferentes. A proposta do modelo OSI foi desenvolvida
pela ISO (International Standards Organization) com o objetivo de padronizar
internacionalmente os protocolos utilizados nas diversas camadas. O modelo OSI possui 7
camadas e foi concebido antes de os protocolos terem sido inventados[1,3].
J o modelo TCP/IP, surgiu da prtica, foi criado com base nos protocolos existentes
da rede ARPANET. Possui 4 camadas que resumem as mesmas funcionalidades das camadas
OSI.
Os dois modelos se baseiam no conceito de pilha de protocolos independentes. Abaixo
da camada de transporte so definidos servios de transporte de pacotes fim a fim,

23

independente do tipo de rede. Acima da camada de transporte, esto as camadas que dizem
respeito aos usurios orientados aplicao do servio de transporte. O modelo OSI definiu
claramente, seguindo a idia de orientao a objetos, a diferena entre 3 conceitos
fundamentais da relao entre as camadas: o servio informa o que a camada faz; a interface
informa como os processos acima dela podem acess-la e especifica os parmetros e
resultados esperados; os protocolos so de responsabilidade de cada camada, ou seja, ela
pode utilizar qualquer protocolo que realize o servio corretamente. O modelo TCP/IP no
distingue to bem essas diferenas e foi tentando se adaptar ao modelo OSI. Isso faz o modelo
OSI mais flexvel e bem encapsulado, podendo ser substitudo com relativa facilidade por
novas tecnologias[3] . A figura 2.1 ilustra a diferena de camadas entre os modelos OSI e
TCP/IP

Figura 2.1 Modelos de referncia; TCP/IP x OSI


Apesar do modelo OSI ter surgido antes e ter algumas vantagens citadas, na prtica ele
foi deixado de lado. Isso porque o modelo TCP/IP se popularizou atravs da arquitetura
utilizada na ARPANET, que mais tarde veio a ser chamada INTERNET.
As camadas implementadas pela arquitetura TCP/IP so (de baixo para cima): camada
de interface com a rede, camada Internet, camada de transporte e camada de aplicao.
A arquitetura funciona mais ou menos da seguinte maneira: supe-se uma
comunicao entre dois hosts atravs de uma rede qualquer. As camadas do primeiro host iro

24

conversar com as camadas correspondentes do segundo host. Quer dizer, a camada de


Internet do primeiro ir, por exemplo, enderear o pacote para que a camada Internet do
segundo receba, entenda e saiba pelo endereo quem mandou o pacote. A camada de
transporte do primeiro host atravs de flags ir controlar a conexo em conjunto com a
camada de transporte do segundo. No que diz respeito interface entre as camadas dentro do
prprio host, o fluxo funciona atravs do conceito de encapsulamento. Os dados em si so
gerados em cima da pilha de protocolos e so encapsulados pela camada de aplicao, isto , a
camada de aplicao insere antes dos dados um cabealho que servir justamente para
comunicar-se com a camada de aplicao de outro host na rede. A camada de aplicao
entrega, ento, o pacote para a camada abaixo, de transporte. Esta vai encapsular os dados
recebidos com seu prprio cabealho e entregar para a camada de baixo, que far o mesmo.
At que, na camada de interface com a rede, aps inserido o ltimo cabealho o pacote vai
para o meio de comunicao. Chegando no host de destino, o pacote ser desencapsulado pela
camada de interface com a rede (tirar o cabealho colocado pelo host de origem) e entregue
camada superior. Todas as camadas faro um processo semelhante at que na camada de
aplicao o ltimo cabealho ser retirado e os dados estaro l. Cada cabealho que foi
retirado prov camada que o retirou informaes que ela precisa saber para responder no
prximo pacote. Tudo isso ficar mais claro nos itens a seguir do captulo.

2.2CAMADADEINTERFACECOMAREDE

Como o prprio nome sugere, a camada que inclui os drivers dos dispositivos no
sistema operacional e a sua correspondente placa de rede no computador. responsvel por
prover todos os detalhes de conexo fsica e dos meios de comunicao com a rede. No
modelo de referncia TCP/IP nada especificado sobre protocolos desta camada. Apenas se
diz que o host tem que se conectar com a rede utilizando algum tipo de protocolo, para que
seja possvel enviar pacotes IP. Seus protocolos so os mais diversos: Ethernet, Token Ring,
PPP, FDDI, X.25, L2TP, SLIP, frame relay, etc. No caso de redes locais LAN, o protocolo
mais utilizado o ethernet. Para conexo com a Internet, diversos tipos de combinao de
protocolos podem ser utilizados.

25

2.3CAMADAINTERNET

Est relacionada transferncia de pacotes da origem para o destino. Para que o pacote
chegue ao seu destino, s vezes, necessrio que passe por diversos dispositivos no meio do
caminho. Dispositivos que tem a funo de rotear os pacotes, ou seja, mand-los para o
caminho mais curto ou menos demorado na direo do seu destino final. Cada dispositivo
desses por onde passa o pacote considerado um hop (passo em direo ao destino). Para que
os roteadores e hosts saibam de onde vem e para onde vai o pacote, necessrio que ele tenha
um endereo de origem e um de destino, chamados de endereamento IP. Por fim, uma
camada que no se preocupa com a conexo, apenas entrega os datagramas sem se preocupar
se esto chegando ou no, ou se chegam na ordem correta, deixando esta tarefa para a camada
superior, de transporte.
Essa camada inclui protocolos de roteamento como RIP, OSPF, BGP que
implementam complexos algoritmos de roteamento, controle de congestionamento e
moldagem de trfego e que esto fora do escopo do estudo. O que interessa saber que esses
roteadores recebem os pacotes, desencapsulam at a camada Internet e a partir de seus
algoritmos e tabelas entregam o pacote ao prximo hop ou ao destino, se for o caso.
A camada inclui tambm protocolos que sero melhores detalhados como ARP, ICMP
e IP.

2.3.1ENDEREAMENTOIP

Um sistema de comunicao para ser um servio universal, precisa permitir que


qualquer computador possa se comunicar com qualquer outro em qualquer lugar. Portanto, o
mtodo para identificao de cada computador precisa ser globalmente aceito.
Frequentemente identificadores de hosts so classificados como nomes, endereos ou rotas. O
nome indica quem o objeto. O endereo, onde ele est. E a rota, como chegar a ele [1].
Na arquitetura TCP/IP, os endereos so providos pelo protocolo IP. A partir deles
possvel criar rotas e mapear nomes humanamente compreensveis.
Os endereos IP escolhidos como padro para a Internet so endereos de 32 bits que

26

identificam cada mquina conectada rede. A figura 2.2 ilustra a diviso criada nestes 32 bits
para atender a diferentes classes de endereamento. A classe A destinada normalmente a
grandes empresas que possuem muitos hosts. A quantidade de redes que podem possuir este
endereo pequena: 128 (7 bits destinados rede ou 2 7 endereos). Porm a quantidade de
hosts dentro dessas redes enorme: mais de 16 milhes de mquinas (24 bits). A
representao decimal do endereo feita de 8 em 8 bits separados atravs de .. Por
exemplo, a classe A tem uma faixa de endereos que vai de 1.0.0.0 a 127.255.255.255. A
classe B possui 14 bits destinados ao endereamento de rede e 16 destinados ao
endereamento de hosts. Seu intervalo de 128.0.0.0 a 191.255.255.255. A classe C possui 21
bits destinados ao endereamento de rede e 8 bits destinados ao endereamento de hosts. o
mais utilizado por provedores e empresas de pequeno e mdio porte na Internet, pois permite
enderear mais de 2 milhes de redes diferentes, cada uma com 254 hosts. A classe D
inteiramente reservada a endereos do tipo multicast, onde um datagrama destinado a vrios
hosts e vai de 224.0.0.0 a 239.255.255.255. A classe E, que no mostrada na figura foi
reservada para uso futuro e vai de 240.0.0.0 a 247.255.255.255.

Figura 2.2 Classes de endereamento IP


Apesar do nmero de endereos possveis com 32 bits ( 2 32 ) ser muito grande, com o
aumento exponencial de usurios conectados a Internet, esse endereamento passou a ser
escasso. Para resolver este problema e outros como a falta de preocupao com segurana do
protocolo IP vigente (verso 4), o protocolo IPV6 (verso 6) h muito est pronto para entrar
em produo. Entretanto, a mudana de hardware e software para suportar o novo protocolo,

27

com endereamento quase que ilimitado seria muito grande. Alm disso uma soluo muito
boa foi encontrada para a soluo de endereos escassos. O endereo classe A 127.x.x.x
reservado para teste de loopback. Alm disso, os endereos classe A 10.0.0.0 a
10.255.255.255, classe B 172.16.0.0 a 172.31.255.255 e classe C 192.168.0.0 a
192.168.255.255 so reservados para NAT(network address translation, RFC 1631) e no so
vlidos na Internet. Isto quer dizer que s precisam ter um endereo vlido na Internet, os
servidores de aplicao(como servidores HTTP, SMTP) e gateways de rede(firewall,
roteadores). Os hosts de usurios ficam atrs desses equipamentos, utilizando uma faixa de
endereos reservados, ou falsos. Desta maneira, eles se protegem da Internet e acessam seus
servios por meio destes servidores, ou roteadores que realizam a traduo do endereo de
muitos hosts para um ou poucos endereos vlidos na Internet[2].
Alm desses aspectos, h tambm um parmetro essencial no endereamento de redes
que se chama mscara de rede. Por meio desta mscara, possvel dividir um endereamento
de qualquer classe, criando sub-redes diferentes e dividindo de fato as classes. Por exemplo,
um endereamento reservado para classe C 192.168.254.0 a 192.168.254.255 ter que ter a
mscara de rede 255.255.255.0, ou seja, os primeiros 3 conjuntos de 8 bits esto com o valor
255, ou todos os bits com valor 1 e no h espao para mudana no endereamento
192.168.254. O ltimo conjunto est com o valor 0, quer dizer que o endereamento pode
variar de 0 a 255 (na prtica de 1 a 254). possvel dividir ainda mais esta rede, colocando,
por exemplo, o valor 128 no ltimo conjunto. Dessa maneira, o valor binrio do ltimo
conjunto seria 10000000, os 7 ltimos nmeros podendo variar, ou seja, podem ser criadas
duas sub-redes dentro da classe C, uma de 0 a 127 e outra de 128 a 254. Assim as sub-redes
podem ir aumentando se o nmero de 1s for aumentando na mscara e quanto mais sub-redes
menos hosts em cada uma delas, at que, no limite da diviso, a mscara 255.255.255.255
representa o prprio host.

2.3.2PROTOCOLOARP

O protocolo ARP (Address Resolution Protocol, RFC 826) responsvel pela interface
entre camada Internet e camada de interface com a rede. Isso porque a camada fsica, ou o
hardware de rede no compreende um endereamento do tipo IP, definido anteriormente.

28

Existe um outro tipo de endereamento de 48 bits nas placas dos fabricantes de hardware.
Com isso tem que existir um protocolo que traduza de um endereo para o outro para que as
camadas de interface com a rede possam se comunicar e as camadas superiores no tenham
que se preocupar com endereo fsico. Essa traduo feita atravs do protocolo ARP.
Quando uma mquina com um IP A precisa se comunicar com uma mquina com IP B ela
solta um pacote de difuso na rede que pergunta: A quem pertence o endereo IP B?
Responda para IP A. A mquina de destino responde O IP B est no endereo fsico X.
Com isso o ARP mantm nos hosts uma tabela com o mapeamento dos ltimos endereos que
ela precisou se comunicar ou que ela teve acesso atravs das inmeras difuses na rede. Essa
tabela tem um certo timeout, pois os IPs vez ou outra trocam de mquina e os endereos
fsicos so fixos.
O RARP (Reverse Address Resolution Protocol, RFC 903) permite que uma estao
recm-inicializada transmita seu endereo fsico e diga: Meu endereo fsico de 48 bits X,
algum sabe meu IP? O servidor RARP v a solicitao, procura um endereo em seus
arquivos e retorna com o IP correspondente[3]. Isso normalmente era utilizado quando uma
mquina sem sistema operacional era colocada na rede para ser instalada. O RARP tem uma
limitao, porque utiliza um endereo de destino composto somente de 1s para chegar no
servidor RARP. Com isso necessrio que exista um servidor deste tipo em cada rede porque
os roteadores no conseguem repassar a requisio. Para solucionar, foi criado o protocolo
BOOTP(RFC 951) que utiliza o protocolo de transporte UDP para isso[3]. Como evoluo
para o BOOTP, foi criado o protocolo DHCP(RFC 2131), que em um nico pacote UDP envia
todas as informaes necessrias para a inicializao da mquina.

2.3.3PROTOCOLOIP

Internet Protocol (IP) um dos pilares da arquitetura TCP/IP. Pode-se dizer que o IP,
no fundo, uma abstrao da camada fsica, pois ele prov a mesma funcionalidade: aceitar e
entregar pacotes (chamados de datagramas). o protocolo que prov a base dos trs servios
principais da arquitetura: servio de aplicao; servio de transporte; servio de entrega de
pacotes sem conexo[1]. O IP, portanto, encarregado da entrega dos datagramas, sem
garantir se estes iro chegar no destino, se iro se atrasar, sair da ordem, duplicar. Apenas usa

29

a lei do melhor esforo, tratando os datagramas de maneira independente.


De maneira geral, o datagrama IP muito parecido com um pacote fsico, pois possui
um cabealho e um campo de dados. Neste cabealho, possui endereo de origem e endereo
de destino. A figura 2.3 ilustra o datagrama IP. Abaixo cada campo ser detalhado.

Figura 2.3 Datagrama IP


a) VERS (4 bits): campo de verso do protocolo IP, atualmente na verso 4;
b) HLEN (4 bits): campo de tamanho do cabealho, medido de 32 em 32 bits. na verdade
todos os campos tem tamanhos fixos, exceto o IP Options e Padding. Se o cabealho no
conter opes a medida de 20 octetos, ou HLEN=5;
c) Service Type (8 bits): campo chamado de TOS (Type of Service) especifica como o
datagrama deve ser entregue. Os 3 primeiros bits so o campo PRECEDENCE , que tem uma
prioridade variando de 0 (datagrama normal) a 7 (controle de rede). Depois vm 3 bits de
flags (0 desligado; 1 ligado): D (retardo), T (taxa de transferncia) e R (confiabilidade) e
depois 2 bits que no so utilizados. Na prtica, os roteadores ignoram este campo TOS. Se
todos implementassem as suas funcionalidades, poderia ser possvel implementar um controle
de congestionamento, os roteadores poderiam escolher a prioridade de trfego de acordo com
o tipo de aplicao: videoconferncia, transferncia de arquivo, trfego de controle, etc.
d) Total Lenght (16 bits): Tamanho total do datagrama IP (cabealho e dados), medido em

30

octetos. A limitao de tamanho 2 16 octetos ou 64KB;


Os prximos itens dizem respeito fragmentao de datagramas. Isso acontece porque
o tamanho do pacote fsico (quadro) pode variar dependendo de sua tecnologia. Um
datagrama IP muito grande poderia no caber em quadro fsico pequeno e um datagrama IP,
se fosse muito pequeno, poderia no aproveitar tecnologias que possuem quadros grandes.
Portanto o protocolo IP deixa a cargo do software escolher qual ser o tamanho dos
fragmentos. Apenas no destino final esses fragmentos so reconstrudos (duas desvantagens
aqui: havendo a perda de um fragmento, todo o datagrama ser descartado e se no meio do
caminho houver tecnologias que possibilitem quadros maiores que a fragmentao original,
no ser aproveitado). Todos os fragmentos de um datagrama utilizam os mesmos campos do
cabealho, com exceo dos campos FLAGS, Fragment Offset e Total length.
e) ID (16 bits): Nmero inteiro nico que identifica o datagrama. Todos os fragmentos
daquele datagrama tero o mesmo ID. Com isso, o destino poder reconstruir o datagrama.
f) FLAGS (3 bits): O primeiro bit no utilizado. O segundo bit o flag DF que significa no
fragmente. uma ordem explcita para os roteadores no fragmentarem o datagrama, pois a
mquina de destino incapaz de juntar os pedaos. O terceiro o MF que significa mais
fragmentos. necessrio e utilizado para a mquina de destino saber que o datagrama ainda
no chegou ao fim. Apenas o ltimo fragmento do datagrama vir com o bit MF desabilitado.
O campo Total Length de cada fragmento contm o tamanho total do fragmento e no de todo
o datagrama.
g) Fragment Offset (13 bits): Utilizado para informar ao destino a que ponto do datagrama o
fragmento pertence. Ele medido em unidades de 8 octetos e contm a informao de onde
comea o fragmento. Utilizando essa informao, o Total Length de cada fragmento e o flag
MF para saber o ltimo fragmento, o destino consegue computar o tamanho total do
datagrama.
h) TTL (8 bits): o time to live representa o tempo que o pacote pode permanecer na Internet.
Quando o pacote sai da origem o TTL setado. A cada hop que ele passa, o roteador
decrementa em uma unidade. Quando o valor chega em 0, o roteador descarta o pacote e
manda um pacote de advertncia para a origem. um recurso que evita que os datagramas
fiquem vagando indefinidamente.
i) Protocol (8 bits): o campo que especifica o tipo de protocolo da camada superior
(transporte) est sendo utilizado. A RFC 1700 especifica a numerao desses protocolos

31

j) Header Checksum (16 bits): uma checagem feita nos dados do cabealho a cada 16 bits,
atravs do algoritmo complemento-de-um, com o objetivo de determinar se algum dado foi
alterado. A cada hop o checksum tem que ser calculado novamente pois o campo TTL est
sempre mudando.
k) Source IP Address e Destination IP Address (32 bits + 32 bits): So os endereos IPs de
origem e de destino vistos anteriormente. Determinam onde o pacote foi originado e seu
destino final na rede.
l) IP Options (tamanho varivel): So opes do datagrama IP. No so obrigatrias e so
utilizadas principalmente para teste. O tamanho varia de acordo com as opes selecionadas.
O primeiro campo de opes o campo Option Code, formado por um octeto dividido no bit
Copy, dois bits de Option Class (classes) e 5 bits de Option Number (nmero). Existem 4
classes de opes, mas apenas 2 delas so utilizadas: 0 e 2. Na classe 0 existem 7 nmeros,
mas os mais interessantes na prtica so 3, 7 e 9. O 7 a opo record route, que serve para
gravar, ao longo do caminho do datagrama todos os endereos IPs dos hops. Estes endereos
vo sendo anexados ao campo de opes. A 3 e a 9 so a loose source routing e strict source
routing e tem basicamente a mesma funo: a origem grava no campo Option os IPs por onde
o pacote deve passar antes de chegar no destino. A diferena que no strict os IPs devem ser
exatamente aqueles designados, na mesma ordem, sem nenhum outro no meio do caminho. O
loose mais flexvel e permite que entre os IPs designados hajam outros no meio do caminho.
Ainda assim tem que passar pelos designados. A classe 2 possui apenas um nmero, o 4, que
a opo timestamp, semelhante opo record route, porm aps a gravao do IP a cada
hop, o roteador tambm grava o timestamp, que o formato de data e hora. Algumas dessas
opes necessitam que todos os fragmentos contenham o campo de opes (por exemplo as
opes source routing, que escolhem explicitamente a rota para o datagrama), neste caso o bit
Copy ser 1. Caso contrrio, onde apenas um fragmento precisa ter o campo IP Options (caso
do record route), o campo Copy ser 0.
m) Padding (varivel): o campo padding no contm nenhuma informao, apenas
enchimento do datagrama IP. Ele utilizado para completar o cabealho do datagrama
quando houver opes, para que este volte a ser mltiplo de 32.

32

2.3.4PROTOCOLOICMP

O ICMP (Internet Control Message Protocol, RFC 792) um protocolo utilizado para
reportar falhas de entrega de datagrama, erros de conexo, timeout de protocolos, mensagens
de controle, teste da Internet, etc. No caso de um erro no datagrama, o ICMP apenas capaz
de reportar esse erro de volta para a origem. Se o erro ocorrer em algum roteador
intermedirio no ser possvel report-lo do erro, pois no se sabe por onde esse pacote
trafegou. A origem responsvel por tomar as providncias a partir do erro reportado [1].
Como o datagrama IP, a mensagem ICMP possui um cabealho e um campo de dados.
Porm, apesar de pertencer mesma camada Internet, ele precisa ser encapsulado em um
pacote IP (na rea de dados) antes de passar camada fsica e dali ser mandado Internet.
Quer dizer, ele utiliza as caractersticas de entrega de datagrama do IP para chegar ao seu
destino.
O formato do ICMP varivel de acordo com o tipo. os trs primeiros campos sempre
so os mesmos: type, code e checksum. O checksum tem 16 bits e calculado da mesma
maneira do protocolo IP. O type tem 8 bits e identifica a mensagem. O code tem 8 bits e prov
informaes sobre o tipo de mensagem. Alm disso, o ICMP que reporta erros sempre inclui o
cabealho e os primeiros 64 bits do datagrama que causou o erro, assim a origem pode
investigar melhor qual protocolo e qual aplicao causou o erro informado.
A tabela 2.1 mostra os tipos possveis das mensagens ICMP.

Tipo

Mensagem

Echo Reply

Destination Unreachable

Source Quench

Redirect (change a route)

Echo Request

11

Time Exceeded for a Datagram

12

Parameter Problem on a Datagram

13

Timestamp Request

14

Timestamp Reply

15

Infomation Request (obsoleto)

33

Tipo

Mensagem

16

Information Reply (obsoleto)

17

Address Mask Request

18

Address Mask Reply


Tabela 2.1 ICMP type (modificado [1])

O recurso mais utilizado do protocolo ICMP so os tipos echo request e echo reply.
So utilizados por um programa chamado ping. A mquina de origem transmite um request e
espera at a mquina destino o receba e devolva um reply. Qualquer mquina destino que
recebe um request, manda de volta um reply. Com isso, a conectividade entre as duas
mquinas foi testada, ou seja, elas esto funcionando e roteando corretamente, os roteadores
entre elas esto roteando corretamente e os protocolos ICMP e IP esto funcionando. A figura
2.4 mostra um exemplo de uma mensagem ICMP Echo.
Outro recurso importante a mensagem destino inacessvel (unreachable destination),
utilizada quando a sub-rede ou o roteador no pode localizar o destino. Para este tipo de erro
existem 13 cdigos diferentes: network unreachable, host unreachable, protocol unreachable,
port unreachable, fragmentation needed and DF set, source route failed, destination network
unknown, destination host unknown, source host isolated, communication with destination
network administratively prohibited, communication with destination host administratively
prohibited, network unreachable for type of service e host unreachable for type of service.
Rede inacessvel normalmente implica em falhas de roteamento, host inacessvel normalmente
falha de entrega. Os erros podem acontecer porque o destino no existe, ou porque o
hardware est indisponvel e muitos outros motivos. Pode ocorrer tambm do pacote IP estar
com o FLAG DF setado e a rede s aceitar pacotes menores. O cdigo fragmentation needed
setado. Resumindo a mensagem de destino inacessvel ocorre quando o datagrama no pode
ser entregue por algum motivo. A figura 2.4 mostra um exemplo desta mensagem ICMP.

34

Figura 2.4 Exemplos de mensagens ICMP; Echo e Unreachable Destination


O ICMP tipo source quench serve para os roteadores avisarem origem que a taxa de
transmisso de datagramas est muito alta e est causando congestionamento no roteador. A
idia que quando um roteador descartasse um pacote por estar congestionado, ele mandasse
essa mensagem ICMP origem. Porm, raramente utilizado, pois o trfego j muito alto.
A camada de transporte fica encarregada deste controle de congestionamento.
O tipo time exceeded enviado quando o pacote descartado porque seu contador
chegou a zero. Ele possui dois cdigos: time-to-live count exceded quando o campo TTL do
IP chega a 0 e fragment reassembly time exceeded quando o tempo de espera para receber
determinado datagrama de um fragmento expira.
Os tipos timestamp request e timestamp reply realizam a mesma tarefa do Echo,
porm registram o tempo de chegada da mensagem e o tempo de partida da resposta, podendo
ser utilizados para medir o desempenho da rede.
Os tipos address mask request e reply servem para uma mquina conhecer a mscara
de rede de outra mquina.
O tipo redirect enviado ao transmissor quando um roteador muda sua tabela de
roteamento e percebe que h uma rota melhor para um determinado pacote.
Finalmente, o tipo parameter problem utilizado quando existem outros tipos de
problemas no datagrama que os outros tipos de mensagem no cobrem, por exemplo um valor
invlido em algum campo do cabealho IP.

35

2.4CAMADADETRANSPORTE

A camada de transporte o corao da arquitetura TCP/IP. Sua funo promover


uma transferncia de dados confivel e econmica entre a mquina de origem e a de destino,
independente das redes fsicas em uso no momento[3]. Ela aceita os dados da camada de
aplicao, divide em unidades menores, se necessrio, repassando para a camada Internet. Do
outro lado, a camada de transporte do receptor remonta as mensagens. Alm disso, garante
que essas unidades chegaro corretamente ao destino. o verdadeiro protocolo fim a fim,
onde origem e destino trocam mensagens e controlam o fluxo de mensagens. Nas camadas
inferiores, os protocolos so trocados entre mquinas vizinhas, no entre origem e destino.
Dois protocolos so definidos nesta camada: o protocolo TCP, orientado conexo,
permitindo uma conexo segura, livre de erros e controlando o fluxo para impedir sobrecarga
de um receptor lento; e o UDP, sem conexo, no confivel para aplicaes que no
necessitam de controle de fluxo nem de manuteno da seqncia das mensagens enviadas. A
entrega imediata mais importante que a entrega precisa. Os dois protocolos sero melhor
detalhados adiante.

2.4.1PROTOCOLOUDP

O UDP (User Datagram Protocol, RFC 768) prov um servio de entrega de pacotes
baseado em uma conexo no confivel, utilizando o protocolo IP para transportar as
mensagens. Ele adiciona ao IP a habilidade de distinguir entre muitos destinos no mesmo host
[1]. Cada pacote UDP contm em seu cabealho um nmero da porta de origem e nmero da
porta de destino. Essas portas diferenciam os mltiplos programas ou processos de rede que
rodam numa mesma mquina. O UDP no utiliza nenhum tipo de mecanismo de controle das
mensagens que manda, podendo essas serem perdidas, duplicadas ou chegarem fora de ordem,
assim como os datagramas IP.
Assim como os outros protocolos, UDP possui um cabealho e uma parte de dados. O
cabealho dividido em 4 campos de 16 bits. A figura 2.5 ilustra um datagrama UDP.

36

Figura 2.5 Pacote UDP


Os campos Source Port e Destination Port contm os nmeros de porta utilizados pelo
UDP para entregar o datagrama ao processo receptor. O campo source port, ou porta de
origem opcional e especifica a porta na qual a resposta deve ser enviada.
O campo length corresponde ao tamanho em octetos de todo o datagrama UDP,
incluindo cabealho e dados. O valor mnimo do campo 8 (s o cabealho).
O campo Checksum corresponde checagem semelhante ao IP. opcional no UDP e
quando no h, o valor do campo 0. Quando o UDP utiliza o checksum, ele acrescenta um
pseudo-cabealho de 12 octetos ao datagrama, contendo os valores de IP origem e destino,
protocolo e tamanho, alm de completar o restante com zeros para calcular o checksum. No
entanto, ele no manda os zeros. No destino, a mquina retira os mesmos dados, remonta o
pseudo-cabealho e verifica o checksum. Essa estratgia ajuda a detectar pacotes extraviados,
no entanto viola a hierarquia do protocolo, pois as informaes de endereamento IP deveriam
estar na camada IP e no na camada UDP.
O nmero da porta de cada aplicao segue uma regra hbrida na arquitetura TCP/IP.
As portas de valores baixos (0 1023) so classificadas atravs de uma autoridade central
(IANA), que entrega esses valores para as aplicaes mais importantes existentes. As abaixo
de 256 so as portas conhecidas e reservadas para os servios-padro. So definidas na RFC
1700. As aplicaes menores, ou proprietrias podem utilizar a porta que for mais conveniente
de valor alto. De 1024 a 49151 elas so registradas no IANA. De 49152 a 65535 so
dinmicas.

2.4.2PROTOCOLOTCP

O TCP (Transmission Control Protocol, RFC 793, 1122, 1323) o protocolo mais

37

completo e complexo da famlia TCP/IP. Ele foi projetado para oferecer um fluxo de bytes fim
a fim confivel em uma rede no-confivel. O TCP existe como protocolo de comunicao e
como processo, ou parte do kernel da mquina do usurio. Ele recebe informaes da camada
superior, ou seja, as aplicaes, divide essas informaes em pedaos de at 64KB e os
repassa para a camada IP. Na prtica, costuma dividir em segmentos de 1,5KB. Ele tambm
gerencia temporizadores para retransmisso no caso de perda de pacotes e faz a reorganizao
dos segmentos. Em outras palavras, ele oferece confiabilidade conexo[1,2,3,4].
As conexes estabelecidas pelo protocolo TCP so todas full-duplex, o trfego
acontece em duas direes e ao mesmo tempo. E so conexes ponto-a-ponto, isto , existe
um ponto terminal, ou socket (identificado por endereo IP mais porta) de um lado e um
socket do outro lado estabelecendo a conexo.
O TCP formado por um cabealho fixo de 20 octetos e uma parte opcional. A seguir
vem a parte de dados que pode ser nula, ou no. O tamanho mximo de um segmento TCP
de 64KB, que constitui a parte de dados do protocolo IP. Dependendo do software que o
implementa e do tamanho do quadro fsico que transporta os pacotes na rede, o TCP pode
encher seu buffer at que a quantidade de dados chegue a um certo tamanho e transmitir ou
segmentar uma quantidade que considera grande e transmitir em mltiplos segmentos (o que
aumenta o tamanho total da mensagem, pois assim como no IP, o cabealho ser repetido em
cada segmento).
A figura 2.6 mostra o segmento TCP. medida que os campos forem sendo
explicados, alguns conceitos ficaro claros.

38

Figura 2.6 Segmento TCP (Stevens, 2000)


O cabealho TCP formado pelos seguintes campos:
a) Source Port Number e Destination Port Number (16 bits + 16 bits): Assim como no
protocolo UDP, so nmeros que identificam um processo dentro da mquina. Juntamente
com o endereo IP, formam os sockets que caracterizam a comunicao TCP fim a fim. Cada
mquina decide como alocar suas portas, respeitando a numerao do IANA (ver UDP).
b) Sequence Number (32 bits): o campo que identifica o byte que representa a posio do
incio dos dados do segmento. Cada byte do segmento tem seu prprio nmero de seqncia
de 32 bits.
c) Acknowledgement number (32 bits): Representa a posio do prximo octeto aguardado
pelo transmissor, ou seja, o nmero de seqncia do ltimo octeto recebido com sucesso mais
um. S ativado quando o valor do flag ACK 1.
Para entender melhor os campos anteriores, seria interessante mostrar como uma
conexo estabelecida. A figura 2.7 esclarece o estabelecimento do three way handshake. O
primeiro segmento TCP mandado com o flag SYN setado (ver adiante) para o
estabelecimento da conexo. A mquina escolhe um ISN (Initial Sequence Number) para o
segmento de acordo com o seu contador e popula o campo Sequence Number. O campo
Acknowledgement Number fica desativado. O destino recebe o segmento e, caso esteja no
estado LISTEN (adiante ser vista a mquina de estados), devolve um segmento com o flag
SYN para completar o estabelecimento da conexo. Aproveitando a carona, o flag ACK de
confirmao (ver adiante) do segmento anterior ativado e o campo Acknowledgement
number preenchido com o valor do Sequence Number recebido mais 1. Isso porque, apesar

39

de no ser um dado do segmento, o flag SYN gasta um Sequence Number. O transmissor


original ao receber a confirmao e a solicitao de conexo do outro lado, ainda precisa
enviar um ltimo segmento com o flag ACK ativado e o Acknowledgement number esperado
pelo receptor.

Figura 2.7 Estabelecimento da conexo


d) header length (4 bits): Assim como no IP, medido a cada 32 bits e informa o tamanho do
cabealho TCP. Isso porque o campo Options varivel. Em seguida h um campo de 6 bits
no utilizado.
e) Flags (6 bits): Os flags so parte essencial do cabealho TCP. Existem 6 flags:
-URG (Urgent Pointer) flag que avisa ao TCP para parar de acumular dados no buffer e
procurar os segmentos urgentes, que tm prioridade sobre quaisquer outros. utilizado por
exemplo quando um usurio utiliza o CTRL-C para interromper um processo remoto j
iniciado;
-ACK flag que indica que o campo Acknowledgement number vlido. utilizado para
confirmar os segmentos recebidos (o TCP espera por uma confirmao de todos os segmentos
que manda);
-PSH flag que avisa ao receptor que ele deve entregar os dados que tem no buffer o mais
rapidamente possvel aplicao, ou seja, a aplicao precisa que os dados sejam enviados
imediatamente, no pode esperar;
-RST flag utilizado para reiniciar uma conexo. Tambm utilizado para rejeitar um
segmento invlido ou recusar uma tentativa de conexo;
-SYN flag utilizado para estabelecer conexo. Quando utilizado com ACK=0 quer dizer
conexo requerida e quando utilizado com o ACK=1 quer dizer conexo aceita;

40

-FIN flag utilizado para encerrar uma conexo. Assim como o SYN, ele tambm utiliza um
Sequence number.
f) window size (16 bits): O controle de fluxo do TCP gerenciado por meio do algoritmo de
sliding window, ou janela deslizante, de tamanho varivel. Normalmente o TCP divide os
dados que recebe em seqncia de octetos chamados segmentos e os transmite cada um em
um datagrama IP. O mecanismo de janela deslizante permite que diversos desses segmentos
sejam mandados antes que chegue uma confirmao (ACK) dos anteriores. Isso mantm a
rede ocupada e permite que o receptor receba pacotes at que o seu buffer esteja cheio. O
mecanismo opera em nvel de bytes e no de segmentos. A figura 2.8 ilustra um exemplo de
janela deslizante. O tamanho da janela de 4 bytes. Em (a), os quatro primeiros foram
mandados e nenhum ACK de confirmao foi recebido. Em (b), dois segmentos ACK foram
recebidos e dois continuam sendo aguardados. Porm a janela deslizou dois bytes e mandou
mais dois. Agora aguarda os dois anteriores de confirmao e mais dois. Em (c), as quatro
confirmaes chegaram e a janela deslizou em 4 bytes.

Figura 2.8 Exemplo de sliding window ou janela deslizante


A grande diferena do exemplo para o TCP que no ltimo o mecanismo de janela
deslizante tem tamanho varivel, ou seja, um algoritmo utilizado para controlar o tamanho.
Na verdade, o tamanho da janela vai de acordo com o buffer do receptor e o receptor anuncia
esse buffer atravs do campo window size. Se, por exemplo, o buffer do receptor for de 5K e o
transmissor envia um segmento de 3K. O receptor ir receber o segmento e, enquanto a
aplicao no retirar aqueles 3K de l, o buffer ter apenas 2K livres. O receptor envia ento o
segmento de confirmao, com o valor de 2K no campo window size. Supondo que o
transmissor tenha mais de 2K para enviar, ele s enviar 2K e encher o buffer de transmisso
dele espera de resposta do receptor. Se o receptor receber aqueles 2K e a aplicao ainda no
tiver retirado os 3K anteriores, no pacote de confirmao enviado ao transmissor, o campo

41

window size ter valor 0. Sendo assim o transmissor ter que esperar at que o receptor mande
outro pacote semelhante, com o valor de window alterado. H duas situaes que o
transmissor habilitado a mandar um segmento, mesmo que o valor de window size seja 0:
um segmento com o flag URG permitindo que o usurio aborte o processo; um segmento de 1
byte, para avisar ao receptor reanunciar o pacote com o tamanho do buffer, pois h a
possibilidade dele ter se perdido na rede.
g) Checksum (16 bits): O campo checksum no TCP obrigatrio e calculado exatamente da
mesma maneira que o UDP, utilizando o pseudo-cabealho.
h) Urgent Pointer (16 bits): Quando o flag URG setado, significa que este campo est
habilitado. Ele usado para indicar um deslocamento de bit no Sequence Number no qual os
dados urgentes devero estar, substituindo os segmentos interrompidos (que tero outro
nmero de seqncia).
i) Options (varivel): A opo mais importante do TCP permite que cada mquina especifique
o MMS (maximum segment size), ou tamanho mximo de segmento que est disposto a
receber. O menor deles ser escolhido como padro da conexo.
impossvel entender o protocolo TCP sem passar pela sua mquina de estados. A
tabela 2.2 ilustra os possveis estados do TCP.

Estado

Descrio

CLOSED

Nenhuma conexo est ativa ou pendente

LISTEN

O servidor est esperando pela chegada de uma chamada

SYN RCVD

Uma solicitao de conexo chegou; espera por ACK

SYN SENT

A aplicao comeou a abrir conexo

ESTABLISHED O estado normal para a transferncia de dados


FIN WAIT 1

A aplicao disse que acabou de transmitir

FIN WAIT 2

O outro lado concordou em encerrar

TIMED WAIT

Aguarda a entrega de todos os pacotes

CLOSING

Ambos os lados tentaram encerrar a transmisso simultaneamente

CLOSE WAIT

O outro lado deu inicio a um encerramento

LAST ACK

Aguarda a entrega de todos os pacotes


Tabela 2.2 Mquina de Estados TCP [3]

As conexes iniciam no estado CLOSED. Dependendo da situao, ela sai desse

42

estado para executar uma abertura passiva (LISTEN), ou ativa (SYN SENT). Quando a conexo
estiver estabelecida, o estado ser o ESTABLISHED. A iniciativa de encerramento poder
ocorrer de ambos os lados. Aps o encerramento, o estado volta para CLOSED. A figura 2.9
ilustra uma mquina de estados finita TCP.

Figura 2.9 Mquina de Estados TCP


Normalmente, na Internet, a conexo entre dois hosts utiliza a arquitetura clienteservidor, ou seja, uma mquina cliente necessita de um servio da mquina servidor e pede o
estabelecimento de uma conexo para acessar o servio. a abertura ativa de conexo. A
mquina servidor est com o servio habilitado, no estado LISTEN e aceita a conexo. a
abertura passiva. Caso o servidor no esteja no estado LISTEN, ele devolver um segmento
com o flag RST para o cliente, terminando a tentativa de conexo. A figura 2.9 mostra como
seria a mudana de estado normal para os dois lados durante uma conexo. Na linha escura, a
situao do cliente e na linha pontilhada escura, a situao do servidor.

43

O cliente, primeiramente no estado CLOSED, envia um SYN para iniciar o


estabelecimento da conexo passando para o estado SYN SENT. Assim que ele receber o SYN
e o ACK e mandar o seu ACK, estabelecendo a conexo, o estado muda para ESTABLISHED.
A partir da comea toda a transferncia de dados necessria na conexo. Supondo que o
cliente inicie o fechamento ativo da conexo, ele manda um segmento com o flag FIN ativado
e fica aguardando no estado FIN WAIT 1. Assim que ele recebe o ACK de resposta, ele vai
para o estado FIN WAIT 2. Caso esta resposta demore duas vezes o tempo de vida mximo do
pacote, o cliente encerra a conexo. Eventualmente o servidor receber um timeout e tambm
encerrar a conexo. Quando o cliente receber a confirmao do seu FIN e, em conseqncia
o FIN do servidor, ele manda o ltimo ACK de confirmao e vai para o estado TIMED WAIT.
O tempo expira e o cliente volta para o estado CLOSED.
O servidor est no estado LISTEN. Ao receber um SYN do cliente, vai para o estado
SYN RCVD e responde com um SYN+ACK. Quando receber o ACK de confirmao do cliente,
ir para o estado ESTABLISHED. Supondo ainda que o cliente inicie o fechamento da
conexo, o servidor, ao receber o FIN, manda o ACK de confirmao e passa ao estado de
fechamento passivo CLOSE WAIT. Ento ele manda o seu FIN, passando ao estado LAST
ACK. Ao receber o ltimo ACK, ele vai para o estado CLOSED.
Outro aspecto importante do TCP o congestionamento que ele tem que enfrentar. O
algoritmo das janelas deslizantes com tamanho varivel, juntamente com o campo window
size evitam o congestionamento entre as extremidades. Porm, o congestionamento pode
ocorrer tambm no meio da rede, entre os roteadores. Um congestionamento detectado pelo
TCP quando h um timeout dos pacotes. A soluo encontrada pelo TCP para controlar o
problema do congestionamento foi criar uma outra janela a congestion window para medir o
congestionamento na rede, separando esse problema do problema do congestionamento no
receptor, medido por outra janela. Cada uma delas mostra o nmero de bytes que o
transmissor pode enviar e ele escolhe o menor valor. E como o transmissor escolhe o tamanho
da janela de congestionamento? Ele ajusta a janela para o tamanho do segmento mximo em
uso na conexo. Ento manda uma rajada com esse segmento. Se no houver timeout, ele
duplica o tamanho e envia uma rajada com esse segmento de tamanho duplicado, no havendo
timeout, ele duplica novamente e manda. E assim vai, at que ocorra um timeout ou a janela
do receptor seja alcanada. Se ocorrer um timeout e o segmento que foi enviado for de 2X, um
terceiro parmetro utilizado, o limitante (threshold). O limitante ser mantido em X e a

44

janela ser reiniciada com o tamanho do limite. A partir da o crescimento linear, ou seja,
uma vez o segmento mximo a cada rajada. Portanto, o timeout define o tamanho do limite,
onde ter o incio o crescimento linear. Se o crescimento linear provocar um timeout
novamente, o limite ir baixar at metade desse novo timeout e o processo comear
novamente. Se for recebido um pacote do tipo ICMP source quench, o TCP o tratar como um
timeout [3].
O ltimo aspecto a ser considerado no protocolo TCP a questo do gerenciamento de
temporizadores. O temporizador mais importante o do TCP o temporizador de
retransmisso. Quando um segmento enviado, este temporizador disparado. Assim que ele
expira, o segmento retransmitido. O grande desafio do TCP saber qual deve ser o tempo de
timeout. Se o intervalo for curto demais, ocorrero retransmisses desnecessrias. Se for
muito longo, prejudicar o desempenho. O algoritmo utilizado tem que ser altamente
dinmico. Ele foi criado por Jacobson (1988) e diz o seguinte: a varivel RTT a melhor
estimativa no momento para a viagem de ida e volta. Uma vez enviado um segmento, um
temporizador iniciado para contar o tempo de viagem ou para retransmitir, se for o caso. O
tempo de viagem medido o parmetro M. o RTT atualizado de acordo com a frmula:
RTT = RTT 1M (2.1)
onde um fator de suavizao, normalmente com o valor de 7/8. A escolha do timeout nas
primeiras implementaes era feita multiplicando-se o valor de RTT por 2. A experincia no
foi boa e Jacobson props uma frmula que era prxima ao desvio padro da funo
densidade de probabilidade dos tempos de chegada da confirmao (na verdade o desvio
mdio). A frmula a seguinte:
D= D 1RTT M (2.2)
onde o fator de suavizao que pode ser igual ou no ao anterior. A varivel D possui uma
grande vantagem. Ela pode ser calculada utilizando apenas soma, subtrao e deslocamento
de inteiro. A maioria das implementaes calculam o timeout da seguinte maneira:
TIMEOUT =RTT 4D (2.3)

No caso de um segmento retransmitido, pode haver confuso quanto ao clculo de RTT. Ento
utiliza-se o algoritmo de Karn: o RTT no atualiza e o temporizador dobrado a cada falha
at que os segmentos cheguem de primeira [3].
O outro temporizador existente no TCP j foi citado e se refere ao caso em que o
buffer do receptor est cheio e ele manda um segmento com o campo window size = 0. Ento

45

quando o buffer libera, ele manda outro segmento com o window size disponvel. Se, de
repente, esse segmento se perder, cada um dos lados estar esperando resposta do outro. Ento
existe o temporizador de persistncia no transmissor que ativado quando ele recebe um
segmento com window size = 0. No recebendo resposta depois do timeout ele manda um
segmento de 1 byte e obriga o receptor a retransmitir o segmento com o window size
disponvel.

2.5CAMADADEAPLICAO

a camada que contm os protocolos de alto nvel da rede e utiliza as camadas abaixo
para prover o transporte e entrega dos pacotes ao seu destino. Existem muitos protocolos nesta
camada e esto sempre surgindo novos. Por esse motivo no sero detalhados neste captulo.
Optou-se por explicar um simples exemplo de funcionamento de um protocolo essencial na
Internet, o DNS. Adicionalmente explicao, ser dado o alerta de algumas falhas de
segurana inerentes ao protocolo DNS. Esse alerta preparar o leitor para o prximo captulo,
o de segurana da informao, onde mais protocolos da camada de aplicao e suas
respectivas falhas de segurana sero apresentados.
Esta camada prov as mais conhecidas aplicaes de redes e Internet para o usurio
final. Dentre seus protocolos tradicionais esto protocolos de login remoto como o TELNET;
de transferncia de arquivos como o FTP e o TFTP; de resoluo de nomes, o DNS; de
gerenciamento de redes, o SNMP; de correio eletrnico, como SMTP, POP e de navegao
web, o HTTP. Todos os protocolos citados surgiram relativamente no incio da Internet e das
aplicaes e existem at hoje. Entretanto, como a Internet no incio no tinha muita
preocupao com a parte de segurana da informao e dos protocolos, estes protocolos foram
mal projetados para atender a esse requisito. Com o advento da criptografia (tornar os dados
indecifrveis a no ser para quem possua a chave para decifr-los) aplicada aos protocolos,
esses antigos protocolos inseguros esto sendo aos poucos substitudos: o TELNET e o FTP
pelo SSH; o HTTP pelo HTTPS; o SNMP ganhou uma verso com criptografia; o correio
eletrnico ganhou criptografia de mensagem com o PGP e at o protocolo IP ganhou uma
verso criptografada de baixo nvel, o IPSEC. A grande desvantagem dos protocolos que
utilizam criptografia para os velhos protocolos que eles adicionam alguns bits

46

mensagem e ficam mais pesados. Entretanto, com a rpida evoluo dos meios de
comunicao permitindo taxas de transmisso cada vez maiores isso no chega a ser um
problema.
Apesar dessa nova camada de segurana relativamente recente, na Internet h de
tudo. Muitos sistemas antigos e legados ainda utilizam os antigos protocolos ou mesmo
verses dos novos que contm falhas de segurana. Durante a dissertao esses protocolos
sero explorados, pois eles so a isca para os mal intencionados na Internet.

2.5.1PROTOCOLODNS

O protocolo DNS (Domain Name System, RFC 1034 e 1035) utiliza o protocolo de
transporte UDP na porta 53 e surgiu simplesmente para mapear os endereos binrios de rede,
ou o endereamento IP para nomes com caracteres ASCII. Ele converte os caracteres ASCII
em endereos IP. Desta maneira, o usurio final que deseja acessar uma pgina web, ou
mandar um correio eletrnico no precisa saber o endereo IP do destino, apenas o nome. Na
antiga ARPANET, existia apenas um arquivo, chamado de hosts.txt que fazia esse
mapeamento. No entanto com o crescimento exponencial da Internet, viu-se que era
impossvel manter um mapeamento centralizado apenas em um arquivo.
Criou-se, ento, uma estrutura de atribuio de nomes hierrquico, baseado em
domnio. Em resumo, o DNS funciona da seguinte maneira: para mapear um nome em um
endereo IP, o programa aplicativo chama um procedimento de biblioteca denominado
resolvedor (resolver) e passa seu nome para ele como um parmetro. O resolvedor envia um
pacote UDP para um servidor DNS local, que procura o nome e retorna o endereo IP para o
resolvedor. Este ento retorna o IP para o aplicativo, que a partir da estabelece uma conexo
TCP ou envia pacotes UDP ao IP de destino [3].
A hierarquia de domnios da Internet como mostra a figura 2.10. Sua leitura funciona
da direita para a esquerda. Na verdade existe a entidade raiz e diversas zonas abaixo dela que
so administradas por uma entidade central da Internet (NIC Network Information Center).
No caso da empresa Novell, ela solicitou junto NIC o registro de um subdomnio abaixo do
domnio com. A NIC delegou a ela autoridade sobre o subdomnio novell. A partir da, a
Novell passa a ter o controle sobre novell.com. Caso ela queira colocar um servidor

47

diretamente abaixo deste subdomnio, por exemplo um servidor chamado server, ele ter o
nome de server.novell.com. Caso ela queira dividir o subdomnio em outros subdomnios,
como mostra a figura, tambm pode. Supondo que exista uma filial que queira registrar o
subdomnio provo. Ela solicitar matriz da empresa que detm o subdomnio novell.com. A
matriz delegar autoridade do subdomnio provo e a filial passa a ter a responsabilidade sobre
ele

podendo,

por

exemplo,

colocar

um

equipamento

host1

com

nome

host1.provo.novell.com. Ou poder delegar um subdomnio abaixo dele a uma subdiviso.


Portanto uma estrutura hierrquica que no faz distino se outro subdomnio ou se um
equipamento que est debaixo de certo subdomnio e que, teoricamente no tem fim.

Figura 2.10 Hierarquia DNS


O mecanismo de mapeamento de nome funciona atravs dos servidores de nome.
Supondo que cada subdomnio possua o seu servidor de nomes, quando o resolvedor de uma
mquina que esteja dentro da filial provo solicitar o nome server.redcross.org, ela enviar a
solicitao para o servidor de nomes da novell, que por sua vez enviar para o servidor de
nomes com, que por sua vez enviar para o servidor raiz, que enviar para o org, que enviar
para o redcross que devolver o IP por toda esse caminho de volta. Portanto, quando um
subdomnio se registra, ele tem que fornecer o endereo de seu servidor de domnio para a
entidade superior. Assim, cada servidor de nomes s precisa conhecer o endereo de seus
subdomnios imediatamente abaixo e acima. Na prtica, o funcionamento mais simples, pois
no h um servidor de nomes para cada subdomnio. As organizaes normalmente renem as
informaes de todos os seus subdomnios em um nico servidor. Normalmente os servidores
locais tambm conhecem o endereo de outros servidores, como o raiz, para agilizar o

48

processo quando uma solicitao feita passando por ele. Assim, a consulta no ter que
passar por toda a hierarquia. Outro parmetro importante a ser fornecido no momento do
registro o TTL (time to live) que serve para determinar quanto tempo o endereo daquele
domnio poder ficar na memria cache dos servidores de domnio, ou seja, quando um
usurio pede para acessar um nome, o servidor verifica se ele foi processado recentemente e
repassa ao usurio mais rapidamente, pois est em sua memria cache local. Entretanto,
eventualmente, esse mapeamento poder mudar. Por isso o TTL indica de quanto em quanto
tempo o servidor ter que ir buscar novamente a informao do mapeamento.
Para as consultas inversas, ou seja, para mapear endereos IPs em nomes de hosts
tambm h uma rvore hierrquica parecida com a das consultas normais. Uma rvore no
est relacionada com a outra. A rvore inversa raramente recebe manuteno ou atualizao
como recebe a rvore mais comum.
Esta separao entre consulta e consulta inversa de nomes pode trazer um problema de
segurana para o protocolo DNS. Uma pessoa mal intencionada que consiga controlar uma
parte da rvore inversa pode faz-la mentir. Isto , o registro inverso pode falsamente conter o
nome de uma mquina que confivel para a vtima. O atacante ento faz uma chamada
remota (por exemplo um ssh, que ser visto mais tarde) ao computador da vtima, que ir
aceitar inocentemente achando ser a mquina confivel.
A maioria dos novos sistemas imune a esse ataque pois implementam uma checagem
cruzada. O sistema, quando quer saber o nome atravs do IP consulta o DNS e quando chega
o nome resultante, ele faz a consulta inversa para saber se o IP realmente o que ele havia
mandado na primeira consulta. O inverso tambm funciona.
Ainda h outra variante deste ataque, onde o atacante consegue envenenar a memria
cache da resposta de DNS da vtima anterior ao incio da chamada de checagem cruzada.
Ento, quando a checagem acontece, tudo parece estar bem, mas na verdade o intruso obteve
sucesso e ganhou acesso.
No captulo seguinte, sero apresentados outros protocolos da camada de aplicao
que possuem falhas semelhantes em seus mecanismos, inclusive os principais protocolos
como IP, TCP ou ICMP. Essas falhas deixam a mquina conectada Internet vulnervel a uma
gama de ataques para obter privilgios, executar comandos, ou mesmo tomar o controle da
mquina. A nica maneira de evit-los adotar uma srie de medidas de segurana que so
mandatrias para a navegao na Internet nos dias de hoje.

49

3SEGURANADAINFORMAO

3.1INTRODUOSEGURANADAINFORMAO

A segurana da informao na Internet no diferente de nenhum outro tipo de


segurana. As variveis envolvidas e os detalhes tcnicos so bastante diferentes dos outros
tipos, mas existem premissas e experincias acumuladas ao longo do tempo que no devem
ser esquecidas.
Em primeiro lugar, no existe nada com segurana absoluta. Cada tcnica, cada
protocolo, cada aplicao, cada sistema tem sua falha de segurana. Seja por mau uso, por
concepo falha, implementao falha, ou outro motivo. Existe sempre uma porta aberta ao
atacante. Seja ela conhecida ou no. O atacante estar sempre rondando procura dessa porta.
Existe um conceito que muitas vezes ajuda na defesa de um sistema, mas pode ser muito
enganoso e traioeiro: a segurana por obscuridade. s vezes um atacante no consegue
invadir um sistema pois ele no conhece nada sobre aquele sistema. No conhecendo seu
funcionamento, no h como achar uma falha de segurana. O defensor, porm, deve sempre
assumir que o inimigo conhece bem o sistema. Conhece como se fosse ele prprio, ou melhor
do que ele. Essa a premissa mais segura a se assumir. Estar sempre preparado para qualquer
tipo de ataque o objetivo dela e a segurana por obscuridade nunca um bom caminho.
A proteo de um sistema sempre construda em camadas, assim como uma cebola.
Um atacante consegue passar por uma barreira de proteo, ento h outra para barr-lo e o
sistema est salvo. As camadas so constitudas por dispositivos fsicos, softwares ou polticas
de segurana. Quanto mais diversificada for a proteo, mais segurana existir. Todas as
camadas tendem a ter a mesma importncia. No adianta investir todo o tempo e dinheiro
disponvel em um tipo de proteo, deixando as outras de lado, pois um furo em qualquer uma
delas ter a mesma conseqncia. Para uma empresa, investir em segurana sempre uma
economia financeira. Os danos de ter um sistema invadido, informaes roubadas e
credibilidade no mercado abalada so financeiramente muito altos e incalculveis. O preo de
hardware, software e mo-de-obra especializada de acordo com a necessidade calculvel e

50

quase sempre menor. H que se calcular qual o risco a que o negcio est sujeito na Internet,
o valor do patrimnio a defender e a partir da investir na segurana.
Ao planejar um sistema, ou uma soluo, a segurana deve sempre ser um dos pilares
do projeto. No a partir do problema que se conserta o sistema, sempre que possvel, como
est no ditado popular: melhor prevenir do que remediar. Mudar um sistema depois que
est feito por questes de segurana um problema. A programao original no fcil, mas
se for bem feita poder evitar muitos problemas futuros. A manuteno tambm muito
importante. Nenhum software concebido sem bugs ou falhas. A utilizao o seu maior
teste. Se um software no necessrio para o bom funcionamento do sistema, melhor no
utiliz-lo. Um programa ou protocolo deve sempre ser tratado como inseguro, at que se prove
o contrrio, ou seja, devem-se negar todos os servios e processos de um sistema, a no ser
que eles tenham provado ser essencial para o bom funcionamento do mesmo. Permitindo
estes, assume-se o risco do que venha a acontecer.
O inimigo invisvel. No se sabe quem ou que quer. Pode estar em qualquer lugar
fisicamente e pode utilizar todo o tipo de tcnica ou informao para montar sua estratgia de
ataque. No se pode subestimar qualquer tipo de informao. Um papel jogado no lixo, uma
conversa informal, um e-mail qualquer. Tudo fonte de informao. No possvel avaliar
qual o valor que ela ter para o inimigo, porm possvel evit-la o mximo possvel. O mais
prudente no confiar em ningum e tentar imaginar quem teria interesse no ataque. Um
funcionrio de uma empresa no deve ter acesso a mais programas e sistemas do que o
necessrio para o trabalho. Pesquisas mostram que um ataque interno a uma empresa, isto ,
feito por seus prprios funcionrios obtm sucesso muito mais facilmente e muito mais
freqente do que se imagina. necessrio prevenir ataques internos e externos isolando os
sistemas mais importantes. A segurana fsica essencial. absurdamente mais fcil invadir
uma mquina a que se tem acesso fsico do que uma mquina remota, que no se sabe ao certo
como est funcionando. A proposta do presente trabalho enfocar a proteo contra invases
remotas. Entretanto protees fsicas no so menos importantes, so provavelmente at mais
importantes.
Supondo que uma nova rede esteja nascendo e que seja necessrio definir os
mecanismos de segurana que sero utilizados. Primeiramente, necessrio dividir o
problema em trs partes: a segurana dos hosts, a segurana da rede e a segurana de
software.

51

A segurana de software envolve boas prticas de programao e preocupao


constante com segurana. Precisa ser amplamente divulgada aos programadores e apoiada
pela alta gesto. O principal recurso de segurana disponvel ao programador a criptografia.
Consiste na aplicao de algoritmos matemticos para cifrar a mensagem, isto , embaralhar
os bits de tal maneira que qualquer pessoa que consiga capturar os dados no consiga entender
do que se trata. Apenas o usurio que possui a chave para decifrar conseguir remontar a
mensagem. Esta chave pode ser a mesma chave utilizada para cifrar a mensagem, ou pode ser
diferente, dependendo do algoritmo de cifragem utilizado. Existem protocolos e algoritmos
para gerenciar a troca dessas chaves. Alm disso, existe uma arquitetura denominada PKI
(Public Key Infrastructure) criada para fornecer essas chaves em grande escala, atravs dos
chamados certificados digitais. Este assunto ser visto, ainda que superficialmente, mais
adiante no captulo.
Para planejar segurana de hosts essencial que se saiba qual a finalidade daquele
host, ele ser um servidor, ele ser uma mquina de usurio final, um dispositivo de rede, de
segurana? Aps isso, necessrio saber que sistema operacional ser instalado nele. Depois,
quais servios funcionaro nele e que tipo de usurio ir oper-lo. Levantados esses
requisitos, hora de instalar o sistema operacional. Com o sistema operacional instalado, vem
uma parte muito importante na segurana de hosts, o hardening. Significa retirar todos os
servios dispensveis do sistema operacional, fechar portas abertas, mudar permisses de
arquivos. Ou seja, significa blindar o sistema operacional. A dificuldade est nas
especificidades de cada sistema operacional. H um hardening especfico para cada sistema e
para cada funo que esse sistema ir desempenhar. Por isso, s vezes, s possvel fazer o
hardening nas mquinas mais importantes. Entretanto, o ideal de segurana que se faa um
hardening mnimo em todas as mquinas. Em seguida, necessrio equip-lo com todos os
softwares de segurana possveis e necessrios, principalmente em mquinas Windows de
usurio final, pois elas so as mais atacadas e estaro na net visitando lugares desconhecidos.
Esses softwares incluem: anti-vrus, anti-trojan, anti-spyware, firewall pessoal, IDS de host e
outros. O host est pronto para ser plugado na rede. Porm, a segurana dele no pra por a
Aps essa fase, se for necessrio instalar um novo software na mquina, tem que se avaliar se
ele est de acordo com a poltica de segurana da empresa. Alm disso, tem que haver uma
poltica de advisory e de patch management. Diariamente na Internet so divulgados diversos
bugs e vulnerabilidades (falhas de segurana) nos diversos sistemas operacionais e

52

softwares nas diversas reas existentes. A poltica de advisory consiste em acompanhar essas
notcias e, diante de um cadastro dos sistemas e softwares existentes dentro da empresa, avisar
dos bugs e vulnerabilidades divulgados. A poltica de patch management se encarrega de
automaticamente, quando for possvel, aplicar os patchs de segurana e atualizaes nas
mquinas vulnerveis. Os patchs so cdigos que consertam uma falha que foi descoberta
em um sistema. H um problema muito grave nesse ponto, que muitas vezes um patch de
segurana muda permisses de arquivos ou mexe em partes do sistema que no poderia mexer,
pois prejudica o funcionamento de outros sistemas existentes, ou do prprio sistema. Por isso,
muitas vezes na prtica, h um receio em se aplicar os patchs de segurana. Em um nvel de
parania mais alto, para computadores que possuem informaes estratgicas, a soluo o
EFS (encrypt file system). Consiste em criptografar de alguma maneira os dados contidos no
HD de tal forma que apenas o usurio que tiver a chave para decifrar os dados consiga faz-lo.
A segurana de rede, como era de se esperar, diz respeito aos dispositivos de rede
existentes: switches (equipamentos de rede que entregam pacotes atravs do endereo fsico
MAC), roteadores, firewalls, IDS, etc. E tambm arquitetura construda com ajuda deles. Em
primeiro lugar, a segurana de hosts se aplica a todos esses dispositivos. Os roteadores,
firewalls e switches devem estar com o sistema operacional atualizado, os patchs aplicados e o
hardening realizado. O ponto chave na segurana das redes diz respeito ao AAA
(Autentication, Autorization e Accounting), ou autenticao, autorizao e auditoria. Existem
dispositivos

como

RADIUS

TACACS

que

conseguem

realizar

essas

tarefas

centralizadamente. A autenticao diz respeito a quem est acessando o sistema.


Normalmente o usurio possui um login e uma senha que fornece acesso a um determinado
sistema. Com a criao da arquitetura PKI, essa poltica est sendo substituda pela poltica de
certificao digital. O usurio que possui um certificado digital, a princpio, consegue provar
a sua autenticidade. Adicionalmente pede-se o login e senha para garantir que o certificado
digital no tenha sido roubado. A autorizao diz respeito a quais recursos o usurio pode
acessar quando est dentro de um sistema. Um exemplo de implementao de autenticao e
autorizao est nos roteadores. Normalmente os roteadores so dispositivos que ficam muito
expostos, nas bordas da Internet. Existe uma ACL (Access List), ou lista de acesso, que lista
quais usurios esto permitidos de acessar aquele roteador e qual o nvel de permisso de
determinado usurio. Pode-se realizar uma lista de acesso com a ajuda de um RADIUS ou
TACACS, utilizando certificados digitais. Alm disto eles permitem um accounting, ou

53

auditoria. Desta maneira todos os registros de quem acessou, a que horas, para fazer o que
estaro guardados em um arquivo, ou em um banco de dados. O dispositivo ou elemento
central de segurana de uma rede chama-se firewall. Ele implementa um muro de proteo e
segmenta redes, podendo funcionar como um gateway e fazendo o papel dos roteadores. A
caracterstica de segmentao de redes realizada pelo firewall muito importante, pois ele
pode criar uma rede particular de especial importncia do ponto de vista de segurana
chamada de DMZ, ou zona desmilitarizada. A DMZ separa os servidores do restante da rede,
protegendo-os da rede interna e protegendo a rede interna da rede externa. Desta maneira,
uma configurao muito comum deixa a rede interna de um lado, a rede externa do outro e os
servidores do outro, sendo o firewall o ponto central que atravs de regras configurveis, rotas
e tradues de endereo (NAT, PAT) controla o acesso a cada servio e a cada mquina dentro
dessas redes. Alm disso ele pode inspecionar pacotes, filtrar contedo, gerenciar VPNs
(tneis seguros), etc. A VPN (Virtual Private Network) uma outra camada da segurana de
redes que utiliza a criptografia. De um lado da comunicao, os pacotes IPs so
criptografados e jogados na Internet. O outro lado (muitas vezes o firewall) descriptografa e
reconstri o trfego. Existem dispositivos especficos para isso tambm, os concentradores de
VPN. A criptografia dos pacotes IPs feita por um protocolo especialmente com essa funo
que atua acima da camada IP, o IPSEC. A VPN tambm pode ser construda em camadas
acima, por exemplo atravs do protocolo SSL. Por ltimo, na rea de segurana das redes,
destaca-se o objeto principal deste estudo, o IDS (Intrusion Detection System) ou sistema de
deteco de intruso. Um sistema que inspeciona todos os pacotes que entram em determinada
rede, ou determinado segmento procura de pacotes que possam ser considerado uma
intruso, ou um ataque. Cada pacote que chega, ele compara a uma base de determinados
padres de intruso que possui e determina se pode tratar-se de uma intruso ou no. Pode
funcionar em apenas um dispositivo, ou distribudo pela rede. Uma desvantagem que a
intruso precisa estar na base de padres de IDS, qualquer ataque que consiga fugir deste
padro passar desapercebido. Este tipo de IDS chamado de IDS baseado em assinatura. O
IDS que est sendo proposto no trabalho um IDS mais inteligente que consigue, atravs da
generalizao inerente das redes neurais artificiais, determinar um ataque, mesmo que esse
no tenha sido visto antes pelo IDS. Entretanto este assunto ser muito debatido
posteriormente. Outra grande desvantagem do IDS a quantidade de falsos positivos que ele
oferece. Isso quer dizer gerar um alarme de ataque, sendo que o trfego normal. Outra

54

desvantagem a incapacidade de detectar ataques contidos dentro de tneis, ou seja, no


trfego criptografado. Uma ltima desvantagem que ele consegue detectar a maioria dos
ataques, mas no consegue preveni-los, agindo antes que eles aconteam. Para esta tarefa,
esto surgindo os IPSs (Intrusion Prevention System) baseados em assinatura em conjunto
com inteligncia artificial.
O captulo est organizado da seguinte maneira: primeiro sero exploradas algumas
vulnerabilidades, ou falhas de segurana existentes em alguns dos principais protocolos da
Internet. Em seguida, sero vistos alguns tipos de ataques possveis e depois discutido os
mecanismos de segurana existentes para cont-los. Os atacantes normalmente utilizam
combinaes desses ataques afim de comprometer um sistema. A defesa tambm deve ser
construda, como discutido, atravs de combinaes de tcnicas e dispositivos.

3.2VULNERABILIDADESEMPROTOCOLOS
As falhas nos protocolos e aplicaes so a principal arma de todo atacante. em
conseqncia delas que todos os ataques que sero vistos mais tarde acontecero. Portanto,
essencial entender o funcionamento do protocolo e cada vulnerabilidade que ele possa
proporcionar. O que ser apresentado adiante apenas a ponta do iceberg, isto , exemplos
do funcionamento e explorao de alguns protocolos importantes. Para aprofundamento no
assunto sugerida a leitura da bibliografia apresentada e de outras interminveis fontes
disponveis na Internet ou nas livrarias.

3.2.1CAMADAINTERNET

3.2.1.1 IP

O protocolo IP, visto com detalhes no captulo anterior est sujeito a dois tipos de
ataques muito comuns. Eles so construdos a partir de caractersticas do funcionamento
normal do IP.
O primeiro ataque chamado de IP spoofing e consiste em mascarar a origem do

55

pacote, ou seja, fabricar um IP de origem falso para enganar o destino quanto origem do
pacote. Qualquer host pode fabricar um datagrama IP com qualquer endereo de origem. Cabe
ao sistema receptor fazer uma verificao reversa. No se pode confiar no campo IP Source
Address do protocolo IP, a no ser em situaes extremamente controladas [5].
O segundo ataque mais complicado de se verificar. Trata-se de utilizar a
fragmentao dos datagramas IPs para realizar, por exemplo, um ataque de negao de
servio, que ser mais detalhado posteriormente. O datagrama IP possui um tamanho mximo
de 64KB, porm o tamanho dos quadros fsicos normalmente so menores. O quadro
Ethernet, por exemplo, de 1500 bytes. Alguns podem ser menores ainda. A medida da
unidade mxima de transmisso de um quadro fsico a MTU (Maximum transfer unit).
Quando um datagrama precisa atravessar de uma MTU maior para uma MTU menor, o
datagrama precisa ser fragmentado e o IP utiliza o campo fragment offset para indicar a qual
parte do datagrama o fragmento pertence e o flag MF para indicar que h mais fragmentos a
chegar. Na chegada, o destino remonta o datagrama com base nesses campos. O cabealho IP
mantido em todos os fragmentos. Entretanto, o cabealho dos protocolos acima como TCP,
ou ICMP normalmente esto apenas no primeiro fragmento. Com isso, o dispositivo receptor
(roteador, firewall ou IDS), para analisar o datagrama precisa manter um estado com o ID do
datagrama e esperar a chegada de todos os fragmentos. O que acontece muitas vezes que
esse dispositivo no mantm o estado e o primeiro fragmento, que contm o cabealho TCP
ou ICMP barrado, ou detectado e os demais passam e simplesmente vo se acumulando
esperando o complemento e acabam derrubando o dispositivo, provocando a negao de
servio. O flag DF (don't fragment) tambm pode ser utilizado pelo atacante. Ele induz o
dispositivo de rede a no fragmentar, descartando o pacote e mandando um pacote ICMP
informando o tamanho da MTU. A informao pode ser til para o atacante mandar
datagramas maiores que a MTU, obrigando a fragmentao.

3.2.1.2 ARP

O protocolo ARP foi visto no captulo anterior e consiste em mensagens automticas


de requisio e resposta de traduo de endereos IP para endereos MAC (fsicos). Um
atacante facilmente pode fabricar essas mensagens, ou modific-las. Uma tcnica chamada de
ARP spoofing. Por exemplo, uma maquina lana a pergunta: quem o IP A?" Um atacante

56

intercepta essa mensagem e intercepta a mensagem legtima de resposta, se houver. Ento ele
fabrica uma resposta dizendo: O IP A sou eu, MAC X. A partir da a mquina de origem
passar a se comunicar com ele, confiando que ele realmente o IP A. Em alguns sistemas
seguros, o ARP inibido e a traduo de endereos feita de forma esttica para evitar esse
tipo de ataque. Em sistemas que utilizam trfego criptografado com VPN IPSec no possvel
realizar esse ataque.

3.2.1.3 ICMP

O ICMP pode ser utilizado de diversas maneiras como ferramenta de ataque. Existe
um ataque chamado smurf do tipo DoS (denial of service) ou negao de servio. Consiste em
mandar pacotes ICMP echo request para um endereo de broadcast utilizando o spoofing para
direcionar as respostas para o alvo. Desta maneira diversos hosts dessa rede iro responder
com o echo reply para o alvo, at que a memria dele seja insuficiente e ele no consiga mais
responder nem conexes legtimas, criando uma condio de negao de servio.
Outro ataque o ICMP fingerprint que consiste em mandar um ICMP echo request e
analisar o ICMP echo reply. A pilha TCP/IP implementada de maneira diferente nos
sistemas operacionais e a resposta ao ICMP s vezes diferente. Compara-se a resposta a uma
base de assinaturas existente e sabe-se qual tipo de sistema operacional est rodando no alvo.
O ICMP echo request tambm pode ser utilizado para descobrir quais mquinas esto
ativas e quais no esto numa rede. uma ferramenta importante para o administrador de rede
e tambm para o atacante.
Outro tipo de ataque com o ICMP o tunelamento. O atacante esconde informaes
ilcitas dentro do payload do ICMP echo request, que normalmente vazio e permitido nos
firewalls por ser uma ferramenta de administrao. Dentro do sistema j existe um programa
que foi instalado pelo atacante anteriormente (backdoor, visto mais adiante) que espera
aquelas informaes que passaram. A maneira de evitar bloquear os pacotes ICMP echo.
O ICMP ainda pode ser fabricado com um tamanho maior do que o normal. Muitos
sistemas no esto preparados para lidar com isso e quebram.

57

3.2.2CAMADADETRANSPORTE

3.2.21 TCP

O TCP, ao estabelecer uma conexo, utiliza o three way handshake. necessrio que
os dois lados da conexo troquem segmentos de sincronizao, contendo os nmeros
seqenciais e confirmaes. Esta caracterstica pode ser explorada pelo atacante. O primeiro
segmento da conexo utiliza o flag de sincronizao SYN. O atacante envia um segmento
SYN com um IP de origem falso (IP spoofing). O receptor ir responder com um SYN+ACK
para o endereo falso que nunca fechar o terceiro passo (ACK). Entretanto os recursos de
memria do receptor permanecem esperando por uma confirmao. O atacante envia centenas
desses segmentos SYN com endereo falso, at que o receptor estoure o seu buffer e no
consiga aceitar mais nenhuma conexo, legtima ou no. O resultado uma negao de
servio e muitas vezes a mquina pra, necessitando ser reiniciada. Este tipo de ataque
chamado de SYN flood e um tipo de negao de servio (DoS). Normalmente este ataque
evitado aumentando-se o buffer, diminuindo o time out das conexes, e prevenindo o IP
spoofing.
Outro ataque ao TCP pertence classe dos ataques do tipo scan. Trata-se do TCP scan
ou SYN scan. O atacante manda o mesmo segmento SYN para iniciar a conexo, porm com
o endereo de origem correto. Determinada porta especificada. Caso a resposta seja um
SYN+ACK, a porta est aberta espera de conexo. Caso contrrio, ela est fechada. O
atacante testa todas as portas do alvo.
O TCP, por fim, poder ter a sua sesso seqestrada num ataque do tipo man-in-themiddle. Um atacante se coloca no meio de uma conexo TCP, derrubando a mquina de
destino com um ataque de negao de servio, respondendo mquina de origem como se
fosse o destino, atravs do IP spoofing e redirecionando o trfego de origem para si prprio.
Tambm h a possibilidade do atacante prever ou adivinhar o sequence number inicial de
uma sesso e introduzir pacotes esperando que o alvo confie e comece a direcionar pacotes a
ele.

3.2.2.2 UDP

58

O UDP um protocolo sem confiabilidade, que no prov o mesmo controle do TCP.


Realizar um IP spoofing em um datagrama UDP muito mais fcil do que no TCP. Ele
enviado uma vez, sem nenhum tipo de confirmao, ou conexo. O UDP pode ser utilizado
tambm em um ataque de scan. Apesar de nem todos os sistemas operacionais
implementarem, a RFC 1122 prev que quando uma mensagem UDP entregue a uma porta
fechada, o sistema retorne uma mensagem ICMP Destination Unreachable. Portanto o
atacante testa as portas do alvo. As que retornarem a mensagem esto fechadas, caso
contrrio, estaro abertas.

3.2.3CAMADADEAPLICAO

Alm do ataque em cima do DNS discutido no captulo anterior, diversos protocolos


de aplicao possuem graves falhas de segurana e permitem explorao. Esta seo procura
tratar os principais de maneira resumida.

3.2.3.1 SMTP e MIME

O SMTP (Simple Mail Transfer Protocol) um dos protocolos mais populares da


Internet. utilizado para mover e-mails na rede. Um SMTP tradicional transfere caracteres de
texto ASCII de 7 bits. Dentre os comandos do SMTP, existe o MAIL FROM. Este comando
informa quem est mandando o e-mail. Novamente como acontece com vrios protocolos, ele
pode sofrer spoofing. No h como saber ao certo quem mandou o e-mail. Esse controle tem
que ser feito por algum mecanismo superior. Um servidor de e-mail, tambm, sempre est
sujeito a um ataque de DoS, recebendo uma quantidade de e-mail acima de sua capacidade.
Outro ataque conhecido de SMTP o spam, que consiste em mandar um e-mail de
propaganda, ou contendo cdigo malicioso para uma quantidade de pessoas muito grande.
Normalmente o atacante invade servidores SMTP, aproveitando-se de alguma falha de
segurana e o faz mandar um e-mail para milhares de endereos simultaneamente, enchendo a
caixa de mensagens dos usurios.
O MIME (Multipurpose Internet Mail Extensions) um protocolo utilizado para

59

executar automaticamente e-mails recebidos e pode ser muito perigoso. Ele sujeito a ataques
de fragmentao semelhante ao IP. Permite a quebra de um e-mail em diversos pedaos que
pode ser utilizado para enganar anti-virus e filtros de contedo. Alguns clientes de e-mail,
como o Outlook Express permitem a refragmentao. Outro perigo a execuo automtica
de programas e o envio de scripts que podem ser maliciosos.

3.2.3.2 RPC e NIS

O protocolo RPC (Remote Procedure Call) muito importante e prov servios


importantes na rede. , tambm, um perigo em potencial. um protocolo que oferece aos
programadores de servios de rede uma linguagem para especificar os nomes e parmetros
dos pontos de entrada externos, traduzindo-os em rotinas internas. Assim a programao fica
facilitada e os programadores podem fazer chamadas facilmente para um servidor remoto
utilizando TCP ou UDP. O perigo est na hora da autenticao. Dos servios que exigem
autenticao, exigem o nmero do usurio e grupo que est chamando e nome da mquina que
est chamando. No h como garantir a autenticidade dessas informaes, a no ser que se
utilize criptografia. Um importante protocolo que utiliza RPC, o NFS (Network File System)
possua essa falha nas primeiras verses, mas j foi corrigido[5].
A maioria dos servidores baseados em RPCs no utilizam uma porta fixa para se
comunicar (a exceo do NFS) e aceitam a porta que o sistema operacional designar. Para
isso, utilizam o rpcbind, ou portmapper. Ele prprio um RPC e intermedia a negociao
entre clientes e servidores. Para contatar um servidor, o cliente primeiro pergunta ao rpcbind
do servidor qual o nmero da porta e o protocolo (TCP ou UDP). Alm dessa funo, o
rpcbind possui algumas facilidades para o atacante. Pode, por exemplo fazer uma chamada
para tirar o registro de um determinado servio, ou informar a todos na rede quais servios
RPC esto rodando (rpcinfo). Entretanto, o maior perigo do rpcbind a capacidade de realizar
chamadas indiretas. Para evitar cabealho extra na determinao de um nmero de porta, o
programa pode pedir que o rpcbind repasse a chamada de RPC diretamente para o servidor. O
problema que a mensagem encaminhada deve conter o endereo de retorno do prprio
rpcbind e no h como o servidor distinguir entre requisies legitimas e no legtimas.
Algumas verses do rpcbind contm seu prprio filtro para evitar esse problema [5].
Outra aplicao perigosa de RPC o NIS (Network Information Service). Ele usado

60

para distribuir importantes informaes de um servidor central para os clientes. Informaes


como arquivos de senha, tabelas de endereos, chaves de criptografia usados para RPC
seguro. Caso o host seja corrompido, essas informaes podem cair em mos erradas. Outro
perigo que ele oferece a possibilidade de redirecionar clientes remotamente para servidores
NIS secundrios, caso o primrio esteja fora do ar.

3.2.3.3 FTP, TELNET e SSH

O FTP um protocolo muito antigo e til para transferncia de arquivos. Ele ainda
muito utilizado na net para disponibilizar documentos, papers, imagens e outras coisas de
utilidade pblica. Tambm utilizado para distribuir programas maliciosos e ilcitos. A
autenticao feita atravs de usurio e senha e ele oferece uma console de linha de comando.
Nas antigas verses do protocolo havia um comando de conexo que apresentava alguns
problemas: o PORT. O cliente escutava em uma porta aleatria e mandava o comando port
para o servidor avisando em qual porta ele deveria se conectar. Ento ele se conectava.
Qualquer firewall que aceitasse o protocolo FTP tinha que prever esse comando. Ento o
atacante podia, por exemplo, distribuir um cdigo malicioso que quando executado fizesse um
port para a sua mquina remota habilitando sua conexo ao alvo, passando pelo firewall. Com
o comando PASV, o cliente passou a fazer a conexo com o servidor. Apesar disso, o ftp ainda
continua sendo um protocolo inseguro, que no utiliza criptografia e h que se tomar diversas
precaues ao se utilizar. Nunca dar permisso de escrita na rea de ftp, usar o arquivo .rhosts
para determinar os hosts confiveis, no deixar cliente remoto algum mudar permisses de
arquivos, evitar deixar o arquivo de senhas na rea de ftp, ficar atento aos bugs de servidor.
O TELNET tambm um protocolo antigo, popular e inseguro. um terminal de
acesso para uma mquina que aceita conexes de vrias mquinas no confiveis e pode ter a
senha facilmente capturada por sniffers. O programa possui possibilidades de ser
compromissado para logar sesses ou entregar usurios e senhas. Portanto, um protocolo
bastante inseguro que raramente utilizado nos dias de hoje, principalmente depois que
surgiu o ssh. Outros protocolos semelhantes como o rlogin, o rsh e o rcp (remote login,
remote shell e remote copy) da arquitetura BSD possuem falhas semelhantes e foram
substitudos pelo ssh.
O SSH um protocolo criado para substituir os programas citados (inclusive ftp). Ele

61

possui exatamente as mesmas funcionalidades e adicionalmente fornece criptografia


assimtrica (discutida mais tarde) aos dados evitando a maioria das falhas. Prov terminal
remoto, cpia de arquivo (scp) e at tunelamento de protocolo X11 (grfico) e outros
protocolos. , atualmente, uma ferramenta essencial para a manuteno e operao das redes e
ser visto com mais detalhes posteriormente. Apesar disso, possui tambm uma pequena
falha. para que possam ser construdos scripts para utilizar o SSH de maneira automtica, ele
possui um arquivo chamado autorized_keys que cadastra chaves que no precisam de
autenticao usurio-senha. Se, de alguma maneira, o atacante conseguir substituir esse
arquivo, ele ser autorizado a se logar no sistema via ssh.

3.2.3.4 X11

O X11 o protocolo dominante para ambientes grficos em sistemas UNIX e utiliza a


rede para comunicar entre aplicaes e dispositivos de entrada e sada, permitindo que estes
estejam localizados em mquinas diferentes. um poder e um perigo muito grande. O
servidor controla todos os dispositivos de interao. As aplicaes fazem chamadas ao
servidor quando querem acionar o usurio. Caso os parmetros estejam corretos, ela conectase ao usurio sem nenhuma interveno do servidor. Portanto todos os dispositivos passam a
ser controlados pela aplicao, o que constitui um perigo enorme. Se o servidor estiver
desprotegido, qualquer atacante de qualquer lugar na net ser capaz de sondar o servidor X11.
A porta do servidor normalmente a 6000 ou 6000 e pouco. Para que no acontea a invaso
o protocolo prov uma srie de protees. A primeira a autenticao baseada no endereo do
host, guardado em um arquivo. Obviamente, facilmente burlada pelo spoofing ou seqestro de
sesso. A segunda o magic cookie, um byte secreto compartilhado por aplicao e servidor.
Apenas se a aplicao souber esse byte estar apta a operar. Todavia, ele pode ser roubado na
rede. O terceiro mecanismo um desafio/resposta utilizando a criptografia. Entretanto a chave
tambm pode ser roubada na rede, caso no haja um mtodo forte de autenticao. Por isso, a
melhor maneira de utilizao do protocolo X11 mesmo mant-lo restrito apenas mquina
local, ou se necessrio utilizar o tunelamento atravs do IPsec ou ssh para um host remoto [5].

3.2.3.5 WWW, HTTP e HTTPS

62

A Internet, muitas vezes, confundida com seu conjunto de aplicaes e protocolos


mais populares, o WWW (World Wide Web). Seu protocolo mais utilizado o HTTP
(Hipertext Transfer Protocol). A funo do HTTP de transferir um bloco de informaes e
uma descrio de tipo de dados para o cliente. O browser o software cliente responsvel por
interpretar a informao e apresentar ao usurio da maneira correta. O grande problema que
cdigos executveis so tipos vlidos e alguns browsers so configurados para interpret-los e
process-los automaticamente. Em conseqncia, o atacante pode utilizar cdigos maliciosos
para atacar a vtima[9]. Normalmente o cliente contata um servidor e manda uma requisio.
A resposta pode ser um arquivo ou um apontamento para outro servidor. Quando a resposta
um arquivo, alm do perigo do script malicioso discutido, ele pode conter tags que especifica
o programa a ser utilizado para processar o documento. Isso pode ser utilizado tambm pelo
atacante de forma maliciosa. O HTTP possui a caracterstica de no possuir estados. Quer
dizer que cada requisio envolve uma conexo separada com o servidor. Depois que o
documento foi transmitido, a conexo cai. Para estabelecer uma sesso o HTTP precisa de
outros mtodos de saber o estado da sesso. Ele pode utilizar um GET, que passa o parmetro
de estado atravs da barra de endereo do browser ou um POST, que passa o parmetro de
maneira escondida. Ainda pode utilizar os cookies, arquivos que so criados na mquina do
cliente para guardar o estado. De qualquer maneira, perigoso que o servidor acredite que
esses estados que esto na mquina do cliente representem o verdadeiro estado da sesso, pois
eles podem ser facilmente modificados. Outro cuidado que deve-se ter no servidor deixar as
informaes importantes em um host diferente do servidor. Muitas vezes o cliente, ao fazer
uma requisio ao servidor passa informaes a um programa que roda no prprio servidor e
que processa a informao. Algumas vezes esses programas no so confiveis e possuem
furos de segurana.
A maneira mais segura de realizar uma sesso aplicando a criptografia. Para isso,
existe um protocolo desenvolvido pela Netscape Communications chamado de SSL (Secure
Socket Layer). Ele opera na camada de transporte e independente de protocolo de aplicao.
O uso mais comum o HTTPS, utilizado para criptografar o trfego HTTP. Assim como o
SSH, utiliza algoritmos de chave pblica, ou assimtricos em conjunto com a criptografia
simtrica, que sero mais discutidos adiante.
Assim como todos os protocolos apresentados nessa seo, existem diversos outros
protocolos de aplicao e todos eles possuem alguma falha de segurana ou alguma

63

possibilidade de serem utilizado maliciosamente. Resta ao administrador conhecer


minimamente essas possibilidades para manter seu servio funcionando de forma segura.

3.3ATAQUES

3.3.1ENGENHARIASOCIAL

O ataque de engenharia social realizado em cima de pessoas, normalmente


funcionrios despreparados de uma empresa que pressionados por algum que aparenta ser o
que no entregam informaes importantes ou tomam aes induzidas por esse algum, o
atacante. Pode acontecer tambm de forma passiva atravs da espionagem, ou por erros ou
omisses dos funcionrios.
Na verdade o ataque procura controlar o elemento humano da segurana e tem como
grande mestre o famoso hacker Kevin Mitnick, que conseguiu resultados impressionantes com
sua engenharia social. As tcnicas vo desde remexer o lixo de uma empresa, procura de
manuais, documentos, memorandos, desenhos at a persuaso de pessoas por meio de
telefonemas, encontros, mentiras, etc. Sempre no intuito de agregar informaes ao seu
objetivo: invadir o sistema.

3.3.2ROUBODESENHA

Descobrir a senha a maneira mais fcil de entrar no computador pela porta da


frente[5]. Normalmente os sistemas so baseados em usurio e senha para acesso. O atacante
tentar usar todas as senhas que forem possveis para determinado usurio at conseguir
adivinhar a senha correta de acesso. Esses ataques so conhecidos como ataques de fora
bruta e existem softwares especializados nesse tipo de ataque que utilizam um dicionrio de
possveis senhas para realiz-lo. Uma maneira de evit-lo construir senhas fortes, evitando
partes do nome, data de nascimento, nome de pessoas queridas e outras informaes que

64

podem ser descobertas atravs de engenharia social. Recomenda-se tambm que se construa
senhas grandes utilizando caracteres numricos, alfanumricos e especiais alternadamente.
Outra maneira desabilitar logins conhecidos como: guest, admin, root, primeiro nome do
usurio. Com isso o atacante no saber qual usurio atacar. E configurar o sistema para que
bloqueie o usurio aps determinado nmero de tentativas falhas de login. Um nmero
ilimitado de tentativas oferece um nmero ilimitado de chances ao atacante. O sistema
tambm dever registrar o nmero de tentativas de login com insucesso, para que o usurio
saiba que foi atacado. Normalmente, quando h essa proteo de bloqueio aps tentativas
falhas, a estratgia do atacante capturar de alguma maneira o arquivo de senha da vtima e
realizar o ataque de fora bruta offline.
A partir do momento em que o atacante consegue acesso a um sistema a partir de uma
senha descoberta, fica muito mais fcil de acessar outras mquinas e outros sistemas.
Normalmente as pessoas reutilizam as senhas em vrias mquinas e sistemas. Outra estratgia
do atacante aps invadir uma mquina instalar um terminal de sesso legtimo utilizando
qualquer senha que queira para o login.

3.3.3LEVANTAMENTODOSDADOS

Ao decidir atacar uma rede, ou um host, o primeiro passo do atacante o levantamento


dos dados. A engenharia social, apresentada anteriormente, auxilia no levantamento de dados
subjetivos que podero ser teis na reconstruo da estrutura da vtima. Um levantamento
objetivo pode ser feito atravs do scanner da rede. Consiste em utilizar tcnicas variadas
visando descobrir que tipo de mquinas h na rede, que tipo de sistemas operacionais esto
rodando, que tipo de servios esto habilitados, etc.

3.3.3.1 footprinting

O footprinting o mtodo utilizado para identificar os alvos de um ataque de rede. o


processo de levantamento das informaes de uma rede atravs de fontes disponveis
publicamente. O objetivo criar um mapa identificando sistemas e aplicaes que podero ser
vitimas de um ataque.

65

Para realizar o footprinting, o atacante visita o site da empresa na busca de


informaes teis. Utiliza mecanismos de pesquisa na Internet para encontrar informaes
valiosas. Utiliza o whois para encontrar informaes sobre o domnio da empresa e os
endereos IPs. Utiliza a ferramenta dig ou nslookup para fazer consultas de DNS sobre a
empresa. Utiliza o ping (ICMP) para determinar a presena de hosts no range de
endereamento vlido da empresa. Utiliza a ferramenta tracert para determinar os hops antes
de chegar no endereo, tentando mapear os roteadores no caminho. Utiliza o nmap para fazer
o port scanner e o fingerprint dos endereos[10].

3.3.3.2 fingerprinting

O fingerprinting a tcnica utilizada para determinar informaes sobre o produto e a


verso de sistemas operacionais e aplicaes. Cada plataforma e verso possuem um jeito
prprio e nico de responder a determinadas requisies. Sendo assim, a resposta pode ser
considerada como uma impresso digital do sistema. O atacante, com base na informao
sobre produto e verso procura numa base de dados se h alguma vulnerabilidade conhecida
naquele software. No fingerprint ativo, o atacante envia diferentes tipos de pacotes para o alvo
e observa a resposta. no passivo, ele analisa o trfego normal e consegue determinar qual o
sistema.
O atacante pode realizar o fingerprinting mandando pacotes de requisies normais
para portas comuns e observando a resposta. Funciona com HTTP, FTP, SMTP, telnet. Ou
ento mandando dados invlidos para portas comuns e observando a mensagem de erro, que
normalmente entregam o produto ou a verso. Esses dados invlidos podem ser caracteres
especiais: *, ~, ou pacotes IP, TCP ou ICMP invlidos[10].

3.3.3.3 port scanning

O scanner de portas consiste em uma srie de tcnicas utilizadas para saber quais
servios e portas esto disponveis em um host esperando uma conexo. Por exemplo, se o
atacante descobre que a porta 80 est aberta, provavelmente este host tem um servidor Web
rodando, pois a porta 80 o padro TCP para escutar requisies do protocolo HTTP. Uma
vez que o atacante sabe quais servios esto disponveis, ele procurar saber dos produtos e

66

verses utilizados e das contas de usurio do sistema em busca de alguma vulnerabilidade


conhecida. Existem diversos tipos de scanners diferentes. As ferramenta mais conhecidas para
realiz-los so nmap, Nessus, SATAN.
Como j foi discutido anteriormente, o protocolo TCP permite um tipo de scanner
chamado de SYN scan ou TCP scan. Consiste em mandar segmentos TCP SYN em todas as
portas (0 a 65.535) de um host e esperar pela resposta. Se vier um SYN+ACK, a porta est
aberta. Caso contrrio, est fechada.
J foi discutido tambm o UDP scan, que consiste em mandar datagramas UDP vazios
para todas as portas e esperar a mensagem ICMP Destination Unreachable.
Outra possibilidade utilizar o flag FIN do TCP. No FIN scan, o atacante manda para
todo o range de portas do host um segmento TCP com o flag FIN, para encerrar a conexo. Se
a porta j estiver fechada, o atacante receber um segmento TCP com o flag RST como
resposta. Se a porta estiver aberta, o segmento FIN ser descartado.
O scan sweep realizado quando o atacante varre um range de endereos IPs na busca
de uma porta especfica aberta, por exemplo a porta 23 do telnet.
O spoofed portcanning fazer um scan utilizando endereo IP de origem falso e
capturar o trfego de resposta. Entretanto ele s funciona se o alvo, o atacante e o endereo
falso forem do mesmo segmento de rede. Ele pode ser til contra IDSs (Intrusion Detection
Systems) que permitem que uma determinada mquina possa fazer um scan sem gerar
alerta[7].
Existe ainda uma possibilidade de utilizar o FTP remoto para realizar o scanner,
mascarando assim a origem do scan. Essa tcnica chamada FTP bounce.
H ainda um tipo de scan especial, que consiste em capturar todo o trfego da rede e
analis-lo para determinar quais portas e hosts esto disponveis. Esse scan exige que o
atacante esteja no mesmo segmento do alvo e a placa de rede esteja em modo promscuo. Uma
ferramenta muito conhecida e especializada nessa captura o tcpdump, que ser explorada
mais tarde.

3.3.4EXPLORAOREMOTADEVULNERABILIDADES

3.3.4.1 exploits

67

As falhas de segurana nos protocolos vistas anteriormente e falhas de segurana em


aplicaes podem permitir que o atacante consiga invadir a mquina alvo. Ele poder
conseguir um acesso privilegiado, ou a execuo de algum cdigo malicioso. Essas falhas so
comumente chamadas de vulnerabilidades do sistema. Todos os dias vulnerabilidades so
descobertas e divulgadas na Internet nos mais diversos softwares. Assim que surge a notcia
da vulnerabilidade, pessoas mal intencionadas escrevem um cdigo especialmente para
explorar essas vulnerabilidades. Normalmente esse cdigo escrito em linguagem C e
chamado de exploit. Para no serem afetados por esses exploits, os usurios e administradores
devem estar atentos s vulnerabilidades divulgadas e devem aplicar os patchs ou as
atualizaes que so recomendados e consertam as vulnerabilidades. Entretanto, existem
casos em que as pessoas mal intencionadas so as primeiras a descobrir uma vulnerabilidade.
Elas, ento, criam o exploit antes da vulnerabilidade ser divulgada. So os chamados zero
day exploits.
Alm dos cdigos, a explorao de vulnerabilidades tambm pode ser feita atravs de
ferramentas. Por exemplo, existem ferramentas especializadas em DoS, para tentar derrubar o
servidor ou ferramentas de fora bruta para tentar quebrar a senha de administrador.
Uma vez que o atacante comprometeu o sistema alvo e conseguiu um acesso
privilegiado ao computador, atravs da explorao de vulnerabilidades, seu prximo passo
instalar um rootkit. Uma srie de ferramentas e scripts para automatizar algumas aes.
Dentre elas, a instalao de backdoors, ou porta dos fundos, uma porta aberta que permita
que o atacante volte mquina sem que o usurio perceba. Alm disso, esses rootkits instalam
capturadores de teclado, ferramentas de administrao remota, sniffers para capturar trfego e
senhas, substituem arquivos do sistema que permitiriam que os rootkits fossem descobertos e
apagam registros de log do sistema. Existem softwares especializados em descobrir rootkits na
mquina, inclusive kernel rootkits, que se escondem no kernel do sistema operacional.

3.3.4.2 backdoors

O mecanismo de backdoor foi originalmente criado por programadores para permitilos um acesso especial a seus programas para que eles pudessem consertar o cdigo quando
houvesse um bug. Muitas vezes era colocado de maneira maliciosa para conseguir

68

informaes privilegiadas do usurio. Mais tarde, os hackers incorporaram o termo


backdoor definindo como qualquer mecanismo que permita um acesso posterior de maneira
transparente a um sistema comprometido, sem que ele precise explorar novamente a
vulnerabilidade para obter acesso como da primeira vez. Se o dono do sistema descobrir a
vulnerabilidade ou a intruso, mas no descobrir o backdoor, o atacante ainda ter o acesso
mquina. Uma ferramenta bastante utilizada como backdoor o netcat[10].

3.3.4.3 vrus

Os vrus so programas que conseguem se replicar, atacar outros programas e realizar


aes maliciosas e no solicitadas como falha de sistema ou perda de dados. O vrus pode
entrar no computador atravs de um disquete infectado, ou um anexo de e-mail, ou um arquivo
baixado da Internet.
Os vrus podem ser classificados em vrus de setor de boot, de arquivo, de macro,
mltiplo e polimrfico. Os vrus de setor de boot infectam a MBR (master boot record) do
HD. Eles so carregados na memria a cada vez que o sistema iniciado. Os vrus de arquivo
se anexam a programas executveis e so carregados toda vez que esses programas rodam. Os
vrus de macro so escritos em linguagem macro, afetando aplicaes como Microsoft Word.
Os vrus mltiplos so uma combinao dos de setor de boot e os de arquivo. Os vrus
polimrficos podem ter a forma de qualquer um dos anteriores, porm eles tm a capacidade
de realizar uma mutao em seus prprios cdigos para tornar mais difcil a deteco.
A maneira que se tem de evitar os vrus ter um software anti-virus baseado em
assinatura instalado, evitar abrir anexos de e-mail quando a origem no for confivel (e foi
visto o quo fcil forjar uma origem) e fazer backups do sistema continuamente. Quando um
vrus descoberto em um computador, necessrio isol-lo da rede, reinstal-lo e procurar
pelo vrus em outras mquinas.

3.3.4.4 worms

Worms podem danificar uma mquina como se fosse um vrus, porm eles so mais
poderosos. Eles tm a capacidade de se propagar para outros sistemas e mquinas na rede.
Alguns simplesmente se replicam gastando a memria e a banda do usurio. Outros contm

69

cdigo de vrus e podem corromper arquivos, roubar documentos, enviar e-mails ou deixar o
sistema inoperante. Eles so como exploits automticos viajando na rede, prontos a achar uma
mquina vulnervel.
Para se replicar, eles utilizam diversas tcnicas como: mandar cpia de si mesmo
atravs de e-mail para todas as pessoas cadastradas no livro de endereo do usurio; execuo
remota, utilizando explorao de vulnerabilidades em protocolos ou aplicaes. Um exemplo
muito comum a explorao do buffer overflow, um bug de estouro de memria que pode
derrubar a aplicao e fornecer um acesso privilegiado ou execuo de cdigo; login remoto
utilizando as tentativas de adivinhar a senha, j discutidas.

3.3.4.5 trojans

Um trojan, ou cavalo de tria, como conhecido, tambm um programa escrito para


causar danos ao usurio, como um vrus ou um worm. A diferena que geralmente ele
transparente ao usurio e, disfarando-se como um programa legtimo, no tem efeitos bvios
como corrupo de arquivos inoperncia do sistema. Alm disso, normalmente ele no se
replica.
Os trojans normalmente so arquivos executveis que fornecem controle do sistema ou
roubam informaes. Podem chegar por e-mail, ou serem implantados por um atacante ao
conseguir invadir um sistema, ou mesmo vir junto com um arquivo baixado na Internet.
Normalmente, ele vem camuflado. O usurio executa um jogo, ou assiste uma apresentao de
fotos, v um vdeo enquanto que o trojan instalado em sua mquina. Quando ele for executar
determinada aplicao, o trojan entra em ao e cumpre o seu propsito.
Existem diferentes tipos de trojan: os ladres de senha procuram por senhas
armazenadas no sistema e as mandam por e-mail ao atacante. Podem tambm chamar uma
tela de login falsa quando determinado programa executado para que o usurio poste sua
senha e ela seja capturada e mandada ao atacante. o caso, por exemplo, da maioria dos
trojans que roubam senhas de banco; os keystroke loggers, ou capturadores de teclado
capturam tudo que o usurio digita e manda por e-mail ao atacante; as ferramentas de
administrao remota permitem que os atacantes tenham controle total sobre o sistema e
faam o que quiserem remotamente; finalmente os zombies ou zumbis, permitem que o
atacante realize um ataque de DDoS, que ser detalhado adiante[10].

70

No fcil detectar a presena de um trojan. Pode ser que monitorando as portas do


sistema, com uma ferramenta como o netstat, ele possa ser detectado. Ou fazendo um
inventrio de todos os executveis e comparando com uma lista feita previamente, quando o
sistema estava limpo. O melhor a se fazer ao descobrir um cavalo de tria reinstalar o
sistema e recuperar o backup.

3.3.4.6 adwares e spywares

Vrus, worms e trojans so tipos de programas com o nome genrico de malware. H


ainda dois tipos de malware que causam menos danos que os anteriores: os adwares e
spywares. Na verdade os spywares so um tipo de adware.
O adware um software que se instala de forma transparente e sem o conhecimento do
usurio, normalmente quando ele baixa e instala softwares da Internet. Depois de instalado,
ele mostra propagandas enquanto o usurio navega na Internet.
Alm de mostrar propagandas, o adware pode monitorar os hbitos de navegao do
usurio mandando essas informaes para um terceiro, por exemplo uma empresa de
marketing que a partir dessas informaes constri as propagandas. Nesta situao, ele
chamado de spyware. Essas informaes normalmente no identificam o usurio, porm esses
softwares so vistos por muitos como invasores de privacidade, alm de gastar a banda de
Internet do usurio para mandar as informaes.
Existem softwares especializados em achar e remover esses malwares do computador.
Normalmente os softwares de anti-virus no se preocupam com eles.

3.3.5NEGAODESERVIO

At agora, diversas vezes no captulo foi citado o ataque de DoS (denial of service) ou
negao de servio. Nessa seo esse ataque ser mais detalhado e alguns exemplos
apresentados.
O DoS explora uma vulnerabilidade do software ou do protocolo com o objetivo de
parar ou degradar a qualidade de um servio na Internet. Normalmente o endereo de origem
de um ataque desse tipo falso (spoofing). As estratgias de DoS so diversas, entre elas:

71

inundar a rede com tanto trfego quanto for possvel para que o alvo pare de funcionar;
inundar a rede com um nmero absurdo de requisies de tal maneira que o servidor no
consiga mais atender as requisies legtimas; interromper a comunicao entre o alvo e os
clientes legtimos de alguma maneira.

3.3.5.1 derrubando um link

Realizar um ataque de DoS em um link de rede muito simples. O atacante s precisa


gerar mais pacotes do que o link pode suportar. Apenas o destino do pacote precisa estar
correto. Os outros campos podem ser aleatrios. O ataque pode partir de apenas um host
desde que o link dele seja maior do que o do alvo, ou de vrios hosts, de maneira coordenada
no que chamado DDoS (distributed denial of service).

3.3.5.2 DoS de fora bruta

O ataque smurf, discutido na seo 3.2.1.3 um ataque do tipo DoS de fora bruta. Ele
manda um ICMP echo request para um endereo de broadcast e faz o spoofing da origem para
o endereo do alvo. Todas as mquinas que responderem, respondero para o alvo e se a banda
disponvel for grande, afetar os servios da mquina alvo.
O ataque Echo-Chargen utiliza duas portas UDP: 7 (echo) e 19 (chargen). O echo,
quando recebe um pacote, ecoa de volta um payload. O chargen quando recebe um pacote
devolve com uma string de caracteres pseudo-aleatrios. A estratgia enviar datagramas da
porta echo para a porta chargen de vrios hosts na esperana que eles devolvam os datagramas
para a porta echo e comece um ping-pong resultando em consumo de banda e cpu.

3.3.5.3 DoS sofisticados

O primeiro ataque de DoS que se tem notcia o ataque TCP SYN apresentado na
seo 3.3.3.2. Ele se baseia nas caractersticas de estabelecimento de conexo do protocolo
TCP.
O ataque teardrop tira proveito da fragmentao do protocolo IP. Por exemplo, chega
um fragmento de 20 octetos com ID 2 e fragment offset 0. Depois chega outro fragmento de 4

72

octetos com o mesmo ID 2 e fragment offset 10. O primeiro fragmento gastou 20 octetos do
datagrama, ento o fragment offset do segundo fragmento teria que comear no 21. O sistema
operacional ento tenta retroceder de 20 para 10, calculando como nmero negativo. Os
nmeros negativos no sistema operacional podem ser traduzidos para nmeros positivos muito
grandes invadindo a rea de memria de algum outro programa. Feito isso algumas vezes, o
sistema ser desativado. A seo 3.3.3.1 mostra tambm um ataque de fragmentao para
negao de servio.
O ataque ping of death ou ping da morte consiste em mandar um pacote ICMP grande
demais, ou seja, maior do que 64KB. Esse datagrama ser fragmentado em muitas partes. O
truque utilizar essa fragmentao de modo em que o ltimo fragmento ainda contenha um
fragment offset vlido (menor que 65.535), mas um tamanho que faa o datagrama ultrapassar
os 65.535. Como os sistemas normalmente no processam o pacote at que tenham recebido
todos os fragmentos e tentado remont-los, pode haver um estouro das variveis internas de 16
bits causando congelamento do sistema, dump de kernel, reinicializaes, etc[15].

3.3.5.4 negao de servio distribuda

O ataque de DoS clssico um ataque de host para host. Normalmente um host mais
poderoso gera um trfego grande para derrubar o outro host. O DDoS (distributed denial of
service) realiza esse ataque de maneira ampliada. Muitos hosts coordenadamente atacam o
alvo, chegando-se muito mais facilmente condio de negao de servio da vtima. O
atacante s vezes no possui tantas mquinas sua disposio. Ento, ele pega emprestado
mquinas de usurios comuns, transformando-as em zumbis e as utiliza no ataque.

73

A implementao de um DDoS simples. Primeiramente o atacante roda ferramentas


automticas para encontrar hosts vulnerveis na rede. Uma vez encontrado, o host
comprometido e o atacante instala, por exemplo um trojan DDoS transformando o host em um
zumbi que pode ser controlado remotamente por uma estao mestre. Algumas ferramentas
populares de DDoS so a TFN, TFN2K, Trino e Stacheldraht, disponveis na Internet. Uma
vez que o atacante esteja com uma quantidade razovel de zumbis, ele manda um sinal da
estao mestre para comear o ataque contra o alvo. O ataque , normalmente um SYN flood,
ou uma inundao de ICMP, ou outro tipo simples de DoS, mas o fato de centenas ou milhares
de zumbis serem usados no ataque cria uma massa muito grande de trfego que pode
rapidamente consumir todos os recursos da mquina e a tornar indisponvel na Internet[10].
Os zumbis utilizados no ataque de DDoS tambm podem servir para outros propsitos.
Muitos atacantes criam verdadeiras redes de robs, ou zumbis. Um dos objetivos o ataque de
DDoS, mas ela pode servir tambm para um scanning distribudo, ou qualquer outra atividade
ilcita na qual o atacante no queira utilizar sua prpria mquina. Os trojans e especialmente
os worms so utilizados na criao desses robs e os comandos da comunicao entre mestre
e robs so normalmente encriptados.

3.3.6MANINTHEMIDDLE

Alguns livros de criptografia dividem os ataques em dois tipos. O ataque passivo e o


ataque ativo. O ataque passivo o ataque no qual captura-se o trfego para anlise. O ataque
ativo engloba a maioria dos tipos que foram discutidos, como spoofing, denial of service,
explorao.
Supondo que haja um trfego normal entre dois hosts e um atacante consiga se
posicionar exatamente no meio desses dois hosts. Teoricamente, ele ter a possibilidade de
interromper esse trfego, de interceptar passivamente esse trfego, de modificar os dados
passantes de uma mquina para outra, ou fabricar um trfego falso para uma das mquinas. O
ataque man-in-the-middle utiliza todas essas premissas e exige que o atacante esteja no
mesmo canal de comunicao de ambas as partes e consiga capturar todo o trfego.
Como foi comentado na seo 3.3.3.2, o atacante tentar seqestrar a sesso TCP,
derrubando a mquina de destino atravs de um DoS e respondendo origem como se fosse o

74

destino. Tambm existe o caso do atacante estar no meio e manter a sesso respondendo a
ambas as partes da conexo, o que muito mais difcil de se realizar, pois a quantidade de
pacotes duplicados e de confirmao ser muito grande e os alvos podero detectar o ataque.
Existem ferramentas no mercado especializadas no man-in-the-middle para seqestro do TCP:
Hunt, Juggernaut, IP-Watcher.
O man-in-the-middle tambm pode ser utilizado contra o protocolo ARP. O atacante
direcionar as mensagens para o seu endereo fsico MAC, como se esse fosse o endereo
legtimo de destino.
Outro protocolo sujeito ao ataque o protocolo de criptografia Diffie-Hellman (DH).
Nesse tipo de ataque, a origem pede uma chave pblica ao destino para poder cifrar a
mensagem. O atacante intercepta essa requisio e manda uma chave pblica prpria se
fazendo de destino. A origem, ento, troca a chave de sesso com o atacante e todas as
mensagens cifradas podero ser lidas pelo atacante. Ao mesmo tempo, o atacante se mascara
como origem e requisita uma chave pblica para o destino. Muda a chave de sesso e se
comunica de maneira criptografada tambm com o destino.

3.4PROTEO

Os mecanismos de proteo para uma mquina ou para uma rede so muitos e


procuram cobrir os mais diversos tipos de vulnerabilidades possveis, se possvel de maneira
preventiva, evitando o ataque antes que acontea. Essa seo objetiva dar uma passada pela
maioria desses dispositivos. Isso porque impossvel esgotar cada um dos assuntos a serem
tratados a seguir devido complexidade dos mesmos.
Os assuntos que sero discutidos, a princpio so: criptografia; autenticao,
autorizao e auditoria; segurana de host; ferramentas especializadas (anti-virus, anti-spam,
anti-trojan, etc); penetration test; firewall e, por fim, sistemas de deteco de intruso. O
ltimo mecanismo mais diretamente ligado ao assunto da dissertao e ser mais
cuidadosamente detalhado com o objetivo de subsidiar o leitor para os prximos captulos da
dissertao.

75

3.4.1CRIPTOGRAFIA

A criptografia uma cincia matemtica que tem como objetivo descobrir caminhos
de assegurar a privacidade da comunicao entre partes. Sua histria longa: em 500 aC
Hebreu utilizou substituio reversa de letras do alfabeto para escrever no Book of Jeremiah.
O uso militar sempre foi muito comum, Julio Csar utilizava um algoritmo de deslocamento
de caracteres para criptografar mensagens militares. Na segunda guerra, a Alemanha utilizava
uma mquina de criptografia, Enigma. Os aliados conseguiram quebrar a criptografia de
Enigma contribuindo com sua vitria sobre o nazismo[10].
Justamente com o fim da guerra e o surgimento dos computadores, a criptografia
avanou muito e surgiram os sistemas de criptografia modernos, os cripto-sistemas. So
algoritmos passo a passo que utilizam matemtica complexa e objetivam transformar texto
claro em texto cifrado, ou seja, humanamente incompreensvel.
Um cripto-sistema obedece a uma metodologia, que inclui um ou mais algoritmos
matemticos de criptografia, chaves de criptografia, um sistema de gerenciamento de chaves,
o texto original e o texto cifrado. A metodologia encarregada de cifrar o texto original
utilizando uma chave e do outro lado da comunicao decifr-lo utilizando uma chave que
pode ou no ser a mesma.
A metodologia baseada em chaves combina um algoritmo de criptografia com uma
chave para criar o texto cifrado. A segurana maior reside no segredo da chave de criptografia
mais do que no segredo do algoritmo. O grande problema como criar e mover as chaves em
um canal de comunicao inseguro. Outro problema a autenticao. Como saber que quem
criou a chave e cifrou o texto realmente quem est dizendo ser. Existem dois diferentes tipos
de metodologia que implementam uma metodologia baseada em chave: simtrica ou chave
privada; assimtrica ou chave pblica.

3.4.1.1 Criptografia simtrica

A criptografia simtrica a metodologia na qual origem e destino utilizam a mesma


chave criptogrfica. Adicionalmente, utilizada a funo hash para garantir a integridade da
mensagem.

76

A funo hash ao ser aplicada transforma, matematicamente, uma mensagem de


qualquer tamanho em uma pequena mensagem de tamanho definido. A mensagem resultante
chamada de assinatura digital da mensagem original, pois apenas aquela mensagem original
ir resultar na pequena mensagem resultante (embora tenha sido provado a possibilidade de
fabricar a mensagem hash resultante atravs de outras mensagens originais no famoso
algoritmo de hash MD5).
A origem aplica a funo hash na mensagem, pega o resultado e anexa na mensagem
original. Cifra tudo junto com a chave criptogrfica e manda a mensagem cifrada. O destino
recebe a mensagem, decifra com a mesma chave criptogrfica que j era conhecida e pode ver
o texto original e o hash. Ento ele aplica o mesmo algoritmo de hash ao texto original e
compara com o hash recebido. Sendo igual, ele garante que a mensagem no foi modificada.
Em nenhum momento houve troca da chave pelo canal inseguro, nem to pouco o
destino questionou se realmente a origem confivel.
Alguns dos algoritmos mais utilizados de criptografia simtrica so: DES, 3DES,
IDEA, RC5, blowfish. De hash so: MD5, SHA.

3.4.1.2 Criptografia assimtrica

A criptografia assimtrica utiliza um par de chaves para realizar o processo cifragemdecifragem. Esse par criado em conjunto, sendo que uma chave utilizada para cifrar
enquanto que a outra utilizada para decifrar. A chave privada s conhecida por seu prprio
dono. A chave pblica de domnio pblico e distribuda por uma entidade confivel, a AC
(Autoridade Certificadora). As chaves so criadas e distribudas em um formato padro,
certificado digital X.509. A arquitetura de funcionamento da AC conhecida como PKI
(Public Key Infrastructure).
Esse par de chaves criado na AC e distribudo aos destinatrios. Normalmente, o
tamanho dessas chaves precisa ser muito maior do que a chave simtrica, pois elas sero alvo
de ataques de fora bruta tentando quebr-las. A chave simtrica pequena pois muda
constantemente, j o par de chaves assimtricas no necessita mudar. A metodologia
assimtrica utiliza, na verdade, ambas as criptogafias: simtrica e assimtrica. Sendo a chave
simtrica menor, ela utilizada para cifrar a mensagem. O par assimtrico utilizado apenas
para cifrar a chave simtrica do momento.

77

O primeiro passo da metodologia assimtrica criar e distribuir as chaves assimtricas


de forma segura. A chave privada entregue ao seu dono pela AC. A chave pblica
armazenada em um banco de dados na AC. A AC tem que ser confivel. Se ela estiver
comprometida, toda a estrutura estar tambm. O transmissor cria uma assinatura digital do
texto, aplicando uma funo hash e criptografa essa assinatura utilizando a sua chave privada,
anexando o resultado ao texto original. O transmissor cria uma chave simtrica, chamada de
chave de sesso, que ser utilizada apenas para essa transmisso e cifra o texto resultante da
operao anterior. Ento, ele pede AC a chave pblica do receptor (esse passo vulnervel
ao ataque man-in-the-middle). A chave pblica do receptor assinada digitalmente pela AC,
ou seja, a AC utiliza sua chave privada para criptografar a chave pblica do receptor,
garantindo que foi ela mesma quem cifrou. Os dois lados precisam previamente ter a chave
pblica da AC. O transmissor decifra a chave pblica do receptor com a chave pblica da AC
e utiliza a chave pblica do receptor para cifrar a chave de sesso. O transmissor anexa a chave
de sesso, cifrada com a chave pblica do receptor, ao texto resultante e envia. O receptor
recebe a mensagem, desanexa a chave de sesso e, utilizando sua chave privada, decifra a
chave de sesso. Com a chave de sesso ele decifra o texto resultante. Aps isso, ele desanexa
o hash do texto original. Decifra o hash cifrado utilizando a chave pblica do transmissor
(antes ele pede a chave pblica do transmissor AC). Agora que ele tem o texto original e o
hash resultante, ele aplica a funo hash ao texto original e compara as duas funes. Sendo
iguais, a integridade da mensagem est garantida.
A grande desvantagem desse sistema est na confiana cega se precisa ter na AC. Se
um atacante conseguir domin-la, tudo est perdido. Outra grande preocupao que
permanece como distribuir o par de chaves assimtrico. Ele gerado na AC e precisa ser
entregue ao dono. A maneira mais segura que h a entrega pessoal, cara a cara. Porm,
muitas vezes pela facilidade, ela feita pela rede interna da empresa, assumindo-se que ela
segura.
Alguns dos algoritmos mais utilizados de criptografia assimtrica so o RSA, o ECC e
o ElGammal.

3.4.2AAA(AUTENTICAO,AUTORIZAOEAUDITORIA)

78

Como j foi citado na introduo do captulo, o AAA constitui um ponto chave na


segurana de uma rede. A autenticao a primeira linha de defesa de qualquer rede e previne
a entrada de usurios no autorizados ao sistema. Ela possui diversos desafios como coletar os
dados de autenticao, transmitir os dados seguramente e garantir que a pessoa que est
utilizando o sistema ainda a pessoa que originalmente se autenticou. A autenticao pode ser
baseada em trs princpios que podem ser utilizados sozinhos ou em conjunto: em algo que o
usurio sabe; em algo que o usurio possui; em algo que o usurio .
Na autorizao baseada em algo que o usurio sabe, normalmente utiliza-se a
identificao do usurio e uma senha para autenticao. Os problemas relacionados senha j
foram discutidos neste captulo. Outra possibilidade a utilizao de uma chave criptogrfica,
ou de um certificado digital atestado por uma AC confivel assegurando a autenticidade do
usurio.
A autorizao baseada em algo que o usurio possui usualmente utilizada junto com
a autenticao baseada no que o usurio sabe e prov uma segurana a mais para o usurio.
Nesse mtodo, utilizado um dispositivo fsico para autenticao. Esse dispositivo chamado
de token. H os tokens de memria e os smart tokens. Os tokens de memria so dispositivos
que guardam, mas no processam informao. Necessitam de dispositivos especiais de leitura
e escrita para acessarem e escreverem a informao. Essa informao normalmente a
identificao do usurio. Aliado ao token de memria normalmente a autenticao exige uma
senha para evitar que apenas com o roubo do dispositivo fsico o atacante possa ganhar acesso
ao sistema. Esse tipo de dispositivo muito barato e permite um nvel de segurana muito
bom, aliado senha. O ideal unificar esse dispositivo com autenticao fsica de entrada e
sada no ambiente, obrigando o usurio a desconectar da mquina quando for sair. A gerao
de logs tambm facilitada com a posse desse dispositivo. Porm, ele possui algumas
desvantagens como a necessidade de outro dispositivo para leitura e processamento das
informaes. A possvel perda do dispositivo acarretar dor de cabea ao usurio, que
poder ficar descontente com mais essa dificuldade na hora de acessar uma mquina. O
smart token funciona exatamente da mesma maneira, mas possui circuitos integrados a ele que
permitem que ele processe, escreva e leia as informaes.

Permitem tambm o

armazenamento de certificados digitais.Alm disso, permitem a criao de protocolos de


autenticao mais sofisticados como gerao dinmica de senha ou protocolo criptogrfico de
desafio-resposta com gerao de nmeros aleatrios. Esses protocolos criam uma senha por

79

acesso, aumentando a segurana. Exemplos dos tokens de memria so os cartes de banco e


de crdito, dos smart tokens so os smart cards.
Por fim, a autenticao baseada no que o usurio , o mais seguro e mais caro dos
mtodos. So as autenticaes biomtricas, que utilizam uma caracterstica nica da pessoa
para garantir a sua autenticidade. Por exemplo a impresso digital, ou o padro de voz, ou a
letra, a ris, etc.
Em qualquer um desses mtodos o grande desafio da autenticao sua administrao.
Por exemplo, as senhas tm que possuir nmero mnimo, data de expirao, poltica de
revogao. Tem que se designar uma pessoa de confiana responsvel por administrar e
acompanhar as polticas de autenticao de cada sistema. Existe um conceito de autenticao
chamado de single-sign-on que significa autenticar-se apenas uma vez e ter acesso a todos os
sistemas necessrios. Do ponto de vista administrativo maravilhoso. Administrar apenas
uma autenticao e possuir os logs centralizados de cada operao. Do ponto de vista de
segurana, pode ser perigoso. O atacante apenas ter o trabalho de entrar uma vez e
conseguir acesso a todo o sistema. desejvel que o single-sign-on seja feito apenas se o
mtodo de autenticao for o mais seguro possvel (autenticao biomtrica por exemplo).
A autorizao o processo de garantir direito de acesso a determinado recurso. O
processo de autorizao para acesso a recursos em uma rede geralmente dividido em dois
tipos: no baseado em funo, os usurios so divididos em funes lgicas e os membros de
cada funo compartilham os mesmos privilgios; no baseado em recursos, cada recurso
assegurado utilizando-se uma lista de controle de acessos (ACL) que determina qual usurio
pode acessar ao recurso e quais aes ele pode tomar.
A auditoria o processo de anlise de logs de autenticao e autorizao. Caso ocorra
algum problema, tem que estar devidamente registrado quem acessou o sistema, que dia e que
horas acessaram o sistema, quais aes ele tomou, etc. Muitas vezes em sistemas muito
complexos, onde o usurio precisa se autenticar em diversos subsistemas diferentes, a
auditoria se torna uma tarefa extremamente complexa. Para auxiliar nessa anlise, existem as
ferramentas de correlao de logs, que conseguem buscar os registros de diversos sistemas
diferentes e correlacionar, rastreando o caminho realizado pelo usurio.

80

3.4.3SEGURANADEHOST

Algo j foi dito desse assunto na introduo do captulo. A segurana de hosts engloba
assuntos importantes de segurana como o hardening, as ferramentas especializadas (antivirus, anti-spyware, anti-spam, etc) e a poltica de advisory e patch management.

3.4.3.1 hardening

O hardening, ou blindagem do sistema operacional se refere a uma combinao de


tcnicas com o propsito de aumentar a segurana dos hosts contra ataques. As mquinas, que
normalmente necessitam de hardening so aquelas que ficaro expostas diretamente
Internet, ou seja, os bastion hosts. So servidores web, servidores de e-mail, firewalls,
servidores de DNS, etc. O processo de blindagem do sistema depende da plataforma utilizada.
De maneira geral, a blindagem consiste em desabilitar ou remover qualquer
componente que tenha sido instalado por padro, mas que no faa parte da funo do host;
desabilitar servios de rede desnecessrios para simplificar a configurao do servidor e
prover apenas os servios necessrios para os clientes; acrescentar controle de acesso em
componentes crticos do sistema como dlls, arquivos de configurao, registros do sistema e
outros alvos potenciais de ataque; habilitar criptografia de senhas e arquivos importantes que
no venha habilitada por padro; configurar polticas de segurana para restringir acesso a
funes crticas do sistema; utilizar checagem de arquivos de sistema e trilha de processos
para registrar em log qualquer atividade suspeita[10].
A blindagem normalmente realizada por meio de script especfico para cada sistema.
Faz-se uma instalao limpa com o servidor desconectado da rede e aplica-se o script
construdo. O script no uma receita de bolo claramente definida e precisa sempre estar
sendo testado e melhorado do ponto de vista de segurana e de gerenciamento.

3.4.3.2 ferramentas especializadas

So ferramentas que tm o objetivo especfico de achar e acabar com tipos de


softwares ou tipos de ataques especficos. A mais utilizada e tradicional a ferramenta de

81

anti-virus. Mas tambm existe o anti-trojan, o anti-spyware, o anti-spam. De maneira mais


geral, pode-se afirmar que essas ferramentas so tipos especficos de sistemas de deteco de
intruso especialistas e funcionam de maneira idntica aos IDS (Intrusion Detection Systems)
que sero vistos mais tarde.
Em todos os casos, basicamente dois tipos de anlise podem ser feitas isoladamente,
ou em conjunto: deteco baseada em assinatura ou deteco baseada em comportamento. A
deteco baseada em assinatura a tradicional e procura por assinaturas ou partes de cdigo
conhecidas que foram detectadas e catalogadas como maliciosas. uma anlise rpida e
certeira quando se trata de uma ameaa conhecida, porm falha na hora de detectar novas
ameaas, at que a base de assinaturas seja atualizada e a nova ameaa seja nela cadastrada. A
deteco baseada em comportamento utiliza a poltica para indicar qual tipo de
comportamento pode indicar uma ameaa. Se for detectada uma ao que viola uma poltica,
como por exemplo um cdigo tentando acessar o livro de endereos para se replicar, o
software previne e pode at isolar o cdigo numa caixa separada at que o administrador
decida o que fazer com ele. A vantagem desse sistema que ele pode detectar novas ameaas
mesmo que a assinatura delas no seja cadastrada. A grande desvantagem a quantidade de
falso-positivos que podem ocorrer, ou seja, a deteco de cdigos legtimos que se
comportavam como se fossem uma ameaa.

3.4.3.3 advisory e patch management

Os advisories so avisos de seguranas para alertar os usurios sobre vulnerabilidades


que foram descobertas em sistemas operacionais e aplicaes. Os advisories podem ser
publicados por diferentes fontes incluindo agncias governamentais, organizaes pblicas ou
privadas de segurana, ou empresas vendedoras de software. Os avisos tipicamente so
postados em sites ou em listas de e-mail para que os administradores estejam sempre visitando
os sites ou participando da lista para que possam manter seus sistemas atualizados da melhor
maneira possvel. Uma fonte interessante de advisory que mantm avisos e consertos para
vrias plataformas diferentes o CERT/CC (CERT Coordination Center) localizado no
Instituto de Engenharia de Software na Universidade de Carnegie Mellon (www.cert.org).
O patch um cdigo de conserto de software liberado pelos fabricantes ou criadores
do software para corrigir falhas em seus produtos que podem acarretar em perigo ou perda de

82

dados ou falta de confiana no produto. No caso de patchs de segurana, as falhas permitem


que atacantes comprometam o sistema e os patchs so lanados para consertar essas
vulnerabilidades. A aplicao de patchs uma prtica necessria e prioritria a todos que
esto conectados Internet e para auxiliar as companhias a manter seus sistemas atualizados,
o SANS Institute e o FBI trabalham juntos para manter um top-20 das principais
vulnerabilidades de segurana, apontando o caminho para um detalhamento maior e os
possveis patchs. O stio www.sans.org/top20.

3.4.3.4 Teste de penetrao

O penetration testing o processo de emulao de atacantes quando acessam a


segurana de determinadas mquinas ou redes alvos. Normalmente realizado por empresas
grandes, bem consolidadas e confiveis. Elas realizam uma anlise de segurana de redes
atravs de poderosos scanners e posterior exploit de vulnerabilidades. O propsito seguir
exatamente os mesmos passos que o atacante faria e classificar a o alvo de acordo com o risco
que ele est correndo no mundo real. De posse dessa classificao internacionalmente
reconhecida e com um detalhado relatrio das vulnerabilidades e riscos em mos, a empresa
alvo poder planejar de maneira mais precisa seus investimentos em segurana da informao.
Por exemplo na compra de uma soluo de firewall ou IDS.

3.4.4FIREWALL

O firewall a figura central da segurana de uma rede. O mais comum que se pense
no firewall como uma caixa central designada para filtrar o trfego da Internet. No deixa de
ser verdade. Entretanto, o firewall existe em diversas outras formas. Um roteador que faz filtro
de pacotes, um switch IP, um filtro incorporado ao kernel do UNIX ou do Windows. Quer
dizer, um firewall qualquer dispositivo, software, arranjo ou equipamento que consiga filtrar
determinado trfego. Dependendo do tipo de aplicao e utilizao, uma rede vai precisar de
vrios tipos de firewalls diferentes em vrios pontos estratgicos.
Os firewalls conseguem filtrar em diferentes nveis na pilha TCP/IP e so classificados
por essa caracterstica. Existem quatro principais categorias: filtro de pacotes; gateway de

83

circuito; gateway de aplicao; e stateful inspection. Cada um desses caracterizado pelo


nvel do protocolo que ele controla. Porm, na prtica, todos eles necessitam de informaes
dos outros protocolos. Na verdade, eles costumam funcionar em conjunto e no de forma
isolada. Firewalls comerciais, como por exemplo o Check Point, utilizam a combinao dos
quatro tipos em conjunto e adicionalmente utilizam tecnologias proprietrias como malicious
code protector, provendo um altssimo nvel de defesa.
desejvel que toda rede possua um firewall no qual todo o trfego da entrada para a
sada, ou vice-versa, precise necessariamente passar pelo firewall, ou seja, o acesso rede
local seja apenas pelo firewall. Alm disso, apenas trfego autorizado e definido pela poltica
de segurana seja permitido passar. E o firewall, em si, precisa ser totalmente imune aos
ataques, precisa possuir um sistema confivel e seguro.
A principal funo de um firewall manter o controle centralizado da segurana de
uma rede, mantendo usurios no autorizados fora da rede protegida, proibindo servios
vulnerveis de entrar ou sair da rede e protegendo a rede contra vrios tipos de IP spoofing e
ataques de roteamento . Esse controle ocorre em diversos nveis: o controle de servio
determina o tipo de servio que pode ser acessado por dentro ou por fora. O firewall pode
filtrar o trfego com base no endereo IP e porta TCP, pode prover um proxy que interpreta
cada requisio de servio antes de deixar passar ou pode fazer ele mesmo o papel de
servidor, dependendo do tipo de firewall; o controle de direo determina a direo na qual
uma requisio de servio inicializada e permitida; o controle de usurio controla o acesso
ao servio de acordo com o usurio (interno ou externo). O firewall pode ser utilizado como
ponto final de um tnel criptorgrafado VPN (Virtual Private Network), utilizando, por
exemplo, o protocolo IPSEC. Dessa maneira, o usurio externo que vier pela VPN pode ser
tratado como um usurio local; por fim, o controle de comportamento controla como um
servio usado. Por exemplo, um firewall pode filtrar e-mails para eliminar spams [14].
Outra funo importante do firewall a segmentao de redes em subredes. Ele
utilizado para segmentar, por exemplo, departamentos diferentes. Dessa maneira, no h como
um usurio de um departamento acessar recursos de outro departamento a no ser que tenha
uma regra especfica no firewall permitindo. Essa soluo protege uma subrede da outra e
mantm o controle central da rede. Ele segmenta tambm, como j foi mencionado, a rede
interna da rede DMZ, onde se localizam os bastion hosts, ou seja, os servidores Internet.
Alm disso, o firewall capaz de fazer traduo de endereos (NAT); prover uma

84

administrao centralizada e uma monitorao de eventos relacionados a segurana, sendo


ponto de auditoria; implementar alarmes de segurana; servir como plataforma para
implementao de tneis IPSec; prover autenticao baseada em identificao e senha, senhas
nicas para cada acesso, ou baseada em certificados digitais; prover roteamento ou
encaminhamento de pacotes, dependendo do caso; implementar um DNS ; e outras funes
que vo sendo agregadas ao longo do tempo.
O que um firewall no capaz de fazer prevenir que usurios locais tenham acesso
externo no autorizado atravs de modems, nem a transferncia de programas legtimos
infectados por cdigos maliciosos (apesar de no estar muito longe de acontecer).
H muito mais detalhes a respeito de firewalls que no podero ser explorados. A
prtica na configurao e manuteno dos mesmos ajuda muito a compreender o quanto uma
rede depende do firewall atualmente. A seguir ser explicado brevemente a respeito de cada
tipo de firewall.

3.4.4.1 Filtro de pacotes

Este o tipo mais simples de firewall e pode ser implementado em um roteador. Ele
configurado com uma srie de regras para permitir, rejeitar ou descartar pacotes entrantes ou
saintes da rede baseados no endereo IP ou no nmero da porta. Trabalham na camada de rede
(ou Internet), porm precisam saber o nmero de porta. Combinados com a traduo de
endereos, NAT, permitem uma primeira linha de defesa. So extremamente rpidos e
funcionam na velocidade da linha de dados.
O primeiro parmetro a se configurar neste tipo de firewall a poltica padro. Pode-se
escolher permitir todos os pacotes a no ser que seja um expressamente proibido. Essa prtica,
porm, muito perigosa e o comum que se faa o contrrio. A regra padro rejeitar ou
descartar todos os pacotes, a no ser que ele esteja expressamente permitido. Desta maneira,
medida que for surgindo a necessidade, os servios vo sendo liberados.
A tabela 3.1 mostra um exemplo simples de configurao de firewall do tipo filtro de
pacotes. O firewall no caso est habilitado a enviar e-mails apenas, bloqueando qualquer outro
tipo de servio. Entretanto necessrio uma segunda regra, para permitir a entrada dos flags
de confirmao ACK para que a conexo SMTP seja completa.

85

ao

origem

porta

destino

porta

flags

comentrio

permitir

interno

25

permitir

25

ACK

Confirmaes ACK para SMTP

descartar

regra padro

Pacotes da rede interna para a porta SMTP

Tabela 3.1 filtro de pacotes


3.4.4.2 Gateway de circuito

Este tipo de firewall escuta uma requisio de estabelecimento de conexo TCP e


decide aceitar ou rejeitar baseado no nmero de porta. Quando o firewall aceita a conexo, a
sesso estabelecida entre o firewall e o host remoto. Ento o firewall estabelece uma sesso
separada com o host interno e conduz a comunicao entre as duas sesses utilizando um
circuito de conexo interna que ele estabelece consigo mesmo. Desta maneira, os pontos
finais no realizam a comunicao diretamente e sim atravs do firewall.

3.4.4.3 Gateway de aplicao

Um gateway de aplicao tambm chamado de servidor proxy de aplicao. Ele


similar ao gateway de circuito, porm ele tambm pode filtrar o trfego baseado no protocolo
de camada de aplicao, como por exemplo um HTTP. Enquanto o gateway de circuito
permite qualquer protocolo estabelecer uma conexo proxy na porta 80, o gateway de
aplicao somente permitir o trfego HTTP legtimo, bloqueando qualquer outra aplicao,
como por exemplo P2P, ou seja, programas de compartilhamento de arquivos que tentam
utilizar a mesma porta 80.
O gateway de aplicao tambm registra o trfego, faz autenticao, converte
protocolos e algumas outras aes teis. Entretanto, so mais complexos que os outros tipos
de firewall para configurar. necessrio configurar cada protocolo de aplicao para cada
trfego que ser permitido passar. Normalmente, um software ajuda nessa tarefa.

3.4.4.3 Stateful Inspection

uma tecnologia desenvolvida inicilamente pela empresa CheckPoint, que criou um

86

produto chamado Firewall-1. Logo aps, transformou-se em padro de mercado tanto para
firewalls comerciais, quanto para firewalls de cdigo aberto. A diferena bsica para os
demais firewalls que ele mantm uma memria das conexes TCP e cria pseudo-conexes
UDP. Quer dizer, quando efetua-se uma conexo, o cliente envia um SYN e, se for aceita,
recebe um SYN-ACK e o firewall guarda numa tabela temporria a origem, a porta e o destino
da conexo. Quando o cliente for acessar novamente o servio, o firewall apenas consulta a
tabela temporria, possibilitando maior performance e segurana. A tabela tambm criada e
consultada quando chegam pacotes UDP.
Outra tcnica utilizada na autenticao. O cliente s precisa autenticar uma vez e
essa autenticao ser utilizada novamente para sesses deste cliente atravs do firewall.
O stateful inspection mantm informaes de todos os 7 nveis do modelo OSI e
oferece um alto grau de segurana e desempenho. imprescindvel para os firewalls
modernos.

3.4.5SISTEMASDEDETECODEINTRUSO

Os sistemas de deteco de intruso so mais uma camada de proteo necessria s


redes e hosts e so basicamente ferramentas (hardware ou software) de monitorao do
comportamento do sistema. Havendo uma tentativa de invaso ou outra atividade maliciosa, o
sistema tem o papel de relatar ao dono atravs de alarmes, ou mesmo agir de forma a deter o
ataque, caso tenha sido configurado para isso.
Os IDSs (Intrusion Detection Systems), como so comumente conhecidos, podem
monitorar um host, uma rede ou vrias redes de acordo com seu tipo e sua arquitetura. O IDS
de host normalmente monitora os programas e arquivos de uma mquina, observando se no
esto sendo alterados. O IDS de rede normalmente observa e captura todo o trfego da rede,
procura de pacotes que indiquem um ataque. Para que possam enxergar todo o trfego, os
sensores do IDS geralmente so posicionados em uma porta do switch que configurada
para receber todo o trfego, ou mesmo na sada do roteador.
O IDS pode ser baseado em assinatura, isto , ter uma base de tipos de ataques e como
eles ocorrem cadastrada. Toda vez que um pacote chegar, ou que um arquivo ou programa for
alterado compara-se com a base para saber se pode ser um ataque cadastrado. Ou pode ser
baseado em comportamento, ou anomalia, isto , o sistema se acostuma com o trfego

87

normal ou a utilizao normal dos programas e arquivos e quando sai do padro, ele acusa que
pode ser um ataque. Nos captulos seguintes ser visto que esse tipo de deteco por
comportamento, ou anomalia justamente a proposta do trabalho e que a inteligncia
artificial, atravs das redes neurais, pode entrar em ao para julgar sobre ser ataque ou no o
que foi analisado.
Quando um alerta gerado e na verdade no ocorreu nenhuma atividade maliciosa, ou
seja, a atividade era normal, diz-se que ocorreu um falso positivo nesse alerta. Por outro lado,
quando uma atividade maliciosa bem sucedida e nenhum alerta gerado, diz-se que ocorreu
um falso negativo. Os falso positivos so um tormento para os analistas, pois tomam tempo e
recursos. Pior ainda so os falso negativos, que permitem a entrada do inimigo sem que o IDS
tenha cumprido sua misso.

3.4.5.1 Deteco em host

O IDS baseado em host (HIDS) monitora por ataques no sistema operacional,


aplicaes ou no kernel. Para fazer o seu trabalho, os HIDS precisam ter acesso privilegiado
mquina. Precisam acessar logs de auditoria, mensagens de erro, servios, aplicaes e
qualquer outro recurso disponvel para monitorar a mquina. Eles precisam saber como so
dados normais e dados anormais de aplicao e por isso conseguem monitorar os dados de
aplicao quando esto sendo decodificados e manipulados pelas aplicaes.
Os HIDS so bastante precisos em determinar deteco de intruso. A quantidade de
falsos positivos gerados por eles bem menor do que os NIDS (Network Intrusion Detection
Systems). Os HIDS tm um conhecimento profundo do host que esto protegendo, sabem
exatamente que tipo de atividade normal ou no, um trfego de rede pode passar por um
NIDS desapercebido e ao chegar ao host ser detectado pelo HIDS. Em outras palavras, o
HIDS pode descobrir ataques que o NIDS no consegue[6].
A desvantagem dos HIDS est no fato de terem uma viso muito limitada da topologia
da rede e no conseguir detectar um ataque em algum outro ponto da rede. Isto , se o alvo for
uma mquina vizinha, que no tem um HIDS instalado, ele no conseguir detectar. Mesmo
que a mquina comprometida acesse a mquina protegida de maneira legtima, o HIDS no
detectar. O HIDS tem que estar instalado em todas as mquinas, ou no maior nmero
possvel em uma rede. O que o torna uma soluo cara financeiramente. Alm disso, tem que

88

possuir verses para todos os tipos de sistema operacional existentes na rede, o que tambm
complicado. Existe ainda a possibilidade do HIDS, em um ataque bem sucedido ser
desabilitado antes que ele possa detectar o ataque, ou seja, antes que ele leia os arquivos de
log ou de erro.

3.4.5.2 Deteco na rede

O IDS de rede (NIDS) um, ou vrios dispositivos localizados em reas estratgicas


da rede e que conseguem enxergar o trfego ao mesmo tempo em que ele est passando. So
mais populares que os HIDS pois conseguem, com poucos dispositivos, proteger toda a infraestrutura de rede. Os NIDS fornecem uma viso ampla sobre o que est acontecendo com a
rede, sendo mais fcil identificar onde est o problema.
Em relao aos HIDS, os NIDS so mais resistentes parada, ou interrupo. no
dependem de host e podem estar em um hardware especialmente construdo para ele, com o
hardening em dia, muito mais difcil de serem destrudos por um atacante do que um HIDS.
Alm do mais, podem guardar as informaes importantes em outra mquina na rede,
dificultando o atacante de remover as evidncias de um ataque.
Entretanto, o NIDS tem algumas desvantagens inerentes s suas caractersticas. Alm
do nmero mais elevado de falso positivos j citado, o NIDS exige estar em uma mquina
parruda o bastante para agentar todo o trfego da rede, processando e interpretando em
tempo real. Por isso, ele deve ser posicionado com cuidado na rede para evitar situaes de
perda de pacotes. De preferncia receber os pacotes duplicados de algum outro dispositivo
para analisar. Outro problema so as tcnicas de evaso utilizadas pelos atacantes para burlar
os NIDS. Por exemplo, a fragmentao de pacotes IP um problema para os NIDS por causa
da ordem de refragmentao diferente de cada sistema operacional. Quando um fragmento se
sobrepe a outro, dependendo da ordem de refragmentao, o resultado vai ser diferente e o
NIDS freqentemente no consegue lidar com as possibilidades. Outro exemplo o trfego
criptografado, que no consegue, por razes bvias, ser lido pelo NIDS. O atacante ento
criptografa seu cdigo malicioso e manda j com garantias que ser descriptografado do outro
lado.

3.4.5.3 Deteco por assinatura

89

A deteco por assinatura identifica ataques que se parecem com a representao de


intruso que o IDS guarda em sua base de dados. Em um NIDS, o trfego chega, ele compara
o trfego a uma base de assinaturas previamente cadastrada e se as caractersticas forem as
mesmas, um alarme de intruso gerado. Por exemplo, um ataque de DoS utilizando pacotes
ICMP maior do que o normal pode ser facilmente cadastrado na base de assinaturas. Todo
ICMP maior do que 10000 bytes ser considerado um ataque. Como dificilmente chegar um
ICMP acima de 10000 bytes, a no ser que seja um ataque de DoS, o nmero de falso
positivos dessa assinatura ser baixo.
A deteco por assinatura a tcnica mais precisa para detectar ataques conhecidos.
Quase todo o tipo de trfego malicioso pode ser detectado com uma nica assinatura. Poucos
so os tipos de ataque comprovadamente elusivos para esse tipo de deteco (Koziol, 2003).
Entretanto, como no poderia deixar de ser, limitaes existem neste tipo de deteco.
Ela no tem conhecimento sobre a inteno do trfego que coincide com a assinatura.
Portanto, mesmo que o trfego seja normal, ela emitir o alarme, gerando um falso positivo.
Alm do mais, ela requer um conhecimento prvio dos ataques para poder ser construda a
assinatura. Isso significa que ela no tem a capacidade de monitorar ataques desconhecidos ou
ataques sem uma assinatura precisa. Em alguns casos, muda-se apenas um bit de um ataque
conhecido e a deteco por assinatura ir falhar. medida que surgem novos ataques, novas
assinaturas so criadas e a base vai crescendo a cada dia. Como j foi visto, a quantidade de
vulnerabilidades enorme e s tende a crescer. Alm disso, a largura de banda tambm cresce
muito a cada dia. Como o IDS baseado em assinaturas precisa comparar cada pacote com sua
base, vai chegar o dia em que computacionalmente ser invivel para a maioria dos casos,
pois o IDS comear a perder pacotes e gerar uma grande quantidade de falso negativos.

3.4.5.4 Deteco por anomalia

Na deteco por anomalia ou comportamento, existe a fase de treinamento dos dados e


a fase de deteco propriamente dita. Durante a fase de treinamento, o uso normal do
sistema realizado. A partir da, qualquer atividade que esteja fora do normal ser relatada
como uma possvel intruso, gerando um alerta. Por exemplo, em um HIDS, normalmente um
usurio costuma se autenticar no perodo comercial (8:00-18:00). Certo dia, ele se autentica as

90

4:00 da manh. O sistema gerar um alerta de intruso, pois o comportamento diferiu do


normal.
Este tipo de deteco resolve alguns problemas da deteco por assinatura, como por
exemplo a necessidade de conhecer o ataque antes que ele ocorra e a necessidade de ter uma
grande base de dados para comparao dos ataques. Alm disso, mais difcil para o atacante
predeterminar qual ataque ser bem sucedido contra o IDS, ou seja, qual ataque que com
certeza o IDS no gerar alerta (fragmentao ou novos ataques).
Entretanto existem alguns problemas em potencial neste tipo de deteco. A fase de
treinamento muito importante e precisa ser feita com cuidado. Se, durante o treinamento,
todos os dias houver um ataque as 4:00 da manh com o usurio se autenticando, o IDS
tomar isso como uma atividade normal e no gerar nenhum tipo de alerta na hora da
deteco, provocando um falso negativo. Outro grande problema grande quantidade de falso
positivos que esse mecanismo gera. O treinamento, por melhor que seja, no contemplar
eventos normais que acontecem aleatoriamente de tempos em tempos e que quando ocorrem
geram alertas de falso positivos.

3.4.5.5 Posio do IDS

Um HIDS logicamente reside dentro do computador a ser protegido. Um NIDS


possibilita alguns diferentes posicionamentos dentro de uma rede. O objetivo escutar todo
o trfego passante numa rede. No adianta posicionar um NIDS em um local que ele tenha
acesso a apenas um segmento na rede, sendo que o ataque pode estar acontecendo em outro
segmento.
Normalmente, como mostra a figura 3.1, o NIDS conectado a uma porta do switch
principal da rede a ser monitorada e essa porta recebe uma configurao especial chamada de
port spannig que direciona todo trfego que circular pelo switch para essa porta.

91

Figura 3.1 NIDS no switch


Se o switch no possuir a configurao do port spanning, ou se ele j estiver sendo
utilizado em outra tarefa, ou por qualquer outro motivo ele no for utilizado, o IDS poder ser
posicionado logo aps o firewall, utilizando um HUB para espelhar o trfego, como mostra a
figura 3.2. Neste caso, o trfego que o NIDS enxerga apenas o trfego entrante e sainte da
rede. Ele no consegue enxergar o trfego entre as mquinas da prpria rede, como no caso
anterior.
Para redes muito grandes e segmentadas, existe a possibilidade de existirem vrios
sensores inspecionando o trfego em cada switch principal das subredes e trazendo os alertas
para um elemento central estrategicamente localizado (de preferncia numa rede exclusiva), o
servidor NIDS.

92

4.REDESNEURAISARTIFICIAIS

Uma rede neural artificial consiste em uma coleo de elementos processadores que
esto extremamente conectados. Ela transforma uma srie de entradas em sadas desejadas. O
resultado da transformao determinado pela caracterstica dos elementos e pesos
associados com as interconexes ao longo deles[33].
A viso acima a viso prtica e recente do que vem a ser uma RNA, ou rede neural
artificial. Na verdade tudo comeou dcadas antes, em 1943, quando Warren McCulloch e
Walter Pitts apresentaram um trabalho intitulado Neurnio Booleano. O neurnio de
McCulloch nada mais era do que uma traduo matemtica do neurnio biolgico, existente
nos seres humanos.

4.1ABIOLOGIA

O exato funcionamento do crebro humano permanece um mistrio. Porm, alguns


aspectos deste impressionante processador so conhecidos. Em particular, o elemento mais
bsico do crebro humano um tipo especfico de clula que, ao contrrio do resto do corpo
no parece regenerar. Este tipo de clula a nica parte do corpo que no substituda
lentamente. Por causa disso, supe-se que essas clulas nos fornecem as habilidades de
recordar, pensar e nos aplicam experincias anteriores em todas as nossas aes. Essas
clulas, por volta de 100 bilhes delas, so conhecidas como neurnios [21].
Com o avano da medicina e das pesquisas nessa rea, alguns aspectos comuns da
morfologia dos neurnios foram sendo conhecidos. O neurnio o elemento bsico do
sistema nervoso central. Esta clula recebe, processa informao e comunica com as vrias
partes do corpo humano. Uma viso esquemtica de um neurnio mostrada na figura. 4.1.

93

Figura 4.1 Neurnio humano


O neurnio composto basicamente de 3 elementos: o ncleo, os dendritos e o axnio.
O ncleo, ou soma tem aproximadamente 30 micrmetros de dimetro e responsvel pelo
processamento dos sinais, ou das informaes. Cada clula recebe por volta de 10.000
entradas atravs dos dendritos. H um processo de integrao (soma) no ncleo e uma sada
gerada (impulso eltrico), sendo transmitida atravs do axnio para o prximo neurnio. A
juno de um axnio com um dendrito de outro neurnio chamada sinapse. O axnio pode
ter de 50 micrmetros at alguns metros de tamanho (dependendo do tipo de neurnio),
contendo 10.000 conexes sinpticas em mdia.

Figura 4.2 Sinapse

94

As sinapses(figura. 4.2) so regies eletroquimicamente ativas, compreendidas entre


duas membranas celulares: a membrana pr-sinaptica, por onde chega um estmulo
proveniente de outra clula, e a membrana ps-sinaptica, que a do dendrito. Nesta regio
intersinptica, o estmulo nervoso que chega sinapse transferido membrana dendrital
atravs de substncias conhecidas como neurotransmissores. O resultado dessa transferncia
a alterao no potencial eltrico da membrana ps-sinaptica[18].
A conexo sinptica pode ser classificada em excitatria ou inibitria, dependendo do
tipo de neurotransmissor e da natureza da membrana dendrital. Apenas um tipo de
neurotransmissor liberado em uma dada ativao e o efeito da sinapse sempre toda
excitatria ou toda inibitria[22].
Um neurnio recebe uma srie de entradas tanto excitatrias como inibitrias e gera
uma srie de impulsos eltricos com uma freqncia que depende da integrao destes sinais
de entrada. O impulso nervoso resultante, ou potencial de ao uma onda de despolarizao
da membrana axonal e se propaga ao longo da membrana se, e somente se a despolarizao
for suficientemente acentuada para cruzar o valor conhecido como limiar de disparo.

Figura 4.3 Potencial de ao


A figura 4.3 representa a tenso eltrica observada em um ponto fixo do axnio no
momento da passagem do impulso nervoso. Durante um perodo chamado de perodo de
refrao absoluta, que no exemplo vai at aproximadamente 3ms, a membrana incapaz de
produzir outro potencial de ao, independente do potencial acumulado pelo soma. Seguindo
esse perodo de refrao absoluta, persiste um perodo de refrao relativa (at
aproximadamente 5ms), onde dependendo do potencial acumulado possvel que o neurnio
dispare. Logo aps, o neurnio retorna ao seu estado de repouso.
Diante dessas observaes, chegou-se numa modelagem matemtica que caracteriza o

95

neurnio biolgico, com as seguintes caractersticas:


a) Entrada: So os dendritos do neurnio biolgico;
b) Pesos: a rea de armazenamento de experincia ou conhecimento do neurnio, ou seja, as
sinapses;
c) Soma: o ncleo do neurnio. Composto da somatria de cada entrada multiplicada por
seu peso, aplicando ao resultado uma funo de transferncia que corresponde ao potencial de
ativao. Alm disso, um deslocamento no tempo da funo de transferncia pode ser
utilizado aplicando-se o bias;
d) Funo de transferncia: Potencial de ativao da membrana axonal;
e) Sada: o axnio do neurnio biolgico.
A figura 4.4 ilustra o modelo do neurnio artificial.

Figura 4.4 Neurnio Artificial

4.2ONEURNIOARTIFICIAL,OPERCEPTRONEOADALINE

4.2.1ONEURNIOBOOLEANO

Em 1943 McCulloch e Pitts em um artigo intitulado A Logical Calculus of the Ideas


Immanent in Nervous Activity propuseram o primeiro modelo de neurnio artificial. Era um
dispositivo binrio: a sua sada poderia ser pulso ou no pulso, e as suas vrias entradas
tinham ganho arbitrrio e poderiam ser excitatrias ou inibitrias. Para determinar a sada do
neurnio, calculava-se a soma ponderada das entradas com os respectivos ganhos como

96

fatores de ponderao, positivos nos casos excitatrios e negativos nos casos inibitrios. Se
este resultado fosse maior ou igual a um certo limiar ento a sada do neurnio era pulso, e
caso contrrio era no pulso.[18].
A figura 4.5 exemplifica a implementao de 3 funes booleanas atravs de neurnios
artificiais. No caso das funes and e or, as entradas binrias so u1, u2 e o limiar 1,5 e 0,5
respectivamente. A funo x realiza a operao

u1limiar

. Ou seja, caso a

somatriadasentradasestejaacimadolimiar,asadaser1.Casocontrrio,asadaser0.
No caso do not, olimiar 0,5 eas entradas binrias so1 ou0. A condiode sada
permaneceamesma(acimaouabaixodolimiar)eelaser,portanto,aentradainvertida.

Figura 4.5 Neurnio Booleano


O neurnio de McCulloch tem uma aplicao de particular importncia, chamada de
discriminador linear.
Supondo as entradas binrias e a funo y degrau, temos genericamente um
discriminador linear de n entradas {x1, x1, ... x1} e uma sada:
n

y=F wi x i= f wt xquando y [ 0 ; 1] degrau ( 4.1)


i =1

A expresso (4.1) divide o espao euclidiano n em duas regies: A e B:


t

w x0 x A y=1
w t x0 x B y=0 (4.2)

97

Figura 4.6 Discriminador Linear


Em uma situao de dimenso n=2, temos a equao resultante

w 1 x 1w 2 x 2= ,

ou seja, uma reta separando o plano em duas regies conforme figura 4.7.

Figura 4.7 Regies A e B


Este comportamento do discriminador linear pode ser utilizado para trat-lo como um
classificador de padres. Por exemplo, sejam 2 colees de pontos:

={a 1 , a 2 , ... a k } de k

vetores n dimensionais e ={b1 , b 2 , ... b m } de m vetores n dimensionais. O discriminador


deve fornecer y=0 se x e y=1 se x . Isto , se existir um hiperplano que separe os
dois aglomerados de pontos. A figura 4.8 ilustra este exemplo em duas dimenses. A primeira
coleo, em existe um hiperplano que separa os dois padres, chamada de linearmente
separvel. J a segunda no separvel linearmente pois no h um hiperplano que consiga
separar os dois padres.

Figura 4.8 Exemplo de colees linearmente e no-linearmente separveis

98

O neurnio de McCulloch implementa um discriminador linear simplificado, pois as


entradas so binrias. A figura 4.9 ilustra trs das principais funes booleanas de duas
variveis representadas no plano binrio. Nota-se claramente que as funes AND e OR so
linearmente separveis, enquanto que a funo XOR (ou exclusivo) no . Seriam necessrias
2 retas para separar os padres semelhantes.

Figura 4.9 Funes E, OU e OU-Exclusivo


Embora a funo XOR no possa ser implementada utilizando um simples neurnio de
McCulloch, ela poderia utilizar uma rede com trs neurnios de McCulloch. E assim, sempre
existir uma rede de mltiplos neurnios capaz de implementar qualquer funo booleana.
Das 16 funes booleanas de duas variveis, apenas 2 no so linearmente separveis:
XOR e seu complemento. Porm, o problema se agrava medida em que o nmero de
variveis vai aumentando. Em 1960, Widner apresentou um estudo sobre as funes
linearmente separveis: para o caso estudado de 2 variveis de entrada, existem 16 funes
booleanas e 14 so linearmente separveis, ou seja, 87,5%. J para o caso de 4 variveis de
entrada, existem 65536 funes lgicas e apenas 1772 so linearmente separveis, isto ,
2,9%. E este nmero s decai.

4.2.2PERCEPTRONS

Em 1959, Rosenblatt publicou um trabalho chamado Perceptron. Era uma rede de


mltiplos neurnios do tipo discriminador linear. A topologia genrica da rede mostrada na
figura 4.10. Os neurnios so dispostos em vrias camadas. A primeira camada recebe os
padres de entrada da rede e chamada de camada de entrada. Todos os seus elementos esto

99

conectados aos neurnios da camada seguinte. Alguns autores referem-se a esses elementos
como neurnios, porm neurnios de ligao direta, ou seja, que no realizam nenhuma
operao alm de conectar os padres de entrada, ou estmulos rede. A ltima camada
recebe as conexes vindas dos neurnios da penltima camada e chamada de camada de
sada. As demais camadas so as camadas ocultas, ou escondidas. Todas as camadas ocultas e
de sada realizam o somatrio do produto das sadas anteriores(ou valores de ativao) com os
pesos de cada sinapse(ligao entre os neurnios). Aplicando o bias(limiar) se necessrio e
passando, na seqncia, por uma funo de ativao gerando as sadas para a prxima
camada, se houver.

Figura 4.10 Perceptron multi-camadas


Dada a topologia genrica da rede, o grande desafio para que a rede perceptron
cumprisse seu objetivo, ou seja, apresentasse a sada correta para determinados padres de
entrada era escolher corretamente cada peso de cada sinapse e cada bias de cada neurnio.
Esses parmetros essenciais so chamados de conhecimento da rede. Para uma funo
booleana simples, como o AND, ou o OR, como j demonstrado, relativamente simples
escolher corretamente o conhecimento. At porque uma topologia de apenas um neurnio.
Entretanto, quando se tem um problema mais complexo com vrias variveis envolvidas
praticamente impossvel determinar o conhecimento sem a existncia de algum mtodo.
justamente esse mtodo que Rosenblatt props no seu trabalho. Novamente, ele foi
buscar inspirao na biologia. Se o neurnio, ou a rede neuronal biolgica capaz de aprender
determinadas funes, a rede artificial tambm seria capaz. O mtodo de ensino consiste

100

basicamente em ajustar o conhecimento (pesos e bias) medida em que exemplos de entrada


so apresentados rede, juntamente com a sada que se deseja obter. De tal maneira que a
sada na ltima camada esteja o mais prximo possvel da sada desejada. Rosenblatt, porm,
lanou apenas a primeira semente, pois seu mtodo funciona apenas para rede perceptron de
uma camada (entrada e sada).
O princpio utilizado foi o princpio de aprendizado do bilogo Hebb, formulado em
1949 em seu livro Organization of Behavior, aps um estudo do comportamento de animais.
Segundo Hebb, o aprendizado pode ser reduzido a um processo puramente local, em funo
dos erros detectados localmente:
n

y=sgn wi xi =sgn w x quando y [1 ; 1] operador sinal (4.2)


i=1

w novo
=w velho
w i (4.3)
i
i
d
w i = y y . x id (4.4)
novo
=velho
= y d y (4.5)
i
i

A alterao do i-simo parmetro depende exclusivamente do produto da i-sima


entrada pelo erro de sada e= y d y . Sendo y a sada com os velhos parmetros, ou
seja, a equao (4.2) aplicada ao peso e bias velhos(antes do reajuste). O parmetro
referido como a taxa de aprendizado, na medida em que reflete a taxa com que os ganhos so
alterados em conseqncia dos erros[18].
Empregando o princpio hebbiano de treinamento, Rosenblatt chegou ao seguinte
algoritmo de treinamento:
1. Inicia-se as conexes com pesos aleatrios;
2. Seleciona-se um vetor de entrada dentre os exemplos de treinamento;
3. Se a sada for diferente da sada desejada, ou seja, o perceptron deu a resposta incorreta,
modifica-se todos os pesos de acordo com a lei de Hebb (equao 4.3);
4. Volta-se ao passo 2.
O bias considerado como a primeira conexo de cada neurnio w 0 . O valor
calculado como se fosse um peso vezes o valor de entrada sempre igual a 1. Quando o valor de
sada estiver igual ao valor desejado, nenhum conhecimento alterado.
Para a lei de aprendizado do perceptron existe um teorema de convergncia que diz o
seguinte: Se existe uma coleo de conexes w timo que capaz de realizar a transformao
d

y= y

, a regra de aprendizado do perceptron vai convergir para alguma soluo (que

101

poder ou no ser w timo ) em um nmero finito de passos para qualquer escolha inicial de
pesos[17].

4.2.3ADALINE
Em 1960, na Universidade de Stanford, Widrow e Hoff desenvolveram um modelo
neural linear simples e batizaram de ADALINE (ADAptative LINear Element) e mais tarde
sua generalizao multidimensional MADALINE (Mltipla ADALINE). O modelo em si
ficou restrito ao ambiente acadmico. A contribuio mais significativa, porm, do trabalho
de Widrow foi a inveno de um princpio de treinamento extremamente poderoso para as
redes ADALINE conhecido como regra delta, que mais tarde seria aproveitada em modelos
neurais mais elaborados[18].
A regra delta ou algoritmo do mnimo erro quadrtico LMS (least mean square) tem
como principal diferena do perceptron a maneira na qual utilizada a sada do sistema. No
perceptron, o algoritmo de treinamento utiliza a sada da funo de ativao (1 ou -1) como
critrio para o aprendizado. Na regra delta, a sada da rede utilizada sem mapear diretamente
entre os valores 1 e -1(antes da funo de ativao). A figura 4.11 mostra um elemento novo
na rede neural em forma de somatrio. justamente o LMS, ou erro mdio quadrtico.

Figura 4.11 Adaline


A equao do neurnio Adaline basicamente a equao do perceptron (equao 4.2).
O problema determinar os pesos w i com i = 0,1,...,n; sendo w 0 o valor do bias, de tal
maneira que a resposta entrada-sada seja correta para um nmero arbitrrio de sinais. Se um
mapeamento exato no for possvel, o erro mdio ser minimizado atravs do mnimo

102

quadrtico. A regra delta de Widrow define um mecanismo de ajuste dos pesos de tal forma
que a rede fornea os valores corretos[17].
A sada do Adaline uma combinao linear dos componentes do vetor de entrada. Tal
dispositivo pode ser considerado como um aproximador linear de funes. Supondo uma
n

funo y w ; x = wi x i , deseja-se obter a melhor aproximao linear possvel no sentido


i=1

do mnimo erro quadrtico. Pretende-se determinar um

w timo tal que o erro quadrtico

sobre o conjunto de treinamento (formado pela entrada x

e sada desejada y d ) seja o

menor possvel. O erro total da funo definido por:


E= E d =1/ 2 yd y2 (4.6)
d

onde o ndice d representa os padres de entrada da rede e E d o erro no padro d. O


algoritmo LMS procura os valores para todos os pesos que minimizem a funo de erro por
um mtodo chamado de gradiente descendente. A idia modificar o peso proporcionalmente
negativa da derivada do erro do padro corrente:
d

d w i= E / wi (4.7)

Ento, a idia partindo-se do ponto arbitrrio w 0 caminhar pela superfcie de


E

em direo ao ponto de mnimo, bastando para isso evoluir sempre no sentido oposto do

gradiente naquele ponto. A constante de proporcionalidade determina o tamanho do


passo que se dar naquela direo. A derivada pode ser destrinchada:
d

E / wi = E / y . y / w i ;
y/ w i=x i por causa da linearidade e E d / y= y d y ; ento:
d w i= x i ( 4.8)

sendo a diferena entre sada desejada e sada y d y . A figura 4.12 ilustra a


representao do erro mdio quadrtico.

103

Figura 4.12 Erro mnimo quadrtico LMS


De posse de w pode-se atualizar o peso conforme equao 4.3. Essa atualizao
pode ser feita de 2 maneiras: aps a apresentao de todo o conjunto de treinamento
n

d w i= x i , ou aps a apresentao de cada exemplo d w i= x i . O primeiro


i=1

procedimento mais rpido, porm, em alguns casos o segundo procedimento pode obter uma
convergncia mais rpida. A eficincia do mtodo do gradiente depende da escolha adequada
de um ponto de partida w 0 e da taxa de aprendizagem . Por exemplo, uma superfcie de
erro que possui vrias concavidades menores que o w timo , chamados de mnimos locais
(figura 4.13). Se for escolhido um ponto de partida errado e uma taxa de aprendizagem baixa,
a funo poder no sair do mnimo local. Por outro lado, se for escolhida uma taxa de
aprendizagem muito alta, a funo poder passar do ponto de mnimo timo ou global,
demorando a convergir.

Figura 4.13 Mnimo Local


Outro aspecto importante definir o critrio de parada do treinamento. Normalmente
segue-se trs linhas: calcular o erro a cada passo e quando este erro de um passo para o

104

seguinte decrescer menos que uma proporo; simplesmente definir um erro mnimo; limitar
o nmero mximo de iteraes.

O neurnio booleano e o perceptron tiveram grande repercusso quando foram


propostos, pois imaginava-se que poderiam servir de modelo para os processos decisrios
mentais. A regra de aprendizado de Hebb era bastante intuitiva e podia ser verificada na
prtica educacional[22].
Em 1969, Minsky & Papert publicaram um trabalho chamado Perceptrons onde
apontaram srias dificuldades destas redes representarem funes no linearmente separveis.
Por exemplo, um simples XOR (vide figura 4.9) no poderia ser representado por um
perceptron de apenas uma camada. Eles demonstraram que era necessrio adicionar uma
camada oculta ao perceptron. Entretanto, no conseguiram demonstrar como ajustar os pesos
da camada de entrada para a camada oculta.
Uma observao essencial a se fazer que os algoritmos apresentados at agora
conseguem ajustar os pesos apenas para redes de uma camada (entrada e sada). Os problemas
no linearmente separveis necessitam de mais de uma camada.
O trabalho de Minsky e Papert ficou marcado como o divisor da fase de euforia inicial
das redes neurais e a fase de desencantamento, que percorreu toda a dcada de 70 e metade da
dcada de 80. Em 1974, Werbos publicou um algoritmo chamado Error backpropagation, ou
retropropagao do erro. O trabalho no teve repercusso no meio cientfico.
Em 1986, porm, o grupo de processamento paralelo distribudo do MIT, formado por
Rumelhart, Hinton & Williams publicou um trabalho: Backpropagation para perceptrons
multicamadas, marcando o fim da fase de desencantamento e o comeo do ressurgimento das
redes neurais artificiais. O algoritmo de Werbos o mais poderoso procedimento que se
conhece at hoje para treinamento de redes neurais.

4.3BACKPROPAGATION

4.3.1OALGORITMO

105

O algoritmo backpropagation, popularizado por Rummelhart, Hinton e Williams


surgiu para solucionar o problema explorado no trabalho de Minsky e Papert. Uma vez que j
se sabia que a rede perceptron funcionava como um aproximador universal, ou seja, qualquer
funo ou problema, seja linearmente separvel ou no, poderia ser solucionada por um
perceptron multicamadas. E tambm j se conhecia o poderoso algoritmo LMS, das redes
ADALINE. O backpropagation juntou esses dois conceitos, generalizando a regra delta para
um perceptron multicamadas, solucionando, assim, o problema de como ajustar os pesos das
sinapses anteriores sada (entrada-oculta, oculta-oculta). O mtodo utilizado o mtodo da
retropropagao dos erros. O ajuste dos erros das sinapses da penltima camada esto
relacionados aos erros das sinapses da ltima. Os da antepenltima relacionados aos da
penltima. E assim sucessivamente, at que todos os erros sejam ajustados. Normalmente,
necessria apenas uma camada escondida e a funo de ativao mais utilizada a logstica
ou sigmide(figura 4.14), utilizada por RHW(Rummelhart, Hinton e Williams).

Figura 4.14 Funo de ativao sigmide


A rede perceptron multicamadas da figura 4.10 ser utilizada para o entendimento do
algoritmo backpropagation. Os ndices e notaes a seguir sero expostos com o objetivo de
melhor entendimento das operaes matemticas:
d - padro desejado (entrada ou sada);
c - camada;
i - nmero da sinapse;
s - camada de sada;
o - camada oculta;
d
s c - somatrio: s c = wi xi ;

y c - sada desejada;
y c - sada da funo de ativao y c = f s dc

106

- erro no padro d;

- taxa de aprendizagem;
dc - representao do erro por neurnio de cada camada.

Parte-se do princpio da generalizao da regra delta, ento, conforme equao 4.7:


d

d w i c = E / wi c

No caso de mais de um neurnio de sada, o erro na sada , conforme equao 4.6:


N

E =1/ 2 y s y s
d

s =1

Aplicando a regra da cadeia na derivada do erro:


d

E / wi c = E / s c . s c / wi c

sendo que s cd /w i c =x id

d
d
d
Definindo c = E / s c ,

a regra equivale regra delta j demonstrada na equao 4.8:


d w i= x i .

d
O desafio descobrir o erro c para cada camada c da rede. Aplicando a regra da
d
cadeia em c :

E / s c = E / y c . y c / s c

d
d
sendo que y c / s c = f ' s c

107

d
d
e E / y c = y c y c

Para a camada de sada a representao do erro fica:


E d / s dc =ds = y sd y s f ' s ds (4.9)

para cada neurnio de sada s.

Para a camada oculta, a medida de erro pode ser aplicada em funo das entradas e pesos da
soma dos neurnios da camada de sada:
N

E / y o = E / s s . s s / y o =
d

s =1

Como

s=1

i=1

E d / sds . w i . x i / y o

x i da camada de sada igual a y o da camada oculta, ou seja entrada da camada de

sada igual a sada da camada oculta:


N

E / y o = E / s . ws ou seja E / y o = s . ws
d

s =1

d
s

s =1

ou ainda = f ' s ds . ws (4.10)


d
o

d
o

s =1

No caso da funo sigmide a derivada


d

sc

f ' s dc = f ' 1/1e

= y c 1y c (4.11)

A equao 4.10 mostra um procedimento recursivo para calcular os erros de cada


unidade da rede. De posse desses erros, atualiza-se o conhecimento atravs da equao 4.7.

108

4.3.2NAPRTICA

Em termos prticos, o algoritmo ocorre da seguinte maneira: em um perceptron


multicamadas, quando um padro aplicado na entrada, seus valores de ativao (as sadas de
cada neurnio depois da funo de ativao) so propagados at que na ltima camada o valor
de sada de cada unidade(ou neurnio) comparado com o valor de sada desejado. Em cada
um dos neurnios de sada h um erro relacionado. O objetivo que o conhecimento (pesos e
bias) da rede seja ajustado de tal maneira que no prximo conjunto de dados apresentado haja
a comparao de valores de sada com desejados, o erro decaia at que, em um determinado
momento, seja zero, ou esteja prximo de zero. De acordo com o algoritmo LMS de Widrow,
d
os pesos da camada de sada podem ser ajustados pela equao 4.7 d w i c = E / wi c .

Porm, apenas aplicando esta equao, os pesos relacionados s demais camadas nunca
mudariam e a rede no funcionaria como aproximadora universal de funes. A soluo
distribuir o erro da camada de sada para todos os neurnios da camada oculta anterior a ela.
E desta ltima para a oculta anterior. E quantas forem, at chegar camada de entrada. A
maneira de se fazer isso, a atualizando o conhecimento de cada camada atravs do somatrio
dos erros de cada neurnio da camada seguinte, multiplicado pelo valor do peso entre elas e
ainda pela derivada da funo de ativao do neurnio, conforme mostra a equao 4.10. Isto
quer dizer que o erro da ltima camada calculado e retropropagado para as camadas
anteriores quantas vezes for necessrio para o erro chegar no esperado.
Um parmetro essencial no algoritmo backpropagation a taxa de aprendizagem .
Ela determina a velocidade de convergncia da rede ao mnimo erro quadrtico. Se for
escolhida uma taxa de aprendizagem muito pequena, corre-se o risco de a convergncia
demorar muito, ou pior, a rede ficar presa em um mnimo local, ou seja, um vale na superfcie
de erro muito menor do que o mnimo erro quadrtico. O ideal, ento, escolher uma taxa
maior possvel. O problema de taxas muito grandes a oscilao que ela provoca no momento
da convergncia para o mnimo erro, ou seja, os passos so to grandes que a rede no
consegue estabilizar no vale do mnimo erro, conforme figura 4.15. Uma maneira encontrada
de amenizar essa caracterstica foi adicionar um novo parmetro no ajuste de pesos da rede. O
parmetro chamado momentum, ou momento e utilizado para adicionar o impacto do
ajuste anterior de pesos da rede ao novo ajuste, ajudando a diminuir a oscilao de

109

convergncia(realiza um filtro passa baixas). A equao de ajuste dos pesos com o momento
fica:
wi1= x i1 wi (4.12)

O momento costuma variar entre 0,5 e 0,9 impactando o ajuste do novo peso a partir
do ajuste feito no peso anterior. Dessa maneira a taxa de aprendizagem escolhida pode ser
maior para uma convergncia mais acelerada e uma rede mais estvel.

Figura 4.15 Convergncia da rede; oscila na superfcie de erro com taxa de aprendizagem
muito alta

Figura 4.16 Superfcie de erro: mnimo global e mnimos locais


Em uma rede complexa, a superfcie de erro formada por vrios topos e vales como
mostra figura 4.16. Os vales menores so chamados de mnimos locais e o maior o mnimo
global. O mtodo do gradiente descendente abre a possibilidade do erro encalhar em um
mnimo local(gradiente zero) dependendo da escolha do ponto inicial e da taxa de
aprendizagem. Mtodos probabilsticos podem ser utilizados para escapar destes mnimos,

110

mas eles tendem a ser muito lentos. Outra sugesto aumentar o nmero de neurnios da
camada escondida, aumentando a dimenso da superfcie de erro[17].
Durante o treinamento, pode acontecer de os pesos serem ajustados para valores muito
altos, causando a chamada paralisia da rede. A funo sigmide(como pode ser observado na
figura 4.14), a partir de certos valores muito altos positivos ou negativos dos pesos, tende a
saturar nos valores um e zero respectivamente. Uma vez alcanados esses valores, a derivada
d

f ' s c =y c 1 yc tende a zero, consequentemente o erro tende a zero e os valores dos

pesos no so ajustados. A rede pra.


Uma deciso muito importante na hora de projetar uma rede neural, escolher o
nmero de camadas e o nmero de elementos, ou neurnios de cada camada. No existe uma
resposta pronta ou calculvel. Depende muito do tipo de aplicao e da experincia do
usurio. O que existe so consideraes de autores mais experientes que trabalharam na
questo e podem auxiliar na hora de se projetar uma rede:

a) Geralmente trs camadas o suficiente(entrada, oculta e sada). Algumas vezes, porm, o


problema poder ser mais facilmente resolvido adicionando uma camada oculta a mais. Quer
dizer, a rede poder aprender mais rapidamente.
b) O tamanho da camada(nmero de neurnios) de entrada depende essencialmente da
natureza da aplicao. O tamanho da camada de sada depende do tipo de resposta esperado
da rede, se so requeridos valores booleanos, binrios ou analgicos(Freeman/Skapura, 1991).
c) Definir o nmero de elementos da camada oculta o grande desafio. Quanto maior for a
complexidade na relao entre dados de entrada e sada desejada, maior ser o nmero de
elementos processadores na camada oculta[21].
d) Se o processo a ser modelado foi separado em mltiplos estgios, ento sero requeridas
camadas ocultas adicionais, caso contrrio, essas camadas ocultas apenas serviro para ativar
a memorizao da rede, no constituindo uma soluo de generalizao[21].
e) O nmero de padres de treinamento utilizados determinam um limite superior para o
nmero de neurnios na(s) camada(s) oculta(s). Para calcular este limite, divide-se o nmero
de padres de treinamento(pares entrada, sada desejada) pelo nmero total de elementos
processadores de entrada e sada. Divide-se novamente o resultado por um fator escalvel
entre cinco e dez. Fatores mais altos podem ser utilizados para dados muito ruidosos,
enquanto que para dados mais limpos, o fator gira em torno de dois. importante que as

111

camadas ocultas tenham poucos elementos processadores. Muitos neurnios nessas camadas
podem fazer com que a rede memorize os dados de treinamento. Se isso acontecer, no
ocorrer nenhum tipo de generalizao e rede no ter utilidade para reconhecer novos
padres[21].
f) Por ltimo, pode ser interessante, aps as primeiras tentativas de treinamento, remover
neurnios escondidos que sejam suprfluos. Examinando os valores dos pesos na(s)
camada(s) oculta(s) periodicamente, enquanto a rede treina, podero haver pesos que mudam
muito pouco dos valores iniciais. Esses neurnios podem no estar participando do processo
de aprendizagem e menos neurnios na camada oculta sero suficientes.
A rede est corretamente projetada. Outro desafio se segue. Quantos pares de
treinamento devero ser utilizados? Quais escolher? Como utiliz-los? Novamente, existe uma
srie de fatores a serem considerados:
a) Uma normalizao dos dados de entrada e sada necessria para o treinamento de uma
rede. Esses valores devem estar na mesma magnitude. Se as variveis de entrada e sada no
estiverem na mesma ordem de magnitude, algumas variveis podem parecer mais
significantes do que realmente so. O algoritmo de treinamento deve compensar a diferena
de magnitude ajustando corretamente os pesos. Isso no efetivo no algoritmo
backpropagation. Por exemplo, uma varivel de entrada de 50000 e outra de 5. O valor do
peso para a segunda varivel, ao entrar no neurnio 1 da camada oculta tem que ser muito
maior do que o valor do peso para a primeira. Com isso a segunda passa a ter alguma
significncia. Entretanto, uma funo de ativao sigmide, ou outra parecida(como tangente
hiperblica), no neurnio 1 da camada oculta no consegue distinguir entre dois valores muito
grandes, por causa da saturao j discutida(ambos tero sadas idnticas iguais a 1) [24].
b) Existe uma relao que pode ser traada entre o nmero de padres a serem treinados e o
nmero de pesos da rede. Normalmente h uma grande quantidade de dados disponveis para
treinamento, mas utilizando apenas uma parte deles, a rede ser capaz de generalizar o
restante. O clculo o seguinte: W / P=e ; P=W / e . Quer dizer, para um erro de 0,1, uma
rede com 80 pesos vai precisar de 800 padres para treinar corretamente, acertando 90% dos
padres de generalizao, ou 95% dos padres de verificao[23]. A diferena entre padres
de generalizao e verificao ser visto a seguir.
c) Como j foi mencionado, para o treinamento de redes neurais, no necessrio utilizar
todos os padres disponveis. Muitos deles so importantes para fazer as verificaes e

112

generalizaes. Para determinar a performance da rede, depois de treinada, utiliza-se dois


critrios: (1) apresenta-se padres rede os quais j foram utilizados na fase de treinamento,
verificando como a rede se comporta, computando o percentual de acertos. So os chamados
padres de verificao; (2) apresenta-se rede padres novos, que no foram utilizados na
fase de treinamento e verifica-se o percentual de acerto e conseqente capacidade de
generalizao da rede(o que ela aprendeu). So os chamados padres de generalizao.
Importante frisar que esses passos so realizados aps o treinamento e, portanto, os pesos no
mudam durante os testes[24].
A inicializao dos pesos e bias da rede feita de maneira aleatria. Porm,
importante que sejam escolhidos pesos numa faixa compreendida entre -0,5 e 0,5. Se os
valores iniciais de pesos forem muito grandes, as entradas para os neurnios das camadas
ocultas e de sada poder haver a paralisia(regio de saturao). Se os valores forem muito
pequenos, o aprendizado poder ser muito lento.
A ltima considerao a ser feita sobre o algoritmo backpropagation em relao aos
valores de sada da rede. Em geral a faixa de variao da sada desejada uma, enquanto que a
funo de ativao cobre outra faixa. Deve-se reescalar esta varivel de forma que ela se
encontre numa regio eficiente de operao do ponto de vista do algoritmo de
treinamento[18].

4.4ASREDESRECORRENTESEAAPRENDIZAGEMCOMPETITIVA
Por questo de foco do trabalho, os outros tipos de redes neurais existentes (diferentes
do perceptron multicamadas com algoritmo backpropagation) no sero explorados to a
fundo neste captulo. Entretanto, interessante situar o leitor no que existe de alternativa s
redes MLP (multi layer perceptron), at porque outros trabalhos sobre o mesmo assunto desta
dissertao utilizam outros tipos de rede. A literatura disponvel para os assuntos a seguir
muito vasta.

4.4.1REDESRECORRENTES

4.4.1.1 Redes de Elman e Jordan

113

As redes recorrentes so redes neurais parecidas com as vistas anteriormente. A


diferena a realimentao, ou seja, a ativao ou sada dos neurnios da ltima camada
podem ser utilizados como entrada na camada escondida, ou na camada de entrada. A sada da
camada oculta pode ser utilizada como entrada dela mesma e outras variaes conforme o tipo
de rede e a aplicao.
Em 1986, Jordan apresentou a sua rede onde os valores de ativao da sada voltavam
rede como neurnios extras de entrada(figura 4.17). O peso dessas novas entradas era o valor
fixo +1 e no participavam do processo de treinamento que permanecia o mesmo das redes
MLP. Em 1990, Elman apresentou a sua rede onde os valores de ativao dos neurnios da
camada oculta eram reutilizadas como entradas da mesma(figura 4.17) e foram chamados de
unidades de contexto. Seus valores de ativao so sempre os valores da camada oculta no
passo anterior de aprendizagem (t-1)[17].
As redes de Jordan e Elman podem ser utilizadas para reproduzir seqncias de tempo,
por exemplo para controlar um objeto se movendo em 1D. A idia das redes recorrentes a de
lembrar estados anteriores dos valores de entrada[17].

Figura 4.17 Redes recorrentes de Jordan e Elman

4.4.1.2 Rede de Hopfield


As primeiras redes recorrentes surgiram em 1977 com Anderson e Kohonen. Em 1982,
Hopfield apresentou um modelo matemtico completo para redes recorrentes, juntando as
idias dos seus antecessores. A rede de Hopfield possui uma nica camada de neurnios
realimentados e implementa assim uma memria auto-associativa, isto , ao ser apresentado

114

um padro de n bits a rede retorna um padro armazenado de n bits que lhe mais
prximo(associado).[22]. A figura 4.18 mostra uma rede de Hopfield. A sada de cada
neurnio a entrada para outros neurnios com excesso dele mesmo.

Figura 4.18 Rede de Hopfield


Desta maneira a ativao de cada neurnio pode ser calculado como
N

a i= wij s j e iBi (4.13)


i =1

onde a ativao, w o peso, s a sada, e a entrada, B o bias e i o nmero do neurnio,


variando de 1 a n.

Em forma de vetor, a frmula fica


A=WSE B .

A matriz W a matriz de pesos, simtrica e com diagonal igual a 0, escolhida inicialmente


atravs do treinamento.

Os padres a serem armazenados na memria associativa so escolhidos priori e


treinados de acordo com a equao
m

w ij = 2a i 1 2a j 1 (4.14)
p

p =1

p p p
p
p
Sendo que cada padro p um vetor a 1 a 2 a 3 ... an com a i = 0 ou 1

existindo m padres distintos.

115

p
A funo 2a j 1 converte 0 e 1 em -1 e +1.

p
p
O peso w ij incrementado em 1 se a i =a j e decrementado de 1 caso contrrio.

Este procedimento repetido para todos i, j e para todos os m padres.

Com o treinamento realizado e a matriz W definida, o estado da rede ser definido


pelo vetor de sada S. Individualmente, as sadas so calculadas para cada neurnio atravs da
funo de ativao. Se o valor da ativao(equao 4.13) for menor que 0, a sada ser -1, se
for maior que 0, a sada ser +1. Desta maneira, por exemplo, uma sada do tipo [1 -1 -1 -1 1
... 1] define o estado de uma rede de Hopfield. Como apenas 2 valores so possveis para cada
neurnio, 2 n estados so possveis.
Se a diagonal da matriz de pesos nula e ela uma matriz simtrica, ento a rede
recorrente estvel, provaram Cohen e Grossberg em 1983. Uma vez que a rede est estvel,
so aplicadas as entradas, com os padres a serem reconhecidos, causando um estado de
transio da rede. Aps a entrada, os novos valores de ativao podem ser calculados de 3
maneiras:
a) assncrona: cada neurnio calcular individualmente sua sada aleatoriamente, um de cada
vez. O novo valor de sada de um neurnio acarretar na mudana do valor de entrada dos
demais;
b) Seqencial: semelhante ao anterior, porm no mais de maneira aleatria e sim os
neurnios em seqncia;
c) Sncrona: todos os valores de sada dos neurnios calculados simultaneamente, utilizando
os valores velhos de peso.
Esta transio continua, at a rede conseguir equilibrar-se, retornando, na sada, o
padro associado. A rede se equilibra quando a condio sgn [ A]=O satisfeita[24].
Quando isso ocorre, o prximo estado da rede igual ao estado presente e a transio termina.
Em termos da funo de energia da rede, os padres armazenados na Rede de
Hopfield so mnimos locais da funo de energia(estados de equilbrio). A partir de um
padro apresentado(valor inicial) a rede estabiliza no mnimo de energia de sua respectiva
bacia de atrao. Isto , no retorna necessariamente o padro geometricamente mais

116

prximo. Alm disso, pode acontecer de que haja mnimos locais no desejados, levando a
rede a retornar padres esprios.[22]. A figura 4.19 ilustra melhor a situao.

Figura 4.19 Padres e funo de energia da Rede de Hopfield

A rede de Hopfield muito utilizada para reconhecimento de caracteres, porm,


apenas no mbito acadmico, justamente por causa de suas limitaes: ocorrncia de padres
esprios, nmero mximo de padres limitado e o fato do padro recuperado no ser
necessariamente o padro mais prximo.

4.4.2APRENDIZAGEMCOMPETITIVA

At o momento, a discusso sobre redes neurais artificiais conduzida considerou que


havia sempre um par de exemplos para treinamento: a entrada e a sada desejada. Todavia,
existem problemas nos quais a sada desejada no est disponvel. Apenas a entrada provida
e a rede neural tem que ser capaz de gerar uma sada adequada ao problema. Alguns exemplos
destes problemas so[17]:

a) clustering: a entrada precisa ser agrupada em conjuntos ou clusters e a rede neural tem que
achar esses conjuntos para os dados de entrada. A sada do sistema o nome do conjunto a
que pertence aquela entrada.
b) vector quantization: um espao contnuo precisa ser discretizado. A entrada do sistema
um vetor n-dimensional x e a sada uma representao discreta do mesmo.
c) reduo de dimensionalidade: a entrada agrupada em um sub-espao que tem dimenso

117

menor do que a dimenso da entrada.


Este tipo de soluo em redes neurais chamada de aprendizagem no supervisionada,
ou seja, no necessrio um professor externo para ensinar a rede (sadas desejadas).

4.4.2.1 Neurnio vencedor


A aprendizagem competitiva um tipo de rede com aprendizagem no supervisionada.
A figura 4.20 ilustra um exemplo de uma rede simples de aprendizagem competitiva. Todos os
neurnios da camada de entrada esto conectados aos neurnios da camada de sada. Desta
maneira, quando um padro qualquer apresentado na entrada, apenas um dos neurnios de
sada ativado. Ele chamado de neurnio vencedor. Em uma rede corretamente treinada,
todos os padres que pertencerem a um mesmo conjunto, tero o mesmo neurnio vencedor.

Figura 4.20 Aprendizagem Competitiva


Para determinar o neurnio vencedor, existem dois mtodos principais: produto escalar
e distncia euclidiana.
O mtodo do produto escalar requer que os vetores de entrada x e de pesos w estejam
normalizados em uma mesma unidade de tamanho. A sada de cada neurnio o produto
escalar do vetor de entrada pelo vetor de peso do neurnio de sada. No fim, o neurnio que
tiver a maior sada o vencedor(ativao 1), o restante permanece com ativao zero. O ajuste
dos pesos feito apenas nos pesos do neurnio vencedor e faz com que o vetor de peso seja
rotacionado para a entrada. Toda vez que aquela entrada, ou uma prxima for apresentada
rede, este neurnio, por ter os pesos mais prximos entrada ser selecionado e novamente
rotacionado para aquela entrada. Este mtodo porm falham quando os vetores no esto
normalizados. Se um dos vetores de peso, por exemplo, for bem maior do que o outro e o
vetor de entrada for do tamanho do segundo, mesmo que a entrada esteja mais prxima do
primeiro, o produto escalar far com que o segundo seja o vencedor.
O mtodo da distncia euclidiana consiste basicamente no mesmo mtodo do produto

118

escalar, porm serve para dados no normalizados. O vencedor agora ser escolhido pela
menor distncia euclidiana entre os vetores(entrada e peso de cada neurnio).
Aps o treinamento, por exemplo em uma rede com 4 neurnios de sada, os vetores
desses neurnios estaro agrupados de acordo com cada conjunto de entrada, como mostra a
figura 4.21

Figura 4.21 Conjuntos de dados entrada classificados por uma rede de aprendizagem
competitiva; clustering
Uma quantizao de vetores divide o espao de entrada em um determinado nmero de
sub-espaos, representando cada entrada com o nome do sub-espao correspondente. A
grande diferena para a tcnica de cluster que o interesse passa a ser todo o espao de
entrada, no s os conjuntos de dados similares. A figura 4.22 ilustra a diviso do espao de
entrada por quantizao de vetores. As regies onde a densidade de entrada maior(parte de
baixo) so representadas por mais neurnios(5) e as regies onde no h tantos valores de
entrada(parte de cima) so representadas com menos neurnios(2). As aplicaes para a
quantizao de vetores podem estar na rea de telecomunicaes ou storage, onde os dados
precisam ser comprimidos. Tambm h mtodos que combinam quantizao de vetores com
aprendizagem supervisionada para aproximao de funes ou reconhecimento de padres.

Figura 4.22 Quantizao de vetores

119

4.4.2.2 Rede LVQ


A rede LVQ, ou learning vector quantization, foi apresentada por Tuevo Kohonen no
meio dos anos 80. um exemplo de uma aplicao hbrida de aprendizagem supervisionada e
aprendizagem no supervisionada. A rede formada por uma camada de entrada, uma camada
intermediria(camada Kohonen) e uma de sada (figura 4.23). As camadas de sada
representam o nmero de diferentes classes da rede. Essas classes so agrupadas pela camada
Kohonen. O nmero de neurnios de cada camada depende da complexidade da relao
entrada-sada.

Figura 4.23 LVQ learning vector quantization


Este tipo de rede define limites de deciso no espao de entrada. Os dados de
treinamento so como decises exemplares e a partir deles a rede definir as classes. O
algoritmo basicamente o seguinte[17]:
a) A cada neurnio de sada, uma classe c associada;
b) Um exemplo de treinamento consiste em um vetor de entrada e sua respectiva classe
associada;
c) Utilizando alguma medida de distncia entre os vetores de peso e o vetor de entrada, os 2
melhores neurnios so selecionados;
d) Estes neurnios so comparados com a sada desejada(escolhe-se o vetor de peso que seja a
classe a que a entrada pertence) e um deles o vencedor;
e) O vetor de pesos do vencedor rotacionado para o vetor de entrada e o do perdedor
rotacionado para longe do vetor de entrada.
Existem diversos tipos e novos algoritmos LVQ esto surgindo para determinar a
melhor maneira de escolher as classes associadas, quantos neurnios vencedores devem ser
selecionados, como ajustar os pesos e como adaptar o nmero de neurnios de sada.

120

4.4.2.3 Rede Kohonen

A rede Kohonen pode ser considerada como uma evoluo das redes LVQ, embora
cronologicamente ela tenha surgido antes. Utiliza aprendizagem no supervisionada e se autoorganiza de acordo com caractersticas topolgicas dos padres de entrada. uma rede
surgida como mais uma observao das caractersticas do crebro biolgico. Em muitas reas
do crebro as atividades sensoriais so representadas na forma de mapas de duas dimenses.
Por exemplo no sistema visual, h muitos mapas topogrficos do espao visual na superfcie
do crtex visual. Um beb quando nasce precisa aprender a focar seus olhos e mapear o que
ele enxerga. Em poucos dias, sem que ningum lhe ensine, ele aprende a associar os estmulos
visuais que recebe com os objetos e formas do mundo. Ou aprende a trajetria de movimento
dos objetos.
Um sistema de auto-aprendizagem proposto por Kohonen procura explicar como redes
neurais podem se auto-organizar e aprender sem que lhe seja fornecida a resposta correta para
aquele padro de entrada. A rede Kohonen no um sistema hierrquico e sim um array de
neurnios bastante interconectados uns aos outros. A figura 4.24 ilustra uma rede deste tipo
em duas dimenses. As entradas esto conectadas aos neurnios atravs de pesos ajustveis e
estes esto conectados entre si atravs de pesos fixos. As entradas recebidas por estes
neurnios so no s as entradas dos padres da rede, mas as sadas dos outros neurnios da
mesma camada.

Figura 4.24 Rede Kohonen bidimensional

121

Durante cada ciclo de treinamento, um padro completo apresentado a cada


neurnio. A sada calculada atravs da funo sigmide da soma de peso multiplicado pela
entrada. Aps isso, a entrada removida e os neurnios interagem entre si. O neurnio com a
maior ativao declarado vencedor e escolhido para prover a sada. Entretanto, os pesos
ajustados so os pesos no s do neurnio vencedor e sim todos os pesos de sua vizinhana. O
tamanho da vizinhana decresce a cada ciclo.
O treinamento da rede Kohonen realizado basicamente pelo algoritmo[24]:
a) desejvel que os vetores de entrada e de pesos estejam normalizados. Ento, os pesos so
inicializados de maneira aleatria;
b) Um vetor de entrada apresentado para a rede. Todos os neurnios da rede recebem este
vetor.
c) O neurnio vencedor escolhido como o que tiver a maior similaridade de medida entre o
seu vetor de pesos e o vetor de entrada. Por exemplo, a medida de menor distncia euclidiana
pode ser escolhida.
d) O raio da regio de vizinhana do neurnio vencedor diminui. Este raio poder ser
escolhido bastante grande no incio do treinamento e vai diminuindo para incluir apenas o
neurnio vencedor e seus vizinhos imediatos.
e) O peso do neurnio vencedor e seus vizinhos so ajustados de acordo com a frmula
W i novo =W i velho [x W i velho ]

sendo W i o vetor de pesos, x o vetor de entrada e a taxa de aprendizagem.


Dependendo do tamanho da vizinhana, uma funo gaussiana F i poder ser utilizada e a
frmula reescrita para:
W i novo=W i velho F i [ xW i velho ] (4.15)

f) O prximo vetor de entrada apresentado. Os passos c, d, e so repetidos at o fim de


todas as entradas.
Para uma boa convergncia, a taxa de aprendizagem e o tamanho da vizinhana dever
ser diminudo gradualmente a cada ciclo. No incio do treinamento, como a vizinhana est
bastante grande, muitos neurnios iro aprender cada padro. medida em que o treinamento
se desenvolve, o tamanho da vizinhana vai diminuindo gradualmente e menos neurnios iro
aprender cada padro. At o momento em que o neurnio vencedor ir ajustar apenas seu
prprio peso. Ento a rede estar treinada.

122

A figura 4.25 mostra um exemplo de treinamento da rede Kohonen. No primeiro


quadro, 2000 vetores de entrada espalhados. No segundo quadro a inicializao de 30 vetores
de peso. No terceiro quadro, a representao dos vetores de peso aps 5000 ciclos de
treinamento.

Figura 4.25 Treinamento de uma rede Kohonen bidimensional

4.5CONSIDERAESFINAISSOBREREDESNEURAIS

As redes neurais podem ser divididas em relao sua micro-estrutura, meso-estrutura,


ou macro-estrutura(figura 4.26).
A micro-estrutura diz respeito s caractersticas de cada neurnio. Os neurnios so
formados pela soma do produto entre entrada e pesos, podendo ser deslocada pelo valor do
bias antes de passar pela funo de ativao. As funes de ativao so dos mais diversos
tipos como linear, sinal, degrau, logstica, tangente hiperblica, etc.
A meso-estrutura diz respeito topologia das redes neurais. Quantos neurnios por
camada, quantas camadas e o tipo de conexo (forward, backward, lateral). Ela pode ser uma
rede perceptron multicamadas, uma rede recorrente de Hopfield, uma rede hbrida, formada
por sub-redes ou qualquer outro tipo de configurao que venha dar algum resultado.
A macro-estrutura diz respeito ao tamanho das redes e ao grau de conectividade. Na
verdade uma associao de redes para abordar problemas complexos.

123

Figura 4.26 Micro e Meso estruturas de redes neurais


O treinamento de redes neurais possui dois paradigmas: treinamento supervisionado
ou aprendizagem associativa e treinamento no supervisionado ou auto-organizao. No
primeiro, o treinamento realizado com a presena de um professor externo que prov o par
de exemplos para o treinamento: padro de entrada e sada desejada. No segundo, o neurnio
de sada treinado para responder com conjuntos de padres associados s entradas. Neste
caso, no h classificaes a priori das categorias de padres. O sistema tem que construir sua
prpria representao dos padres de entrada.
Quanto ao uso de redes neurais em aplicaes reais, a figura 4.27 ilustra alguns tipos
de aplicao que podem utilizar redes neurais. Em (1), a classificao ou reconhecimento de
padres. Em (2), a categorizao ou diviso em conjuntos. Em (3), a aproximao de funes.
Em (4), a capacidade de predio do prximo valor. Em (5), a otimizao de uma rota. Em
(6), a memria associativa. Em (7), o controle.

Figura 4.27 Aplicaes de redes neurais


Para terminar o estudo, vale a pena ressaltar as caractersticas positivas e negativas da

124

utilizao de redes neurais artificiais[22]:


Positivas:
a) capacidade de aprendizagem: as redes neurais no so programadas e sim treinadas com
padres podendo ser adaptadas atravs da entrada;
b) paralelismo: as redes neurais so massivamente paralelas e muito adequadas para
simulao ou implementao de computao paralela;
c) representao distribuda do conhecimento e tolerncia a falhas: o conhecimento
armazenado de forma distribuda em seus pesos, aumentando a tolerncia do sistema a falhas
de neurnios individuais. Entretanto o sistema deve ser treinado prevendo esta possvel falha,
nem toda rede automaticamente tolerante a falhas;
d) armazenamento associativo da informao: para um certo padro de entrada, a rede fornece
o padro que lhe mais prximo. O acesso no feito por endereamento;
e) robustez contra perturbaes ou dados ruidosos: quando treinadas para tal, as redes so
mais preparadas para lidar com padres incompletos(ruidosos).
Negativas:
a) aquisio de conhecimento s possvel atravs de aprendizado: devido representao
distribuda, muito difcil introduzir conhecimento prvio em uma rede neural;
b) no possvel a introspeco: no possvel analisar o conhecimento ou percorrer o
procedimento para a soluo como possvel em sistemas especialistas;
c) difcil deduo lgica (seqencial): quase impossvel obter-se cadeias de inferncias
lgicas em redes neurais;
d) aprendizado lento: principalmente em redes completamente conectadas e quase todas as
variantes do algoritmo backpropagation.

125

5DETECODEINTRUSOUTILIZANDOREDESNEURAIS
Na discusso de sistemas de deteco de intruso, feita no captulo 3, os IDSs foram
divididos de acordo com sua abrangncia de deteco. O HIDS o IDS de host, residente na
mquina destino e que possui uma deteco baseada em chamadas de sistema e gerenciamento
de arquivos e registros. O NIDS o IDS de rede, residente em um ponto estratgico na rede,
onde consegue enxergar todo o trfego, inspecionando pacote a pacote. Alm disso, dividiu-se
o mecanismo de deteco de intruso em dois casos: o mecanismo baseado em assinatura,
onde o sistema precisa de um conhecimento prvio do ataque cadastrado em sua base e o
mecanismo baseado em anomalia, que procura por atividades que o sistema aprendeu como
no normais.
A pesquisa na rea de deteco de intruso antiga e os primeiros passos foram dados
por James P. Anderson em 1972. De l pra c, muitos IDSs foram construdos. A maioria dos
IDS comerciais existentes implementam uma deteco baseada em assinatura. Normalmente
se preocupam com questes como esquemas de gerenciamento, flexibilidade de adaptao a
uma rede especfica a ser monitorada, proteo prpria contra cdigos maliciosos,
interoperabilidade com outras ferramentas de segurana, monitorao de novas aplicaes,
gerncia de eventos, atualizao da base de assinaturas e resposta ativa a ataques (mudana
em regras de firewall, reconfigurao de roteador).
Alguns dos principais HIDS comerciais existentes so o Cybercop da Network
Associates (NAI), KaneSecurity Monitor da RSA Security e o Tripwire. Os NIDS so o
RealSecure da ISS, o Cisco Secure IDS ou NetRanger da Cisco Systems, o Centrax da
CyberSafe corporation e a Network Flight Recorder. Alm desses, existe um NIDS que ser
especialmente detalhado mais tarde e utilizado, o SNORT, um software de cdigo aberto
disponvel na Internet (http://www.snort.org).
O grande problema dos sistemas baseados em assinatura, como j foi discutido,
constante atualizao que eles tm que receber dos administradores com as novas assinaturas.
So sistemas vulnerveis a ataques desconhecidos. Alm disso h alguns tipos de ataque,
como os de fragmentao que conseguem enganar esses IDSs.
Os sistemas baseados em anomalia, ou comportamento podem ser construdos atravs
de mecanismos de limiar (por exemplo detectar atividade anormal atravs do consumo
excessivo de CPU), medidas estatsticas (valores histricos), medidas baseadas em regras de

126

sistemas especialistas e algoritmos no lineares. A utilizao mais comum a de anlise


estatstica, onde o usurio ou o comportamento do sistema medido por um nmero de
variveis ao longo do tempo. Por exemplo, nmero de logins, consumo e durao de recursos
durante uma sesso. O maior desafio achar uma medida sensata para considerar fora da
normalidade, evitando uma quantidade grande de falso positivos.
A utilizao de algoritmos no lineares para deteco por anomalia o objeto do
presente trabalho. Isso porque estes algoritmos podem ser os algoritmos de redes neurais
artificiais, detalhados no captulo 4. Este captulo dedicado a apresentar estudos de diversas
Universidades espalhadas pelo mundo a respeito de deteco por anomalia atravs de redes
neurais. Diversos artigos esto disponveis na Internet e as mais diversas tcnicas de redes
neurais j foram testadas para deteco de intruso.

5.1ABASEDARPADEDETECODEINTRUSO

Com o objetivo de testar e melhorar a performance dos sistemas de deteco de


intruso em trfego real, uma base de dados realista e em larga escala foi construda e
patrocinada pela US Defense Advanced Research Projects Agency (DARPA) em 1998[43].
Foram 9 semanas de trfego observado e capturado entre sites, operando efetivamente como
se fossem da fora area americana, e a Internet. O trfego e os ataques foram gerados numa
rede simulando milhares de hosts UNIX e centenas de usurios. Das 9 semanas, 7 foram
separadas para dados de treinamento e 2 para dados de teste.
Os ataques resultantes da base foram divididos em 4 grandes categorias: ataques de
negao de servio (DoS); ataques de exploit R2L (remote to local), isto , acessos no
autorizados de uma mquina remota; ataques U2R (user to root), isto , acessos no
autorizados de usurio normal para usurio privilegiado (root, ou super usurio); ataques de
levantamento de dados, inspeo, scanning e outros ataques.
Uma vez colhidos os dados via tcpdump e classificados por especialistas, foi realizado
um critrio de avaliao para que diversos IDSs fossem testados. O critrio levava em
considerao um aspecto muito importante que a diferena entre ataques que envolvem uma
simples ou poucas conexes como ataques U2R e R2L e ataques que envolvem mltiplas
conexes como ataques de DoS. Alm disso avaliava a quantidade de falso positivos e falso

127

negativos gerado pelos IDSs e a velocidade de deteco. Mais detalhes em


http://www.ll.mit.edu/IST/ideval.
A base de dados resultante do projeto DARPA, contendo todo o trfego capturado
durante as 9 semanas e com 300 ataques classificados em 32 diferentes tipos encaixados
naquelas 4 categorias foi disponibilizada publicamente e praticamente todos os estudos
posteriores sobre deteco de intruso com redes neurais utilizaram esta base para fazerem
seus testes de deteco.

5.2APLICAOEMHIDS

A deteco de intruso por anomalia utilizando um algoritmo no linear como redes


neurais pode realizada atravs da anlise de diversos parmetros disponveis. Monitorar
arquivos ou registros importantes, processos, chamadas de sistema, pacotes de rede so alguns
exemplos de mtricas que podem ser utilizadas para treinar uma rede neural e depois aplicar
na deteco. Os trabalhos acadmicos referentes a cada um dos testes e aplicaes construdas
sobre o assunto normalmente possuem sua prpria classificao do que seja IDS de host ou de
rede. Por questes de classificao didtica, o presente trabalho apresenta o IDS de rede como
aquele que monitora os pacotes e protocolos de rede capturados. Os demais parmetros se
encaixam na categoria host.

5.2.1RSTCORPORATION
A Reliable Software Technologies Corp. (RST) financiou, em 1999, uma importante
pesquisa realizada por A. Ghosh e A. Schwartzbard[29] na aplicao de redes neurais
artificiais para deteco de intruso por anomalia na anlise de perfis de comportamento de
programas. O sistema foi construdo com base na captura de chamadas de sistema feitas pelos
programas para monitorar o comportamento dos mesmos e apontar possveis desvios de
comportamento que possam significar uma intruso.
Primeiramente implementaram uma rede Multi-Layer Perceptron (MLP), utilizando o
algoritmo backpropagation juntamente com o algoritmo Luck Bucket para memorizar eventos
anmalos recentes atravs do gerenciamento de um contador. Para os testes a base DARPA foi

128

utilizada e os resultados foram satisfatrios: 77% dos ataques (entre conhecidos e novos)
foram detectados e a taxa de falsos positivos de 3% foi considerada alta. O principal ataque
detectado pelo mecanismo foi o ataque U2R (user to root).
Depois, com a ajuda de M. Schatz et all[29], foi implementado um modelo de rede
neural com uma nova topologia. A rede recorrente de Elman demonstrou ser mais efetiva que
a anterior na deteco de ataques, principalmente o U2R. Ela foi utilizada no reconhecimento
de caractersticas recorrentes em trilhas de execuo de programas e o resultado aplicado
base DARPA foi de deteco de 77% dos ataques sem nenhum falso positivo. Foi construdo
um prottipo em linguagem C de implementao de redes Elman para deteco em tempo
real.

5.2.2TEXASUNIVERSITY
Em 1998, em Austin: Jake Ryan, Meng-Jang Lin e Risto Mikkullainen[31] prepararam
um paper com os resultados de seus estudos com redes neurais artificiais para deteco de
intruso. A argumentao era de que cada usurio deixa uma impresso prpria ao utilizar o
sistema. Isso decorre dos comandos que so utilizados por este usurio. Uma rede neural pode
ser treinada para aprender a impresso para cada usurio. Se um comportamento de usurio
no corresponder mais sua impresso, o administrador do sistema dever ser avisado de uma
possvel intruso.
Foi construdo, ento, um sistema de deteco de intruso offline, ou seja, que analisa
o trfego bem depois que ele ocorreu. O sistema aprende os padres de comportamento
legtimo do usurio baseado na distribuio de comandos que o mesmo executa. Os comandos
(sem os argumentos) foram coletados durante 12 dias e eram computados o nmero de
comandos e a quantidade de vezes que ele aparecia. Um total de 100 comandos foram
cadastrados e classificados com um valor de 0 a 1. Esse valor dependia do nmero de vezes
que o comando aparecia. O valor 0 era para comandos nunca utilizados, 0,1 para comandos
usados 1 ou 2 vezes. O nmero ia aumentando at chegar no valor 1 para comandos que
apareciam mais de 500 vezes.
O treinamento foi realizado em uma rede MLP backpropagation com 100 entradas
correspondentes aos comandos, 30 neurnios na camada oculta e 10 na camada de sada,
correspondendo ao nmero de usurios monitorados. Foram utilizados 8 dias de comandos,
escolhidos aleatoriamente, para o treinamento (65 vetores) e os 4 dias restantes para

129

simulao (24 vetores). O nmero de pocas testadas para treinamento foram de 30, 50, 100,
200 e 300, sendo que o nmero de 100 pocas resultou na melhor performance.
A avaliao da simulao era feita pelo valor de ativao dos neurnios de sada. A
sada referente a um determinado comando tinha que ser maior no neurnio correspondente ao
usurio que executou o comando e tinha que ser maior do que 0,5. Caso contrrio, era relatado
um falso positivo. A taxa de deteco no melhor caso foi de 96% das intruses. O nmero de
acertos quanto ao usurio que realizou o comando ficou em 93% e o nmero de falso
positivos ficou em 7%.

5.2.3UFMG
No Brasil, em 1999, na Universidade Federal de Minas Gerais, Ricardo Bernardo dos
Santos, Walmir Matos Caminhas e Luciano de Errico[28] trabalhavam em uma pesquisa de
deteco de intruso offline por anomalia atravs de uma rede MLP backpropagation muito
parecida com a pesquisa da Universidade do Texas. A idia era monitorar comandos
importantes do sistema operacional em busca de anomalias que indicassem ataques. A
topologia da rede utilizada era de 81 neurnios de entrada, 30 neurnios na camada escondida
e 15 neurnios de sada.
O sistema operacional utilizado para a monitorao foi o Linux. Os 81 neurnios de
entrada representavam 81 mtricas representantes dos comandos auditados pela pesquisa. Os
15 neurnios de sada representavam a quantidade de usurios que estavam sendo
monitorados. Um total de 405 vetores foi utilizado na pesquisa, sendo que 80% foi utilizado
para treinamento e 20% para validao. Alm disso 68 desses vetores foram utilizados como
anmalos.
Os resultados foram satisfatrios. A taxa de falso positivos encontrada nos dados de
teste foi de 3%. A taxa de deteco de comportamento intruso foi de 95,5%, enquanto que
4,5% foi a taxa de falso negativos, ou seja, intruses que no foram detectadas.

5.3APLICAOEMNIDS

As pesquisas para aplicao de redes neurais artificiais para IDS de rede existem em

130

maior nmero do que as anteriores. Alm disso, aproximam-se mais da proposta do atual
trabalho, como ser visto em captulos mais adiante. Um nmero muito grande de trabalhos
acadmicos foram publicados sobre o assunto. Alguns dos principais so relatados neste
tpico.

5.3.1MIT
Os pesquisadores Richard P. Lippman e Robert K. Cunningham[34], os mesmos que
comandaram as pesquisas sobre a base de dados DARPA, foram responsveis pela conduo
de testes aplicando redes neurais artificiais no modelo de deteco de intruso em redes. O
trabalho deles foi no sentido de procurar palavras-chave especficas para ataques de intruso
dentro do trfego de rede e a partir delas detect-los.
Eles utilizaram uma rede MLP backpropagation de 2 camadas para deteco de
ataques do tipo U2R. A primeira camada tinha k neurnios, a camada oculta 2k neurnios e a
camada de sada 2 neurnios, representando trfego normal ou ataque. A melhor performance
foi obtida com 30 palavras-chave.
A taxa de deteco final utilizando a base DARPA ficou em 80%, incluindo deteco
de ataques conhecidos e desconhecidos (que no foram treinados). Ataques distribudos em
mltiplas sesses tambm foram detectados.

5.3.2NOVASOUTHEASTERNEGEORGIAUNIVERSITY
Em 1998, James Cannady[30] pela escola de cincias da informao da Universidade
Nova Southeastern publicou um artigo sempre citado em trabalhos posteriores sobre o
assunto. A proposta era realizar uma prova de conceito afim de mostrar que a maneira
tradicional de deteco de intruso, ou seja a deteco baseada em assinatura, poderia ser
substituda por mecanismos de redes neurais.
Segundo Cannady, os IDSs existentes so focados em sistemas especialistas baseados
em regras pr-existentes e so necessrias constantes atualizaes e anlises humanas
posteriores. Alm disso, se preocupam apenas com fatos isolados e no no estado de transio
do sistema durante o ataque. Desta forma, ataques distribudos e coordenados so difceis de
detectar. Variaes de um ataque tambm podem enganar o sistema. As redes neurais
artificiais no possuem esse tipo de problema, medida que basta trein-la com um conjunto

131

de dados ilustrativos e esperar que ela realize a anlise sem muitas explicaes. Porm, ao
contrrio dos sistemas especialistas, as redes neurais artificiais no conseguem prover uma
resposta definitiva se determinada caracterstica constitui um ataque ou no. Ela fornece uma
estimativa da probabilidade de ser ataque. A preciso dessa estimativa depende da experincia
do sistema na anlise de exemplos (treinamento e validao).
Cannady construiu um prottipo de IDS com uma rede MLP backpropagation com
uma camada de entrada com 9 elementos, duas camadas ocultas com nmero de elementos
varivel e escolhido empiricamente e dois elementos na camada de sada representando
trfego normal ou trfego de ataque. A funo de transferncia utilizada a sigmide. A base
de dados utilizada no foi a DARPA. Cannady utilizou o monitor de rede RealSecure da
empresa ISS (Internet Security Systems, Inc) para coletar os pacotes da rede, analisando como
ataque ou no. E utilizou o Internet Scanner, tambm da ISS e o Satan Scanner para atacar a
rede. Desta maneira, ele criou amostras de trfego normal e trfego de ataque para
treinamento da rede neural. As 9 entradas da rede foram escolhidas de acordo com sua
importncia na descrio das informaes transmitidas pelo pacote. So campos dos
protocolos IP, TCP, UDP e ICMP. So eles: protocolo, porta de origem, porta de destino,
endereo de origem, endereo de destino, ICMP tipo, ICMP cdigo, tamanho do pacote e
nmero identificador do pacote. Um dcimo elemento foi acrescentado para o treinamento, o
campo ataque (0 ou 1).
Aps 10.000 pocas de treinamento e 1.000 pocas de testes, o erro mdio quadrtico
ficou em 0,058 e a taxa de acerto nos testes ficou em 97,5%.
Ainda em 1998 pela Georgia Tech Research Institute (GTRI em Atlanta),
Cannady[33] acrescentou s suas pesquisas de deteco de intruso atravs de redes neurais as
redes no supervisionadas SOM (Self-Oganizing Maps) de Kohonen. Com isso, ele criou um
segundo prottipo de deteco que ele chamou de MLP/SOM com a misso de identificar
ataques mais complexos como os ataques colaborativos(mltiplos atacantes) e dispersos no
tempo(nico atacante).

132

Para criar o prottipo, ele dividiu o trfego de rede entre normal e ataque, cada qual
contendo 180 eventos, ou seja 3 minutos considerando 1 evento por segundo. Cada evento era
constitudo pelos 50 primeiros caracteres de rede (nmeros dos campos de protocolos)
adicionando-se o nmero da porta de destino no final para facilitar a identificao do
protocolo de aplicao. O exemplo aplicado como prova de conceito foi o ataque de fora
bruta em um servidor FTP, com 9 tentativas de login espalhadas em 3 minutos.
Os eventos (50 primeiros caracteres mais porta de destino) serviam como entrada para
uma rede SOM 25x20 que classificava os dados em clusters e depois calculava uma sada
numrica para cada evento atravs de uma frmula. A sada numrica era utilizada como
entrada da rede MLP e o treinamento e testes eram realizados. O resultado final com testes de
fora bruta no FTP foi muito bom. A rede acertou 97,2% das vezes com 18 eventos de FTP
includos no conjunto de dados.
Em 2000, Cannady, juntamente com Brandon Craig Rhodes e James A. Mahaffey[32]
pela diviso de cincia da computao da Universidade da Gergia, publicaram um artigo
reafirmando a utilizao de redes no supervisionadas SOM como um poderoso suplemento
s tcnicas tradicionais de IDS e as tcnicas de IDS utilizando redes neurais supervisionadas.
Segundo eles, os mapas de Kohonen durante o treinamento podem aprender o comportamento
normal do trfego do usurio e apontar as anomarlidades depois de treinadas.
Em seu artigo, eles defendem a adoo de mapas mais especializados e sensveis ao
trfego que o anterior. Para isso propem um pr-processamento determinstico. A partir da
apresentam questes tericas sobre os mapas como sua estrutura bi-dimensional e retangular
(podendo ser hexagonal) e o treinamento que consegue segregar vetores de entrada diferentes
em categorias diferentes. O grande desafio seria apresentar esses vetores na entrada de
maneira correta. No caso de deteco de anomalias, os vetores teriam que espelhar o trfego
de rede de tal forma que pudesse alimentar um mesmo tipo de anlise. Eles apontam
dificuldades imensas em criar esses vetores devido grande disparidade dos pacotes de rede:
diferentes objetivos, destinos, conexo com durao muito varivel, payload muito varivel e
dependente da aplicao.
A soluo seria a criao de diferentes monitores de rede, cada um especializado em
uma rea. Por exemplo, um analisador IP, outro TCP, UDP, DNS, HTTP. Cada qual treinado
para reconhecer a atividade normal de um nico protocolo e enviar um alarme quando um
desvio significante for encontrado. Nem todos esses especialistas precisam ser redes neurais.

133

Por exemplo, um ataque de fragmentao de IP facilmente reconhecido atravs de regras. A


idia

que

trfego

seja

decomposto

em

especialistas

de

maneira

vivel

computacionalmente. No caso de mapas de Kohonen, possvel existir diversos mapas com


diversos vetores diferentes analisando diferentes caractersticas dos protocolos. No se pode,
porm, exagerar no nmero de mapas, pois corre-se o risco de perder a capacidade de
correlao de eventos.
Seguindo esse pensamento, eles criaram um mapa de Kohonen com o objetivo
especfico de identificar ataques de buffer overflow, ignorando, dessa forma, qualquer outro
tipo de ataque. O experimento foi realizado em linguagem C no Linux e a linguagem Python
foi utilizada para melhor visualizao dos mapas. Os dados de rede coletados com o tcpdump.
O protocolo que eles escolheram para monitorar foi o DNS via TCP, devido sua relativa
simplicidade: suas requisies e respostas so definidas para serem simtricas utilizando uma
mesma rotina. Uma amostragem de aproximadamente 40 pacotes foi utilizada. Os 30
primeiros para o treinamento da rede e o restante para testar a capacidade de generalizao da
mesma. Ento 2 exploits foram submetidos rede e lanados no mapa e observou-se o
resultado. Os vetores de entrada eram muito simples e contavam quantos octetos do pacote se
encaixavam em cada categoria de caracter (alfanumrico, numrico, de controle e noASCII). Isso porque o ataque de buffer overflow tende a ser em pacotes muito grandes e com
caracteres binrios onde se espera texto.
Os resultados foram muito bons. Os mapas permaneceram estveis com variao de
menos de 10% a cada inicializao randmica de treinamento. Quando aplicados os exploits, o
mapa mostrou claramente a diferena entre o trfego normal e o ataque. Enquanto os valores
normais da medida de distncia do trfego ficava entre 0 e 3, os exploits produziram pacotes
que ficaram acima de 8 e algumas aberraes com valores de 30, 630 e at de 13.000 (no caso
do pacote que carregava o payload do exploit).

5.3.3NEWMEXICOINSTITUTE
Srinivas Mukkamala, Guadalupe Janoski e Andrew Sung em 2002[35] pelo New
Mexico Institute publicaram um artigo onde descreviam e comparavam a utilizao de redes
neurais artificiais e Support Vector Machines (SVMs) na deteco de intruso. A base de
dados utilizada por eles foi a base DARPA de 1998, assim como a classificao dos ataques
(DOS, R2L, U2R e scann) e as 41 variveis de trfego caractersticas de cada conexo.

134

Support Vector Machine (ou SVM) uma tcnica de aprendizado de mquina que
implementa um mapeamento no-linear dos vetores de entrada para um espao caracterstico
de alta-dimenso, em que o hiperplano timo construdo para separar os dados linearmente
em duas classes. No caso da deteco de intruso essas classes so ataque e normal. A SVM
classifica os dados determinando uma srie de vetores de suporte, membros dos dados de
treinamento que contornam o hiperplano no espao caracterstico. O entendimento profundo
das SVMs est alm do objetivo deste estudo. As vantagens da SVM so a alta velocidade de
resposta e a escalabilidade, visto que as SVMs so relativamente insensveis ao nmero de
dados de entrada e independente da dimensionalidade do espao caracterstico.
No experimento prtico, foram utilizados 22 ataques diferentes e a classificao foi de
+1 para normal e -1 para ataque. Os vetores de entrada tinham 41 campos, mas os 13 mais
importantes foram selecionados empiricamente e tambm foram testados. Foram realizados 4
experimentos. O primeiro treinamento consistiu em 65000 entradas, sendo 10000 para testes
com os 41 campos. O segundo consistiu no mesmo nmero de entradas, porm com os 13
campos mais importantes. O terceiro, 14000 entradas, sendo 7000 para testes com 41 campos
e o quarto as mesmas entradas para 13 campos. As taxas de acerto encontradas foram
respectivamente 99,6%, 99,57%, 99,53% e 99,52%.
No experimento com redes neurais, foram utilizados 14000 dados de entrada incluindo
dados normais e de ataque. 7000 para treinamento e outros 7000 para testes. Uma rede MLP
foi utilizada e o resultado foi uma taxa de acerto de 99,48% com 13 entradas e 99,41% com 41
entradas. A grande diferena, entretanto, foi o tempo de resposta do mtodo. Enquanto as
SVMs demoraram de 1 a 2 segundos para testar os experimentos com 7000 entradas, a rede
neural demorou de 30 a 40 minutos para os mesmos testes. Eles terminam o artigo concluindo
que como as SVMs so limitadas a fazerem classificaes binrias, elas possuem
propriedades superiores de velocidade, escalabilidade e generalizao em relao s redes
neurais.

5.3.4BRASIL
Renato Maia Silva e Marco Antnio G.M. Maia[36] do Centro de Estudos em
Telecomunicaes (CETUC) da PUC-RJ publicaram um artigo onde demonstram a utilizao
de uma rede MLP para implementar uma rede neural artificial para deteco de intruso. A
base de dados utilizada foi a DARPA. Houve um pr-processamento para adaptar os dados ao

135

intervalo [-1;1]. A toolbox de redes neurais do software Matlab R11 foi utilizada. A rede era
composta por duas camadas ocultas com 10 neurnios cada. A funo de ativao era tangente
hiperblica. Quatro testes foram realizados. O primeiro possua 9 entradas referentes s
caractersticas bsicas do TCP/IP e uma sada (valor -1 para normal e 1 para ataque). O
segundo possua 41 entradas (caractersticas da conexo) e uma sada, a mesma do anterior. O
terceiro possui as 9 entradas do primeiro e uma sada (-1 normal, 0 ataque do tipo Neptune e 1
ataque do tipo Smurf). O quarto tambm possua 9 entradas, porm 4 sadas (normal,
neptune, back e smurf).
Os resultados obtidos foram muito bons. A rede 1 apresentou em seu melhor resultado
uma taxa de acerto de 96% e 3,9% de falso positivo. A rede 2, 95% de acerto e 1,4% de falso
positivo. A rede 3, 97,5% de acerto e 0% de falso positivo. A rede 4, 92% de acerto e 0% de
falso positivo.
Em 2004, Fbio Bombonato e Flvia E.S. Coelho[37] divulgaram um artigo
apresentando um projeto que batizaram de beholder. Consiste em um IDS programado em
linguagem C que captura o trfego de rede utilizando a biblioteca libpcap. A partir da com o
auxlio de duas ferramentas de redes neurais: EasyNN e SNNS, a rede MLP treinada e
testada. Os campos de entrada foram os mesmos do MLP de Cannady. A diferena que os
campos IP origem e IP destino foram divididos em 4 partes cada para diminuir a magnitude.
O treinamento foi realizado aplicando-se um ataque manual de port scanning com a
ferramenta nmap. A rede possua 15 entradas, uma camada oculta com 4 neurnios e uma
sada binria: ataque ou normal.
Os resultados novamente foram muito satisfatrios. A taxa de validao ficou em
99.58%. O treinamento durou 44.059 pocas. Eram 5577 pacotes de treinamento, 200 de
validao e 18 de teste. A taxa de aprendizado era de 0,3 e o momentum de 0,8. Os resultados
aps o treinamento foram de 100% de acerto para trfego normal e 99,5% para diversas
tcnicas de port scanning exceto o TCP connect() que no foi detectado, segundo eles por
uma semelhana com padres de situao normal.

5.3.5UBILABLABORATORY
Luc Girardin da UBILAB, em 1999[39], publicou um artigo que viria a ser muito
influente em pesquisas posteriores. Girardin apresenta uma representao visual para anlise
da atividade de rede. Ele utilizou uma rede no supervisionada SOM de Kohonen para

136

projetar os eventos de rede em um espao apropriado para visualizao. Aps isso, e ao


contrrio de outros sistemas, seria necessria uma anlise humana para explorar as atividades
de rede procura de padres de intruso.
Segundo Girardin, o ser humano tem uma habilidade natural em lidar com a
complexidade e uma metfora visual desperta o senso de tomada de decises. Abre a
possibilidade de realizar julgamentos a respeito de certa coisa: se normal ou anormal, crtico
ou isolado, benigno ou maligno. Uma classificao topolgica atravs de algoritmos de
inteligncia artificial para visualizao e explorao de logs prov novos caminhos para
explorar, trilhar e analisar intrusos. Torna a monitorao amigvel e suporta uma
representao mental em busca do inesperado. Cada vetor de entrada representa um ponto no
espao de alta-dimenso. A distncia entre dois pontos inversamente proporcional sua
similaridade. A reduo de dimensionalidade provocada pelos mapas de Kohonen, representa
os vetores em 2 ou 3 dimenses preservando a informao essencial.
Para realizar a prova de conceito a base dados utilizada foi a do Exploration Shootout
project de Georges Grinstein de 1997. Essa base continha 4 diferentes tipos de ataques: IP
spoofing, ftp password guessing, network scannig e network hopping. A distncia euclidiana
o mtodo utilizado para medir a disparidade entre os vetores e, em conseqncia classific-los
quanto semelhana. Para tentar compensar a diferena de magnitude entre os campos flags,
type of service e os demais campos, esses atributos foram tratados com uma dimenso para
cada valor, no vetor de entrada. Foi utilizado um SOM de duas dimenses. O processo de
aprendizado foi realizado da seguinte maneira: inicializa-se aleatoriamente o valor dos pesos;
apresenta-se o vetor de entrada; encontra-se o neurnio vencedor(menor distncia); modificase o peso dos vetores prximos a ele; apresenta-se novo vetor de entrada e repete-se os passos
seguintes. A cada entrada uma medida de qualidade do mapa pode ser calculada utilizando-se
o erro de quantizao, a distncia do vetor de entrada para o vetor que mais vezes venceu. O
tempo de processamento computacional necessrio para criar os mapas proporcional sua
dimensionalidade e o nmero de neurnios, mas no depende do tamanho dos dados de
entrada. Entretanto, dados de entrada com relaes muito complexas demoram mais para
convergir durante o treinamento. Essas relaes devem ser definidas empiricamente.
A figura 5.1 ilustra a visualizao do mapa de Girardin. Alm das caractersticas
explicadas na prpria figura, as caractersticas a seguir foram utilizadas: a cor dos neurnios
corresponde ao valor do peso para cada um; o tamanho corresponde ao nmero de eventos

137

mapeados naquele neurnio, permitindo que se identifique imediatamente os tipos de trfego


mais e menos freqentes; a cor de fundo representa o erro de quantizao mdia de todas as
entradas resultantes do neurnio. Um erro alto conseqncia de eventos raros e atpicos, o
que pode facilitar bastante a anlise de deteco por anomalia medida que os eventos
anmalos so eventos raros e atpicos.

Figura 5.1 Mapa de Kohonen (Girardin, 1999)


Os campos utilizados para formar os vetores de entrada foram capturados via tcpdump
eram os seguintes: timestamp, endereo de origem, endereo de destino, porta de origem,
porta de destino, flags (TCP), nmero seqencial de dados(TCP),

nmero seqencial

esperado para o retorno(TCP), nmero de bytes disponveis no buffer receptor(TCP),


indicao de urgncia dos dados(TCP) e tamanho do pacote(UDP). Cada arquivo tinha
aproximadamente 30MB e os campos eram separadas por vrgulas. Os arquivos continham
trfego normal e os 4 tipos de ataques(um em cada arquivo) j citados.
O grande problema da anlise no conseguir identificar claramente quais hosts esto

138

se comunicando com quais. Entretanto relativamente simples identificar o trfego que desvia
do normal. O ataque de IP spoofing do primeiro arquivo, por exemplo, foi reconhecido ao se
observar o comportamento no usual de algumas conexes que no completaram o three-way
handshake e ficavam isoladas no mapa. Alm disso, haviam muitos pacotes redundantes, alm
de outros comportamentos estranhos. No segundo arquivo, um elevado nmero de conexes
FTP iniciadas da rede interna, com direo a 12 hosts diferentes criavam mais de 60 conexes
suspeitas que no estavam ligadas com nenhum trfego de resposta. O diagnstico foi ataque
de password guessing. Os principais parmetros dessa descoberta foram: o intervalo curto de
tempo em que os hosts eram testados, um aps o outro, o endereo de origem era sempre o
mesmo, as portas de origem eram muito prximas uma das outras, a porta de destino era
sempre ftp. O ataque de scann foi identificado facilmente, pois o host de destino respondeu
sondagem de pacotes da mesma origem em 40 portas diferentes em 1 minuto. O resultado no
mapa foi que apenas 3 neurnios foram os vencedores e concentraram todos os pacotes de
ataque. O ltimo ataque, network hopping quando uma conexo usada para iniciar outra
conexo para fora, possivelmente para confundir o defensor. Ele foi descoberto atravs de uma
correlao de trfego de entrada e sada. Por exemplo muitos pacotes de telnet direcionados a
um host interno, mas idnticos a pacotes de rlogin destinados rede externa.
Girardin termina o artigo reconhecendo que o trabalho ainda est no seu incio. Os
logs utilizados no so suficientes para criar padres complexos e de fcil visualizao. Ele
recomenda um trabalho com outras fontes de log como firewall, roteadores e sniffers juntos e
correlacionados. Tambm recomenda um uso mais sofisticado de noo de tempo, criando
outras caractersticas, como periodicidade por exemplo.

5.3.6OHIOUNIVERSITY
Em 2003, Manikantan Ramadas, Shawn Ostermann e Brett Tjaden[40] publicaram um
artigo descrevendo um sistema chamado de Integrated Network-Based Ohio University
Network Detection Service (INBOUNDS), um IDS de rede desenvolvido pela universidade de
Ohio. O Anomalous Network-Traffic Detection with Self-Organizing Maps (ANDSOM) seria
um mdulo do sistema. O artigo um resumo da tese de mestrado de Ramadas, orientado por
Ostermann. O diagrama do INBOUNDS mostrado na figura 5.2.

139

Figura 5.2 Arquitetura INBOUNDS (Ramadas/Ostermann/Tjaden, 2003)


O mdulo Intrusion Detection o corao do sistema, pois onde se toma a deciso
online se o trfego um ataque ou no. O mdulo Display uma GUI onde pode-se
acompanhar o trfego. o mdulo de Active Response realiza aes de resposta, como adicionar
regra ao firewall, limitar a banda, fechar uma conexo TCP com o flag RST, etc. Ele destaca
ainda que outros mdulos podero ser adicionados no futuro, como por exemplo um IDS
baseado em assinatura (como o SNORT), ou um modulo Bayesiano.
O mdulo Data Source o mdulo que captura os pacotes da rede atravs do programa
tcpurify (de Ethan Blanton, universidade de Ohio). Ele reporta apenas os 64 primeiros bytes
de cada pacote (protocolos TCP e UDP). Depois disso, os dados vo para o mdulo Data
Processor, onde o programa de anlise de conexo desenvolvido por Ostermann e chamado
tcptrace processa o trfego e fornece a sada de 3 maneiras diferentes para cada conexo:
Open quando uma nova conexo aberta na rede. Existe um campo Status indicando o valor 1
se apenas um dos lados da conexo mandou o pacote com flag SYN e 0 para os demais casos e
para os pacotes UDP; Update reportado periodicamente durante o tempo de vida da
conexo. Possui os campos INTER(interatividade da conexo, nmero de questes por
segundo), ASOQ(tamanho mdio das questes), ASOA(tamanho mdio das respostas),
QAIT(intervalo de tempo entre pergunta e resposta, por segundo) e AQIT(intervalo de tempo
entre resposta e pergunta, por segundo); Close quando uma conexo anteriormente aberta
fechada na rede. Tambm h um campo Status, 0 quando os pacotes com flag FIN foram
mandados e 1 se a conexo foi fechada com flags RST. Em comum, os campos timestamp,
protocol, source host:port, destination host:port.

140

O mdulo ANDSOM precisa ser treinado para depois entrar em operao. O


treinamento feito de acordo com o tipo de servio a ser modelado (web, email, telnet, etc).
Por exemplo, se o objetivo for modelar o trfego web, ento feita uma coleta de dados do
maior nmero possvel de trfego web normal (usa-se o SNORT para evitar que ataques sejam
capturados nesse trfego). Desta maneira, a rede SOM aprende o comportamento normal de
trfego. O vetor de entrada composto por 6 campos: os cinco campos da sada Update do
mdulo anterior mais o campo DOC, que o tempo de durao da conexo, ou seja, a
diferena do timestamp da sada Open para o timestamp da sada Close para determinada
conexo. Os campos QAIT e AQIT so tratados em base logartmica, devido diferena de
magnitude. Aps isso, todos os campos so normalizados baseados na varincia de cada
dimenso. O software utilizado para treinamento o software livre desenvolvido em C
SOM_PAK e a visualizao feita pelo toolbox SOM para software MatLab.
Aps o treinamento, o mdulo ANDSOM entra em operao. Ele recebe as mensagens
de conexo (Open, Update e Close) e as converte no vetor de entrada de 6 dimenses. Um
neurnio vencedor escolhido para cada vetor. Depois normaliza-se o vetor com os valores
estatsticos recebidos do treinamento. Um neurnio vencedor escolhido. Se a distncia deste
vencedor para o vencedor em 6 dimenses for maior do que 2 unidades, ento o trfego
considerado anmalo. Os experimentos foram realizados em cima de trfego DNS e HTTP.
Por exemplo, o treinamento de trfego DNS foi realizado com 8857 vetores e foi construdo
um mapa 19x25. Um exploit para o software de DNS BIND 8.2.x foi testado e foi classificado
corretamente como anmalo. A distncia do neurnio normalizado vencedor do exploit para o
neurnio vencedor em 6 dimenses ficou em 22.314, ou seja, muito maior do que 2 unidades.
Aps algumas experincias com HTTP, SMTP e DNS, eles concluram que o sistema
bastante eficiente em detectar ataques de buffer overflow, porque eles diferem bastante do
padro normal de trfego. Porm ataques que lembram o trfego normal no foram detectados
com eficincia.

5.3.7UNIVERSITYOFNEWBRUNSWICK
Em 2004, John Zhong Lei e Ali Ghorbani[41] publicaram um artigo pela Faculdade de
Cincia da Computao da Universidade de New Brunswick em Fredericton no Canad. O
objetivo do artigo era propor um novo mtodo de deteco de intruso baseado em
aprendizagem competitiva e comparar esse novo mtodo ao SOM. Esse novo mtodo

141

derivado do Standard Competitive learning Network (SCLN) e foi chamado de Improved


Competitive Learning Network (ICLN).
O SCLN composto de uma nica camada, onde os neurnios de entrada esto
totalmente conectados aos neurnios de sada. Quando um vetor de entrada apresentado a
rede h um neurnio vencedor e apenas o seu peso reajustado atravs de parmetros como
peso anterior, taxa de aprendizagem e vetor de entrada. A performance do SCLN
extremamente dependente do nmero de neurnios de sada e da inicializao do vetor de
pesos. Por sua vez, o ICLN utiliza o mesmo critrio para reajustar o peso do neurnio
vencedor, porm, todos os outros neurnios tm o peso reajustado por uma funo chamada
Gaussian Kernel. Atravs desse parmetro, os demais pesos se afastam do vetor de entrada,
enquanto que o vencedor se aproxima. Este processo elimina as limitaes do SCLN, alm de
acelerar a classificao dos dados em clusters. O ICLN utiliza basicamente a mesma frmula
do SOM para reajustar os pesos. A diferena que no SOM apenas os pesos da vizinhana
so reajustados dependendo da distncia e da varincia e no ICLN todos os pesos so
reajustados tambm dependendo da distncia.
Na prtica, os experimentos foram realizado utilizando a base de dados DARPA.
101.000 conexes foram utilizadas para treinamento e 400.000 para teste. De 21 tipos de
intruso, apenas 7 foram utilizados no treinamento, para testar a capacidade de descobrir
novas intruses. As caractersticas da conexo utilizadas para os vetores de entrada foram
protocolos (tcp, udp ou icmp), tipo de servio (70 diferentes, como http, smtp, etc) e flags (11
diferentes). Essas caractersticas foram mapeadas em valores quantitativos na preparao dos
dados. O nmero de neurnios de sada foi testado com vrios valores iniciais (9,15,18 e 20).
Os mesmos experimentos foram realizados para o SOM e para ICLN e o caso de 15 neurnios
de sada iniciais foi analisado mais a fundo. No caso do SOM, o mapa 3x5 resultou em 5
neurnios obsoletos, ou seja, sem nenhum vetor classificado. O nmero de clusters, portanto
ficou 10 e o tempo de classificao foi de 2162s. A preciso ficou em torno de 98%. O ICLN
resultou em 6 clusters para todos os valores iniciais de vetores. A preciso ficou em torno de
98% e o tempo de classificao foi de 608s.
A concluso que o novo mtodo ICLN tem uma performance melhor do que o SOM
em termos computacionais, sendo que a preciso praticamente a mesma. Alm disso, o
nmero de clusters independe do nmero de neurnios de sada iniciais.

142

5.3.8KINGMONGKUT'SUNIVERSITYOFTECHNOLOGYTHONBURI
Chaivat Jirapummin, Naruemon Wattanapongsakorn e Prasert Kanthamanon em
2003[42] publicaram um artigo pela King Mongkut's University of Technology Thonburi em
Bangkok, na Tailndia. A proposta era a de um sistema de deteco de intruso hbrido
baseado em Self-Organizing Maps (SOM) e Resilient Propagation Neural Network (RPROP)
para visualizao e classificao de padres normais e de intruso. O RPROP uma verso
acelerada da rede supervisionada MLP com o algoritmo backpropagation.
A base de dados DARPA foi utilizada nos experimentos e foram testados os ataques
SYN flooding e port scanning. 121.820 padres de treinamento foram divididos em 8 sesses.
Primeiro cada sesso foi classificada em clusters por um SOM de 1.234 unidades. Depois os
dados passavam por uma rede RPROP com 70 neurnios na camada de entrada, 12 na oculta e
4 na sada (indicando trfego normal, ataque Neptune, ataque Portsweep, ou ataque Satan).
Foram realizados 20 diferentes treinamentos e testes.
Dois testes foram escolhidos para avaliao de resultado. O teste 1 continha 98.648
padres capturados da mesma rede do treinamento. O teste 2 continha 126.373 dados de uma
rede diferente. O resultado do teste 2 foi de 99% de deteco e 0,05% de falso positivos para
ataques de Neptune, 97% de deteco para Port Sweep e 4,19% de falso positivos, 90% de
deteco para Satan e 4,49% de falso positivos. Alm disso, os tipos de ataques ficaram
claramente separados em clusters no mapa SOM.

5.3.9RENSSELAERPOLYTECHNICINSTITUTE
Em 2002, Chandrika Palagiri, Alan Bives, Rasheda Smith, Boleslaw Szymanski e
Mark Embrechts publicaram pelo Rensselaer Polytechnic Institute de Nova Iorque um artigo
descrevendo um sistema hbrido de redes neurais artificiais para deteco de intruso.
Utilizou-se uma rede SOM para classificao dos dados e uma rede MLP backpropagation
para deteco de intruso. Ao relatar trabalhos relacionados, Chandrika citou a diferena deste
sistema para alguns dos citados acima. A diferena na parte de treinamento da rede
supervisionada para o sistema de Lippmann do MIT que este procura por palavras chave
dentro do payload dos pacotes, enquanto que o deles no utiliza o payload, alm de monitorar
as portas utilizadas. A diferena na parte no supervisionada para o de Girardin que eles no
tem necessidade dos efeitos visuais do mapa e nem precisam de anlise humana. A rede SOM

143

apenas divide o trfego em clusters fornecendo uma classificao.


A anlise de intruso comea com a necessidade de retirar parmetros do trfego de
rede. A idia inicial saber quantas vezes um host acessado em um determinado intervalo
de tempo e quais portas foram acessadas neste intervalo de tempo. No processo de
treinamento as portas mais importantes so escolhidas, atravs de um algoritmo.
Primeiramente so escolhidas as portas conhecidas e um nmero de portas extras a serem
monitoradas. Aps um intervalo de tempo no treinamento, essas portas conhecidas so
acrescentadas do nmero de portas extras escolhido n, que corresponde s n portas mais
acessadas no intervalo. O resultado final um nmero N de portas acessadas em um intervalo.
Alm disso, o nmero de endereos de origem M computado. Assim, a entrada da rede fica
com um tamanho N*M. Por exemplo, 5 portas foram escolhidas para serem monitoradas e 4
diferentes origens foram identificadas. A rede teria 20 entradas, a primeiro as 5 portas da
primeira origem, depois 5 da segunda origem e assim sucessivamente. O grande problema
dessa tcnica variao constante do nmero de entradas da rede, mudando praticamente a
cada intervalo de tempo. Uma rede supervisionada MLP necessita de um nmero de entradas
esttico, tornando o mtodo inutilizvel. A soluo encontrada foi utilizar a rede SOM para
classificar os dados de entrada em um nmero fixo de clusters que servem de entrada para a
rede MLP. Assim, possvel que durante a fase de aprendizagem, o nmero de entradas seja
diferente do nmero na fase de deteco, desde que o nmero de clusters seja igual.
Um software em C utilizado para fazer o treinamento da rede e um software em java
utilizado para os testes, a partir dos pesos da rede treinada (salvos em um arquivo). Os dados
so normalizados em valores entre 0 e 1. O detector java construdo para funcionar em
tempo real. Para os testes, a base DARPA foi utilizada. Foram testes bem modestos. Primeiro
foi testado a capacidade de detectar todos os ataques da base. O resultado foi 100% do trfego
normal corretamente classificado. 24% do trfego de ataque corretamente classificado e 76%
de falso positivos. O segundo teste, em um ataque especfico (DOS sshprocesstable) foi bem
mais animador. 100% do trfego normal foi corretamente classificado e 100% do trfego de
ataque foi corretamente classificado.

5.4CONSIDERAESFINAIS
Neste captulo foi visto que as redes neurais artificiais tm sido amplamente estudadas
como um mtodo de deteco de intruso alternativo ao mtodo baseado em assinaturas.

144

Os estudos, apesar de serem bem recentes, percorrem os mais diversos parmetros


tanto na escolha do paradigma da rede (supervisionada ou no supervisionada), quanto na
escolha da configurao da rede (nmero de camadas, nmero de neurnios), quanto na
escolha dos parmetros de entrada, quanto na escolha da base de dados para testes.
Possibilidades infinitas de utilizao ainda esto em aberto, at que se construa um modelo
slido de utilizao.
Praticamente todos os mtodos apresentaram bons resultados prticos. Apesar disso,
so resultados ainda muito limitados ao meio acadmico e com pouca aplicao prtica
comercial. Por conta disso, ainda no existe um sistema comercialmente vivel de utilizao
de redes neurais para deteco de intruso.
A proposta deste trabalho apresentar uma configurao baseada nos trabalhos
estudados. A grande inovao, entretanto, na base de dados utilizada para a coleta de
amostras de ataque para treinamento e testes. Ao invs de utilizar a base DARPA, j
antiga(1998) e pertencente a um contexto especfico, ou utilizar ataques simulados
manualmente, pretende-se utilizar uma base coletada de uma rede real.
Seria desejvel que esta rede fosse a de produo. Todavia, coletar dados de ataque de
uma rede em produo requer que essa rede seja atacada, o que no desejvel. Requer,
tambm, que exista um mecanismo que classifique corretamente todos os ataques. Justamente
este mecanismo(IDS existente) est sendo criticado no trabalho.
A soluo encontrada configurar uma rede, com a maior proximidade possvel da
rede de produo(endereamento, servios, sistemas operacionais, etc) para coletar os ataques
que seriam sofridos na produo e treinar redes neurais artificiais especficas para cada
ataque. Esta rede, construda para ser atacada o mecanismo chamado honeynet e ser visto
no prximo captulo.

145

6HONEYNET

Honeynet uma rede construda exclusivamente para ser invadida. O objetivo principal
investigar os mtodos utilizados pelos invasores para acessar o sistema e, posteriormente, as
aes realizadas por eles. Esta rede constituda por hosts intensionalmente vulnerveis, com
um endereo vlido na Internet e por toda uma estrutura de captura, anlise de dados e
proteo da rede. O atacante acha que est invadindo o sistema e tirando proveito da situao,
mas na verdade ele est fornecendo subsdios para que se possa estudar suas tcnicas de
sondagem, invaso e comprometimento do sistema. O termo mais genrico de Honeynet
honeypot, ou seja, pote de mel. Uma isca, ratoeira, armadilha. Na realidade uma honeynet
um tipo de honeypot onde os sistemas so reais. Existe um outro tipo, onde softwares
simplesmente emulam os sistemas operacionais e a prpria rede.
Historicamente, a primeira experincia a respeito de anlise de intruses surgiu em
1988, quando Clifford Stoll fez um relatrio sobre uma invaso sofrida nos laboratrios da
LBL (Lawrence Berkley Laboratory). Ao invs de expulsar os atacantes (ou Black Hats),
Clifford decidiu estudar suas atividades, registrando seus passos e sua origem. O estudo durou
cerca de 1 ano e revelou aspectos importantes, o motivo dos ataques e quais redes
interessavam mais aos atacantes. Em 1992, Bill Cheswick publicou um artigo descrevendo os
resultados do acompanhamento de invases em um sistema da AT&T especialmente projetado
para ser comprometido. Steven Bellovin tambm participou do projeto, construindo
ferramentas utilizadas para armadilhas e captura de logs. Em 1998 surge o termo honeypot.
Foi neste ano que Fred Cohen desenvolveu o DTK (Deception Toolkit), uma ferramenta de
cdigo aberto feita com o objetivo de enganar os atacantes, emulando diversas
vulnerabilidades e coletando informaes sobre os ataques sofridos. Em 1999 Lance Spitzer
liderou um grupo de pesquisadores e especialistas em segurana criando o Honeynet Project,
que ser mais detalhado adiante no captulo. A partir da, o termo honeynet ganhou
repercusso mundial e o desenvolvimento de novas ferramentas e sistemas de defesa passaram
a ser realizados no mundo todo.

146

6.1HONEYNETPROJECT

O Honeynet Project[44] (www.honeynet.org) foi criado por Lance Spitzer e tem como
principal objetivo compartilhar experincias, documentao, ferramentas e conhecimento a
respeito de invases e tcnicas utilizadas por invasores. Foi criada em 1999 e funciona atravs
de uma constante e gratuita pesquisa de seus membros e colaboradores.
Alm do Honeynet Project, existem diversos outros projetos de honeypots espalhados
pelo mundo. Muitos deles esto interligados atravs do frum Honeynet Research Alliance,
criado em 2002. Eles no so membros do Honeynet Project e sim entidades independentes
que contribuem com a aliana com o propsito de pesquisar e desenvolver solues de
honeynet, alm de compartilhar as lies aprendidas. Os membros da aliana esto espalhados
pelo mundo: Alemanha, China, Espanha, Portugal, Frana, Itlia, Paquisto, Brasil, Inglaterra
e outros.
Cada projeto, como entidade independente, possui sua prpria rede, seus prprios
papers e ferramentas para estudo das atividades dos black hats. Algumas ferramentas e
estudos importantes so publicados pelo Honeynet Project. No Brasil, por exemplo, existe o
HoneynetBR que faz parte da aliana mundial, mas possui a sua prpria aliana, a Brazilian
Honeypots Alliance, formada basicamente por Universidades e organizaes espalhadas por
todo o pas. Alm disso, existem grupos de pesquisadores independentes, como a HoneypotBR que no participam das alianas.
No portal honeynet.org possvel encontrar todo o tipo de documentao a respeito do
assunto, incluindo artigos, apresentaes, monografias e textos. So documentos revisados
pela equipe do projeto. Tambm so disponibilizados documentos individuais escritos pelos
membros do projeto e apresentados em conferncias. Alm disso, existe um livro: Know your
Enemy, escrito por especialistas do projeto e reconhecido como um dos melhores na rea.
possvel, tambm, baixar ferramentas de cdigo aberto para a construo de honeynets. Outra
prtica muito interessante a construo e disponibilizao de desafios. So anlises de
ataques reais feitas pelos diversos projetos de honeynet e compartilhadas na forma de desafios
para que toda a comunidade de segurana possa analisar e descobrir como o ataque foi
realizado.
O Honeynet Project preparou uma apresentao do projeto, onde identifica as

147

principais ameaas na Internet: so centenas de scanners todos os dias; os ataques so


inicialmente focados em sistemas Win32; a expectativa de vida para um sistema Win32
vulnervel abaixo de 3 horas, enquanto que um sistema linux vulnervel de 3 meses; um
honeypot vulnervel pode ser compromissado em 15 minutos manualmente e em menos de 1
minuto atravs de worms; os atacantes podem controlar milhares de sistemas em uma rede
zumbi (botnet).
Os motivos para a invaso variam muito, mas esto se tornando cada vez mais
criminosos, em busca de dinheiro e menos por curiosidade, em busca de conhecimento. Os
alvos so os usurios em massa, despreocupados com a segurana. O projeto descobriu
algumas tendncias interessantes: os ataques tendem a ser originados de pases
economicamente deprimidos (por exemplo a Romnia); os ataques esto se tornando
continuamente mais sofisticados; as ferramentas tambm avanam rapidamente e so em sua
maioria automticas (worms).
Ferramentas e ataques avanados cada vez mais comuns incluem botnets e ataques de
phishing. As redes zumbis so redes enormes (milhares ou dezenas de milhares de sistemas)
controladas por apenas um usurio

atravs de comandos

automatizados. Aps

comprometerem o sistema com um exploit bem sucedido, o invasor instala um binrio atravs
de HTTP, FTP, ou TFTP. Quando iniciado, o binrio conecta-se a um servidor IRC mestre
utilizando um nickname especial e uma senha conhecida pelo invasor. Os sistemas mais
facilmente infectados so Windows Xp e 2000 e as portas mais utilizadas so a 445, 139 e 135
TCP e 137 UDP. As redes so utilizadas para realizar ataques de DDoS, scanners, spams e
outros. Em 4 meses, o Honeynet Project cadastrou mais de 100 botnets. Apenas um canal
possua mais de 200.000 endereos IP. Apenas um computador tinha sido compromissado por
mais de 16 invasores de botnets. Foi estimado mais de 1 milho de sistemas compromissados
nesses 4 meses.
O ataque de phishing consiste em mandar e-mails falsos ou spams escritos como se
fossem de bancos, rgos do governo ou instituies no-governamentais com a intenso de
capturar dados importantes do usurio, como senhas, nmeros de carto de crdito, IDs, etc.
um ataque de engenharia social direcionado a usurios. Normalmente, mquinas
comprometidas ou botnets so usadas para mandar os e-mails com origem falsa ou hospedar
pginas falsas fingindo ser de instituies.

148

6.2HONEYPOTS

Um honeypot um sistema de informao cujo valor est no acesso no autorizado ou


uso ilcito de seus recursos (Spitzner, 2003). um elemento de segurana que diferentemente
de um firewall ou um IDS no resolve um problema especfico. uma ferramenta
extremamente flexvel construda para identificar qualquer tipo de ataque. Teoricamente,
honeypot um recurso que no possui trfego autorizado ou legtimo, isto , qualquer
interao que houver uma atividade no autorizada ou maliciosa. Lance Spitzner, em 2003,
identifica suas principais vantagens e desvantagens.
A primeira vantagem a coleta de poucos dados, porm de alto valor. Todo tipo de
trfego neste mecanismo uma atividade maliciosa, portanto tudo que for coletado uma
tentativa de ataque de grande valor; outra vantagem a descoberta de novas ferramentas e
tticas de invaso; a necessidade de recursos computacionais mnimos para sua construo
constitui outra vantagem; um honeypot consegue detectar e capturar trfego IPv6 e trfego
criptografado; tem a capacidade de coletar informaes profundas e possui uma simplicidade
de configurao. Existem, entretanto, duas dificuldades na sua utilizao. A primeira a viso
limitada que ele possui, conseguindo enxergar apenas o trfego que interage diretamente com
ele e ignorando outros sistemas existentes; a segunda, o risco que se corre de um atacante
conseguir domin-lo e utiliz-lo para comprometer outros sistemas.
Honeypots so divididos em dois tipos, de acordo com o seu nvel de interao com o
atacante. Honeypots de baixa interao so basicamente softwares que emulam a existncia de
uma rede de sistemas e procuram interagir com o atacante tentando faz-lo pensar que ali
existem sistemas reais. Honeypots de alta interao so sistemas reais, construdos
propositalmente vulnerveis e desatualizados para que o atacante consiga invadir e revelar
suas tticas e ferramentas. Este segundo tipo chamado de honeynet e possui no apenas
hosts vulnerveis, mas elementos de controle e anlise de dados.
Normalmente, constri-se um honeypot por dois motivos: utilizar na produo ou
realizar pesquisa. Quando usado na produo, o objetivo prevenir, detectar ou ajudar uma
organizao a responder a um ataque. Quando usado para pesquisa, possui o objetivo de
coletar informao e a partir da analisar das mais diversas maneiras e entender o modo de
agir dos atacantes. Freqentemente honeypots de baixa interao so utilizados para produo

149

e de alta interao para pesquisa. Contudo, tanto os de alta quanto os de baixa podem ser
utilizados para os dois motivos.
interessante comentar um pouco mais sobre os seguintes objetivos de um honeypot:
preveno, deteco e resposta a incidentes. Para prevenir um ataque contra ataques
automticos, como worms, existe o sticky honeypot, que atravs da monitorao do espao de
IPs no utilizados consegue diminuir a velocidade dos scanners podendo at par-los. Eles
utilizam os IPs no utilizados emulando um sistema real. Isso pode confundir tambm um
atacante real, faz-lo perder tempo e recurso interagindo com o honeypot, enquanto a
organizao detecta e prepara a resposta. O tipo de honeypot mais utilizado para preveno o
de baixa interao. A deteco utilizando um honeypot pode ajudar a resolver algumas
dificuldades da deteco tradicional atravs de IDS. Ele reduz a quantidade de falso positivos
pois captura pequena quantidade de dados de grande valor. Captura ataques novos e
desconhecidos como exploits e shellcodes. Por fim, consegue trabalhar com trfego
encriptado e IPv6. O tipo de honeypot mais utilizado para esse fim tambm o de baixa
interao. Para a resposta a incidentes, a vantagem de um honeypot a disponibilidade de ser
colocado offline a qualquer momento para uma anlise forense completa, o que impossvel
de fazer com um servidor de produo. Outra vantagem a pequena quantidade de dados de
grande valor, ante a grande quantidade de dados que no interessam de um servidor de
produo. O melhor honeypot para realizar esse tipo de tarefa o de alta interao, devido
necessidade de conhecimento profundo do ataque e das ferramentas.

6.2.1HONEYPOTSDEBAIXAINTERAO
As grandes vantagens deste tipo de honeypot so a sua simplicidade de manuteno e o
pequeno risco que ele oferece. O usurio s precisa escolher quais servios e sistemas
operacionais ele deseja emular e monitorar. O atacante no consegue utiliz-lo para atacar
outros sistemas. Todavia, a informao capturada bastante limitada e bem mais fcil para o
atacante perceber que trata-se de um honeypot.
O software de baixa interao mais popular o Honeyd, um software de cdigo aberto
criado por Niels Provos e que trabalha monitorando os IPs que no esto sendo utilizados.
Quando uma requisio chega para esses IPs, o Honeyd intercepta a conexo e pode interagir
com o invasor simulando ser a vtima. Com isso, o software registra e detecta qualquer

150

conexo TCP ou UDP. possvel configurar a monitorao de servios especficos, como


FTP. Quando o atacante conecta-se porta 21, o Honeyd interage com o atacante e registra
todas as atividades. O grande problema que a interao apenas ocorre quando o atacante
executa as aes esperadas pelo software. Se o atacante faz algo que o emulador no espera,
consegue descobrir atravs de uma mensagem de erro que trata-se de uma armadilha. Alm
disso, o Honeyd emula sistemas operacionais, tanto atravs dos servios quanto atravs da
pilha TCP/IP (para enganar os scanners).
Existem outros diversos softwares de baixa interao. O DTK (Deception Toolkit)
consiste em uma srie de scripts que emulam diversas vulnerabilidades conhecidas. Por
exemplo, uma vulnerabilidade no programa Sendmail que permite que o atacante capture um
arquivo de senhas falso. um software muito utilizado na preveno de ataques, j
comentada, pois o atacante perde um tempo precioso apenas para descobrir se os sistemas
vulnerveis so reais ou no. Porm, o DTK limitado para outros objetivos, j que apenas
vulnerabilidades conhecidas so exploradas. O Honeyperl outro software, desenvolvido pelo
grupo Honeypot-BR. Ele integra diversos servios fakes, ou falsos, como Squid, Telnet, HTTP,
FTP e SNMP com o objetivo de ludibriar o atacante e funciona em plataformas Linux e
Windows. Specter , KFSensor, LaBrea Tarpit, Cybercop Sting e Recourse Mantrap so outros
exemplos de softwares de baixa interao.

6.2.2HONEYPOTSDEALTAINTERAO
So solues mais completas e complexas, que envolvem sistemas e aplicaes reais.
Nada emulado. Possuem a vantagem da captura de maior quantidade de informao, o que
possibilita o aprendizado completo do comportamento dos black hats, at mesmo o que no
era esperado. Captura-se toda a atividade, sem fazer qualquer previso de um possvel
comportamento que o atacante teria no futuro. Descobre-se novos rootkits, sesses de IRC. O
grande problema, entretanto, o aumento do risco dos invasores utilizarem esses sistemas
reais para atacarem outros sistemas que no sejam honeypots. Os sistemas de alta interao,
em geral, so mais difceis de construir e manter.
Existem sistemas comerciais, como o Symantec Decoy Server, que implementam
honeypots de alta interao. Todavia, os sistemas mais populares desse tipo so as Honeynets.
No uma soluo pronta em software que se instala em um computador. uma arquitetura

151

de rede construda apenas para ser comprometida, com um rigoroso controle e processo de
captura de toda a atividade. Os invasores encontram, atacam e conseguem entrar no sistema
sem saber que se trata de uma armadilha. O sistema captura o trfego de entrada e ao mesmo
tempo controla o trfego de sada. Uma segunda fase consiste em uma anlise minuciosa de
todo o trfego.

6.3HONEYNETS
Uma honeynet um tipo de honeypot, no sentido mais amplo. Simultaneamente,
composta por diversos honeypots. Eles podem ser qualquer tipo de sistema, dependendo do
objetivo da rede. Um Solaris, um Windows 2003 Server, um FreeBSD, um roteador Cisco.
Podem tambm hospedar os mais diversos tipos de servio. A flexibilidade fornece o
verdadeiro poder das honeynets. Conceitualmente elas so muito simples. Qualquer trfego de
entrada considerado atividade maliciosa e qualquer trfego de sada iniciada pelo invasor.
Isso facilita imensamente a anlise dos logs quando comparado a outros elementos de
segurana como IDS ou firewall, que capturam trfego de todo tipo. importante salientar
que o modo de construo de uma honeynet pode determinar o perfil de ataque que ela
receber. Sistemas extremamente vulnerveis so facilmente comprometidos por script
kiddies, worms, bootnets, ou qualquer outro tipo de ataque automtico. Raramente sero
vtimas de ataques avanados. Redes sem vulnerabilidades aparentes so eficientes em
detectar ataques novos e sofisticados.
A fase de construo de uma honeynet a mais importante. Ela deve seguir alguns
requisitos de controle e de captura de dados que so essenciais para o sucesso do projeto. O
controle dos dados sempre prioritrio em relao captura. Isso porque o controle
destinado a minimizar os riscos da honeynet. A captura destinada a registrar cada atividade
do atacante sem que ele saiba.

6.3.1CONTROLEDEDADOS
O controle existe principalmente para mitigar o risco que se corre de danificar o
sistema de terceiros. Os invasores precisam de um bom grau de liberdade para agirem, at
porque quanto mais liberdade tiverem, mais se aprender sobre eles. No entanto, quanto mais

152

liberdade tiverem, maior o risco que se corre de conseguirem vencer o sistema de controle. O
grande desafio da construo de uma honeynet saber dosar esse grau.
Outro desafio ter que esconder o controle do atacante e garantir que ele seja efetivo.
Uma prtica essencial para evitar que se tenha apenas um ponto de falha realizar o controle
em camadas. Quanto mais elementos de controle houverem tanto melhor para prevenir ataques
novos e no conhecidos. Contador de conexes externas, gateway de preveno de intruso e
restrio de banda so alguns dos mecanismos possveis. Porm, necessrio ter em mente
que qualquer que seja a proteo, ela serve apenas para minimizar o risco, no para eliminlo.

6.3.2CAPTURADEDADOS
o processo de monitorar e registrar todas as atividades realizadas pelos invasores
sem que eles percebam. a coleta da matria-prima de qualquer anlise posterior com o
objetivo de aprender as tcnicas, ferramentas e motivos dos black hats. O grande desafio
capturar o mximo de infomaes possveis sem que o atacante saiba. Novamente a
arquitetura em camadas a melhor soluo. Quanto mais mecanismos houverem de captura
(logs de firewall, sniffers, logs de IDS, logs do sistema, etc), mais aprendizado eles traro.
Para evitar que os atacantes detectem a armadilha, uma soluo mexer o menos
possvel nos honeypots, ou seja, armazenar as informaes da captura em um outro local,
longe do invasor. Se este tiver acesso aos dados, no apenas detecta, mas modifica ou exclui.

6.3.3RISCOS
O risco em uma honeynet o preo que se paga por autorizar aos atacantes o acesso
privilegiado a sistemas e aplicaes. Cada organizao detentora de uma honeynet deve medir
por si prpria o risco que pretende correr. No existe um consenso quanto s questes legais
de uma honeynet e cada organizao responsvel pela sua. Os principais riscos percorrem
quatro reas: dano, deteco, desabilitao e violao.
O risco de dano ocorre quando uma honeynet utilizada para atacar ou danificar
outros sistemas reais, que no so honeynets. Qualquer que seja a proteo do sistema, ela
poder sofrer um ataque desconhecido que permita que o atacante provoque srios danos a

153

terceiros. A melhor forma de proteger-se realizar uma proteo com muitas camadas de
controle de dados. Apesar disso, ter em mente que o sistema no est totalmente protegido.
Quando o atacante detecta que est numa honeynet, ele passa a ignor-la ou procura
apagar os registros de sua invaso, eliminando toda a capacidade de captura e, portanto,
diminuindo o valor da honeynet. O atacante pode fazer pior, registrar informaes falsas e
confundir a anlise posterior dos logs.
Alm de detectarem a identidade de uma honeynet, atacantes podem querer desabilitar
seus mecanismos de controle e captura sem que o administrador saiba. Por exemplo, um
atacante ao conseguir acesso a uma honeynet desabilita seu mecanismo de captura, mas
simula algumas informaes para que o administrador pense que o mecanismo ainda est
funcionando perfeitamente. A maneira de reduzir esse risco novamente atravs de mltiplas
camadas de controle e captura de dados.
O risco de violao refere-se ao sentido legal. Atacantes podem realizar atividades
criminosas sem fazer nenhum tipo de ataque a terceiros. Um exemplo utilizar a honeynet
como servidor de materiais ilegais, como cpias piratas de filme, msica, pornografia infantil,
nmero de cartes de crdito roubados, etc.
Em todos os casos, a maneira mais eficiente de diminuir os riscos, alm de se construir
uma arquitetura em camadas, a constante monitorao humana e customizao do sistema.
aconselhvel que se tenha profissionais treinados capazes de fazer uma anlise da honeynet
em tempo real. Para um ataque ser identificado, necessrio monitorar e analisar todos os
dados capturados. Ter um profissional de segurana nessa tarefa essencial para evitar que
ataques novos e desconhecidos provoquem os riscos citados. As tcnicas automticas de
anlise neste caso no so eficientes devido complexidade das informaes e a possibilidade
de novos ataques. Em ltimo caso, a honeynet permite o recurso de ser desconectada da rede
para eliminar os riscos. A customizao do sistema para cada honeynet tambm essencial
para reduzir os riscos. Com os sistemas e aplicativos mal configurados, ou em configurao
padro, o atacante facilmente descobrir o sistema, pois documentao sobre o assunto no
falta na Internet.
A mensagem principal a respeito dos riscos que no importa quo eficiente seja o
controle e captura de dados em uma honeynet, o risco nunca eliminado (a no ser que a
honeynet esteja fora do ar), ele apenas pode ser mitigado.

154

6.3.4NAPRTICA
O exemplo prtico explicitado neste tpico baseado na honeynet GenII, ou segunda
gerao, do Honeynet Project. Serve para ilustrar os elementos que podem ser utilizados em
uma honeynet para garantir os pilares anteriormente citados de controle, captura e reduo dos
riscos.

6.3.4.1 Arquitetura

A vantagem de uma honeynet sobre os demais honeypots a sua flexibilidade. Um


software, por mais complexo que seja limitado s possibilidades imaginadas por seus
programadores. Uma arquitetura de rede completa prov interao real com o atacante e
aumenta infinitamente as possibilidades de captura e aprendizado de novas tcnicas de ataque.
Alm disso, cada organizao tem a liberdade de escolher sua prpria arquitetura, de acordo
com seu objetivo e planejamento.
Apesar de cada honeynet poder ser construda de maneira diferente, algumas
semelhanas de projeto so inevitveis para garantir o controle, captura e anlise de dados de
maneira mais fcil e centralizada. A principal delas a presena de um gateway separando a
honeynet do resto do mundo. Todo o trfego entrante ou sainte da honeynet obrigatoriamente
tem que passar pelo gateway. Ele age como um muro de proteo permitindo que o atacante
invada e, ao mesmo tempo, controlando sua sada. Este muro torna-se o centro de controle e
comando de toda a rede.
No projeto GenII, um linux 2.4.x em arquitetura x86 foi utilizado para funcionar como
um gateway camada 2. Isso quer dizer que a mquina no possui endereo IP e, portanto,
transparente ao atacante e muito mais difcil de ser detectada. Como pode ser observado na
figura 6.1, o muro, chamado de honeywall no projeto foi utilizado para separar a rede de
produo da rede armadilha e os endereos IPs de ambas as redes so endereos internos. O
objetivo dessa arquitetura foi o da captura de ameaas tanto externas quanto internas.
Observa-se tambm que a honeywall possui 3 interfaces de rede: a eth0 interage com a rede de
produo, a eth1 interage com a honeynet e a eth2 a nica que possui endereo IP e tem o
propsito de prover uma administrao remota ao gateway na medida que quaisquer dados
capturados pela honeynet so movidos atravs dessa interface para uma rede administrativa

155

segura sem nenhum contato com a Internet.

Figura 6.1 Honeynet GenII do Honeynet Project


O gateway centralizado camada 2 possui grandes vantagens. A primeira a dificuldade
de deteco por parte do atacante. No h hops de roteamento e no h decremento no campo
TTL do cabealho IP. Alm disso, simplifica muito a tarefa de controle e captura dos dados,
pois implementa as duas funcionalidades de maneira centralizada e segura. Nos prximos
tpicos, uma breve pincelada nos softwares utilizados para controle e captura dos dados.

6.3.4.2 Controle

O controle de dados da honeynet realizado de maneira centralizada no gateway. Para


segurana do gateway e para o prprio controle de dados, necessrio que o firewall IPTables
do linux esteja habilitado no modo bridge(camada 2). Existe um path para o kernel do linux
chamado ebtables que implementa essa funcionalidade.
J foi discutido que o grande desafio do controle de dados saber equilibrar a
liberdade do atacante e o controle de trfego de sada com o objetivo de mitigar o risco
principalmente de ataque a terceiros. Quanto mais liberdade ele tiver, mais se aprender sobre
ele. Entretanto necessrio cont-lo sem que ele perceba isso. Duas tecnologias foram

156

implementadas para cumprir estes objetivos: um contador de conexes e NIPS (Network


Intrusion Prevention System).
O contador de conexes realiza a contagem e bloqueio de um determinado nmero de
conexes iniciadas pela honeypot. Quando um certo limite atingido, qualquer outra conexo
bloqueada. O objetivo evitar ataques massissos de scanner, de DoS ou worms que
requerem muitas conexes de sada. O IPTables utilizado para contar e bloquear essas
conexes atravs do script rc.firewall. Ele utiliza um limite para cada trfego: TCP, UDP,
ICMP e OUTROS. Alm disso, utiliza uma escala de tempo afim de zerar o contador
quando a escala for atingida. Assim, o atacante inicia a conexo por objetivos diversos
(download de toolkits, IRC chats, emails, scanners, etc) e quando o limite alcanado, aquela
honeypot bloqueada. Passado o intervalo de tempo determinado, ela desbloqueada e o
contador zerado. Os limites e o intervalo so escolhidos de acordo com a conscincia de quem
implementar.
O NIPS um mecanismo que bloqueia ou desabilita ataques conhecidos. Isto feito
inspecionando cada pacote que passa pelo gateway. Ele funciona como um IDS, mas ao invs
de apenas mandar alertas ao administrador, ele modifica ou descarta o pacote, reduzindo o
risco de sucesso de ataques conhecidos a terceiros. Quer dizer, o nmero limite de conexes
que foi permitido no firewall, se se tratar de um ataque conhecido, poder ser neutralizado
pelo NIPS. O software utilizado para funcionar como NIPS chama-se Snort_inline. uma
verso modificada do IDS Snort e utiliza o mesmo mecanismo de reconhecimento dos
ataques. Os pacotes precisam ser roteados para o Snort_inline analisar. Isto feito novamente
pelo IPTables no modo ip_queue, atravs do script rc.firewall. No h como no contar os
pacotes que forem modificados pelo Snort_inline. Isso porque eles passam primeiro pela
interface de rede e so contados. S depois so analisados. Nem todas as regras do snort
precisam ser utilizadas pelo snort_inline. O administrador deve escolher que tipos de ataque
ele considera passvel de bloqueio ou modificao. A ferramenta snortconfig pode ser
utilizada para converter regras atualizadas do snort para o snort_inline.

6.3.4.3 Captura

O propsito da captura de dados logar das mais diversas maneiras possveis todos os
passos do atacante. Sem essa captura, a honeynet no teria nenhum valor. A coleta de dados

157

realizada em camadas. O Honeynet Project definiu trs camadas principais para a captura:
logs de firewall, trfego de rede e atividade do sistema.
Os logs de firewall so facilmente coletados. O script rc.firewall j foi construdo para
registrar todas as atividades de entrada e sada em /var/log/messages. uma informao
crtica e a primeira indicao a respeito da atividade de um atacante.
O trfego de rede, por sua vez, pode ser capturado atravs do snort atuando em modo
sniffer, ou mesmo um sniffer comum, como o tcpdump. Ambos capturam no mesmo
formato(tcpdump) qualquer pacote incluindo o payload que passa pela rede. importante
observar que a interface a ser capturada deve ser a interna. Se for configurada a externa, correse o risco de capturar trfego de outras mquinas, poluindo os registros.
O terceiro elemento de captura o mais sofisticado de todos e age capturando as
atividades do atacante na honeypot e transferindo para um local central, o gateway. O sebek
um programa cliente que fica instalado em cada honeypot enviando logs de todo e qualquer
tipo de comando ou download que o invasor venha a fazer (inclusive scp e ssh) para o
gateway via porta UDP. Para realizar o envio, ele utiliza o endereo MAC do gateway. A
grande vantagem desse mecanismo que o atacante nem com um sniffer consegue capturar os
pacotes de envio. Isso porque o sebek um mdulo carregvel do kernel que grava todos os
dados no cliente acessando a chamada de sistema read(), ou seja, antes mesmo de ser
encriptado pelo ssh. O mdulo fica escondido do invasor e no pode ser desativado. O trfego
UDP gerado sem usar a pilha TCP/IP e transmitido diretamente interface de rede. Desta
maneira, o invasor no capaz de capturar os dados atravs de um sniffer.

6.3.4.4 Alerta

Um ltimo elemento importante na construo de uma honeynet o sistema de alerta.


Considerando que no haver pessoas analisando o trfego a todo momento, essencial que o
administrador tenha um mecanismo de alerta para notificar as invases. O software swatch
uma opo para uma monitorao automtica. Ele procura em arquivos de log por padres
descritos em seu arquivo de configurao. Quando um padro encontrado, ele pode enviar
alertas via e-mail, alarmes de sistema, chamadas telefnicas ou rodar comandos e programas.
importante que o administrador acompanhe de perto sua honeynet para reduzir mais ainda
os riscos.

158

6.4HONEYPOTFARMSEHONEYPOTSDINMICOS

Em 2003, Lance Spitzner escreveu para o portal Security Focus dois artigos que fogem
um pouco do escopo do presente projeto. A escolha em coment-los neste tpico foi devido
importante discusso que ele levanta e que essencial para o entendimento de alguns
problemas enfrentados por implementaes reais de honeypots e algumas possveis solues
para estes problemas.

6.4.1HONEYPOTFARMS
Uma pequena organizao necessita apenas de um ou dois honeypots em sua rede
local, enquanto que grandes organizaes se tivessem em cada rede local um honeypot
deixariam o trabalho de manuteno e gerenciamento praticamente impossvel. O conceito de
honeypot farms aplicvel principalmente para grandes organizaes distribudas
geograficamente em diversas redes. Em ltima instncia, elas podem ser consideradas como
grandes honeynets com a adio de um elemento redirecionador de trfego, como ser visto
adiante.
Como j foi discutido antes, o grande problema de um honeypot a sua viso limitada
de trfego. Ele consegue monitorar apenas o trfego da rede em que foi construdo. Apesar
disso, de grande valor para as organizaes, medida que consegue trabalhar com trfego
criptografado, IPV6, reduz falso positivos e captura ataques novos e desconhecidos. Grandes
organizaes possuem diversas redes espalhadas pelo mundo e tm interesse em monitorar o
mximo possvel procura de ataques. Entretanto, quanto mais honeypots forem construdas,
mais recursos humanos so requeridos para administr-las. No caso de honeynets, essa
dificuldade torna-se ainda maior. Uma vez construda, uma honeynet requer um time prprio
dedicado para sua manuteno e anlise. preciso manter a soluo segura, reduzindo o risco
de ataque a terceiros. Muita informao capturada e precisa ser cuidadosamente analisada.
Estima-se que para cada trinta minutos de ataque so gastas trinta horas em uma anlise
forense completa. Pode-se imaginar este trabalho multiplicado por dezenas, centenas ou
milhares de redes.
Uma possvel soluo para esta dificuldade seria a construo da chamada honeypot

159

farm, uma nica e consolidada rede de honeypots utilizando recursos dedicados de segurana
de maneira centralizada. Essa fazenda de honeypots pode fazer parte, por exemplo, de uma
central de operaes de segurana de uma organizao e contar com recursos humanos e
materiais dedicados para a soluo, tornando-a muito mais simples de manter, gerenciar e
analisar. Um redicirecionador pode ser construdo para transportar o atacante de uma rede real
em qualquer parte da organizao para a honeypot farm sem que ele perceba. A fazenda
pode ser simples, implementando muitos honeypots de baixa interao, ou complexa,
implementando largas honeynets com centenas de sistemas e aplicaes reais esperando pelo
ataque. Os redirecionadores podem ser vistos como caixas-pretas que simplesmente so prconfiguradas e plugadas em cada rede, monitorando (IPs no utilizados e/ou comportamento
malicioso) e redirecionando os ataques para a fazenda. Alm das vantagens de
administrao e atualizao, o risco tambm bastante reduzido, uma vez que h uma equipe
especializada em manter a honeypot farm em um nico ponto de controle.
Pelo fato de ser um conceito extremamente novo e poderoso, a honeypot farm no
possui uma implementao completa, ou auto-suficiente. Os redirecionadores so
extremamente difceis de construir. Como saber quais atividades transportar, para quais
honeypots e como transportar sem que o atacante descubra? Seria necessrio monitorar todos
os IPs no utilizados, ou apenas alguns mais importantes? Como assegurar que o que o
atacante procura similar ao que a honeypot implementa? So muitas questes ainda a serem
consideradas na construo de uma soluo. Enquanto isso, alguns softwares j existentes
podem auxiliar na implementao de algo prximo. O honeyd, por exemplo, implementa a
monitorao do espao de IPs no utilizados e possui uma funo de redirecionar uma
conexo interceptada para um outro endereo IP. Neste caso, poderia-se combinar honeypots
de baixa e de alta interao. O honeyd fazendo o papel de redirecionador e a honeynet
esperando para ser invadida. Como exemplo de software comercial que implementa o conceito
de honeypot farm, existe o NetBait.

6.4.2HONEYPOTSDINMICOS
Segundo Lance Spitzner, a soluo ideal e o futuro dos honeypots o chamado
honeypot dinmico. Uma soluo plug and play que funcionaria como um espelho da rede de
produo. Automaticamente, a soluo determinaria quantos e quais honeypots seriam

160

desenvolvidos. Alm disso, os honeypots se adaptariam rede de produo. Quer dizer, uma
vez adicionado um servidor Linux, ou um roteador Cisco na rede de produo,
automaticamente o honeypot dinmico adicionaria este sistema em sua soluo. Uma vez
retirado um servio obsoleto, como o telnet, o honeypot o retiraria tambm da soluo. O
objetivo ter um elemento, provavelmente um appliance plug and play, que consiga aprender
o ambiente de produo e desenvolver o nmero correto de honeypots com suas devidas
configuraes. Esses honeypots sendo totalmente adaptveis s mudanas ocorridas na
produo.
O grande argumento a favor dos honeypots dinmicos a enorme dificuldade de
configurao de um honeypot comum, principalmente uma honeynet. A necessidade de ter um
acompanhamento e manuteno de perto por especialistas, a dificuldade de acompanhar
mudanas no ambiente de produo e mudanas na prpria tecnologia das redes acabam por
transformar o honeypot em um investimento caro. Para uma maior efetividade, necessrio
que os servios e sistemas operacionais de um honeypot estejam rodando o mais prximo
possvel da rede de produo. Contudo, a produo est sempre em mutao por necessidade
da prpria tecnologia. Sistemas esto sempre sendo adicionados ou desativados, o mesmo
acontece com os servios. Por esses motivos, um honeypot dinmico considerado como o
honeypot perfeito. Apesar de parecer utpico, existem tecnologias hoje que, trabalhando em
conjunto, podem ser utilizadas para construir um primeiro honeypot dinmico.
A primeira parte de um honeypot dinmico consiste em aprender quais sistemas a
organizao utiliza na produo e como eles esto sendo utilizados. um mecanismo que
permite que o honeypot mapeie e atue como a rede real. Uma possibilidade utilizar uma
ferramenta de scanner, como o nmap. Entretanto, ela traz alguns problemas, como o aumento
de trfego na banda, a possibilidade de prejudicar alguns servios, a possibilidade de deixar
de capturar algum sistema (atrs de um firewall, por exemplo) e o fato de as atualizaes no
ocorrerem em tempo real e ser necessrio um scanner ativo para saber a situao de cada
sistema no momento. A grande opo parece ser o passive fingerprinting, ou seja: ferramentas
como o p0f ,ou semelhantes. O objetivo capturar o trfego passivamente, analis-lo e
determinar a identidade do sistema. Ele mantm uma base de assinaturas conhecidas para
cada sistema operacional, captura os pacotes da rede e analisa comparando com a base. Desta
maneira, sabe quais so os sistemas ativos no momento (em tempo real). Ao contrrio do
scanner ativo, essa no uma tcnica intrusiva, no utiliza ataque de pacotes maquina

161

alheia e tem menos chance de prejudicar algum sistema ou servio. Pode identificar mquinas
por trs de um firewall atravs de mapeamento de endereo MAC. Por fim, til para manter
um honeypot por longo tempo, medida que consegue perceber uma mudana na rede. A
grande desvantagem a incapacidade de trabalhar por redes roteadas, ou seja, s serve para
redes locais. A soluo desenvolver diversos honeypots espalhados pela organizao.
Outra parte consiste em desenvolver os honeypots de acordo com o mapeamento
realizado pelo passive fingerprinting: diversos sistemas e servios diferentes e diversos
endereos IPs no utilizados. Novamente, o honeyd pode ser utilizado para resolver o
problema. Ele tem a capacidade de construir honeypots virtuais e emular cerca de 500
sistemas operacionais, alm de monitorar os IPs no utilizados. Evidentemente precisaria de
uma customizao para realizar as funo de construir automaticamente honeypots de acordo
com o mapeamento. A grande vantagem que ambos os projetos (p0f e honeyd) so de cdigo
aberto e permitem customizao a gosto do fregus.

6.5CONSIDERAESFINAIS

Durante o captulo, o leitor pde entender o que uma honeynet, quais so as suas
aplicaes e diferenas em relao outros honeypots. Pde acompanhar os projetos em
escala mundial para anlise e compartilhamento de experincias, em especial o Honeynet
Project. Alm disso, compreendeu os elementos principais na construo de uma honeynet,
seus riscos e problemas prticos. Por ltimo, enxergou algumas dificuldades adicionais na
construo em larga escala e algumas possveis solues.
O grande objetivo foi preparar teoricamente o leitor para o prximo captulo, onde
uma honeynet nesses moldes ser construda e utilizada em conjunto com os outros conceitos
apresentados no decorrer do trabalho, a fim de constituir um ambiente de treinamento para
redes neurais artificiais utilizadas para deteco de intruso.

162

7 HONEYNET, UM AMBIENTE PARA TREINAMENTO DE REDES


NEURAISARTIFICIAISPARADETECODEINTRUSO

O objetivo dos captulos anteriores foi o de fomentar uma base terica para a
construo de uma proposta real de deteco de intruso atravs de algoritmos no lineares,
mais especificamente redes neurais artificiais. Este captulo apresentar uma proposta
amadurecida pelos conceitos vistos, bem como seus resultados experimentais.

7.1APROPOSTA

O captulo 3 discutiu a importncia dos sistemas de segurana da informao nos dias


de hoje e no mundo da informtica, bem como as grandes ameaas de ataques as quais os
sistemas e servios disponveis na Internet esto sujeitos. Um dos muitos mecanismos de
proteo discutidos, foi o mecanismo de deteco de intruso, realizado por sistemas
chamados de IDS (Intrusion Detection Systems). Estes sistemas so classificados de acordo
com o seu tipo de monitorao em IDS de host (ou HIDS) e IDS de rede (NIDS). Tambm so
classificados de acordo com seu tipo de deteco: baseados em assinatura ou baseados em
anomalia.
O captulo 4 discutiu redes neurais artificiais, um algoritmo no linear que procura,
atravs de um modelo matemtico, emular as funes neurais do corpo humano. Na prtica, o
objetivo que os neurnios artificiais consigam aprender determinado problema e ter a
capacidade, assim como os seres humanos, de generalizar as decises baseados em uma
experincia adquirida no treinamento. A etapa mais importante na contruo de uma rede
neural artificial justamente o treinamento. Ele pode ser dividido em dois grandes grupos,
com diferentes paradigmas. O treinamento supervisionado necessita de um professor, ou
seja, uma entidade externa que classifique as amostras de treinamento dizendo a qual classe de
sada ela pertence. O treinamento no supervisionado no classifica as amostras de entrada e
deixa para a rede neural construir sua prpria representao.

163

A capacidade das redes neurais de generalizao e reconhecimento de padres j foi


utilizada na rea de deteco de intruso em diversas pesquisas acadmicas, como foi
mostrado no captulo 5. A idia superar a dificuldade dos sistemas de deteco de intruso
atuais (que so baseados em assinatura) de detectar ataques novos ou desconhecidos. Alm
disso, otimizar a deteco, medida que um sistema baseado em redes neurais no precisaria
comparar um pacote de rede, por exemplo, com toda a sua base antes de decidir se trata-se de
uma intruso. Uma rede neural, caso tenha uma rotina de treinamento eficiente, poder
aproveitar sua capacidade de reconhecimento de padres para detectar ataques conhecidos. E
sua capacidade de generalizao para detectar ataques novos e desconhecidos.
No captulo 6, um elemento de segurana extremamente novo e promissor foi
apresentado. Uma honeynet uma rede real construda unicamente para ser invadida por
atacantes na Internet. O objetivo o estudo das tcnicas e ferramentas utilizadas para a
invaso. Desta maneira, ataques novos e desconhecidos sero descobertos e a proteo contra
eles poder ser construda. Uma grande vantagem da honeynet que todo o trfego capturado
tem origem ilcita ou maliciosa. Quer dizer, todo o trfego ataque e de igual importncia.
A proposta prtica deste captulo utilizar a capacidade de uma honeynet de capturar
ataques, conhecidos ou no, e treinar uma rede neural artificial supervisionada para que ela
possa reconhecer os padres de ataque na rede quando em produo (funcionando como um
NIDS). Os desdobramentos deste objetivo so diversos.
Primeiro, como j foi discutido, existe na implementao de uma honeynet a
dificuldade enorme de anlise do trfego capturado. Apesar de todos os pacotes serem
considerados como ataque, necessria uma anlise humana afim de filtrar esses pacotes. Isso
porque o treinamento de um algoritmo backpropagation no pode ser construdo
simplesmente inserindo todos os pacotes capturados e considerando-os ataque. necessria
uma otimizao dos pares de treinamento. A filosofia do algoritmo no quanto mais
amostras melhor e sim a de escolher a quantidade certa e mais significativa tanto quanto for
possvel.
Outra dificuldade a diferena brutal entre os padres de cada ataque diferente. Um
ataque de port scannig constitudo de diversos pacotes enviados para diversas portas de um
mesmo host. Um ataque de DDoS constitudo de milhes de pacotes idnticos vindos de
diversos hosts distribudos. J um ataque de exploit constitudo de poucos pacotes, contendo
cdigo malicioso. Seria um problema juntar todos os tipos no mesmo treinamento e construir

164

uma rede neural nica que reconhea qualquer ataque. As especificidades de cada ataque tm
que ser preservadas. Do contrrio, a rede neural no saber identificar que os poucos pacotes
de um ataque de exploit valem tanto quanto os milhes de pacotes de um ataque de DDoS.
No h como escapar de uma anlise humana feita por um especialista de segurana
para diferenciar o trfego capturado pela honeynet. Para isso existem diversas ferramentas de
anlise de logs, de trfego, de correlao, etc. Nos projetos de honeynet espalhados pelo
mundo e nos portais de segurana da informao essas ferramentas so recomendadas e
disponibilizadas. Entretanto, no captulo 5, uma alternativa foi apresentada atravs do trabalho
de Luc Girardin: uma rede neural artificial no supervisionada, baseada em aprendizagem
competitiva e criada pelo finlands Tuevo Kohonen. A rede SOM (Self Organizing Maps), ou
simplesmente rede de Kohonen, pode ser utilizada como ferramenta auxiliar no processo de
anlise do trfego da honeynet. Ela cria um mapa de visualizao do trfego que, dependendo
da experincia do especialista e dos parmetros de construo do mapa, consegue identificar
que tipo de ataque foi predominante naquele trfego.
Uma vez construda a honeynet e capturadas as atividades ilcitas atravs dos pacotes
de rede, os diferentes tipos de ataque podem ser identificados pela visualizao dos mapas de
Kohonen, anlise dos pacotes de rede e alertas do snort.
A partir do momento em que so identificados, a proposta que cada tipo de ataque
seja treinado em uma rede neural diferente de forma supervisionada. Desta maneira, haveria a
construo de redes neurais especialistas para identificar cada tipo de ataque remoto. Um
sistema de deteco de intruso de rede pode, a partir da, ser construdo utilizando a anlise
de cada uma das redes neurais para cada pacote. Quando qualquer uma delas identificar um
ataque, o IDS tomar suas providncias bloqueando o ataque ou alertando o administrador.
Para a maturidade e o sucesso da soluo, a experincia dos especialistas ser
fundamental. A tarefa de analisar o mapa das atividades de rede e de escolher as amostras
mais significativas para o treinamento s depende da habilidade e experincia do analista.
Alm disso, a honeynet dever estar o mais prximo possvel dos sistemas e servios
existentes na produo, para que os ataques sofridos e treinados sejam, no mnimo, parecidos
com os de produo.
A seguir, uma modesta prova de conceito ser testada para comprovar a viabilidade da
soluo. Todavia, ainda h muito a ser feito e testado para que se torne realidade. A pretenso
da pesquisa apenas no sentido de contribuir de maneira acadmica para a evoluo dos

165

sistemas de deteco baseados em redes neurais artificiais.

7.2APROVADECONCEITO

Neste tpico, ser descrita passo a passo a construo da prova de conceito para a
soluo proposta. Foi desenvolvida uma honeynet real, observando obviamente todos os
cuidados descritos no captulo 6. Na verdade, apesar de possuir todos os mecanismos de
captura e controle de dados, os aplicativos efetivamente utilizados, depois que a honeynet foi
ao ar, foram o tcpdump: utilzado para captura dos pacotes de rede e o snort: utilzado para
anlise dos alertas de ataque.
Aps um perodo no ar, a honeynet foi desligada e passou-se fase de anlise do
trfego. Para isso, foi desenvolvido um aplicativo em linguagem C (ferramenta dsni),
utilizando a biblioteca libpcap, para captura e anlise de pacotes, alm da formatao e
normalizao dos campos dos protocolos para servirem de entrada das redes neurais. Essa
ferramenta foi chamada de dsni.
A rede de Kohonen foi construda com base no software livre SOM_PAK, escrito em
linguagem C e que permite o treinamento, construo e visualizao dos mapas
correspondentes a cada perodo de trfego capturado.
A rede MLP foi implementada pelo software EasyNN, em verso trial, que permite
uma facilidade de configurao dos parmetros de treinamento: nmero de camadas, de
neurnios, taxa de aprendizagem, critrio de parada, manipulao dos dados. Alm da
visualizao do treinamento com grficos em tempo real
O funcionamento da soluo mais ou menos desta maneira:

Ataques so recebidos na honeynet durante um determinado perodo de tempo e so


registrados nos mecanismos de captura (logs de IDS, firewall, sistema, sniffer);

Aps determinado perodo, a honeynet desligada e passa-se a fase de identificao dos


ataques;

Para identificao so utilizadas anlises de todos os mecanismos de captura, com


destaque para os logs de IDS(snort) e sniffer (tcpdump);

Como auxlio na identificao de ataques, so utilizados os mapas de Kohonen,


construdos atravs do treinamento de uma rede no supervisionada, utilizando parmetros
de pacotes IP, TCP e UDP. Estes parmetros so coletados e normalizados atravs da

166

ferramenta dsni;

Uma vez identificado um ataque, por exemplo, port scanning, ele apresentado rede
neural supervisionada MLP, com algoritmo backpropagation. Os parmetros de
treinamento so os mesmos campos utilizados na rede de Kohonen. Alm disso,
apresentado ao mesmo software um trfego normal, capturado da rede de produo. Desta
maneira, realizado o treinamento e a rede pode reconhecer outros pacotes como normal
ou ataque. Para uma maior garantia que o trfego classificado como normal no
treinamento seja realmente normal, o software snort foi configurado e os pacotes
capturados como normais na produo comparados com seus logs. Caso algum fosse
classificado pelo snort como ataque, ele seria retirado da amostragem de pacotes normais
para o treinamento.

7.2.1AHONEYNET
7.2.1.1 Arquitetura

A honeynet montada dispe de 4 servidores e um HUB. Eles foram configurados de


acordo com a arquitetura abaixo:

Figura 7.1 Arquitetura da honeynet

167

O primeiro servidor (IBM Netfinish) possui mais capacidade de armazenamento e est


configurado em modo bridge(camada 2), sem endereo IP, apenas analisando o trfego de
entrada e controlando o trfego de sada. Nele esto configurados os servios: Snort(mysql,
Apache SSL e ACID), Snort_Inline e o script rc.firewall. Os demais servidores (Sun Sparc
Station 5) esto funcionando apenas como honeypots. Eles foram instalados e a configurao
default foi mantida. Cada um possui um endereo IP vlido na Internet.

7.2.1.2 Controle de Dados

O controle de dados na honeynet feito pelo elemento de entrada na rede, ou seja, o


gateway camada dois (IBM Netfinity em modo bridge), chamado no projeto de muro. O
muro est configurado com o sistema operacional linux, distribuio Debian, kernel 2.4-29. O
kernel foi customizado para trabalhar em camada 2, sendo mais difcil para o atacante detectar
sua presena, ou alterar seus logs.
Ao mesmo tempo, o script rc.firewall (do honeynet project) utilizado para configurar
o iptables no intuito de prevenir ataques de dentro da honeynet para o mundo externo
realizados pelos invasores. Uma das principais funcionalidades deste script a implementao
da limitao de conexes. O objetivo conter o nmero de conexes que podem ser
estabelecidas para fora da honeynet. A partir de um certo nmero conexes, o iptables
bloqueia qualquer tentativa de mais conexes, evitando assim que, por exemplo, as mquinas
se tornem zumbis dos atacantes para realizarem ataque de DoS ou DDoS. Assim, dentro do
script rc.firewall definido a taxa de conexes UDP, TCP, ICMP, ou OUTROS e a escala de
tempo (horria, diria, etc). O invasor poder iniciar uma conexo por diversos motivos (fazer
download de toolkits, iniciar chats IRC, enviar e-mails, etc). A cada conexo iniciada, o
rc.firewall ir incrementar seu contador. Assim que o nmero definido no rc.firewall for
alcanado, o iptables ir bloquear as demais tentativas. Assim que a escala de tempo definida
for alcanada, o iptables ir reiniciar, permitindo novamente o nmero de conexes definidas.
Outro recurso configurado no muro para controle dos dados o chamado
NIPS(Network Intrusion Prevention System), implementado atravs do snort_inline. Este
software uma verso modificada do snort, que age no apenas como um detector de
intruso, mas como preveno de intruso. Ele capaz de rejeitar ou modificar pacotes que

168

ele identifique como um ataque conhecido (de acordo com as regras do snort). Assim, mesmo
que o ataque esteja dentro dos limites de conexo definidos pelo script rc.firewall, ele poder
ser bloqueado pelo snort_inline. Para que ele funcione, o iptables precisa estar trabalhando
em modo QUEUE, pois ele que ir entregar os pacotes para anlise do snort_inline e depois
continuar roteando os mesmos. Para transformar as regras do snort em regras do snort_inline,
necessrio uma ferramenta chamada de snortconfig.
Inicialmente, nesta honeynet, o snort_inline est configurado sem nenhuma regra de
bloqueio ou modificao de pacotes. Isso porque, no perodo inicial, necessrio avaliar que
tipos de ataques efetivamente sero iniciados da honeynet. O snort_inline est focalizado
apenas para ataques de sada da honeynet, pois os ataques de entrada so todos permitidos e
desejados. Para os ataques de sada j existe uma proteo bastante efetiva que o limitador
de conexo implementado pelo script rc.firewall.
Um ltimo mecanismo de controle implementado na honeynet so os scripts md5cria.sh, md5-cria-sol e md5-verify.sh, contrudos para criar uma base de hashs md5 dos
principais arquivos binrios e de configurao dos honeypots e depois de um tempo no ar,
compar-los para verificar se algum arquivo importante foi modificado ou substituido pelo
invasor. Foi feita a tentativa de usar a soluo tripwire para criao e verificao dos hashs,
mas no foi possvel devido incompatibilidade com a arquitetura SPARC.

7.2.1.3 Captura de dados

O objetivo principal da captura logar todas as atividades do atacante. O segredo


fazer essa captura no maior nmero de camadas possvel. Por exemplo: log do firewall, trfego
de rede, atividades do sistema, etc.
No caso desta honeynet, uma das principais ferramentas utilizada para captura de
atividades do sistema, o sebek, no pde ser utilizada, devido incompatibilidade com a
arquitetura SPARC.
O script rc.firewall habilita o iptables a logar qualquer conexo de entrada ou sada via
syslog em /var/log/messages. uma informao crtica e importante na hora de determinar
quando um ataque foi iniciado.
Outro elemento de captura de dados utilizado o snort. Ele foi configurado com as
regras mais atualizadas para logar qualquer tipo de ataque conhecido que chegar pela interface

169

de entrada do muro. Alem disso, ele foi configurado para logar tudo numa base de dados
mysql e foi acrescentado o software ACID, uma interface web que facilita a visualizao e
controle dos possveis ataques.
Finalmente, a ltima camada de captura de dados fica por conta do tcpdump. Ele
captura todo e qualquer trfego de rede destinado ou a partir dos endereos da honeynet,
salvando em um arquivo no formato binrio, possibilitando assim futura anlise e filtragem
em diversas ferramentas existentes, inclusive a ferramenta dsni, desenvolvida em C.

7.2.2ASREDESNEURAIS

Foi utilizado um modelo de redes neurais hbrido para a soluo. De um lado, uma
rede neural artificial baseada em treinamento no supervisionado foi utilizada para tirar uma
impresso de cada perodo de trfego individualmente. De outro lado, uma rede neural
artificial baseada em treinamento supervisionado foi utilizada para construo de um sistema
de deteco de intruses baseado em algoritmos no lineares.

7.2.2.1 Mapas de Kohonen

O software de cdigo aberto SOM_PAK, escrito em linguagem C, foi construdo na


Finlndia pela equipe do prprio criador do algoritmo de mapas auto-organizveis: Tuevo
Kohonen. A partir deste software foi possvel construir representaes visuais em duas
dimenses do trfego de rede capturado na honeynet e tratado pelo dsni.
A honeynet permaneceu ligada de 08/06/2005 a 30/07/2005. Todo o trfego de rede
que chegava ou saa do muro (gateway da honeynet) foi capturado pelo tcpdump e salvo em
formato binrio. Aps o perodo de captura, a honeynet foi desligada e os pacotes de rede
foram tratados pelo software dsni. A tabela 7.1 mostra quais foram os parmetros de rede
utilizados para o treinamento da rede neural no supervisionada.

Nome

Descrio

Modificao

Protocolo

Define oprotocolo: TCP, Semmodificaes


UDPouICMP

IP_Origem

EndereoIPdeorigemdo Utilizada converso para


pacote
escalalogaritmica

170

Nome

Descrio

Modificao

IP_Destino

EndereoIPdedestinodo Utilizada converso para


pacote
escalalogaritmica

Porta_Origem

Portadeorigem

Utilizada converso para


escalalogaritmica

Porta_Destino

Portadedestino

Utilizada converso para


escalalogaritmica

Flags

Flags utilizados pelo Semmodificaes


protocoloTCP.

Tamanho

TamanhodopacoteIP.

Utilizada converso para


escalalogaritmica

Tabela 7.1 Parmetros de entrada da rede neural


importante notar que apenas o protocolo IP utilizado. O campo Protocolo define
o protocolo da camada superior que utilizar o IP. A escala logaritmica foi utilizada na
maioria dos campos devido diferena de magnitude entre os parmetros. Todos eles
pretendem ter igual importncia para o treinamento da rede e portanto todos devem estar na
mesma ordem de grandeza, problema resolvido pela escala logaritmica, implementada pelo
dsni. O campo Flags tem o valor zero quando o protocolo no o TCP. O campo
Tamanho diz respeito a todo o pacote, incluindo o payload.
Estes parmetros foram escolhidos como entradas tanto da rede de Kohonen, quanto da
rede MLP. So os parmetros fixos dos protocolos da camada de rede e de transporte que
melhor definem um trfego de rede. Alm deles, seria interessante utilizar o campo de
payload. Porm, as dificuldades de tratamento deste campo (possui formato, mensagem e
tamanho imprevisveis) impossibilitaram sua utilizao nesta prova de conceito. O parmetro
timestamp, disponvel no log do tcpdump tambm seria importante para determinar a
frequncia de chegada dos pacotes. A dificuldade de normalizao deste parmetro
impossibilitou sua utilizao neste primeiro momento. Na verdade, tentou-se utilizar um
parmetro chamado data_id, que seria apenas um contador de pacotes. Porm, aps algumas
tentativas, percebeu-se que este parmetro estava influenciando decisivamente todos os
treinamentos e decidiu-se por tir-lo. Por ltimo, uma anlise do estado da conexo TCP seria
importante no treinamento, porm uma anlise muito complicada de se fazer e necessitaria
de um software bem mais complexo que o dsni.
O trfego capturado na honeynet foi dividido em 30 arquivos contendo as amostras de
treinamento e validao. Cada arquivo continha 1, 2, 3 ou at 4 dias de trfego capturados. A
partir da, seguiu-se o treinamento da rede, utilizando os mesmos parmetros para cada

171

arquivo. A representao resultante foi constituda de mapas 6x6, com 36 neurnios. A tabela
7.2 apresenta os parmetros utilizados no treinamento.

Nmerodepocas

10

Tipodetopologia

Hexagonal

Medidadevizinhana

Gaussiana

Dimenses
Tamanhodotreinamento
Taxadeaprendizagemdotreinamento

6x6
22500
0,5

Raioinicialdotreinamento
Tamanhodavalidao
Taxadeaprendizagemdavalidao

10
2500
0,4

Raioinicialdavalidao

Tabela 7.2 Parmetros de treinamento da rede SOM


Os parmetros de treinamento foram determinados aps exaustivos testes com os mais
diversos parmetros possveis. Ou seja, s foi possvel um resultado satisfatrio
empiricamente aps inmeras tentativas.
Aps o treinamento, gerado um arquivo contendo o valor de ativao de cada
neurnio, resultante da atualizao dos pesos de vizinhana implementada pelo algoritmo de
Kohonen. A partir destes valores, so criados mapas de matrizes bidimensionais em escala de
cinza, em formato postscript. Todas essas funes so implementadas pelo software
SOM_PAK. Os mapas resultantes sero analisados posteriormente para identificar a
semelhana de trfego e, conseqentemente, dos ataques recebidos.

7.2.2.2 Rede Perceptron Multicamadas

O software EasyNN plus verso 6.0d trial foi utilizado para o treinamento da rede
neural supervisionada utilizando o algoritmo backpropagation. A facilidade de configurao
dos parmetros de treinamento incluindo nmero de camadas, de neurnios, taxa de
aprendizagem, critrios de parada, manipulao dos dados de treinamento e validao, alm
da visualizao do treinamento com grficos em tempo real foram determinantes para a
escolha deste software.
Os parmetros de entrada escolhidos foram os mesmos da rede de Kohonen, pelos

172

mesmos motivos expostos, o nmero de neurnios da camada oculta foram escolhidos


empiricamente aps vrios treinamentos fracassados e a camada de sada foi constituda de
um neurnio. O valor era aproximado para zero, indicando trfego normal ou para um,
indicando trfego de ataque.
Sero discutidos, no prximo tpico, os resultados da anlise realizada no trfego da
honeynet. Os tipos de ataque foram identificados principalmente atravs de alertas do snort e
anlise dos pacotes TCP/IP (software dsni). Uma vez definidos os tipos de ataque, redes
especialistas eram construdas para treinar cada tipo separadamente.

7.3OSRESULTADOS
Depois de quase dois meses no ar com a configurao apresentada anteriormente, a
honeynet gerou logs do snort, syslogs e principalmente logs de trfego de rede, que foram
divididos em 30 arquivos binrios, seguindo uma sequncia cronolgica de 51 dias corridos.
Estes arquivos sofreram uma filtragem com o programa dsni. Dois parmetros foram
utilizados para enxugar o trfego e separar o que realmente interessava para identificar os
ataques: foram considerados apenas pacotes que utilizaram o protocolo IP e pacotes cuja
origem ou destino seja o endereo dos honeypots.
Aps isso, os 30 arquivos resultantes foram apresentados. Havia uma disparidade
muito grande no nmero de pacotes de cada um destes arquivos. Enquanto o dia 09/06
apresentava 41 pacotes de rede, o dia 22/07 apresentava 146.410 pacotes. Diversos
treinamentos foram realizados com arquivos de tamanhos diferentes e o resultado final no foi
o esperado. Decidiu-se, ento, treinar as redes no supervisionadas SOM com o mesmo
nmero de pacotes para obter mapas uniformes quanto ao tamanho.
Todo o trfego foi dividido em 17 arquivos com 25.000 pacotes cada um e mais um
arquivo com os 2333 pacotes restantes, de acordo com sua ordem cronolgica. Os 18 arquivos
foram treinados um a um na rede neural no supervisionada SOM de acordo com os
parmetros de treinamento da tabela 7.2. A partir dos valores de ativao resultantes, foram
criados os mapas de duas dimenses apresentados no prximo tpico.

173

7.3.1AREDESOMEOSATAQUESSOFRIDOS
As figuras 7.2, 7.3 e 7.4 ilustram os mapas 6x6 resultantes da filtragem dos pacotes da
honeynet e treinamento da rede SOM. A tabela 7.4 resume a representatividade de cada mapa
de acordo com o perodo de trfego capturado.

Figura 7.2 Mapas de Kohonen, 00 a 07

174

Figura 7.3 Mapas de Kohonen, 08 a 15

Figura 7.4 Mapas de Kohonen, 16 a 18

Mapa

Perodo

Mapa

Perodo

08 a 21 de junho

10

22 de julho

21 de junho

11

22 de julho

21 de junho

12

22 de julho

21 de junho a 13 de julho

13

22 de julho

175

Mapa

Perodo

Mapa

Perodo

13 a 21 de julho

14

22 de julho

21 a 22 de julho

15

22 de julho

22 de julho

16

22 a 27 de julho

22 de julho

17

27 a 28 de julho

22 de julho

18

28 de julho

22 de julho
Tabela 7.3 Diviso dos mapas por perodo
Nota-se claramente que os mapas x00, x04, x05, x06, x07, x08, x09, x10, x11, x12,

x13, x14 e x17 so extremamente prximos, ou quase idnticos. Isso fornece uma noo de
que um mesmo ataque, ou ataques com um mesmo padro aconteceram durante estes
perodos.
Uma anlise profunda foi realizada nos alertas gerados pelo snort e nos pacotes de rede
capturados na honeynet. Os ataques foram identificados e classificados em 5 categorias
principais. So elas: ataque de brute force (fora bruta) no servio de ssh; ataque de
scanning; ataque de explorao de HTTP (porta 80); ataque de explorao de SMTP (porta
25); ataques automticos (basicamente worms).
Uma rpida anlise nos alertas do snort apontou o dia 21/06 com um alto ndice de
alertas de port scanning. Ao analisar mais profundamente o trfego de rede deste dia,
constatou-se que a grande maioria dos pacotes TCP tinham a mesma origem e varriam
diversas portas do honeypot aleatoriamente, com o flag SYN setado e recebendo como
resposta pacotes com o flag RST, alm de pacotes UDP varrendo diversas portas. Alm disso,
diversos outros alertas idnticos foram encontrados em outras datas e com outras origens. Um
filtro foi utilizado no software dsni para retirar os pacotes provenientes destas origens, nos
dias especificados. A primeira rede especialista estava pronta para ser treinada.
Ao analisar o trfego pacote por pacote, percebe-se claramente a predominncia de
ataques de brute force, ou seja, o atacante, atravs de uma ferramenta automatizada, tenta se
autenticar no servio de ssh utilzando um dicionrio de usurios e senhas mais comuns.
Entretanto, as senhas utilizadas nas honeypots eram bastante fortes (utilizavam caracteres
numricos, alfa-numricos e especiais) e praticamente certo que nenhum atacante conseguiu
entrar desta maneira. Atravs de um filtro no dsni para retirar pacotes na porta 22, a segunda
rede especialista estava pronta para ser treinada.

176

Alm do servio de ssh, mais dois servios foram deixados habilitados


propositalmente. Eram eles: o HTTP e o SMTP. Desta maneira, algumas exploraes foram
realizadas nestas portas durante o perodo de vida da honeynet. A explorao consiste na fase
de levantamento de dados (fingerprinting para saber o software e a verso instalados) e de
explorao propriamente dita (exploit). A grande dificuldade em treinar ataques deste tipo
seria analisar o payload dos pacotes, pois o ataque, neste caso, est todo no payload. Desta
maneira, para esta prova de conceito, decidiu-se por ignorar estes ataques no treinamento das
redes especialistas.
A ltima categoria de ataque foi identificada primeiramente atravs dos logs do snort.
O worm Slammer, que ataca sistemas que possuem SQL Server 2000 da Microsoft, causou
uma srie de alertas. Ele funciona atravs de datagramas UDP enviados para a porta 1434
com determinados bytes (por exemplo 0x08) que causam efeitos indesejados no servidor,
como negao de servio. Analisando mais profundamente os pacotes de rede, descobriu-se
diversos outros ataques automticos disseminados. A porta 137 era constantemente atacada
em busca de compartilhamentos Netbios;

as portas 1026, 1027 e 1028, utilizadas pelo

Windows Messenger eram alvo constante de spams; a porta 1080 tambm sofria ataques na
busca de socks; portas 10000, 139, 135, 5554, 8078, 4065, 4073, 500, 1030 e assim por diante.
A rigor, um treinamento para ataques deste tipo tinha que levar em considerao tambm o
payload dos pacotes, pois l que est o ataque propriamente dito. Todavia, desta vez, optouse por realizar o treinamento por se tratar de portas especficas, normalmente acima de 1024.
A terceira e ltima rede neural especialista estava pronta para ser treinada, apesar de no se
esperar uma preciso muito grande da mesma.
Os servios prestados pela honeynet, apesar de serem reais, no pretendiam ludibriar o
atacante para que ele pensasse que fossem servios importantes, ou pertencentes a alguma
organizao. Por exemplo, o servidor HTTP apesar de funcionando s exibia a pgina teste do
Apache. Assim como os servidores SMTP e SSH. A impresso que o atacante teria a de que
o servidor foi mal configurado e colocado na Internet, mas no serviria para nada. Sendo
assim, j era de se esperar que o atacante no teria interesse em realizar um ataque de DoS, a
menos que fosse para teste. As suspeitas vo se confirmando ao desconectar a honeynet aps
os 51 dias e verificar que todos os servios permanecem disponveis, assim como a mquina.
Dos arquivos de trfego resultantes, apenas o dia 22/07 tem um tamanho exageradamente
maior do que os outros(caracterstica tpica de um ataque de DoS). Analisando melhor este

177

arquivo descobre-se que a metade do trfego refere-se a uma comunicao na porta 22(ataque
brute force) entre um endeteo da UFRJ e um honeypot e a outra metade refere-se a uma
comunicao do mesmo tipo entre um endereo da Dinamarca e o mesmo honeypot. Uma rede
especialista de DoS no poderia ser treinada.
A tabela 7.5 ilustra a distribuio dos ataques encontrados por mapa SOM construdo
(a cada 25.000 pacotes). Os nmeros foram obtidos atravs da filtragem dentro dos arquivos
de trfego, realizada por scripts bash que faziam estatstica de acordo com a caracterstica dos
ataques (filtros explicitados anteriormente).

BF22

SCAN

Ex80

Ex25

Ataut

TOTAL

82,97%

13,41%

2,99%

0,13%

0,5%

x00

70,0%

27,0%

2,1%

0,3%

0,6%

x01

2,9%

92,1%

4,7%

0,3%

0,00%

x02

0,4%

92,9%

6,0%

0,7%

0,00%

x03

57,2%

15,4%

17,4%

0,6%

9,4%

x04

82,1%

0,00%

11,4%

0,00%

6,5%

x05

97,2%

0,00%

1,6%

0,00%

1,2%

x06

99,9%

0,00%

0,00%

0,00%

0,1%

x07

99,9%

0,00%

0,00%

0,00%

0,1%

x08

99,9%

0,00%

0,00%

0,00%

0,1%

x09

99,9%

0,00%

0,00%

0,00%

0,1%

x10

99,6%

0,00%

0,1%

0,00%

0,3%

x11

99,9%

0,00%

0,00%

0,00%

0,1%

x12

99,9%

0,00%

0,00%

0,00%

0,1%

x13

99,9%

0,00%

0,00%

0,00%

0,1%

x14

99,8%

0,00%

0,1%

0,00%

0,1%

x15

100,0%

0,00%

0,00%

0,00%

0,00%

x16

97,7%

0,1%

0,2%

0,00%

2,00%

x17

92,7%

0,00%

5,0%

0,00%

2,3%

x18

18,5%

0,00%
56,7%
1,6%
Tabela 7.4 Tipos de ataque, por mapa

22,9%

Os nmeros demonstram a total predominncia de ataques de fora bruta na honeynet,


sendo que o dia 22/07 foi o principal responsvel. Eles comprovaram o que os mapas haviam

178

ilustrado antes da anlise, ou seja, a presena desproporcional de um mesmo ataque.


Os mapas x01 e x02 demonstram o padro formado pela predominncia do ataque de
scanning.
O mapa x03 tem como caracterstica a mistura entre os tipos de ataques. O curioso
que o mapa x18 tambm possui como caracterstica a mistura entre os ataques, porm com
propores completamente diferentes. Mesmo o tamanho do arquivo era diferente. Os mapas
resultantes foram os mesmos.
Os mapas x15 e x16, apesar da predominncia clara dos ataques de fora bruta, no
seguiram o mesmo padro dos demais e nem so iguais entre si. Analisando particularmente
os dois trfegos, a nica diferena para os demais que os ataques de fora bruta existentes
pertencem todos a uma mesma origem. Este ataque comea no mapa x15 (e inclusive no h
nenhum outro pacote neste mapa que no seja este ataque) e s termina no mapa x17 (o mapa
x16 apresenta alguns poucos pacotes referentes a outro ataque).
Os demais mapas apresentaram todos o mesmo padro. Quer dizer, predominncia dos
ataques brute force.
Conclui-se, ento, que a presena dos mapas de Kohonen numa anlise rpida dos
tipos de ataque presentes em um determinado trfego de rede pode ser de extrema
importncia. Entretanto, a tcnica no infalvel. Houveram, nesta prova de conceito, dois
ataques que seguiam claramente o mesmo padro dos demais e no se encaixaram em seus
mapas (x15 e x16).

7.3.2MLP
Conforme visto no tpico anterior, chegou-se a trs tipos de redes especialistas a serem
treinadas: a rede bf22 (brute force ssh), a rede scan (scanners) e a rede ataut (ataques
automticos). A partir da filtragem destes ataques no trfego total da honeynet, realizada
atravs de scripts bash, foi possvel coletar as amostras de trfego de ataque para treinamento
da rede MLP. O trfego normal foi coletado a partir de um tcpdump de alguns minutos em
uma rede corporativa. Enquanto a coleta ocorria, um snort capturava possveis ataques para
garantir que o trfego era normal. A tabela 7.5 ilustra os parmetros utilizados para
treinamento e os parmetros de resultado das redes especialistas no software easyNN. Chegouse a alguns desses parmetros empiricamente aps diversos treinamentos e a outros atravs de
sugestes da bibliografia estudada e do prprio software utilizado.

179

Parmetros

Bf22

Scan

Ataut

Camada de entrada

Camada oculta

Camada de sada

Taxa de aprendizagem

0,3

0,3

0,3

Momentum

0,15

0,15

0,15

Erro mximo

0,05

0,05

0,05

Amostras de treinamento

9499

8999

10900

Amostras de validao

500

999

1200

Amostras de teste

100

100

100

0,000269

0,000342

0,000249

Erro mdio de treinamento

Ciclos de aprendizagem
33431
21063
Tabela 7.5 Parmetros de treinamento da rede MLP

18371

Os 7 neurnios de entrada representam os mesmos parmetros utilizados para


treinamento da rede SOM, ou seja, os parmetros da tabela 7.1. O nmero de neurnios da
camada oculta foram determinados por tentativa e erro, assim como a taxa de aprendizagem e
o momentum. A camada de sada possui dois resultados possveis: 0 para trfego normal e 1
para trfego de ataque. O critrio de escolha de amostras de ataque foi o de separar todas as
amostras de determinado ataque e rodar um script de coleta aleatria. A exceo fica por
conta dos ataques automticos. Todas as amostras foram utilizadas no treinamento, dentre
amostras de treinamento, validao e teste. O mesmo script utilizado para coleta de amostras
normais.
A figura 7.5 ilustra a topologia de cada rede especialista, assim como os pesos de cada
sinapse.

180

Figura 7.5 Topologia das redes bf22, scan e ataut respectivamente


Todas as redes foram treinadas com 7 camadas de entrada, 9 camadas ocultas e uma
camada de sada. Cada neurnio est conectado com todos os neurnios da camada posterior.
Os valores de ativao, erro e bias, aps o treinamento, esto representados dentro de cada
neurnio, conforme legenda. Os valores dos pesos de cada neurnio esto representados pela
sinapse entre eles. Os traos mais grossos representam os neurnios com maiores valores de
peso, ou seja, os que exercem maior influncia sobre a deciso final de deteco de um
pacote, sejam eles negativos ou positivos. A figura 7.6 ilustra a importncia relativa de cada
neurnio da camada de entrada (cada parmetro do pacote) na deciso final de deteco.

Figura 7.6 Importncia relativa dos parmetros de entrada em cada rede.

A figura 7.7 ilustra o grfico de treinamento das redes especialistas, bem como as
principais informaes como nmero de ciclos, erros e exemplos de validao (vide tabela
7.5).

181

Figura 7.7 Grfico de treinamento das 3 redes especialistas


Aps o treinamento, foram realizados alguns testes de deteco com padres no

182

treinados pelas redes. A tabela 7.6 resume os testes.

Bf22

Scan

Ataut

Acertostotal

100,0%

74,0%

92,0%

Acertostrfegonormal

100,0%

88,0%

84,0%

Acertostrfegoataque

100,0%

60,0% 100,0%

FalsosPositivos

0,0%

6,0%

8,0%

FalsosNegativos

0,0%

20,0%

0,0%

Acertosataquesmanuais
100,0%
0,0%

Tabela 7.6 Testes das redes neurais especialistas


Cada rede especialista foi testada com 100 novos pacotes de rede (no includos no
treinamento ou validao). Destes 100 pacotes, 50 eram de trfego normal e 50 de trfego de
ataque. Todas as amostras de trfego normal foram coletadas em uma nova situao e nada
tinham a ver com as amostras treinadas e validadas pelas redes. Das amostras de ataque, 60%
(30) foram testadas com pacotes capturados da honeynet, mas que no foram treinados nem
validados e 40% foram testadas com pacotes de ataque lanados manualmente. No caso do
ataque de bf22, uma estao slackware linux com servidor de ssh, em uma rede interna, foi
atacado utilizando uma srie de usurios e senhas falsos. No caso do ataque de scan, um
ataque de scanning tcp e scanning udp foi realizado utilizando a ferramenta nmap de uma
estao slackware linux para outra estao slackware linux na mesma rede interna. No caso do
ataque ataut, no foi possvel simular um ataque manualmente e todas as amostras de ataque
testadas foram colhidas da honeynet e no includas no treinamento ou validao.
A tabela mostra que o ataque de fora bruta foi o que melhor se saiu nos testes.
Acertou 100% das amostras, sendo que no trfego normal, quase metade do trfego era de ssh
legtimo na porta 22. Os ataques manuais foram realizados em faixas de endereos diferentes
das treinadas.
O ataque de scan foi o que obteve os piores resultados. Uma taxa de 6% de falsos
positivos, ou seja, classificou erroneamente 6 amostras normais. E uma taxa de falsos
negativos de 20%, ou seja, classificou erroneamente 20 amostras de ataque. Curiosamente,
essas 20 amostras erradas foram os ataques manuais realizados. Duas hipteses principais
para este fracasso na classificao dos ataques manuais: o segundo e o terceiro parmetros
mais importante na deciso de um ataque de scan, pelo treinamento (figura 7.6), so IPs de

183

destino e IPs de origem. A rede utilizada para os ataques manuais tinham como origem e
destino IPs de uma rede interna, ou seja, completamente diferentes dos IPs treinados na rede
MLP; a ferramenta utilizada para o scanning foi o nmap. Apesar de ser uma ferramenta
bastante popular, no garantido que ela tenha sido utilizada pelos atacantes da honeynet.
Pode-se dizer que a rede pode ter sofrido a chamada super especializao, ou seja, a grosso
modo ela pode ter decorado as amostras de treinamento, no sendo capaz de generalizar
suas decises.
Os ataques automticos tiveram uma taxa de acerto bem razovel. Todavia, no foram
realizados os testes de ataque manual e a capacidade de generalizao da rede no foi testada.
No treinamento deste ataque, o IPDestino foi considerado o parmetro com a maior
importncia.
O nmero de amostras utilizadas para teste foi muito reduzida devido a uma
dificuldade de operao da verso trial do software EasyNN. Cada parmetro de cada amostra
tem que ser digitado separadamente. O esforo de testar os 300 novos pacotes demandou
horas de trabalho manual. Seria desejvel em um prximo momento a verso completa do
software ou um outro software de teste para que mais amostras possam ser testadas e a rede
possa ser melhor avaliada quanto a sua eficincia capacidade de generalizao.

7.4CONSIDERAESFINAISDAPROVADECONCEITO

A soluo de deteco de intruso atravs de redes neurais artificiais, utilizando dados


colhidos em uma honeynet real, que foi construda durante todo o trabalho, foi testada e
apresentada neste captulo. A utilizao de redes neurais no supervisionadas, SOM, foi muito
importante para indicar a distribuio do trfego de ataque durante o perodo de captura.
Ficou claro, aps a leitura dos mapas, que um mesmo padro se repetia em quase todo o
perodo. Com a anlise detalhada posterior veio a confirmao. A idia que, em um universo
muito grande de trfego, o analista poder olhar os mapas resultantes e, baseado em sua
experincia, separar os tipos de ataques para anlise e treinamento.
A proposta inicial de treinamento de redes neurais especialistas para cada tipo de
ataque foi realizada. As amostras de trfego para treinamento foram colhidas aleatoriamente
do total de cada tipo de ataque e o trfego normal aleatoriamente de uma rede em produo.

184

Entretanto, nem todos os ataques capturados puderam ser treinados e mesmo os que foram
treinados no tiveram uma eficincia total. Isto porque alguns parmetros essenciais do
trfego de rede no puderam ser levados em considerao neste primeiro momento, so eles o
payload do pacote, a frequncia dos pacotes e o estado da conexo. Alm disso, alguns tipos
importantes de ataque no foram capturados, devido prpria natureza da honeynet
construda. Por exemplo, o ataque de DoS. A rede especialista que obteve o maior sucesso foi
a de ataques brute force, com 100% de deteco nos testes. sabido que ataques deste tipo
no necessitam de uma rede neural artificial para serem detectados ou barrados. Um simples
sistema de contagem e registro das tentativas de login suficiente. Porm, alm deste ataque
ter sido o mais realizado na honeynet, os resultados provam a capacidade de uma rede neural,
se bem treinada, de detectar com total preciso determinado ataque.

185

8CONCLUSO
Estar conectado na Internet, nos dias de hoje, no apenas ter um computador com
sistema operacional instalado e um modem com acesso grande rede. Se o sistema estiver
desatualizado ou desprotegido, em poucos minutos ele poder ser comprometido por ataques
automticos ou manuais existentes na rede. A preocupao com a segurana cada vez mais
presente nos usurios e, principalmente, nas corporaes representadas na Internet. A
quantidade de atacantes virtuais cada vez maior e as ferramentas utilizadas por eles, cada
vez mais sofisticadas. Conseqentemente, as solues de segurana so as mais diversificadas
possveis e tentam cobrir as mais diversas falhas existentes em protocolos e softwares.
O presente trabalho procurou demonstrar, atravs de captulos tericos, o
funcionamento bsico da Internet, com sua arquitetura, seus protocolos e seus pontos
vulnerveis. A discusso mais aprofundada sobre os diversos protocolos existentes, bem como
os detalhes de todos os ataques e falhas nos sistemas existentes vai muito alm do trabalho. A
idia bsica foi fornecer susbsdios para que o leitor compreenda o contedo da proposta e a
importncia de buscar alternativas s protees j existentes contra ataques cibernticos.
A proposta prtica consiste no treinamento de redes neurais artificiais MLP com
algoritmo backpropagation para deteco de intruso. Diversos outros trabalhos sobre o
assunto j foram publicados em Universidades de todo o Mundo. Entretanto, este apresenta
trs importantes contribuies em relao aos anteriores.
A primeira contribuio diz respeito base de dados utilizada para coleta dos dados de
ataque. Enquanto que a maioria dos estudos e experimentos sobre o assunto utiliza uma base
de ataque defasada e inserida em um contexto especfico: a base DARPA, construda em 1998
emulando servidores da fora area americana; ou uma base construda atravs de ataques
simulados pelo prprio autor; este trabalho utiliza uma base recente, de uma rede real
construda imagem e semelhana da rede de produo que se deseja trabalhar. Esta rede real
a honeynet, uma rede construda exclusivamente para ser invadida e que possui a garantia
que todo e qualquer trfego recebido de origem maliciosa e todo e qualquer trfego iniciado
a partir dela realizado pelo invasor. bem provvel que os ataques recebidos por esta rede
sero os mesmos ataques direcionados produo. Ou seja, uma rede neural artificial treinada
com amostras de ataque da honeynet, alm de amostras de trfego normal da prpria produo
estar apta a decidir se os pacotes recebidos na rede de produo so pacotes normais ou de

186

ataque.
Antes de serem treinados, os ataques recebidos na honeynet tm que ser devidamente
identificados. Isso porque as caractersticas de um ataque diferem muito das caractersticas de
outro e uma rede neural no pode ser construda simplesmente juntando todos no mesmo
treinamento. A identificao tem que ser realizada atravs da anlise humana e uma rede
neural artificial MLP backpropagation especializada em cada tipo de ataque tem que ser
construda. A construo dessas redes especialistas constitui a segunda contribuio
importante do trabalho.
A anlise humana realizada atravs de logs dos mecanismos de captura da honeynet
(IDS, firewall, sistema operacional, sniffer). Entretanto, uma inovao pode ser acrescentada
para uma anlise anterior aos logs, mais rpida e visual. a ltima importante contribuio
deste trabalho: a rede neural no supervisionada SOM, ou mapas de Kohonen. Atravs do
treinamento destas redes neurais so criados mapas bidimensionais do trfego e, de acordo
com a experincia do analista, possvel determinar o ataque que foi predominante em
determinado perodo de tempo, atravs da anlise do mapa correspondente.
Uma lio importante aprendida no decorrer do trabalho foi que os parmetros de
treinamento, tanto da rede neural no supervisionada SOM, quanto da rede supervisionada
MLP no so encontrados com facilidade e necessitam ser definidos empiricamente atravs de
diversos treinamentos anteriores ao definitivo. Esses parmetros so essenciais para o sucesso
da soluo.
Outra lio importante que no importa o quo criteriosa e precisa seja a anlise dos
ataques recebidos em uma honeynet, sempre havero ataques desconhecidos e novos que no
sero classificados corretamente. Por isso, importante que apenas ataques estritamente
conhecidos sejam disponibilizados para treinamento.
Uma outra lio aprendida que a fase de testes de uma rede neural MLP resultante
to, ou mais importante que o treinamento propriamente dito. Os resultados demonstraram
que o risco da rede neural especialista resultante se tornar super especializada, ou seja, no
possuir a capacidade de generalizao grande. Neste caso, o treinamento precisaria ser
refeito.
A ltima lio aprendida diz respeito construo da honeynet. essencial para o
sucesso da soluo que a honeynet construda seja praticamente uma cpia da rede de
produo no que diz respeito a servios, endereamento e sistemas operacionais. Apenas desta

187

maneira, o treinamento da rede neural especialista resultante levar em considerao as reais


diferenas entre o trfego normal e o trfego de ataque treinados. Lembrando que, para o
treinamento, o trfego normal coletado diretamente da produo e o trfego de ataque
coletado da honeynet.
O surgimento do mecanismo de reconhecimento de intruses mais popular hoje em
dia, chamado IDS (Intrusion Detection System) constituiu um grande avano na batalha contra
os atacantes. Entretanto, com o passar do tempo, mostrou ser um mecanismo bastante
limitado e fadado ao desaparecimento. Tanto que, em 2003 o grupo de estudos Gartner Group
decretou que, em poucos anos, o IDS seria substitudo por outro mecanismo mais inteligente,
o IPS (Intrusion Prevention System).
Assim que uma vulnerabilidade descoberta, surgem um ou mais exploits com o
objetivo de comprometer sistemas que possuem aquele furo. O IDS um mecanismo baseado
na assinatura do ataque (exploit), ou seja, o mecanismo apenas detecta o ataque se ele estiver
idntico ao exploit conhecido. O IPS baseado na assinatura da vulnerabilidade, uma simples
mudana no pacote de ataque no afetar na deteco do mesmo. Alm disso, o IPS um
elemento extremamente ativo, atuando como uma barreira na frente da rede, no deixando,
caso reconhea um ataque, que ele passe para o outro lado. O IDS, por outro lado, apesar de
enviar pacotes de RESET para a conexo, s o faz depois que o ataque j est acontecendo.
Outra vantagem do IPS, sua capacidade de realizar outras anlises que no seja a
anlise baseada em assinaturas. So realizadas anlises estatsticas de anomalia de trfego e
anomalia de protocolos. Quanto mais mecanismos que possam indicar a presena de um
ataque, tanto melhor. Neste ponto, deve-se acrescentar um novo e promissor mecanismo: os
algoritmos no-lineares, como redes neurais artificiais. Obviamente, as solues deste tipo
existentes hoje precisam evoluir muito para fazer parte de um sistema to complexo e preciso
em descobrir ataques. Ainda quando fizerem parte, no sero suficientes para detectar todo e
qualquer tipo de ataque. As outras anlises ainda sero necessrias e um sistema de pesos
diferentes para cada tipo de diagnstico poder ser utilizado para definir se deve-se barrar ou
no um trfego de rede por ser ataque.
A soluo apresentada no trabalho est completamente inserida no contexto desta nova
soluo, na busca de minar as limitaes de um IDS comum. Foi intensamente discutido,
durante o trabalho, as vantagens de generalizao, de deteco de ataques novos e
desconhecidos e a velocidade extremamente maior de deteco de uma rede neural, em

188

relao a um mecanismo baseado em assinatura. Entretanto, uma soluo apenas baseada no


algoritmo no-linear ainda no possvel. Utiliz-lo como um parmetro na deciso de uma
intruso parece ser uma proposta sensata para um futuro prximo.
Da proposta desenvolvida no trabalho, alguns ajustes poderiam ser feitos para
aumentar a efetividade e preciso da soluo. Um deles, j discutido, seria inserir nos
parmetros de treinamento uma anlise de payload do pacote, uma anlise da frequncia de
chegada dos pacotes, assim como uma anlise de estado das conexes. Outra melhora seria
aplicar uma rotina de treinamento peridica, visto que os ataques no so estticos e esto
sempre mudando ao longo do tempo, alm poderem ressurgir de tempos em tempos.
Uma possvel rotina de treinamento peridico seria:
a) identifica-se um ataque na honeynet (configurada o mais prximo possvel da rede de
produo);
b) treina-se a rede especfica do ataque;
c) coloca-se em produo (no como um decisor absoluto de intruso, mas como um peso em
um sistema mais complexo). Caso o ataque j tenha sido treinado alguma vez, substitu-lo,
pois o padro pode ter mudado.
Enfim, espera-se que este trabalho possa fornecer uma contribuio acadmica que
auxilie na construo futura de um poderoso sistema de deteco e preveno de intruses.

189

9BIBLIOGRAFIA

[1]

COMER,D.,InternetworkingwithTCP/IPVolumeIprinciples,protocols,and
architeturethirdeditionPrenticeHall,1995.
[2] STEVENS,W.,R.,TCP/IPIllustrated,Volume1TheProtocolsADDISON
WESLEYTucson,Arizona1993.
[3] TANENBAUM,A.,S.,RedesdeComputadorestraduo[da3.ed.original]
InsightServiosdeInformticaRiodeJaneiroCampus,1997.
[4] PETERSON,L.,L.;DAVIE,B.,S.,ComputerNetworks,ASystemApproach
thirdeditionMorganKaufmann2003.
[5] CHESWICK,W.,R.;BELLOVIN,S.,M.;RUBIN,A.,D.,FirewallsandInternet
Security,RepellingtheWilyHackersecondeditionADDISONWESLEY
2003.
[6] KOZIOL,J.,IntrusionDetectionwithSnortSamsPublishing2003.
[7] TheMISCorporateDefenceSolutionLtd.,NetworkSecurityTeam,AnOverview
ofNetworkSecurityAnalysisandPenetrationTesting,AguidetoComputer
HackingandPreventativeMeasuresAugust2000.
[8] BREILING,S.;PLATO,A.;WINTER,K.,BlackiceGuidetoComputerSecurity
Version2.5NetworkICECorporation2001.
[9] PARMAR,S.,K.,InformationResourceGuide,Computer,InternetandNetwork
SystemsSecurity,AnIntroductiontoSecurity.
[10] TULLOCH,M.,MicrosoftEncyclopediaofSecurityMicrosoftPress2003.
[11] STANGER,J.;LANE,P.,T.,HackProofing,Linux:AGuidetoOpenSource
SecuritySyngressPublishing,Inc2001
[12] TheHackersLayerGroup,TheHackersLayerHandbookVersion1.0
[13] REHMAN,R.,U.,IntrusionDetectionSystemswithSnort,AdvancedIDS
TechniquesUsingSnort,Apache,MySQL,PHPandACIDPrenticeHall2003.
[14] STALLINGS,W.,CryptographyandNetworkSecurity,PrinciplesandPractice
SecondEditionPrenticeHall1999.
[15] NORTHCUTT,S.;NOVACK,J.;MCLACHLAN,D.,SeguranaePrevenoem
Redestrad.MarcosVieiraed.Berkley2001.
[16] WIDROW,B.;LEHR,M.,30YearsofAdaptativeNeuralNetworks:Perceptron,
MadalineandBackpropagationsIEEE1990.
[17] KROSE,B.;SMAGT,P.,V.,D.,AnIntroductiontoNeuralNetworkseight
editionUniversityofAmsterdam1996.
[18] KOVACS,Z.,L.,RedesNeuraisArtificiais,FundamentoseAplicaes3ed.
LivrariaFsica1996.
[19] PRINCIPE, J., C., Artificial Neural Networks, The Electrical Engineering
Handbook CRC Press LLC 2000.
[20] JAIN,A.,K.;MAO,J.,ArtificialNeuralNetworks:ATutorialIEEE1996.
[21] ANDERSON,D.;MCNEILL,G.,ArtificialNeuralNetworksTechnologyRome
Laboratory1992.
[22] BAUCHSPIESS,A.,IntroduoaosSistemasInteligentes,Aplicaesem
EngenhariadeRedesNeuraisArtificiais,LgicaFuzzyeSistemasNeuroFuzzy
DepartamentodeEngenhariaEltrica,UnB2004.

190

[23] FAUSETT,L.,FundamentalsofNeuralNetworks,Architectures,Algorithmsand
ApplicationsPrenticeHall1994.
[24] YOUSEFIZADEH,H.;ZILOUCHIAN,A.,NeuralNetworkArchitecturesCRC
PressLLC2001.
[25] VEELENTURF,L.,P.,J.,AnalysisandApplicationsofArtificialNeuralNetworks
PrenticeHall1995.
[26] NEELAKANTA,P.,S.;DEGROFF,D.,NeuralNetworkModeling:Statistical
MechanicsandCyberneticPerspectivesCRCPressLLC1994.
[27] LAZAREVIC,A.;ERTOZ,L.;KUMAR,V.;OZGUR,A.;SRIVASTAVA,J.,A
ComparativeStudyofAnomalyDetectionSchemesinNetworkIntrusionDetection
ComputerScienceDepartment,UniversityofMinnesota2003.
[28] SANTOS,R.,B.;CAMINHAS,W.,M.;ERRICO,L.,Detecodeintrusos:Uma
abordagemusandoredesneuraisCPDEE,UFMG.
[29] GHOSH,A.,K.;MICHAEL,C.;SCHATZ,M.,ARealTimeIntrusionDetection
SystemBasedonLearningProgramBehaviorReliableSoftwareTechnology.
[30] CANNADY,J.,ArtificialNeuralNetworksforMisuseDetectionSchoolof
ComputerandInformationSciences,NovaSoutheasternUniversity1998.
[31] RYAN,J.;LIN,M.;MIIKKULAINEN,R.,IntrusionDetectionwithNeural
NetworksUniversityofTexasatAustin1998.
[32] RHODES,B.,C.;MAHAFFEY,J.,A.;CANNADY,J.,D.,MultipleSelf
OrganizingMapsforIntrusionDetectionGeorgiaInstituteofTechnology
2000.
[33] CANNADY,J.,TheApplicationofArtificialNeuralNetworkstoMisuse
Detection:InicialResultsGeorgiaInstituteofTechnology1998.
[34] LIPPMANN,R.,P.;CUNNINGHAM,R.,K.,ImprovingIntrusionDetection
PerformanceUsingKeywordSelectionandNeuralNetworksMITLincoln
Laboratory.
[35] MUKKAMALA,S.;JANOSKI,G.;SUNG,A.,IntrusionDetection:Support
VectorMachinesandNeuralNetworksNewmexicoInstituteofMiningand
Technology2002.
[36] SILVA,R.,M.;MAIA,M.,A.,G.,M.,RedesNeuraisArtificiaisAplicadas
DetecodeIntrusosemRedesTCP/IPPUCRJ.
[37] BOMBONATO,F.;COELHO,F.,E.,S.,BeholderUtilizandoRedesNeurais
MPLnaDetecodeIntrusosUniversidadeCatlicadeBraslia.
[38] PLANQUART,J.,P.,ApplicationofNeuralNetworkstoIntrusionDetection
SANSInstitute2001.
[39] GIRARDIN,L.,AneyeonNetworkIntruderAdministratorShootoutsUBS,
Ubilab1999.
[40] RAMADAS,M.;OSTERMANN,S.;TJADEN,B.,DetectingAnomalousNetwork
TrafficwithSelfOrganizingMapsOhioUniversity2003.
[41] LEI,J.,Z.;GHORBANI,A.,NetworkIntrusionDetectionUsinganImproved
CompetitivelearningNeuralNetworkUniversityofNewBrunswick,Canada.
[42] JIRAPUMMIN,C.;WATTANAPONGSAKORN,N.;KANTHAMANON,P.,
HybridNeuralNetworksforIntrusionDetectionSystemKingMongkut's
UniversityofTechnologyThonburi2003.
[43] LIPMANN,R.;HAINES,J.,W.;FRIED,D.,J.;KORBA,J.;DAS,K.,The1999
DARPAOffLineIntrusionDetectionEvaluationMITLincolnLaboratory
1999.

191

[44] HONEYNETPROJECT,KnowYourEnemyAddisonWesley2002.
[45] MELO,L.,P.,HoneynetsUniversidadeCatlicadeBraslia2004.
[46] PERENS,B.;RUDOLPH,S.;GROBMAN,I.;TREACY,J.;DICARLO,A.,
InstallingDebianGNU/Linux3.0ForSPARC2002.
[47] PEIXOTO,J.,F.,Honeynet,umAmbienteparaAnlisedeIntrusoIBILCE,
UniversidadePaulista.
[48] www.mhhe.com/socscience/intro/ibank/set1.htm
[49] www.answers.com/topic/actionpotential
[50] http://www.ccwu.edu/Thesis_Moynihan/Chapter3_files/image006.gif
[51] http://www.ii.metu.edu.tr/~ion526/demo/chapter1/section1.2/images/fig18.gif
[52] http://www.kovan.ceng.metu.edu.tr/~erol/publications/html/Sah94MS/l2
img10.gif
[53] http://www.ph.tn.tudelft.nl/Research/neural/feature_extraction/papers/thesis/img21
5.gif
[54] http://www.ph.tn.tudelft.nl/Research/neural/feature_extraction/papers/thesis/img21
8.gif
[55] http://www.ift.uib.no/~antonych/field.jpg
[56] http://www.lohninger.com/helpcsuite/img/kohonen1.gif
[57] http://www.honeynet.org/
[58] http://www.honeynet.org.br/
[59] http://www.honeynet.org/papers/honeynet/
[60] http://www.honeynet.org.es/papers/honeywall/
[61] http://www.linuxsecure.de/index.php?action=90
[62] http://snortinline.sourceforge.net/
[63] http://www.snort.org
[64] http://ebtables.sourceforge.net/
[65] http://bridge.sourceforge.net/download.html
[66] http://www.tcpdump.org/
[67] http://www.ethereal.com
[68] http://www.debian.org/
[69] http://www.sunfreeware.com/
[70] http://www.netfilter.org/
[71] http://aurelio.net/shell/canivete.html
[72] http://www.netsecurity.org/article.php?id=568
[73] http://www.phrack.org/fakes/p62/p620x07.txt
[74] http://www.linuxsecurity.com.br/sections.php?op=imprime&artid=5
[75] http://www.insecure.org/tools.html
[76] http://www.ssh.com/
[77] http://www.sans.org/
[78] http://www.dnsstuff.com/
[79] http://www.cert.br/
[80] http://www.iss.net/
[81] http://www.cis.hut.fi/research/som_pak/som_doc.txt
[82] http://www.cis.hut.fi/research/somresearch/nnrcprograms.shtml
[83] http://www.easynn.com/
[84] http://www.cet.nau.edu/~mc8/Socket/Tutorials/section1.html
[85] http://reactorcore.org/libpcaptutorial.html
[86] http://www.tcpdump.org/pcap.htm

192

[87]
[88]
[89]
[90]
[91]
[92]

http://www.securityfocus.com/
http://pt.wikipedia.org/
http://www.rfceditor.org/
http://www.cert.org/
http://www.ll.mit.edu/IST/ideval/
http://www.subnetcalculator.com/

193