6 pontos por GN⁺ 2024-02-17 | 1 comentários | Compartilhar no WhatsApp
  • O Google lançou como open source o Magika, um sistema de identificação de tipos de arquivo baseado em IA
  • O Magika usa um modelo de deep learning personalizado e otimizado para identificar arquivos com precisão em poucos milissegundos, até mesmo em CPU
  • É possível testar a demo web do Magika, e instalá-lo como biblioteca Python e ferramenta autônoma de linha de comando com o comando pip install magika

Por que a identificação de tipos de arquivo é difícil

  • Desde os primórdios da computação, detectar com precisão o tipo de um arquivo é importante para decidir como ele deve ser processado.
  • O Linux conta com libmagic e o utilitário file, que há mais de 50 anos são usados como padrão de fato para identificação de tipos de arquivo.
  • A detecção de tipos de arquivo é essencial para que diversos softwares, como navegadores web e editores de código, renderizem corretamente os arquivos.
  • Como cada formato de arquivo tem uma estrutura diferente — ou nenhuma estrutura —, a detecção precisa do tipo de arquivo é um problema notoriamente difícil.
  • O libmagic e a maioria dos softwares de identificação de tipos de arquivo dependem de heurísticas e regras criadas manualmente para detectar cada formato.
  • Essa abordagem manual consome tempo e está sujeita a erros.

Desempenho do Magika

  • Graças ao modelo de IA e a um grande conjunto de dados de treinamento, o Magika apresentou desempenho cerca de 20% melhor do que as ferramentas existentes em um benchmark com 1 milhão de arquivos abrangendo mais de 100 tipos de arquivo.
  • Em especial, mostrou ganhos ainda maiores em tipos de arquivo com os quais outras ferramentas têm dificuldade, como arquivos de texto, arquivos de código e arquivos de configuração.

Uso do Magika dentro do Google

  • O Magika é usado internamente no Google para encaminhar arquivos do Gmail, Drive e Safe Browsing aos scanners apropriados de segurança e de políticas de conteúdo, aumentando a segurança dos usuários.
  • Considerando uma média semanal de dezenas de bilhões de arquivos, o Magika melhorou em 50% a precisão na identificação de tipos de arquivo em comparação com o sistema anterior, que dependia de regras manuais.
  • O Magika também deverá complementar o recurso Code Insight existente por meio da integração com o VirusTotal e contribuir para o ecossistema global de cibersegurança, ajudando a criar um ambiente digital mais seguro.

Open source do Magika

  • Ao tornar o Magika open source, a ideia é ajudar outros softwares a melhorar a precisão na identificação de arquivos e oferecer aos pesquisadores uma forma confiável de identificar tipos de arquivo em grande escala.
  • O código e os modelos do Magika estão disponíveis gratuitamente no Github sob a licença Apache2, e podem ser instalados facilmente pelo gerenciador de pacotes pypi.
  • Para mais detalhes sobre como usar o Magika, consulte o site de documentação do Magika.

Opinião do GN⁺

  • A liberação do Magika como open source deve ajudar bastante a melhorar a precisão da identificação de tipos de arquivo.
  • Especialmente na área de segurança, a identificação correta de arquivos é muito importante, e o Magika pode se tornar uma ferramenta poderosa para isso.
  • Espera-se que a capacidade técnica do Google e sua contribuição para a comunidade open source tenham um papel importante no fortalecimento do ecossistema global de cibersegurança.

1 comentários

 
GN⁺ 2024-02-17

Opiniões do Hacker News

  • Testaram a nova ferramenta de detecção de tipo de arquivo em dados de web crawling.

    • Houve casos em que arquivos HTML simples foram detectados incorretamente.
    • Alguns arquivos WOFF e WOFF2 também foram detectados incorretamente.
    • Avaliaram que ainda não é uma implementação confiável para automação.
    • Também reclamaram que ela não remove escapes de cor do shell quando a saída é um pipe.
  • Compartilharam uma experiência de 10 anos atrás com detecção de tipo de arquivo de planilhas.

    • Propuseram um patch para detectar o tipo de arquivo usando "magic", mas ele foi rejeitado.
    • Atualmente, mencionam a detecção de tipo de arquivo usando deep learning.
    • Esperam que o Google publique benchmarks de desempenho.
  • Compartilharam os resultados de um teste de detecção com 100 arquivos.

    • A maioria foi detectada corretamente, mas alguns foram detectados incorretamente ou como tipos ambíguos.
    • Os erros ocorreram principalmente em tipos de arquivo que o Magika não suporta.
    • Em comparação com o utilitário file, mostrou precisão semelhante.
  • Reação positiva ao surgimento de uma nova ferramenta na área de detecção de tipo de arquivo.

    • Levantaram dúvidas sobre o motivo do lançamento do módulo Node.
    • A documentação menciona que ele é lento e que carrega o modelo em tempo de execução.
    • Também citaram a marcação experimental e o suporte limitado a tipos de arquivo.
  • Confusão sobre o fato de o Google ter investido recursos em uma ferramenta de detecção de tipo de arquivo baseada em rede neural, em vez de melhorar o libmagic.

    • Apontam que a rede neural é mais precisa, mas suporta menos tipos de arquivo e funciona pior em cenários adversariais.
  • Curiosidade sobre como detectar arquivos polyglot válidos em vários formatos.

    • Em testes reais, foi mencionado que apenas a camada ZIP foi detectada.
  • Levantaram dúvidas sobre a precisão ou recall de outras ferramentas na detecção correta de arquivos APK ou JAR.

    • Pediram explicações sobre casos em que certos arquivos afetaram a precisão ou o recall.
  • Compartilharam experiência com a implementação de libmagic em Racket.

    • Mencionaram que o libmagic detecta mais tipos de arquivo, mas que o Magika pode ser útil para detectar arquivos de texto.
  • Argumento de que a detecção de tipo de arquivo é inerentemente determinística.

    • Os "magic bytes" deveriam ser consistentes, levantando dúvidas sobre a necessidade de heurísticas ou inferência probabilística.