NewsGeneration: um serviço oferecido pela RNP desde 1997


ISSN 1518-5974
Boletim bimestral sobre tecnologia de redes
produzido e publicado pela  RNP – Rede Nacional de Ensino e Pesquisa
19 de maio de 1999 | volume 3, número 3

volta à página inicial de NewsGeneration

Nesta edição:

NewsGeneration:



Os Logs como Ferramenta de Detecção de Intrusão

Liliana Esther Velásquez Alegre Solha <>

Rede Nacional de Ensino e Pesquisa (RNP)

Introdução
Arquivos de logs básicos sistemas de sistema Unix
Syslog: o sistema de logs Unix
Arquivos de logs gerados por alguns serviços de rede
O que é relevante?
Loghost
Algumas ferramentas úteis
Recomendações gerais
Considerações finais
Referências
Sites relacionados
Agradecimentos

O presente artigo apresenta algumas técnicas e procedimentos dos quais os administradores de redes podem se valer para detectar e diagnosticar uma intrusão, usando uma das ferramentas mais poderosas e, ao mesmo tempo, muito simples: os logs!

^

Introdução

Imagine que você chegue em sua casa e perceba que ela foi aparentemente violada. O que você faz? Procura por pistas como: vidros quebrados, marcas na maçaneta, trincos forçados, portas arrombadas, objetos desaparecidos, em resumo, sinais que caracterizem e permitam estabelecer a magnitude da violação.

Analogamente, nos sistemas computacionais, intrusos deixam pistas, porém, diferente do "mundo real", as pistas estão nos registros de atividades do sistema, o qual denominamos de logs. Melhor ainda, os logs podem desempenhar um papel preventivo, na medida em que podem registrar as eventuais tentativas de ataque.

Este artigo visa familiarizar o administrador (em particular, de um sistema UNIX) com o processo de detecção, procurando pelas "pegadas" deixadas por métodos de intrusão conhecidos. Em sistemas configurados de forma correta, tais "pegadas" poderão indicar como um atacante invadiu (ou tentou invadir) seu sistema e, eventualmente, lhe dará uma idéia de sua identidade.

^

Arquivos de logs básicos sistemas de sistema Unix

Os diretórios comumente usados pelo UNIX para armazenar logs são: /usr/adm, /var/adm, /var/log, /etc e /etc/security. A localização exata depende do tipo e da versão do sistema operacional utilizado.

A seguir, serão apresentados alguns dos arquivos de logs encontrados em tais diretórios. É dado ênfase aqueles considerados mais importantes no processo de detecção de intrusão.

ARQUIVO lastlog

Arquivo binário que registra o horário da última vez que o usuário tentou acessar o sistema seja com ou sem sucesso. O seu conteúdo muda a cada login e é reportado toda vez que o usuário entrar no sistema ou o comando finger for executado. No Linux, estes registros devem ser explicitamente habilitados configurando a variável LASTLOG_ENAB do arquivo /etc/login.defs.

Recomenda-se configurar as permissões deste arquivo para 644, tendo como dono o usuário root.

A seguir, mostra-se um exemplo da saída gerada durante um processo de login na máquina maq2.


Connected to maq2.dominio.rnp.br.
Escape character is '^]'.


UNIX(r) System V Release 4.0 (maq2)

login: nina
Password:

Last login: Mon Feb 12 18:55:09 from maq5.dominio.rnp.br
Sun Microsystems Inc. SunOS 5.5 Generic November 1995
You have new mail.
maq2:nina[6]>

ARQUIVO utmp/utmpx

Estes arquivos registram informações relacionadas a usuários locais que encontram-se conectados ao sistema nesse momento. Os dados contidos nestes arquivos são armazenados em formato binário. Portanto, deverão ser lidos usando comandos específicos, tais como: who, whodo, write, finger e ps, os quais reportam as informações contidas neste arquivo.

Recomenda-se configurar como dono o usuário root e as permissões de acesso para 644.

Abaixo, é mostrado um exemplo de execução do comando who:


maq0:nina[5]> who
nina console Feb 10 15:23
raul pts/1 Feb 10 18:46 (maqA.rnp.br)
marcio pts/2 Feb 11 07:42 (maqB.rnp.br)
nina pts/3 Feb 11 11:29 (maq1.dominio.rnp.br)
nina pts/4 Feb 11 16:04 (maq2.dominio.rnp.br)

ARQUIVO wtmp/wtmpx

Registram dados detalhados sobre uma determinada sessão de usuário. Da mesma forma que os arquivos descritos anteriormente, os dados contidos nestes arquivos são armazenados em formato binário e legíveis unicamente através de comandos do tipo: last, acctcom, etc.

Recomenda-se configurar as permissões destes arquivos para 644, tendo como dono o usuário root.

Parte da saída da execução do comando last é mostrada a seguir:


ftp ftp 200.252.2.100 Mon Feb 12 19:49 - 19:55 (00:06)
nina pts/0 maq3.dominio.rnp. Mon Feb 12 18:05 - still logged in
reboot system boot Mon Feb 12 18:03
usuario1 pts/3 maq3.dominio.rnp. Mon Feb 12 17:36 - 18:02 (00:25)
ftp ftp site1.qqdominio.d Mon Feb 12 15:57 - 16:04 (00:07)

Vale a pena ressaltar que, em plataformas Solaris, este arquivo trunca os nomes das máquinas. Assim, quando executado o comando last, ele lista tais máquinas de maneira incompleta.

ARQUIVO sulog

Registra tentativas de execução do comando su, tenham sido estas bem ou mal sucedidas. Estes registros são habilitados através dos arquivos: /etc/default/su, no Solaris (variável SULOG) e /etc/login.defs, no Linux (variável SULOG_FILE).

Recomenda-se que este arquivo tenha como dono o usuário root e suas permissões de acesso configuradas para 600.

As seguintes linhas contidas em um arquivo sulog de um sistema Linux, mostram, respectivamente, a execução mal (-) e bem (+) sucedida do comando su. O usuário admin1 tornou-se root após uma tentativa falha e o usuário usuario1 tornou-se o usuario2.


SU 02/11 12:24 - ttyp3 admin1-root
SU 02/11 12:25 + ttyp3 admin1-root
SU 02/11 12:30 + ttyp4 usuario1-usuario2

ARQUIVO messages

Arquivo que registra qualquer mensagem enviada ao console, tendo sido ela gerada pelo kernel do sistema ou por algum mecanismo de logging tal como o syslog, o qual será abordado posteriormente.

Recomenda-se que este arquivo tenha como dono o usuário root e suas permissões de acesso configuradas para 400.

A seguir, mostra-se parte de um arquivo messages:


Aug 26 11:27:47 maq5 lpd[102]: restarted
Aug 26 11:27:48 maq5 /kernel: ed1: device timeout
Aug 26 11:28:03 maq5 last message repeated 2 times
Aug 27 02:04:44 maq5 inetd[835]: login_getclass: unknown class 'root'
Aug 27 15:54:35 maq5 login: login_getclass: unknown class 'root'
Aug 27 15:54:37 maq5 login: ROOT LOGIN (root) ON ttyv0

ARQUIVO loginlog

Registra tentativas falhas de acesso a um sistema. No Solaris, para habilitar os logs neste arquivo, bastará criá-lo, pois, na configuração original, ele não existe. No Linux, é preciso configurar a variável FAILED_LOG do arquivo /etc/login.defs.

Para gerar logs de entrada neste arquivo, é preciso indicar o número mínimo de tentativas consecutivas sem sucesso. "Por default," no Solaris e no Linux este número é de cinco, mas ele pode ser alterado. No Linux isto é feito através do arquivo /etc/login.defs (variável LOGIN RETRIES).

Recomenda-se configurar as permissões deste arquivo como 600, tendo como dono o usuário root.

A seguir, é mostrado parte do conteúdo de um arquivo loginlog, onde foi configurado como sendo três o número mínimo de tentativas sem sucesso.


usuario1:/dev/pts/9:Wed Dec 2 16:06:12 1998
usuario1:/dev/pts/9:Wed Dec 2 16:06:19 1998
usuario1:/dev/pts/9:Wed Dec 2 16:06:26 1998
usuario5:/dev/pts/9:Wed Apr 01 09:06:33 1999
usuario5:/dev/pts/9:Wed Apr 01 09:06:39 1999
usuario5:/dev/pts/9:Wed Apr 01 09:06:39 1999

ARQUIVOS pacct/acct

Estes arquivos registram comandos executados individualmente pelo usuário. O mecanismo de logging que utiliza arquivos deste tipo é conhecido como process accounting (processo de contabilidade) e deverá ser inicializado pelo usuário root.

No Solaris, isto é feito através do comando:

# /usr/lib/acct/accton /var/adm/pacct

Para finalizá-lo, bastará executar o mesmo comando sem argumentos. Vale a pena salientar que, usado em conjunto com o arquivo wtmp é possível fazer um rastreamento dos horários em que tais comandos foram executados. O script /usr/lib/acct/startup executa esta função.

No Freebsd, o processo de contabilidade é inicializado mediante o comando accton, tendo como argumento o arquivo de contabilidade default, que é o /var/account/acct. A princípio, este arquivo não existe e, portanto, deverá ser criado. Para finalizar este processo basta executar o mesmo comando sem argumentos.

No Linux, o processo de contabilidade poderá ser ativado conforme descrito no documento: Process-Accounting (mini-HOWTO)

Recomenda-se que estes arquivos tenham como dono o usuário root e suas permissões de acesso configuradas para 600.

No AIX, o arquivo de contabilidade padrão é o /var/adm/pacct. Ele deverá ser expressamente criado com permissões 600 e ter como dono o usuário adm e grupo adm. O comando turnacct permite inicializar e finalizar o processo de contabilidade. Para maiores detalhes de como configurar seu sistema, por favor remeta-se aos manuais do AIX.

Os arquivos de contabilidade (pacct/acct) são lidos através do comando lastcomm. A título de exemplo, é apresentada a saída da execução deste comando em um ambiente Freebsd.


$ lastcomm nina

lastcomm nina
more - nina ttyp1 0.17 us Mon Feb 15 15:03
ls - nina ttyp1 0.00 us Mon Feb 15 15:03
uname - nina ttyp1 0.00 us Mon Feb 15 15:03
grep - nina ttyp1 0.03 us Mon Feb 15 15:00
ps - nina ttyp1 0.02 us Mon Feb 15 15:02
pwd - nina ttyp1 0.00 us Mon Feb 15 15:02

Cabe ressaltar que alguns dos arquivos de logs mencionados (tais como o wtmp/wtmpx, messages, etc) tendem a crescer muito rapidamente, fazendo imperativo o uso de algum mecanismo de circulação de logs.

^

Syslog: o sistema de logs Unix

Sistema de registro de mensagens de logs incorporado em todas as versões modernas de UNIX.

O syslog implementa um mecanismo onde cada mensagem de log está associada a uma facilidade e a uma prioridade. A primeira especifica o programa ou aplicação que gera tal mensagem, enquanto que a segunda indica a prioridade com a qual a mesma deve ser atendida.

Ao ser inicializado o daemon syslogd, ele lê seu arquivo de configuração (geralmente, o /etc/syslog.conf), a fim de determinar o tipo de eventos que o syslog deverá registrar e o lugar onde estes eventos deverão ser registrados.

O arquivo syslog.conf é composto por entradas que seguem o formato abaixo (vale lembrar que os campos devem, necessariamente, estar separados por caracteres de tabulação - TABs):


facilidade.prioridade destino

De acordo com o tipo e a prioridade da mensagem recebida, o daemon syslogd executará a ação indicada no campo destino: armazenando tal mensagem em um arquivo específico, enviando alertas a um determinado usuário (ou ao console), ou, ainda, enviando a mensagem a um outro servidor de logs remoto (conhecido como loghost ).

Não é intenção deste artigo aprofundar-se na variedade de "prioridades" e "facilidades" suportadas pelo syslog e, de modo geral, na configuração do arquivo syslog.conf, mesmo porque existem nuances entre as diversas implementações UNIX. Cabe ao leitor consultar as páginas do manual que tratam deste arquivo para obter maiores detalhes.

