paper

Transcrição

paper
Uma Ferramenta de Monitoração Programável Voltada à Detecção de
Intrusão
Edgar Meneghetti, Luciano Gaspary, Liane Tarouco
Universidade Federal do Rio Grande do Sul, Instituto de Informática
Av. Bento Gonçalves, 9500 - Agronomia - CEP 91591-970 - Porto Alegre, Brasil
{[email protected], [email protected], [email protected]}
ABSTRACT
This paper proposes the use of Trace architecture proposed in [1, 2, 3] as an Intrusion Detection System . The
architecture provides the network manager with mechanisms for distributed management of high layer protocols and
network services. Using the graphical/textual language called PTSL (Protocol Trace Specification Language), which is
one of the elements of the architecture, the network manager can specify protocol traces and delegate them to
monitoring agents, which monitor and count their occurrence on the network segment where they are attached to. The
paper presents how PTSL may be used to model attack signatures and proposes the implementation of the programmable
monitoring tool (monitoring agent), which is another key element of the architecture.
Keywords: intrusion detection, network management, monitoring, Internet.
RESUMO
Este artigo propõe a utilização da arquitetura Trace proposta em [1, 2, 3] como um Sistema para Detecção de Intrusão.
A arquitetura oferece ao gerente de rede mecanismos para o gerenciamento distribuído de protocolos de alto nível e
serviços de rede. Usando a linguagem gráfica/textual PTSL (Protocol Trace Specification Language), que é um dos
elementos da arquitetura, o gerente de rede pode especificar traços de protocolos e delegá-los a agentes de monitoração,
que monitoram e contabilizam sua ocorrência no segmento de rede onde estão ligados. O artigo apresenta como PTSL
pode ser usada para modelar assinaturas de ataque e propõe a implementação da ferramenta de monitoração programável
(agente de monitoração), outro elemento-chave da arquitetura.
Palavras-chave: detecção de intrusão, gerenciamento de redes de computadores, monitoração, Internet.
1. INTRODUÇÃO
Com o grande crescimento das redes de dados, evidenciado principalmente pela Internet, cresce também a preocupação
com a segurança das informações armazenadas nos computadores conectados a elas e dos próprios dados que circulam
por essas redes. Além disso, uma quantidade cada vez maior de atividades essenciais é realizada por intermédio das
redes (principalmente através da Internet), e seu funcionamento correto e confiável torna-se cada vez mais fundamental.
Em paralelo, tentativas de intrusão, ações de pirataria e invasões consumadas são reportadas diariamente, e envolvem
um número cada vez maior de máquinas. O uso de mecanismos específicos de segurança é cada vez mais indispensável
nos sistemas computacionais modernos.
Sistemas para Detecção de Intrusão baseados em rede como o SHADOW [4], o SNORT [5] e o NFR (Network Flight
Recorder) [6] têm sido propostos, mas limitam a análise apenas aos protocolos das camadas mais baixas (TCP e IP) e
dificilmente suportam a detecção de ataques mais elaborados, tais como os realizados explorando vulnerabilidades
presentes em protocolos da camada de aplicação. A ferramenta SHADOW apresenta essa limitação. Embora a detecção
de intrusão não seja feita em tempo real, a ferramenta é capaz de detectar muitos cenários de ataques através da análise
dos cabeçalhos IP ou TCP, de forma eficiente e robusta. Outra deficiência do SHADOW é a incapacidade de monitorar
o payload do pacote, inviabilizando a detecção de ataques simples, como os efetuados contra CGIs de servidores web.
A ferramenta SNORT aparece como o sistema mais utilizado atualmente para detecção de intrusão, possuindo um
desempenho muito bom e uma linguagem procedural flexível para descrição de ataques. O processo de detecção de
intrusão do SNORT baseia-se na aplicação de regras de filtragem em cada pacote, a fim de procurar assinaturas de
ataques conhecidos. Uma limitação dessa ferramenta se refere ao fato de apenas procurar assinaturas de ataques em cada
pacote, ou em um fluxo, sem conseguir detectar ataques que necessitem de pacotes de protocolos diversos para serem
caracterizados.
O sistema para detecção de intrusão NFR apresenta um mecanismo mais elaborado para o processo de detecção de
intrusão, fornecendo uma linguagem procedural bastante extensa e de difícil aprendizado (N-code) e a possibilidade de
se medir o grau de anormalidade de um determinado pacote. O grau de anormalidade é medido através da ocorrência
freqüente ou não dos pares endereço IP e porta do serviço em um intervalo de tempo. Mais uma vez, esta solução não
contempla os casos relativos à camada de aplicação, além de não apresentar uma linguagem de fácil assimilação, que é
importante do ponto de vista do administrador no momento em que um novo ataque precisa ser descrito.
O presente trabalho explora a arquitetura Trace com o propósito de realizar detecção de intrusão e apresenta a
arquitetura de uma ferramenta de monitoração programável, capaz de receber especificações de traços de protocolos e
passar a observar sua ocorrência na rede. A arquitetura para gerenciamento distribuído de protocolos de alto nível,
proposta por Gaspary em [1, 2, 3], é apresentada na seção 2. A seção 3 apresenta a modelagem de alguns cenários de
ataques utilizando a notação gráfica e textual da linguagem PTSL, assim como uma breve descrição da linguagem. O
agente de monitoração é apresentado na seção 4. Na seção 5 são apresentadas as considerações finais.
2. ARQUITETURA TRACE
A arquitetura Trace é uma extensão da infra-estrutura centralizada de gerenciamento SNMP, para, através de um
modelo em três camadas, suportar o gerenciamento distribuído de protocolos de alto nível e serviços de rede. A figura 1
ilustra um esquema da arquitetura. A principal contribuição da mesma é a presença de agentes de monitoração
extensíveis ou programáveis, capazes de receber dinamicamente descrições de traços de protocolos (especificações
PTSL) e passar a monitorar a sua ocorrência na rede. As estatísticas coletadas são armazenadas em uma MIB similar à
RMON2. A programação do agente de monitoração é realizada pelo gerente intermediário através de um script. Este
mesmo script faz a monitoração dos dados armazenados na MIB pelo agente e, dependendo das condições observadas,
instancia e dispara um script em um agente de ação. O agente de ação reside na estação onde o serviço monitorado se
encontra. Os scripts disparados por esse agente realizam, por exemplo, o reinício do serviço ou a reconfiguração do
mesmo. A arquitetura apresenta ainda mecanismos de notificação (traps) para que os agentes façam notificação de
eventos ao gerente intermediário e para que este possa reportar eventos mais significativos à estação de gerenciamento.
2
Estação de Gerenciamento
banco de
dados
browser
web
server
PHP
(PTSL, Java,
Perl, Tcl)
Target
MIB
scripts
(PHP)
trap
notifier
agente
SNMP
Notif.
MIB
Script
MIB
monitor PTSL
repositório
scripts
(PTSL)
RMON2
MIB
agente
SNMP
scripts
(Java, Perl, Tcl)
agente
SNMP
Script
MIB
interpretador
Java, Perl, Tcl
interpretador
Java, Perl, Tcl
Script
MIB
Agente de Ação
scripts
(Java, Perl, Tcl)
Gerente Intermediário
FIGURA 1- Arquitetura Trace
A arquitetura foi projetada com o objetivo de atender aos requisitos das cinco áreas funcionais de gerenciamento FCAPS
(Fault, Configuration, Accounting, Performance e Security). Ao observá-la com o foco voltado ao gerenciamento de
segurança, a arquitetura seria classificada como um sistema de detecção de intrusão baseado em rede, já que os dados
são coletados diretamente da rede, sem a necessidade de haver algum agente sendo executado nos hosts monitorados. Se
a classificação for pelo método empregado, pode-se classificar como um sistema de detecção de intrusão baseado em
assinatura e em anomalia, uma vez que se pode empregar assinaturas conhecidas para reconhecimento de invasões, bem
como criar traços que representem situações anormais (anômalas). O próprio gerente intermediário pode realizar a
detecção por anomalia, como, por exemplo, a ocorrência de um determinado traço em um horário não usual.
3. MODELAGEM DE ATAQUES USANDO A LINGUAGEM PTSL
Uma série de ataques conhecidos [7, 8, 9, 10,11] foi modelada utilizando as notações gráfica e textual da linguagem
PTSL, parte integrante da arquitetura Trace. As figuras a seguir ilustram alguns destes ataques. A notação gráfica
corresponde a uma máquina de estados, onde as transições em linha cheia representam mensagens do cliente para o
servidor e as linhas pontilhadas representam mensagens do servidor para o cliente.
A varredura de portas é um método de avaliação de quais são os possíveis serviços TCP e UDP disponíveis em um
equipamento alvo. Existe uma série de técnicas [8] para realizar esta varredura, sendo a mais simples o envio de pacotes
para todas as portas de uma estação. No caso do TCP, ao enviar um pacote com o bit SYN ligado, a resposta esperada é
um pacote com SYN e ACK ligados, caso aquela porta possua um serviço associado. Caso não haja nenhum serviço
nesta porta, a resposta será um pacote TCP com o bit RST ligado. O traço, descrito com a notação gráfica, está ilustrado
na figura 2.
O gerente intermediário programa o agente de monitoração para que passe a observar a ocorrência do traço. Além disso,
ele consulta periodicamente a MIB RMON2 estendida onde os resultados da monitoração são armazenados (vide tabela
1). Se em um intervalo de consulta o número de ocorrências superar um determinado valor, definido pelo gerente na
especificação da tarefa de gerenciamento, o script gera uma notificação à estação central de gerenciamento.
Outras técnicas de varredura de portas são facilmente implementadas através de PTSL. A técnica na qual é enviado um
pacote TCP com os bits SYN e ACK ligado e espera-se um pacote de resposta com o bit RST ligado caso a porta não
esteja associada a algum serviço pode ser especificada de forma similar. Esta técnica também é conhecida por
mapeamento reverso, visto que as respostas obtidas do alvo correspondem às portas que não possuem serviços, mas
3
pode-se deduzir que as demais portas possuem. As demais técnicas que utilizam mapeamento reverso (também
conhecidas por stealth scan) também podem ser implementadas de forma análoga.
Trace “Acesso inválido a serviço TCP” Version: 1.0
Description:Acesso a serviço não disponível.
TCP SYN
Key: TCP, varredura de portas
Port:
Owner: Edgar Meneghetti
2
idle
Last Update: Tue, 16 Aug 2000 15:30:58 GMT
TCP RST
FIGURA 2 – Traço para detectar varredura de portas
Os artifícios para encobrir a varredura de portas, tais como, varredura de portas usando uma seqüência aleatória, ou com
intervalos de tempo grandes, são problemas tratados pontualmente pelas ferramentas para detecção de intrusão. No caso
do traço modelado acima, este problema não se aplica. A seqüência de números de portas não é importante para a
ocorrência do traço, assim como o intervalo entre uma conexão e outra. Este último problema deverá ser endereçado
pelo gerente intermediário, no sentido de definir quais são os limites aceitáveis de ocorrência deste traço em um período
de tempo.
A especificação do mesmo traço utilizando a notação textual está mostrada na figura 3. Os itens principais da linguagem
serão descritos a seguir. A especificação de um traço inicia com a palavra-chave Trace e termina com EndTrace (linhas
1 e 27). O nome do traço (linha 1) deve ser especificado pelo gerente intermediário, sendo os demais itens do cabeçalho
opcionais (linhas 2 a 7). Em seguida, a especificação é dividida em três seções: MessagesSection (linhas 8 a 17),
GroupsSection (não utilizada no exemplo) e StatesSection (linhas 18 a 26).
Em MessagesSection são definidas as mensagens que causarão a evolução do traço. Quando duas ou mais mensagens
causam a transição de um mesmo estado para outro, é possível agrupá-las em uma única mensagem, tornando a
especificação mais clara. Esses agrupamentos são definidos na seção GroupsSection. Por fim, na seção StatesSection é
definida a máquina de estados que representa o traço.
A evolução da máquina de estados ocorre quando um pacote com campos idênticos aos especificados em uma client ou
server message é observado na rede. No exemplo apresentado na figura 2, a máquina de estados evolui do estado idle
para o estado 2 ao observar uma mensagem TCP-SYN.
Na linguagem PTSL, as transições de estado são representadas por um sistema posicional. A diferença entre os
protocolos requer a utilização de duas abordagens distintas para a identificação de campos. São elas:
•
•
FieldCounter:usada em protocolos baseados em caracter, esta abordagem trata uma mensagem como um
conjunto de primitivas separadas por espaços em branco; a identificação de um campo, nesse caso, ocorre
pela posição do mesmo na mensagem (não usado no exemplo);
BitCounter:usada em protocolos binários; a identificação de um campo é determinada por um offset em
bits a partir do início do cabeçalho do protocolo em questão até o início do campo desejado; além da
posição inicial do campo é preciso indicar ainda o número de bits que o campo ocupa (linhas 11 e 15).
4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Trace “Acesso inválido a serviço TCP”
Version: 1.0
Description: Acesso a serviço não disponível.
Key: TCP, varredura de portas
Port:
Owner: Luciano Paschoal Gaspary
Last Update: Tue, 16 Aug 2000 15:30:58 GMT
MessagesSection
Message “TCP SYN ”
MessageType: client
BitCounter Ethernet/IP 110 1 1 “Campo SYN – 1 significa TCP Connect”
EndMessage
Message “TCP RST”
MessageType: server
BitCounter Ethernet/IP 109 1 1 “Campo RST”
EndMessage
EndMessagesSection
StatesSection
FinalState idle
State idle
“TCP SYN” GotoState 2
EndState
State 2
“TCP RST” GotoState idle
EndState
EndStatesSection
EndTrace
FIGURA 3 – Especificação textual do traço para detectar varredura de portas
As informações associadas a um campo BitCounter são as seguintes:
• Encapsulamento: identifica onde o campo deve ser buscado; no exemplo, o encapsulamento definido para
ambos os campos é Ethernet/IP, indicando que o protocolo a ser monitorado será encontrado no campo
de dados do protocolo IP;
• Posição inicial: indica o offset em bits a partir do início do cabeçalho do protocolo em questão até o
início do campo desejado; o primeiro bit é o 0;
• Comprimento do campo: indica o tamanho em bits do campo;
• String de comparação: string usada na comparação com o campo selecionado no pacote;
• Descrição: breve comentário a respeito do campo.
A seção StatesSection permite especificar, de forma textual, a máquina de estados que representa o traço. O estado final
é identificado logo após o início da seção StatesSection (linha 19). Os estados idle e 2 são definidos, respectivamente,
nas linhas 20 a 22 e 23 a 25. A especificação de um estado se resume a listar os eventos (mensagens e agrupamentos)
que podem provocar uma transição e indicar, para cada um deles, o próximo estado (linhas 21 e 24).
Além das abordagens BitCounter e FieldCounter, a linguagem ainda proporciona a abordagem NoOffSet, que permite a
localização de seqüência de caracteres (strings) na área de dados do protocolo especificado. Agrupamento de mensagens
também é possível através da declaração GroupsSection, o que equivale a uma operação lógica “ou” entre as mensagens
especificadas na seção MessagesSection. Mais informações sobre a linguagem podem ser obtidas em [1, 2, 3].
A figura 4 ilustra um caso de comportamento anômalo, onde o pacote de início da conexão TCP (SYN) carrega dados
[12]. Este recurso é utilizado para enganar algum sistema de segurança que procura pela ocorrência de determinadas
palavras-chave no payload do TCP, mas que em geral não fazem esta verificação no handshake. Estes dados serão
adicionados ao restante dos dados que vierem após o handshake.
5
Trace “Comportamento anômalo TCP” Version: 1.0
Description: Acesso a telnet com payload não
vazio.
Key: TCP, telnet, anomalia
TCP SYN &&
idle
TCP PORTA=23 && Port:
Owner: Edgar Meneghetti
TCP *
Last Update: Tue, 16 Aug 2000 15:30:58 GMT
FIGURA 4 - Comportamento anômalo
Um cenário de ataque no nível de aplicação pode ser descrito pela utilização freqüente do comando rpcinfo, disponível
em implementações Unix. Este comando retorna uma relação de servidores que aceitam requisições do tipo RPC
(Remote Procedure Call) e pode ser uma informação valiosa do ponto de vista do atacante. O comando baseia-se no
envio de uma mensagem ao servidor de conversão de número de programas RPC para portas TCP/UDP (portmapper
daemon), solicitando que seja enviado um dump de todos os servidores RPC disponíveis nesta máquina. Como resposta,
o portmapper envia uma mensagem contendo uma relação destes servidores e as respectivas portas e números de
programa RPC. A modelagem deste traço está ilustrada na figura 5.
Trace “comando rpcinfo”
RPC – msg type=0 &&
TCP port dst=111
2
idle
Version: 1.0
Description:Utilização do comando rpcinfo.
Key: RPC, rpcinfo
Port:
Owner: Edgar Meneghetti
Last Update: Tue, 16 Aug 2000 15:30:58 GMT
RPC – msg type=1
Figura 5 - Traço de ocorrência do comando rpcinfo
É importante salientar que este traço irá capturar tráfego legítimo também, ou seja, a ocorrência deste traço, analisado de
forma estanque, não tem um significado conclusivo. O sistema NFS (Network File System) faz uso de rotinas que
envolvem um processo idêntico ao descrito no traço. Porém, este traço só será observado durante a negociação para a
montagem de sistemas de arquivos externos e não mais durante o resto do período em que este sistema de arquivos
estiver montado. Desta forma, a ocorrência deste traço em horários não usuais ou em grande quantidade (varredura de
hosts que possuam portmapper sendo executado, por exemplo), pode ser interpretada pelo gerente intermediário como
um indicativo de ataque, ou de futuro ataque.
4. O AGENTE DE MONITORAÇÃO
Os agentes de monitoração contabilizam a ocorrência de traços no segmento onde se encontram. São denominados
programáveis porque os traços a serem monitorados podem ser configurados dinamicamente, sem a necessidade de
recompilar esses agentes. Esta flexibilidade é obtida através da linguagem PTSL, apresentada no capítulo 3. Na prática,
os agentes realizam a leitura de arquivos PTSL, organizam algumas estruturas em memória e iniciam o processo de
monitoração.
A determinação de que traços devam ser monitorados em um dado momento é realizada pelo gerente intermediário. A
interface de comunicação entre o gerente intermediário e o agente de monitoração é a Script MIB [13]. No script
executado pelo gerente intermediário, descrito em [1, 2, 3], é possível observar como é feita a programação de um
agente de monitoração. Um dos parâmetros informados no script executado no gerente intermediário é o endereço URL
6
do script (especificação PTSL) a ser executado. Ao receber do gerente intermediário a solicitação de execução de um
determinado script, esse é recuperado do repositório via HTTP e executado.
Na realidade, uma especificação PTSL não é executável. A semântica associada à solicitação de execução de uma
especificação é fazer com que o agente de monitoração passe a monitorar o novo traço. De forma análoga, a interrupção
de um script na Script MIB significa programar o agente de monitoração para que ele cesse a monitoração do traço
definido por esse script.
Toda vez que a ocorrência do traço é observada entre qualquer par de estações, informações são armazenadas em uma
MIB similar à RMON2 [14]. Uma das diferenças da MIB usada com relação à RMON2 é que o grupo protocolDir, que
indica os protocolos que o agente é capaz de monitorar, deixa de ser um grupo de leitura e passa a ser configurável.
Além disso, a granularidade da monitoração torna-se maior. Ao invés de armazenar estatísticas globais sobre o tráfego
gerado por um determinado protocolo, as estatísticas são geradas de acordo com a ocorrência de traços especificados.
O grupo alMatrix, da MIB RMON2, armazena estatísticas sobre o traço, quando observado entre cada par de estações. A
tabela 4.1 ilustra o conteúdo da tabela alMatrixSD. Ela contabiliza o número de pacotes e octetos entre cada par de
máquinas (cliente/servidor). No caso, três traços foram observados.
TABELA 1 – Informações obtidas com consulta à tabela alMatrixSD
SourceAddress
DestAddress
Protocol
Pkts
Octets
125.120.10.100
172.16.108.1
172.16.108.32
172.16.108.254
172.16.108.2
172.16.108.2
Acesso inválido a serviço TCP
Comportamento anômalo TCP
Comando rpcinfo
20
4
8
3.204
4.350
7.300
A desvantagem em usar a MIB RMON2 é que ela não possui objetos capazes de armazenar informações relacionadas a
desempenho. Por essa razão, está sendo avaliada atualmente a possibilidade de utilizar adicionalmente uma extensão da
RMON2, como a Application Performance MIB [15]. A tabela 4.2 apresenta o tipo de informações armazenadas pela
MIB. A primeira linha indica que o traço Three-way handshake foi observado 12.700 vezes entre as máquinas
172.16.108.1 e 172.16.108.254. O número de traços que não completaram com sucesso foi de 2320. Além disso, o
tempo médio de ocorrência deste traço foi de 1 segundo. Desta MIB pode-se retirar informações valiosas do ponto de
vista de segurança, como por exemplo, de que a quantidade de falhas no início da conexão está muito alta, significando
que provavelmente alguma anomalia está ocorrendo neste ponto. As técnicas de varredura de portas poderiam ser
detectadas desta forma também.
TABELA 2 – MIB com informações sobre desempenho
Client
Server
Protocol
Successful Unsuccessful
172.16.108.1
172.16.108.254
Three-way handshake
12700
2320
Responsiveness
1 sec.
A implementação do agente de monitoração está sendo realizada segundo o esquema da figura 6. O módulo de captura
de pacotes está sendo implementado através da libpcap, uma biblioteca específica para esta função e disponibilizada
pelo grupo de pesquisa em redes do laboratório Lawrence Berkeley [16]. A libpcap tem aparecido como uma biblioteca
padrão para captura de pacotes em sistemas que a suportem. Embora a biblioteca suporte a especificação de filtros
utilizando a notação BPF (Berkeley Packet Filter), este recurso não está sendo utilizado pelo agente. A utilização deste
mecanismo poderia aumentar bastante o desempenho do agente, sendo este um trabalho futuro a ser desenvolvido.
O módulo verificador de ocorrência de traços é responsável por analisar os pacotes fornecidos pela biblioteca de captura
de pacotes e procurar pela ocorrência de traços nestes. Uma máquina de estados é implementada através de listas
encadeadas, executando em uma thread distinta da thread de captura de pacotes. Se houver a ocorrência de um traço,
então é desencadeado um processo de inclusão ou alteração de informação no banco de dados mySQL. Este banco de
dados servirá como base de leitura para o agente SNMP buscar dados da MIB RMON2 estendida. A escolha do banco
7
de dados mySQL se deu principalmente pelo alto desempenho apresentado por ele tanto para consultas como para
inclusões.
FIGURA 6 - Agente de monitoração
O agente de monitoração está sendo implementado através da linguagem C, com o auxílio de threads, e o sistema
operacional utilizado é Linux, principalmente pela facilidade em integrar os diferentes componentes da arquitetura. Em
uma primeira avaliação, o agente de monitoração foi capaz de detectar 1000 traços/segundo, sem que se notasse grande
impacto no desempenho do equipamento. Uma maior avaliação quanto a desempenho ainda precisa ser feita.
6. CONCLUSÕES
Este artigo apresentou a arquitetura Trace e procurou demonstrar como ela pode ser utilizada para fins de
implementação de uma ferramenta para detecção de intrusão baseada em rede. Alguns cenários de ataques foram
descritos e pôde-se verificar a facilidade com que se modela traços representativos de ataques através da especificação
dos mesmos em PTSL. A linguagem PTSL mostra-se bastante adequada para a especificação de cenários de ataques,
seja pela sua simplicidade quanto pela facilidade e rapidez em descrever um traço. Como deficiência da linguagem, fica
a impossibilidade de se recompor fluxos de dados. Em uma sessão de telnet, por exemplo, a monitoração de senhas
fracas não seria possível, devido à impossibilidade de agregar todos os dados encapsulados no protocolo TCP para fazer
esta análise.
Uma maior validação do agente de monitoração ainda precisa ser feita e pretende-se integrá-lo aos demais componentes
da arquitetura. Como trabalhos futuros está o estudo da utilização do mecanismo de filtragem da biblioteca libpcap
como forma de melhorar o desempenho, além do próprio estudo de algoritmos mais eficazes para tratamento dos pacotes
capturados da rede.
8
REFERÊNCIAS
[1] GASPARY, L. P.; BALBINOT, L. F.; STORCH, R.; WENDT, F.; TAROUCO, L. R. Uma Arquitetura para
Gerenciamento Distribuído e Flexível de Protocolos de Alto Nível e Serviços de Rede. Anais do XIX Simpósio
Brasileiro de Redes de Computadores, Florianópolis, Maio de 2001.
[2] GASPARY, L. P.; BALBINOT, L. F.; STORCH, R.; WENDT, F.; TAROUCO, L. R. Towards a Programmable
Agent-based Architecture for Enterprise Application and Service Management. Proc. First IEEE/IEC Enterprise
Networking Applications and Services Conference, Atlanta, June 2001.
[3] GASPARY, L. P.; BALBINOT, L. F.; STORCH, R.; WENDT, F.; TAROUCO, L. R. Distributed Management of
High-layer Protocols and Network Services Through a Programmable Agent-based Architecture. Proc. IEEE
International Conference on Networking, Colmar, France, July 2001.
[4] NAVAL Surface Warfare Center, Dalgren. SHADOW Indications Technical Analysis--Coordinated Attacks and
Probes. 1998. Disponível em http://www.nswc.navy.mil/ISSEC/CID/co-ordinated_analysis.txt.
[5] ROESCH, M. Snort - Lightweight Intrusion Detection for Networks, Proc. LISA’99, 1999.
[6] Network Flight Recorder, Inc., Network Flight Recorder, Disponível em http://www.nfr.com.
[7] BELLOVIN, STEVEN M. Security Problems in the TCP/IP Protocol Suite, Computer Communications Review,
Vol. 19, No. 2, pp. 32-48, April 1989.
[8] FYODOR, "The Art and Detection of Port Scanning," Sys Admin. Mag., Nov. issue, 1998.
[9] NORTHCUTT, S; Novak, J; McLachlan, D. Segurança e Prevenção em Redes. São Paulo, Brasil: Editora Berkeley,
2001.
[10] OTEL, Florian-Daniel. Survey of existing TCP/IP attacks. Disponível em http://www.ce.chalmers.se/~otel/papersmine/lecture-on-tcpip-attacks-25012000/slides.ps.
[11] YANG,
GUANG.
Introduction
to
TCP/IP
Network
Attacks.
Disponível
em
http://seclab.cs.sunysb.edu/sekar/papers/netattacks.pdf.
[12] IRWIN, Vicki; Northcutt, Stephen; & Ralph, Bill. (Naval Surface Warfare Center). Building a Network Monitoring
and Analysis Capability--Step by Step. 1998. Disponível em http://www.nswc.navy.mil/ISSEC/CID/step.htm.
[13] LEVI, D.; SCHÖNWÄLDER, J. Definitions of Managed Objects for the Delegation of Management Scripts.
Internet Draft, Nortel Networks, TU Braunschweig, July 2000.
[14] WALDBUSSER, S. Remote Network Monitoring Management Information Base Version 2 using SMIv2. Request
for Comments 2021, January 1997.
[15] WALDBUSSER, S. Application Performance Measurement MIB. Internet Draft, May 2000.
[16] FLOYD, Sally, et al. Lawrence Berkeley National Laboratory - LBNL's Network Research Group. 1998. Disponível
em http://ftp.ee.lbl.gov/.
[17]
9

Documentos relacionados