
محلل برو الذي يكتشف بروتوكول QUIC لجوجل
يمكن لهذا المحلل تحليل واكتشاف تنفيذ Google لبروتوكول QUIC (يُسمى GQUIC هنا للتبسيط)، باستخدام تنسيق الإرسال الموضح في:
https://www.chromium.org/quic.
كان إصدار GQUIC الذي يستخدمه Chrome وقت كتابة هذا المحلل هو Q039، مع قدرة بعض خوادم Google (وربما إصدارات Chrome canary) أيضًا على استخدام Q043. كان هذا المحلل قادرًا على اكتشاف هذين الإصدارين أثناء الاختبار.
يبدو أيضًا أن تنسيق الإرسال الموضح في وثائق GQUIC في ذلك الوقت (4-5 مايو 2018) لم يكن متوافقًا مع التنفيذات الفعلية المستخدمة في الميدان.
بالإضافة إلى ذلك، يبدو أن هناك جهدًا مستمرًا لنقل GQUIC ليتوافق مع مسودة معيار IETF لبروتوكول QUIC الموضحة في:
https://github.com/quicwg/base-drafts https://datatracker.ietf.org/wg/quic/documents/
إلا أن هذه المسودة تختلف اختلافًا كبيرًا عن تنفيذات GQUIC التي تم اختبار هذا المحلل ضدها، كما أنها غيّرت تنسيق الإرسال الخاص بها مؤخرًا.
باختصار، لا يُتوقع لمحلل GQUIC هذا، إذا لم يتم تحديثه في المستقبل، أن يستمر في العمل مع التطورات اللاحقة لبروتوكول QUIC.
عبر zkg <https://docs.zeek.org/projects/package-manager/en/stable>_::
zkg install corelight/zeek-quic
وإلا، فسيتعين عليك بناءه وتثبيته بنفسك (بافتراض أن zeek-config موجود في PATH الخاص بك)::
./configure
make
make install
بشكل افتراضي، يكتشف هذا ببساطة ما إذا كان اتصال UDP يبدو كبروتوكول QUIC، ويضيف السلسلة "guic" إلى حقل "service" في conn.log ثم يتوقف عن التحليل.
إذا كنت تريد كتابة سكربت مخصص يتعامل مع أحداث أخرى يوفرها المحلل، فقد ترغب في جعل المحلل يواصل تحليل الاتصال حتى بعد تأكيد البروتوكول::
redef GQUIC::skip_after_confirm = F;
يمكن للأحداث المتوفرة أن تعطي معلومات تقريبية حول نوع الحزمة (حزمة عادية مقابل التفاوض على الإصدار مقابل إعادة التعيين العامة) بالإضافة إلى محتوى الترويسة العامة (مثل رقم الحزمة، إصدار QUIC، معرف الاتصال، أو Nonce التنويع).
الأدوات: https://github.com/quicwg/base-drafts/wiki/Tools
التنفيذات: https://github.com/quicwg/base-drafts/wiki/Implementations
Chromium: https://www.chromium.org/quic/playing-with-quic
عمل سابق على محلل QUIC بواسطة Mike Dopheide: https://github.com/dopheide-esnet/bro-quic