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
07 de novembro de 1997 | volume 1, número 6

volta à página inicial de NewsGeneration

Nesta edição:

NewsGeneration:



Ferramentas de Segurança

Carlos Augusto Campana Pinheiro <>

Rede Nacional de Ensino e Pesquisa (RNP)

Introdução
Simplifique
Tipos de Ferramentas
Tcp_wrapper
Crack
Tripwire
Tiger
Swatch
STROBE
ISS
Gabriel/Courtney
Conclusão
Referências Bibliográficas
Sites relacionados

Nos dias de hoje, os administradores de sistemas e de redes devem estar a par dos principais recursos disponíveis para buscar a implementação de um ambiente seguro, com algum grau de proteção contra os perigos mais comuns existentes em redes de computadores.

Este artigo apresenta uma série de ferramentas que auxiliam na manutenção da segurança de um sistema.

^

Introdução

Sniffers, crackers, spoofing, syn_flooder, dnskiller, ping o’death, winnuke... nomes assustadores que parecem ter saído de filmes como "Mad Max" ou "Robocop" na verdade são companheiros inseparáveis de um certo tipo indesejável de usuários de rede: os hackers (ou, segundo alguns preferem, crackers, ou ainda invasores).

Como obter um ambiente computacional confiável e seguro, diante de tais ameaças? Principalmente reconhecendo a importância de um bom trabalho de administração de sistemas e lançando mão do equivalente benigno de tais programas, as chamadas ferramentas de segurança.

A lista de programas e pacotes dessa área é extensa, certamente uma descrição detalhada de todas elas mereceria um livro, talvez com mais de um volume. Nesse pequeno artigo, tentarei apresentar as que considero mais úteis, dentro de um contexto de Internet, software de domínio público e sistema operacional UNIX, que, por razões históricas, é o sistema mais estudado neste aspecto.

^

Simplifique

Antes de começar a utilizar as ferramentas de segurança, é importante estabelecer alguns objetivos e definir algumas premissas.

A primeira meta é tentar simplificar o ambiente. Ofereça somente os serviços necessários. Retire tudo que não está sendo usado. Tente limitar o número de opções e facilidades disponíveis.

É um objetivo difícil de ser conquistado, mas vale a pena. Ter um sistema conhecido e controlado é mais da metade do caminho para se conseguir um ambiente seguro.

A principal premissa na utilização de ferramentas de segurança acaba decorrendo da meta anterior. Esse recurso deve ser empregado somente em sistemas não comprometidos. Instalar tais ferramentas em uma máquina que acabou de ser invadida, sem que se tenha uma idéia precisa do estado do sistema, pode atrapalhar muito mais que ajudar.

É importante também que os componentes do sistema estejam funcionando de forma razoavelmente correta, já que praticamente todas as ferramentas dependem dessa condição. Portanto, patches devem ter sido aplicados.

E nunca deve se perder de vista que a utilização dessas ferramentas deve ser somente uma parte de algo bem maior, que consiste de uma definição e adoção de uma política de segurança para a organização.

^

Tipos de Ferramentas

As ferramentas de segurança podem ser classificadas inicialmente quanto ao seu escopo:

São voltadas para análise, correção, implementação de novos controles em sistemas computacionais. Como exemplo temos ferramentas como o crack, para verificação de senhas.

Estão direcionadas para a verificação e implementação de controles sobre o tráfego de uma rede. O exemplo mais conhecido são os filtros de pacotes.

Outra categorização é referente à função:

Compreende programas que analisam ou controlam a situação de um ou mais sistemas, relacionando os serviços disponíveis, os erros de permissão em arquivos, mudanças em programas, acesso a serviços, etc.

Ferramentas relacionadas à identificação de usuários em um sistema (senhas de acesso).

Mais relacionadas com um ambiente de operação, restringindo os privilégios de usuários ao mínimo necessário para a execução das tarefas.

Bibliotecas com novas funções para a elaboração de programas "resistentes" às técnicas mais comuns para quebra de segurança.

^

Tcp_wrapper

Talvez a primeira ferramenta de segurança instalada pelos administradores de sistemas seja esta. O Tcp_wrapper, escrito por Wietse Venema, é um utilitário fácil de ser instalado e usado, com a função de interceptar, filtrar e aumentar o nível de detalhamento de logs para os serviços iniciados pelo inetd.

