diff --git a/CHANGES b/CHANGES index 6dbaea2555..8ec7593749 100644 --- a/CHANGES +++ b/CHANGES @@ -1,4 +1,108 @@ +2.4-20 | 2015-07-03 10:40:21 -0700 + + * Adding a weird for when truncated packets lead TCP reassembly to + ignore content. (Robin Sommer) + +2.4-19 | 2015-07-03 09:04:54 -0700 + + * A set of tests exercising IP defragmentation and TCP reassembly. + (Robin Sommer) + +2.4-17 | 2015-06-28 13:02:41 -0700 + + * BIT-1314: Add detection for Quantum Insert attacks. The TCP + reassembler can now keep a history of old TCP segments using the + tcp_max_old_segments option. An overlapping segment with different + data will then generate an rexmit_inconsistency event. The default + for tcp_max_old_segments is zero, which disabled any additional + buffering. (Yun Zheng Hu/Robin Sommer) + +2.4-14 | 2015-06-28 12:30:12 -0700 + + * BIT-1400: Allow '<' and '>' in MIME multipart boundaries. The spec + doesn't actually seem to permit these, but they seem to occur in + the wild. (Jon Siwek) + +2.4-12 | 2015-06-28 12:21:11 -0700 + + * BIT-1399: Trying to decompress deflated HTTP content even when + zlib headers are missing. (Seth Hall) + +2.4-10 | 2015-06-25 07:11:17 -0700 + + * Correct a name used in a header identifier (Justin Azoff) + +2.4-8 | 2015-06-24 07:50:50 -0700 + + * Restore the --load-seeds cmd-line option and enable the short + options -G/-H for --load-seeds/--save-seeds. (Daniel Thayer) + +2.4-6 | 2015-06-19 16:26:40 -0700 + + * Generate protocol confirmations for Modbus, making it appear as a + confirmed service in conn.log. (Seth Hall) + + * Put command line options in alphabetical order. (Daniel Thayer) + + * Removing dead code for no longer supported -G switch. (Robin + Sommer) (Robin Sommer) + +2.4 | 2015-06-09 07:30:53 -0700 + + * Release 2.4. + + * Fixing tiny thing in NEWS. (Robin Sommer) + +2.4-beta-42 | 2015-06-08 09:41:39 -0700 + + * Fix reporter errors with GridFTP traffic. (Robin Sommer) + +2.4-beta-40 | 2015-06-06 08:20:52 -0700 + + * PE Analyzer: Change how we calculate the rva_table size. (Vlad Grigorescu) + +2.4-beta-39 | 2015-06-05 09:09:44 -0500 + + * Fix a unit test to check for Broker requirement. (Jon Siwek) + +2.4-beta-38 | 2015-06-04 14:48:37 -0700 + + * Test for Broker termination. (Robin Sommer) + +2.4-beta-37 | 2015-06-04 07:53:52 -0700 + + * BIT-1408: Improve I/O loop and Broker IOSource. (Jon Siwek) + +2.4-beta-34 | 2015-06-02 10:37:22 -0700 + + * Add signature support for F4M files. (Seth Hall) + +2.4-beta-32 | 2015-06-02 09:43:31 -0700 + + * A larger set of documentation updates, fixes, and extentions. + (Daniel Thayer) + +2.4-beta-14 | 2015-06-02 09:16:44 -0700 + + * Add memleak btest for attachments over SMTP. (Vlad Grigorescu) + + * BIT-1410: Fix flipped tx_hosts and rx_hosts in files.log. Reported + by Ali Hadi. (Vlad Grigorescu) + + * Updating the Mozilla root certs. (Seth Hall) + + * Updates for the urls.bro script. Fixes BIT-1404. (Seth Hall) + +2.4-beta-6 | 2015-05-28 13:20:44 -0700 + + * Updating submodule(s). + +2.4-beta-2 | 2015-05-26 08:58:37 -0700 + + * Fix segfault when DNS is not available. Addresses BIT-1387. (Frank + Meier and Robin Sommer) + 2.4-beta | 2015-05-07 21:55:31 -0700 * Release 2.4-beta. diff --git a/COPYING b/COPYING index 2c66f98113..5454660df2 100644 --- a/COPYING +++ b/COPYING @@ -1,4 +1,4 @@ -Copyright (c) 1995-2013, The Regents of the University of California +Copyright (c) 1995-2015, The Regents of the University of California through the Lawrence Berkeley National Laboratory and the International Computer Science Institute. All rights reserved. diff --git a/NEWS b/NEWS index 54deaf1e25..e47b58ffd0 100644 --- a/NEWS +++ b/NEWS @@ -4,8 +4,8 @@ release. For an exhaustive list of changes, see the ``CHANGES`` file (note that submodules, such as BroControl and Broccoli, come with their own ``CHANGES``.) -Bro 2.4 (in progress) -===================== +Bro 2.4 +======= New Functionality ----------------- diff --git a/VERSION b/VERSION index 0a8901319c..748c727101 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.4-beta +2.4-20 diff --git a/aux/bro-aux b/aux/bro-aux index a2d290a832..6d6679506d 160000 --- a/aux/bro-aux +++ b/aux/bro-aux @@ -1 +1 @@ -Subproject commit a2d290a832c35ad11f3fabb19812bcae2ff089cd +Subproject commit 6d6679506d8762ddbba16f0b34f7ad253e3aac45 diff --git a/aux/broctl b/aux/broctl index 97c17d2172..54377d4746 160000 --- a/aux/broctl +++ b/aux/broctl @@ -1 +1 @@ -Subproject commit 97c17d21725e42b36f4b49579077ecdc28ddb86a +Subproject commit 54377d4746e2fd3ba7b7ca97e4a6ceccbd2cc236 diff --git a/aux/broker b/aux/broker index b02fefd5cf..f303cdbc60 160000 --- a/aux/broker +++ b/aux/broker @@ -1 +1 @@ -Subproject commit b02fefd5cf78c1576e59c106f5211ce5ae47cfdd +Subproject commit f303cdbc60ad6eef35ebcd1473ee85b3123f5ef1 diff --git a/aux/btest b/aux/btest index 80b42ee3e4..0e2da116a5 160000 --- a/aux/btest +++ b/aux/btest @@ -1 +1 @@ -Subproject commit 80b42ee3e4503783b6720855b28e83ff1658c22b +Subproject commit 0e2da116a5e29baacaecc6daac7bc4bc9ff387c5 diff --git a/aux/plugins b/aux/plugins index e1ea9f67cf..99d7519991 160000 --- a/aux/plugins +++ b/aux/plugins @@ -1 +1 @@ -Subproject commit e1ea9f67cfe3d6a81e0c1479ced0b9aa73e77c87 +Subproject commit 99d7519991b41a970809a99433ea9c7df42e9d93 diff --git a/doc/components/bro-plugins/README.rst b/doc/components/bro-plugins/README.rst new file mode 120000 index 0000000000..8f96f50909 --- /dev/null +++ b/doc/components/bro-plugins/README.rst @@ -0,0 +1 @@ +../../../aux/plugins/README \ No newline at end of file diff --git a/doc/components/bro-plugins/dataseries/README.rst b/doc/components/bro-plugins/dataseries/README.rst new file mode 120000 index 0000000000..3362e911fc --- /dev/null +++ b/doc/components/bro-plugins/dataseries/README.rst @@ -0,0 +1 @@ +../../../../aux/plugins/dataseries/README \ No newline at end of file diff --git a/doc/components/bro-plugins/elasticsearch/README.rst b/doc/components/bro-plugins/elasticsearch/README.rst new file mode 120000 index 0000000000..8a5b78d689 --- /dev/null +++ b/doc/components/bro-plugins/elasticsearch/README.rst @@ -0,0 +1 @@ +../../../../aux/plugins/elasticsearch/README \ No newline at end of file diff --git a/doc/components/bro-plugins/netmap/README.rst b/doc/components/bro-plugins/netmap/README.rst new file mode 120000 index 0000000000..819a2bb0e9 --- /dev/null +++ b/doc/components/bro-plugins/netmap/README.rst @@ -0,0 +1 @@ +../../../../aux/plugins/netmap/README \ No newline at end of file diff --git a/doc/components/index.rst b/doc/components/index.rst index c1feda4a61..85527e9f9c 100644 --- a/doc/components/index.rst +++ b/doc/components/index.rst @@ -21,6 +21,7 @@ current, independent component releases. Broker - User Manual BroControl - Interactive Bro management shell Bro-Aux - Small auxiliary tools for Bro + Bro-Plugins - A collection of plugins for Bro BTest - A unit testing framework Capstats - Command-line packet statistic tool PySubnetTree - Python module for CIDR lookups diff --git a/doc/devel/plugins.rst b/doc/devel/plugins.rst index 5c963a1552..091a0090d1 100644 --- a/doc/devel/plugins.rst +++ b/doc/devel/plugins.rst @@ -3,7 +3,7 @@ Writing Bro Plugins =================== -Bro internally provides plugin API that enables extending +Bro internally provides a plugin API that enables extending the system dynamically, without modifying the core code base. That way custom code remains self-contained and can be maintained, compiled, and installed independently. Currently, plugins can add the following @@ -32,7 +32,7 @@ Quick Start =========== Writing a basic plugin is quite straight-forward as long as one -follows a few conventions. In the following we walk a simple example +follows a few conventions. In the following we create a simple example plugin that adds a new built-in function (bif) to Bro: we'll add ``rot13(s: string) : string``, a function that rotates every character in a string by 13 places. @@ -81,7 +81,7 @@ The syntax of this file is just like any other ``*.bif`` file; we won't go into it here. Now we can already compile our plugin, we just need to tell the -configure script that ``init-plugin`` put in place where the Bro +configure script (that ``init-plugin`` created) where the Bro source tree is located (Bro needs to have been built there first):: # cd rot13-plugin @@ -99,7 +99,7 @@ option:: # export BRO_PLUGIN_PATH=/path/to/rot13-plugin/build # bro -N [...] - Plugin: Demo::Rot13 - (dynamic, version 1) + Demo::Rot13 - (dynamic, version 0.1) [...] That looks quite good, except for the dummy description that we should @@ -108,28 +108,30 @@ is about. We do this by editing the ``config.description`` line in ``src/Plugin.cc``, like this:: [...] - plugin::Configuration Configure() + plugin::Configuration Plugin::Configure() { plugin::Configuration config; config.name = "Demo::Rot13"; config.description = "Caesar cipher rotating a string's characters by 13 places."; - config.version.major = 1; - config.version.minor = 0; + config.version.major = 0; + config.version.minor = 1; return config; } [...] +Now rebuild and verify that the description is visible:: + # make [...] # bro -N | grep Rot13 - Plugin: Demo::Rot13 - Caesar cipher rotating a string's characters by 13 places. (dynamic, version 1) + Demo::Rot13 - Caesar cipher rotating a string's characters by 13 places. (dynamic, version 0.1) -Better. Bro can also show us what exactly the plugin provides with the +Bro can also show us what exactly the plugin provides with the more verbose option ``-NN``:: # bro -NN [...] - Plugin: Demo::Rot13 - Caesar cipher rotating a string's characters by 13 places. (dynamic, version 1) + Demo::Rot13 - Caesar cipher rotating a string's characters by 13 places. (dynamic, version 0.1) [Function] Demo::rot13 [...] @@ -157,10 +159,12 @@ The installed version went into ``/lib/bro/plugins/Demo_Rot13``. One can distribute the plugin independently of Bro for others to use. -To distribute in source form, just remove the ``build/`` (``make -distclean`` does that) and then tar up the whole ``rot13-plugin/`` +To distribute in source form, just remove the ``build/`` directory +(``make distclean`` does that) and then tar up the whole ``rot13-plugin/`` directory. Others then follow the same process as above after -unpacking. To distribute the plugin in binary form, the build process +unpacking. + +To distribute the plugin in binary form, the build process conveniently creates a corresponding tarball in ``build/dist/``. In this case, it's called ``Demo_Rot13-0.1.tar.gz``, with the version number coming out of the ``VERSION`` file that ``init-plugin`` put @@ -169,14 +173,14 @@ plugin, but no further source files. Optionally, one can include further files by specifying them in the plugin's ``CMakeLists.txt`` through the ``bro_plugin_dist_files`` macro; the skeleton does that for ``README``, ``VERSION``, ``CHANGES``, and ``COPYING``. To use the -plugin through the binary tarball, just unpack it and point -``BRO_PLUGIN_PATH`` there; or copy it into -``/lib/bro/plugins/`` directly. +plugin through the binary tarball, just unpack it into +``/lib/bro/plugins/``. Alternatively, if you unpack +it in another location, then you need to point ``BRO_PLUGIN_PATH`` there. Before distributing your plugin, you should edit some of the meta files that ``init-plugin`` puts in place. Edit ``README`` and ``VERSION``, and update ``CHANGES`` when you make changes. Also put a -license file in place as ``COPYING``; if BSD is fine, you find a +license file in place as ``COPYING``; if BSD is fine, you will find a template in ``COPYING.edit-me``. Plugin Directory Layout @@ -193,7 +197,7 @@ directory. With the skeleton, ```` corresponds to ``build/``. must exist, and its content must consist of a single line with the qualified name of the plugin (e.g., "Demo::Rot13"). -``/lib/--.so`` +``/lib/.-.so`` The shared library containing the plugin's compiled code. Bro will load this in dynamically at run-time if OS and architecture match the current platform. @@ -215,8 +219,8 @@ directory. With the skeleton, ```` corresponds to ``build/``. Any other files in ```` are ignored by Bro. By convention, a plugin should put its custom scripts into sub folders -of ``scripts/``, i.e., ``scripts//