Commit graph

6698 commits

Author SHA1 Message Date
Johanna Amann
4ad5d9073a NetControl: add catch and release event when IPs are forgotten.
This adds an event that is raised once Catch & Release ceases the
block management for an IP address because the IP has not been seen in
traffic during the watch interval.

This allows users who use their own logic on the top of catch and
release know when they will have to start re-blocking the IP if it
occurs in traffic again.
2016-07-28 16:28:07 -04:00
Robin Sommer
743e563dd9 Updating doc test baseline. 2016-07-26 15:06:23 -07:00
Robin Sommer
5b73345b73 Merge remote-tracking branch 'origin/topic/johanna/bit-1181'
BIT-1181 #merged

* origin/topic/johanna/bit-1181:
  Input: Further small changes to error handling
  Add error events to input framework.
2016-07-26 14:52:27 -07:00
Robin Sommer
cc67acdcfe Merge remote-tracking branch 'origin/topic/johanna/bit-1325'
BIT-1325 #merged

* origin/topic/johanna/bit-1325:
  Enable SQLite shared cache mode.
2016-07-26 14:39:01 -07:00
Johanna Amann
51b8dee70b Adjust default priority of ACTION_DROP hook.
We use -5, just like all other normal notice framework actions.
2016-07-26 13:39:40 -07:00
Johanna Amann
4f51d6fc47 Fix types when constructing SYN_packet record.
The types used by the core did not match the types expected by the
scripting framework, leading, e.g., to trouble with the logging
framework.

Discovered and fixed by Grant Moyer.

Fixes BIT-1650
2016-07-26 11:51:26 -07:00
Johanna Amann
c8e1a39758 Input: Further small changes to error handling
Calling Error() in an input reader now automatically will disable the
reader and return a failure in the Update/Heartbeat calls.

Also adds more tests.

Addresses BIT-1181
2016-07-25 15:35:46 -07:00
Robin Sommer
f6ff7f1e66 Updating link in docs for deprecated plugin. 2016-07-23 07:29:32 -07:00
Robin Sommer
af834410f6 Updating submodule(s).
[nomail]
2016-07-23 07:26:15 -07:00
Robin Sommer
163ee380d3 Updating submodule(s).
[nomail]
2016-07-23 07:25:52 -07:00
Robin Sommer
5738398935 Updating submodule(s).
[nomail]
2016-07-23 07:20:55 -07:00
Johanna Amann
6b9abe85a7 Add error events to input framework.
This change introduces error events for Table and Event readers. Users
can now specify an event that is called when an info, warning, or error
is emitted by their input reader. This can, e.g., be used to raise
notices in case errors occur when reading an important input stream.

Example:

event error_event(desc: Input::TableDescription, msg: string, level: Reporter::Level)
	{
	...
	}

event bro_init()
	{
	Input::add_table([$source="a", $error_ev=error_event, ...]);
	}

For the moment, this converts all errors in the Asciiformatter into
warnings (to show that they are non-fatal) - the Reader itself also has
to throw an Error to show that a fatal error occurred and processing
will be abort.

It might be nicer to change this and require readers to mark fatal
errors as such when throwing them.

Addresses BIT-1181
2016-07-22 19:45:28 -07:00
Johanna Amann
bd4c32460b SQLite writer: Remove unused string formatting function. 2016-07-22 14:53:31 -07:00
Johanna Amann
4968a5c654 Enable SQLite shared cache mode.
This allows all threads accessing the same database to share sqlite
objects. This, for example, fixes the issue with several threads
simultaneously writing to the same database file.

See https://www.sqlite.org/sharedcache.html

Addresses BIT-1325
2016-07-21 12:10:20 -07:00
Johanna Amann
697b59cdc8 Update submodules
[nomail]
2016-07-21 11:50:39 -07:00
Robin Sommer
990f2ab0ea Merge branch 'topic/robin/bit-1612-merge' 2016-07-15 09:17:44 -07:00
Robin Sommer
647a18e433 Merge remote-tracking branch 'origin/topic/johanna/bit-1612' into topic/robin/bit-1612-merge 2016-07-15 09:03:11 -07:00
Johanna Amann
83b94331cd HLL: make large value test use signed integer, not counts. 2016-07-14 18:13:01 -07:00
Robin Sommer
4d84ee82da Merge remote-tracking branch 'origin/topic/johanna/bit-1612'
Addig a new random seed for external tests.

