Commit graph

3048 commits

Author SHA1 Message Date
Jon Siwek
fd5eb23fa6 Remove byte count parameter from modbus events carrying register arrays
Instead of these events being generated for invalid byte count values
(they should always be even, not odd), a protocol_violation is raised.

    modbus_read_holding_registers_response
    modbus_read_input_registers_response
    modbus_write_multiple_registers_request
    modbus_read_write_multiple_registers_request
    modbus_read_write_multiple_registers_response
    modbus_read_fifo_queue_respons
2012-11-13 12:09:14 -06:00
Jon Siwek
c911d03c30 Adjust modbus register array parsing.
For modbus message types that include variable amount of register values
(uint16[]), setting a &length attribute without an explicit array size
could trigger a parsing assertion since it allows for the "element" data
pointer to travel past the "end of data" (e.g. when &length is odd).
This is changed to now give both an array size and &length to earlier
terminate the parsing of elements before the assert is checked and
so a single out-of-bound check can be done for the entire array
(leaving off &length causes an out-of-bound check for each element).

Added another parameter to modbus events that carry register arrays to
the script-layer which indicates the associated byte count from the
message (allowing for invalid values to be detected):

    modbus_read_holding_registers_response
    modbus_read_input_registers_response
    modbus_write_multiple_registers_request
    modbus_read_write_multiple_registers_request
    modbus_read_write_multiple_registers_response
    modbus_read_fifo_queue_response
2012-11-12 16:40:16 -06:00
Jon Siwek
defed7b6f3 Adjustments to modbus test cases.
- Added a test for binpac exception handling -- the generated code
  should use "binpac::Exception" and not "Exception" for exception
  handling logic to avoid accidental overshadowing by
  the analyzer-specific type "binpac::ModbusTCP::Exception", which
  could lead to interesting asserts being triggered in binpac.

- Update baseline for the event coverage test -- seems that more
  events get generated with working exception handling in the generated
  binpac parser code.

- Coverage baseline was giving wrong number of events covered.
2012-11-12 11:51:42 -06:00
Robin Sommer
aac922d7af Updating submodule(s).
[nomail]
2012-11-08 16:34:45 -08:00
Robin Sommer
590f764440 Merge remote-tracking branch 'origin/fastpath'
* origin/fastpath:
  Fix lookup_hostname BIF (and memory leak in it).

Thanks!
2012-11-08 16:22:34 -08:00
Jon Siwek
89500c9176 Fix lookup_hostname BIF (and memory leak in it).
The problem was caused by uninitialized is_text member in AsyncRequest.
2012-11-08 12:00:22 -06:00
Robin Sommer
dae9c946b6 Another attempt at getting this test portable.
Keeping my fingers crossed ... (and I'm still planing to move this
over to the external tests later).
2012-11-07 20:48:08 -08:00
Robin Sommer
e92ea67959 Fixing modbus test on MacOS.
Hopefully ...
2012-11-07 17:09:25 -08:00
Robin Sommer
d75ee59953 Attempting to fix modbus test portability.
Adding the external canonifier, let's if that helps. Maybe the test
would be better located in the external suite anyways ...
2012-11-06 07:22:21 -08:00
Robin Sommer
6c70b11cea Fixing/extending modbus tests. 2012-11-05 17:10:28 -08:00
Robin Sommer
edf6750e3d Fixing tests after intel merge. 2012-11-05 16:25:59 -08:00
Robin Sommer
a40b00d4ab Merge branch 'topic/robin/intel-framework-merge'
* topic/robin/intel-framework-merge: (22 commits)
  Fixing tests after intel-framework merge.
  Extracting URLs from message bodies over SMTP and sending them to Intel framework.
  Small comment updates in the Intel framework CIF support.
  Intelligence framework documentation first draft.
  Only the manager tries to read files with the input framework now.
  Initial support for Bro's Intel framework with the Collective Intelligence Framework.
  Initial API for Intel framework is complete.
  Fixed an issue with cluster data distribution.
  Updating some intel framework test baselines.
  Reworked cluster intelligence data distribution mechanism and fixed tests.
  Lots more intelligence checking in SMTP traffic.
  Added intelligence check for "Received" path checking and a bit of reshuffling.
  Added sources to the intel log.
  Fixing a problem with intel distribution on clusters.
  Updated intel framework test to include matching.
  Restructuring the scripts that feed data into the intel framework slightly.
  One test for cluster transparency of the intel framework.
  Fixed a cluster support bug.
  Intelligence framework checkpoint
  Major updates to fix the Intel framework API.
  ...

Closes #914.
2012-11-05 16:00:38 -08:00
Robin Sommer
4e12813445 Fixing tests after modbus merge. 2012-11-05 15:58:38 -08:00
Robin Sommer
86ce564107 Merge remote-tracking branch 'remotes/origin/topic/seth/modbus-merge'
* remotes/origin/topic/seth/modbus-merge:
  Small modbus documentation update and tiny refactoring.
  Final touches to modbus analyzer for now.
  Major revisions to Modbus analyzer support (not quite done yet).
  put some make-up on Modbus analyser
  Modbus analyser, added support: FC=20,21
  Modbus analyzer,added support: FC=1,2,15,24
  Modbus analyzer, current support: FC=3,4,5,6,7,16,22,23

