
Google의 QUIC 프로토콜을 감지하는 Bro 분석기
이 분석기는 다음에 설명된 와이어 형식을 사용하여 Google 구현체인 QUIC(줄여서 GQUIC라고 함)을 파싱하고 탐지할 수 있습니다:
https://www.chromium.org/quic.
이 분석기를 작성할 당시 Chrome에서 사용된 GQUIC 버전은 Q039였으며 일부 Google 서버(및 아마도 Chrome 카나리 빌드)는 Q043도 사용할 수 있었습니다. 이 분석기는 테스트 중 두 버전을 모두 탐지할 수 있었습니다.
당시(2018년 5월 4~5일) GQUIC 문서에 설명된 와이어 형식은 실제 사용 중인 구현과도 동기화되지 않은 것으로 보였습니다.
또한 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 프로토콜처럼 보이는지 탐지하고 conn.log의 "service" 필드에 "guic" 문자열을 추가한 후 파싱을 중지합니다.
분석기가 제공하는 다른 이벤트를 처리하는 사용자 정의 스크립트를 작성하려면 프로토콜이 확인된 이후에도 분석기가 연결을 계속 파싱하도록 하고 싶을 것입니다::
redef GQUIC::skip_after_confirm = F;
제공되는 이벤트는 패킷 유형(일반 패킷 vs. 버전 협상 vs. 공개 리셋)에 대한 대략적인 정보와 공개 헤더의 내용(패킷 번호, QUIC 버전, 연결 ID, 다양화 논스 등)을 제공할 수 있습니다.
도구: 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
Mike Dopheide의 이전 QUIC 분석기 작업: https://github.com/dopheide-esnet/bro-quic