I added a wrapper around the siphash() function to make calling it a
little bit safer at least.

BIT-1612 #merged

* origin/topic/johanna/bit-1612:
  HLL: Fix missing typecast in test case.
  Remove the -K/-J options for setting keys.
  Add test checking the quality of HLL by adding a lot of elements.
  Fix serializing probabilistic hashers.
  Baseline updates after hash function change.
  Also switch BloomFilters from H3 to siphash.
  Change Hashing from H3 to Siphash.
  HLL: Remove unnecessary comparison.
  Hyperloglog: change calculation of Rho
2016-07-14 16:26:17 -07:00
Johanna Amann
8d9cd60fa8 SSL: Fix ref/unref problem.
VectorType unref'd the Record type we used during construction,
apparently leading to it not being present anymore at some point of
time.

Fix this problem by doing it just like all other analyzers.
2016-07-14 14:33:12 -07:00
Johanna Amann
4252c003d0 HLL: Fix missing typecast in test case.
This kind of error apparently triggered a warning in 2.4, but does no
longer on master.
2016-07-14 07:25:33 -07:00
Johanna Amann
499ed5b566 Remove the -K/-J options for setting keys.
The options were never really used and do not seem especially useful;
initialization with a seed file still works.

This also fixes a bug with the initialization of the siphash key.
2016-07-13 16:57:53 -07:00
Johanna Amann
313647ce0e Merge remote-tracking branch 'origin/master' into topic/johanna/bit-1612 2016-07-13 10:58:56 -07:00
Johanna Amann
c625128e4e Add test checking the quality of HLL by adding a lot of elements.
The test adds 170,000 IP addresses. After the recent hashing changes,
HLL estimates 171,250 entries (completely stable). Before, HLL estimated,
depending on the initial seeds, ~700 to 300,000 entries.
2016-07-13 10:36:11 -07:00
Johanna Amann
4a14fd4688 Fix serializing probabilistic hashers. 2016-07-13 10:12:17 -07:00
Johanna Amann
cdb6a1b6e6 Baseline updates after hash function change. 2016-07-13 10:11:37 -07:00
Johanna Amann
f1bae871e9 Also switch BloomFilters from H3 to siphash.
This removes all dependencies on H3 in our source tree.
2016-07-13 09:04:10 -07:00
Johanna Amann
e1218cc7fa Change Hashing from H3 to Siphash.
This commit mostly changes the hash function that is used for Internal
hashing of data < 36 bytes from H3 to Siphash. This change is motivated
by the fact that it turns out that H3 apparently does not deliver a very
good source of data uniqueness; running HLL with H3 as a hashing
function results in quite poor results (up to of 75% off in my tests).
In difference, running HLL with Siphash (or HMAC-MD5) changes this
factor to ~2%.

This also fixes a long-standing bug in Hash.h which truncated our hash
values to 32 bit on most machines.

Furthermore, it once again fixes a problem with the Rank function in
HLL.
2016-07-13 06:44:51 -07:00
Johanna Amann
1ba33bf66e Merge remote-tracking branch 'origin/topic/robin/missing-syn-2'
* origin/topic/robin/missing-syn-2:
  Change TCP analysis to process connections without the initial SYN as non-partial connections.

BIT-1492 #merged
2016-07-12 11:42:32 -07:00
Johanna Amann
c15f48661d Merge remote-tracking branch 'origin/master' into topic/johanna/bit-1612 2016-07-12 10:58:31 -07:00
Robin Sommer
214abc6180 Merge remote-tracking branch 'origin/topic/johanna/sigalg'
BIT-1646 #merged

* origin/topic/johanna/sigalg:
  Forgotten types file for signature algorithm extension
  SSL: add support for signature_algorithms extension.
2016-07-12 10:21:25 -07:00
Johanna Amann
bafd902389 Forgotten types file for signature algorithm extension 2016-07-12 09:51:50 -07:00
Robin Sommer
39734255be Change TCP analysis to process connections without the initial SYN as
non-partial connections.

Before, if we saw a responder-side SYN/ACK, but had not seen the
initial orginator-side SYN, Bro would treat the connection as partial,
meaning that most application-layer analyzers would refuse to inspect
the payload. That was unfortunate because all payload data was
actually there (and even passed to the analyzers). This change make
Bro consider these connections as complete, so that analyzers will
just normally process them.

