Anoop Saldanha
49bdad9345
All http_http_method modified patterns now are DETECT_CONTENT and not DETECT_AL_HTTP_METHOD
14 years ago
Anoop Saldanha
97d8fc9cba
All http_http_raw_header modified patterns now are DETECT_CONTENT and not DETECT_AL_HTTP_RAW_HEADER
14 years ago
Anoop Saldanha
97308674ee
All http_http_header modified patterns now are DETECT_CONTENT and not DETECT_AL_HTTP_HEADER
14 years ago
Anoop Saldanha
1acb7cdc7d
All http_server_body modified patterns now are DETECT_CONTENT and not DETECT_AL_HTTP_SERVER_BODY
14 years ago
Anoop Saldanha
a5b46e727c
All http_client_body modified patterns now are DETECT_CONTENT and not DETECT_AL_HTTP_CLIENT_BODY
14 years ago
Anoop Saldanha
4810ee9c5f
All uricontent modified patterns now are DETECT_CONTENT and not DETECT_URICONTENT. Step towards unifying all content based patterns. Makes way for easier management of patterns
14 years ago
Anoop Saldanha
ac68c3f893
code cleanup - replace SigMatchAppendDcePayload with SigMatchAppendSMToList
14 years ago
Anoop Saldanha
6cab663bf0
code cleanup - replace SigMatchAppendPayload with SigMatchAppendSMToList
14 years ago
Anoop Saldanha
c4cb37b8da
code cleanup - replace SigMatchAppendUricontent with SigMatchAppendSMToList
14 years ago
Anoop Saldanha
e682796d03
feature #414 - support listing supported keywords. Remove support for dummy keywords __address__, __proto__, __port__. Remove support for recursive keyword and all references to it
14 years ago
Anoop Saldanha
603d4a719a
remove det_ctx->payload_offset and use det_ctx->buffer_offset. Update hscd and hsmd to use the new generic content inspection engine
14 years ago
Anoop Saldanha
35f1f7e8d9
unify payload detection engines + fix other bugs in pcre init
14 years ago
Anoop Saldanha
09313cf9bd
Support http stat code detection engine, fast pattern(mpm engine included). Fix http stat code setup function. Fix pcre option for stat msg keyword. With this the pcre options for server_body is Q, for stat_msg is Y and for stat_code is S
14 years ago
Anoop Saldanha
2007c2711c
Support http stat msg detection engine, fast pattern(mpm engine included). Fix http stat msg setup function. Fix pcre option for stat msg keyword
14 years ago
Victor Julien
6aa0ad1c5f
Remove unused definitions in pcre code.
14 years ago
Victor Julien
bb6f93e675
Fix unittest missing a flow direction in the rule.
14 years ago
Eileen Donlon
39b8cc2f8b
fixed relative handling for pcre cookie and method
14 years ago
Victor Julien
2d9449d060
Make code default for pcre match limit match the suricata.yaml default.
14 years ago
Victor Julien
28e15be526
Clean up default output. Use simpler output format for releases.
14 years ago
Victor Julien
077970051e
file-data: implement relative pcre support.
14 years ago
Victor Julien
89f83e714c
Introduce http_server_body keyword.
...
The http_server_body content modifier modifies the previous content to inspect
the normalized (dechunked, unzipped) http_server_body. The workings are similar
to http_client_body. Additionally, a new pcre flag was introduced "/S".
To facilitate this change the signature flags field was changed to be 64 bit.
14 years ago
Victor Julien
3009429e3c
HTTP transaction handling improvement
...
In some cases AppLayerTransactionGetInspectId can return -1, which is
now handled by all it's callers.
Improve logic of selecting which transactions are inspected by the various
HTTP keywords.
14 years ago
Victor Julien
66a3cd96a8
Prepare HTTP response body tracking.
14 years ago
Anoop Saldanha
9a6aef459e
modify all relevant app layer API calls to accomodate passing parser local storage argument
14 years ago
Victor Julien
262a7300d7
flow: shrink Flow datatype
...
Introduce a separate FlowAddress structure for holding the ipv4 or ipv6 address
that doesn't have the family in it like the Address structure. Instead, the
family is stored in the flow as a flag: FLOW_IPV4 and FLOW_IPV6.
Add macro's to check the family, copy the address, etc.
Update many unittests to reflect these changes. Introduce unittest helper
functions for creating and initializing a flow and freeing it again.
On 64 bit this shrinks the flow with 8 bytes.
14 years ago
Victor Julien
06904c9024
App Layer cleanup
...
Removal of per flow 'aldata' array. It contained a ptr for each ALPROTO. Instead now we have 2 ptrs in the flow: alparser and alstate.
Various cleanups and dead code removal from the app layer API.
Should safe 100+ bytes memory per flow on 64 bit.
Updated lots of unittests to reflect these changes.
14 years ago
Anoop Saldanha
ed3b44b3b5
fix parsing content keywords. We are more strict now. All content keywords need to be enclosed in double quotes. Better validation for sid, priority and rev keywords
14 years ago
pilcrow
f5017e0d1a
Always try PCRE_NO_AUTO_CAPTURE first for signature regexes.
...
Many, many pcre: signatures specify (...) when the more efficient
(?:...) is all that is needed. This change attempts to force
PCRE_NO_AUTO_CAPTURE on all unnamed capture groups, reverting to
capturing when necessary, e.g., when \1 is referenced.
14 years ago
Victor Julien
3d396e8b1e
Update PCRE JIT code to support official JIT implementation in pcre-8.20-RC1.
14 years ago
William
6730c3ace1
Actually limit recursion and backtracking and stack usage by PCRE. Logic was broken, no example was provided in suricata.yaml even though it could be set from there.
14 years ago
William
d74fe520e5
Experimental support for PCRE-sljit enable via --enable-pcre-sljit
15 years ago
Anoop Saldanha
966119b6aa
support for http_raw_uri keyword + mpm engine
15 years ago
Victor Julien
1d971b53a6
Update all unittests
15 years ago
Anoop Saldanha
ceb7fd748e
support /D option for pcre - http raw header. Also support relative pcre for http raw header. All pcre processing for http header moved to hrhd engine
15 years ago
Victor Julien
39a5348d2b
Remove dead pcre code.
15 years ago
Anoop Saldanha
8bd6a38318
support relative pcre for http header. All pcre processing for http header moved to hhd engine
15 years ago
Anoop Saldanha
2b781f00d7
support relative pcre for client body. All pcre processing for client body moved to hcbd engine
15 years ago
Anoop Saldanha
4883efd0f6
unifying content structure - uricontent now uses DetectContentData
15 years ago
Anoop Saldanha
3d2f81d978
replace all Signature->dmatch instances in the engine with Signature->sm_lists[DETECT_SM_LIST_DMATCH]
15 years ago
Anoop Saldanha
e54358a9e1
replace all Signature->pmatch instances in the engine with Signature->sm_lists[DETECT_SM_LIST_PMATCH]
15 years ago
Victor Julien
66340be072
Fix pcre compilation with debug enabled.
15 years ago
Victor Julien
fc248ca7a1
Many small performance updates.
15 years ago
Pablo Rincon
06a65cb460
moving http_client_body logic to use it per transactions. Adding unittests
15 years ago
Anoop Saldanha
f094523eb1
clang fix - some minor fixes for unittests
15 years ago
Pablo Rincon
f225bd1428
Adding modifiers /C /H and /M to pcre (http cookie, header and method)
15 years ago
Victor Julien
1071a53210
Fix unittests after ip_proto keyword change.
16 years ago
Anoop Saldanha
ead29dc691
make detection engine use dce alstate(if present), on seeing smb traffic
16 years ago
Victor Julien
37ca07b687
Fix segv on loading signatures with unsupported combinations of pcre and the relative flag.
16 years ago
Anoop Saldanha
b94eaec7c2
implement relative pcre matching in detect-engine-(payload|uri|dcepayload).c. Also fix within/distance handling of RELATIVE_NEXT flag for uricontent
16 years ago
Anoop Saldanha
ce8d27425d
fix signature parsing to how snort does it for content based keywords along with dce_stub_data
16 years ago
Pablo Rincon
eedafa3a17
Adding unittests for anchored pcres for anchored
16 years ago
Anoop Saldanha
36e4b1830e
add pcre with U modifiers to the umatch sigmatch list. fix for bug 155
16 years ago
Gurvinder Singh
8852b83fa7
flowbits, flowvars, pktvars, flow flags and app layer info added to alert-debug.log
16 years ago
William Metcalf
0e4235cc94
FLOW_DESTROY added to clean-up UT's that init flow
16 years ago
Victor Julien
2f29b8a724
Improve detection of app layer, making sure we only handle app layer on 'established' packets. Should really fix #166 .
16 years ago
Anoop Saldanha
015385c6bd
changes to the dce parser stub data processed var. changed to stub data fresh var to indicate if the stub is fresh or not
16 years ago
Anoop Saldanha
45ea0d914e
dce stub content keywords support using dcepayload.c support for all dce related content keywords
16 years ago
Pablo Rincon
8cc525c939
UDP support at AppLayer message handling
16 years ago
William Metcalf
cc76aa4bc6
properly init flows inside of unit-tests caused lock-up when falling back to using mutex locks
16 years ago
Victor Julien
a0c1209a44
Inspect the reassembled stream together with the packet payload in the same direction.
16 years ago
Victor Julien
70b32f7380
First stab at creating a stateful detection engine.
...
Stateful detection for app layer detection keywords, except uricontent. Stores it's partial results in the flow structure. Other modifications:
- Generalize transaction tracking, logging and inspection.
- Adapt http and dcerpc to use the new transaction handling.
- Stream engine now always notifies app layer of a stream eof.
This commit fixes bug #124 .
16 years ago
Gerardo Iglesias Galvan
9f4fae5b1a
Fix inconsistent use of dynamic memory allocation
16 years ago
Gurvinder Singh
fdc3f728af
set the isdataat keyword when previous sigmatch is either content or pcre (bug 144)
16 years ago
William Metcalf
ce01927515
Import of GPLv2 Header 050410
16 years ago
Gurvinder Singh
7330bcd12c
fixed the regex in bug 136
16 years ago
Gurvinder Singh
0c4687f768
correct the typos (but 135)
16 years ago
Victor Julien
78e15ea7fa
Explicitly test for ipv6 in the htp personalities code. Update all affected unittests to set addr family to the flow.
16 years ago
Pablo Rincon
720f46642f
Fix redmine issue 49 (allow pcre to end a pattern with an escaped slash, '\')
16 years ago
Anoop Saldanha
97d49d8f5e
support for http_client_body keyword
16 years ago
Victor Julien
7a8cd61fdf
Cleanups.
16 years ago
Victor Julien
8b30226914
Detection keyword cleanup
16 years ago
Victor Julien
b259e362cd
Convert uricontent to use new scanning methods as well. Move http_method and http_cookie keywords out of pmatch list for now.
16 years ago
Victor Julien
bef70a04ce
First stage of detect engine redesign: equal patterns share id's, search phase no longer used, new match verification phase.
16 years ago
Pablo Rincon
25a3a5c6d8
Adding mem wrapper to debug runtime alloc()/free() functions. Fixing some memory leaks.
16 years ago
Victor Julien
963691387a
Disable unused uri scanning code.
16 years ago
Pablo Rincon
0165b3f0d8
pcre P modifier support (pcre match over http body requests)
16 years ago
Gerardo Iglesias Galvan
ba6d807a6e
Improve information about errors on signature failure
16 years ago
Jason Ish
9e4da4f8e7
supply pcre_get_substring with the proper start of the string.
16 years ago
Gurvinder Singh
356a8bf385
applayer uri match and modified http handling
16 years ago
Victor Julien
0d3da34f64
remove unused variables
16 years ago
Steve Grubb
60ad9d29c5
Memory leak cleanup in detectors
...
Hello,
I ran the code through an analysis program and found several leaks that
should be cleaned up.
*In src/detect-engine-address-ipv4.c at line 472, the test for ag == NULL
will never be true since that is the loop entry test.
*In src/detect-engine-port.c at line 1133, the test for p == NULL will
never be true since that is the loop entry test.
*In src/detect-engine-mpm.c at line 263 is a return without freeing
fast_pattern
*In src/detect-ack.c at line 80 and 85, data catches the return from malloc.
One of them should be deleted.
*In src/detect-seq.c at line 81 and 86, data catches the return from malloc.
One of them should be deleted.
*In src/detect-content.c at line 749, many of the paths that lead to the error
exit still has temp pointing to allocated memory. To clean this up, temp
should be set to NULL if not immediately assigning and new value.
*In src/detect-uricontent.c at line 319, both cd and str needto be freed. At
lines 344, str needs to be freed. And at line 347 str and temp need to be
freed.
*In src/detect-flowbits.c at line 231 and 235, str was not being freed. cd was
not being freed at line 235.
*In src/detect-flowvar.c at line 127, str was not being freed. At line 194, cd
and str were not being freed.
*In src/detect-flowint.c at line 277, sfd was not being freed. At line 315, str
was not being freed.
*In src/detect-pktvar.c at line 121, str was not being freed. At line 188, str
and cd was not being freed.
*In src/detect-pcre.c at line 389, there is an extra free of "re" that should
be deleted.
*In src/detect-depth.c at line 42 & 48, str has not been freed.
*In src/detect-distance.c at line 49 and 55, str has not been freed
*In src/detect-offset.c at line 45, str has not been freed.
The patch below fixes these issues.
-Steve
16 years ago
Victor Julien
42e8a01221
Make sure pcre PCRE_EXTRA_MATCH_LIMIT_RECURSION check works with strict compiler settings.
16 years ago
William Metcalf
5bde121754
--enable-gccprofile sets -pg flag detect presence of pcre recursion
16 years ago
Victor Julien
ef6ab4efa0
Add pcre negate support.
16 years ago
William Metcalf
1d553c940b
failing unit test showing negated pcre treated as nonnegated match
16 years ago
Pablo Rincon
0e83759ed4
Small fix
16 years ago
Victor Julien
ecf86f9c23
Rename to Suricata.
16 years ago
Pablo Rincon
a8d7b71490
First version of flowints
16 years ago
Breno Silva
c552ccbd93
PCRE O Modifier
16 years ago
Victor Julien
2d0e9658f8
Speed up per sgh content maxlen calc. Remove mpm ptrs from mpm ctx. Add unittests testing the detection engine internals.
16 years ago
Victor Julien
7a7bb7a390
Get rid of global mpm_ctx.
16 years ago
Victor Julien
d4733e3a76
Move pcre test out of detect.c
16 years ago
William Metcalf
86380b9d45
split out pcre parsing fixed some errors
16 years ago
Gurvinder Singh
a991ab0a19
added sigmatch payload flag
16 years ago
Victor Julien
91bc83e5c6
More logging API usage changes.
16 years ago
Victor Julien
0d0ffb9963
Reorganize header inclusions.
16 years ago
Victor Julien
1132ab635a
Rename all pmt->det_ctx.
16 years ago
Victor Julien
b9972a9d2c
Cleanups
16 years ago
Victor Julien
97854cf4bb
Fixup some rule parser memleaks
16 years ago
Victor Julien
451adaff34
Small name support code update for flowbits, flowvars and pktvars.
16 years ago
Brian Rectanus
fa5939ca91
64 bit cleanup part2
16 years ago
Victor Julien
ff4b5a5db7
Add support for flowbits.
17 years ago
Victor Julien
657be002d1
Big detection engine update: scan improvements, b2g/b3g updates, bloom fixes, iponly detection implementation, dsize/flow grouping.
17 years ago
Victor Julien
5df5b35e90
Put all globals in the detection engine ctx. Add HashList type, a hash that also stores the items ina list to it can be traversed. Many cleanups.
17 years ago
Victor Julien
efb10fc0d6
big update
17 years ago
Victor Julien
c4f2fe4bd7
Implement per packet variables and switch the http stuff to it.
17 years ago
Victor Julien
54ffe2053e
Large detection engine update.
17 years ago
Victor Julien
b1a13c89bd
Improve memory handling of the pcre rule keyword.
17 years ago
Victor Julien
69162f9cd0
Fix issue with log-httplog where it logged uri's of previous packets because of a broken uri check.
17 years ago
Victor Julien
dc224cb2d2
Large update containing the first step to making the detection engine use rule groups. Address based rule groups are now implemented.
17 years ago
William Metcalf
87411594e2
groups fixed for pcre < 7
17 years ago
Victor Julien
bab4b62376
Initial add of the files.
17 years ago