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/15260/head
Philippe Antoine 3 months ago committed by Victor Julien
parent b80d5f7517
commit e40775d68a

@ -120,12 +120,12 @@ void DetectHttpCookieRegister(void)
GetResponseData, ALPROTO_HTTP1, HTP_REQUEST_PROGRESS_HEADERS);
DetectAppLayerInspectEngineRegister("http_cookie", ALPROTO_HTTP2, SIG_FLAG_TOSERVER,
HTTP2StateDataClient, DetectEngineInspectBufferGeneric, GetRequestData2);
HTTP2StateOpen, DetectEngineInspectBufferGeneric, GetRequestData2);
DetectAppLayerInspectEngineRegister("http_cookie", ALPROTO_HTTP2, SIG_FLAG_TOCLIENT,
HTTP2StateDataServer, DetectEngineInspectBufferGeneric, GetResponseData2);
DetectAppLayerMpmRegister("http_cookie", SIG_FLAG_TOSERVER, 2, PrefilterGenericMpmRegister,
GetRequestData2, ALPROTO_HTTP2, HTTP2StateDataClient);
GetRequestData2, ALPROTO_HTTP2, HTTP2StateOpen);
DetectAppLayerMpmRegister("http_cookie", SIG_FLAG_TOCLIENT, 2, PrefilterGenericMpmRegister,
GetResponseData2, ALPROTO_HTTP2, HTTP2StateDataServer);

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

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

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

@ -117,10 +117,10 @@ void DetectHttpHHRegister(void)
GetData, ALPROTO_HTTP1, HTP_REQUEST_PROGRESS_HEADERS);
DetectAppLayerInspectEngineRegister("http_host", ALPROTO_HTTP2, SIG_FLAG_TOSERVER,
HTTP2StateDataClient, DetectEngineInspectBufferGeneric, GetData2);
HTTP2StateOpen, DetectEngineInspectBufferGeneric, GetData2);
DetectAppLayerMpmRegister("http_host", SIG_FLAG_TOSERVER, 2, PrefilterGenericMpmRegister,
GetData2, ALPROTO_HTTP2, HTTP2StateDataClient);
GetData2, ALPROTO_HTTP2, HTTP2StateOpen);
DetectBufferTypeRegisterValidateCallback("http_host",
DetectHttpHostValidateCallback);
@ -157,10 +157,10 @@ void DetectHttpHHRegister(void)
GetRawData, ALPROTO_HTTP1, HTP_REQUEST_PROGRESS_HEADERS);
DetectAppLayerInspectEngineRegister("http_raw_host", ALPROTO_HTTP2, SIG_FLAG_TOSERVER,
HTTP2StateDataClient, DetectEngineInspectBufferGeneric, GetRawData2);
HTTP2StateOpen, DetectEngineInspectBufferGeneric, GetRawData2);
DetectAppLayerMpmRegister("http_raw_host", SIG_FLAG_TOSERVER, 2, PrefilterGenericMpmRegister,
GetRawData2, ALPROTO_HTTP2, HTTP2StateDataClient);
GetRawData2, ALPROTO_HTTP2, HTTP2StateOpen);
DetectBufferTypeSetDescriptionByName("http_raw_host",
"http raw host header");

@ -107,10 +107,10 @@ void DetectHttpMethodRegister(void)
GetData, ALPROTO_HTTP1, HTP_REQUEST_PROGRESS_LINE);
DetectAppLayerInspectEngineRegister("http_method", ALPROTO_HTTP2, SIG_FLAG_TOSERVER,
HTTP2StateDataClient, DetectEngineInspectBufferGeneric, GetData2);
HTTP2StateOpen, DetectEngineInspectBufferGeneric, GetData2);
DetectAppLayerMpmRegister("http_method", SIG_FLAG_TOSERVER, 4, PrefilterGenericMpmRegister,
GetData2, ALPROTO_HTTP2, HTTP2StateDataClient);
GetData2, ALPROTO_HTTP2, HTTP2StateOpen);
DetectBufferTypeSetDescriptionByName("http_method",
"http request method");