Closes #915.
2012-11-05 15:26:57 -08:00
Robin Sommer
a6216969e6 Merge remote-tracking branch 'origin/fastpath'
* origin/fastpath:
  Script in base for detecting cases of checksum offloading.
2012-11-05 13:59:30 -08:00
Robin Sommer
c39215bf5d Clarifying onwership rules for BroString constructors. 2012-11-05 13:51:09 -08:00
Robin Sommer
4fab70ecce Merge remote-tracking branch 'vlad/topic/vladg/dns_txt_queries'
* vlad/topic/vladg/dns_txt_queries:
  Add detection rate threshold for MHR.
  Make sure lookup_hostname_txt isn't checking lookup_hostname's cache for answers.
  A couple of lookup_hostname_txt fixes.

Reverting the earlier function-join during merging.
2012-11-05 13:40:24 -08:00
Vlad Grigorescu
1aeb52ae46 Add detection rate threshold for MHR. 2012-11-03 12:09:11 -04:00
Vlad Grigorescu
a1c0b853fe Make sure lookup_hostname_txt isn't checking lookup_hostname's cache for answers. 2012-11-03 11:07:48 -04:00
Vlad Grigorescu
d9803a0d9d A couple of lookup_hostname_txt fixes. 2012-11-03 11:05:49 -04:00
Robin Sommer
ce6b8e5cfa Updating submodule(s).
[nomail]
2012-11-01 14:25:17 -07:00
Robin Sommer
dfebb82238 Merge remote-tracking branch 'vlad/topic/vladg/dns_txt_queries'
* vlad/topic/vladg/dns_txt_queries:
  DNS TXT support

I've tweaked it a little bit, still seems to work ...

I'd like to add a test for this but I'n not quite sure how to do that.
We'd have to hardcode a destination server that then'd be contacted
each time the test-suite runs.
2012-11-01 10:38:36 -07:00
Robin Sommer
70339e9fed Fixing tests after intel-framework merge.
coverage.bare-mode-errors still failing.
2012-11-01 09:28:59 -07:00
Robin Sommer
fb7ba82bab Merge remote-tracking branch 'origin/topic/seth/intel-framework'
* origin/topic/seth/intel-framework: (21 commits)
  Extracting URLs from message bodies over SMTP and sending them to Intel framework.
  Small comment updates in the Intel framework CIF support.
  Intelligence framework documentation first draft.
  Only the manager tries to read files with the input framework now.
  Initial support for Bro's Intel framework with the Collective Intelligence Framework.
  Initial API for Intel framework is complete.
  Fixed an issue with cluster data distribution.
  Updating some intel framework test baselines.
  Reworked cluster intelligence data distribution mechanism and fixed tests.
  Lots more intelligence checking in SMTP traffic.
  Added intelligence check for "Received" path checking and a bit of reshuffling.
  Added sources to the intel log.
  Fixing a problem with intel distribution on clusters.
  Updated intel framework test to include matching.
  Restructuring the scripts that feed data into the intel framework slightly.
  One test for cluster transparency of the intel framework.
  Fixed a cluster support bug.
  Intelligence framework checkpoint
  Major updates to fix the Intel framework API.
  Checkpoint commit.  This is all a huge mess right now. :)
  ...

Closes #914.
2012-11-01 08:21:52 -07:00
Seth Hall
e020e034ae Script in base for detecting cases of checksum offloading.
- I added this to the base scripts because it's very minimal overhead
  and we get questions about this all the time.  Now that reporter
  messages are printed to the console, people will see the message
  clearly if they have bad checksums.
2012-11-01 00:16:28 -04:00
Seth Hall
c32b179ac5 Small modbus documentation update and tiny refactoring. 2012-10-31 23:57:38 -04:00
Seth Hall
a2f336cc72 Final touches to modbus analyzer for now.
- There are still some broken events in the modbus analyzer because
  I don't have traffic to test with (coil and record related events primarily).

- There are a few example scripts in policy/protocols/modbus
2012-10-31 23:34:43 -04:00
Robin Sommer
cba8b9f62b Updating submodule(s).
[nomail]
2012-10-31 14:41:20 -07:00
Robin Sommer
55006240ae Merge remote-tracking branch 'origin/topic/dnthayer/installing-bro'
* origin/topic/dnthayer/installing-bro:
  Add version-specific upgrade info
  Move upgrade instructions to INSTALL document
  Reorganize install documentation

Closes #910.
2012-10-31 14:32:00 -07:00
Robin Sommer
b85baed95e Merge remote-tracking branch 'origin/topic/dnthayer/alarms-mail'
* origin/topic/dnthayer/alarms-mail:
  Rename the alarm summary mail variable
  Change alarm summary email interval to 24hrs

Closes #824.
2012-10-31 14:28:49 -07:00
Seth Hall
172a6345b8 Extracting URLs from message bodies over SMTP and sending them to Intel framework.
- New utils package for URLs.

- Two functions in the URLs utils.  find_all_urls and
  find_all_urls_without_scheme.
