Commit graph

682 commits

Author SHA1 Message Date
Jon Siwek
2c9dbdd055 Fix cluster layout graphic and doc warnings 2018-08-08 13:03:45 -05:00
Jon Siwek
599af26496 Merge remote-tracking branch 'origin/topic/vern/vec-append'
* origin/topic/vern/vec-append:
  d'oh, still have a (deprecated) string_array rather than string_vector
  forgot to update test suite results for v += e
  reap the fruits of v += e
  test case for v += e
  documentation of v += e
  v += e implemented

Fixed a mistake in find_ip_addresses()
2018-08-03 11:38:40 -05:00
Jon Siwek
06c6e1188a Merge remote-tracking branch 'origin/topic/vern/set-ops2'
* origin/topic/vern/set-ops2:
  documentation, test suite update
  implemented set relationals
  bug fix for set intersection
  set intersection implemented
  mirroring previous topic/vern/set-ops to get branch up to date, since I'm a n00b

Fixed a couple memory leaks and added a leak test
2018-08-02 10:43:41 -05:00
Jon Siwek
5804c940f1 Merge remote-tracking branch 'origin/topic/vern/perf-history'
* origin/topic/vern/perf-history:
  only generate history threshold events for > 1 instance mention those events in NEWS
  a different sort of history update
  'W' for zero window implemented; logarithmic 'T'/'C'/'W' history repetitions

I reverted a change that made TCP window tracking unconditional (possibly
accepting out-of-order packets) until further verification of test suite
changes.
2018-08-01 16:37:10 -05:00
Jon Siwek
a71d84c968 Merge branch 'topic/feature/upstream/geoip' of https://github.com/corelight/bro
* 'topic/feature/upstream/geoip' of https://github.com/corelight/bro:
  Replace GeoIP Legacy DB support with MaxMind DB support
2018-07-31 16:50:15 -05:00
Johanna Amann
a251b32d85 Merge remote-tracking branch 'origin/topic/jsiwek/openssl-1.1'
* origin/topic/jsiwek/openssl-1.1:
  Update install instructions for OpenSSL 1.1 compat
  Remove requestorName parameter of ocsp_request event
  Adjust x509 unit tests to work around OpenSSL 1.0 vs. 1.1 differences
  Fixes for OpenSSL 1.1 support
2018-07-31 13:13:06 +02:00
Jonathan Perkins
1ae7d3b349 Replace GeoIP Legacy DB support with MaxMind DB support
This updates the "lookup_location" and "lookup_asn" BIFs to use
libmaxminddb.  The motivation for this is that MaxMind is discontinuing
GeoLite Legacy databases: no updates after April 1, 2018, no downloads
after January 2, 2019.  It's also noted that all GeoIP Legacy databases
may be discontinued as they are superseded by GeoIP2.
2018-07-30 16:04:58 -05:00
Vern Paxson
88fd7510c6 reap the fruits of v += e 2018-07-26 12:51:36 -07:00
Vern Paxson
016a164bb6 documentation of v += e 2018-07-26 12:29:50 -07:00
Vern Paxson
86cd484759 documentation, test suite update 2018-07-20 08:57:37 -07:00
Jon Siwek
463e540c9b Merge remote-tracking branch 'origin/topic/vern/case-insensitive-patterns'
* origin/topic/vern/case-insensitive-patterns:
  use PCRE syntax instead of the beautiful new (?i ...) syntax
  nitlet in NEWS entry
  test suite update for case-insensitive patterns
  document use of double quotes to escape case-insensitivity
  bug fix for recent memory leak patch
  documentation updates for case-insensitive patterns
  d'oh there's isalpha.  I looked earlier for isletter :-P
  fix for handling [:(lower|upper):] in case-insensitive patterns
  implemented /re/i for case-insensitive patterns
2018-07-16 16:04:38 -05:00
Vern Paxson
187757f377 a different sort of history update 2018-07-09 13:05:50 -07:00
Jon Siwek
a66364fee0 Update install instructions for OpenSSL 1.1 compat 2018-07-02 14:04:55 -05:00
Vern Paxson
85c4b0d285 use PCRE syntax instead of the beautiful new (?i ...) syntax 2018-06-29 13:01:05 -07:00
Vern Paxson
a02d9e7f4a document use of double quotes to escape case-insensitivity 2018-06-29 11:35:22 -07:00
Vern Paxson
cfe45e0af0 documentation updates for case-insensitive patterns 2018-06-29 11:30:00 -07:00
Jon Siwek
e2d5ca5f95 Merge remote-tracking branch 'origin/topic/dnthayer/ticket1947'
* origin/topic/dnthayer/ticket1947:
  Fix some typos and formatting in NEWS
  Add pattern operators to the documentation of operators
  Fix minor typos in broker reference documentation
  Fix a broken link and some typos in broker documentation
  Fix reST formatting in documentation of "count" type
  Add documentation for some new Bro features