The leads to couple more connections in the test-suite to now being
analyzed.

Addresses #1492. (I used an HTTP trace for debugging instead of the
HTTPS trace from the ticket, as the clear-text makes it easier to
track the data flow).
2016-07-11 17:18:32 -07:00
Johanna Amann
11ec4903ee SSL: add support for signature_algorithms extension. 2016-07-11 15:01:59 -07:00
Johanna Amann
fa83497f26 Merge remote-tracking branch 'origin/topic/dnthayer/ticket1645'
* origin/topic/dnthayer/ticket1645:
  Disable broker by default

I added the --disable-broker back to configure (as a no-op), to not
break the build for everyone that is currently doing that in their build
scripts.

BIT-1645 #merged
2016-07-11 11:25:37 -07:00
Daniel Thayer
1c1a6e60b0 Disable broker by default
Replaced the --disable-broker configure option with --enable-broker,
and changed the install docs to show CAF as an optional dependency.
2016-07-09 15:55:28 -05:00
Johanna Amann
74e98565f4 Merge remote-tracking branch 'origin/topic/robin/history-rxmit'
* origin/topic/robin/history-rxmit:
  Flagging retransmissions in connection history.
  Removing ack_above_hole event.

BIT-977 #merged
2016-07-08 19:30:10 -07:00
Robin Sommer
0c080bca7a Extendign connection history field to flag when Bro flips a
connection's endpoints.

The character is '^'.

Addresses BIT-1629.
2016-07-08 14:56:52 -07:00
Robin Sommer
aa33da2775 Updating submodule(s).
[nomail]
2016-07-08 12:40:15 -07:00
Robin Sommer
5eecb1e740 Updating submodule(s).
[nomail]
2016-07-08 12:39:45 -07:00
Robin Sommer
75e3f9bc69 Removing ack_above_hole event.
This was a subset of content_gap and led to plenty noise.

Addresses BIT-688.
2016-07-06 15:35:21 -07:00
Robin Sommer
394b16e1f2 Flagging retransmissions in connection history.
This adds a t/T letter for the first TCP payload retransmission from
originator or responder, respectively.

Addresses BIT-977.
2016-07-06 15:01:16 -07:00
Robin Sommer
1d7bca21e4 Removing ack_above_hole event.
This was a subset of content_gap and led to plenty noise.

Addresses BIT-688.
2016-07-06 09:18:21 -07:00
Robin Sommer
ca3f7eadbe Fix segfault when an existing enum identifier is added again with a
different value.

Addresses BIT-931.

Also switching the internal enum ID map to storing std::string for
easier memory management.
2016-07-05 17:54:10 -07:00
Robin Sommer
721693425f Escape the empty indicator in logs if it occurs literally as a field's
actual content.

Addresses BIT-931.
2016-07-05 16:34:24 -07:00
Seth Hall
9360112e8a Updating broctl pointer 2016-07-05 11:31:27 -04:00
Robin Sommer
09ea84bb6e Merge remote-tracking branch 'origin/topic/johanna/netcontrol-improvements'
Great work, and great documentation!

I'm getting one test failure with
scripts.base.frameworks.netcontrol.catch-and-release-cluster Going
ahead and commiting, Jenkins will show the details I assume.

BIT-1584 #merged

* origin/topic/johanna/netcontrol-improvements:
  SMTP does not need to pull in the notice framework.
  Write NetControl framework documentation.
  Use NetControl for ACTION_DROP of notice framework.
  NetControl: slightly update catch and release logging
  NetControl: fix several small logging issues
  NetControl: more catch and release logging and cluster fix
  NetControl: rewrite catch and release and small fixes.
  NetControl: find_rules_subnet works in cluster mode
  NetControl: fix acld whitelist command
  NetControl: add rule exists as state besides added and failure.
  NetControl: Suppress duplicate "plugin activated" messages.
  NetControl: make new broker plugin options accessible
  NetControl: add predicates to broker plugin
2016-06-30 17:34:44 -07:00
Robin Sommer
6e483c1f4f Updating submodule(s).
[nomail]
2016-06-30 16:55:40 -07:00
Robin Sommer
d06a22968e Updating submodule(s).
[nomail]
2016-06-30 16:52:54 -07:00
Robin Sommer
716a07adde Updating submodule(s).
[nomail]
2016-06-30 16:50:22 -07:00