detect/http2: fix progress for headers

Ticket: 8451

Do not wait to see a data frame to run detection on http2 headers

(cherry picked from commit 40c8620184)
pull/15298/head
Philippe Antoine 7 months ago
parent e41d71ff84
commit 566717070d

@ -118,12 +118,12 @@ void DetectHttpCookieRegister(void)
GetResponseData, ALPROTO_HTTP1, HTP_REQUEST_HEADERS);
DetectAppLayerInspectEngineRegister2("http_cookie", ALPROTO_HTTP2, SIG_FLAG_TOSERVER,
HTTP2StateDataClient, DetectEngineInspectBufferGeneric, GetRequestData2);
HTTP2StateOpen, DetectEngineInspectBufferGeneric, GetRequestData2);
DetectAppLayerInspectEngineRegister2("http_cookie", ALPROTO_HTTP2, SIG_FLAG_TOCLIENT,
HTTP2StateDataServer, DetectEngineInspectBufferGeneric, GetResponseData2);
DetectAppLayerMpmRegister2("http_cookie", SIG_FLAG_TOSERVER, 2, PrefilterGenericMpmRegister,
GetRequestData2, ALPROTO_HTTP2, HTTP2StateDataClient);
GetRequestData2, ALPROTO_HTTP2, HTTP2StateOpen);
DetectAppLayerMpmRegister2("http_cookie", SIG_FLAG_TOCLIENT, 2, PrefilterGenericMpmRegister,
GetResponseData2, ALPROTO_HTTP2, HTTP2StateDataServer);

@ -236,12 +236,12 @@ void DetectHttpHeaderNamesRegister(void)
/* http2 */
DetectAppLayerMpmRegister2(BUFFER_NAME, SIG_FLAG_TOSERVER, 2, PrefilterGenericMpmRegister,
GetBuffer2ForTX, ALPROTO_HTTP2, HTTP2StateDataClient);
GetBuffer2ForTX, ALPROTO_HTTP2, HTTP2StateOpen);
DetectAppLayerMpmRegister2(BUFFER_NAME, SIG_FLAG_TOCLIENT, 2, PrefilterGenericMpmRegister,
GetBuffer2ForTX, ALPROTO_HTTP2, HTTP2StateDataServer);
DetectAppLayerInspectEngineRegister2(BUFFER_NAME, ALPROTO_HTTP2, SIG_FLAG_TOSERVER,
HTTP2StateDataClient, DetectEngineInspectBufferGeneric, GetBuffer2ForTX);
HTTP2StateOpen, DetectEngineInspectBufferGeneric, GetBuffer2ForTX);
DetectAppLayerInspectEngineRegister2(BUFFER_NAME, ALPROTO_HTTP2, SIG_FLAG_TOCLIENT,
HTTP2StateDataServer, DetectEngineInspectBufferGeneric, GetBuffer2ForTX);

@ -452,9 +452,9 @@ void DetectHttpHeaderRegister(void)
0); /* not used, registered twice: HEADERS/TRAILER */
DetectAppLayerInspectEngineRegister2("http_header", ALPROTO_HTTP2, SIG_FLAG_TOSERVER,
HTTP2StateDataClient, DetectEngineInspectBufferGeneric, GetBuffer2ForTX);
HTTP2StateOpen, DetectEngineInspectBufferGeneric, GetBuffer2ForTX);
DetectAppLayerMpmRegister2("http_header", SIG_FLAG_TOSERVER, 2, PrefilterGenericMpmRegister,
GetBuffer2ForTX, ALPROTO_HTTP2, HTTP2StateDataClient);
GetBuffer2ForTX, ALPROTO_HTTP2, HTTP2StateOpen);
DetectAppLayerInspectEngineRegister2("http_header", ALPROTO_HTTP2, SIG_FLAG_TOCLIENT,
HTTP2StateDataServer, DetectEngineInspectBufferGeneric, GetBuffer2ForTX);

@ -198,7 +198,7 @@ static void DetectHttpHeadersRegisterStub(void)
DetectAppLayerMpmRegister2(BUFFER_NAME, SIG_FLAG_TOSERVER, 2, PrefilterGenericMpmRegister,
GetRequestData, ALPROTO_HTTP1, HTP_REQUEST_HEADERS);
DetectAppLayerMpmRegister2(BUFFER_NAME, SIG_FLAG_TOSERVER, 2, PrefilterGenericMpmRegister,
GetRequestData2, ALPROTO_HTTP2, HTTP2StateDataClient);
GetRequestData2, ALPROTO_HTTP2, HTTP2StateOpen);
#endif
#ifdef KEYWORD_TOCLIENT
DetectAppLayerMpmRegister2(BUFFER_NAME, SIG_FLAG_TOCLIENT, 2, PrefilterGenericMpmRegister,
@ -210,7 +210,7 @@ static void DetectHttpHeadersRegisterStub(void)
DetectAppLayerInspectEngineRegister2(BUFFER_NAME, ALPROTO_HTTP1, SIG_FLAG_TOSERVER,
HTP_REQUEST_HEADERS, DetectEngineInspectBufferGeneric, GetRequestData);
DetectAppLayerInspectEngineRegister2(BUFFER_NAME, ALPROTO_HTTP2, SIG_FLAG_TOSERVER,
HTTP2StateDataClient, DetectEngineInspectBufferGeneric, GetRequestData2);
HTTP2StateOpen, DetectEngineInspectBufferGeneric, GetRequestData2);
#endif
#ifdef KEYWORD_TOCLIENT
DetectAppLayerInspectEngineRegister2(BUFFER_NAME, ALPROTO_HTTP1, SIG_FLAG_TOCLIENT,

@ -114,10 +114,10 @@ void DetectHttpHHRegister(void)
GetData, ALPROTO_HTTP1, HTP_REQUEST_HEADERS);
DetectAppLayerInspectEngineRegister2("http_host", ALPROTO_HTTP2, SIG_FLAG_TOSERVER,
HTTP2StateDataClient, DetectEngineInspectBufferGeneric, GetData2);
HTTP2StateOpen, DetectEngineInspectBufferGeneric, GetData2);
DetectAppLayerMpmRegister2("http_host", SIG_FLAG_TOSERVER, 2, PrefilterGenericMpmRegister,
GetData2, ALPROTO_HTTP2, HTTP2StateDataClient);
GetData2, ALPROTO_HTTP2, HTTP2StateOpen);
DetectBufferTypeRegisterValidateCallback("http_host",
DetectHttpHostValidateCallback);
@ -152,10 +152,10 @@ void DetectHttpHHRegister(void)
GetRawData, ALPROTO_HTTP1, HTP_REQUEST_HEADERS);
DetectAppLayerInspectEngineRegister2("http_raw_host", ALPROTO_HTTP2, SIG_FLAG_TOSERVER,
HTTP2StateDataClient, DetectEngineInspectBufferGeneric, GetRawData2);
HTTP2StateOpen, DetectEngineInspectBufferGeneric, GetRawData2);
DetectAppLayerMpmRegister2("http_raw_host", SIG_FLAG_TOSERVER, 2, PrefilterGenericMpmRegister,
GetRawData2, ALPROTO_HTTP2, HTTP2StateDataClient);
GetRawData2, ALPROTO_HTTP2, HTTP2StateOpen);
DetectBufferTypeSetDescriptionByName("http_raw_host",
"http raw host header");

@ -104,10 +104,10 @@ void DetectHttpMethodRegister(void)
GetData, ALPROTO_HTTP1, HTP_REQUEST_LINE);
DetectAppLayerInspectEngineRegister2("http_method", ALPROTO_HTTP2, SIG_FLAG_TOSERVER,
HTTP2StateDataClient, DetectEngineInspectBufferGeneric, GetData2);
HTTP2StateOpen, DetectEngineInspectBufferGeneric, GetData2);
DetectAppLayerMpmRegister2("http_method", SIG_FLAG_TOSERVER, 4, PrefilterGenericMpmRegister,
GetData2, ALPROTO_HTTP2, HTTP2StateDataClient);
GetData2, ALPROTO_HTTP2, HTTP2StateOpen);
DetectBufferTypeSetDescriptionByName("http_method",
"http request method");

@ -150,9 +150,9 @@ void DetectHttpProtocolRegister(void)
HTP_RESPONSE_LINE, DetectEngineInspectBufferGeneric, GetData);
DetectAppLayerInspectEngineRegister2(BUFFER_NAME, ALPROTO_HTTP2, SIG_FLAG_TOSERVER,
HTTP2StateDataClient, DetectEngineInspectBufferGeneric, GetData2);
HTTP2StateOpen, DetectEngineInspectBufferGeneric, GetData2);
DetectAppLayerMpmRegister2(BUFFER_NAME, SIG_FLAG_TOSERVER, 2, PrefilterGenericMpmRegister,
GetData2, ALPROTO_HTTP2, HTTP2StateDataClient);
GetData2, ALPROTO_HTTP2, HTTP2StateOpen);
DetectAppLayerInspectEngineRegister2(BUFFER_NAME, ALPROTO_HTTP2, SIG_FLAG_TOCLIENT,
HTTP2StateDataServer, DetectEngineInspectBufferGeneric, GetData2);
DetectAppLayerMpmRegister2(BUFFER_NAME, SIG_FLAG_TOCLIENT, 2, PrefilterGenericMpmRegister,

@ -110,12 +110,12 @@ void DetectHttpRawHeaderRegister(void)
0); /* progress handled in register */
DetectAppLayerInspectEngineRegister2("http_raw_header", ALPROTO_HTTP2, SIG_FLAG_TOSERVER,
HTTP2StateDataClient, DetectEngineInspectBufferGeneric, GetData2);
HTTP2StateOpen, DetectEngineInspectBufferGeneric, GetData2);
DetectAppLayerInspectEngineRegister2("http_raw_header", ALPROTO_HTTP2, SIG_FLAG_TOCLIENT,
HTTP2StateDataServer, DetectEngineInspectBufferGeneric, GetData2);
DetectAppLayerMpmRegister2("http_raw_header", SIG_FLAG_TOSERVER, 2, PrefilterGenericMpmRegister,
GetData2, ALPROTO_HTTP2, HTTP2StateDataClient);
GetData2, ALPROTO_HTTP2, HTTP2StateOpen);
DetectAppLayerMpmRegister2("http_raw_header", SIG_FLAG_TOCLIENT, 2, PrefilterGenericMpmRegister,
GetData2, ALPROTO_HTTP2, HTTP2StateDataServer);

@ -116,9 +116,9 @@ void DetectHttpRequestLineRegister(void)
PrefilterGenericMpmRegister, GetData, ALPROTO_HTTP1, HTP_REQUEST_LINE);
DetectAppLayerInspectEngineRegister2("http_request_line", ALPROTO_HTTP2, SIG_FLAG_TOSERVER,
HTTP2StateDataClient, DetectEngineInspectBufferGeneric, GetData2);
HTTP2StateOpen, DetectEngineInspectBufferGeneric, GetData2);
DetectAppLayerMpmRegister2("http_request_line", SIG_FLAG_TOSERVER, 2,
PrefilterGenericMpmRegister, GetData2, ALPROTO_HTTP2, HTTP2StateDataClient);
PrefilterGenericMpmRegister, GetData2, ALPROTO_HTTP2, HTTP2StateOpen);
DetectBufferTypeSetDescriptionByName("http_request_line",
"http request line");

@ -106,10 +106,10 @@ void DetectHttpUARegister(void)
GetData, ALPROTO_HTTP1, HTP_REQUEST_HEADERS);
DetectAppLayerInspectEngineRegister2("http_user_agent", ALPROTO_HTTP2, SIG_FLAG_TOSERVER,
HTTP2StateDataClient, DetectEngineInspectBufferGeneric, GetData2);
HTTP2StateOpen, DetectEngineInspectBufferGeneric, GetData2);
DetectAppLayerMpmRegister2("http_user_agent", SIG_FLAG_TOSERVER, 2, PrefilterGenericMpmRegister,
GetData2, ALPROTO_HTTP2, HTTP2StateDataClient);
GetData2, ALPROTO_HTTP2, HTTP2StateOpen);
DetectBufferTypeSetDescriptionByName("http_user_agent",
"http user agent");

@ -114,10 +114,10 @@ void DetectHttpUriRegister (void)
GetData, ALPROTO_HTTP1, HTP_REQUEST_LINE);
DetectAppLayerInspectEngineRegister2("http_uri", ALPROTO_HTTP2, SIG_FLAG_TOSERVER,
HTTP2StateDataClient, DetectEngineInspectBufferGeneric, GetData2);
HTTP2StateOpen, DetectEngineInspectBufferGeneric, GetData2);
DetectAppLayerMpmRegister2("http_uri", SIG_FLAG_TOSERVER, 2, PrefilterGenericMpmRegister,
GetData2, ALPROTO_HTTP2, HTTP2StateDataClient);
GetData2, ALPROTO_HTTP2, HTTP2StateOpen);
DetectBufferTypeSetDescriptionByName("http_uri",
"http request uri");
@ -153,10 +153,10 @@ void DetectHttpUriRegister (void)
// no difference between raw and decoded uri for HTTP2
DetectAppLayerInspectEngineRegister2("http_raw_uri", ALPROTO_HTTP2, SIG_FLAG_TOSERVER,
HTTP2StateDataClient, DetectEngineInspectBufferGeneric, GetData2);
HTTP2StateOpen, DetectEngineInspectBufferGeneric, GetData2);
DetectAppLayerMpmRegister2("http_raw_uri", SIG_FLAG_TOSERVER, 2, PrefilterGenericMpmRegister,
GetData2, ALPROTO_HTTP2, HTTP2StateDataClient);
GetData2, ALPROTO_HTTP2, HTTP2StateOpen);
DetectBufferTypeSetDescriptionByName("http_raw_uri",
"raw http uri");

Loading…
Cancel
Save