@ -173,9 +173,9 @@ void DetectHttpProtocolRegister(void)
HTP_RESPONSE_PROGRESS_LINE, DetectEngineInspectBufferGeneric, GetData);
DetectAppLayerInspectEngineRegister(BUFFER_NAME, ALPROTO_HTTP2, SIG_FLAG_TOSERVER,
HTTP2StateDataClient, DetectEngineInspectBufferGeneric, GetData2);
HTTP2StateOpen, DetectEngineInspectBufferGeneric, GetData2);
DetectAppLayerMpmRegister(BUFFER_NAME, SIG_FLAG_TOSERVER, 2, PrefilterGenericMpmRegister,
GetData2, ALPROTO_HTTP2, HTTP2StateDataClient);
GetData2, ALPROTO_HTTP2, HTTP2StateOpen);
DetectAppLayerInspectEngineRegister(BUFFER_NAME, ALPROTO_HTTP2, SIG_FLAG_TOCLIENT,
HTTP2StateDataServer, DetectEngineInspectBufferGeneric, GetData2);
DetectAppLayerMpmRegister(BUFFER_NAME, SIG_FLAG_TOCLIENT, 2, PrefilterGenericMpmRegister,

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

@ -117,9 +117,9 @@ void DetectHttpRequestLineRegister(void)
PrefilterGenericMpmRegister, GetData, ALPROTO_HTTP1, HTP_REQUEST_PROGRESS_LINE);
DetectAppLayerInspectEngineRegister("http_request_line", ALPROTO_HTTP2, SIG_FLAG_TOSERVER,
HTTP2StateDataClient, DetectEngineInspectBufferGeneric, GetData2);
HTTP2StateOpen, DetectEngineInspectBufferGeneric, GetData2);
DetectAppLayerMpmRegister("http_request_line", SIG_FLAG_TOSERVER, 2,
PrefilterGenericMpmRegister, GetData2, ALPROTO_HTTP2, HTTP2StateDataClient);
PrefilterGenericMpmRegister, GetData2, ALPROTO_HTTP2, HTTP2StateOpen);
DetectBufferTypeSetDescriptionByName("http_request_line",
"http request line");

@ -108,10 +108,10 @@ void DetectHttpUARegister(void)
GetData, ALPROTO_HTTP1, HTP_REQUEST_PROGRESS_HEADERS);
DetectAppLayerInspectEngineRegister("http_user_agent", ALPROTO_HTTP2, SIG_FLAG_TOSERVER,
HTTP2StateDataClient, DetectEngineInspectBufferGeneric, GetData2);
HTTP2StateOpen, DetectEngineInspectBufferGeneric, GetData2);
DetectAppLayerMpmRegister("http_user_agent", SIG_FLAG_TOSERVER, 2, PrefilterGenericMpmRegister,
GetData2, ALPROTO_HTTP2, HTTP2StateDataClient);
GetData2, ALPROTO_HTTP2, HTTP2StateOpen);
DetectBufferTypeSetDescriptionByName("http_user_agent",
"http user agent");

@ -112,10 +112,10 @@ void DetectHttpUriRegister (void)
GetData, ALPROTO_HTTP1, HTP_REQUEST_PROGRESS_LINE);
DetectAppLayerInspectEngineRegister("http_uri", ALPROTO_HTTP2, SIG_FLAG_TOSERVER,
HTTP2StateDataClient, DetectEngineInspectBufferGeneric, GetData2);
HTTP2StateOpen, DetectEngineInspectBufferGeneric, GetData2);
DetectAppLayerMpmRegister("http_uri", SIG_FLAG_TOSERVER, 2, PrefilterGenericMpmRegister,
GetData2, ALPROTO_HTTP2, HTTP2StateDataClient);
GetData2, ALPROTO_HTTP2, HTTP2StateOpen);
DetectBufferTypeSetDescriptionByName("http_uri",
"http request uri");
@ -150,10 +150,10 @@ void DetectHttpUriRegister (void)
// no difference between raw and decoded uri for HTTP2
DetectAppLayerInspectEngineRegister("http_raw_uri", ALPROTO_HTTP2, SIG_FLAG_TOSERVER,
HTTP2StateDataClient, DetectEngineInspectBufferGeneric, GetData2);
HTTP2StateOpen, DetectEngineInspectBufferGeneric, GetData2);
DetectAppLayerMpmRegister("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