Um IDS baseado na máquina analisa diversas áreas para determinar o mal-uso (atividades maléficas ou truculentas dentro da rede) ou intrusão (incursões de fora). IDSs baseados na máquina consultam diversos tipos de arquivos de registro (kernel, sistema, servidor, rede, firewall e outros) e comparam os registros a um banco de dados interno com assinaturas comuns de ataques conhecidos. IDSs UNIX e Linux baseados na máquina fazem uso constante do syslog e sua habiliadade em separar eventos registrados por sua severidade (por exemplo: pequenas mensagens de impressão versus sérios alertas do kernel). O IDS baseado na máquina filtra os registros (que, no caso de alguns eventos da rede e do kernel, podem ser bastante verbalizados), analisa-os, renomeia as mensagens anômalas com sua própria classificação de severidade e os agrupa em seu próprio registro especializado para análise do adminstrador.
IDSs baseados na máquina também podem verificar a integridade dos dados de arquivos importantes e executáveis. Checam um banco de dados de arquivos importantes (e quaisquer arquivos adicionados pelo administrador) e criam um checksum de cada arquivo com uma utilidade de verificação de consistência de arquivo de mensagem como a md5sum (algoritmo de 128 bits) ou a sha1sum (algoritmo de 160bits). Então, o IDS baseado na máquina armazena as consistências em um arquivo somente texto e compara periodicamente a verificação de consistência aos valores do arquivo texto. Se alguma das consistências não bater, o IDS alerta o administrador via e-mail ou pager do celular. Este é o procedimento utilizado pelo Tripwire, explanado na Seção 9.2.1.
O Tripwire é o IDS do Linux baseado na máquina mais conhecido. A Tripwire, Inc., empresa dos desenvolvedores do Tripwire, recentemente divulgou o código-fonte do software para a versão Linux e o licenciou sob os termos da GNU General Public License. O Tripwire está disponível no site http://www.tripwire.org/.
![]() | Nota |
---|---|
O Tripwire não está incluso no Red Hat Enterprise Linux e não é suportado. Foi incluso neste documento como uma referência para usuários que possam se interessar pelo uso desta aplicação conhecida. |
O Gestor de Pacotes RPM (RPM) é outro programa que pode ser utilizado como um IDS baseado no servidor. O RPM contém várias opções para investigar pacotes e seus conteúdos. Estas opções de verificação podem ser muito preciosas para um administrador ao suspeitar que arquivos críticos do sistema e executáveis foram modificados.
A lista seguinte traz algumas opções para RPMs que podem verificar a integridade de arquivos em um sistema Red Hat Enterprise Linux. Consulte o Guia de Administração de Sistemas do Red Hat Enterprise Linux para informações completas sobre o uso do RPM.
![]() | Importante | |
---|---|---|
Alguns dos comandos da lista seguinte requerem a importação da chave pública GPG da Red Hat para o chaveiro RPM do sistema. Esta chave verifica se os pacotes instalados em seu sistema contêm uma assinatura de pacote da Red Hat, o que assegura que seus pacotes foram originados da Red Hat. A chave pode ser importada atribuindo o seguinte comando como root (substituindo <versão> pela versão do RPM instalado no sistema):
|
A opção -V verifica os arquivos do pacote instalado chamado nome_do_pacote. Se não exibir nenhum output e fechar, isto significa que nenhum dos arquivos foi modificado de maneira alguma desde a última vez em que o banco de dados RPM foi atualizado. Se houver algum erro, como
S.5....T c /bin/ps |
então o arquivo foi modificado de alguma maneira e você deve decidir entre guardar o arquivo (como é o caso de arquivos de configuração modificados no diretório /etc/) ou apagar o arquivo e reinstalar o pacote que o contém. A lista a seguir define os elementos do conjunto de 8 caracteres (S.5....T no exemplo acima) que notifica uma falha de verificação.
. — O teste passou esta fase da verificação
? — O teste encontrou um arquivo que não pôde ser lido, o que provavelmente é uma questão de permissão do arquivo
S — O teste encontrou um arquivo menor ou maior do que era ao ser originalmente instalado no sistema
5 — O teste encontrou um arquivo cuja verificação de consistência (checksum) md5 não coincide com a consistência original do arquivo instalado pela primeira vez
M — O teste detectou um erro na permissão ou no tipo do arquivo
D — O teste encontrou um conflito em número maior/menor no arquivo de dispositivo
L — O teste encontrou um link simbólico que foi alterado para outra localização de arquivo
U — O teste encontrou um arquivo que teve sua propriedade de usuário alterada
G — O teste encontrou um arquivo que teve sua propriedade de grupo alterada
T — O teste encontrou erros de verificação mtime no arquivo
A opção -Va verifica todos os pacotes instalados e procura qualquer falha em seus testes de verificação (parecida com a opção -V, só que seu output é mais verbalizado já que está verificando cada pacote instalado).
A opção -Vf verifica arquivos individualmente em um pacote instalado. Ela pode ser útil ao desempenhar uma verificação rápida em um arquivo suspeito.
A opção -K é útil para checar a consistência (md5 checksum) e a assinatura GPG de um arquivo de pacote RPM. Pode ser utilizada para verificar se um pacote prestes a ser instalado é assinado pela Red Hat ou por qualquer organização para a qual você tenha a chave pública GPG importada para um chaveiro GPG. Um pacote que não tenha sido assinado apropriadamente emitirá uma mensagem de erro similar à seguinte:
application-1.0.i386.rpm (SHA1) DSA sha1 md5 (GPG) NOT OK (MISSING KEYS: GPG#897da07a) |
Tenha cuidado ao instalar pacotes não assinados já que não são aprovados pela Red Hat, Inc. e podem conter código maléfico.
O RPM pode ser uma ferramenta poderosa, como evidenciado por suas diversas ferramentas de verificação de pacotes instalados e arquivos de pacotes RPM. É altamente recomendado que você faça backup dos conteúdos do diretório do banco de dados RPM (/var/lib/rpm/) para uma mídia somente-leitura (como um CD-ROM) após instalar o Red Hat Enterprise Linux. Ao fazê-lo é possível verificar arquivos e pacotes com o banco de dados somente-leitura, ao invés do banco de dados do sistema, já que usuários mal-intencionados podem corromper o banco de dados e desviar seus resultados.
A lista a seguir aborda alguns dos outros sistemas de detecção de intrusão baseados na máquina. Consulte os sites dos respectivos utilitários para mais informações sobre sua instalação e configuração.
![]() | Nota |
---|---|
Estas aplicações não estão inclusas no Red Hat Enterprise Linux e não são suportadas. Elas foram inclusas neste documento como referência para usuários interessados em avaliá-las. |
SWATCH http://www.stanford.edu/~atkins/swatch/ — O WATCHer Simples (SWATCH) utiliza arquivos de registro gerados pelo syslog para alertar administradores sobre anomalias baseado em arquivos de configuração do usuário. SWATCH foi desenvolvido para registrar qualquer evento que o usuário queira adicionar ao arquivo de configuração; no entanto, tem sido amplamente adotado como um IDS baseado em servidor.
LIDS http://www.lids.org — O Sistema de Detecção de Intrusão Linux (Linux Intrusion Detection System), LIDS, é um conserto do kernel e uma ferramenta de administração também capaz de controlar modificações de arquivo com listas de controle de acesso (access control lists), ACLs, e proteger processos e arquivos, inclusive do usuário root.