
Analizador de Bro que detecta el protocolo QUIC de Google
Este analizador puede analizar y detectar la implementación de Google de QUIC (llamada GQUIC aquí por simplicidad), utilizando el formato de cable descrito en:
https://www.chromium.org/quic.
La versión de GQUIC utilizada por Chrome al momento de escribir este analizador era Q039 con algunos servidores de Google (y posiblemente compilaciones canary de Chrome) también siendo capaces de usar Q043. Este analizador fue capaz de detectar ambas versiones durante las pruebas.
El formato de cable descrito en los documentos de GQUIC en ese momento (4-5 de mayo de 2018) también parecía estar desincronizado con las implementaciones reales utilizadas en campo.
Además, parece haber un esfuerzo regular para migrar GQUIC para seguir el borrador del estándar IETF para QUIC descrito en:
https://github.com/quicwg/base-drafts https://datatracker.ietf.org/wg/quic/documents/
Con ese borrador difiriendo de manera significativa de las implementaciones de GQUIC contra las cuales este analizador fue probado y también habiendo cambiado su formato de cable recientemente.
Para resumir, este analizador de GQUIC, si no se actualiza en el futuro, no se espera que siga funcionando con evoluciones posteriores del protocolo QUIC.
Vía zkg <https://docs.zeek.org/projects/package-manager/en/stable>_::
zkg install corelight/zeek-quic
De lo contrario, tendrás que compilarlo e instalarlo tú mismo (asumiendo que zeek-config
está en tu )::
PATH./configure
make
make install
Por defecto, esto simplemente detecta si una conexión UDP parece ser el protocolo QUIC, añade la cadena "gquic" al campo "service" de conn.log y luego deja de analizar.
Si deseas escribir un script personalizado que maneje otros eventos proporcionados por el analizador, es posible que quieras que el analizador continúe analizando la conexión incluso después de que el protocolo haya sido confirmado::
redef GQUIC::skip_after_confirm = F;
Los eventos proporcionados pueden dar información aproximada sobre el tipo de paquete (Paquete Regular vs. Negociación de Versión vs. Restablecimiento Público), así como el contenido del Encabezado Público (como Número de Paquete, Versión de QUIC, ID de Conexión, o Nonce de Diversificación).
Herramientas: https://github.com/quicwg/base-drafts/wiki/Tools
Implementaciones: https://github.com/quicwg/base-drafts/wiki/Implementations
Trabajo previo del analizador QUIC por Mike Dopheide: https://github.com/dopheide-esnet/bro-quic