2018-06-27 20:27:34 -05:00
Daniel Thayer
cfe8e8f04b Merge remote-tracking branch 'origin/master' into topic/dnthayer/ticket1947 2018-06-27 14:17:44 -05:00
Daniel Thayer
bd74b4525b Add pattern operators to the documentation of operators 2018-06-27 14:00:56 -05:00
Daniel Thayer
57128af3ab Fix a broken link and some typos in broker documentation 2018-06-26 15:34:57 -05:00
Daniel Thayer
884d3d2abd Fix reST formatting in documentation of "count" type 2018-06-26 14:43:41 -05:00
Daniel Thayer
fef351b9c1 Add documentation for some new Bro features
Add documentation for the type-based "switch" statement,
the "as" operator, the "is" operator, and bitwise operators.
2018-06-26 14:38:24 -05:00
Vern Paxson
f340707e2c documentation for &/| for patterns 2018-06-22 15:23:06 -07:00
Jon Siwek
e5275b0c92 Merge branch 'topic/vern/bit-ops' of https://github.com/bro/bro
* 'topic/vern/bit-ops' of https://github.com/bro/bro:
  documentation clarification for "p1 | p2"
  documentation for bitwise operators
  document the '|' operator for patterns
  test suite for bitwise operators brief NEWS blurb allow for "counter" operands (does anyone still use these?) for one (but not both) of the bitwise operands
  bitwise operations for "count" types implemented
  Starting branch for supporting bit operations on count's.
2018-06-21 16:05:07 -05:00
Vern Paxson
344382ee7b documentation clarification for "p1 | p2" 2018-06-19 11:50:38 -07:00
Jon Siwek
c11039cb73 Make old comm. system usages an error unless old_comm_usage_is_ok is set 2018-06-15 17:15:46 -05:00
Jon Siwek
b5b688b5f5 Update make doc: don't copy broker docs 2018-06-05 15:20:49 -05:00
Jon Siwek
f9e5777e6f BIT-1635: fix make doc warnings
References to Input::Reader and Log::Writer enum types no longer emit
warnings as they are now hardcoded to be documented as part of their
associated framework scripts and so links to them now work.
2018-06-01 10:08:44 -05:00
Jon Siwek
9511daf5d2 Merge branch 'topic/dopheide/broker-docs' of https://github.com/dopheide-esnet/bro
* 'topic/dopheide/broker-docs' of https://github.com/dopheide-esnet/bro:
  A suggestion for reminding folks about calling events in Module namespaces.

I've changed this to include more accurate examples
2018-05-29 10:05:56 -05:00
Michael Dopheide
bbd65bcc74 A suggestion for reminding folks about calling events in Module namespaces. 2018-05-27 20:49:15 -05:00
Jon Siwek
b2923f5528 Documentation improvements/fixes 2018-05-23 16:50:31 -05:00
Robin Sommer
d6cddffe32 Merge remote-tracking branch 'origin/master'
* origin/master:
  Update link to flex pattern docs
2018-05-21 21:38:19 +00:00
Robin Sommer
87552390e5 Bring Broccoli back for the time being.
It's deprecated and now disabled by default, but can be reenabled by
configuring with --enable-broccoli.
2018-05-21 18:38:25 +00:00
Jon Siwek
ed7b0b3503 Update link to flex pattern docs 2018-05-21 13:38:04 -05:00
Robin Sommer
fe7e1ee7f0 Merge topic/actor-system throug a squashed commit. 2018-05-18 22:39:23 +00:00
Daniel Thayer
1d98a99ccf Update install instructions for Ubuntu 18.04 2018-05-01 15:24:52 -05:00
Jon Siwek
4e9a8e02e0 BIT-1430: Improve cross compilation support
* Add --toolchain= configure option

* Add --with-bifcl= configure option

* Change --with-binpac= configure option to mean "path to binpac
  executable"

* Add an example of how to use the above options for cross compiling
  Bro to the docs
2018-04-27 11:04:31 -05:00
Vern Paxson
2bd3a7664d documentation for bitwise operators 2018-04-26 16:22:17 -07:00
Vern Paxson
1ca5a5a16d document the '|' operator for patterns 2018-04-26 14:57:55 -07:00
Daniel Thayer
8fe998c5f7 Fix one new minor typo in the config framework docs 2018-03-15 18:52:08 -05:00
Robin Sommer
31a48bf4ad Merge remote-tracking branch 'origin/topic/dnthayer/ticket1905'
Includes slight editing of the new text.

