Victor Julien
07776c113b
Fix valgrind error on pfring_recv, rename threads from RecvPfring to RxPfring so the name still looks right for 100+ threads. Add --pfring commandline option that just enables pfring, then takes interface from config.
15 years ago
Victor Julien
1c9e48ae98
Fix compilation error on non-pfring systems.
15 years ago
Victor Julien
91f28afef4
Add option to PF_RING to have multiple reader threads. Improve general performance of the PF_RING module.
15 years ago
Gurvinder Singh
7d0781b349
added support to log dropped packet as netfilter logs while in inline mode
15 years ago
Gurvinder Singh
8f8b1212af
support for ssl_version keyword
15 years ago
Gurvinder Singh
e5edc6e8e3
add the support to log the fast.log alerts type to syslog
15 years ago
Eric Leblond
1e600c1054
source-nfq: add simulated non-terminal NFQUEUE verdict
...
This patch adds a new mode for NFQ inline mode. The idea is to
simulate a non final NFQUEUE rules.
This permit to do send all needed packets to suricata via a simple
FORWARD rule:
iptables -I FORWARD -m mark ! --mark $MARK/$MASK -j NFQUEUE
And below, we have a standard filtering ruleset.
To do so, suricata issues a NF_REPEAT instead of a NF_ACCEPT verdict and
put a mark ($MARK) with respect to a mask ($MASK) on the handled packet.
NF_REPEAT verdict has for effect to have the packet reinjected at start
of the hook after the verdict. As it has been marked by suricata during
the verdict it will not rematch the initial rules and make his way to
the following classical ruleset.
Mode, mark and mask can be configured via suricata.yaml file with the
following syntax:
nfq:
repeat_mode: (false|true)
mark: $MARK
mask: $MASK
Default is false to preserve backward compatibility.
Signed-off-by: Eric Leblond <eric@regit.org>
15 years ago
Eric Leblond
8330747234
Add multi queue support to NFQ run mode
...
This patch adds support for multiple Netfilter queue
in the NFQ run mode. Suricata can now be started on
multiple queue by using a comma separated list of
queue identifier on the command line. The following syntax:
suricata -q 0 -q 1 -c /opt/suricata/etc/suricata.yaml
will start a suricata listening to Netfilter queue 0 and 1.
Signed-off-by: Eric Leblond <eric@regit.org>
15 years ago
Victor Julien
6fca55e068
Add some debug output to app-layer-htp.
15 years ago
Anoop Saldanha
c9897a44a4
fast pattern support for http_cookie. Also support relative modifiers
15 years ago
Anoop Saldanha
bbbedaf963
fast pattern support for http_method. Also support relative modifiers
15 years ago
Eric Leblond
9c2bdc6d0c
Main loop: increase timer.
...
Timer in the main loop was of 100 usec. This patch increases it
to 10 ms which should be a reasonnable delay to declare some threads
dead.
Signed-off-by: Eric Leblond <eric@regit.org>
15 years ago
Eric Leblond
67b95c8c4d
Auto discovery of default packet size
...
If default-packet-size is not set, it is possible in some case to
guess a correct value.
If PCAP or PF_RING are used we are linked to a "physical" interface.
Thus, it is possible to get information about the link MTU and
hardware header size. This give us the ability to auto discover a
decent default-packet-size.
If suricata is running under a different running-mode, it will
default to 1514.
15 years ago
Eric Leblond
dd038c1906
Modify files to avoid direct pckt payload access
...
This patch implements the needed modification of payload access
in a Packet structure to support the abstraction introduced by
the extended data system.
15 years ago
Eric Leblond
e802e1ed16
Modify Packet structure and prepare accessor.
...
This patch modifies decode.c and decode.h to avoid the usage
by default of a bigger than 65535 bytes array in Packet structure.
The idea is that the packet are mainly under 1514 bytes size and
a bigger size must be supported but should not be the default.
If the packet length is bigger than DFLT_PACKET_SIZE then the
data are stored in a dynamically allocated part of the memory.
To ease the modification of the rest of the code, functions to
access and set the payload/length in a Packet have been introduced.
The default packet size can be set at runtime via the default-packet-size
configuration variable.
15 years ago
Victor Julien
878d3d87db
Add (experimental) support for using multiple pcap devices to acquire packets from. Just passing multiple -i <dev> options on the commandline will activate this. Windows not yet supported.
15 years ago
Victor Julien
e3bde3e95d
Add a simple revision based on the git rev to the version number, like a build number.
15 years ago
Victor Julien
ffcd512167
Clean up packet pool handler on shutdown.
15 years ago
Victor Julien
3710296057
Cleanup defrag engine on shutdown.
15 years ago
Anoop Saldanha
d241e51b32
adapt fast pattern engine analysis to reflect the new changes made to your mpm design
15 years ago
Anoop Saldanha
42c1287028
renintroduce g_u8_lowercase_table for b2g cuda
15 years ago
Anoop Saldanha
c734cd1bdd
make cuda mpm parameters configurable
15 years ago
Anoop Saldanha
7ec0382774
support fast pattern for http raw header. Also support relative modifiers for http raw header
15 years ago
Anoop Saldanha
c61c68fd36
mpm and fast pattern support for http_header. Also support relative modifiers for http_header
15 years ago
Anoop Saldanha
5c6a65dc58
support relative modifiers for http_client_body. Introduce body processing engine in detect-engine-hcbd.[ch]
15 years ago
Anoop Saldanha
eade60f0fd
make some name changes. break PopulateMpm(). Set the avoid mpm double check flags
15 years ago
Anoop Saldanha
46b4806d8e
use a single populatempm() function to add the right content for mpm
15 years ago
Anoop Saldanha
bc99328ec8
define a new conf paramter detect-engine:inspection-recursion-limit; Defines a recursion limit for content inspection code
15 years ago
Victor Julien
001dcaae84
Minor reference.config support changes: improve error handling, reduce hash table size.
15 years ago
Anoop Saldanha
88d94b136d
Support for reference.config file
15 years ago
Anoop Saldanha
2cdb5be391
Print out file name for fast_pattern engine_analysis. Also add some info logs
15 years ago
Anoop Saldanha
0ef684705c
support single mpm context distribution across sghs in staging. Also see to it that ac works fine with this setup
15 years ago
Anoop Saldanha
a85fa6b792
support for fast_pattern only and fast_pattern:offset,length. Also support the new option for engine-analysis
15 years ago
Pablo Rincon
b3a8f0a90f
Fix asn1 decoder frame oob mem. Adding max stack frames to suricata.yaml
15 years ago
Gurvinder Singh
3eab715153
support for printing protocol names for known protocol
15 years ago
Victor Julien
1859ed54c7
Add memcmp api with a plain memcmp function and a SSE3 accelerated memcmp.
15 years ago
Victor Julien
3971bcc83a
Switch to faster tolower function for u8_tolower.
15 years ago
Pablo Rincon
5c43db85ce
Drop streams on inline mode when a drop rule match from a reassembled stream and/or app layer inspection
15 years ago
Pablo Rincon
76af1b049b
Make malloc errors on initialization stage a fatal error, resulting on a exit() call
15 years ago
Pablo Rincon
9d7baa7a9f
Adding ssh app layer module with two new keywords: ssh.protoversion and ssh.softwareversion
15 years ago
Anoop Saldanha
07491f8887
add --list-cuda-cards option to list the cuda cards on the system. Add conf parameter to select the cuda device to use. Also change the threshhold limit to 2.4k packets to buffer
15 years ago
Anoop Saldanha
33f4beb0bc
batching of packets support for cuda b2g mpm. Supported for both 32 and 64 bit platforms
15 years ago
Victor Julien
8cdd02877f
Add unittests for ringbuffer.
15 years ago
Anoop Saldanha
36e4b1830e
add pcre with U modifiers to the umatch sigmatch list. fix for bug 155
15 years ago
Pablo Rincon
eed0ef6e69
Adding tag keyword support
15 years ago
Kirby Kuehl
c3b9305259
dcerpc udp support
15 years ago
Victor Julien
6519a86ec7
Move packet pool to ringbuffer, update packet pool api and ringbuffer api. Remove memset usage from PACKET_RECYCLE, add proper cleanup macros.
15 years ago
Victor Julien
012e602c3f
Add a (disabled by default) flow pinned runmode for file pcap.
15 years ago
Anoop Saldanha
45ea0d914e
dce stub content keywords support using dcepayload.c support for all dce related content keywords
15 years ago
Jason MacLulich
835630efbd
Add initial support for reading packets from a DAG card, we only support reading from a single stream at this time.
...
Use the --dag <dagname> cmd line option to specify from which DAG card to read pkts
from.
Issue at the moment with pkts being ejected during shutdown -- at the moment we
ignore any packets that are not of link type Ethernet.
15 years ago
Ondrej Slanina
6bf7d76005
added possibility to run suricata as WIN32 service
15 years ago
Ondrej Slanina
79443b1991
added INT and TERM signals on WIN32
15 years ago
William Metcalf
9ce1399db8
Add option for setting pcap buffer size if it is available
15 years ago
Victor Julien
4e7df60b2f
Make pcap file mode read multiple packets per 'read'. Update threading model to deal with this.
15 years ago
Victor Julien
6f502f0da5
lockfree ringbuffer wip2, including proper shutdown.
15 years ago
Jason Ish
a93b2e6b84
Support for reading ERF files.
15 years ago
William Metcalf
2eef905c07
GPL and Copyright header updates.
15 years ago
Victor Julien
2910759943
Rename TranslateIPToPcapDev to PcapTranslateIPToDevice and make the length argument size_t.
15 years ago
Ondrej Slanina
55d0d1e7a1
added support for finding pcap device via it's IP.
15 years ago
Gurvinder Singh
5fe1dc1d24
support for sslv2/sslv3 their unit tests and better stream no reassembly flag handling
15 years ago
Victor Julien
b8641f300d
Rename asn1 files, fix an invalid free, fix improper init of vars in one unittest.
15 years ago
Pablo Rincon
3fa3229e01
ASN1 decoder and keyword implementation
15 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 .
15 years ago
Jason Ish
18e5ac8cde
Basic rule profiling even though the results may be skewed by a bad rule in a grouping of rules.
15 years ago
William Metcalf
b629b7c5c1
only show cli opts via help that we have support for
15 years ago
Victor Julien
692eb935ea
Fix updated memory api using debug mode by default. Small cleanups.
15 years ago
Gerardo Iglesias Galvan
9f4fae5b1a
Fix inconsistent use of dynamic memory allocation
15 years ago
Victor Julien
e741bd0202
Cleanup packet recycling code. Fix issues in the packet tunnel/pseudo code.
15 years ago
Victor Julien
e1a8c8f76c
Switch time api from mutex to spinlock.
15 years ago
Victor Julien
19584d0416
Fix tunneled and defrag reassembled packets with the new pending limits.
15 years ago
Victor Julien
ccf22cf563
Move to different way of enforcing max_pending. Should require less locks.
15 years ago
William Metcalf
5fb405335e
Small wrapper fixes to allow for windows compilation
15 years ago
Pablo Rincon
1238668961
Adding actions order and suport for rule action "pass"
15 years ago
William Metcalf
ce01927515
Import of GPLv2 Header 050410
15 years ago
Victor Julien
070ed778b8
Libcap-ng support by Gurvinder Singh and myself. Basic support for per thread caps is added, but not activated as it doesn't seem to work yet. Work around for incompatibility between libnet 1.1 and libcap-ng added.
15 years ago
Anoop Saldanha
0b6dc3e8d5
Fix globalinit memset for trans_q
15 years ago
Victor Julien
2797e67a79
Print Suricata version after initializing logging subsys.
16 years ago
Victor Julien
71b327bd23
Improve error detection in the pidfile api.
16 years ago
Pablo Rincon
9803def006
Adding pidfile support (thanks to Steve Grubb for the patch)
16 years ago
Anoop Saldanha
9e94768385
fix for bug 108
16 years ago
Anoop Saldanha
97d49d8f5e
support for http_client_body keyword
16 years ago
Breno Silva
67f2026279
Global Threshold config
16 years ago
William Metcalf
b0faeb91d7
small PF_RING update cmd line opts changed
16 years ago
Jason Ish
acaee78b1c
Fix bug 125. - Always bail on parse errors. - Exit if loading the config file fails. - Display the line number where the parsing failed.
16 years ago
root
ddf995da3b
pfring support lb type, and now uses logging subsys
16 years ago
Jason Ish
5c3ab2b73f
Load host OS info from the configuration.
16 years ago
Victor Julien
80dc4f1dbe
Further simplify content api: merge flags that indicate a next relative match, remove chunks as they are unnecessary now, make negated a bitflag.
16 years ago
Pablo Rincon
25a3a5c6d8
Adding mem wrapper to debug runtime alloc()/free() functions. Fixing some memory leaks.
16 years ago
Jason Ish
7537013e16
Fix bug 99.
...
- Handle the case where the parent node already exists in ConfSet.
- Deal with allow_override properly when a node has already been
set with ConfSet.
16 years ago
Pablo Rincon
7719216575
Setting thread priorities with nice
16 years ago
Jan Jezek
fe6a72befc
Code is now compilable on the Win32 platform
16 years ago
Anoop Saldanha
1a5ee37bd3
Added cuda logs for the engine, which shows device info and memory usage
16 years ago
Anoop Saldanha
8cf60d6645
Changed the way cuda dispatcher passes back results. Now each detection thread has it's own queue to which the dispatcher can pump packets back to the detect thread. Also, with cuda enabled and a non-cuda mpm being used, we won't create a dispatcher and instead call the b2g scan/search funtions directly instead of using the dispatcher.
16 years ago
Anoop Saldanha
c26e92733d
handle the cuda cleanup at shutdown. should get rid of any errors from the call to SigGroupCleanup
16 years ago
Victor Julien
d281a6b8ac
CUDA build system support & compile fixes
...
- add configure support for CUDA
- make sure all code compiles if CUDA is disabled
- fix compiler warnings
16 years ago
Anoop Saldanha
a2948fc25c
valgrind fixes for b2g cuda mpm
16 years ago
Anoop Saldanha
41e6735b92
mpm b2g cuda support added
16 years ago
Anoop Saldanha
84df26d3fd
cuda interface
16 years ago
Pablo Rincon
b482471a7d
Adding auto runmodes based on available core/cpu's. Setting thread priorities
16 years ago
Breno Silva
b02bb6b6b4
VLAN Support
16 years ago
Pablo Rincon
0165b3f0d8
pcre P modifier support (pcre match over http body requests)
16 years ago
Victor Julien
2cb2989ad8
Apply configurable max pending packets to nfq and ipfw
16 years ago
Jason Ish
7142fdb780
quick way to make max_pending configurable.
16 years ago
Pablo Rincon
d0404d8447
Renaming errors with naming conventions
16 years ago
Pablo Rincon
ad2c136e8f
Renaming errors (naming conventions)
16 years ago
Victor Julien
e0aacac4c6
Move bpf string retrieval to it's own function. Clean up pcap sourcres a bit.
16 years ago
William Metcalf
ba46c16aac
bpf support for pcap modes
16 years ago
Pierre Chifflier
4515ae13e4
Add Prelude output plugin
...
Add support for reporting alerts to the Prelude SIEM system, using
libprelude to send IDMEF (RFC4765) messages.
Each message contains the alert description and reference (using
the SID/GID), and a normalized description (assessment, impact,
sources etc.)
libprelude handles the connection with the manager (collecting component),
spooling and sending the event asynchronously. It also offers transport
security (using TLS and trusted certificates) and reliability (events
are retransmitted if not sent successfully).
This modules requires a Prelude profile to work (see man prelude-admin
and the Prelude Handbook for help).
Signed-off-by: Pierre Chifflier <chifflier@edenwall.com>
16 years ago
Gurvinder Singh
cf5266094d
bug 66 patch
16 years ago
Gurvinder Singh
3cad20946d
bug 64 patch
16 years ago
Victor Julien
6a53ab9c5a
Stream engine memory handling update
...
The stream engine memory handling needed updating as it didn't scale. Changes:
- pools can now be initialized to size 0, meaning unlimited
- stream engine uses a memcap setting. Sessions, segments and aldata is part
of this, app layer state isn't.
- memory is accounted using a global int that is spinlocked.
- a counter for sessions that have not been picked up because of memcap was
added.
- all reassembly errors are converted to debug msgs.
16 years ago
Nick Rogness
2b7b78f1bf
Intial IPFW support FreeBSD and OSX
16 years ago
Pablo Rincon
7f250a814a
Fixing redeclaration of run_mode
16 years ago
Pablo Rincon
5592189c04
Loading flow settings from config
16 years ago
Jason Ish
0a5bc2d600
Fix issue 74. separate initialization of run modes from adding them to a thread. - fixes issues with multiple output threads.
16 years ago
Pablo Rincon
260e581929
First version of the reputation API
16 years ago
Pablo Rincon
256d745b39
Including header file for cpu detection
16 years ago
Pablo Rincon
17cd010b0c
Detect the number of CPUs configured and online. Printing a small summary at the startup
16 years ago
Victor Julien
d446b85237
Remove obsolete files.
16 years ago
William Metcalf
82978f9f27
new pfring runmode for quad core, other small pfring fixes
16 years ago
Pablo Rincon
705471e4ee
Adding single pattern matcher algorithms. If you cannot store a context for the patterns, use SpmSearch() macro. Adding unittests and stats
16 years ago
Gurvinder Singh
5c8d90afc8
memory leak fixes
16 years ago
William Metcalf
8a64321340
raw pcap support additionl ipv4/6 validation
16 years ago
Pablo Rincon
b6a3395c08
Adding unittest helper functions for building generic packets, checking arrays of expected match results, perform generic tests, etc. Look at util-unittest-helper.c and detect-ipproto.c for references
16 years ago
Jason Ish
095f2cf6ef
Consistency fix.. Xxxlog -> XxxLog.
16 years ago
Jason Ish
e204d07717
Have output modules register themselves so run mode configurator becomes aware of them for purposes of being configured from the config file.
16 years ago
Victor Julien
56556eb550
Set payload no inspect flag for packets with encapsulated packets as these are inspected separately
16 years ago
Victor Julien
9ececacda3
Fix packet timestamp handling for encapsulated packets.
16 years ago
Jason Ish
cf95fa7c74
configurable outputs for nfq and pcap file.
16 years ago
Jason Ish
a05436af8c
Configurable alert outputs for PF_RING modes.
16 years ago
Jason Ish
844c444af1
Use the configuration file to setup alert logging (and http logging).
...
Only setup for the live pcap modes at the moment.
16 years ago
Victor Julien
b7bac14040
Fixup code to compile with -Wall -Werror -Wextra -Wno-unused-parameter compiler options.
16 years ago
Victor Julien
1f09a88c93
Improve default-log-dir error checking and reporting.
16 years ago
Anoop Saldanha
750600ab17
check for the existance of default logging directory
16 years ago
Anoop Saldanha
bc4df59414
Support for Classtype keyword and Classification Config file
16 years ago
Victor Julien
4862488dac
add version output, -V option
16 years ago
Will Metcalf
f2b1e66a6a
fixes for init failure stuff
16 years ago
Victor Julien
778228d1c5
Flags keyword fix. Fatal init fix.
16 years ago
Will Metcalf
cc3c1779cd
more project name updates
16 years ago
Gurvinder Singh
b92886a79a
bug#18 and some minor changes
16 years ago
Pablo Rincon
f2f9b83280
Adding FTP app layer parser and ftpbounce detection at L7
16 years ago
Gurvinder Singh
8c8b8596c8
fixed bug 18
16 years ago
Victor Julien
493715c0d2
Implement alert sid storage in the flow so we can check previous alerts in the flow.
16 years ago
Jason Ish
28cad3429c
An example of how logging could be configured from the log file.
16 years ago
Gerardo Iglesias Galvan
5471baf8f4
Change case values to their corresponding enum values
16 years ago
Gerardo Iglesias Galvan
e917065e26
Add support for daemon, checking for valid combination of modes
16 years ago
Victor Julien
ecf86f9c23
Rename to Suricata.
16 years ago