2012-10-31 08:46:40 -04:00
Daniel Thayer
c46029d828 Rename the alarm summary mail variable 2012-10-30 16:31:18 -05:00
Daniel Thayer
0f97f0b6e4 Merge remote-tracking branch 'origin/master' into topic/dnthayer/alarms-mail 2012-10-30 11:32:58 -05:00
Vlad Grigorescu
bc79888190 DNS TXT support 2012-10-30 12:32:39 -04:00
Daniel Thayer
ba51974848 Add version-specific upgrade info
Rename the upgrade document so that it will be relevant for all
future releases, and add version-specific upgrade info (2.0 to 2.1).
2012-10-24 18:25:27 -05:00
Robin Sommer
9ec2bfe59f Merge remote-tracking branch 'origin/topic/seth/pppoe'
Looks like the code in this function is getting ready for some
refactoring. Leaving that for another time though ...

Closes #909.

* origin/topic/seth/pppoe:
  Adding a test for PPPoE support.
  Adding PPPoE support to Bro.
2012-10-24 16:05:17 -07:00
Robin Sommer
ae38aad2bb Adding missing &redef for some TCP options.
Reported by Carsten Langer.

Closes #905.
Closes #906.
Closes #907.
2012-10-24 15:41:27 -07:00
Robin Sommer
7ddbca8b35 Merge remote-tracking branch 'origin/topic/jsiwek/subnet-literal-const'
* origin/topic/jsiwek/subnet-literal-const:
  Add parsing rules for IPv4/IPv6 subnet literal constants, addresses #888

Closes #888.
2012-10-24 15:37:49 -07:00
Seth Hall
54084d0744 Adding a test for PPPoE support. 2012-10-24 01:05:01 -04:00
Seth Hall
012acb22e9 Merge remote-tracking branch 'origin/master' into topic/seth/pppoe 2012-10-24 00:50:43 -04:00
Daniel Thayer
4f7790e300 Move upgrade instructions to INSTALL document 2012-10-23 13:51:43 -05:00
Daniel Thayer
f0afecca42 Merge remote-tracking branch 'origin/master' into topic/dnthayer/installing-bro 2012-10-22 18:00:41 -05:00
Daniel Thayer
0e3b173d2f Reorganize install documentation
Moved installation info from the Quick Start Guide to the INSTALL doc.
2012-10-22 17:56:00 -05:00
Jon Siwek
46d225cc5b Add parsing rules for IPv4/IPv6 subnet literal constants, addresses #888
This fixes specifying IPv4 subnets in IPv4-mapped-IPv6 format with a
mask length relative to the 128 bits of the mapped IPv6 address.
2012-10-22 15:57:21 -05:00
Robin Sommer
5716545cfa Merge remote-tracking branch 'origin/topic/seth/strptime'
* origin/topic/seth/strptime:
  Added a BiF to wrap the strptime function.

Closes #904.
2012-10-19 15:13:25 -07:00
Robin Sommer
b9811e87e5 Merge remote-tracking branch 'origin/topic/jsiwek/ipv6-sigs'
* origin/topic/jsiwek/ipv6-sigs:
  Add IPv6 support to signature header conditions.

Closes #774.
Closes #880.
2012-10-19 15:06:00 -07:00
Robin Sommer
c7b39efe85 Merge remote-tracking branch 'origin/topic/jsiwek/gridftp'
* origin/topic/jsiwek/gridftp:
  Change how "gridftp" gets added to service field of connection records.

Closes #891.
2012-10-19 14:49:38 -07:00
Seth Hall
d157759ff2 Added a BiF to wrap the strptime function. 2012-10-19 02:07:34 -04:00
Jon Siwek
18f8427579 Change how "gridftp" gets added to service field of connection records.
In addition to checking for a finished SSL handshake over an FTP
connection, it now also requires that the SSL handshake occurs after
the FTP client requested AUTH GSSAPI, more specifically identifying the
characteristics of GridFTP control channels.

Addresses #891.
2012-10-17 12:09:12 -05:00
Jon Siwek
e835a55229 Add IPv6 support to signature header conditions.
- "src-ip" and "dst-ip" conditions can now use IPv6 addresses/subnets.
  They must be written in colon-hexadecimal representation and enclosed
  in square brackets (e.g. [fe80::1]).  Addresses #774.

- "icmp6" is now a valid protocol for use with "ip-proto" and "header"
  conditions.  This allows signatures to be written that can match
  against ICMPv6 payloads.  Addresses #880.

- "ip6" is now a valid protocol for use with the "header" condition.
  (also the "ip-proto" condition, but it results in a no-op in that
  case since signatures apply only to the inner-most IP packet when
  packets are tunneled).  This allows signatures to match specifically
  against IPv6 packets (whereas "ip" only matches against IPv4 packets).

- "ip-proto" conditions can now match against IPv6 packets.  Before,
  IPv6 packets were just silently ignored which meant DPD based on
  signatures did not function for IPv6 -- protocol analyzers would only
  get attached to a connection over IPv6 based on the well-known ports
  set in the "dpd_config" table.
2012-10-17 11:11:51 -05:00