
Analisador Bro que detecta o protocolo QUIC do Google
Este analisador pode analisar e detectar a implementação do Google do QUIC (chamada GQUIC aqui por simplicidade), usando o formato de transmissão descrito em:
https://www.chromium.org/quic.
A versão do GQUIC usada pelo Chrome no momento em que este analisador foi escrito era a Q039, com alguns servidores do Google (e possivelmente versões Chrome Canary) também podendo usar Q043. Este analisador conseguiu detectar ambas essas versões durante os testes.
O formato de transmissão descrito nos documentos do GQUIC naquela época (4 a 5 de maio de 2018) também parecia estar dessincronizado com as implementações reais usadas em produção.
Além disso, parece haver um esforço contínuo para migrar o GQUIC para acompanhar o rascunho do padrão IETF para QUIC descrito em:
https://github.com/quicwg/base-drafts https://datatracker.ietf.org/wg/quic/documents/
Esse rascunho difere de maneiras significativas das implementações do GQUIC contra as quais este analisador foi testado e também mudou seu formato de transmissão recentemente.
Para resumir, este analisador GQUIC, se não for atualizado no futuro, não deverá continuar funcionando com as evoluções posteriores do protocolo QUIC.
Via zkg <https://docs.zeek.org/projects/package-manager/en/stable>_::
zkg install corelight/zeek-quic
Caso contrário, você terá que compilá-lo e instalá-lo você mesmo (supondo que zeek-config
esteja no seu )::
PATH./configure
make
make install
Por padrão, isto simplesmente detecta se uma conexão UDP parece ser o protocolo QUIC, adiciona a string "guic" ao campo "service" do conn.log e então interrompe o parsing.
Se você quiser escrever um script personalizado que trate outros eventos fornecidos pelo analisador, talvez queira que o analisador continue analisando a conexão mesmo depois que o protocolo for confirmado::
redef GQUIC::skip_after_confirm = F;
Os eventos fornecidos podem dar informações gerais sobre o tipo de pacote (Regular Packet vs. Version Negotiation vs. Public Reset), bem como o conteúdo do cabeçalho público (como Número do Pacote, Versão QUIC, ID de Conexão ou Nonce de Diversificação).
Ferramentas: https://github.com/quicwg/base-drafts/wiki/Tools
Implementações: https://github.com/quicwg/base-drafts/wiki/Implementations
Trabalho anterior de analisador QUIC por Mike Dopheide: https://github.com/dopheide-esnet/bro-quic