Go to the documentation of this file.
60 static void IPRepRegisterTests(
void);
78 static inline uint8_t GetRep(
const SReputation *r,
const uint8_t cat,
const uint32_t
version)
88 static uint8_t GetHostRepSrc(
Packet *p, uint8_t cat, uint32_t
version)
115 static uint8_t GetHostRepDst(
Packet *p, uint8_t cat, uint32_t
version)
150 const DetectIPRepData *rd = (
const DetectIPRepData *)ctx;
160 val = GetHostRepSrc(p, rd->cat,
version);
167 val = GetHostRepDst(p, rd->cat,
version);
176 val = GetHostRepSrc(p, rd->cat,
version);
177 SCLogDebug(
"checking src -- val %u (looking for cat %u, val %u)", val, rd->cat,
188 val = GetHostRepDst(p, rd->cat,
version);
197 val = GetHostRepSrc(p, rd->cat,
version);
202 val = GetHostRepDst(p, rd->cat,
version);
217 DetectIPRepData *cd = rs_detect_iprep_parse(rawstr);
219 SCLogError(
"\"%s\" is not a valid setting for iprep", rawstr);
223 SCLogDebug(
"cmd %u, cat %u, op %u, val %u", cd->cmd, cd->cat, cd->du8.mode, cd->du8.arg1);
243 DetectIPRepData *fd = (DetectIPRepData *)ptr;
248 rs_detect_iprep_free(fd);
255 static FILE *DetectIPRepGenerateCategoriesDummy(
void)
258 const char *buffer =
"1,BadHosts,Know bad hosts";
260 fd =
SCFmemopen((
void *)buffer, strlen(buffer),
"r");
267 static FILE *DetectIPRepGenerateCategoriesDummy2(
void)
271 "1,BadHosts,Know bad hosts\n"
272 "2,GoodHosts,Know good hosts\n";
274 fd =
SCFmemopen((
void *)buffer, strlen(buffer),
"r");
281 static FILE *DetectIPRepGenerateNetworksDummy(
void)
284 const char *buffer =
"10.0.0.0/24,1,20";
286 fd =
SCFmemopen((
void *)buffer, strlen(buffer),
"r");
293 static FILE *DetectIPRepGenerateNetworksDummy2(
void)
298 "192.168.0.0/16,2,127";
300 fd =
SCFmemopen((
void *)buffer, strlen(buffer),
"r");
307 static int DetectIPRepTest01(
void)
318 memset(&th_v, 0,
sizeof(th_v));
329 fd = DetectIPRepGenerateCategoriesDummy();
333 fd = DetectIPRepGenerateNetworksDummy();
338 "badhost\"; iprep:any,BadHosts,>,1; sid:1;rev:1;)");
360 static int DetectIPRepTest02(
void)
371 memset(&th_v, 0,
sizeof(th_v));
382 fd = DetectIPRepGenerateCategoriesDummy();
386 fd = DetectIPRepGenerateNetworksDummy();
391 "badhost\"; iprep:src,BadHosts,>,1; sid:1; rev:1;)");
412 static int DetectIPRepTest03(
void)
423 memset(&th_v, 0,
sizeof(th_v));
434 fd = DetectIPRepGenerateCategoriesDummy();
438 fd = DetectIPRepGenerateNetworksDummy();
443 "badhost\"; iprep:dst,BadHosts,>,1; sid:1; rev:1;)");
464 static int DetectIPRepTest04(
void)
475 memset(&th_v, 0,
sizeof(th_v));
487 fd = DetectIPRepGenerateCategoriesDummy();
491 fd = DetectIPRepGenerateNetworksDummy();
496 "badhost\"; iprep:both,BadHosts,>,1; sid:1; rev:1;)");
517 static int DetectIPRepTest05(
void)
528 memset(&th_v, 0,
sizeof(th_v));
539 fd = DetectIPRepGenerateCategoriesDummy();
543 fd = DetectIPRepGenerateNetworksDummy();
548 "badhost\"; iprep:any,BadHosts,>,1; sid:1; rev:1;)");
569 static int DetectIPRepTest06(
void)
580 memset(&th_v, 0,
sizeof(th_v));
591 fd = DetectIPRepGenerateCategoriesDummy();
595 fd = DetectIPRepGenerateNetworksDummy2();
600 "badhost\"; iprep:any,BadHosts,>,1; sid:1; rev:1;)");
621 static int DetectIPRepTest07(
void)
632 memset(&th_v, 0,
sizeof(th_v));
643 fd = DetectIPRepGenerateCategoriesDummy();
647 fd = DetectIPRepGenerateNetworksDummy2();
652 "badhost\"; iprep:any,BadHosts,>,1; sid:1; rev:1;)");
673 static int DetectIPRepTest08(
void)
684 memset(&th_v, 0,
sizeof(th_v));
696 fd = DetectIPRepGenerateCategoriesDummy();
700 fd = DetectIPRepGenerateNetworksDummy();
705 "badhost\"; iprep:any,BadHosts,>,1; sid:1; rev:1;)");
726 static int DetectIPRepTest09(
void)
737 memset(&th_v, 0,
sizeof(th_v));
749 fd = DetectIPRepGenerateCategoriesDummy2();
753 fd = DetectIPRepGenerateNetworksDummy2();
758 "alert tcp any any -> any any (msg:\"test\"; iprep:src,BadHosts,>,9; sid:1; rev:1;)");
782 void IPRepRegisterTests(
void)
#define FAIL_IF_NULL(expr)
Fail a test if expression evaluates to NULL.
#define PKT_HOST_DST_LOOKED_UP
void(* Free)(DetectEngineCtx *, void *)
uint8_t rep[SREP_MAX_CATS]
void UtRegisterTest(const char *name, int(*TestFn)(void))
Register unit test.
void HostRelease(Host *h)
uint32_t UTHSetIPv4Address(const char *str)
return the uint32_t for a ipv4 address string
main detection engine ctx
void DetectEngineCtxFree(DetectEngineCtx *)
Free a DetectEngineCtx::
Packet * UTHBuildPacket(uint8_t *payload, uint16_t payload_len, uint8_t ipproto)
UTHBuildPacket is a wrapper that build packets with default ip and port fields.
void SigMatchSignatures(ThreadVars *tv, DetectEngineCtx *de_ctx, DetectEngineThreadCtx *det_ctx, Packet *p)
wrapper for old tests
Signature * DetectEngineAppendSig(DetectEngineCtx *, const char *)
Parse and append a Signature into the Detection Engine Context signature list.
int(* Setup)(DetectEngineCtx *, Signature *, const char *)
#define PASS
Pass the test.
SRepCIDRTree * srepCIDR_ctx
int SRepLoadCatFileFromFD(FILE *fp)
#define PKT_HOST_SRC_LOOKED_UP
Per thread variable structure.
#define HostReference(dst_h_ptr, h)
Data structures and function prototypes for keeping state for the detection engine.
int(* Match)(DetectEngineThreadCtx *, Packet *, const Signature *, const SigMatchCtx *)
int SRepLoadFileFromFD(SRepCIDRTree *cidr_ctx, FILE *fp)
void DetectIPRepFree(DetectEngineCtx *, void *)
uint8_t SRepCIDRGetIPRepDst(SRepCIDRTree *cidr_ctx, Packet *p, uint8_t cat, uint32_t version)
int SigGroupBuild(DetectEngineCtx *de_ctx)
Convert the signature list into the runtime match structure.
Used to start a pointer to SigMatch context Should never be dereferenced without casting to something...
int DetectU8Match(const uint8_t parg, const DetectUintData_u8 *du8)
TmEcode DetectEngineThreadCtxInit(ThreadVars *, void *, void **)
initialize thread specific detection engine context
#define FAIL_IF(expr)
Fail a test if expression evaluates to true.
TmEcode DetectEngineThreadCtxDeinit(ThreadVars *, void *)
SigTableElmt sigmatch_table[DETECT_TBLSIZE]
void HostShutdown(void)
shutdown the flow engine
#define SCLogError(...)
Macro used to log ERROR messages.
int SRepInit(DetectEngineCtx *de_ctx)
init reputation
void UTHFreePacket(Packet *p)
UTHFreePacket: function to release the allocated data from UTHBuildPacket and the packet itself.
void SRepResetVersion(void)
DetectEngineCtx * DetectEngineCtxInit(void)
Host * HostLookupHostFromHash(Address *a)
look up a host in the hash
void HostInitConfig(bool quiet)
initialize the configuration
SigMatch * SigMatchAppendSMToList(DetectEngineCtx *de_ctx, Signature *s, uint16_t type, SigMatchCtx *ctx, const int list)
Append a SigMatch to the list type.
#define SC_ATOMIC_GET(name)
Get the value from the atomic variable.
void DetectIPRepRegister(void)
#define SIGMATCH_IPONLY_COMPAT
#define DEBUG_VALIDATE_BUG_ON(exp)
uint8_t SRepCIDRGetIPRepSrc(SRepCIDRTree *cidr_ctx, Packet *p, uint8_t cat, uint32_t version)
void(* RegisterTests)(void)