suricata
detect-engine-register.c
Go to the documentation of this file.
1 /* Copyright (C) 2007-2024 Open Information Security Foundation
2  *
3  * You can copy, redistribute or modify this Program under the terms of
4  * the GNU General Public License version 2 as published by the Free
5  * Software Foundation.
6  *
7  * This program is distributed in the hope that it will be useful,
8  * but WITHOUT ANY WARRANTY; without even the implied warranty of
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10  * GNU General Public License for more details.
11  *
12  * You should have received a copy of the GNU General Public License
13  * version 2 along with this program; if not, write to the Free Software
14  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
15  * 02110-1301, USA.
16  */
17 
18 /**
19  * \file
20  *
21  * \author Victor Julien <victor@inliniac.net>
22  */
23 
24 #include "suricata-common.h"
25 #include "suricata.h"
26 #include "detect.h"
27 #include "flow.h"
28 #include "flow-private.h"
29 #include "flow-bit.h"
30 
31 #include "detect-parse.h"
32 #include "detect-engine.h"
33 #include "detect-engine-profile.h"
34 
35 #include "detect-engine-alert.h"
36 #include "detect-engine-siggroup.h"
37 #include "detect-engine-address.h"
38 #include "detect-engine-proto.h"
39 #include "detect-engine-port.h"
40 #include "detect-engine-mpm.h"
41 #include "detect-engine-iponly.h"
44 
45 #include "rust.h"
46 
47 #include "detect-engine-payload.h"
48 #include "detect-dns-name.h"
49 #include "detect-dns-response.h"
50 #include "detect-tls-sni.h"
51 #include "detect-tls-certs.h"
53 #include "detect-tls-cert-issuer.h"
55 #include "detect-tls-cert-serial.h"
56 #include "detect-tls-alpn.h"
58 #include "detect-tls-random.h"
59 #include "detect-tls-ja3-hash.h"
60 #include "detect-tls-ja3-string.h"
61 #include "detect-tls-ja3s-hash.h"
62 #include "detect-tls-ja3s-string.h"
63 #include "detect-engine-state.h"
64 #include "detect-engine-analyzer.h"
65 
66 #include "detect-http-cookie.h"
67 #include "detect-http-method.h"
68 #include "detect-http-ua.h"
69 #include "detect-http-host.h"
70 
71 #include "detect-mark.h"
72 
73 #include "detect-engine-event.h"
74 #include "decode.h"
75 
76 #include "detect-config.h"
77 
78 #include "detect-smtp.h"
79 
80 #include "detect-base64-decode.h"
81 #include "detect-base64-data.h"
82 #include "detect-ipaddr.h"
83 #include "detect-ipopts.h"
84 #include "detect-tcp-flags.h"
85 #include "detect-fragbits.h"
86 #include "detect-fragoffset.h"
87 #include "detect-gid.h"
88 #include "detect-tcp-ack.h"
89 #include "detect-tcp-seq.h"
90 #include "detect-content.h"
91 #include "detect-uricontent.h"
92 #include "detect-pcre.h"
93 #include "detect-depth.h"
94 #include "detect-nocase.h"
95 #include "detect-rawbytes.h"
96 #include "detect-bytetest.h"
97 #include "detect-bytemath.h"
98 #include "detect-bytejump.h"
99 #include "detect-sameip.h"
100 #include "detect-l3proto.h"
101 #include "detect-ipproto.h"
102 #include "detect-within.h"
103 #include "detect-distance.h"
104 #include "detect-offset.h"
105 #include "detect-sid.h"
106 #include "detect-prefilter.h"
107 #include "detect-priority.h"
108 #include "detect-classtype.h"
109 #include "detect-reference.h"
110 #include "detect-tag.h"
111 #include "detect-threshold.h"
112 #include "detect-metadata.h"
113 #include "detect-msg.h"
114 #include "detect-rev.h"
115 #include "detect-flow.h"
116 #include "detect-flow-age.h"
117 #include "detect-flow-pkts.h"
118 #include "detect-flow-elephant.h"
119 #include "detect-requires.h"
120 #include "detect-tcp-window.h"
121 #include "detect-tcp-wscale.h"
122 #include "detect-tcp-session.h"
123 #include "detect-ftpbounce.h"
124 #include "detect-ftp-dynamic-port.h"
125 #include "detect-isdataat.h"
126 #include "detect-id.h"
127 #include "detect-rpc.h"
128 #include "detect-asn1.h"
129 #include "detect-filename.h"
130 #include "detect-filestore.h"
131 #include "detect-filemagic.h"
132 #include "detect-filemd5.h"
133 #include "detect-filesha1.h"
134 #include "detect-filesha256.h"
135 #include "detect-filesize.h"
136 #include "detect-dataset.h"
137 #include "detect-datarep.h"
138 #include "detect-dsize.h"
139 #include "detect-flowvar.h"
140 #include "detect-flowint.h"
141 #include "detect-pktvar.h"
142 #include "detect-noalert.h"
143 #include "detect-flowbits.h"
144 #include "detect-hostbits.h"
145 #include "detect-xbits.h"
146 #include "detect-csum.h"
147 #include "detect-stream_size.h"
148 #include "detect-engine-sigorder.h"
149 #include "detect-ttl.h"
150 #include "detect-fast-pattern.h"
151 #include "detect-itype.h"
152 #include "detect-icode.h"
153 #include "detect-icmp-id.h"
154 #include "detect-icmp-seq.h"
155 #include "detect-icmpv4hdr.h"
156 #include "detect-igmphdr.h"
157 #include "detect-igmp-type.h"
158 #include "detect-sctphdr.h"
159 #include "detect-sctp-chunk-type.h"
160 #include "detect-sctp-chunk-cnt.h"
161 #include "detect-sctp-vtag.h"
162 #include "detect-sctp-chunk-data.h"
163 #include "detect-urilen.h"
164 #include "detect-bsize.h"
165 #include "detect-detection-filter.h"
166 #include "detect-http-client-body.h"
167 #include "detect-http-server-body.h"
168 #include "detect-http-header.h"
170 #include "detect-http-headers.h"
171 #include "detect-http-raw-header.h"
172 #include "detect-http-uri.h"
173 #include "detect-http-protocol.h"
174 #include "detect-http-start.h"
175 #include "detect-http-stat-msg.h"
178 #include "detect-http2.h"
179 #include "detect-byte-extract.h"
180 #include "detect-file-data.h"
181 #include "detect-pkt-data.h"
182 #include "detect-replace.h"
183 #include "detect-tos.h"
184 #include "detect-app-layer-event.h"
185 #include "detect-app-layer-state.h"
186 #include "detect-lua.h"
187 #include "detect-iprep.h"
188 #include "detect-geoip.h"
190 #include "detect-template.h"
191 #include "detect-tcphdr.h"
192 #include "detect-tcpmss.h"
193 #include "detect-udphdr.h"
194 #include "detect-etherhdr.h"
195 #include "detect-icmpv6hdr.h"
196 #include "detect-icmpv6-mtu.h"
197 #include "detect-ipv4hdr.h"
198 #include "detect-ipv6hdr.h"
199 #include "detect-sip-method.h"
200 #include "detect-sip-uri.h"
201 #include "detect-target.h"
202 #include "detect-ja4-hash.h"
203 #include "detect-ftp-command.h"
204 #include "detect-entropy.h"
205 #include "detect-ftp-command-data.h"
207 #include "detect-ftp-reply.h"
208 #include "detect-ftp-mode.h"
210 
211 #include "detect-bypass.h"
212 #include "detect-ftpdata.h"
214 
217 
218 #include "util-rule-vars.h"
219 
220 #include "app-layer.h"
221 #include "app-layer-protos.h"
222 #include "app-layer-htp.h"
223 #include "app-layer-smtp.h"
224 #include "detect-frame.h"
225 #include "detect-tls.h"
227 #include "detect-tls-version.h"
228 #include "detect-http-stat-code.h"
229 #include "detect-ssl-version.h"
230 #include "detect-ssl-state.h"
231 #include "detect-dnp3.h"
232 #include "detect-vlan.h"
233 #include "detect-email.h"
234 
235 #include "action-globals.h"
236 #include "tm-threads.h"
237 
238 #include "pkt-var.h"
239 
240 #include "conf.h"
241 #include "conf-yaml-loader.h"
242 
243 #include "stream-tcp.h"
244 #include "stream-tcp-inline.h"
245 
246 #include "util-lua.h"
247 #include "util-var-name.h"
249 #include "util-threshold-config.h"
250 #include "util-print.h"
251 #include "util-unittest-helper.h"
252 #include "util-debug.h"
253 #include "util-hashlist.h"
254 #include "util-privs.h"
255 #include "util-profiling.h"
256 #include "util-validate.h"
257 #include "util-path.h"
258 #include "util-mpm-ac.h"
259 #include "runmodes.h"
260 
263 
264 static void PrintFeatureList(const SigTableElmt *e, char sep)
265 {
266  const uint32_t flags = e->flags;
267 
268  int prev = 0;
269  if (flags & SIGMATCH_NOOPT) {
270  printf("No option");
271  prev = 1;
272  }
274  if (prev == 1)
275  printf("%c", sep);
276  printf("compatible with IP only rule");
277  prev = 1;
278  }
280  if (prev == 1)
281  printf("%c", sep);
282  printf("compatible with decoder event only rule");
283  prev = 1;
284  }
286  if (prev == 1)
287  printf("%c", sep);
288  printf("content modifier");
289  prev = 1;
290  }
292  if (prev == 1)
293  printf("%c", sep);
294  printf("sticky buffer");
295  prev = 1;
296  }
298  if (prev == 1)
299  printf("%c", sep);
300  printf("supports firewall");
301  prev = 1;
302  }
304  if (prev == 1)
305  printf("%c", sep);
306  printf("multi buffer");
307  prev = 1;
308  }
311  if (prev == 1)
312  printf("%c", sep);
314  printf("multi ");
316  printf("enum ");
318  printf("bitflags ");
320  printf("uint8");
322  printf("uint16");
324  printf("uint32");
326  printf("uint64");
327  prev = 1;
328  } else {
331  }
333  if (prev == 1)
334  printf("%c", sep);
335  printf("not supported in firewall rules");
336  prev = 1;
337  }
339  if (prev == 1)
340  printf("%c", sep);
341  printf("not supported in firewall mode");
342  prev = 1;
343  }
345  if (prev == 1)
346  printf("%c", sep);
347  printf("not supported in threat detection rules in firewall mode");
348  prev = 1;
349  }
350  if (e->Transform) {
351  if (prev == 1)
352  printf("%c", sep);
353  printf("transform");
354  prev = 1;
355  }
356  if (e->SupportsPrefilter) {
357  if (prev == 1)
358  printf("%c", sep);
359  printf("prefilter");
360  prev = 1;
361  }
362  if (prev == 0) {
363  printf("none");
364  }
365 }
366 
367 static void SigMultilinePrint(size_t i, const char *prefix)
368 {
369  if (sigmatch_table[i].desc) {
370  printf("%sDescription: %s\n", prefix, sigmatch_table[i].desc);
371  }
372  printf("%sFeatures: ", prefix);
373  PrintFeatureList(&sigmatch_table[i], ',');
374  if (sigmatch_table[i].url) {
375  printf("\n%sDocumentation: %s%s", prefix, GetDocURL(), sigmatch_table[i].url);
376  }
377  if (sigmatch_table[i].alternative) {
378  printf("\n%sReplaced by: %s", prefix, sigmatch_table[sigmatch_table[i].alternative].name);
379  }
380  printf("\n");
381 }
382 
383 static void SigJsonPrint(void)
384 {
385  SCJsonBuilder *js = SCJbNewObject();
386  if (unlikely(js == NULL)) {
387  return;
388  }
389 
390  for (size_t i = 0; i < (size_t)DETECT_TBLSIZE; i++) {
391  if (sigmatch_table[i].name == NULL)
392  continue;
393  // do not show __flowvar__postmatch__ and such
394  if (sigmatch_table[i].name[0] == '_')
395  continue;
396 
397  SCJbOpenObject(js, sigmatch_table[i].name);
398  if (sigmatch_table[i].desc) {
399  SCJbSetString(js, "description", sigmatch_table[i].desc);
400  }
401  if (sigmatch_table[i].url) {
402  char urldoc[2048];
403  snprintf(urldoc, sizeof(urldoc), "%s%s", GetDocURL(), sigmatch_table[i].url);
404  SCJbSetString(js, "doc", urldoc);
405  }
406  if (sigmatch_table[i].alternative) {
407  SCJbSetString(js, "alternative", sigmatch_table[sigmatch_table[i].alternative].name);
408  }
409  if (sigmatch_table[i].alias) {
410  SCJbSetString(js, "alias", sigmatch_table[i].alias);
411  }
412  SCJbOpenArray(js, "features");
413 
414  const uint32_t flags = sigmatch_table[i].flags;
415  if (flags & SIGMATCH_NOOPT) {
416  SCJbAppendString(js, "No option");
417  }
419  SCJbAppendString(js, "compatible with IP only rule");
420  }
422  SCJbAppendString(js, "compatible with decoder event only rule");
423  }
425  SCJbAppendString(js, "content modifier");
426  }
428  SCJbAppendString(js, "sticky buffer");
429  }
431  SCJbAppendString(js, "supports firewall");
432  }
434  SCJbAppendString(js, "multi buffer");
435  }
439  SCJbAppendString(js, "multi uint");
441  SCJbAppendString(js, "enum uint");
443  SCJbAppendString(js, "bitflags");
445  SCJbAppendString(js, "uint8");
447  SCJbAppendString(js, "uint16");
449  SCJbAppendString(js, "uint32");
451  SCJbAppendString(js, "uint64");
452  }
454  SCJbAppendString(js, "not supported for firewall rules");
455  }
457  SCJbAppendString(js, "not supported for firewall mode");
458  }
459  if (sigmatch_table[i].Transform) {
460  SCJbAppendString(js, "transform");
461  }
462  if (sigmatch_table[i].SupportsPrefilter) {
463  SCJbAppendString(js, "prefilter");
464  }
465  SCJbClose(js);
466 
467  if (sigmatch_table[i].JsonAdditionalInfo) {
469  }
470  SCJbClose(js); // SCJbOpenObject keyword name
471  }
472 
473  SCJbClose(js);
474  fwrite(SCJbPtr(js), SCJbLen(js), 1, stdout);
475  SCJbFree(js);
476 }
477 
478 /** \brief Check if a keyword exists. */
479 bool SCSigTableHasKeyword(const char *keyword)
480 {
481  for (int i = 0; i < DETECT_TBLSIZE; i++) {
482  const char *name = sigmatch_table[i].name;
483 
484  if (name == NULL || strlen(name) == 0) {
485  continue;
486  }
487 
488  if (strcmp(keyword, name) == 0) {
489  return true;
490  }
491  }
492 
493  return false;
494 }
495 
496 int SigTableList(const char *keyword)
497 {
498  size_t size = DETECT_TBLSIZE;
499  size_t i;
500 
501  if (keyword == NULL) {
502  printf("=====Supported keywords=====\n");
503  for (i = 0; i < size; i++) {
504  const char *name = sigmatch_table[i].name;
505  if (name != NULL && strlen(name) > 0) {
506  if (name[0] == '_' || strcmp(name, "template") == 0)
507  continue;
508 
509  printf("- %s\n", name);
510  }
511  }
512  } else if (strcmp("csv", keyword) == 0) {
513  printf("name;description;app layer;features;documentation\n");
514  for (i = 0; i < size; i++) {
515  const char *name = sigmatch_table[i].name;
516  if (name != NULL && strlen(name) > 0) {
517  if (name[0] == '_' || strcmp(name, "template") == 0)
518  continue;
519 
520  printf("%s;", name);
521  if (sigmatch_table[i].desc) {
522  printf("%s", sigmatch_table[i].desc);
523  }
524  /* Build feature */
525  printf(";Unset;"); // this used to be alproto
526  PrintFeatureList(&sigmatch_table[i], ':');
527  printf(";");
528  if (sigmatch_table[i].url) {
529  printf("%s%s", GetDocURL(), sigmatch_table[i].url);
530  }
531  printf(";");
532  printf("\n");
533  }
534  }
535  } else if (strcmp("all", keyword) == 0) {
536  for (i = 0; i < size; i++) {
537  const char *name = sigmatch_table[i].name;
538  if (name != NULL && strlen(name) > 0) {
539  if (name[0] == '_' || strcmp(name, "template") == 0)
540  continue;
541  printf("%s:\n", sigmatch_table[i].name);
542  SigMultilinePrint(i, "\t");
543  }
544  }
545  } else if (strcmp("json", keyword) == 0) {
546  SigJsonPrint();
547  return TM_ECODE_DONE;
548  } else {
549  for (i = 0; i < size; i++) {
550  if ((sigmatch_table[i].name != NULL) &&
551  strcmp(sigmatch_table[i].name, keyword) == 0) {
552  printf("= %s =\n", sigmatch_table[i].name);
553  SigMultilinePrint(i, "");
554  return TM_ECODE_DONE;
555  }
556  }
557  printf("Non existing keyword\n");
558  return TM_ECODE_FAILED;
559  }
560  return TM_ECODE_DONE;
561 }
562 
563 static void DetectFileHandlerRegister(void)
564 {
565  for (int i = 0; i < DETECT_TBLSIZE_STATIC; i++) {
566  if (filehandler_table[i].name)
568  }
569 }
570 
571 static void SigCleanCString(SigTableElmt *base)
572 {
573  SCSigTableNamesElmt kw;
574  // remove const for mut to release
575  kw.name = (char *)base->name;
576  kw.desc = (char *)base->desc;
577  kw.url = (char *)base->url;
578  SCDetectSigMatchNamesFree(&kw);
579 }
580 
582 {
583  sigmatch_table[id].Cleanup = SigCleanCString;
584 }
585 
586 void SigTableCleanup(void)
587 {
588  if (sigmatch_table != NULL) {
589  for (int i = 0; i < DETECT_TBLSIZE; i++) {
590  if ((sigmatch_table[i].Cleanup) == NULL) {
591  continue;
592  }
594  }
596  sigmatch_table = NULL;
597  DETECT_TBLSIZE = 0;
598  }
599 }
600 
601 #define ARRAY_CAP_STEP 16
602 static void (**PreregisteredCallbacks)(void) = NULL;
603 static size_t preregistered_callbacks_nb = 0;
604 static size_t preregistered_callbacks_cap = 0;
605 
606 // Plugins can preregister keywords with this function :
607 // When an app-layer plugin is loaded, it wants to register its keywords
608 // But the plugin is loaded before keywords can register
609 // The preregistration callbacks will later be called by SigTableSetup
610 int SCSigTablePreRegister(void (*KeywordsRegister)(void))
611 {
612  if (preregistered_callbacks_nb == preregistered_callbacks_cap) {
613  void *tmp = SCRealloc(PreregisteredCallbacks,
614  sizeof(void *) * (preregistered_callbacks_cap + ARRAY_CAP_STEP));
615  if (tmp == NULL) {
616  return 1;
617  }
618  preregistered_callbacks_cap += ARRAY_CAP_STEP;
619  PreregisteredCallbacks = tmp;
620  }
621  PreregisteredCallbacks[preregistered_callbacks_nb] = KeywordsRegister;
622  preregistered_callbacks_nb++;
623  return 0;
624 }
625 
626 void SigTableInit(void)
627 {
628  if (sigmatch_table == NULL) {
631  if (sigmatch_table == NULL) {
632  DETECT_TBLSIZE = 0;
633  FatalError("Could not allocate sigmatch_table");
634  }
635  }
636 }
637 
638 void SigTableSetup(void)
639 {
641 
656 
657  /* NOTE: the order of these currently affects inspect
658  * engine registration order and ultimately the order
659  * of inspect engines in the rule. Which in turn affects
660  * state keeping */
676 
684 
687 
691 
695 
706 
711 
714  /* end of order dependent regs */
715 
717 
824 
827 
828  DetectTransformCompressWhitespaceRegister();
829  DetectTransformStripWhitespaceRegister();
830  DetectTransformStripPseudoHeadersRegister();
831  DetectTransformMd5Register();
832  DetectTransformSha1Register();
833  DetectTransformSha256Register();
834  DetectTransformDotPrefixRegister();
836  DetectTransformUrlDecodeRegister();
837  DetectTransformXorRegister();
838  DetectTransformToLowerRegister();
839  DetectTransformToUpperRegister();
840  DetectTransformHeaderLowercaseRegister();
841  DetectTransformFromBase64DecodeRegister();
842  SCDetectTransformDomainRegister();
844  DetectTransformGunzipRegister();
845  DetectTransformZlibDeflateRegister();
846  DetectTransformSubsliceRegister();
847 
848  DetectFileHandlerRegister();
849 
852 
854 
856  SCDetectDHCPRegister();
857  SCDetectWebsocketRegister();
858  SCDetectEnipRegister();
859  SCDetectMqttRegister();
860  SCDetectRfbRegister();
861  SCDetectSipRegister();
862  SCDetectTemplateRegister();
863  SCDetectLdapRegister();
864  SCDetectSdpRegister();
865  SCDetectDNSRegister();
866  SCDetectPgsqlRegister();
867  SCDetectSshRegister();
868  SCDetectQuicRegister();
869  SCDetectSmbRegister();
870  SCDetectIkeRegister();
871  SCDetectDcerpcRegister();
872  SCDetectKrb5Register();
873  SCDetectNfsRegister();
874  SCDetectModbusRegister();
875 
876  for (size_t i = 0; i < preregistered_callbacks_nb; i++) {
877  PreregisteredCallbacks[i]();
878  }
879 
880  /* close keyword registration */
882 }
883 
884 #ifdef UNITTESTS
886 {
887  /* register the tests */
888  for (int i = 0; i < DETECT_TBLSIZE; i++) {
889  g_ut_modules++;
890  if (sigmatch_table[i].RegisterTests != NULL) {
892  g_ut_covered++;
893  } else {
894  SCLogDebug("detection plugin %s has no unittest "
895  "registration function.", sigmatch_table[i].name);
896 
897  if (coverage_unittests)
898  SCLogWarning("detection plugin %s has no unittest "
899  "registration function.",
900  sigmatch_table[i].name);
901  }
902  }
903 }
904 #endif
DETECT_TBLSIZE_STATIC
@ DETECT_TBLSIZE_STATIC
Definition: detect-engine-register.h:298
detect-tcp-flags.h
SCJsonBuilder
struct SCJsonBuilder SCJsonBuilder
Definition: detect-engine-helper.h:83
DetectFtpReplyReceivedRegister
void DetectFtpReplyReceivedRegister(void)
Registration function for ftp.reply_received: keyword.
Definition: detect-ftp-reply-received.c:121
DetectEmailRegister
void DetectEmailRegister(void)
Definition: detect-email.c:253
DetectFtpCommandDataRegister
void DetectFtpCommandDataRegister(void)
Definition: detect-ftp-command-data.c:89
DetectFragBitsRegister
void DetectFragBitsRegister(void)
Registration function for fragbits: keyword.
Definition: detect-fragbits.c:65
DetectHttpHHRegister
void DetectHttpHHRegister(void)
Registers the keyword handlers for the "http_host" keyword.
Definition: detect-http-host.c:91
DetectITypeRegister
void DetectITypeRegister(void)
Registration function for itype: keyword.
Definition: detect-itype.c:56
detect-icmpv4hdr.h
DetectAppLayerEventRegister
void DetectAppLayerEventRegister(void)
Registers the keyword handlers for the "app-layer-event" keyword.
Definition: detect-app-layer-event.c:71
detect-ftp-reply-received.h
tm-threads.h
DetectDsizeRegister
void DetectDsizeRegister(void)
Registration function for dsize: keyword.
Definition: detect-dsize.c:60
SigTableElmt_::url
const char * url
Definition: detect.h:1545
DetectFlowBytesRegister
void DetectFlowBytesRegister(void)
Definition: detect-flow-pkts.c:280
detect-vlan.h
detect-content.h
detect-target.h
DetectMsgRegister
void DetectMsgRegister(void)
Definition: detect-msg.c:41
DetectTlsJa3HashRegister
void DetectTlsJa3HashRegister(void)
Registration function for keyword: ja3_hash.
Definition: detect-tls-ja3-hash.c:78
DetectTemplateRegister
void DetectTemplateRegister(void)
Registration function for template: keyword.
Definition: detect-template.c:162
detect-engine.h
detect-app-layer-protocol.h
SIGMATCH_NOOPT
#define SIGMATCH_NOOPT
Definition: detect-engine-register.h:308
SIGMATCH_INFO_MULTI_UINT
#define SIGMATCH_INFO_MULTI_UINT
Definition: detect-engine-register.h:350
DetectGeoipRegister
void DetectGeoipRegister(void)
Registration function for geoip keyword (no libgeoip support)
Definition: detect-geoip.c:52
detect-email.h
detect-engine-proto.h
DetectFtpCommandRegister
void DetectFtpCommandRegister(void)
Definition: detect-ftp-command.c:77
DetectXbitsRegister
void DetectXbitsRegister(void)
Definition: detect-xbits.c:69
SigTableElmt_::desc
const char * desc
Definition: detect.h:1544
DetectTlsJa3SHashRegister
void DetectTlsJa3SHashRegister(void)
Registration function for keyword: ja3s.hash.
Definition: detect-tls-ja3s-hash.c:78
detect-dsize.h
DetectRevRegister
void DetectRevRegister(void)
Definition: detect-rev.c:40
detect-noalert.h
SCSigTableHasKeyword
bool SCSigTableHasKeyword(const char *keyword)
Check if a keyword exists.
Definition: detect-engine-register.c:479
sigmatch_table
SigTableElmt * sigmatch_table
Definition: detect-parse.c:78
detect-gid.h
DetectConfigRegister
void DetectConfigRegister(void)
Registers the "config" keyword for detection.
Definition: detect-config.c:73
stream-tcp-inline.h
detect-entropy.h
detect-priority.h
util-hashlist.h
DetectTcpmssRegister
void DetectTcpmssRegister(void)
Registration function for tcpmss: keyword.
Definition: detect-tcpmss.c:51
detect-filesha1.h
g_ut_modules
int g_ut_modules
Definition: suricata.c:995
detect-sid.h
DetectTlsSerialRegister
void DetectTlsSerialRegister(void)
Registration function for keyword: tls.cert_serial.
Definition: detect-tls-cert-serial.c:72
detect-engine-siggroup.h
DetectSidRegister
void DetectSidRegister(void)
Definition: detect-sid.c:40
SigTableElmt_::name
const char * name
Definition: detect.h:1542
stream-tcp.h
detect-engine-event.h
detect-tls-cert-validity.h
detect-mark.h
detect-pktvar.h
SIGMATCH_BAN_FIREWALL_RULE
#define SIGMATCH_BAN_FIREWALL_RULE
Definition: detect-engine-register.h:360
unlikely
#define unlikely(expr)
Definition: util-optimize.h:35
DetectTlsFingerprintRegister
void DetectTlsFingerprintRegister(void)
Registration function for keyword: tls.cert_fingerprint.
Definition: detect-tls-cert-fingerprint.c:69
DetectHttpServerBodyRegister
void DetectHttpServerBodyRegister(void)
Registers the keyword handlers for the "http_server_body" keyword.
Definition: detect-http-server-body.c:68
detect-tls-cert-fingerprint.h
DetectHttpHeadersRegister
void DetectHttpHeadersRegister(void)
Definition: detect-http-headers.c:29
SigTableElmt_::flags
uint32_t flags
Definition: detect.h:1533
DetectHttpStartRegister
void DetectHttpStartRegister(void)
Registers the keyword handlers for the "http_start" keyword.
Definition: detect-http-start.c:181
DetectDNP3Register
void DetectDNP3Register(void)
Definition: detect-dnp3.c:370
DetectHttpUriRegister
void DetectHttpUriRegister(void)
Registration function for keywords: http_uri and http.uri.
Definition: detect-http-uri.c:87
DetectGidRegister
void DetectGidRegister(void)
Registration function for gid: keyword.
Definition: detect-gid.c:48
SCLogDebug
#define SCLogDebug(...)
Definition: util-debug.h:282
DetectHttpRequestHeaderRegister
void DetectHttpRequestHeaderRegister(void)
Definition: detect-http-header.c:569
detect-isdataat.h
detect-ftp-reply.h
DetectIPProtoRegister
void DetectIPProtoRegister(void)
Registration function for ip_proto keyword.
Definition: detect-ipproto.c:59
detect-sctp-vtag.h
SigTableSetup
void SigTableSetup(void)
Definition: detect-engine-register.c:638
DetectFlowElephantRegister
void DetectFlowElephantRegister(void)
Definition: detect-flow-elephant.c:132
name
const char * name
Definition: detect-engine-proto.c:47
detect-classtype.h
detect-sctp-chunk-data.h
util-lua.h
DetectICMPv6hdrRegister
void DetectICMPv6hdrRegister(void)
Registration function for icmpv6.hdr: keyword.
Definition: detect-icmpv6hdr.c:52
DetectTlsJa3StringRegister
void DetectTlsJa3StringRegister(void)
Registration function for keyword: ja3.string.
Definition: detect-tls-ja3-string.c:79
TM_ECODE_DONE
@ TM_ECODE_DONE
Definition: tm-threads-common.h:83
detect-bsize.h
action-globals.h
DetectTlsRandomRegister
void DetectTlsRandomRegister(void)
Registration function for keyword: tls.random.
Definition: detect-tls-random.c:112
DetectFtpReplyRegister
void DetectFtpReplyRegister(void)
Definition: detect-ftp-reply.c:90
DetectPriorityRegister
void DetectPriorityRegister(void)
Registers the handler functions for the "priority" keyword.
Definition: detect-priority.c:48
DetectHttpRawHeaderRegister
void DetectHttpRawHeaderRegister(void)
Registers the keyword handlers for the "http_raw_header" keyword.
Definition: detect-http-raw-header.c:82
SIGMATCH_INFO_UINT8
#define SIGMATCH_INFO_UINT8
Definition: detect-engine-register.h:342
flow-private.h
DetectFilesizeRegister
void DetectFilesizeRegister(void)
Registration function for filesize: keyword.
Definition: detect-filesize.c:60
detect-ftp-completion-code.h
DetectHttpProtocolRegister
void DetectHttpProtocolRegister(void)
Registers the keyword handlers for the "http.protocol" keyword.
Definition: detect-http-protocol.c:156
DetectFragOffsetRegister
void DetectFragOffsetRegister(void)
Registration function for fragoffset.
Definition: detect-fragoffset.c:56
DetectRpcRegister
void DetectRpcRegister(void)
Registration function for rpc keyword.
Definition: detect-rpc.c:60
detect-tcp-session.h
tcp.session: keyword (Redmine #7704).
detect-tcpmss.h
SigTableInit
void SigTableInit(void)
Definition: detect-engine-register.c:626
DetectVlanLayersRegister
void DetectVlanLayersRegister(void)
Definition: detect-vlan.c:178
DetectSameipRegister
void DetectSameipRegister(void)
Registration function for sameip: keyword.
Definition: detect-sameip.c:49
detect-ftpbounce.h
detect-transform-luaxform.h
g_ut_covered
int g_ut_covered
Definition: suricata.c:996
detect-igmp-type.h
DetectIcmpv4HdrRegister
void DetectIcmpv4HdrRegister(void)
Registration function for icmpv4.hdr: keyword.
Definition: detect-icmpv4hdr.c:48
detect-tls-ja3-string.h
detect-filemd5.h
detect-tls-random.h
detect-tcp-seq.h
detect-http-header.h
detect-lua.h
detect-flowint.h
flow-bit.h
DetectTcphdrRegister
void DetectTcphdrRegister(void)
Registration function for tcp.hdr: keyword.
Definition: detect-tcphdr.c:51
util-var-name.h
detect-dnp3.h
rust.h
detect-http-client-body.h
DetectFlowBytesToClientRegister
void DetectFlowBytesToClientRegister(void)
Definition: detect-flow-pkts.c:302
detect-sctphdr.h
DetectDatarepRegister
void DetectDatarepRegister(void)
Definition: detect-datarep.c:53
DetectFlowBytesToServerRegister
void DetectFlowBytesToServerRegister(void)
Definition: detect-flow-pkts.c:290
detect-file-data.h
util-privs.h
DetectSCTPChunkTypeRegister
void DetectSCTPChunkTypeRegister(void)
Definition: detect-sctp-chunk-type.c:53
DetectHostbitsRegister
void DetectHostbitsRegister(void)
Definition: detect-hostbits.c:80
DetectRegisterAppLayerHookLists
void DetectRegisterAppLayerHookLists(void)
register app hooks as generic lists
Definition: detect-parse.c:1214
detect-flow-age.h
detect-sctp-chunk-type.h
DetectTlsValidityRegister
void DetectTlsValidityRegister(void)
Registration function for tls validity keywords.
Definition: detect-tls-cert-validity.c:79
DetectIpOptsRegister
void DetectIpOptsRegister(void)
Registration function for ipopts: keyword.
Definition: detect-ipopts.c:46
detect-dns-name.h
detect-icmpv6-mtu.h
detect-rev.h
DetectUricontentRegister
void DetectUricontentRegister(void)
Registration function for uricontent: keyword.
Definition: detect-uricontent.c:64
detect-tag.h
ARRAY_CAP_STEP
#define ARRAY_CAP_STEP
Definition: detect-engine-register.c:601
detect-ftpdata.h
detect-tls-sni.h
detect-engine-payload.h
DetectMetadataRegister
void DetectMetadataRegister(void)
Definition: detect-metadata.c:43
detect-l3proto.h
detect-flow-elephant.h
TM_ECODE_FAILED
@ TM_ECODE_FAILED
Definition: tm-threads-common.h:82
SigTableElmt_
element in sigmatch type table.
Definition: detect.h:1502
DetectFlowPktsRegister
void DetectFlowPktsRegister(void)
Definition: detect-flow-pkts.c:157
detect-pcre.h
DetectHttpHeaderNamesRegister
void DetectHttpHeaderNamesRegister(void)
Registers the keyword handlers for the "http.header_names" keyword.
Definition: detect-http-header-names.c:214
detect-depth.h
SCSigTablePreRegister
int SCSigTablePreRegister(void(*KeywordsRegister)(void))
Definition: detect-engine-register.c:610
detect-engine-prefilter.h
detect-icmpv6hdr.h
DetectFilemagicRegister
void DetectFilemagicRegister(void)
Registration function for keyword: filemagic.
Definition: detect-filemagic.c:73
DetectTlsSniRegister
void DetectTlsSniRegister(void)
Registration function for keyword: tls.sni.
Definition: detect-tls-sni.c:65
DetectTargetRegister
void DetectTargetRegister(void)
Registration function for target keyword.
Definition: detect-target.c:50
DetectBufferTypeCloseRegistration
void DetectBufferTypeCloseRegistration(void)
Definition: detect-engine.c:1841
detect-filename.h
util-unittest-helper.h
detect-stream_size.h
SIGMATCH_BAN_FIREWALL_MODE
#define SIGMATCH_BAN_FIREWALL_MODE
Definition: detect-engine-register.h:362
detect-http-ua.h
detect-asn1.h
detect-flowvar.h
detect-base64-data.h
SigTableRegisterTests
void SigTableRegisterTests(void)
Definition: detect-engine-register.c:885
detect-udphdr.h
detect-http-protocol.h
detect-reference.h
DetectHttpResponseHeaderRegister
void DetectHttpResponseHeaderRegister(void)
Definition: detect-http-header.c:606
detect-rpc.h
detect-ftp-dynamic-port.h
detect-sameip.h
DetectSeqRegister
void DetectSeqRegister(void)
Registration function for ack: keyword.
Definition: detect-tcp-seq.c:53
DetectAsn1Register
void DetectAsn1Register(void)
Registration function for asn1.
Definition: detect-asn1.c:47
DetectFlowAgeRegister
void DetectFlowAgeRegister(void)
Definition: detect-flow-age.c:89
DetectBsizeRegister
void DetectBsizeRegister(void)
Registration function for bsize: keyword.
Definition: detect-bsize.c:99
SIGMATCH_INFO_MULTI_BUFFER
#define SIGMATCH_INFO_MULTI_BUFFER
Definition: detect-engine-register.h:340
app-layer-htp.h
detect-xbits.h
DetectFlowPktsToClientRegister
void DetectFlowPktsToClientRegister(void)
Definition: detect-flow-pkts.c:183
detect-app-layer-event.h
DetectBytejumpRegister
void DetectBytejumpRegister(void)
Definition: detect-bytejump.c:74
decode.h
DetectICMPv6mtuRegister
void DetectICMPv6mtuRegister(void)
Registration function for icmpv6.mtu: keyword.
Definition: detect-icmpv6-mtu.c:48
util-debug.h
detect-transform-pcrexform.h
SigTableCleanup
void SigTableCleanup(void)
Definition: detect-engine-register.c:586
detect-http-header-names.h
SIGMATCH_INFO_UINT16
#define SIGMATCH_INFO_UINT16
Definition: detect-engine-register.h:344
DetectTlsVersionRegister
void DetectTlsVersionRegister(void)
Registration function for keyword: tls.version.
Definition: detect-tls-version.c:76
DetectReplaceRegister
void DetectReplaceRegister(void)
Definition: detect-replace.c:57
detect-detection-filter.h
DetectICodeRegister
void DetectICodeRegister(void)
Registration function for icode: keyword.
Definition: detect-icode.c:59
detect-iprep.h
detect-rawbytes.h
DetectWindowRegister
void DetectWindowRegister(void)
Registration function for window: keyword.
Definition: detect-tcp-window.c:52
detect-http2.h
DetectL3ProtoRegister
void DetectL3ProtoRegister(void)
Registration function for ip_proto keyword.
Definition: detect-l3proto.c:53
detect-fragbits.h
SCDetectSMTPRegister
void SCDetectSMTPRegister(void)
Definition: detect-smtp.c:129
detect-ipv6hdr.h
DetectWithinRegister
void DetectWithinRegister(void)
Definition: detect-within.c:51
DetectContentRegister
void DetectContentRegister(void)
Definition: detect-content.c:58
SigTableElmt_::Cleanup
void(* Cleanup)(struct SigTableElmt_ *)
Definition: detect.h:1548
detect-http-response-line.h
detect-tos.h
util-print.h
detect-filemagic.h
detect-engine-mpm.h
DetectIcmpIdRegister
void DetectIcmpIdRegister(void)
Registration function for icode: icmp_id.
Definition: detect-icmp-id.c:55
DETECT_TBLSIZE_IDX
int DETECT_TBLSIZE_IDX
Definition: detect-engine-register.c:262
detect.h
DetectSslStateRegister
void DetectSslStateRegister(void)
Registers the keyword handlers for the "ssl_state" keyword.
Definition: detect-ssl-state.c:72
detect-http-start.h
DetectLuaRegister
void DetectLuaRegister(void)
Registration function for keyword: lua.
Definition: detect-lua.c:82
SIGMATCH_INFO_UINT64
#define SIGMATCH_INFO_UINT64
Definition: detect-engine-register.h:348
detect-ja4-hash.h
DetectDnsNameRegister
void DetectDnsNameRegister(void)
Definition: detect-dns-name.c:187
pkt-var.h
DetectFiledataRegister
void DetectFiledataRegister(void)
Registration function for keyword: file_data.
Definition: detect-file-data.c:151
detect-prefilter.h
DetectIpv6hdrRegister
void DetectIpv6hdrRegister(void)
Registration function for ipv6.hdr: keyword.
Definition: detect-ipv6hdr.c:51
detect-http-uri.h
detect-tcp-window.h
detect-engine-port.h
DetectIcmpSeqRegister
void DetectIcmpSeqRegister(void)
Registration function for icmp_seq.
Definition: detect-icmp-seq.c:54
DetectIdRegister
void DetectIdRegister(void)
Registration function for keyword: id.
Definition: detect-id.c:62
DetectHttpUARegister
void DetectHttpUARegister(void)
Registers the keyword handlers for the "http_user_agent" keyword.
Definition: detect-http-ua.c:80
DetectTransformLuaxformRegister
void DetectTransformLuaxformRegister(void)
Definition: detect-transform-luaxform.c:376
SCLogWarning
#define SCLogWarning(...)
Macro used to log WARNING messages.
Definition: util-debug.h:262
detect-itype.h
SIGMATCH_BAN_TD_FIREWALL_MODE
#define SIGMATCH_BAN_TD_FIREWALL_MODE
Definition: detect-engine-register.h:364
DetectFlowPktsToServerRegister
void DetectFlowPktsToServerRegister(void)
Definition: detect-flow-pkts.c:169
detect-sctp-chunk-cnt.h
detect-requires.h
detect-engine-profile.h
DetectTcpWscaleRegister
void DetectTcpWscaleRegister(void)
Registration function for tcp.wscale keyword.
Definition: detect-tcp-wscale.c:47
detect-igmphdr.h
DetectPktDataRegister
void DetectPktDataRegister(void)
Registration function for keyword: file_data.
Definition: detect-pkt-data.c:52
util-profiling.h
util-rule-vars.h
DetectRequiresRegister
void DetectRequiresRegister(void)
Definition: detect-requires.c:44
detect-frame.h
DetectFlowbitsRegister
void DetectFlowbitsRegister(void)
Definition: detect-flowbits.c:71
SIGMATCH_INFO_CONTENT_MODIFIER
#define SIGMATCH_INFO_CONTENT_MODIFIER
Definition: detect-engine-register.h:328
DetectDatasetRegister
void DetectDatasetRegister(void)
Definition: detect-dataset.c:57
SIGMATCH_IPONLY_COMPAT
#define SIGMATCH_IPONLY_COMPAT
Definition: detect-engine-register.h:310
DetectUdphdrRegister
void DetectUdphdrRegister(void)
Registration function for udp.hdr: keyword.
Definition: detect-udphdr.c:50
conf-yaml-loader.h
DetectBytetestRegister
void DetectBytetestRegister(void)
Definition: detect-bytetest.c:77
DetectTlsSubjectAltNameRegister
void DetectTlsSubjectAltNameRegister(void)
Registration function for keyword: tls.subjectaltname.
Definition: detect-tls-subjectaltname.c:83
DetectDepthRegister
void DetectDepthRegister(void)
Definition: detect-depth.c:48
detect-bytejump.h
detect-id.h
conf.h
detect-engine-alert.h
SigTableElmt_::JsonAdditionalInfo
void(* JsonAdditionalInfo)(struct SCJsonBuilder *)
Definition: detect.h:1551
DetectSipMethodRegister
void DetectSipMethodRegister(void)
Definition: detect-sip-method.c:127
detect-ipproto.h
DetectTransformPcrexformRegister
void DetectTransformPcrexformRegister(void)
Definition: detect-transform-pcrexform.c:58
detect-tcp-wscale.h
detect-engine-state.h
Data structures and function prototypes for keeping state for the detection engine.
detect-filestore.h
detect-http-stat-code.h
detect-replace.h
DetectMarkRegister
void DetectMarkRegister(void)
Registration function for nfq_set_mark: keyword.
Definition: detect-mark.c:56
DetectReferenceRegister
void DetectReferenceRegister(void)
Registration function for the reference: keyword.
Definition: detect-reference.c:60
detect-sip-method.h
DetectFileSha256Register
void DetectFileSha256Register(void)
Registration function for keyword: filesha256.
Definition: detect-filesha256.c:43
DetectPrefilterRegister
void DetectPrefilterRegister(void)
Definition: detect-prefilter.c:39
util-mpm-ac.h
DetectTlsCertsRegister
void DetectTlsCertsRegister(void)
Registration function for keyword: tls.certs.
Definition: detect-tls-certs.c:103
DetectFtpbounceRegister
void DetectFtpbounceRegister(void)
Registration function for ftpbounce: keyword.
Definition: detect-ftpbounce.c:60
DetectSCTPHdrRegister
void DetectSCTPHdrRegister(void)
Definition: detect-sctphdr.c:42
detect-flowbits.h
runmodes.h
DetectFtpCompletionCodeRegister
void DetectFtpCompletionCodeRegister(void)
Definition: detect-ftp-completion-code.c:87
SIGMATCH_DEONLY_COMPAT
#define SIGMATCH_DEONLY_COMPAT
Definition: detect-engine-register.h:312
detect-ssl-version.h
detect-offset.h
DetectOffsetRegister
void DetectOffsetRegister(void)
Definition: detect-offset.c:46
detect-nocase.h
detect-http-host.h
detect-fragoffset.h
detect-ttl.h
DetectTcpSessionRegister
void DetectTcpSessionRegister(void)
Definition: detect-tcp-session.c:222
SCDetectHelperKeywordSetCleanCString
void SCDetectHelperKeywordSetCleanCString(uint16_t id)
Definition: detect-engine-register.c:581
detect-smtp.h
SCRealloc
#define SCRealloc(ptr, sz)
Definition: util-mem.h:50
detect-engine-analyzer.h
DetectSipUriRegister
void DetectSipUriRegister(void)
Definition: detect-sip-uri.c:100
detect-engine-content-inspection.h
detect-http-server-body.h
detect-bypass.h
DetectBypassRegister
void DetectBypassRegister(void)
Registration function for keyword: bypass.
Definition: detect-bypass.c:58
DetectAckRegister
void DetectAckRegister(void)
Registration function for ack: keyword.
Definition: detect-tcp-ack.c:56
DetectFilestoreRegister
void DetectFilestoreRegister(void)
Registration function for keyword: filestore.
Definition: detect-filestore.c:78
DetectSCTPChunkDataRegister
void DetectSCTPChunkDataRegister(void)
Definition: detect-sctp-chunk-data.c:179
DetectAppLayerStateRegister
void DetectAppLayerStateRegister(void)
Definition: detect-app-layer-state.c:63
DetectTlsRegister
void DetectTlsRegister(void)
Registration function for keyword: tls.version.
Definition: detect-tls.c:100
DetectTagRegister
void DetectTagRegister(void)
Registration function for keyword tag.
Definition: detect-tag.c:67
DetectHttpResponseLineRegister
void DetectHttpResponseLineRegister(void)
Registers the keyword handlers for the "http_response_line" keyword.
Definition: detect-http-response-line.c:98
detect-fast-pattern.h
DetectTlsIssuerRegister
void DetectTlsIssuerRegister(void)
Registration function for keyword: tls.cert_issuer.
Definition: detect-tls-cert-issuer.c:68
DetectBase64DataRegister
void DetectBase64DataRegister(void)
Definition: detect-base64-data.c:32
flags
uint8_t flags
Definition: decode-gre.h:0
DetectHttpStatCodeRegister
void DetectHttpStatCodeRegister(void)
Registration function for keyword: http_stat_code.
Definition: detect-http-stat-code.c:81
DetectHttpHeaderRegister
void DetectHttpHeaderRegister(void)
Registers the keyword handlers for the "http_header" keyword.
Definition: detect-http-header.c:366
detect-tls.h
suricata-common.h
DetectSCTPVtagRegister
void DetectSCTPVtagRegister(void)
Definition: detect-sctp-vtag.c:52
util-path.h
detect-byte-extract.h
DETECT_TBLSIZE_STEP
#define DETECT_TBLSIZE_STEP
Definition: detect-engine-register.h:304
DetectTlsAlpnRegister
void DetectTlsAlpnRegister(void)
Registration function for keyword: tls.alpn.
Definition: detect-tls-alpn.c:85
detect-metadata.h
DetectHttpClientBodyRegister
void DetectHttpClientBodyRegister(void)
Registers the keyword handlers for the "http_client_body" keyword.
Definition: detect-http-client-body.c:84
detect-ftp-command.h
detect-http-headers.h
DetectCsumRegister
void DetectCsumRegister(void)
Registers handlers for all the checksum keywords. The checksum keywords that are registered are ipv4-...
Definition: detect-csum.c:144
DetectUrilenRegister
void DetectUrilenRegister(void)
Registration function for urilen: keyword.
Definition: detect-urilen.c:60
detect-tls-cert-subject.h
DetectFtpDynamicPortRegister
void DetectFtpDynamicPortRegister(void)
Definition: detect-ftp-dynamic-port.c:100
DetectIGMPTypeRegister
void DetectIGMPTypeRegister(void)
Registration function for igmp.type keyword.
Definition: detect-igmp-type.c:50
detect-tls-version.h
detect-dataset.h
detect-template.h
util-classification-config.h
DetectHttp2Register
void DetectHttp2Register(void)
Registration function for HTTP2 keywords.
Definition: detect-http2.c:114
FatalError
#define FatalError(...)
Definition: util-debug.h:517
DetectIpv4hdrRegister
void DetectIpv4hdrRegister(void)
Registration function for ipv4.hdr: keyword.
Definition: detect-ipv4hdr.c:51
DetectHttpRequestLineRegister
void DetectHttpRequestLineRegister(void)
Registers the keyword handlers for the "http_request_line" keyword.
Definition: detect-http-request-line.c:98
DetectFileSha1Register
void DetectFileSha1Register(void)
Registration function for keyword: filesha1.
Definition: detect-filesha1.c:43
DetectFlowRegister
void DetectFlowRegister(void)
Registration function for flow: keyword.
Definition: detect-flow.c:64
detect-hostbits.h
DetectRawbytesRegister
void DetectRawbytesRegister(void)
Definition: detect-rawbytes.c:43
DetectEntropyRegister
void DetectEntropyRegister(void)
Definition: detect-entropy.c:100
detect-sip-uri.h
DetectTosRegister
void DetectTosRegister(void)
Register Tos keyword.
Definition: detect-tos.c:63
detect-tls-alpn.h
detect-tls-certs.h
util-validate.h
DetectBytemathRegister
void DetectBytemathRegister(void)
Registers the keyword handlers for the "byte_math" keyword.
Definition: detect-bytemath.c:70
SIGMATCH_INFO_ENUM_UINT
#define SIGMATCH_INFO_ENUM_UINT
Definition: detect-engine-register.h:352
detect-flow.h
detect-base64-decode.h
DetectEngineEventRegister
void DetectEngineEventRegister(void)
Registration function for decode-event: keyword.
Definition: detect-engine-event.c:126
SIGMATCH_INFO_BITFLAGS_UINT
#define SIGMATCH_INFO_BITFLAGS_UINT
Definition: detect-engine-register.h:358
DetectFlagsRegister
void DetectFlagsRegister(void)
Registration function for flags: keyword.
Definition: detect-tcp-flags.c:60
detect-http-raw-header.h
detect-engine-sigorder.h
detect-etherhdr.h
DetectFlowvarRegister
void DetectFlowvarRegister(void)
Definition: detect-flowvar.c:54
detect-tcp-ack.h
detect-http-method.h
detect-within.h
DetectNoalertRegister
void DetectNoalertRegister(void)
Definition: detect-noalert.c:49
detect-tls-cert-issuer.h
DETECT_TBLSIZE
int DETECT_TBLSIZE
Definition: detect-engine-register.c:261
detect-datarep.h
detect-http-request-line.h
SCFree
#define SCFree(p)
Definition: util-mem.h:61
SigTableElmt_::SupportsPrefilter
bool(* SupportsPrefilter)(const Signature *s)
Definition: detect.h:1526
SIGMATCH_INFO_UINT32
#define SIGMATCH_INFO_UINT32
Definition: detect-engine-register.h:346
detect-tcphdr.h
detect-tls-ja3s-hash.h
DetectStreamSizeRegister
void DetectStreamSizeRegister(void)
Registration function for stream_size: keyword.
Definition: detect-stream_size.c:57
detect-engine-iponly.h
detect-parse.h
detect-ftp-command-data.h
DetectDetectionFilterRegister
void DetectDetectionFilterRegister(void)
Registration function for detection_filter: keyword.
Definition: detect-detection-filter.c:71
detect-icode.h
detect-pkt-data.h
detect-threshold.h
DetectSCTPChunkCntRegister
void DetectSCTPChunkCntRegister(void)
Definition: detect-sctp-chunk-cnt.c:48
DetectDistanceRegister
void DetectDistanceRegister(void)
Definition: detect-distance.c:55
DetectTlsJa3SStringRegister
void DetectTlsJa3SStringRegister(void)
Registration function for keyword: ja3s.string.
Definition: detect-tls-ja3s-string.c:79
detect-geoip.h
DetectThresholdRegister
void DetectThresholdRegister(void)
Registration function for threshold: keyword.
Definition: detect-threshold.c:85
SIGMATCH_INFO_STICKY_BUFFER
#define SIGMATCH_INFO_STICKY_BUFFER
Definition: detect-engine-register.h:330
detect-tls-ja3-hash.h
DetectFlowintRegister
void DetectFlowintRegister(void)
Definition: detect-flowint.c:66
detect-filesize.h
DetectByteExtractRegister
void DetectByteExtractRegister(void)
Registers the keyword handlers for the "byte_extract" keyword.
Definition: detect-byte-extract.c:68
detect-icmp-id.h
DetectAppLayerProtocolRegister
void DetectAppLayerProtocolRegister(void)
Definition: detect-app-layer-protocol.c:662
app-layer-protos.h
detect-ssl-state.h
detect-ipopts.h
DetectTlsCertChainLenRegister
void DetectTlsCertChainLenRegister(void)
Definition: detect-tls-certs.c:249
SIGMATCH_SUPPORT_FIREWALL
#define SIGMATCH_SUPPORT_FIREWALL
Definition: detect-engine-register.h:336
detect-tls-ja3s-string.h
detect-urilen.h
suricata.h
DetectIPAddrBufferRegister
void DetectIPAddrBufferRegister(void)
Definition: detect-ipaddr.c:54
detect-ipv4hdr.h
GetDocURL
const char * GetDocURL(void)
Definition: suricata.c:1216
DetectFastPatternRegister
void DetectFastPatternRegister(void)
Registration function for fast_pattern keyword.
Definition: detect-fast-pattern.c:183
DetectHttpStatMsgRegister
void DetectHttpStatMsgRegister(void)
Registration function for keyword: http_stat_msg.
Definition: detect-http-stat-msg.c:91
DetectVlanIdRegister
void DetectVlanIdRegister(void)
Definition: detect-vlan.c:100
DetectPktvarRegister
void DetectPktvarRegister(void)
Definition: detect-pktvar.c:48
detect-uricontent.h
DetectSslVersionRegister
void DetectSslVersionRegister(void)
Registration function for keyword: ssl_version.
Definition: detect-ssl-version.c:65
detect-flow-pkts.h
detect-dns-response.h
detect-tls-cert-serial.h
detect-csum.h
DetectDnsResponseRegister
void DetectDnsResponseRegister(void)
Definition: detect-dns-response.c:387
DetectFtpModeRegister
void DetectFtpModeRegister(void)
Definition: detect-ftp-mode.c:121
app-layer-smtp.h
DetectNocaseRegister
void DetectNocaseRegister(void)
Definition: detect-nocase.c:39
DetectJa4HashRegister
void DetectJa4HashRegister(void)
Registration function for keyword: ja4.hash.
Definition: detect-ja4-hash.c:67
coverage_unittests
int coverage_unittests
Definition: suricata.c:994
detect-app-layer-state.h
DetectIGMPHdrRegister
void DetectIGMPHdrRegister(void)
Registration function for igmp.hdr: keyword.
Definition: detect-igmphdr.c:46
detect-distance.h
flow.h
DetectBase64DecodeRegister
void DetectBase64DecodeRegister(void)
Definition: detect-base64-decode.c:48
detect-ipaddr.h
DetectFilenameRegister
void DetectFilenameRegister(void)
Registration function for keyword: filename.
Definition: detect-filename.c:78
DetectIPRepRegister
void DetectIPRepRegister(void)
Definition: detect-iprep.c:62
SCCalloc
#define SCCalloc(nm, sz)
Definition: util-mem.h:53
detect-config.h
SigTableElmt_::Transform
void(* Transform)(DetectEngineThreadCtx *, InspectionBuffer *, const void *context)
Definition: detect.h:1517
DetectFileRegisterFileProtocols
void DetectFileRegisterFileProtocols(DetectFileHandlerTableElmt *reg)
Definition: detect-file-data.c:123
DetectFtpdataRegister
void DetectFtpdataRegister(void)
Registration function for ftpcommand: keyword.
Definition: detect-ftpdata.c:58
detect-tls-subjectaltname.h
DetectHttpMethodRegister
void DetectHttpMethodRegister(void)
Registration function for keyword: http_method.
Definition: detect-http-method.c:80
DetectTtlRegister
void DetectTtlRegister(void)
Registration function for ttl: keyword.
Definition: detect-ttl.c:54
DetectTlsSubjectRegister
void DetectTlsSubjectRegister(void)
Registration function for keyword: tls.cert_subject.
Definition: detect-tls-cert-subject.c:68
detect-http-stat-msg.h
DetectPcreRegister
void DetectPcreRegister(void)
Definition: detect-pcre.c:96
filehandler_table
DetectFileHandlerTableElmt filehandler_table[DETECT_TBLSIZE_STATIC]
Definition: detect-file-data.c:78
DetectClasstypeRegister
void DetectClasstypeRegister(void)
Registers the handler functions for the "Classtype" keyword.
Definition: detect-classtype.c:50
DEBUG_VALIDATE_BUG_ON
#define DEBUG_VALIDATE_BUG_ON(exp)
Definition: util-validate.h:109
detect-engine-address.h
util-threshold-config.h
SigTableList
int SigTableList(const char *keyword)
Definition: detect-engine-register.c:496
SigTableElmt_::RegisterTests
void(* RegisterTests)(void)
Definition: detect.h:1531
detect-engine-threshold.h
DetectIsdataatRegister
void DetectIsdataatRegister(void)
Registration function for isdataat: keyword.
Definition: detect-isdataat.c:156
detect-icmp-seq.h
DetectEtherhdrRegister
void DetectEtherhdrRegister(void)
Registration function for ether.hdr: keyword.
Definition: detect-etherhdr.c:48
detect-bytemath.h
app-layer.h
detect-bytetest.h
DetectFileMd5Register
void DetectFileMd5Register(void)
Registration function for keyword: filemd5.
Definition: detect-filemd5.c:43
detect-ftp-mode.h
detect-filesha256.h
DetectFrameRegister
void DetectFrameRegister(void)
Registration function for keyword: ja3_hash.
Definition: detect-frame.c:194
detect-msg.h