Eric Leblond [Mon, 8 Apr 2013 17:16:31 +0000 (19:16 +0200)]
coccinelle: add tcp flag check
The different TCP related structures have all a flags field and its
value must match the type of structure. This patch adds a check
alerting on invalid value usage.
Victor Julien [Sat, 6 Apr 2013 15:26:33 +0000 (17:26 +0200)]
stream: zero ts is a per stream flag
Ssn flag STREAMTCP_FLAG_ZERO_TIMESTAMP was used in stream only. Due to
it's value it did not conflict with a real stream flag. Renamed it to
STREAMTCP_STREAM_FLAG_ZERO_TIMESTAMP.
Victor Julien [Sat, 6 Apr 2013 15:17:15 +0000 (17:17 +0200)]
stream: don't use ssn timestamp flag in stream
The STREAMTCP_FLAG_TIMESTAMP flag is a ssn flag, however it was used in
the stream flag field. As it has the same value as
STREAMTCP_STREAM_FLAG_DEPTH_REACHED it's possible that stream reassembly
got confused by the timestamp.
Anoop Saldanha [Wed, 27 Mar 2013 12:27:55 +0000 (17:57 +0530)]
Handle the case of pcre combined with a relative content, where pcre has the
set to match from start of line and we discontinue matching on not finding
match.
Eric Leblond [Tue, 26 Mar 2013 17:24:46 +0000 (18:24 +0100)]
Don't try to sniff 'default' interface
Whan running suricata via 'suricata --af-packet', the list of interfaces
was containing the 'default' interface and sniffing it was attempted.
This was not wanted.
Victor Julien [Wed, 20 Mar 2013 16:18:38 +0000 (17:18 +0100)]
After some discussion we decided that var declarations inside a for statement are not in line with our coding style. So removing a bunch. Decision was not unanimous ^^.
Anoop Saldanha [Wed, 20 Mar 2013 12:47:42 +0000 (18:17 +0530)]
Minor fixes against the last set of patches for #564, 565, 581 + fp automation.
Rename struct DetectFigureFPAndId_t_ to DetectFPAndItsId_ and move it's
definition from inside the function where it's used to the global namespace,
as requested on #suricata.
Rename DetectEngineContentModifiedBufferSetup to DetectEngineContentModifierBufferSetup.
Also rename DetectFigureFPAndId() to DetectSetFastPatternAndItsId().
Updated DetectSetFastPatternAndItsId() to not exit on failure and return error.
Anoop Saldanha [Fri, 1 Mar 2013 11:12:08 +0000 (16:42 +0530)]
Update content id assignment.
All fp id assignment now happens in one go.
Also noticing a slight perf increase, probably emanating from improved cache
perf.
Removed irrelevant unittests as well.
Eric Leblond [Thu, 28 Feb 2013 15:52:43 +0000 (16:52 +0100)]
pcap-file: treat the case of unsupported pcap link
In unix socket mode, Suricata was stopping processing pcap files
when a pcap file with an unsupported datalink was treated. This
patch updates error handling to allow Suricata to treat other
pcap files.
Eric Leblond [Tue, 22 Jan 2013 09:47:29 +0000 (10:47 +0100)]
suricatasc: update python packaging
'make install' install now suricatasc script and Python module to
the system. The suricatasc client module can now be used in other
Python projects by using 'import suricatasc'.
A transformation was needed for distribution of a module and a script.
Module in src directory is now containing most of the code and the
script only handle argument parsing and the creation of a unix socket
client through 'suricatasc' module.
Eric Leblond [Thu, 6 Dec 2012 10:21:57 +0000 (11:21 +0100)]
suricatasc: refactor as a class
The goal of this commit is to be able to use suricatasc has a library
and and program. This is done by putting all active code in class and
adding a Python magic to detect when file is used as a program.
Eric Leblond [Fri, 30 Nov 2012 19:47:47 +0000 (20:47 +0100)]
suricatasc: real cmd line parsing and verbose mode
This patch adds commandline parsing and help to suricatasc. It also
adds a verbose mode (-v) where the send and received JSON object are
shown. This should ease development of unix socket client.
Eric Leblond [Fri, 30 Nov 2012 19:11:44 +0000 (20:11 +0100)]
unix socket: add 'conf-get' command
This patch adds a 'conf-get' command which get the configuration
value from suricata. Argument of the command is the name of the
variable to fetch.
The command syntax is the following:
{
"command": "conf-get",
"arguments": { "variable":value}
}
Eric Leblond [Fri, 30 Nov 2012 17:13:11 +0000 (18:13 +0100)]
suricatasc: factorize code and use dynamic commands
This patch factorize the recv code and uses the new 'command-list'
to get the list of existing commands from suricata. This allows
suricatasc to be able to call any new command if this command does
not require an argument.
Eric Leblond [Fri, 22 Feb 2013 14:54:09 +0000 (15:54 +0100)]
Fix build with old pcap library.
Pcap snaplen related modification broke compilation of Suricata for
system having old pcap library. This patch fixes the issue and allow
old pcap library to honour the snaplen value.
Eric Leblond [Mon, 18 Feb 2013 10:00:20 +0000 (11:00 +0100)]
Workaround function missing in libhtp include
As reported in bug #688, htp_config_set_path_decode_u_encoding
function is not included in libhtp header before 0.3.0. Result
is that suricata compilation fail with an external htp library.
The following patch detect the issue and adds the missing
declaration.
Matt Keeler [Tue, 19 Feb 2013 16:49:06 +0000 (11:49 -0500)]
Added host buffer allowance and stream configuration for Napatech 3GD
Added a napatech section in the yaml configuration.
hba - host buffer allowance
use-all-streams - whether all streams should be used
streams - list of stream numbers to use when use-all-streams is no
The source-napatech.* files were modified to support the host buffer allowance configuration.
The runmode-napatech.c file was modified to support both the host buffer allowance configuration and stream configuration
Eric Leblond [Fri, 15 Feb 2013 15:11:47 +0000 (16:11 +0100)]
pcap: add snaplen YAML variable
This patch introduces 'snaplen' a new YAML variable in the pcap section.
It can be set per-interface to force pcap capture snaplen. If not set
it defaults to interface MTU if MTU can be known via a ioctl call and to
full capture if not.
Eric Leblond [Fri, 15 Feb 2013 11:10:25 +0000 (12:10 +0100)]
pcap: set snaplen to MTU if available.
Main objective of this patch is to use a dynamic snaplen to avoid
to truncate packet at the currently fixed snaplen.
It set snaplen to MTU length if the MTU can be retrieved. If not, it
does not set the snaplen which results in using a 65535 snaplen.
libpcap is trying to use mmaped capture and setup the ring by using buffer_size
as the total memory. It also use "rounded" snaplen as frame size. So if we set
snaplen to MTU when available we are optimal regarding the building of the ring.
Eric Leblond [Thu, 14 Feb 2013 10:11:55 +0000 (11:11 +0100)]
teredo: update protocol decoding.
This patch fixes an error in pointer arythmetic and add some
comments to increase maintanability of the code. It also
simplify the decoding code as a careful RFC reading indicate
that if we discard packet containing an authentication field,
it is only possible to have a single origin indication field.