
Código de benchmark e resultados interativos para detecção autônoma de ataques de rede por agentes LLM que utilizam ferramentas para investigar PCAPs brutos.
Um agente LLM que utiliza ferramentas pode investigar de forma independente uma captura de rede bruta e identificar um ataque?
Quais consultas de análise de pacotes ele escolherá, e consegue permanecer eficaz quando o mesmo tráfego está cercado por muito mais atividade de fundo?
Este projeto avalia se um LLM que utiliza ferramentas consegue identificar um ataque diretamente a partir de uma captura de pacotes bruta e como sua investigação muda sob um tráfego de fundo benigno mais intenso. Cada investigação começa com um caminho de PCAP e descrições genéricas de 11 ataques possíveis. O modelo não recebe nenhuma característica de pacote pré-computada nem resumo de tráfego.
flowchart TB
low["Low background<br/>11 attack captures + 11 benign captures"] --> matrix
high["Generated high background<br/>11 attack captures + 11 benign captures"] --> matrix
prompts["6 prompt variants<br/>generic labels and observable descriptions"] --> matrix
configurations["18 model/reasoning configurations"] --> matrix
matrix["44 PCAPs × 6 prompts × 18 configurations<br/>4,752 completed investigations"]
matrix -->|"PCAP path; no precomputed features"| agent["Tool-using OpenCode agent"]
agent -->|"selects a query"| tools["Packet-analysis and shell tools"]
tools -->|"returns observations"| agent
agent --> decision["One capture-level decision"]
agent --> trace["Complete investigation trajectory"]
decision --> results["Scoring and aggregate results"]
trace --> dashboard["Session dashboard"]
| Recurso | Conteúdo |
|---|---|
| Dataset e página de artefatos no Hugging Face | Versão canônica com os 44 PCAPs, todas as 4.752 trajetórias de investigação, variantes de prompt, configurações de modelo, resultados agregados, informações de licenciamento e metadados de citação |
| Portal de resultados interativo | Tabelas de resultados, sete figuras do estudo, comparações entre modelos e o dashboard completo de sessões |
Este repositório contém a implementação licenciada sob MIT e o fluxo de reprodução. O manuscrito que o acompanha, de autoria de Matthieu Aureille e Jan Fesl, foi submetido para revisão por pares; um link público será adicionado quando disponível.
| Condição de tráfego | Composição da captura |
|---|---|
| Baixo background | Tráfego do cenário e atividade ociosa normal do testbed, sem tráfego de background gerado |
| Alto background gerado | O mesmo tipo de cenário combinado com uma quantidade substancialmente maior de tráfego benigno gerado automaticamente |
Cada condição contém 11 capturas de ataque e 11 capturas benignas. Cada captura tem uma única saída esperada fixa.
A tabela fornece uma interpretação voltada ao leitor dos rótulos genéricos do benchmark. Os nomes reais dos ataques, nomes de varredura e nomes de ferramentas não foram mostrados ao LLM. Os prompts usaram apenas Attack 1 a Attack 11 e descreveram
características observáveis do tráfego.
Nos arquivos de prompt gerados, “anonymized attacks” significa que os nomes dos ataques foram substituídos por rótulos genéricos; os dados dos pacotes em si não foram anonimizados.
| Rótulo do benchmark | Classe subjacente indicativa (não mostrada ao LLM) |
|---|---|
| Attack 1 | Flood TCP ACK usando fragmentação IP |
| Attack 2 | ARP spoofing |
| Attack 3 | Flood DNS |
| Attack 4 | Varredura FIN |
| Attack 5 | Flood de fragmentação ICMP |
| Attack 6 | Varredura NULL |
| Attack 7 | Varredura de portas TCP SYN (nmap -sS) |
| Attack 8 | Slowloris |
| Attack 9 | Flood de fragmentação UDP |
| Attack 10 | Varredura UDP |
| Attack 11 | Varredura Xmas |
| Objetivo | Comece aqui |
|---|---|
| Reproduzir o benchmark | RUNBOOK.md |
| Entender a implementação | scripts/README.md |
| Inspecionar a configuração do benchmark e as variantes de prompt | config/ e prompts/ |
| Revisar metadados de modelo, software, testbed e parser | reproducibility/ e vllm_parsers/ |
| Explorar figuras e dashboards gerados | docs/ |
flowchart LR
entry["scripts/*.py<br/>command-line entry points"] --> benchmark["benchmark/<br/>execute · schedule · resume"]
entry --> reporting["reporting/<br/>score · aggregate · publish"]
entry --> orchestration["orchestration/<br/>optional remote model lifecycle"]
sources["config/ · prompts/ · PCAP workspaces"] --> benchmark
orchestration --> benchmark
benchmark --> artifacts["Retained run artifacts"]
artifacts --> reporting
reporting --> outputs["CSVs · figures · dashboards"]
Utilitários compartilhados de caminho, workspace, OpenCode, renderização e resultados ficam diretamente
sob scripts/agentic_pcap/. O mapa completo dos módulos internos está documentado
em scripts/README.md.
A implementação em Python usa apenas a biblioteca padrão. Investigações ao vivo
também exigem OpenCode, TShark, tcpdump, ferramentas Unix comuns, os workspaces
de PCAP e um provedor de modelo configurado.
[!WARNING] O agente executa comandos de shell sem restrições. Execute-o apenas em um contêiner isolado ou máquina virtual descartável.
Siga o guia de execução em máquina limpa para configuração em Debian/Ubuntu,
configuração de vLLM específica para o hardware, execução, recuperação e geração
de dashboard. Os comandos de lançamento históricos documentam o ambiente do estudo;
config/benchmark_orchestrator.local.json é o modelo para uma nova máquina.
Nenhuma amostragem ou substituição de seed foi aplicada. Os metadados exatos de execução são mantidos
em reproducibility/, e sessões e
dashboards pré-construídos estão disponíveis na versão canônica do Hugging Face.
Se você usar este benchmark, cite o dataset do Hugging Face e faça referência a este repositório de código no GitHub.
Citação sugerida do dataset
M. Aureille and J. Fesl, “Agentic LLMs for Network Attack Detection,” version 1.0.0, Hugging Face dataset, 2026. [Online]. Available: https://huggingface.co/datasets/maureille/agentic-pcap
BibTeX
@misc{aureille2026agentic,
author = {Matthieu Aureille and Jan Fesl},
title = {Agentic LLMs for Network Attack Detection},
year = {2026},
howpublished = {Hugging Face dataset},
note = {Version 1.0.0},
url = {https://huggingface.co/datasets/maureille/agentic-pcap}
}
Metadados de citação de software legíveis por máquina para este repositório estão disponíveis
em CITATION.cff.
Este projeto utiliza licenças separadas para os seus componentes de software e de dados: