SEMA-GUARD usa grafos semânticos e redes neurais para achar vulnerabilidades direto no código assembly
O SEMA-GUARD é um framework que combina análise semântica com redes neurais de grafos para detectar vulnerabilidades em código compilado quando o código-fonte não está disponível — cenário típico de análise de malware, firmware e sistemas embarcados. Ao enriquecer o grafo de fluxo de controle com detalhes de baixo nível (manipulação de pilha, acessos de memória, fluxo de dados), o método atingiu 85,1% de acurácia e F1 de 0,801 em um benchmark derivado do Juliet Test Suite traduzido para assembly.
O artigo parte de um problema comum na perícia de malware, firmware e sistemas embarcados: muitas vezes não há acesso ao código-fonte, apenas ao binário ou ao assembly, e as ferramentas de detecção de vulnerabilidade existentes costumam depender de padrões sintáticos ou de representações de alto nível que se degradam quando o compilador muda ou simplesmente não têm equivalente direto em nível de assembly. O SEMA-GUARD propõe atacar a detecção de vulnerabilidades diretamente no código de máquina, sem depender dessas premissas.
A abordagem técnica combina análise semântica com redes neurais de grafos (GNN): em vez de alimentar o modelo apenas com a estrutura do grafo de fluxo de controle (CFG), os autores enriquecem cada nó com informações de execução em nível mais baixo — manipulações de pilha, acessos de memória e fluxo de dados — permitindo que o modelo capture comportamento do programa que uma representação puramente estrutural deixaria passar. Para avaliação, o time converteu o Juliet Test Suite (um benchmark de vulnerabilidades conhecidas, normalmente usado em código-fonte) para assembly e o segmentou em blocos no nível de função.
Para quem faz engenharia reversa em contexto pericial — analisando malware ou firmware apreendido sem acesso ao código-fonte original — esse tipo de ferramenta automatizada de triagem é relevante porque acelera a identificação de trechos de código binário potencialmente exploráveis, reduzindo o volume que precisa ser inspecionado manualmente por um analista. Os resultados reportados (85,1% de acurácia, F1 de 0,801) indicam que a informação semântica de baixo nível melhora a detecção frente a métodos puramente estruturais ou estatísticos, mas também deixam claro que quase 15% dos casos ainda são classificados incorretamente.
Um ponto de cautela para aplicação prática: o benchmark usado é derivado do Juliet Test Suite, um conjunto sintético e bem comportado, compilado de forma controlada pelos próprios pesquisadores. Malware real costuma vir ofuscado, empacotado ou compilado com otimizações agressivas, cenários bem mais adversos do que os testados aqui — portanto os números de acurácia não devem ser extrapolados diretamente para uma triagem forense de amostras reais sem validação adicional.