AIDE, implementação em sistemas UNIX. (FreeBSD)

16/06/2002 7:47.

<[email protected]>

(basicamente este documento esta baseado numa traduccion da

documentacion original com algumas melhoras e aclaraciones por minha parte)

Que é?

AIDE (Meio Avançado de Detecção de Intrusiones) é uma livre alternativa ao Tripwire(Tm). Gera uma base de dados que pode ser usada para verificar a integridade dos arquivos no servo. Usa expressões regulares para determinar que arquivos são tomados para adicioná-los à base de dados. Pode usar uma grande quantidade de algoritmos de verificação para assegurar que os arquivos não foram alterados.

AIDE executa as mesmas e inclusive mas funções que a versão semi-livre de Tripwire.

AIDE esta licenciado sob a licença GPL.

O processo de instalação, configuração e entendimento dos processos e termos associados à implementação desta ferramenta estão descritos nos seguintes apartados.

Para que o preciso?

Realmente se este primeiro apartado não satisfaz sua curiosidade/necessidade é que não precisa AIDE. AIDE é uma poderosa ferramenta que ajuda ao administrador do sistema a verificar em caso de uma possível intrusión no servo dos possíveis arquivos modificados e ou alterados por um atacante, vírus, verme ou usuário mau intencionado (1), há que aclarar que esta ferramenta atua em modo passivo, o que significa que não informa a tempo real da modificação de um arquivo protegido pela base de dados de AIDE senão que só entra em funcionamento quando se executa de maneira manual ou numa tarefa programada (cron), também há que dizer que esta ferramenta é para uso exclusivo de arquivos de sistema, não verifica cabeceiras ip nem pacotes anómalos, se o que procuras é uma ferramenta que atue a tempo real e sobre a conexão de rede, quiçá te interessa echar um vistazo a Snort (http://www.snort.org), mas notese que snort só actua no nível de conexão tcp/ip não sobre os dados fisicos do sistema, existem outras muitas ferramentas de muitos e distintos tipos que ajudam ao administrador a manter o sistema seguro, estável e limpo, mas não vou-o detalhar neste documento (2).

Como funciona?:

Cria-se uma base de dados a partir de uma série de réguas e expressões regulares desde um arquivo de configuração. Uma vez que esta base de dados foi inicializada esta pode ser usada para verificar a integridade dos arquivos. Usa um grande numero de algoritmos de verificação (md5,sha1,rmd160,tiger,haval,etc.) que são usados para verificar ao integridade dos arquivos. Todos os atributos usuais também podem ser verificados contra inconsistencias. Também pode ler arquivos de bases de dados de versões mas antigas e novas.

Normalmente, o administrador do sistema criasse uma base de dados AIDE num sistema novo antes de que tenha contato com qualquer rede externa, segundo o projeto honeypot (3), aos 15 minutos de conectar um servo a internet este pode ser atacado e conseguir-se uma intrusión com sucesso.

A primeira base de dados AIDE deve ser o fiel reflexo do sistema em seu estado normal e o ponto de partida para que os consecuentes mudanças e ou atualizações nos ficheros possam ser encontrados e verificados. A base de dados deve conter a informação sobre os ejecutables do sistema, arquivos de cabeceira, e em geral todos os arquivos que se supõe não serão modificados no futuro. Esta base de dados não deve conter informação sobre os arquivos que mudem frequentemente como arquivos de logs, colas de correio, sistemas de arquivos proc, home de usuários e ou arquivos temporais, de não ser assim a tarefa de encontrar mudanças nos ficheros por motivos não fidedignos se converte numa dura e longa sessão de administração observando milhares de ficheros que podem provocar falsos alarmes e dores de cabeça para a pessoa que executa as tarefas de administração. Assim ante uma entrada no sistema, o administrador pode começar a examinar minuciosamente os comandos do sistema como "ls, ps, netstat e who", os ficheros mais comuns a modificar com troyanos por um intruso. Imagina que o comando "ls" foi alterado para que não mostre o arquivo chamado "sniffedpacket.log" e que o ps e o netstat foram reescritos para não mostrar a informação de um processo chamado "sniffdaemond". Inclusive o administrador que tem impresso previamente em papel as datas e tamanhos desses ficheros clave não pode ter a certeza de que a comparação que realizou possa ser realmente correta e que os arquivos não tenham sido alterados de alguma menera. As datas e tamanhos dos arquivos podem ser manipulados, alguns bons root-kits (4) fazem esta tarefa de uma maneira trivial.

Enquanto é possível manipular as datas e tamanhos dos arquivos, é muito mais complicado de manipular uma só soma de verificação como md5, e exponencialmente mais difícil de manipular cada um das verificações (checksums) da tabela completa que AIDE proporciona. Re-executando AIDE após uma intrusión, o administrador pode encontrar rapidamente as mudanças em arquivos clave e ter um alto grau de segurança sobre a fiabilidade dos resultados proporcionados por AIDE.

Desafortunadamente, AIDE não proporciona uma total e absoluta certeza sobre as mudanças nos arquivos. Como em outros sistemas de ficheros, os binários de AIDE e a base de dados também podem ser alterados.

Implementacion:

1.- Instalação desde ports (FreeBSD)

Basicamente executar os seguintes passos para ter uma versão de AIDE instalada corretamente em teu sistema "cd /usr/ports/security/aide && make install && make clean"

2.- Configuração

Copiar o fichero de exemplo dado pela distribuição atualmente instalado em " /usr/local/etc/aide.conf.sample" ao diretório "/var/adm/aide/" , também é possível mediante um parâmetro da linha de comandos indicar-lhe qualquer outra localização.

Bem aqui é onde começa a tediosa tarefa de configuracion, como em qualquer outro programa e mas num deste tipo esta configuracion deve ser simples e legível para evitar confusões e dores de cabeça.

 

No fichero de configuracion te encontrasses com três tipos de lineas:

1.- lineas de configuracion - usadas para ajustar os parametros e definir ou tirar variáveis

2.- lineas de seleccion - indicam que arquivos seran adicionados à base de dados

3.- lineas de macros - definem ou tiram variáveis no arquivo de configuracion.

As lineas que começam com # são ignoradas e tratadas como comentários.

Bem o fichero de configuracion é bastante explicativo, claro que esta em virilhas, quiza o detalhe mas em futuras versões deste documento.

3.- Uso:

Primeiro há que criar uma base de dados contra a que as futuras verificações serão executadas. Pode-se fazer com o comando aide –init. Isto cria uma base de dados que contém todos os arquivos elegidos mediante o fichero de configuração. A nova base de dados deve ser emplazada num lugar seguro como dispositivos de só leitura (floppy disks, CD-ROMS, DVD-ROMS,etc), Também é recomendável guardar neste mesmo medeio a configuração e os binários do AIDE. Lembra de mudar a configuração para que a base de dados a ler seja desde o dispositivo de só leitura. Também se recomenda não manter o fichero de configuração no servo no que se executo o AIDE com dita configuração. O atacante pode ler a configuração e alterá-la ou inclusive se a modifica pode pôr sua rootkit num lugar onde AIDE não execute a verificação (diretório não incluído na configuração), pelo mesmo motivo o dispositivo de só leitura que armazena a base de dados só deve ser acessível só e exclusivamente durante o procedimento de verificação dos arquivos.

Uma vez de que se tenha todo preparado, pode-se começar a verificar a integridade dos arquivos, isto pode ser realizado com o comando "aide –check". AIDE lerá a base de dados e a comparasse com os ficheros atuais do disco. AIDE pode encontrar mudanças em lugares inesperados, por exemplo nos dispositivos tty a menudo mudam as permissões do dono e permissões de leitura-escritura. Quiçá queiras ler grandes e longos reportes, mas a maioria de nós não temos tempo ou o costume de ler centos e centos de mensagens com lixo todos os dias assim que se deve ajustar a configuração para incluir só aqueles ficheros e atributos das partes do sistema que estão sujeitas a não mudar, mas lembra que não se deve ignorar demasiado porque podes ficar exposto a um ataque, um intruso pode colocar seu rootkit num diretório que omitiste na configuração completamente. Um bom exemplo é o serviço de impresora "lp" que armazena seus ficheros temporais em " var/spool/lp" ou similar, não se deve ignorar completamente, só deves ignorar o tipo de arquivos que o daemon do lp mantém criados, lembra de usar o caráter "$ ao final das expressões regulares, isto deterá a qualquer que tente criar um diretório que poderia ser ignorado incluindo seu conteúdo.

Uma vez que se tenha redefinido o fichero de configuracion se deve atualizar a base de dados com o comando "aide –update", o comando update tambien realiza a funcion de check mas cria uma nova base de dados, esta base de dados deve ser a que reemplazara à que atualmente esta no meio de só leitura acompanhado do novo fichero de configuracion. Os passos de verificar (check), redefinir (config) e atualizar (update) devem ser repetidos as vezes que seja necessário. Recomenda-se revisar a configuracion cada certo tempo, alguns o fazem diariamente despues de cada check, outros semanalmente.

 

There is usually some drift in the databases. What I mean by drift is that new files are created, config files of applications are edited, tons of small changes pile up until the report becomes unreadable. This can be avoided by updating the database onze in a while. I myself run the update every night. But, I don't replace the input database nearly as often. The replacement of the input datbase should always be a manual operation. This should not be automated.

 

 

 

 

(1) trabalhadores ignorantes, vinganças pessoais dentro do meio de trabalho, erros humanos, etc.

(2) L

(3) http://www.honeynet.org/

(4) root-kits, a ferramenta do intruso por excelência , conunto de programas que facilita a tarefa de adentrar-se num sistema e apoderar-se do completa e invisiblemente, não dare informacion ao respecto L .

Enlaces de interesse:

http://www.cs.tut.fi/rammer/aide.html

http://www.tripwire.org

http://www.freebsd.org

 

 

 

 

Hosted by www.Geocities.ws

1