Jump to content
  • 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

    User Feedback

    Recommended Comments

    There are no comments to display.



    Join the conversation

    You can post now and register later. If you have an account, sign in now to post with your account.

    Guest
    Add a comment...

    ×   Pasted as rich text.   Paste as plain text instead

      Only 75 emoji are allowed.

    ×   Your link has been automatically embedded.   Display as a link instead

    ×   Your previous content has been restored.   Clear editor

    ×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...