Para fins de ilustração, é apresentado o conteúdo de um arquivo de configuração típico:


# Exemplo de um arquivo de configuração do syslog
# em uma máquina com Solaris.
#
# /etc/syslog.conf
#
*.err;kern.notice;auth.notice /dev/console
*.alert; user.none root
*.emerg; user.none *
*.debug @loghost

A primeira linha indica que todas as mensagens de erros [prioridade err] (ou de prioridade maior) serão enviadas ao console do sistema, junto com as mensagens geradas pelo kernel [kern] e pelo processo de autorização/segurança [auth] que tenham prioridade notice [notice] (ou de prioridade maior).

A segunda entrada do arquivo indica que todas as mensagens de alerta [alert] (ou de prioridade maior), exceto as geradas pelo usuário [user], serão enviadas ao terminal do usuário root.

Adicionalmente, qualquer mensagem de emergência [emerg] será difundida a todos os usuários que estiverem conectados nesse momento.

Por último, qualquer outra mensagem será enviada ao loghost (máquina que centraliza os logs).

^

Arquivos de logs gerados por alguns serviços de rede

Nesta seção, pretende-se apresentar alguns dos arquivos de logs específicos que são utilizados por serviços de rede, atendo-se em explicar brevemente como habilitar os logs nestes serviços. A título de ilustração, serão considerados apenas os serviços mais "expostos" (e portanto, mais vulneráveis) na Internet. Em particular, para este artigo, se trabalhará com os seguintes servidores: Apache (HTTP), Sendmail (MAIL), Bind8 (DNS) e WU-FTP (FTP).

SERVIÇO DE TRANSFER^ENCIA DE ARQUIVOS (FTP) (20/21)

Em particular, o servidor WU-FTP permite registrar informações bastante úteis. Dentre elas, destacam-se por auxiliar na tarefa de detecção de intrusão, os seguintes tipos de logs:

O artigo "Configurando seu Servidor FTP de Maneira Segura" descreve detalhadamente como configurar o servidor WU-FTP para obter estes arquivos de logs. A sua leitura é altamente recomendada.

O exemplo a seguir é representa uma entrada registrada no arquivo xferlog após a transferência de um arquivo. Nela um usuário anônimo, a partir da máquina maq.dominio.com.br, faz o download do arquivo security_tools, disponibilizado no servidor FTP público.


Fri May 8 21:45:30 1998 1 maq.dominio.com.br 12422
/pub/info/papers/cert/security_tools b _ o a mozilla@ ftp 0 *

Se as mensagens de logs, geradas via syslog, são enviadas a um arquivo específico, tal como o ftplog, recomenda-se que este tenha como dono o usuário root e as suas permissões de acesso configuradas para 600. O mesmo vale para o arquivo xferlog.

SERVIÇO DE CORREIO ELETRÔNICO (MAIL)

O mecanismo utilizado pelo Sendmail para gerar as suas mensagens de logs é o syslog , descrito anteriormente. A facilidade padrão destas mensagens é mail (variável LOG_MAIL). A prioridade é definida pela opção LogLevel, a qual, a partir das versões 8.9.X, vem configurada para 9, o que equivale à prioridade info. Considera-se esta configuração default, no mínimo, adequada.

A seguir, são mostradas as duas entradas de logs geradas pelo Sendmail ao ser enviada uma mensagem electrônica pelo usuário nina@cais.rnp.br para o usuário billgates@microsoft.com. Estes logs foram registrados no maillog, arquivo geralmente usado pelo syslog para armazenar mensagens geradas pelo Sendmail.


Apr 18 15:50:14 mx-cais sendmail[25838]: PAA25838: from=< nina@cais.rnp.br >,
size=1127, class=0, pri=61127, nrcpts=2, msgid=
< Pine.SOL.3.96.990518154928.25280D-100000@cais1 >, proto=SMTP,
relay=nina@mx.cais.rnp.br [200.144.121.33]

Apr 18 15:50:59 mx-cais sendmail[25840]: PAA25838: to=< billgates@microsoft.com >,
ctladdr=< nina@cais.rnp.br > (101/100), delay=00:00:45, xdelay=00:00:44,
mailer=esmtp, relay=mx.microsoft.com. [131.107.3.125], stat=Sent (PAA18294
Message accepted for delivery)

Se as mensagens de logs forem enviadas para um arquivo específico, tal como o maillog, recomenda-se que este arquivo tenha como dono o usuário root e as suas permissões de acesso configuradas para 600.

SERVIÇO DE RESOLUÇÃO DE NOMES (DNS) (53)

Um dos aspectos que recebeu mais atenção na versão Bind8 foi, justamente, o relacionado ao mecanismo de logging. Esta versão implementa um sistema totalmente categorizado.

Através da diretiva logging é possível configurar uma série de opções no servidor de nomes. É ela que especifica o que o servidor DNS deverá registrar e onde tais mensagens de logs deverão ser enviadas.

Não pretende-se entrar em detalhes de como configurar esta diretiva, cabe ao leitor consultar a documentação que acompanha a distribuição do pacote Bind8, ou a documentação on line na seguinte URL: http://www.isc.org/bind8.2/logging.html.

No entanto, para fins de ilustração, é apresentado a seguir um exemplo de configuração desta diretiva:


//
// Arquivo /etc/named.conf
//
// ...
//
// [início do trecho]
//
logging {
channel default_log {
file "/var/log/bindlog" size 5M versions 4;
severity info;
print-time yes;
print-category yes;
print-severity yes;
};
category lame-servers { null; };
category cname { null; };
category default { default_log; };
};
// [fim do trecho]

As linhas acima especificam que, exceto as mensagens da categoria "lame-servers" e "cname" que serão descartadas, todas as outras mensagens serão enviadas ao arquivo /var/log/bindlog. As mensagens de logs deverão incluir o horário, categoria e severidade respectivos. A seguir, é apresentado um exemplo dos logs gerados pela configuração acima:


16-Apr-1999 07:13:57.425 response-checks: info: bad referral (arpa !<<br/> 52.136.200.in-addr.arpa)
16-Apr-1999 08:03:48.463 maintenance: info: Cleaned cache of 5 RRs
16-Apr-1999 08:03:48.468 statistics: info: USAGE 924260628 923951026
CPU=6.35801u/2.85031s

