Gerenciamento avançado de coletor de logs

Este artigo descreve como configurar as opções avançadas dos coletores de logs para descoberta na nuvem do Defender para Aplicativos de Nuvem.

A descoberta de nuvem do Defender para Aplicativos de Nuvem continua a se concentrar nos formatos básicos de firewall. As alterações nos logs que estão sendo encaminhados no nível do firewall podem não continuar a funcionar ou podem causar problemas com a análise. Se você encontrar erros desse tipo, recomendamos que você continue a usar o formato de firewall base ou use opções com o coletor de log personalizado. Para obter mais informações, consulte Usar um analisador de log personalizado.

Este artigo descreve como modificar a configuração do Docker do Cloud Discovery do Defender para Aplicativos de Nuvem.

Modificar a configuração de FTP do coletor de logs

Use as etapas nas seções a seguir para modificar a configuração do Docker do Cloud Discovery no Defender para Aplicativos de Nuvem.

Verificar a versão do coletor de logs

Para verificar a versão do coletor de logs atualmente instalado no seu sistema, conecte-se ao host do coletor de logs e execute:

cat /var/adallom/versions | grep columbus-

Alterar a senha FTP

O procedimento a seguir descreve como alterar a senha usada para acessar arquivos do coletor de logs.

  1. Conecte-se ao host do coletor de logs e execute:

    docker exec -it <collector name> pure-pw passwd <ftp user>
    
  2. Insira a nova senha. Depois, insira-a de novo para confirmar.

  3. Execute o seguinte comando para aplicar a alteração:

    docker exec -it <collector name> pure-pw mkdb
    

Você poderá visualizar o seguinte conteúdo:

  • run_logs
  • ssl_update
  • config.json

Personalizar arquivos de certificado

Este procedimento descreve como personalizar os arquivos de certificado usados para conexões seguras com a instância do Docker do Cloud Discovery.

  1. Abra um cliente de FTP e conecte-se ao host do coletor de logs.

  2. Navegue até o diretório ssl_update e carregue os novos arquivos de certificado, incluindo os seguintes:

    Tipo de receptor Arquivos necessários
    FTP - pure-ftpd.pem: inclui os dados de chave e certificado
    syslog - ca.pem: o certificado da autoridade de certificação usado para assinar o certificado do cliente.
    - server-key.pem e server-cert.pem: o certificado e a chave do coletor de logs

    As mensagens Syslog são enviadas por TLS para o coletor de logs, o que requer autenticação TLS mútua, incluindo a autenticação dos certificados do cliente e do servidor.

    Os nomes dos arquivos são obrigatórios. Se algum dos arquivos estiver faltando, a atualização falhará.

  3. Em uma janela terminal, execute:

    docker exec -t <collector name> update_certs
    

    A saída deve ser semelhante ao seguinte código:

    root@DockerPlayground:~# docker exec -t columbus update_certs
    rsyslog: stopped
    rsyslog: started
    ftpd: stopped
    ftpd: started
    root@DockerPlayground:~#
    
  4. Em uma janela terminal, execute:

    docker exec <collector name> chmod -R 700 /etc/ssl/private/
    

Habilitar o coletor de logs por trás de um proxy

Se você estiver executando por trás de um proxy, o coletor de logs poderá ter problemas para enviar dados ao Defender para Aplicativos de Nuvem. Por exemplo, isso pode acontecer porque o coletor de logs não confia na autoridade de certificação raiz do proxy e não consegue se conectar ao Microsoft Defender para Aplicativos de Nuvem para recuperar a configuração ou carregar os logs recebidos.

Os procedimentos a seguir descrevem como habilitar o coletor de logs atrás de um proxy.

Dica

Talvez você também queira alterar os certificados usados pelo coletor de logs para Syslog ou FTP ou resolver problemas de conectividade dos firewalls e proxies para o coletor de logs. Para obter mais informações, confira Modificar a configuração de FTP do coletor de logs.

Configurar o coletor de logs por trás de um proxy

Verifique se seguiu as etapas necessárias para executar o Docker em um computador Windows ou Linux e baixou com êxito a imagem do Docker do Defender para Aplicativos de Nuvem no computador hospedado.

Saiba mais em Configurar upload de log automático para relatórios contínuos.

Validar a criação de contêiner do coletor de logs do Docker

Verifique se o contêiner foi criado e está em execução. No shell, execute:

docker ps

Você deverá ver algo semelhante à seguinte saída:

