Commit graph

5140 commits

Author SHA1 Message Date
Bernhard Amann
9014629a7d Let TLS analyzer fail better when no longer in sync with the data stream. The
version field in each record-layer packet is now re-checked.
2014-05-08 11:32:52 -07:00
Jon Siwek
012156e9f1 Merge branch 'topic/jsiwek/asan-fixes' 2014-05-07 11:03:05 -05:00
Jon Siwek
4ea8a4e8ef Change handling of atypical OpenSSL error case in x509 verification. 2014-05-07 10:45:00 -05:00
Jon Siwek
6277be6e60 Fix memory leaks in X509 certificate parsing/verification. 2014-05-06 20:50:37 -05:00
Jon Siwek
37b860d325 Fix new []/delete mismatch in input::reader::Raw::DoClose(). 2014-05-06 12:55:50 -05:00
Jon Siwek
af3b87e100 Fix buffer over-reads in file_analysis::Manager::Terminate() 2014-05-06 12:36:02 -05:00
Jon Siwek
965e4d421d Fix buffer overlows in IP address masking logic.
That could occur either in taking a zero-length mask on an IPv6 address
(e.g. [fe80::]/0) or a reverse mask of length 128 on any address (e.g.
via the remask_addr BuiltIn Function).
2014-05-06 12:13:43 -05:00
Jon Siwek
713fd2fbaf Fix new []/delete mismatch in ~Base64Converter. 2014-05-06 12:07:23 -05:00
Daniel Thayer
0cfdb8cbfa Merge remote-tracking branch 'origin/master' into topic/dnthayer/ticket1186 2014-05-02 17:15:18 -05:00
Daniel Thayer
99b13d3cfd Add a new section "Cluster Configuration" to the docs
Added a new section that is intended as a how-to for configuring a Bro
cluster (this section does not discuss cluster architecture or theory)
that is aimed at beginners to Bro.  Most of this content was moved here
from the BroControl doc (which is now intended as more of a reference guide
for more experienced users) and the load balancing FAQ on the website.
2014-05-02 16:57:55 -05:00
Jon Siwek
b15bbf4f33 Replace an unneeded OPENSSL_malloc call. 2014-05-02 12:52:11 -05:00
Jon Siwek
3905b6fc70 Clean up base SNMP script. Mostly docs, some logic refactors. 2014-05-02 12:36:02 -05:00
Jon Siwek
2e84e1f78c Merge branch 'topic/seth/snmp'
BIT-1142 #merged
2014-05-02 11:39:19 -05:00
Robin Sommer
bf9bddd4fc Updating submodule(s).
[nomail]
2014-05-01 21:05:17 -07:00
Robin Sommer
8d1b47fae6 Merge remote-tracking branch 'origin/topic/bernhard/ec-curve'
BIT-1189 #merged

* origin/topic/bernhard/ec-curve:
  fix broxygen errors
  Polish changes for ecdhe/dhe
  Add DH support to SSL analyzer.
  Add a few more ciphers Bro did not know at all so far.
  Forgot a few ciphers in the EC list...
  Log chosen curve when using ec cipher suite in TLS.
2014-05-01 20:52:50 -07:00
Robin Sommer
83a15886a7 Updating CHANGES and NEWS for earlier X509 updates.
BIT-1150 #merged
2014-05-01 20:45:35 -07:00
Robin Sommer
a9eb31b461 Merge remote-tracking branch 'origin/fastpath'
* origin/fastpath:
  Fix reference counting for lookup_ID() usages.
2014-05-01 20:30:45 -07:00
Robin Sommer
55dfc54dd6 Merge remote-tracking branch 'origin/fastpath'
* origin/fastpath:
  Fix missing "irc-dcc-data" service field from IRC DCC connections.
  Change X509 extension value parsing to not abort on malloc failures.
2014-05-01 20:26:12 -07:00
Jon Siwek
8b7d5a68b2 Fix reference counting for lookup_ID() usages.
That function refs the ID before returning it, but callers were never
assuming responsibility for that reference.
2014-05-01 15:00:03 -05:00
Jon Siwek
5b9d190f2c Fix missing "irc-dcc-data" service field from IRC DCC connections. 2014-05-01 14:08:07 -05:00
Jon Siwek
385438d47c Change X509 extension value parsing to not abort on malloc failures.
Also comes with factoring that out in to it's own function and
additional error check before using a return value from BIO_pending.
2014-05-01 13:04:34 -05:00
Robin Sommer
eed94fab76 Merge remote-tracking branch 'origin/fastpath'
* origin/fastpath:
  Correct a notice for heartbleed. The notice is thrown correctly, just the message conteined wrong values.
  Improve/standardize some malloc/realloc return val checks.
  Improve file analysis manager shutdown/cleanup.
2014-05-01 09:30:31 -07:00
Bernhard Amann
636262d865 Correct a notice for heartbleed. The notice is thrown correctly, just the message
conteined wrong values.
2014-04-30 12:35:09 -07:00
Jon Siwek
d7d5497436 Improve/standardize some malloc/realloc return val checks. 2014-04-29 15:26:19 -05:00
Jon Siwek
4b059ea15a Improve file analysis manager shutdown/cleanup.
file_analysis::Manager's dtor now doesn't assume any more analysis
progress can be made because too many of Bro's other subsystems
are shutdown by that point.  Any file analysis requests made after
Terminate cannot be reliably processed.
2014-04-29 12:44:53 -05:00
Bernhard Amann
7d0e5067c7 fix broxygen errors 2014-04-27 16:25:32 -07:00
Bernhard Amann
ef5b021e77 Polish changes for ecdhe/dhe 2014-04-27 00:15:49 -07:00
Bernhard Amann
fb56b22cff Add DH support to SSL analyzer.
When using DHE or DH-Anon, sever key parameters are now available
in scriptland.

Also add script to alert on weak certificate keys or weak dh-params.
2014-04-26 23:52:51 -07:00
Bernhard Amann
b1a2bccdc7 Add a few more ciphers Bro did not know at all so far. 2014-04-26 15:24:28 -07:00
Bernhard Amann
24b63f5fc8 Forgot a few ciphers in the EC list... 2014-04-26 09:57:20 -07:00
Bernhard Amann
597c373fa0 Log chosen curve when using ec cipher suite in TLS. 2014-04-26 09:48:36 -07:00
Robin Sommer
fc5dcc0dd1 Merge branch 'master' into topic/robin/bit-348-merge 2014-04-24 18:51:37 -07:00
Robin Sommer
b029d18336 Merge branch 'topic/mareq/quoted-printable' of https://github.com/mareq/bro
Thanks!

Merged https://github.com/bro/bro/pull/7
2014-04-24 18:38:43 -07:00
Robin Sommer
95cad599ac Merge branch 'master' of https://github.com/jshlbrd/bro
Merged https://github.com/bro/bro/pull/6
2014-04-24 18:23:51 -07:00
Robin Sommer
bd64e52782 Fixing compiler warnings. 2014-04-24 18:14:18 -07:00
Robin Sommer
116ed370a2 Merge remote-tracking branch 'origin/topic/jsiwek/bit-348'
* origin/topic/jsiwek/bit-348:
  Update SNMP analyzer's DeliverPacket method signature.
  Fix reassembly of data w/ sizes beyond 32-bit capacities (BIT-348).

Conflicts:
	src/analyzer/protocol/file/File.cc
	src/analyzer/protocol/file/File.h
2014-04-24 18:14:04 -07:00
Robin Sommer
988ba2e897 Add Java version to software framework
BIT-1168 #merged
2014-04-24 17:09:40 -07:00
Robin Sommer
9e6643e9d4 Updating submodule(s).
[nomail]
2014-04-24 17:07:04 -07:00
Robin Sommer
3b5eabaff3 Merge remote-tracking branch 'origin/topic/jsiwek/remove-val-attribs'
* origin/topic/jsiwek/remove-val-attribs:
  Remove unused Val::attribs member.

BIT-1187 #merged
2014-04-24 17:06:36 -07:00
Robin Sommer
201fc7b25a Merge remote-tracking branch 'origin/topic/bernhard/ssl-analyzer'
* origin/topic/bernhard/ssl-analyzer:
  Fix a few failing tests
  Add very basic ocsp stapling support.
  Add documentation, consts and tests for the new events.
  Support parsing of several TLS extensions.
  Make SSL/TLS version detection less brittle.
  Nicer notices for heartbleed.
  rip out state handline from ssl analyzer.
  enable detection of encrypted heartbleeds.
  also extract payload data in ssl_heartbeat
  add to local.bro, add disclaimer
  make tls heartbeat messages a bit better.
  fix tabs.
  polish script and probably detect encrypted attacks too.
  detect and alert on simple case of heartbleed
  default to TLS when not being able to determine version
  add is_orig to heartbeat event
  Throw new event for heartbeat messages.

BIT-1178 #merged
2014-04-24 17:04:56 -07:00
Robin Sommer
7f9a6f51ca Merge remote-tracking branch 'origin/topic/jsiwek/bit-1156'
I've added a unit test.

* origin/topic/jsiwek/bit-1156:
  BIT-1156: Fix parsing of DNS TXT RRs w/ multiple character-strings.

BIT-1156 #merged
2014-04-24 16:36:47 -07:00
Robin Sommer
de20b4f0fb Merge remote-tracking branch 'origin/topic/jsiwek/faf-perf'
* origin/topic/jsiwek/faf-perf:
  Adapt HTTP partial content to cache file analysis IDs.
  Adapt SSL analyzer to generate file analysis handles itself.
  Adapt more of HTTP analyzer to use cached file analysis IDs.
  Adapt IRC/FTP analyzers to cache file analysis IDs.
  Refactor regex/signature AcceptingSet data structure and usages.
  Enforce data size limit when checking files for MIME matches.
  Refactor file analysis file ID lookup.
2014-04-24 16:16:14 -07:00
Bernhard Amann
3d22692b6e Fix a few failing tests 2014-04-24 14:45:06 -07:00
Jon Siwek
de0ce6deed BIT-1156: Fix parsing of DNS TXT RRs w/ multiple character-strings.
The "dns_TXT_reply" event now uses a "vector of strings" as the final
parameter instead of just a "string" in order to support DNS TXT
resource records that contain multiple character-strings.

The format in which the TXT answers are logged by default is now changed
to be a list of strings of the form `fmt("TXT %d %s", |str|, str)`, one
for each character-string in the RR and delimited by a space (' ')
character.
2014-04-24 16:20:01 -05:00
Bernhard Amann
c24629abf4 Add very basic ocsp stapling support.
This only allows access to the ocsp stapling response data. No verification
or anything else at the moment.
2014-04-24 12:37:34 -07:00
Bernhard Amann
9b7eb293f1 Add documentation, consts and tests for the new events.
This also fixes the heartbleed detector to work for encrypted attacks in this
branch again. It stopped working, because the SSL analyzer now successfully detects
established connections, and the scripts usually disable analyzing after that.

(The heartbeat branch should not have been affected)
2014-04-24 12:05:30 -07:00
Jon Siwek
d3b27eb0c1 Adapt HTTP partial content to cache file analysis IDs.
The initial file ID I think is still ambiguous and/or depends on
script-layer state tracking enough that it still needs to request a file
ID via an event at first, but once that is assigned to an HTTP (MIME)
entity, it never makes sense that it can change (so re-using a cached ID
works).
2014-04-24 10:47:57 -05:00
Mareq
d3972afa97 Do not repeat hex-code of decoded quoted-printable. 2014-04-24 16:40:57 +01:00
Jon Siwek
58efa09426 Adapt SSL analyzer to generate file analysis handles itself. 2014-04-23 16:59:27 -05:00
Bernhard Amann
4ae52d9e1c Support parsing of several TLS extensions.
At the moment, we have support for:
elliptic_curves: client supported elliptic curves
ec_point_formats: list of client supported EC point formats
application_layer_protocol_negotiation: list of supported application layer protocols (used for spdy/http2 negotiation)
server_name: server name sent by client. This was supported before, but... a bit brittle.
2014-04-23 14:34:06 -07:00