
Analyseur Bro qui détecte le protocole QUIC de Google
Cet analyseur peut analyser et détecter l'implémentation Google de QUIC (appelée GQUIC ici par simplicité), en utilisant le format de transmission décrit à:
https://www.chromium.org/quic.
La version de GQUIC utilisée par Chrome au moment de la rédaction de cet analyseur était Q039, certains serveurs Google (et éventuellement les versions canary de Chrome) pouvant également utiliser Q043. Cet analyseur a pu détecter les deux versions lors des tests.
Le format de transmission décrit dans les documents GQUIC à cette époque (4-5 mai 2018) semblait également en décalage avec les implémentations réellement utilisées en production.
De plus, il semble y avoir un effort régulier pour migrer GQUIC vers le suivi du projet de norme IETF pour QUIC décrit à:
https://github.com/quicwg/base-drafts https://datatracker.ietf.org/wg/quic/documents/
Ce projet différant de manière significative des implémentations GQUIC contre lesquelles cet analyseur a été testé, et ayant également modifié récemment son format de transmission.
En résumé, cet analyseur GQUIC, s'il n'est pas mis à jour à l'avenir, ne devrait pas continuer à fonctionner avec les évolutions ultérieures du protocole QUIC.
Via zkg <https://docs.zeek.org/projects/package-manager/en/stable>_::
zkg install corelight/zeek-quic
Sinon, vous devrez le compiler et l'installer vous-même (en supposant que zeek-config
se trouve dans votre )::
PATH./configure
make
make install
Par défaut, cet analyseur détecte simplement si une connexion UDP ressemble au protocole QUIC, ajoute la chaîne "guic" au champ "service" de conn.log, puis arrête l'analyse.
Si vous souhaitez écrire un script personnalisé qui gère d'autres événements fournis par l'analyseur, vous voudrez peut-être que l'analyseur continue d'analyser la connexion même après la confirmation du protocole::
redef GQUIC::skip_after_confirm = F;
Les événements fournis peuvent donner des informations approximatives sur le type de paquet (Regular Packet vs. Version Negotiation vs Public Reset) ainsi que sur le contenu de l'en-tête public (comme Packet Number, QUIC Version, Connection ID ou Diversification Nonce).
Implémentations: https://github.com/quicwg/base-drafts/wiki/Implementations
Travail antérieur sur l'analyseur QUIC par Mike Dopheide: https://github.com/dopheide-esnet/bro-quic