Captura de tela do contêiner do Docker em execução.

Copiar o Certificado de Autoridade de Certificação raiz do proxy para o contêiner

Na sua máquina virtual, copie o Certificado de Autoridade de Certificação para o contêiner do Defender para Aplicativos de Nuvem. No exemplo a seguir, o contêiner é denominado Ubuntu LogCollector e o Certificado de Autoridade de Certificação é denominado Proxy-CA.crt.

O comando a seguir copia o certificado para uma pasta no contêiner em execução. Execute o comando no host do Ubuntu:

docker cp Proxy-CA.crt Ubuntu-LogCollector:/var/adallom/ftp/discovery

Defina a configuração para trabalhar com o Certificado de Autoridade de Certificação

  1. Vá para o contêiner. Execute o seguinte comando para abrir o bash no contêiner do coletor de logs:

    docker exec -it Ubuntu-LogCollector /bin/bash
    
  2. Em uma janela do bash dentro do contêiner, vá para a pasta jre do Java. Para evitar um erro de caminho relacionado à versão, use o seguinte comando:

    cd "$(find /opt/jdk/*/jre -name "bin" -printf '%h' -quit)"
    cd bin
    
  3. Importe o certificado raiz copiado anteriormente, da pasta de descoberta para o Java KeyStore, e defina uma senha.

    A senha padrão é changeit. Para obter mais informações, confira Alterar a senha do Java KeyStore.

    ./keytool --import --noprompt --trustcacerts --alias SelfSignedCert --file /var/adallom/ftp/discovery/Proxy-CA.crt --keystore ../lib/security/cacerts --storepass <password>
    
  4. Verifique se o certificado foi importado corretamente para o repositório de chaves da AC. Execute o seguinte comando para procurar o alias fornecido durante a importação (SelfSignedCert):

    ./keytool --list --keystore ../lib/security/cacerts | grep self
    

Você deve ver seu Certificado de Autoridade de Certificação importado do proxy. Por exemplo:

Captura de tela da interface keytool.

Restringir endereços IP que enviam mensagens Syslog para o coletor de logs no Linux

Para proteger a imagem do Docker e garantir que apenas um endereço IP tenha permissão para enviar as mensagens Syslog ao coletor de logs, crie uma regra de tabela IP no computador host para permitir o tráfego de entrada e descartar o tráfego vindo de portas específicas, como TCP/601 ou UDP/514, dependendo da implantação.

O comando a seguir mostra um exemplo de como criar uma regra de tabela IP que pode ser adicionada ao computador host. Esta regra de tabela permite que o endereço IP ''1.2.3.4'' se conecte ao contêiner do coletor de logs pela porta TCP 601 e descarte todas as outras conexões provenientes de outros endereços IP pela mesma porta.

iptables -I DOCKER-USER \! --src 1.2.3.4 -m tcp -p tcp --dport 601 -j DROP

Definir o coletor de logs para ser executado com a nova configuração

O contêiner está pronto.

Execute o comando collector_config com o token da API que você usou durante a criação do coletor de logs: Por exemplo:

Captura de tela da caixa de diálogo Criar coletor de log.

Ao executar o comando, especifique seu próprio token da API, como collector_config abcd1234abcd1234abcd1234abcd1234 ${CONSOLE} ${COLLECTOR}

Por exemplo:

Captura de tela de um exemplo de atualização de configuração.

O coletor de logs agora consegue se comunicar com o Defender para Aplicativos de Nuvem. Depois de enviar dados ao Defender para Aplicativos de Nuvem, o status do coletor de logs muda de Íntegro para Conectado. Por exemplo:

Captura de tela do status de upload.

Observação

Se você precisar atualizar a configuração do coletor de logs, para adicionar ou remover uma fonte de dados, por exemplo, normalmente precisará excluir o contêiner e executar as etapas anteriores novamente.

Para evitar isso, você pode executar novamente a ferramenta collector_config com o novo token da API gerado no portal do Defender para Aplicativos de Nuvem.

