Ossec Wazuh – Dashboard PCI – HIDS parte 12

Fala pessoal, dando continuidade ao nosso último post da série de HIDS Ossec, hoje iremos fazer a instalação do Elastic Stack e fazer toda configuração necessária para integrar essas soluções, no último post vimos como instalar o Wazuh e a RESTFul APPI. Para realizar essa instalação recomendo uma VM de 6 a 8 Gb de memória por que o ELK é um pouco pesado, aqui estou utilizando uma de 8 com Ubuntu server.

Bem, como mencionado anteriormente o ELK é baseado em Java, então precisamos antes de tudo instalar o Oracle Java JRE no nosso server:

# add-apt-repository ppa:webupd8team/java
# apt-get update
# apt-get install oracle-java8-installer

Depois de instalar o Java iremos adicionar o repositório e a chave GPG da versão 5.x do Elastic:

# apt-get install curl apt-transport-https python-openscap xsltproc libssl-dev
# curl -s https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add -
# echo "deb https://artifacts.elastic.co/packages/5.x/apt stable main" | tee /etc/apt/sources.list.d/elastic-5.x.list
# apt-get update

O primeiro pacote que iremos instalar é o ElasticSearch que irá indexar os logs gerados do Wazuh:

# apt-get install elasticsearch

Depois de instalar precisamos habilitar e iniciar o serviço:

# systemctl daemon-reload
# systemctl enable elasticsearch.service
# systemctl start elasticsearch.service

Agora com o serviço em pé iremos o template do Wazuh para o ElasticSearch:

# curl https://raw.githubusercontent.com/wazuh/wazuh-kibana-app/master/server/startup/integration_files/template_file.json | curl -XPUT 'http://localhost:9200/_template/wazuh' -H 'Content-Type: application/json' -d @-

Aqui iremos inserir um alerta de exemplo:

# curl https://raw.githubusercontent.com/wazuh/wazuh-kibana-app/master/server/startup/integration_files/alert_sample.json | curl -XPUT "http://localhost:9200/wazuh-alerts-"`date +%Y.%m.%d`"/wazuh/sample" -H 'Content-Type: application/json' -d @-

Agora que nosso ElasticSearch está redondinho iremos pro próximo passo, instalar o Logstash:

# apt-get install logstash

Depois de instalar o Logstash precisamos criar o arquivo de configuração e o template dele, mas pra facilitar nossa vida na página do Wazuh no Github já tem tudo prontinho:

# curl -so /etc/logstash/conf.d/01-wazuh.conf https://raw.githubusercontent.com/wazuh/wazuh/2.0/extensions/logstash/01-wazuh.conf
# curl -so /etc/logstash/wazuh-elastic5-template.json https://raw.githubusercontent.com/wazuh/wazuh/2.0/extensions/elasticsearch/wazuh-elastic5-template.json

Como estamos utilizando um só host para todos os serviços não iremos precisar do Beat, ele só é necessário para ambientes de Cluster. Por esse motivo iremos comentar toda a sessão “Remote Wazuh Manager – Filebeat input” do arquivo “/etc/logstash/conf.d/01-wazuh.conf” e descomentar a sessão “Local Wazuh Manager – JSON file input”.

Agora iremos ajustar as permissões de usuário e grupo para o usuário logstash ler o arquivo de log alerts.json do Ossec:

# usermod -a -G ossec logstash

Aqui precisamos habilitar e iniciar o serviço:

# systemctl daemon-reload
# systemctl enable logstash.service
# systemctl start logstash.service

O último pacote do Elastic Stack que iremos instalar é o Kibana:

# apt-get install kibana

Depois de instalar o Kibana precisamos instalar o plugin do Wazuh nele:

# /usr/share/kibana/bin/kibana-plugin install https://packages.wazuh.com/wazuhapp/wazuhapp.zip