Se as mensagens de logs geradas via syslog forem enviadas para um arquivo específico, tal como o bindlog, recomenda-se que este arquivo tenha como dono o usuário root e as suas permissões de acesso configuradas para 600.

SERVIÇO DE WEB (HTTP) (80)

O servidor Apache provê dois arquivos de logs: access_log e error_log.

Através do arquivo access_log, é possível determinar os hosts e usuários que acessaram o servidor Web, os arquivos requisitados, os horários em que tais requisições foram feitas e, ainda, o estado de tais requisições.

O arquivo error_log contém informação respeito dos erros encontrados e o estado do servidor Web (inicialização e finalização).

Ambos podem ser habilitados e desabilitados a partir de diretivas específicas no arquivo de configuração httpd.conf.

O servidor httpd permite definir onde serão armazenados estes arquivos. Geralmente, eles ficam no diretório logs. Recomenda-se, por um lado, que este diretório tenha como dono e grupo o root, e suas permissões de acesso configuradas para 755; por outro lado, que os arquivos contidos nele tenham igualmente o usuário root como dono e as suas permissões de acesso configuradas para 600.

A seguir, um exemplo de uma entrada no arquivo de logs (access_log) do servidor www.cais.rnp.br, onde o documento index.html foi acessado com sucesso a partir da máquina cache.dominio.rnp.br.


cache.dominio.rnp.br - - [02/Dec/1998:16:37:24 -0200] "GET /index.html
HTTP/1.0" 200 4169

Por outro lado, num acesso mal sucedido a um outro documento (index2.html), o arquivo error_log registrou a seguinte entrada:


[Wed Dec 02 16:37:25 1998] access to /dir_raiz_doc/index2.html failed
for cache.dominio.rnp.br, reason: File does not exist

De modo geral, qualquer serviço de rede inicializado pelo super daemon inetd (tais como: popd, imapd, ftpd, telnetd, sshd, etc) podem gerar suas mensagens de logs através da conhecida ferramenta TCP Wrappers, via syslog .

Complementando as seções anteriores, é importante mencionar que existem diversos tipos de logs que auxiliam na tarefa de detecção de intrusão, tais como:

Considera-se a abordagem destes tipos de logs o suficientemente extensa para justificar a sua não inclusão no presente artigo. No entanto, na seção seguinte, serão mostrados alguns desses logs, a fim de familiarizar o administrador com seu respectivo formato.

^

O que é relevante?

A maior dificuldade em um processo de detecção de intrusão decorre da imensa quantidade de informação gerada pelos eventos diários de um sistema. Separar os dados relevantes dos comuns é algo que requer tempo, atenção e, até mesmo, experiência.

Portanto, através de diversos exemplos, esta seção visa familiarizar o administrador com padrões de ocorrências nos logs que denotem algum tipo de atividade suspeita. Para tal, foram considerados os arquivos de logs básicos e os arquivos de logs gerados por alguns dos serviços de rede, principalmente aqueles com reconhecidas vulnerabilidades associadas.

ARQUIVOS DE LOGS BÁSICOS DE SISTEMAS UNIX

Arquivo utmp/utmpx

Execute o comando who regularmente e fique atento a eventuais acessos de usuários cuja presença não seja esperada (por exemplo, usuários que supostamente deveriam estar tomando sol em uma praia isolada, sem Internet :-)), acessos que ocorram em horários inesperados ou que se originem de lugares suspeitos.

Arquivo wtmp/wtmpx

Usando o comando last verifique o seguinte:

Arquivo sulog

Procure por entradas que indiquem uso inapropriado do comando su, tais como:

Arquivo messages

Repare em entradas que indiquem:

Arquivo pacct/acct

Deve-se atentar também para:

ARQUIVOS DE LOGS GERADOS POR SERVIÇOS DE REDE

Ataques ao Serviço FTP (portas 20/21)

O seguinte log, registrado pelo arquivo xferlog, mostra que foi feito o download (indicado pela opção "O" de outgoing) do arquivo /etc/passwd a partir da máquina 200.136.100.253. Note que esse arquivo é o arquivo /etc/passwd que se encontra no diretório home do usuário ftp (anônimo), não na raíz do sistema.


Mon Dec 22 11:00:13 1997 1 200.136.100.253 526 /etc/passwd b _ o a
IE40user@ ftp 0 *

As seguintes linhas mostram um hacker "municiando-se" para iniciar (ou completar) mais um ataque. A vítima aparente é a máquina local, a princípio. Repare que no último log, a opção "O" de outgoing (saindo do servidor) denota a inteção do hacker de provavelmente atacar outros sistemas (no caso, a próxima vítima parece ser a máquina 200.144.121.253) a partir do host comprometido.


Sat Jun 6 07:16:06 1998 1 200.136.100.254 2628 /tmp/trojano.c b _ i r
suspeito ftp 0 *
Sat Jun 6 22:34:17 1998 4 200.136.100.254 14433 /tmp/sniffer a _ i r
suspeito ftp 0 *
Sat Jun 6 22:37:13 1998 3 200.144.121.253 5188 /tmp/sniffer.c a _ o r
suspeito ftp 0 *

Parte de uma sessão FTP é é mostrada a seguir. Nela, observa-se que um usuário da máquina maq-suspeito.hacker.org.br tentou executar comandos não autorizados.


Apr 17 10:07:56 maq2 ftpd[11075]: connection from maq-suspeito.hacker.org.br
(200.236.100.254)
Apr 17 10:07:56 maq2 ftpd[11075]: <--- 220
Apr 17 10:07:56 maq2 ftpd[11075]: maq2.cais.rnp.br FTP server (Version 6.00)
ready.
Apr 17 10:07:56 maq2 ftpd[11075]: command: USER anonymous
Apr 17 10:07:56 maq2 ftpd[11075]: <--- 331
Apr 17 10:07:56 maq2 ftpd[11075]: Guest login ok, send your email address as
password.
Apr 17 10:07:56 maq2 ftpd[11075]: command: PASS ddd@
Apr 17 10:07:57 maq2 ftpd[11075]: <--- 230
Apr 17 10:07:57 maq2 ftpd[11075]: Guest login ok, access restrictions apply.
Apr 17 10:07:57 maq2 ftpd[11075]: ANONYMOUS FTP LOGIN FROM
suspeito.hacker.org.br, ddd@
Apr 17 10:07:57 maq2 ftpd[11075]: command: MKD .a
Apr 17 10:07:57 maq2 ftpd[11075]: mkdir .a
Apr 17 10:07:57 maq2 ftpd[11075]: <--- 550
Apr 17 10:07:57 maq2 ftpd[11075]: .a: Permission denied.
Apr 17 10:07:57 maq2 ftpd[11075]: command: SITE exec /bin/sh -c /bin/id
Apr 17 10:07:57 maq2 ftpd[11075]: <--- 500
Apr 17 10:07:57 maq2 ftpd[11075]: 'SITE EXEC /bin/sh -c /bin/id': command not
understood.
[...]

O seguinte cenário indica uma tentativa de denial-of-service em um servidor FTP:


Jan 17 03:00:57 maq-vitima ftpd[15453]: connect from
ppp144.hacker.org.br
Jan 17 03:00:57 maq-vitima ftpd[1636]: connect from ppp144.hacker.org.br
Jan 17 03:00:58 maq-vitima ftpd[26403]: connect from ppp144.hacker.org.br
Jan 17 03:00:58 maq-vitima ftpd[29453]: connect from ppp144.hacker.org.br
Jan 17 03:00:58 maq-vitima ftpd[32230]: connect from ppp144.hacker.org.br
[...sequência de inúmeras tentativas de acesso...]

Ataques ao Serviço SSH (porta 22)

O seguinte log não caracteriza exatamente um ataque, mas uma tentativa de acesso (probe) do usuário root à máquina maq-vitima.coitado.br, a partir da máquina de IP 200.136.100.244:


Apr 30 18:34:46 maq-vitima.coitado.br sshd[1989]: refused connect
from root@200.136.100.244

Ataques ao Serviço TELNET (porta 23)

O log apresentado a seguir registrou uma conexão inesperada de uma máquina remota com sucesso. No exemplo, esta entrada se torna suspeita desde o momento que o IP corresponde a uma máquina localizada na Alemanha. Vale a pena conferir se é provável um acesso vindo de lá (um professor participando de um congreso, por exemplo).


Jan 10 21:06:20 maq-vitima telnetd[2495]: connect from 134.100.13.129

Por outro lado, este outro log denota uma tentativa de conexão sem sucesso.


Jul 28 12:36:01 maq-vitima in.telnetd[9878]: refused connect from
200.136.100.254.

Ataques ao Serviço SMTP (porta 25)

O seguinte log, gerado por um sistema Linux, denota que possivelmente a máquina; com IP 200.144.121.236 esteja sofrendo um ataque do tipo syn flood na porta 25, caracterizando uma tentativa de denial-of-service na máquina vítima


Sep 29 18:39:49 vitima kernel: Warning: possible SYN flood from
200.136.100.253 on 200.144.121.236:25. Sending cookies.

Não deve surprender que os nomes de usuários ainda sejam usados para ganhar acesso a um determinado sistema, isto pelo simples fato que, incrivelmente, muitos deles usam como senha seu próprio login. Pois bem, o comando vrfy fornece ao atacante um meio de descobrir tais nomes.


Jan 22 05:23:01 mx-cais sendmail[11128]: ppp44.abuser.com.br
[200.239.45.63]: vrfy felipe
Jan 22 05:23:03 mx-cais sendmail[11130]: ppp63.abuser.com.br
[200.239.45.63]: vrfy mocoto

O seguinte log mostra uma tentativa de relay (ato de retransmitir uma mensagem recebida de uma estação para outra). No caso, um usuário forjou uma mensagem fazendo-se passar por batman@yahoo.com, usando a máquina mx_relay.dominio.com.br para enviar tal mensagem.


Mar 10 21:21:34 maq_ataque sendmail[18509]: VAA18509:
from=batman@yahoo.com, size=20, class=0, pri=30020, nrcpts=1,
msgid=<199903110021.VAA18509@dominio.com.br>, proto=SMTP,
relay=mx_relay.dominio.com.br [200.144.121.71]

O log abaixo mostra uma tentativa de relay sem sucesso:


Mar 10 21:15:22 maq_ataque sendmail[14727]: VAA14727: ruleset=check_rcpt,
arg1=nina@cais.rnp.br, relay=user@mx-relay.dominio.org.br [200.144.121.171],
reject=550 user@mx-legitimo.com.br... Relaying denied

Ataques ao Serviço DNS (porta 53)

O primeiro dos logs apresentandos abaixo caracteriza uma tentativa de transferência de zona não autorizada do domínio .br, partindo da máquina cujo IP é 200.136.100.1; o segundo, por sua vez, aponta uma tentativa com sucesso.


Jul 6 05:45:37 ns_vitima named[361]: unapproved AXFR from
[200.136.100.1].11541 for "br" (acl)

May 21 14:08:40 ns_vitima named[3566]: approved AXFR from
[200.136.100.234].1105 for "com.br"

Vale a pena lembrar que, geralmente, tentativas de transferência de zona antecedem as invasões. Pretende-se com isto recolher informações sobre as máquinas pertencentes a um determinado domínio.

Uma tentativa de atualização de zona é mostrada no seguinte log:


29-Dec-1998 22:43:03.860 unapproved update from [200.136.100.244].2946
for com.br

Os logs registrados por uma aplicação comercial indicam uma provável tentativa de ataque ao servidor DNS usando o mecanismo de buffer overflow.


[High] Thu Oct 01 08:17:49 1998: DNS Length Overflow Exploit - from
200.136.100.234
(200.136.100.234) to vitima.com.br (200.144.121.25)

Como os próprios logs indicam, há a possibilidade de um syn flood na porta 53.


Warning: possible SYN flood from 200.211.187.194 on 204.145.251.1:53.
Sending cookies.
validated probe(200.211.187.194:2801, 204.145.251.1:53, -117477482)
validated probe(200.211.187.194:2800, 204.145.251.1:53, -1011513209)
validated probe(200.211.187.194:2802, 204.145.251.1:53, 157911477)

Ataques ao Serviço FINGER (porta 79)

Como mostram os logs abaixo, foram realizadas inúmeras tentativas de acesso ao serviço finger em uma única máquina, isto pode caracterizar um ataque do tipo denial-of-service.


Apr 14 22:47:42 server in.fingerd[19147]: refused connect from 200.236.100.189
Apr 14 22:47:50 server in.fingerd[19155]: refused connect from 200.236.100.189
Apr 14 22:47:57 server in.fingerd[19163]: refused connect from 200.236.100.189
Apr 14 22:48:05 server in.fingerd[19171]: refused connect from 200.236.100.189
Apr 14 22:48:12 server in.fingerd[19179]: refused connect from 200.236.100.189
Apr 14 22:48:19 server in.fingerd[19188]: refused connect from 200.236.100.189
Apr 14 22:58:07 server in.fingerd[19268]: refused connect from 200.236.100.189
Apr 14 22:58:14 server in.fingerd[19277]: refused connect from 200.236.100.189
Apr 14 22:58:22 server in.fingerd[19287]: refused connect from 200.236.100.189

Ataques ao Serviço HTTP (porta 80)

A seguinte linha contida no arquivo access_log mostra alguém conectado à máquina maq.hacker.org.br tentando, sem sucesso, explorar um script CGI com conhecidas vulnerabilidades (no caso, o phf), com o objetivo de obter o arquivo de senhas.


maq.hacker.org.br - - [12/Jan/1998:22:41:50 -0200] "GET
/cgi-bin/phf?Qalias=x%0a/bin/cat%20/etc/passwd HTTP/1.0" 403 285

Deve-se examinar o arquivo error_log em busca de repetidas tentativas de acesso mal sucedidas, feitas por algum usuário. Algo do tipo:


[Wed Jan 13 16:15:21 1998] access to /dir_restrito failed for
maq_suspeito.org.br, reason: user guest: password mismatch
[Wed Jan 13 16:15:25 1998] access to /dir_restrito failed for
maq_suspeito.org.br, reason: user guest: password mismatch
[Wed Jan 13 16:15:30 1998] access to /dir_restrito failed for
maq_suspeito.org.br, reason: user guest: password mismatch

A mesma tentativa mostrada anteriormente é registrada por este arquivo através da seguinte entrada:


[Mon Jan 12 22:41:50 1998] access to /raiz_servidor_web/cgi-bin/phf
failed for maq.hacker.org.br, reason: Client denied by server
configuration

O arquivo error_log deve também ser "vasculhado" a procura de inesperadas reinicializações do sistema. Por exemplo, a seguinte entrada indica que o servidor Web foi paralizado, pelo horário em que este evento ocorreu, tal entrada se torna suspeita.


[Fri Dec 25 00:44:58 1998] httpd: caught SIGTERM, shutting down

Ataques ao Serviço POP (porta 110)

A seguir, é mostrada uma tentativa de acesso não autorizado partindo do domínio hacker.org.br. A mesma foi barrada pelo wrapper.


Aug 9 03:30:24 maq-vitima in.qpopper[11353]: refused connect
from abuser.hacker.org.br

As linhas abaixo mostram claramente uma tentativa de explorar uma conhecida vulnerabilidade que afeta a determinadas versões do servidor PoP: buffer overflow.


May 13 18:39:17 maq-vitima qpop[5124]: connect from 200.136.100.162
May 13 18:39:17 maq-vitima qpop[5124]: @abuser.hacker.org.br: -ERR Unknown
command: "
^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P
^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P
^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P
^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P
^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P".

Ataques ao Serviço RPCBIND (porta 111) e NFS

Esta mensagem, contida no arquivo messages de uma máquina com Linux, alerta sobre um possível syn flood.


Sep 29 18:36:47 maq-vitima kernel: Warning: possible SYN flood from
200.136.100.253 on 200.14.121.249:111. Sending cookies.

Uma tentativa não autorizada de montar o sistema de arquivo /home é bloqueada pelo sistema:


May 12 20:33:34 maq-vitima mountd[263]: Unauthorized access by NFS client
200.136.100.75.
May 12 20:33:34 maq-vitima mountd[263]: Blocked attempt of 200.136.100.75 to
mount /home

A seguir, é mostrada mais uma tentativa de buffer overflow, usando desta vez o serviço NFS.


Apr 21 17:49:33 nfs-server mountd[5418]: [truncated] NFS mount of
^P^P^P^P^P^P^P^P^P^
P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^
P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^
P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^
P^P^P^P^P^P^P

Os logs registrados mostram claramente o uso de alguma ferramenta automática para realizar uma varredura em uma classe C inteira (200.144.25.0) a procura de vulnerabilidades no serviço RPC:


12:57:57 tcp src 200.136.100.234 dst 200.144.25.2 dst_port sunrpc s_port 2666
12:57:57 tcp src 200.136.100.234 dst 200.144.25.0 dst_port sunrpc s_port 2666
12:57:57 tcp src 200.136.100.234 dst 200.144.25.1 dst_port sunrpc s_port 2666
12:57:57 tcp src 200.136.100.234 dst 200.144.25.3 dst_port sunrpc s_port 2666
12:57:57 tcp src 200.136.100.234 dst 200.144.25.4 dst_port sunrpc s_port 2666
12:57:57 tcp src 200.136.100.234 dst 200.144.25.5 dst_port sunrpc s_port 2666

[... 256 conexões registradas...]

Ataques ao Serviço IMAP (porta 143)

As seguintes linhas, contidas em um arquivo messages, mostram uma tentativa de ataque na porta 143, usando o mecanismo de buffer overflow:


Jul 16 01:32:31 maq_vitima imapd[21308]: connect from 200.136.100.247
Jul 16 01:32:34 maq_vitima imapd[21308]: Login failure
user=^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P
^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P
^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P
^P^P host=maq-ppp.hacker.org.br
Jul 16 01:32:44 maq_vitima imapd[21308]: Connection broken while reading line
user=^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P
^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P
^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P

A seguir, são mostrados os logs do arquivo messages de uma máquina com Linux, após um intruso ter ganho acesso privilegiado usando o mecanismo de buffer overflow.