Alterar a senha do Java KeyStore

  1. Pare o servidor do Java KeyStore.

  2. Abra um shell do bash dentro do contêiner e acesse a pasta appdata/conf.

  3. Para alterar a senha do servidor do KeyStore, execute:

    keytool -storepasswd -new newStorePassword -keystore server.keystore
    -storepass changeit
    

    A senha padrão do servidor é changeit.

  4. Para alterar a senha do certificado, execute:

    keytool -keypasswd -alias server -keypass changeit -new newKeyPassword -keystore server.keystore -storepass newStorePassword
    

    O alias padrão do servidor é server.

  5. Em um editor de texto, abra o arquivo server-install\conf\server\secured-installed.properties. Adicione as seguintes linhas de código e salve as alterações:

    1. Especifique a nova senha do Java KeyStore para o servidor: server.keystore.password=newStorePassword
    2. Especifique a nova senha do certificado para o servidor: server.key.password=newKeyPassword
  6. Inicie o servidor.

Mover o coletor de logs para uma partição de dados diferente no Linux

Muitas empresas têm a necessidade de mover os dados para uma partição separada. Este procedimento descreve como mover as imagens do coletor de logs do Docker do Defender para Aplicativos de Nuvem para uma partição de dados no host do Linux.

Este procedimento descreve como mover os dados para uma partição chamada armazenamento de dados e pressupõe que você já tenha montado a partição. Por exemplo:

Lista de partições Linux.

Adicionar e configurar uma nova partição no host do Linux não está no escopo deste guia.

Para mover o coletor de logs para uma partição diferente:

  1. Interrompa o serviço do Docker. Correr:

    service docker stop
    
  2. Mova os dados do coletor de logs para a nova partição. Correr:

    mv /var/lib/docker /datastore/docker
    
  3. Remova o antigo diretório de armazenamento do Docker (/var/lib/docker) e crie um link simbólico para o novo diretório (/datastore/docker). Correr:

    rm -rf /var/lib/docker && ln -s /datastore/docker /var/lib/
    
  4. Inicie o serviço do Docker. Correr:

    service docker start
    
  5. Opcionalmente, verifique o status do coletor de logs. Correr:

    docker ps
    

Inspecionar o uso do disco do coletor de logs no Linux

Este procedimento descreve como analisar o uso e a localização do disco do coletor de logs.

  1. Identifique o caminho para o diretório onde os dados do coletor de logs estão armazenados. Correr:

    docker inspect <collector_name> | grep WorkDir
    

    Por exemplo:

    Captura de tela de como identificar o diretório do coletor de log.

  2. Obtenha o tamanho em disco do coletor de logs usando o caminho identificado sem o sufixo "/work". Correr:

    du -sh /var/lib/docker/overlay2/<log_collector_id>/
    

    Captura de tela de como identificar o tamanho do coletor de log no disco.

    Observação

    Se você só precisa saber o tamanho em disco, poderá usar o seguinte comando: docker ps -s

Mover o coletor de logs para um host acessível

Em ambientes regulamentados, o acesso aos Docker Hubs onde a imagem do coletor de logs está hospedada pode estar bloqueado. Isso impede que o Defender para Aplicativos de Nuvem importe os dados do coletor de logs e pode ser resolvido movendo a imagem do coletor de logs para um host acessível.

Este procedimento descreve como baixar a imagem do coletor de logs usando um computador que tenha acesso ao Docker Hub e importá-la ao host de destino.

A imagem baixada pode ser importada no repositório privado ou diretamente no host. Este procedimento descreve como baixar a imagem do coletor de logs no computador Windows e usar o WinSCP para mover o coletor de logs para o host de destino.

Pré-requisitos

  1. Certifique-se de ter o Docker instalado no computador. Por exemplo, use um dos seguintes downloads:

  2. Após o download, use o guia de instalação offline do Docker para instalar seu sistema operacional.

    Inicie o processo exportando a imagem do coletor de logs e importe a imagem para o host de destino.

Exportar a imagem do coletor de logs usando o Docker Hub

Os procedimentos a seguir descrevem como exportar a imagem do coletor de logs usando o Linux ou o Windows.

Exportar a imagem no Linux

  1. Em um computador Linux que tenha acesso ao Docker Hub, execute o comando a seguir para instalar o Docker e baixar a imagem do coletor de logs.

    curl -o /tmp/MCASInstallDocker.sh https://adaprodconsole.blob.core.windows.net/public-files/MCASInstallDocker.sh && chmod +x /tmp/MCASInstallDocker.sh; /tmp/MCASInstallDocker.sh
    
  2. Exporte a imagem do coletor de logs. Correr:

    docker save --output /tmp/mcasLC.targ mcr.microsoft.com/mcas/logcollector
    chmod +r /tmp/mcasLC.tar
    

    Importante

    Certifique-se de usar o parâmetro de saída para gravar em um arquivo em vez de STDOUT.

  3. Baixe a imagem do coletor de logs no seu computador Windows em C:\mcasLogCollector\ usando o WinSCP. Por exemplo:

    Captura de tela do download do coletor de log para um computador Windows.

