Ir para conteúdo
  • YARA 4.3 vem com Telfhash


    Fernando Mercês

    Que o número de malwares feitos para Linux vem aumentando todo mundo sabe. Passamos por botnets IoT, ransowmare alvejando VMware ESXi e ambientes de nuvem. Sem falar em rootkits ring 3, ring 0, ring o caramba a quatro. Não tá fácil. 😷

    Para ajudar na busca por samples de malware similares, em abril de 2020 eu tornei público o Telfhash, uma espécie de imphash com anabolizantes para executáveis ELF. As principais diferenças são:

    • Telfhash usa TLSH, um hash de similaridade, enquanto o imphash usa MD5.
    • Telfhash não requer que o binário tenha símbolos.
    • Telfhash é desenhado para ter o hash mais próximo possível entre versões do mesmo executável compiladas para diferentes arquiteturas.

    Deixarei os detalhes de implementação do Telfhash para um futuro artigo, mas se tiver curiosidade pode ler o artigo que escrevi em inglês. De qualquer forma, para minha felicidade, o algoritmo foi bem aceito pela comunidade. Além de pesquisadores, cataloguei os seguintes projetos/empresas usando o Telfhash:

    Por este motivo, eu considero o Telfhash a minha principal contribuição de âmbito técnico para a comunidade anti-malware. 💚

    No entanto, há algum tempo me sinto um pouco triste de não ter tempo para fazer alterações de código no projeto. Originalmente em Python, eu queria reescrever em C para possibilitar a adição no YARA, dentre outras coisas. Para minha surpresa, no entanto, graças à mágica do software livre (tanto o Telfhash quanto a TLSH usam a Apache License), o pesquisador Karel Hájek, da Avast, reimplementou tanto o TLSH quanto o Telfhash em C e adicionou a função telfhash() na última versão do módulo elf do YARA. Portanto, a partir da versão 4.3.0 do YARA, você e o resto do mundo podem fazer:

    import “elf”
    
    rule minha_regra {
    	condition:
    		elf.telfhash() == "t166a00284751084526486df8b5df5b2fccb3f511dbc188c37156f5e714a11bc5d71014d"
    }

    Legal né? Tá na documentação oficial do YARA já.

    Fiquei feliz com essa notícia por dois motivos:

    • Por ser de código aberto, outra pessoa fez o que eu queria ter tempo pra fazer: reimplementou o bagulho em C e subiu no YARA.
    • Vai ajudar muito a comunidade mundial na luta contra malware Linux.

    Indiretamente, essa é minha segunda contribuição para o YARA. A primeira foi quando adicionei nele a capacidade de ler os overlays de arquivos PE em 2016.

    Espero que a comunidade ache a função telfhash() útil e que ela ajude a caçar uns elfos. 🧝‍♂️

    Sem palavras para agradecer o trabalho do Karel! 🙂

     

    • Agradecer 2
    • Curtir 9

    Feedback do Usuário

    Comentários Recomendados

    Não há comentários para mostrar.



    Participe da conversa

    Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

    Visitante
    Adicionar um comentário...

    ×   Você colou conteúdo com formatação.   Remover formatação

      Apenas 75 emojis são permitidos.

    ×   Seu link foi automaticamente incorporado.   Mostrar como link

    ×   Seu conteúdo anterior foi restaurado.   Limpar o editor

    ×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.


×
×
  • Criar Novo...