Go to the documentation of this file.
270 static void PrintFeatureList(
const SigTableElmt *e,
char sep)
282 printf(
"compatible with IP only rule");
288 printf(
"compatible with decoder event only rule");
294 printf(
"content modifier");
300 printf(
"sticky buffer");
306 printf(
"supports firewall");
312 printf(
"multi buffer");
355 static void SigMultilinePrint(
size_t i,
const char *prefix)
360 printf(
"%sFeatures: ", prefix);
377 if (
name == NULL || strlen(
name) == 0) {
381 if (strcmp(keyword,
name) == 0) {
394 if (keyword == NULL) {
395 printf(
"=====Supported keywords=====\n");
396 for (i = 0; i < size; i++) {
398 if (
name != NULL && strlen(
name) > 0) {
399 if (
name[0] ==
'_' || strcmp(
name,
"template") == 0)
402 printf(
"- %s\n",
name);
405 }
else if (strcmp(
"csv", keyword) == 0) {
406 printf(
"name;description;app layer;features;documentation\n");
407 for (i = 0; i < size; i++) {
409 if (
name != NULL && strlen(
name) > 0) {
410 if (
name[0] ==
'_' || strcmp(
name,
"template") == 0)
428 }
else if (strcmp(
"all", keyword) == 0) {
429 for (i = 0; i < size; i++) {
431 if (
name != NULL && strlen(
name) > 0) {
432 if (
name[0] ==
'_' || strcmp(
name,
"template") == 0)
435 SigMultilinePrint(i,
"\t");
439 for (i = 0; i < size; i++) {
443 SigMultilinePrint(i,
"");
447 printf(
"Non existing keyword\n");
453 static void DetectFileHandlerRegister(
void)
463 SCSigTableNamesElmt kw;
465 kw.name = (
char *)base->
name;
466 kw.desc = (
char *)base->
desc;
467 kw.url = (
char *)base->
url;
468 SCDetectSigMatchNamesFree(&kw);
491 #define ARRAY_CAP_STEP 16
492 static void (**PreregisteredCallbacks)(void) = NULL;
493 static size_t preregistered_callbacks_nb = 0;
494 static size_t preregistered_callbacks_cap = 0;
502 if (preregistered_callbacks_nb == preregistered_callbacks_cap) {
503 void *tmp =
SCRealloc(PreregisteredCallbacks,
509 PreregisteredCallbacks = tmp;
511 PreregisteredCallbacks[preregistered_callbacks_nb] = KeywordsRegister;
512 preregistered_callbacks_nb++;
523 FatalError(
"Could not allocate sigmatch_table");
677 SCDetectNfsProcedureRegister();
706 SCDetectKrb5MsgTypeRegister();
723 DetectTransformCompressWhitespaceRegister();
724 DetectTransformStripWhitespaceRegister();
725 DetectTransformStripPseudoHeadersRegister();
726 DetectTransformMd5Register();
727 DetectTransformSha1Register();
728 DetectTransformSha256Register();
729 DetectTransformDotPrefixRegister();
731 DetectTransformUrlDecodeRegister();
732 DetectTransformXorRegister();
733 DetectTransformToLowerRegister();
734 DetectTransformToUpperRegister();
735 DetectTransformHeaderLowercaseRegister();
736 DetectTransformFromBase64DecodeRegister();
737 SCDetectTransformDomainRegister();
739 DetectTransformGunzipRegister();
740 DetectTransformZlibDeflateRegister();
742 DetectFileHandlerRegister();
750 SCDetectDHCPRegister();
751 SCDetectWebsocketRegister();
752 SCDetectEnipRegister();
753 SCDetectMqttRegister();
754 SCDetectRfbRegister();
755 SCDetectSipRegister();
756 SCDetectTemplateRegister();
757 SCDetectLdapRegister();
758 SCDetectSdpRegister();
759 SCDetectDNSRegister();
760 SCDetectPgsqlRegister();
761 SCDetectSshRegister();
762 SCDetectQuicRegister();
763 SCDetectSmbRegister();
764 SCDetectIkeRegister();
766 for (
size_t i = 0; i < preregistered_callbacks_nb; i++) {
767 PreregisteredCallbacks[i]();
784 SCLogDebug(
"detection plugin %s has no unittest "
789 "registration function.",
void DetectFtpReplyReceivedRegister(void)
Registration function for ftp.reply_received: keyword.
void DetectEmailRegister(void)
void DetectFtpCommandDataRegister(void)
void DetectDceStubDataRegister(void)
Registers the keyword handlers for the "dce_stub_data" keyword.
void DetectFragBitsRegister(void)
Registration function for fragbits: keyword.
void DetectHttpHHRegister(void)
Registers the keyword handlers for the "http_host" keyword.
void DetectITypeRegister(void)
Registration function for itype: keyword.
#define SIGMATCH_INFO_UINT16
void DetectAppLayerEventRegister(void)
Registers the keyword handlers for the "app-layer-event" keyword.
void DetectDsizeRegister(void)
Registration function for dsize: keyword.
void DetectFlowBytesRegister(void)
void DetectMsgRegister(void)
void DetectTlsJa3HashRegister(void)
Registration function for keyword: ja3_hash.
void DetectTemplateRegister(void)
Registration function for template: keyword.
#define SIGMATCH_INFO_STICKY_BUFFER
void DetectGeoipRegister(void)
Registration function for geoip keyword (no libgeoip support)
void DetectNfsVersionRegister(void)
Registration function for nfs_procedure keyword.
void DetectFtpCommandRegister(void)
void DetectXbitsRegister(void)
void DetectTlsJa3SHashRegister(void)
Registration function for keyword: ja3s.hash.
void DetectRevRegister(void)
bool SCSigTableHasKeyword(const char *keyword)
Check if a keyword exists.
SigTableElmt * sigmatch_table
void DetectConfigRegister(void)
Registers the "config" keyword for detection.
void DetectTcpmssRegister(void)
Registration function for tcpmss: keyword.
void DetectTlsSerialRegister(void)
Registration function for keyword: tls.cert_serial.
#define SIGMATCH_INFO_CONTENT_MODIFIER
void DetectSidRegister(void)
void DetectTlsFingerprintRegister(void)
Registration function for keyword: tls.cert_fingerprint.
void DetectHttpServerBodyRegister(void)
Registers the keyword handlers for the "http_server_body" keyword.
void DetectHttpStartRegister(void)
Registers the keyword handlers for the "http_start" keyword.
void DetectDNP3Register(void)
void DetectHttpUriRegister(void)
Registration function for keywords: http_uri and http.uri.
void DetectGidRegister(void)
Registration function for gid: keyword.
void DetectIPProtoRegister(void)
Registration function for ip_proto keyword.
void DetectFlowElephantRegister(void)
void DetectICMPv6hdrRegister(void)
Registration function for icmpv6.hdr: keyword.
void DetectTlsJa3StringRegister(void)
Registration function for keyword: ja3.string.
void DetectTlsRandomRegister(void)
Registration function for keyword: tls.random.
void DetectFtpReplyRegister(void)
void DetectPriorityRegister(void)
Registers the handler functions for the "priority" keyword.
void DetectDceIfaceRegister(void)
Registers the keyword handlers for the "dce_iface" keyword.
void DetectFilesizeRegister(void)
Registration function for filesize: keyword.
void DetectHttpProtocolRegister(void)
Registers the keyword handlers for the "http.protocol" keyword.
void DetectFragOffsetRegister(void)
Registration function for fragoffset.
void DetectRpcRegister(void)
Registration function for rpc keyword.
void DetectVlanLayersRegister(void)
void DetectSameipRegister(void)
Registration function for sameip: keyword.
void DetectIcmpv4HdrRegister(void)
Registration function for icmpv4.hdr: keyword.
#define SIGMATCH_DEONLY_COMPAT
void DetectTcphdrRegister(void)
Registration function for tcp.hdr: keyword.
void DetectFlowBytesToClientRegister(void)
void DetectDatarepRegister(void)
void DetectFlowBytesToServerRegister(void)
void DetectHostbitsRegister(void)
void DetectRegisterAppLayerHookLists(void)
register app hooks as generic lists
void DetectTlsValidityRegister(void)
Registration function for tls validity keywords.
void DetectIpOptsRegister(void)
Registration function for ipopts: keyword.
void DetectUricontentRegister(void)
Registration function for uricontent: keyword.
#define SIGMATCH_SUPPORT_FIREWALL
element in sigmatch type table.
void DetectFlowPktsRegister(void)
int SCSigTablePreRegister(void(*KeywordsRegister)(void))
void DetectFilemagicRegister(void)
Registration function for keyword: filemagic.
void DetectTlsSniRegister(void)
Registration function for keyword: tls.sni.
void DetectTargetRegister(void)
Registration function for target keyword.
void DetectHttpCookieRegister(void)
Registration function for keyword: http_cookie.
void DetectBufferTypeCloseRegistration(void)
void SigTableRegisterTests(void)
#define SIGMATCH_INFO_UINT32
void DetectSeqRegister(void)
Registration function for ack: keyword.
void DetectAsn1Register(void)
Registration function for asn1.
void DetectFlowAgeRegister(void)
void DetectBsizeRegister(void)
Registration function for bsize: keyword.
void DetectFlowPktsToClientRegister(void)
void DetectBytejumpRegister(void)
void DetectICMPv6mtuRegister(void)
Registration function for icmpv6.mtu: keyword.
void SigTableCleanup(void)
void DetectTlsVersionRegister(void)
Registration function for keyword: tls.version.
void DetectReplaceRegister(void)
void DetectICodeRegister(void)
Registration function for icode: keyword.
void DetectWindowRegister(void)
Registration function for window: keyword.
void DetectL3ProtoRegister(void)
Registration function for ip_proto keyword.
#define SIGMATCH_INFO_MULTI_UINT
void SCDetectSMTPRegister(void)
void DetectKrb5ErrCodeRegister(void)
Registration function for krb5_err_code: keyword.
void DetectWithinRegister(void)
void DetectContentRegister(void)
void(* Cleanup)(struct SigTableElmt_ *)
void DetectIcmpIdRegister(void)
Registration function for icode: icmp_id.
void DetectSslStateRegister(void)
Registers the keyword handlers for the "ssl_state" keyword.
void DetectLuaRegister(void)
Registration function for keyword: lua.
void DetectDnsNameRegister(void)
void DetectFiledataRegister(void)
Registration function for keyword: file_data.
void DetectIpv6hdrRegister(void)
Registration function for ipv6.hdr: keyword.
void DetectIcmpSeqRegister(void)
Registration function for icmp_seq.
void DetectIdRegister(void)
Registration function for keyword: id.
void DetectHttpUARegister(void)
Registers the keyword handlers for the "http_user_agent" keyword.
#define SCLogWarning(...)
Macro used to log WARNING messages.
void DetectFlowPktsToServerRegister(void)
void DetectTcpWscaleRegister(void)
Registration function for tcp.wscale keyword.
void DetectPktDataRegister(void)
Registration function for keyword: file_data.
void DetectRequiresRegister(void)
void DetectFlowbitsRegister(void)
void DetectDatasetRegister(void)
void DetectUdphdrRegister(void)
Registration function for udp.hdr: keyword.
void DetectBytetestRegister(void)
void DetectTlsSubjectAltNameRegister(void)
Registration function for keyword: tls.subjectaltname.
void DetectDepthRegister(void)
void DetectSipMethodRegister(void)
#define SIGMATCH_INFO_BITFLAGS_UINT
Data structures and function prototypes for keeping state for the detection engine.
void DetectMarkRegister(void)
Registration function for nfq_set_mark: keyword.
void DetectReferenceRegister(void)
Registration function for the reference: keyword.
void DetectFileSha256Register(void)
Registration function for keyword: filesha256.
void DetectPrefilterRegister(void)
void DetectTlsCertsRegister(void)
Registration function for keyword: tls.certs.
void DetectFtpbounceRegister(void)
Registration function for ftpbounce: keyword.
void DetectFtpCompletionCodeRegister(void)
void DetectKrb5TicketEncryptionRegister(void)
void DetectOffsetRegister(void)
void SCDetectHelperKeywordSetCleanCString(uint16_t id)
#define SCRealloc(ptr, sz)
void DetectSipUriRegister(void)
void DetectBypassRegister(void)
Registration function for keyword: bypass.
void DetectAckRegister(void)
Registration function for ack: keyword.
void DetectFilestoreRegister(void)
Registration function for keyword: filestore.
void DetectAppLayerStateRegister(void)
void DetectTlsRegister(void)
Registration function for keyword: tls.version.
void DetectTagRegister(void)
Registration function for keyword tag.
void DetectHttpResponseLineRegister(void)
Registers the keyword handlers for the "http_response_line" keyword.
void DetectTlsIssuerRegister(void)
Registration function for keyword: tls.cert_issuer.
void DetectBase64DataRegister(void)
void DetectHttpStatCodeRegister(void)
Registration function for keyword: http_stat_code.
void DetectDceOpnumRegister(void)
Registers the keyword handlers for the "dce_opnum" keyword.
void DetectKrb5CNameRegister(void)
#define DETECT_TBLSIZE_STEP
void DetectTlsAlpnRegister(void)
Registration function for keyword: tls.alpn.
void DetectKrb5SNameRegister(void)
void DetectHttpClientBodyRegister(void)
Registers the keyword handlers for the "http_client_body" keyword.
void DetectCsumRegister(void)
Registers handlers for all the checksum keywords. The checksum keywords that are registered are ipv4-...
void DetectUrilenRegister(void)
Registration function for urilen: keyword.
void DetectFtpDynamicPortRegister(void)
void DetectIGMPTypeRegister(void)
Registration function for igmp.type keyword.
#define SIGMATCH_INFO_UINT64
void DetectHttp2Register(void)
Registration function for HTTP2 keywords.
void DetectIpv4hdrRegister(void)
Registration function for ipv4.hdr: keyword.
void DetectHttpRequestLineRegister(void)
Registers the keyword handlers for the "http_request_line" keyword.
void DetectFileSha1Register(void)
Registration function for keyword: filesha1.
void DetectFlowRegister(void)
Registration function for flow: keyword.
void DetectRawbytesRegister(void)
void DetectEntropyRegister(void)
void DetectTosRegister(void)
Register Tos keyword.
#define SIGMATCH_INFO_MULTI_BUFFER
void DetectBytemathRegister(void)
Registers the keyword handlers for the "byte_math" keyword.
void DetectEngineEventRegister(void)
Registration function for decode-event: keyword.
void DetectFlagsRegister(void)
Registration function for flags: keyword.
void DetectFlowvarRegister(void)
void DetectNoalertRegister(void)
bool(* SupportsPrefilter)(const Signature *s)
void DetectStreamSizeRegister(void)
Registration function for stream_size: keyword.
void DetectDetectionFilterRegister(void)
Registration function for detection_filter: keyword.
void DetectDistanceRegister(void)
void DetectTlsJa3SStringRegister(void)
Registration function for keyword: ja3s.string.
#define SIGMATCH_INFO_UINT8
void DetectThresholdRegister(void)
Registration function for threshold: keyword.
void DetectFlowintRegister(void)
void DetectAppLayerProtocolRegister(void)
void DetectTlsCertChainLenRegister(void)
void DetectIPAddrBufferRegister(void)
const char * GetDocURL(void)
void DetectFastPatternRegister(void)
Registration function for fast_pattern keyword.
void DetectHttpStatMsgRegister(void)
Registration function for keyword: http_stat_msg.
void DetectVlanIdRegister(void)
void DetectPktvarRegister(void)
void DetectSslVersionRegister(void)
Registration function for keyword: ssl_version.
void DetectModbusRegister(void)
Registration function for Modbus keyword.
void DetectDnsResponseRegister(void)
void DetectFtpModeRegister(void)
void DetectNocaseRegister(void)
void DetectJa4HashRegister(void)
Registration function for keyword: ja4.hash.
void DetectIGMPHdrRegister(void)
Registration function for igmp.hdr: keyword.
void DetectBase64DecodeRegister(void)
void(* Transform)(DetectEngineThreadCtx *, InspectionBuffer *, void *context)
void DetectFilenameRegister(void)
Registration function for keyword: filename.
void DetectIPRepRegister(void)
#define SIGMATCH_INFO_ENUM_UINT
void DetectFileRegisterFileProtocols(DetectFileHandlerTableElmt *reg)
void DetectFtpdataRegister(void)
Registration function for ftpcommand: keyword.
void DetectHttpMethodRegister(void)
Registration function for keyword: http_method.
#define SIGMATCH_IPONLY_COMPAT
void DetectTtlRegister(void)
Registration function for ttl: keyword.
void DetectTemplate2Register(void)
Registration function for template2: keyword.
void DetectTlsSubjectRegister(void)
Registration function for keyword: tls.cert_subject.
void DetectPcreRegister(void)
DetectFileHandlerTableElmt filehandler_table[DETECT_TBLSIZE_STATIC]
void DetectClasstypeRegister(void)
Registers the handler functions for the "Classtype" keyword.
#define DEBUG_VALIDATE_BUG_ON(exp)
int SigTableList(const char *keyword)
void(* RegisterTests)(void)
void DetectIsdataatRegister(void)
Registration function for isdataat: keyword.
void DetectFileMd5Register(void)
Registration function for keyword: filemd5.
void DetectFrameRegister(void)
Registration function for keyword: ja3_hash.