SCRIPTIOC-BENCH: benchmark mostra que LLMs ainda erram bastante ao extrair IOCs de malware em script
Um novo benchmark, o SCRIPTIOC-BENCH, reúne 634 amostras reais e verificadas manualmente de malware em JavaScript, PowerShell e VBScript para medir a capacidade de LLMs de extrair estaticamente indicadores de comprometimento — URLs, domínios, IPs e artefatos de sistema de arquivos — sem executar o código. O modelo mais forte avaliado atingiu apenas 65,4 de F1, o que mostra que a extração automatizada de IOCs continua não confiável quando os indicadores estão ofuscados ou exigem decodificação, mesmo usando os modelos mais capazes disponíveis.
O problema que o benchmark ataca é familiar para quem trabalha com resposta a incidentes: malware em script (JavaScript, PowerShell, VBScript) é um vetor recorrente em campanhas de phishing e malspam, e cada amostra carrega indicadores de comprometimento — URLs de C2, domínios, IPs, caminhos de arquivo — que alimentam bloqueios e correlação de threat intelligence. O problema é que esses valores raramente aparecem em texto puro; frequentemente estão dispersos, concatenados dinamicamente ou codificados em base64, hex ou outras transformações, exigindo reconstrução antes de serem úteis.
Os autores organizaram 634 amostras verificadas manualmente e as estratificaram por nível de dificuldade de recuperação: indicadores diretamente expostos versus aqueles que exigem decodificação ou reconstrução lógica dentro do próprio script. Uma bateria de LLMs proprietários e de peso aberto foi então testada em modo puramente estático — sem sandbox, sem execução —, medindo F1 contra o gabarito humano. O resultado de 65,4 F1 no melhor modelo significa que, mesmo no cenário mais favorável, uma fração substancial dos indicadores é perdida ou inventada; os autores complementam isso com uma taxonomia de falsos positivos que caracteriza os padrões de erro entre modelos, e testam paliativos — utilitários determinísticos de manipulação de string e ajuste fino específico para a tarefa — que melhoram precisão, mas não eliminam o problema.
Para quem faz triagem de malware em um SOC ou laboratório forense, a lição prática é dupla. De um lado, LLMs já ajudam a acelerar uma primeira passada sobre grandes volumes de scripts suspeitos, sinalizando candidatos a IOC mais rápido do que revisão manual pura. De outro, um F1 de 65,4 é baixo demais para alimentar bloqueios automáticos sem revisão humana — gerar uma blocklist direto da saída do modelo arriscaria tanto falsos positivos (bloqueio de domínios legítimos) quanto falsos negativos (indicadores reais não capturados, sobretudo os ofuscados, que é exatamente o caso mais comum em PowerShell malicioso).
O caminho que o próprio artigo aponta — combinar LLMs com utilitários determinísticos de string e fine-tuning direcionado — reflete o que já é prática em pipelines de DFIR maduros: regras estáticas (regex, YARA) e detonação em sandbox continuam insubstituíveis para os casos ofuscados, e a IA generativa funciona melhor como acelerador de triagem do que como substituto da decodificação determinística. O benchmark em si é um recurso útil para quem for avaliar ou comparar ferramentas de extração de IOC antes de incorporá-las a um fluxo de resposta a incidentes.