Esta ferramenta permite um grande controle das conexões TCP solicitadas a um sistema. A lógica de ativação é muito simples: ao receber uma solicitação de serviço, o super-daemon (ou inetd) executa um programa de controle (wrapper, ou tcpd), em vez do servidor original.

Esse programa de controle atua como um protetor, ou embrulho do programa original, verificando a origem da conexão, registrando o acesso e tomando ações pré-definidas.

Ao ser disparado, o wrapper toma uma ou mais ações, dentre as seguintes:

São muitas as possibilidades de controle do tcp_wrapper, definidas pelas listas de controle de acesso. A implementação é feita através do par serviço/host cliente nos arquivos:

/etc/hosts.allow (permite acesso controlado)

/etc/hosts.deny (não permite acesso)

Se o par serviço/host cliente não for encontrado nesses arquivos, o acesso será permitido. Cada linha obedece ao seguinte formato:

lista_de_serviços: lista_de_clientes : comando

Algumas cláusulas especiais dão grande flexibilidade na montagem das regras (ALL, LOCAL, UNKNOWN, EXCEPT, .subdomínio, parte do endereço, etc).

Um exemplo simples de controle pode ser a seguinte cláusula no arquivo /etc/hosts.deny:

in.telnetd : ALL EXCEPT LOCAL

Um programa para testar as regras, o tcpdmatch, acompanha o pacote.

^

Crack

Talvez a segunda ferramenta de segurança instalada na maioria dos sistemas. O objetivo do crack, escrito por Alec Muffet, é simples e direto: quebrar as senhas escolhidas pelos usuários.

A idéia básica é a da antecipação. Todo hacker possui um vasto arsenal de programas para quebrar senhas. Ao executar este procedimento antes, o administrador terá condições de solicitar (ou forçar) a mudança da senha, avaliar o estado de atenção de seus usuários para o problema e verificar a necessidade de utilização de alguma outra ferramenta para obrigar a utilização de senhas mais "difíceis".

A importância de aperfeiçoar os controles de acesso é enorme. Um grande número de invasões ocorre justamente pelo uso de senhas triviais. Uma vez instalado no sistema, o crack deve ser executado regulamente.

As maiores qualidades desse programa são a flexibilidade para estabelecimento de regras e uso de dicionários diversos, a rapidez no processamento, a possibilidade de distribuir o processamento para várias máquinas e o nível de automatização das tarefas.

Abaixo segue um exemplo real dos resultados da execução do programa:


% ./Reporter
---- passwords cracked
870730744:Guessed ******* [jcouto]
870753669:Guessed **** [malaria]
870785786:Guessed *** [Download]
871018275:Guessed *** [ruffo2]
871051805:Guessed ****** [metro9]
871304454:Guessed *** [kekakeka]

O crack pode ser encontrado em muitos sites na Internet. O site original é ftp://ftp.win.tue.nl/pub/security . Vários dicionários, ou listas de palavras, podem ser encontrados em ftp://ftp.ox.ac.uk/pub/wordlists .

^

Tripwire

Uma das situações mais complicadas durante invasões é saber com exatidão o que foi comprometido no sistema. Hoje em dia a substituição de programas do sistema por programas adulterados (trojans) é muito simples. Estão disponíveis na rede pacotes para a substituição dos principais binários de diversos sistemas operacionais. Esses pacotes são denominados rootkits.

Os principais objetivos dessas substituições são

Os alvos mais frequentes são:

ps, who, ls, netstat, diff, du, su, telnetd e ftpd.

Uma ferramenta que pode definir uma referência segura para comparação dos programas instalados no sistema é o tripwire.

Escrito por Gene Kim e Gene Spafford, o tripwire é uma ferramenta para verificação da integridade de arquivos, detectando mudanças não autorizadas ou não esperadas nos principais arquivos do sistema.

A execução do tripwire consiste basicamente de duas fases:

Os arquivos que comporão a base e a verificação periódica são definidos em um arquivo de configuração (tw.config). O tripwire traz exemplos para vários sistemas operacionais.

A base deve ficar armazenada em ambiente seguro, de preferência em meio protegido contra gravação, para não ser corrompida (existem ferramentas automáticas para esse tipo de ataque).