Exportar a imagem no Windows

  1. Em um computador com o Windows 10 que tenha acesso ao Docker Hub, instale o Docker Desktop.

  2. Baixe a imagem do coletor de logs. Correr:

    docker login -u caslogcollector -p C0llector3nthusiast
    docker pull mcr.microsoft.com/mcas/logcollector
    
  3. Exporte a imagem do coletor de logs. Correr:

    docker save --output C:\mcasLogCollector\mcasLC.targ mcr.microsoft.com/mcas/logcollector
    

    Importante

    Certifique-se de usar o parâmetro de saída para gravar em um arquivo em vez de STDOUT.

Importar e carregar a imagem do coletor de logs para o host de destino

Este procedimento descreve como transferir a imagem exportada para o host de destino.

  1. Carregue a imagem do coletor de logs no host de destino em /tmp/. Por exemplo:

    Captura de tela do upload do coletor de log para o host de destino.

  2. No host de destino, importe a imagem do coletor de logs para o repositório de imagens do Docker. Correr:

    docker load --input /tmp/mcasLC.tar
    

    Por exemplo:

    Captura de tela da importação da imagem do coletor de log para o repositório do Docker.

  3. Opcionalmente, verifique se a importação foi concluída com êxito. Correr:

    docker image ls
    

    Por exemplo:

    Captura de tela da verificação de que a importação do coletor de log foi bem-sucedida.

    Agora, você pode continuar criando seu coletor de logs usando a imagem do host de destino.

Definir portas personalizadas de receptores Syslog e FTP para coletores de logs no Linux

Algumas organizações exigem definir portas personalizadas para serviços Syslog e FTP.

Ao adicionar uma fonte de dados, os coletores de logs do Defender para Aplicativos de Nuvem usam números da porta específicos para escutar logs de tráfego de uma ou mais fontes de dados.

A tabela a seguir lista as portas de escuta padrão dos receptores.

Tipo de receptor Portos
Syslog * UDP/514 - UDP/51x
* TCP/601 - TCP/60x
FTP * TCP/21

Use as etapas a seguir para definir portas personalizadas.

  1. No portal do Microsoft Defender, selecione Configurações. Em seguida, escolha Aplicativos de Nuvem.

  2. No Cloud Discovery, escolha Upload automático de logs. Em seguida, selecione a guia Coletores de logs.

  3. Na guia Coletores de logs, adicione ou edite um coletor de logs e, após atualizar as fontes de dados, copie o comando de execução da caixa de diálogo. Por exemplo:

    Copie o comando de execução do assistente do coletor de log.

    Se usado conforme fornecido, o comando fornecido pelo assistente configura o coletor de logs para usar as portas 514/udp e 515/udp. Por exemplo:

    (echo <credentials>) | docker run --name LogCollector1 -p 514:514/udp -p 515:515/udp -p 21:21 -p 20000-20099:20000-20099 -e "PUBLICIP='10.0.0.100'" -e "PROXY=" -e "SYSLOG=true" -e "CONSOLE=machine.us2.portal.cloudappsecurity.com" -e "COLLECTOR=LogCollector1" --security-opt apparmor:unconfined --cap-add=SYS_ADMIN --restart unless-stopped -a stdin -i mcr.microsoft.com/mcas/logcollector starter
    

    Por exemplo:

    Captura de tela do comando executado a partir do assistente do coletor de log.

  4. Antes de usar o comando no seu computador host, modifique o comando para usar suas portas personalizadas. Por exemplo, para configurar o coletor de logs para usar as portas UDP 414 e 415, altere o comando da seguinte maneira:

    (echo <credentials>) | docker run --name LogCollector1 -p 414:514/udp -p 415:515/udp -p 21:21 -p 20000-20099:20000-20099 -e "PUBLICIP='10.0.0.100'" -e "PROXY=" -e "SYSLOG=true" -e "CONSOLE=machine.us2.portal.cloudappsecurity.com" -e "COLLECTOR=LogCollector1" --security-opt apparmor:unconfined --cap-add=SYS_ADMIN --restart unless-stopped -a stdin -i mcr.microsoft.com/mcas/logcollector starter
    

    Por exemplo:

    Captura de tela de um comando de execução personalizado.

    Observação

    Somente o mapeamento do Docker é modificado. As portas atribuídas internamente não são alteradas, permitindo que você escolha uma porta de escuta no host.

