From 895e4c08bb169a35bfa9d7a639c7a68a396e9d52 Mon Sep 17 00:00:00 2001 From: liuxueli Date: Wed, 10 Nov 2021 19:39:17 +0300 Subject: [PATCH] =?UTF-8?q?TSG-8364:=20=E6=94=AF=E6=8C=81=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E6=96=87=E4=BB=B6=E9=85=8D=E7=BD=AE=E6=9C=80=E5=A4=9A?= =?UTF-8?q?=E8=A7=A3=E6=9E=90N=E6=95=B0=E6=8D=AE=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/quic_entry.cpp | 22 ++---- src/quic_entry.h | 1 + src/quic_process.cpp | 70 ++++++++++++++---- src/quic_process.h | 5 +- test/CMakeLists.txt | 1 + test/pcap/gquic/44/quic_result.json | 4 + ...-10.83.31.23.37645-142.250.180.42.443.pcap | Bin 0 -> 10262 bytes .../1-no-parse-sni-draft-29.37645.pcap | Bin 0 -> 10262 bytes ...-192.168.1.6.61269-142.250.180.42.443.pcap | Bin 0 -> 2173 bytes .../special/2-no-parse-sni-rfc9000.61269.pcap | Bin 0 -> 2173 bytes ...10.129.24.130.52558-213.55.110.12.443.pcap | Bin 0 -> 75539 bytes ...7.156.101.97.12388-142.250.185.46.443.pcap | Bin 0 -> 15656 bytes test/pcap/special/quic_result.json | 26 +++++++ 13 files changed, 96 insertions(+), 33 deletions(-) create mode 100644 test/pcap/special/1-no-parse-sni-draft-29-10.83.31.23.37645-142.250.180.42.443.pcap create mode 100644 test/pcap/special/1-no-parse-sni-draft-29.37645.pcap create mode 100644 test/pcap/special/2-no-parse-sni-rfc9000-192.168.1.6.61269-142.250.180.42.443.pcap create mode 100644 test/pcap/special/2-no-parse-sni-rfc9000.61269.pcap create mode 100644 test/pcap/special/3-no-parse-sni-gquic-43-10.129.24.130.52558-213.55.110.12.443.pcap create mode 100644 test/pcap/special/4-no-sni-rfc9000-197.156.101.97.12388-142.250.185.46.443.pcap create mode 100644 test/pcap/special/quic_result.json diff --git a/src/quic_entry.cpp b/src/quic_entry.cpp index 5881c2a..4e9f6b1 100644 --- a/src/quic_entry.cpp +++ b/src/quic_entry.cpp @@ -172,22 +172,11 @@ extern "C" unsigned char QUIC_ENTRY(struct streaminfo *pstream, void**pme, int t quic_init_context(pme, thread_seq); context=(struct quic_context *)*pme; } - - switch(pstream->opstate) - { - case OP_STATE_PENDING: - state=quic_analyze_entry(pstream, context, thread_seq, a_packet); - break; - case OP_STATE_DATA: - state=quic_call_business_plug(pstream, context, (char *)pstream->pudpdetail->pdata, pstream->pudpdetail->datalen, QUIC_APPLICATION_DATA_MASK, a_packet); - break; - case OP_STATE_CLOSE: - if(pstream->pudpdetail->pdata!=NULL && pstream->pudpdetail->datalen>0) - { - state=quic_call_business_plug(pstream, context, (char *)pstream->pudpdetail->pdata, pstream->pudpdetail->datalen, QUIC_APPLICATION_DATA_MASK, a_packet); - } - state=quic_call_business_plug(pstream, context, NULL, 0, QUIC_INTEREST_KEY_MASK, a_packet); - break; + + state=quic_analyze_entry(pstream, context, thread_seq, a_packet); + if(pstream->opstate==OP_STATE_CLOSE) + { + state=quic_call_business_plug(pstream, context, NULL, 0, QUIC_INTEREST_KEY_MASK, a_packet); } if(state&APP_STATE_DROPME || state&APP_STATE_DROPPKT || pstream->opstate==OP_STATE_CLOSE) @@ -214,6 +203,7 @@ extern "C" int QUIC_INIT(void) MESA_load_profile_string_def(g_quic_proto_conffile, "QUIC", "LOG_PATH", g_quic_param.log_path, sizeof(g_quic_param.log_path), "./log/quic/quic"); MESA_load_profile_int_def(g_quic_proto_conffile, "QUIC", "DECRYPTED_SWITCH", &g_quic_param.decrypted_switch, 2); + MESA_load_profile_int_def(g_quic_proto_conffile, "QUIC", "MAX_PARSE_PKT_NUM", &g_quic_param.max_parse_pkt_num, 3); MESA_load_profile_string_def(g_quic_proto_conffile, "QUIC", "QUIC_PORT_LIST", buff, sizeof(buff), "443;8443;"); g_quic_param.quic_port_num=parse_quic_port(buff, g_quic_param.quic_port_list, SUPPORT_QUIC_PORT_NUM); diff --git a/src/quic_entry.h b/src/quic_entry.h index 96bd3ae..90e080c 100644 --- a/src/quic_entry.h +++ b/src/quic_entry.h @@ -28,6 +28,7 @@ struct quic_param int level; int quic_port_num; int decrypted_switch; + int max_parse_pkt_num; unsigned short quic_port_list[SUPPORT_QUIC_PORT_NUM]; char quic_conf_regionname[MAX_REGION_NUM][REGION_NAME_LEN]; char log_path[128]; diff --git a/src/quic_process.cpp b/src/quic_process.cpp index 97793ae..3284ab2 100644 --- a/src/quic_process.cpp +++ b/src/quic_process.cpp @@ -18,9 +18,14 @@ #include "quic_process.h" #include "quic_deprotection.h" -#define PARSE_RESULT_UNKNOWN 0 -#define PARSE_RESULT_VERSION 1 -#define PARSE_RESULT_CLIENT_HELLO 2 +enum PARSE_RESULT +{ + PARSE_RESULT_UNKNOWN, + PARSE_RESULT_VERSION, + PARSE_RESULT_CLIENT_HELLO, + PARSE_RESULT_PAYLOAD, + PARSE_RESULT_MAX +}; #ifndef PRINTADDR #define PRINTADDR(a, b) ((b)addr), a->threadnum) : "") @@ -748,7 +753,7 @@ enum QUIC_VERSION is_quic_protocol(const char *payload, int payload_len, int *pa return quic_version; } -int parse_quic_all_version(struct quic_info *quic_info, const char *payload, int payload_len, int thread_seq) +unsigned char parse_quic_all_version(struct quic_info *quic_info, const char *payload, int payload_len, int thread_seq) { int ret=0, payload_offset=0; unsigned char decrypt_payload[2048]={0}; @@ -803,24 +808,59 @@ int parse_quic_all_version(struct quic_info *quic_info, const char *payload, int unsigned char quic_analyze_entry(struct streaminfo *pstream, struct quic_context* context, int thread_seq, void* a_packet) { - int ret=PARSE_RESULT_UNKNOWN; + unsigned char parse_result=PARSE_RESULT_UNKNOWN; + char state=APP_STATE_GIVEME; + if(pstream==NULL || pstream->pudpdetail==NULL) { return APP_STATE_DROPME; } + struct udpdetail *udp_detail=pstream->pudpdetail; - ret=parse_quic_all_version(&(context->quic_info), (const char *)udp_detail->pdata, udp_detail->datalen, thread_seq); - switch(ret) + + switch(context->pre_parse_state) { - case PARSE_RESULT_VERSION: - return quic_call_business_plug(pstream, context, (void *)&(context->quic_info.quic_version), sizeof(unsigned int), QUIC_USEING_VERSION_MASK, a_packet); - case PARSE_RESULT_CLIENT_HELLO: - return quic_call_business_plug(pstream, context, (void *)&(context->quic_info), sizeof(void *), QUIC_CLIENT_HELLO_MASK, a_packet); + case PARSE_RESULT_CLIENT_HELLO: + parse_result=PARSE_RESULT_PAYLOAD; + break; + case PARSE_RESULT_VERSION: + parse_result=parse_quic_all_version(&(context->quic_info), (const char *)udp_detail->pdata, udp_detail->datalen, thread_seq); + if(parse_result==PARSE_RESULT_VERSION || parse_result==PARSE_RESULT_UNKNOWN) + { + parse_result=PARSE_RESULT_PAYLOAD; + } + break; + case PARSE_RESULT_PAYLOAD: + case PARSE_RESULT_UNKNOWN: default: + if((context->parse_pkt_cnt++)>=g_quic_param.max_parse_pkt_num) + { + parse_result=PARSE_RESULT_PAYLOAD; + break; + } + parse_result=parse_quic_all_version(&(context->quic_info), (const char *)udp_detail->pdata, udp_detail->datalen, thread_seq); + break; + } + + switch(parse_result) + { + case PARSE_RESULT_VERSION: + context->pre_parse_state=PARSE_RESULT_VERSION; + state=quic_call_business_plug(pstream, context, (void *)&(context->quic_info.quic_version), sizeof(unsigned int), QUIC_USEING_VERSION_MASK, a_packet); + break; + case PARSE_RESULT_CLIENT_HELLO: + context->pre_parse_state=PARSE_RESULT_CLIENT_HELLO; + state=quic_call_business_plug(pstream, context, (void *)&(context->quic_info), sizeof(void *), QUIC_CLIENT_HELLO_MASK, a_packet); + break; + case PARSE_RESULT_PAYLOAD: + state=quic_call_business_plug(pstream, context, udp_detail->pdata, udp_detail->datalen, QUIC_APPLICATION_DATA_MASK, a_packet); + break; + default: + return APP_STATE_DROPME; break; } - return APP_STATE_DROPME; + return state; } static int copy_client_hello_extension(char *src, char *dest, int d_len) @@ -839,7 +879,7 @@ static int copy_client_hello_extension(char *src, char *dest, int d_len) unsigned int quic_protocol_identify(struct streaminfo *a_stream, void *a_packet, char *out_sni, int *out_sni_len, char *out_ua, int *out_ua_len) { - int ret=APP_STATE_GIVEME; + unsigned char parse_result=APP_STATE_GIVEME; struct quic_info quic_info={0, NULL}; unsigned int quic_version=QUIC_VERSION_UNKNOWN; @@ -848,8 +888,8 @@ unsigned int quic_protocol_identify(struct streaminfo *a_stream, void *a_packet, return quic_version; } - ret=parse_quic_all_version(&quic_info, (const char *)a_stream->pudpdetail->pdata, a_stream->pudpdetail->datalen, a_stream->threadnum); - if(ret!=PARSE_RESULT_UNKNOWN) + parse_result=parse_quic_all_version(&quic_info, (const char *)a_stream->pudpdetail->pdata, a_stream->pudpdetail->datalen, a_stream->threadnum); + if(parse_result!=PARSE_RESULT_UNKNOWN) { if(quic_info.client_hello!=NULL) { diff --git a/src/quic_process.h b/src/quic_process.h index 6a77769..b3cf8a1 100644 --- a/src/quic_process.h +++ b/src/quic_process.h @@ -282,12 +282,13 @@ enum QUIC_VERSION struct quic_context { unsigned char link_state; - unsigned char padding[7]; + unsigned char parse_pkt_cnt; + unsigned char pre_parse_state; + unsigned char padding[5]; void *business_pme; struct quic_info quic_info; }; -int parse_quic_all_version(struct quic_info* quic_info, const char *payload, int payload_len, int thread_seq); unsigned char quic_analyze_entry(struct streaminfo *pstream, struct quic_context* context, int thread_seq, void* a_packet); unsigned char quic_call_business_plug(struct streaminfo *pstream, struct quic_context *context, void *buff, int buff_len, enum quic_interested_region region_mask, void *a_packet); diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 2422299..a264398 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -58,3 +58,4 @@ add_test(NAME QUIC_RFC9000 COMMAND proto_test_main ${CMAKE_CURRENT_SOURCE_DIR}/p add_test(NAME QUIC_RFC9000_FRAGMENT COMMAND proto_test_main ${CMAKE_CURRENT_SOURCE_DIR}/pcap/rfc9000-fragment/${lib_name}_result.json -f "find ${CMAKE_CURRENT_SOURCE_DIR}/pcap/rfc9000-fragment/ -name *.pcap|sort -V" WORKING_DIRECTORY ${PROTO_TEST_RUN_DIR}) add_test(NAME QUIC_RFC9000_SPECIAL COMMAND proto_test_main ${CMAKE_CURRENT_SOURCE_DIR}/pcap/rfc9000-special/${lib_name}_result.json -f "find ${CMAKE_CURRENT_SOURCE_DIR}/pcap/rfc9000-special/ -name *.pcap|sort -V" WORKING_DIRECTORY ${PROTO_TEST_RUN_DIR}) add_test(NAME QUIC_AIRPORT COMMAND proto_test_main ${CMAKE_CURRENT_SOURCE_DIR}/pcap/airport/${lib_name}_result.json -f "find ${CMAKE_CURRENT_SOURCE_DIR}/pcap/airport -name *.pcap|sort -V" WORKING_DIRECTORY ${PROTO_TEST_RUN_DIR}) +add_test(NAME QUIC_SPECIAL COMMAND proto_test_main ${CMAKE_CURRENT_SOURCE_DIR}/pcap/special/${lib_name}_result.json -f "find ${CMAKE_CURRENT_SOURCE_DIR}/pcap/special/ -name *.pcap|sort -V" WORKING_DIRECTORY ${PROTO_TEST_RUN_DIR}) diff --git a/test/pcap/gquic/44/quic_result.json b/test/pcap/gquic/44/quic_result.json index 1f08140..c5db421 100644 --- a/test/pcap/gquic/44/quic_result.json +++ b/test/pcap/gquic/44/quic_result.json @@ -57,6 +57,8 @@ }, { "Tuple4": "85.117.117.190.11567>64.233.165.94.443", "VERSION": "Google QUIC 44", + "SNI": "www.google.kz", + "UA": "dev Chrome/73.0.3664.3 Windows NT 6.3; Win64; x64", "name": "QUIC_RESULT_10" }, { "Tuple4": "85.117.117.190.48098>173.194.221.95.443", @@ -67,6 +69,8 @@ }, { "Tuple4": "85.117.119.57.4009>64.233.162.155.443", "VERSION": "Google QUIC 44", + "SNI": "stats.g.doubleclick.net", + "UA": "dev Chrome/73.0.3664.3 Windows NT 6.1; Win64; x64", "name": "QUIC_RESULT_12" }, { "Tuple4": "85.117.126.11.11719>64.233.165.138.443", diff --git a/test/pcap/special/1-no-parse-sni-draft-29-10.83.31.23.37645-142.250.180.42.443.pcap b/test/pcap/special/1-no-parse-sni-draft-29-10.83.31.23.37645-142.250.180.42.443.pcap new file mode 100644 index 0000000000000000000000000000000000000000..ad40e1de396fbdb9db0a07ab30a83584493a0a91 GIT binary patch literal 10262 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 literal 0 HcmV?d00001 diff --git a/test/pcap/special/1-no-parse-sni-draft-29.37645.pcap b/test/pcap/special/1-no-parse-sni-draft-29.37645.pcap new file mode 100644 index 0000000000000000000000000000000000000000..ad40e1de396fbdb9db0a07ab30a83584493a0a91 GIT binary patch literal 10262 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 literal 0 HcmV?d00001 diff --git a/test/pcap/special/2-no-parse-sni-rfc9000-192.168.1.6.61269-142.250.180.42.443.pcap b/test/pcap/special/2-no-parse-sni-rfc9000-192.168.1.6.61269-142.250.180.42.443.pcap new file mode 100644 index 0000000000000000000000000000000000000000..ad965e87f2b99c8671ce8900cd1acc1cedfb6ef2 GIT binary patch literal 2173 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≤ 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 literal 0 HcmV?d00001 diff --git a/test/pcap/special/quic_result.json b/test/pcap/special/quic_result.json new file mode 100644 index 0000000..213bbeb --- /dev/null +++ b/test/pcap/special/quic_result.json @@ -0,0 +1,26 @@ +[{ + "Tuple4": "10.83.31.23.37645>142.250.180.42.443", + "VERSION": "IETF QUIC 29", + "SNI": "play.googleapis.com", + "UA": "com.google.android.gms Cronet/92.0.4515.131", + "VERSION": "IETF QUIC 29", + "name": "QUIC_RESULT_1" + }, { + "Tuple4": "192.168.1.6.61269>142.250.180.42.443", + "VERSION": "IETF QUIC RFC9000", + "SNI": "content-autofill.googleapis.com", + "UA": "Chrome/94.0.4606.81 Windows NT 10.0; Win64; x64", + "VERSION": "IETF QUIC RFC9000", + "name": "QUIC_RESULT_2" + }, { + "Tuple4": "10.129.24.130.52558>213.55.110.12.443", + "VERSION": "Google QUIC 43", + "SNI": "r1---sn-xuj-5qqz.googlevideo.com", + "UA": "com.google.android.youtube Cronet/80.0.3970.3", + "VERSION": "Google QUIC 43", + "name": "QUIC_RESULT_3" +}, { + "Tuple4": "197.156.101.97.12388>142.250.185.46.443", + "VERSION": "IETF QUIC RFC9000", + "name": "QUIC_RESULT_4" +}]