Closes BIT-1905.

* origin/topic/dnthayer/ticket1905:
  Add documentation of the configuration framework
  Add documentation of "option" declarations
  Improve config framework documentation comments
  Fix minor typos and doc build warnings in NEWS
2018-03-15 14:54:43 -07:00
Daniel Thayer
8aeedba066 Add documentation of the configuration framework 2018-03-15 14:50:42 -05:00
Daniel Thayer
79afd99229 Add documentation of "option" declarations 2018-03-15 14:29:26 -05:00
Daniel Thayer
45cc4d0e2f Fix another warning when building the documentation 2018-02-14 18:43:34 -06:00
Johanna Amann
db6f028003 Add config framework.
The configuration framework consists of three mostly distinct parts:

* option variables
* the config reader
* the script level framework

I will describe the three elements in the following.

Internally, this commit also performs a range of changes to the Input
manager; it marks a lot of functions as const and introduces a new
ValueToVal method (which could in theory replace the already existing
one - it is a bit more powerful).

This also changes SerialTypes to have a subtype for Values, just as
Fields already have it; I think it was mostly an oversight that this was
not introduced from the beginning. This should not necessitate any code
changes for people already using SerialTypes.

option variable
===============

The option keyword allows variables to be specified as run-tine options.
Such variables cannot be changed using normal assignments. Instead, they
can be changed using Option::set. It is possible to "subscribe" to
options and be notified when an option value changes.

Change handlers can also change values before they are applied; this
gives them the opportunity to reject changes. Priorities can be
specified if there are several handlers for one option.

Example script:

option testbool: bool = T;

function option_changed(ID: string, new_value: bool): bool
  {
  print fmt("Value of %s changed from %s to %s", ID, testbool, new_value);
  return new_value;
  }

event bro_init()
  {
  print "Old value", testbool;
  Option::set_change_handler("testbool", option_changed);
  Option::set("testbool", F);
  print "New value", testbool;
  }

config reader
=============

The config reader provides a way to read configuration files back into
Bro. Most importantly it automatically converts values to the correct
types. This is important because it is at least inconvenient (and
sometimes near impossible) to perform the necessary type conversions in
Bro scripts themselves. This is especially true for sets/vectors.

Configuration generally look like this:

[option name][tab/spaces][new variable value]

so, for example:

testaddr 2607:f8b0:4005:801::200e
testinterval 60
testtime 1507321987
test_set a	b	c	d	erdbeerschnitzel

The reader uses the option name to look up the type that variable has in
the Bro core and automatically converts the value to the correct type.

Example script use:

type Idx: record {
  option_name: string;
};

type Val: record {
  option_val: string;
};

global currconfig: table[string] of string = table();

event InputConfig::new_value(name: string, source: string, id: string, value: any)
  {
  print id, value;
  }

event bro_init()
  {
  Input::add_table([$reader=Input::READER_CONFIG, $source="../configfile", $name="configuration", $idx=Idx, $val=Val, $destination=currconfig, $want_record=F]);
  }

Script-level config framework
=============================

The script-level framework ties these two features together and makes
them a bit more convenient to use. Configuration files can simply be
specified by placing them into Config::config_files. The framework also
creates a config.log that shows all value changes that took place.

Usage example:

redef Config::config_files += {configfile};

export {
  option testbool : bool = F;
}

The file is now monitored for changes; when a change occurs the
respective option values are automatically updated and the value change
is written to config.log.
2017-11-29 13:46:59 -08:00
Christian Kreibich
3accfabdfe Minor Bro docs tweaks for correctness and readability
- The protocol seemed to be missing from two frame inclusions, throwing an
  error message when viewing the page locally. Add "https:".

- Reduce whitespace around inline code blocks, where 2em seems really
  large.
2017-10-23 15:21:28 -07:00
Robin Sommer
09486c9062 Merge remote-tracking branch 'origin/fastpath'
* origin/fastpath:
  Update install instructions for Fedora 26
2017-08-07 07:42:04 -07:00
Daniel Thayer
7242aada0c Update install instructions for Fedora 26 2017-08-01 15:54:26 -05:00
Johanna Amann
9594f69598 SSL: Update OCSP/SCT scripts and documentation. 2017-07-27 16:22:40 -07:00
Johanna Amann
a630c61f17 Remove another reference to now removed bro-plugins. 2017-07-11 09:56:33 -07:00