Por padrão o Kibana escuta na interface de loopback, por isso precisamos alterar a configuração caso você queira acessar ele de outro host. Edite o arquivo “/etc/kibana/kibana.yml” e descomente a opção server.host e a deixe do seguinte modo:

server.host: "0.0.0.0"

Agora precisamos habilitar e iniciar o serviço:

# systemctl daemon-reload
# systemctl enable kibana.service
# systemctl start kibana.service

Nesse ponto, se tudo ocorreu bem, nós já temos o Elastic Stack totalmente funcional, acesse http://ip_do_kibana:5601 para acessar a interface do Kibana. Agora precisamos conectar a API do Wazuh no plugin do Kibana, porém antes de fazer isso iremos mudar as credenciais padrão execute os passos abaixo alterando o “UserName”:

# cd /var/ossec/api/configuration/auth
# htpasswd -c user UserName
# systemctl restart wazuh-api

Pronto, agora já podemos prosseguir e conectar a API no plugin, acesse o endereço http://ip_do_kibana:5601 e clique no menu “Wazuh” no painel esquerdo depois clique em “ADD NEW API”, as opções de usuário e senha são as que configuramos acima, o campo URL será preenchido com “http://ip_do_wazuh” e a opção porta com “55000”. Depois de clicar em “Save” você já irá ver alguns gráficos do Wazuh Server como é exibido nas imagens abaixo, navegue entre as opções disponíveis para explorar e conhecer mais os gráficos já carregados.

Adicionando Agentes

Agora que nosso servidor já está redondo precisamos adicionar os agentes para monitorar nosso ambiente. Antes de instalar o agente iremos instalar as dependências:

# apt-get install git gcc make libc6-dev libssl-dev python-openscap xsltproc

Agora iremos baixar e instalar o Wazuh:

# cd /opt
# git clone https://github.com/wazuh/wazuh.git && cd wazuh && ./install.sh

O script de instalação irá perguntar qual tipo de instalação você deseja, informe a opção agente:

1- What kind of installation do you want (server, agent, local, hybrid or help)? agent

Pronto, depois de alguns segundos nosso agente já está instalado e pronto para se comunicar com o servidor. É possível registrar os agentes automaticamente com a ajuda do authd, o primeiro passo é gerar um certificado e chave SSL no servidor Wazuh, para isso execute:

# openssl req -x509 -batch -nodes -days 365 -newkey rsa:2048 -keyout /var/ossec/etc/sslmanager.key -out /var/ossec/etc/sslmanager.cert

Por padrão o authd adiciona os agentes com um IP dinâmico (opção ANY), caso você queira adicionar os agentes com um IP estático use a opção “-i”. Por padrão, adicionar agentes com o mesmo IP não é permitido, para forçar o authd adicionar agentes com IPs duplicados utilize a opáCão “-f”, caso ele ache um agente antigo com o mesmo IP ele irá apagar o agente antigo. Execute o comando abaixo no servidor Wazuhh:

#/var/ossec/bin/ossec-authd -i -f 0

Obs: Esse passo só precisa ser feito uma vez e não a cada adição de agente.

Agora no nosso agente basta executar o comando abaixo para registrar ele no servidor automaticamente, sem precisar gerar a chave como era feito antes:

# /var/ossec/bin/agent-auth -m ip_wazuh_server -A agent_name

Por padrão a verificação do OpenSCAP vem desabilitada, para habilita-lá basta editar o arquivo “/var/ossec/etc/ossec.conf” e alterar a opção disable do OpenSCAP para “no”:

 <wodle name="open-scap">
 <disabled>no</disabled>
# /var/ossec/bin/ossec-control start

Pronto, basta repetir esses últimos passos em cada agente que deseja adicionar no servidor Wazuh, depois de alguns minutos iremos ver as informações dos nossos agentes nos dashboards do Elastic. Seguem algumas imagens dos gráficos que o Wazuh proporciona para nós:

Bem pessoal é isso ai, espero que tenham curtido. Em breve irei postar outros artigos da série Ossec mostrando mais configurações. Não esqueçam de curtir nossas páginas nas redes sociais, FacebookG+ e seguir o Guia do Ti no Twitter. Compartilhem e comentem esse artigo, isso é muito importante para divulgação do nosso trabalho.

Fonte: https://documentation.wazuh.com/current/index.html

Ricardo Galossi
Siga me

Ricardo Galossi

É um apaixonado por segurança da informação, atua profissionalmente há mais de 7 anos na área de tecnologia da informação, onde é focado em análise de vulnerabilidades e testes de invasão.Criou o blog Guia do TI para compartilhar conhecimento, ajudar os mais novos, incentivar debates e manter a comunidade atualizada com as principais notícias da área de TI.
Ricardo Galossi
Siga me

Últimos posts por Ricardo Galossi (exibir todos)

Ricardo Galossi

É um apaixonado por segurança da informação, atua profissionalmente há mais de 7 anos na área de tecnologia da informação, onde é focado em análise de vulnerabilidades e testes de invasão. Criou o blog Guia do TI para compartilhar conhecimento, ajudar os mais novos, incentivar debates e manter a comunidade atualizada com as principais notícias da área de TI.

8 comentários em “Ossec Wazuh – Dashboard PCI – HIDS parte 12

  • 18 de setembro de 2017 em 4:48 pm
    Permalink

    Cara muito bom seus tutoriais, implementei wazuh aqui funcionando perfeito, porem nao consigo fazer meus agentes enviar dados para o servidor, voce consegue me ajudar com esse problema?
    Abs

    Resposta
    • 18 de setembro de 2017 em 5:51 pm
      Permalink

      Oi @DMR,
      Posta aqui o ossec.log de um dos agentes.

      Resposta
    • 18 de setembro de 2017 em 9:27 pm
      Permalink

      O Wazuh server está rodando certinho? A porta 1514 está aberta? Roda um netstat -nlpu pra ver.

      Resposta
      • 18 de setembro de 2017 em 9:51 pm
        Permalink

        esta, e tem os servicos em listen na 1515 e 1514

        com o netstat nltp

        tcp 0 0 0.0.0.0:1515 0.0.0.0:* OUÇA 13170/./ossec-authd

        com o netstat nlpu

        udp 0 0 0.0.0.0:44885 0.0.0.0:* 764/avahi-daemon: r
        udp 0 0 192.168.122.1:53 0.0.0.0:* 1566/dnsmasq
        udp 0 0 0.0.0.0:67 0.0.0.0:* 1566/dnsmasq
        udp 0 0 0.0.0.0:68 0.0.0.0:* 3117/dhclient
        udp 0 0 0.0.0.0:5353 0.0.0.0:* 764/avahi-daemon: r
        udp 0 0 0.0.0.0:1514 0.0.0.0:* 1379/ossec-remoted
        udp 0 0 0.0.0.0:18343 0.0.0.0:* 3117/dhclient
        udp6 0 0 :::15045 :::* 3117/dhclient

        estranho que nao fecha telnet na 1514, ja desativei iptables/firewall-cmd pra garantir que nao seja firewall..

        Resposta
        • 19 de setembro de 2017 em 9:30 am
          Permalink

          Posta aqui a saída dos comandos “/var/ossec/bin/agent_control -l” e “/var/ossec/bin/agent_control -i ” do manager.

          E também o conteúdo do “/var/ossec/etc/client.keys” do seu agente.

          Resposta
  • 19 de setembro de 2017 em 10:08 am
    Permalink

    Consegui cara, era a autenticacao dos agentes que estava com problemas, removi a chave fiz o processo denovo ta comunicando agora, porem nao envia dados pro server rsrsrsr…

    Resposta
    • 19 de setembro de 2017 em 10:29 am
      Permalink

      Blz. Agora tem que analisar o ossec.log do agente e do manager para entender oq está acontecendo.

      Resposta

Deixe seu comentário