Jun 21 00:09:24 maq_vitima imapd[32477]: EOF, while reading line
user=^?^?^?^?^?^?^
?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?
^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?
^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?host=maq-intruso.hacker.org.br

Os logs mostrados a seguir, gerados pelo TCPdump, reportam uma varredura stealth nas portas 143 das máquinas do domínio coitado.com.br.


07:45:05.839587 200.136.100.1.31783 > maq-alvo.coitado.com.br.imap: S
1662422521:1662422521(0) win 512
07:45:08.939587 200.136.100.1.31783 > maq-alvo.coitado.com.br.imap: S
1662422521:1662422521(0) win 16060
07:45:14.979587 200.136.100.1.31783 > maq-alvo.coitado.com.br.imap: S
1662422521:1662422521(0) win 16060

Um outro probe de IMAP feito a partir da máquina com número IP 200.136.100.153 é registrado pelas regras do firewall IPFW:


Dec 15 18:04:44 maq_vitima kernel: IP fw-in deny eth0 TCP 200.144.121.233:0
200.136.100.153:143 L=40 S=0x00 I=48388 F=0x0000 T=233

Ataques aos Serviços rexec, rlogin, rshell (portas 512, 513 e 514)

Foram registrados probes a serviços que têm reconhecidas vulnerabilidades associadas.


Jan 17 02:58:02 maq-vitima rexecd[11743]: connect from zmalvado.hackers.org.br
Jan 17 02:58:02 maq-vitima rlogind[32018]: connect from zmalvado.hackers.org.br
Jan 17 02:58:02 maq-vitima rshd[19972]: connect from zmalvado.hackers.org.br

OUTROS TIPOS DE ATAQUE

Multiscan

Os seguintes logs, registrados por um roteador Cisco (com IP 200.144.121.77), mostram claramente uma varredura nas portas privilegiadas da máquina 200.144.121.244 com o intuito de levantar informações sobre possís brechas de acesso. O ataque partiu da máquina 200.136.100.253.


Mar 1 15:29:00 200.144.121.77 112369: 5w6d: %SEC-6-IPACCESSLOGP: list
101 denied tcp 200.136.100.253(1199) -> 200.144.121.244(2), 3 packets
Mar 1 15:30:10 200.144.121.77 112377: 5w6d: %SEC-6-IPACCESSLOGP: list
101 denied tcp 200.136.100.253(1201) -> 200.144.121.244(3), 3 packets
Mar 1 15:30:56 200.144.121.77 112382: 5w6d: %SEC-6-IPACCESSLOGP: list
101 denied tcp 200.136.100.253(1204) -> 200.144.121.244(4), 3 packets
Mar 1 15:30:07 200.144.121.77 112376: 5w6d: %SEC-6-IPACCESSLOGP: list
101 denied tcp 200.136.100.253(1205) -> 200.144.121.244(5), 1 packet
Mar 1 15:31:45 200.144.121.77 112386: 5w6d: %SEC-6-IPACCESSLOGP: list
101 denied tcp 200.136.100.253(1205) -> 200.144.121.244(5), 3 packets

[... 1024 tentativas registradas...]

TCP HalfScan

Um sistema de detecção de intrusão comercial alerta para um possível TCP HalfScan:


[High] Thu Sep 24 20:55:49 1998: TCP HalfScan - from 200.136.100.244
(200.136.100.244) to www.vitima.com.br (200.144.121.234)

Stealth Scan

Os logs registrados por uma aplicação comercial alertam a ocorrência de um probe na porta 143, tentando passar despercebido:


Mar 2 03:27:12 vitima abacus_sentry[297]: attackalert: FIN stealth scan
from host: maq.hacker.org.br/200.136.100.3 to TCP port: 143
Mar 2 03:27:12 vitima abacus_sentry[297]: attackalert: Host 200.136.100.3
has been blocked via wrappers.
Mar 2 03:27:12 vitima abacus_sentry[297]: attackalert: Host 200.136.100.3
has been blocked via dropped route.

^

Loghost

Os arquivos de logs têm uma vulnerabilidade evidente: pelo mesmo fato deles serem armazenados no próprio sistema, eles podem ser alterados ou até mesmo apagados. Aliás, esta costuma ser uma das primeiras ações realizadas pelos crackers na tentativa de cobrir seus rastros e esconder as suas atividades. Pior ainda, existem ferramentas que automatizam este processo.

Há, contudo, técnicas que tentam minimizar este problema, mas nenhuma delas o erradica definitivamente; a não ser que os logs sejam enviados a uma máquina considerada segura. É neste contexto que surge o conceito de loghost, um servidor de logs cuja função básica é a de centralizar as entradas de logs dos outros computadores na rede.

Visando garantir a integridade deste servidor, a máquina utilizada como tal deverá ser um sistema de computador que não ofereça serviço de rede (exceto o serviço syslog na porta 514/UDP para poder receber as mensagens) e que não possua contas de usuários.

Dentre as vantagens que oferece a implementação de um loghost, pode-se mencionar a facilidade do gerenciamento e monitoramento dos logs, uma vez que múltiplos arquivos provenientes de diversas máquinas estarão centralizadas em um único lugar. Por outro lado, nele podem ser instaladas ferramentas que auxiliem o administrador na árdua tarefa de manipulação e análise dos logs.

^

Algumas ferramentas úteis

A seguir, são listadas algumas ferramentas que visam auxiliar ao administrador na desgastante tarefa de coleta e análise de logs:

FERRAMENTAS QUE AUXILIAM NA COLETA DE LOGS

TCP Wrappers
Ferramenta que tem como função básica interceptar e filtrar pedidos de conexão aos serviços de rede inicializados pelo inetd, bem como aumentar o nível de detalhamento de logs para tais serviços. As informações registradas são enviadas ao syslogd, portanto a localização do arquivo de logs é determinada pela configuração do arquivo syslog.conf. A última versão desta ferramenta pode ser encontrada em:
ftp://ftp.porcupine.org/pub/security

portmap/rpcbind
Implementação do portmapper (conhecido por rpcbind, no caso específico de Solaris) que adiciona funcionalidades, tais como mecanismos de geração de logs e controle de acesso mais apurados. As últimas versões do portmap e do rpcbind podem ser encontradas em: ftp://ftp.porcupine.org/pub/security.