Validar o tráfego e o formato de log recebidos pelo coletor de logs no Linux

Ocasionalmente, pode ser necessário investigar problemas como os exemplos a seguir.

  • Os coletores de logs estão recebendo dados: valide se os coletores de logs estão recebendo mensagens Syslog dos seus dispositivos e não estão bloqueados por firewalls.
  • Os dados recebidos estão no formato de log correto: valide o formato de log para ajudar a solucionar erros de análise comparando o formato de log esperado pelo Defender para Aplicativos de Nuvem e o formato enviado pelo seu dispositivo.

Use as etapas a seguir para verificar se o tráfego é recebido pelos coletores de logs.

  1. Inicie a sessão no servidor que hospeda o contêiner do Docker.

  2. Valide se o coletor de logs está recebendo mensagens Syslog usando um dos métodos a seguir.

    • Use tcpdump ou um comando semelhante para analisar o tráfego de rede na porta 514:

      tcpdump -Als0 port 514
      

      Se tudo estiver configurado corretamente, você verá o tráfego de rede nos seus dispositivos. Por exemplo:

      Captura de tela da análise do tráfego de rede via tcpdump.

    • Use netcat ou um comando semelhante para analisar o tráfego de rede no computador host:

      1. Instale netcat e wget.

      2. Baixe um arquivo de registro como exemplo do Microsoft Defender XDR. Se necessário, descompacte o arquivo de registro.

        1. No Microsoft Defender XDR, em Aplicativos de Nuvem, selecione Cloud Discovery>Ações>Criar relatório de instantâneos do Cloud Discovery.

        2. Selecione a Fonte de dados da qual você deseja carregar os arquivos de log.

        3. Selecione Exibir e verificar, clique com o botão direito do mouse em Baixar exemplo de log e copie o link do endereço URL.

        4. Selecione Fechar>Cancelar.

      3. Correr:

        wget <URL_address_to_sample_log>
        
      4. Execute netcat para transmitir os dados ao coletor de logs.

        cat <path_to_downloaded_sample_log>.log | nc -w 0 localhost <datasource_port>
        

      Se o coletor estiver configurado corretamente, os dados de logs estarão presentes no arquivo de mensagens e, logo depois, serão carregados no portal do Defender para Aplicativos de Nuvem.

    • Inspecione arquivos relevantes no contêiner do Docker do Defender para Aplicativos de Nuvem:

      1. Inicie a sessão no contêiner. Correr:

        docker exec -it <Container Name> bash
        
      2. Determine se as mensagens Syslog estão sendo gravadas no arquivo de mensagens. Correr:

        cat /var/adallom/syslog/<your_log_collector_port>/messages
        

      Se tudo estiver configurado corretamente, você verá o tráfego de rede nos seus dispositivos. Por exemplo:

      Captura de tela da análise de tráfego usando o comando cat.

      Observação

      Esse arquivo continuará sendo gravado até atingir 40 KB de tamanho. Por exemplo:

  3. Analise os logs carregados no Defender para Aplicativos de Nuvem, no diretório /var/adallom/discoverylogsbackup. Por exemplo:

    Revise os arquivos de log carregados.

  4. Valide o formato de log recebido pelo coletor de logs comparando as mensagens armazenadas em /var/adallom/discoverylogsbackup com o exemplo do formato de log fornecido no assistente Criar coletor de logs do Defender para Aplicativos de Nuvem.

Gravar a saída do arquivo de mensagens em um arquivo local

Se quiser usar seu próprio exemplo de log, mas não tiver acesso ao dispositivo, use os seguintes comandos para gravar a saída do arquivo de mensagens, localizado no diretório Syslog do coletor de logs, em um arquivo local no host:

docker exec CustomerLogCollectorName tail -f -q /var/adallom/syslog/<datasource_port>/messages > /tmp/log.log

Compare o arquivo de saída (/tmp/log.log) com as mensagens armazenadas no diretório /var/adallom/discoverylogsbackup.

Atualize a versão do coletor de log

Ao atualizar seu coletor de log:

Próximas etapas

Se encontrar algum problema, estamos aqui para ajudar. Para obter ajuda ou suporte para o problema do seu produto, abra um tíquete de suporte.