Host intrusion detection
A prevenção e detecção de intrusões é essencial para proteger sistemas e dados contra ataques cibernéticos. Normalmente utilizamos ferramentas para monitoramento de tráfego, análise de logs, verificação de integridade de arquivos e detecção de atividades suspeitas em tempo real.
Algumas ferramentas:
PortSentry
Fail2ban
OSSEC
Snort
PortSentry
O PortSentry é uma aplicação capaz de barrar scans e tentativas de burlar sua segurança. Uma vantagem é a sua simplicidade, pois ela simula portas abertas no seu servidor. Quando as portas recebem alguma requisição, a origem é bloqueada. Utilize o comando apt install portsentry -y
para o instalar.
No arquivo /etc/portsentry/portsentry.conf
, habilite as opções BLOCK_TCP
e BLOCK_UDP
.
Para ser capaz de detectar scans do tipo SYN, configure o modo atcp
no arquivo /etc/default/portsentry
:
Fail2ban
O Fail2ban é um software para prevenção de intrusões. Ele foi escrito em Python e inicialmente projetado para prevenir ataques de força bruta. Com base na análise de logs, é possível tomar ações como bloquear o atacante. Conceitos importantes:
Filters: definido com expressões regulares que correspondem aos padrões de tentativas de invasões em logs.
Actions: define comandos a serem executados (e.g., bloquear um IP).
Jails: combina filtros com as ações.
Para o instalar, utilize os seguintes comandos:
Principais arquivos e diretórios:
/etc/fail2ban/jail.conf: arquivo com as configurações dos serviços a serem monitorados.
/etc/fail2ban/action.d/: diretório onde ficam as regras a serem tomadas.
/etc/fail2ban/filter.d/: diretório com expressões e padrões de detecção.
/etc/fail2ban/jail.local: contém as suas configurações e regras para tomada de ações.
Exemplo de configuração do /etc/fail2ban/jail.local
:
No exemplo, serão bloqueadas máquinas que fizerem 3 tentativas de login sem sucesso no serviço SSH ou 5 tentativas inválidas no serviço FTP. É possível customizar parâmetros como o tempo de bloqueio e as portas que serão bloqueadas, além de ser possível criar uma whitelist para IPs autorizados.
Você pode verificar os endereços bloqueados por meio dos comandos:
E remover um determinado IP por meio do comando:
arpwatch
O arpwatch é uma ferramenta capaz de alertar o administrador sobre alterações na tabela ARP. Seu principal arquivo de configuração fica localizado em /etc/sysconfig/arpwatch
e seus logs são armazenados em /var/log/messages
. Os endereços registrados podem ser consultados em /var/lib/arpwatch/arp.dat
.
Teste a detecção com o comando arpspoof -i eth0 -r <roteador> -t <alvo>
executado de outra máquina.
AIDE
O Advanced Intrusion Detection Environment (AIDE) é um utilitário que cria um banco de dados dos arquivos presentes no sistema para garantir a integridade deles e detectar possibilidades de intrusão. Seu principal arquivo de configuração é o /etc/aide.conf
, que especifica os diretórios que serão monitorados.
Para verificar o sistema, utilize o comando aide --check
. Caso tenha feito alterações intencionais nos artefatos monitorados, utilize o aide --update
.
Caso tenha problemas com o comando de verificação, crie um link simbólico para o banco de dados do AIDE: ln -s /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz
.
Linux Malware Detect (LMD)
Uma das soluções para identificação de artefatos maliciosos em sistemas Linux. O LMD é capaz de colocar malwares em quarentena ou os remover do sistema. Utiliza hashes MD5 para identificação de artefatos maliciosos e bases de dados como a do ClamAV. Ademais, possui sua própria base de assinaturas.
Instalação:
Para atualizar a base de dados, utilize o comando maldet -u
, já para realizar um scan de todo o sistema, utilize o comando maldet -a
.
Alguns comandos úteis:
ClamAV
O ClamAV é um antivírus gratuito e open-source. É possível o utilizar para realizar scans no sistema, verificação de anexos de e-mails, entre outras opções. Além disso, ele possui uma interface gráfica (ClamTk) e utilitários via linha de comando.
Instalação:
Para realizar um scan em um diretório, utilize o comando clamscan ./diretorio
.
Chkrootkit
O Chkrootkit é um programa escrito em shell script e capaz de verificar se um sistema Unix está infectado com rootkits conhecidos.
Instalação e utilização:
Rkhunter
Similarmente ao Chkrootkit, o Rkhunter também é capaz de detectar rootkits.
Instalação e utilização:
Lynis
O Lynis é uma ferramenta gratuita para auditoria de sistemas Unix. Ela pode ser utilizada para realização de testes automatizados de compliance e detecção de vulnerabilidades.
Utilização:
AuditD
O AuditD é um sistema de auditoria para sistemas Linux. Ele permite identificar violações de segurança por meio de regras pré-configuradas no arquivo /etc/audit/auditd.conf
. Seus principais utilitários são os comandos auditctl
e ausearch
.
Instalação:
Exemplo de sintaxe:
Essa regra irá registrar alterações no arquivo /etc/passwd
. Você pode testá-la realizando uma alteração no arquivo e consultando os logs de auditoria:
Vale notar que as configurações são feitas em memória. Para manter a persistência delas, adicione apenas a parte da regra ao arquivo /etc/audit/rules.d/audit.rules
:
Conclusão
Este capítulo abordou ferramentas para prevenção e detecção de intrusões, cada uma com suas respectivas funcionalidades para melhorar a segurança do sistema. Tais ferramentas podem ser utilizadas para monitorar o tráfego, analisar logs, verificar a integridade de arquivos e identificar atividades suspeitas em tempo real, contribuindo para reforçar a proteção do ambiente contra ameaças cibernéticas.
Last updated