logdaemon
Implementações dos daemons rshd e rlogind que adicionam funcionalidades, tais como mecanismos de geração de logs e controle de acesso mais apurados. A última versão do logdaemon pode ser encontrada em: ftp://ftp.porcupine.org/pub/security

PingLogger
Ferramenta que registra pacotes ICMP. Permite determinar a ocorrência de um ataque ping flood. Pode ser encontrado em: http://ryanspc.com/tools/pinglogger.tar.gz

Smurflog
Programa que registra ataques smurf , incluindo os endereços de broadcasting utilizados. Pode ser encontrado em: http://www.sy.net/security/

FERRAMENTAS DE ANÁLISE ON-LINE

Tratam-se de ferramentas que monitoram, em tempo real, arquivos de log arbitrários (por exemplo, mensagens geradas pelo syslog) e permitem ao administrador realizar ações específicas em resposta a eventos ou padrões de eventos. Estas ações podem incluir: enviar um alerta via e-mail, enviar uma mensagem via pager, obter informações da máquina atacante devolvendo um finger, etc.

Duas das ferramentas mais conhecidas são: o Swatch (Simple WATCHdog) e o Logsurfer. O primeiro pode ser encontrado em: ftp://ftp.stanford.edu/general/security-tools/swatch e o segundo em: ftp://ftp.cert.dfn.de/pub/tools/audit/logsurfer

FERRAMENTAS DE VERIFICAÇÃO DE CONSISTÊNCIA DE LOGS

chklastlog
Verifica se alguma entrada do arquivo lastlog foi apagada. A última versão deste arquivo poderá ser encontrada em: ftp://ftp.cert.dfn.de/pub/tools/audit/chklastlog.

chkwtmp
Verifica se houve alguma alteração suspeita no arquivo wtmp. Sua última versão pode ser encontrada em: ftp://ftp.cert.dfn.de/pub/tools/audit/chkwtmp

FERRAMENTAS DE CIRCULAÇÃO DE LOGS

Um dos maiores problemas dos arquivos de logs é que eles tendem a crescer muito e, conseqüentemente, a consumir espaço em disco. Dependendo da política de logs adotada (por exemplo, registrar tudo!), este crescimento pode provocar a lotação do disco, gerando não somente um problema de administração de sistemas, como também de segurança, pois novos eventos deixarão de ser registrados.

As ferramentas listadas a seguir visam contornar este problema:

Rotate Logs

http://www.ginini.com.au/tools/rotatelogs

Newsyslog
Script bastante simples que auxilia na tarefa de rotação de logs.

OUTRAS VERSÕES DE SYSLOGD

New syslogd (nsyslogd)
Versão aprimorada do syslogd, desenvolvida por Darren Reed, também autor do IP-Filter. Dentre suas principais características, o nsyslogd implementa conexões TCP suportando SSL e arquivos de hash logs para integridade de dados. A última versão pode ser encontrada em: http://coombs.anu.edu.au/~avalon/nsyslog.html

Secure Syslog (ssyslogd)
Ferramenta de auditoria de logs, desenvolvida pela CORE-SDI com o objetivo de substituir o daemon syslog. O Secure Syslog implementa um protocolo de criptografia chamado PEO-1 que permite a auditoria remota de logs em um sistema. É possível realizar esta auditoria mesmo quando um intruso tenha conseguido privilégio de super usuário em um sistema, tendo em vista que o protocolo garante que os logs não são modificados antes nem durante a intrusão. A versão mais atualizada desta ferramenta pode ser encontrada em : http://www.core-sdi.com/Core-SDI/english/slogging/ssyslog.html

^

Recomendações gerais

^

Considerações finais

Com o crescente número de vulnerabilidades e formas de ataques descobertos, torna-se imperativo o uso de ferramentas para tentar "equilibrar a luta" entre administradores e usuários inescrupulosos.

Neste contexto, os logs, com certeza, desempenham um papel imprescindível no processo de detecção de intrusão. A auditoria e avaliação destes devem se tornar rotineiras e uma constante na vida dos administradores a fim de evitar surpresas desagradáveis.

Este artigo não intencionou esgotar as possibilidades do assunto, mas sim oferecer uma visão geral da sua relevância.

^

Referências

Practical UNIX & Internet Security
by Simson Garfinkel and Gene Spafford, 2nd Edition, 1996,O'Reilly & Associates, Inc.

Sendmail
by Bryan Costales and Eric Allman, 2nd Edition, 1997,O'Reilly & Associates, Inc.

Web Security & Commerce
by Simson Garfinkel and Gene Spafford, 1st Edition, 1997,O'Reilly & Associates, Inc.

Maximum Security
by Anonymous, 2nd Edition,1998, SAMS.

Centralized Logging with Syslog
by Joshua Weinberg
Sys Admin: The Journal for UNIX System Administrators, Vol. 7, No 10, 1998

Ferramentas de Segurança
por Carlos Augusto Campana Pinheiro
RNP-NewsGeneration, Vol. 1, No 6, 1997
http://www.rnp.br/newsgen/9711/seguranca.html

Configurando seu Servidor FTP de Maneira Segura
por Liliana Esther Velásquez Solha
RNP-NewsGeneration, Vol. 2, No. 5, 1998
http://www.rnp.br/newsgen/9805/serv-ftp.html

Logging in WU-FTPD
by Kent Landfield
http://www.landfield.com/wu-ftpd/logging.html

Bind Logging Statement
by Internet Software Consortium
http://www.isc.org/bind8.2/logging.html

Wietse's Tools and Papers
by Wietse Venema
ftp://ftp.porcupine.org/pub/security/index.html

^

Sites relacionados

CERT Coordinator Center

^

Agradecimentos

A autora agradece especialmente a Fábio Rogério Hideki Okamura, do Laboratório de Configurações e Testes da RNP (LCT) pela colaboração nas simulações e testes para geração de logs.

^

NewsGeneration, um serviço oferecido pela RNP – Rede Nacional de Ensino e Pesquisa
Copyright © RNP, 1997 – 2004