Como um exemplo de saída desse programa temos:


### Phase 1: Reading configuration file 
### Phase 2: Generating file list 
### Phase 3: Creating file information database 
### Phase 4: Searching for inconsistencies 
### 
### Total files scanned: 11279 
### Files added: 418 
### Files deleted: 281 
### Files changed: 10859 
### After applying rules: 
### Changes discarded: 11424 
### Changes remaining: 833 
added: -rw-r--r-- root 7738 Jul 31 13:28:30 1997 /opt/local/etc/apache 
_1.2.4/KEYS 
deleted: -rwxr-x--- root 9252 Jun 13 17:12:58 1997 /opt/local/etc/apache_1.2.0/support/htpasswd 
changed: -rwxr-xr-x root 1438512 Sep 21 15:56:33 1997 /usr/bin/nslookup 
### Phase 5: Generating observed/expected pairs for changed files 
### 
### Attr Observed (what it is) Expected (what it should be) 
### =========== ========================================================= 
/usr/bin/nslookup 
st_uid: 0 2  
st_gid: 10 2  
st_size: 1438512 101048  
st_mtime: Sun Sep 21 15:56:33 1997 Thu Jun 12 09:22:54 1997  
st_ctime: Sun Sep 21 15:56:33 1997 Thu Jun 12 09:22:54 1997  
md5 (sig1): 0wKt3KJjvEt11J9dHBLUgn 2727VzUorA87x6htoacQsh
snefru (sig2): 0cYQUaen7r.HGNzVJQZj9D 2vLLzrrv2W9cVgvE9I5rUw

Essa ferramenta pode ser encontrada em ftp://coast.cs.purdue.edu/pub/tools/unix/Tripwire

^

Tiger

Pacote desenvolvido para realizar auditoria em sistemas UNIX. Tentando localizar potenciais problemas na configuração do sistema, ele examina:

E vários outros pontos relativos à segurança.

O TIGER é equivalente a outro pacote muito conhecido, o COPS. Ambos tentam verificar detalhadamente sistemas UNIX, com abordagens um pouco diferentes em alguns pontos. Para os casos mais comuns, o TIGER oferece maior simplicidade de configuração e utilização.

O controle dos testes que serão executados é feito por meio de um arquivo de configuração (tigerrc). Alguns testes devem ser desativados em favor de ferramentas próprias, mais aperfeiçoadas para a função, como o tripwire.

Exemplo de execução:


08:28> Beginning security report for host 
08:28> Starting file systems scans in background... 
08:28> Checking password files... 
08:28> Checking group files... 
08:28> Checking user accounts... 
08:28> Checking .rhosts files... 
08:28> Checking .netrc files... 
08:28> Checking PATH settings... 
08:30> Checking anonymous ftp setup... 
08:30> Checking mail aliases... 
08:30> Checking cron entries... 
08:30> Checking 'inetd' configuration... 
08:31> Checking NFS export entries... 
08:31> Checking permissions and ownership of system files... 
08:31> Checking for indications of breakin... 
08:31> Performing system specific checks... 
08:31> Performing check of embedded pathnames... 
08:40> Waiting for filesystems scans to complete... 
08:40> Filesystems scans completed... 
08:40> Security report completed for host 
Security report is in `/usr/local/tiger/logs/security.report.971102-08:28'. 

Relatório de saída:


08:28> Beginning security report for host (SunOS 5.4).  
# Performing check of passwd files... 
--WARN-- [pass002w] UID 0 exists multiple times in /etc/passwd.  
# Performing check of group files... 
# Performing check of user accounts... 
# Checking accounts from /etc/passwd. 
--WARN-- [acc012w] Login ID smtp has uid == 0.  
--WARN-- [acc001w] Login ID adm is disabled, but still has a valid shell  
(/bin/sh).  
--WARN-- [acc005w] Login ID adm is disabled, but has a 'cron' file or cron  
entries. 

O Tiger pode ser encontrado em ftp://net.tamu.edu/pub/security/TAMU/tiger-2.2.3.tar.gz

^

Swatch

Administrar a segurança de um sistema é basicamente acompanhar todos os acontecimentos do dia a dia. Através deles é possível descobrir um ataque em andamento ou tentativas de invasão.

A maior dificuldade de realizar essa tarefa de maneira sistemática decorre da imensa quantidade de informação gerada pelos eventos diários de um sistema. Separar os dados relevantes dos comuns é algo que requer muito tempo e atenção.

Para tentar automatizar isso, temos o Swatch. Através de uma configuração muito flexível, essa ferramenta, que consiste de programas em linguagem perl, permite a procura de certas ocorrências, como tentativas de logins, e a tomada de ações, como envio de mails ou interrupção de algum serviço.

Essa procura de padrões é feita nos arquivos de log do sistema, simultaneamente ou após a coleta dos registros.

O Swatch está disponível em ftp://ftp.stanford.edu/general/security-tools/swatch

^

STROBE

O objetivo do STROBE (The Super Optimized TCP Port Surveyor), escrito por Julian Assange, é listar todos os serviços TCP disponíveis em um sistema. Ele pertence à categoria dos pacotes de port scanner.

A maior qualidade dessa ferramenta é a rapidez. Em poucos segundos, ele é capaz de identificar todas as portas abertas em um sistema. Essa informação pode ajudar o administrador a identificar que caminhos podem ser usados para um possível ataque.

Como exemplo da execução da ferramenta temos:


% strobe host
strobe 1.03 (c) 1995 Julian Assange (proff@suburbia.net). 
host echo 7/tcp Echo [95,JBP] 
host discard 9/tcp Discard [94,JBP] 
host daytime 13/tcp Daytime [93,JBP] 
host chargen 19/tcp ttytst source Character Generator 
host ftp 21/tcp File Transfer [Control] [96,JBP] 
host telnet 23/tcp Telnet [112,JBP] 
host smtp 25/tcp Simple Mail Transfer [102,JBP] 
host time 37/tcp Time [108,JBP] 
host domain 53/tcp Domain Name Server [81,95,PM1] 
host finger 79/tcp Finger [52,KLH]
host http 80/tcp www www-http World Wide Web HTTP 
host pop3 110/tcp Post Office Protocol – Version 3 [122,MTR] 
host sunrpc 111/tcp rpcbind SUN Remote Procedure Call 

A distribuição oficial do STROBE fica em ftp://suburbia.net:/pub/strobe.tgz

^

ISS

O Internet Security Scanner - ISS é um programa escrito por Christopher Klaus para procurar por vulnerabilidades mais comuns nos principais serviços de rede (smtp, finger, ftp).

O pacote está disponível em ftp://ftp.iss.net/pub/iss . Informações sobre a versão comercial, mais completa, podem ser encontradas em http://www.iss.net .

^

Gabriel/Courtney

Muitas vezes ferramentas como o STROBE, ISS ou SATAN são usadas como primeiro passo para um ataque. Como uma forma de proteção contra isso, existe um outro conjunto de ferramentas, os detectores de scanners.

Uma delas é o Gabriel, escrito por Bob Baldwin. Essa ferramenta é capaz de detectar atividades intensas realizadas em um curto espaço de tempo, sobre os serviços de rede.

Um programa equivalente, escrito em perl, é o Courtney. A diferença principal entre elas é a portabilidade. Enquanto o Courtney é baseado no pacote tcpdump, permitindo a sua execução em muitos sistemas diferentes, o Gabriel foi feito especificamente para sistemas SunOS ou Solaris.

O Gabriel pode ser encontrado em ftp://www.lat.com/gabriel-1.0.tar.Z . O Courtney está disponível em ftp://ciac.llnl.gov/pub/ciac/sectools/unix/courtney .

^

Conclusão

A cada dia uma nova vulnerabilidade ou forma de ataque é descoberta. A cada momento uma nova invasão pode estar sendo iniciada.

Para tentar "equilibrar a luta" ou torná-la menos injusta, os administradores devem procurar usar todas as armas disponíveis. Muitas ferramentas valiosas, resultado do trabalho árduo de especialistas, estão amplamente disponíveis na Internet. Esse recurso deve ser aproveitado.

^

Referências Bibliográficas

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

Actually Useful Internet Security Techniques
by Larry Hughes,
1995, New Riders Publishing

Maximum Security
by "Anonymous", 1997, Sams.net publishing.

^

Sites relacionados

http://www.cs.purdue.edu/coast/
http://ciac.llnl.gov
ftp://ftp.cert.org

^

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