O
OSSEC é um HIDS (Sistema de Detecção de Intrusão Baseado em Host), plataforma esta, que realiza um monitoramento centralizado através de gerenciamento flexível, que visa disponibilizar ao administrador maior controle sobre os sistemas, através da detecção e alertas, em níveis de camadas, sobre quaisquer modificações não autorizadas e comportamentos maliciosos.
Uma lista com as plataformas suportadas, está disponível no seguinte link:
Principais características do OSSEC:
- Análise e verificação de integridade;
- Monitoramento de Logs;
- Detecção de Rootkits;
- Alerta em tempo real;
- Resposta ativa.
Tipos de instalação OSSEC
Antes de realizar o processo de instalação, faz-se necessário entender os tipos de configurações que são disponibilizadas pelo OSSEC, tais como local, agente ou servidor:
- Servidor :: atua como centralizador, responsável por verificação de logs e eventos dos agentes, sendo um facilitador no processo administrativo de um grande número de hosts.
- Agente :: responsável por coletar as informações dos sistemas que deseja-se monitorar.
- Local :: tal configuração é a mais adequada para realizar o monitoramento em apenas um host, sem a necessidade de se configurar o servidor OSSEC.
Exemplo de cenário real
A imagem abaixo, demonstra um cenário onde o servidor OSSEC realiza o monitoramento dos eventos em distintos sistemas:
Instalação OSSEC (servidor/cliente)
Para iniciar o processo de instalação, será necessário realizar o download do OSSEC, conforme descrito nos passos abaixo (todos os comandos descritos são executados com o usuário root):
# cd /usr/local/src
# curl -O http://www.ossec.net/files/ossec-hids-2.7.tar.gz
# tar -xvf ossec-hids-2.7.tar.gz
# cd ossec-hids-2.7/
# ./install.sh
Obs.: caso venha a ser necessário realizar o download para diferentes arquiteturas, basta acessar o seguinte
link.
Exemplo do processo de instalação do servidor OSSEC:
1. Selecionar a linguagem:
br
2. Que tipo de instalação você deseja (servidor, cliente, local ou ajuda)?
Servidor
3. Escolher onde instalar o OSSEC HIDS [/var/ossec]:
4. Deseja receber notificações por e-mail? (s/n) [s]:
s
4.1. Qual é o seu endereço de e-mail?
sergio@mail.com
4.2. Qual é o IP/host de seu servidor SMTP?
XXX.XXX.XXX.XXX
5. Deseja habilitar o sistema de verificação de integridade? (s/n) [s]:
s
5.1. Deseja habilitar o sistema de detecção de rootkis? (s/n) [s]:
s
5.2. Deseja habilitar o sistema de respostas automáticas? (s/n) [s]:
s
5.3. Deseja habilitar o firewall-drop? (s/n) [s]:
s
5.4. Lista de endereços que não serão bloqueados pela resposta automática:
- XXX.XXX.XXX.XXX
- XXX.XXX.XXX.XXX
5.5. Deseja adicionar mais algum endereço a essa lista? (s/n)? [n]:
n
5.6. Deseja habilitar o syslog remoto (514 UDP)? (s/n) [s]:
s
Obs.: havendo necessidade de realizar monitoramento de outro arquivo, basta modificar o
ossec.conf e adicionar uma nova entrada para o mesmo. Quanto à resposta automática, a mesma permite a execução de um comando específico baseado nos eventos recebidos, podendo realizar o bloqueio do endereço de IP, por exemplo.
Obs.2: no item 4, modificar o
XXX.XXX.XXX.XXX para o endereço IP do servidor SMTP, e no item 3.4, para os endereços IPs que não serão bloqueados pela resposta automática.
Exemplo do processo de instalação do agente OSSEC:
1. Selecionar a linguagem:
br
2. Que tipo de instalação você deseja (servidor, cliente, local ou ajuda)?
cliente
3. Escolha onde instalar o OSSEC HIDS [/var/ossec]:
4. Qual é o endereço de IP/hostname do servidor OSSEC HIDS?:
XXX.XXX.XXX.XXX
4.1. Deseja habilitar o sistema de verificação de integridade? (s/n) [s]:
s
4.2. Deseja habilitar o sistema de detecção de rootkis? (s/n) [s]:
s
4.3. Deseja habilitar o sistema de respostas automáticas? (s/n) [s]:
s
Obs. 1: no item 4, modificar o
XXX.XXX.XXX.XXX para o endereço IP do servidor.
Obs. 2: o processo de instalação para o tipo local é bastante semelhante aos descritos acima. Em caso de dúvidas, consultar as referências no final deste artigo.
Comandos básicos do OSSEC
Iniciando o OSSEC:
# /var/ossec/bin/ossec-control start
Started ossec-maild...
Started ossec-execd...
Started ossec-analysisd...
Started ossec-logcollector...
Started ossec-remoted...
Started ossec-syscheckd...
Started ossec-monitord...
Completed.
Verificando status:
# /var/ossec/bin/ossec-control status
ossec-monitord is running...
ossec-logcollector is running...
ossec-remoted is running...
ossec-syscheckd is running...
ossec-analysisd is running...
ossec-maild is running...
Parando o OSSEC:
# /var/ossec/bin/ossec-control stop
Killing ossec-monitord ..
Killing ossec-logcollector ..
Killing ossec-remoted ..
Killing ossec-syscheckd ..
Killing ossec-analysisd ..
Killing ossec-maild ..
OSSEC HIDS Stopped
Geração de chaves OSSEC (servidor/cliente)
Para realizar a geração da
key, é necessário executar o seguinte comando no servidor OSSEC:
# /var/ossec/bin/manage_agents
Onde a saída do mesmo, será a exibição das seguintes opções:
(A)dd an agent (A).
(E)xtract key for an agent (E).
(L)ist already added agents (L).
(R)emove an agent (R).
(Q)uit.
Neste caso, será selecionada a opção "A", conforme verificado abaixo (para adição de um agente):
Choose your action: A,E,L,R or Q: A
Mediante a opção desejada, serão solicitadas as informações da máquina agente. Conforme descrito abaixo:
Adding a new agent (use '\q' to return to the main menu).
Please provide the following:
* A name for the new agent: server01
* The IP Address of the new agent: 192.168.1.200
* An ID for the new agent[001]: 001
Após realizar a adição da
key do novo agente ao servidor OSSEC, será necessário extrair a chave (o comando é idêntico ao descrito acima):
# /var/ossec/bin/manage_agents
(A)dd an agent (A).
(E)xtract key for an agent (E).
(L)ist already added agents (L).
(R)emove an agent (R).
(Q)uit.
Onde, neste caso, será selecionada a opção
E, como pode ser observado abaixo:
Choose your action: A,E,L,R or Q: E
Com a seleção da opção acima mencionada, será necessário informar a identificação do agente cadastrado no OSSEC Server (será exibida uma lista com os agentes cadastrados):
Available agents:
ID: 001, Name: server01, IP: 192.168.1.200
Provide the ID of the agent to extract the key (or '\q' to quit): 001
Após selecionar a identificação do agente, será exibida uma mensagem semelhante a descrita abaixo:
Agent key information for '001' is:
MDAxIHNlcnZlcjAxIDE5Mi4xNjguMS4yMDAgNzA2ZGY3NGY5MTlmM2JhOGMyOTFjNWY5YmFjZWIwYzBiYjNmYWIyMmViZTc1NWU3MmM0NWM0OTNiNWEwNzliZZg=
Realizando o "import" da "key"
Será necessário a execução do seguinte comando no agente OSSEC (host onde o agente foi instalado):
# /var/ossec/bin/manage_agents
Selecionar a opção "I", para realizar o "import" da chave previamente gerada no servidor OSSEC.
Choose your action: I or Q: I
Paste it here (or '\q' to quit):
MDAxIHNlcnZlcjAxIDE5Mi4xNjguMS4yMDAgNzA2ZGY3NGY5MTlmM2JhOGMyOTFjNWY5YmFjZWIwYzBiYjNmYWIyMmViZTc1NWU3MmM0NWM0OTNiNWEwNzliZZg==
Após realizar o "export" e "import" da
key, pode ser verificada a lista de agentes conectados ao servidor através do comando mencionado abaixo:
# /var/ossec/bin/agent_control -l
Obtendo assim, uma saída semelhante a seguinte:
ID: 001, Name: server01, IP: 192.168.1.200, Active
Conforme imagem descrita abaixo, pode ser verificado graficamente os eventos capturados pelo sistema OSSEC:
Como também, a escala diária dos eventos reportados:
Conclusão
Neste artigo, optou-se por expor conceitos e funcionalidades do sistema de detecção OSSEC, bem como sua implementação no
CentOS 6.5 x64, tendo como finalidade, demonstrar suas características, tais como: análise de log, verificação de integridade, monitoramento de registro, detecção de rootkit, alerta em tempo real, resposta ativa, entre outros, de modo a permitir uma administração centralizada, facilitando o monitoramento de vários hosts.
Referências: