Commit graph

6022 commits

Author SHA1 Message Date
Jon Siwek
0a31fd7a69 Give broker python bindings default install path within --prefix. 2015-03-12 10:19:52 -05:00
Johanna Amann
ba27bb54d4 Implement correct parsing of TLS record fragmentation.
Finally. Our test-case is a >400kb certificate with 10,000 alternative
names. :)
2015-03-11 18:23:08 -07:00
Johanna Amann
47de906612 Make handshake analyzer flow-based. This means we can feed data to it in
chunks, which makes dealing with fragmentation a little bit more
convenient.
2015-03-11 16:17:14 -07:00
Johanna Amann
1ae97e7e62 When setting the SSL analyzer to fail, also stop processing data
that already has been delivered to the analyzer, not just future data.

No testcase because this is hard to reproduce, this was only found due
to mistakenly triggering an error in life traffic at a site...
2015-03-11 15:21:35 -07:00
Johanna Amann
038fbf9b9e First step for a DTLS analyzer.
This commit mostly does a lot of refactoring of the current SSL
analyzer, which is split into several parts.

The handshake protocol is completely taken out of the SSL analyzer and
was refactored into its own analyzer (called tls-handshake-analyzer).
This will also (finally) make it possible to deal with TLS record
fragmentation.

Apart from that, the parts of the SSL analyzer that are common to DTLS
were split into their own pac files. Both the SSL analyzer and the (very
basic, mostly nonfunctional) DTLS analyzer use their own pac files and
those shared pac files.

All SSL tests still pass after refactoring so I hope I did not break
anything too badly.

At the moment, we have two different modules in one directory and I
guess the way I am doing this might be an abuse of the system. It seems
to work though...
2015-03-11 15:07:13 -07:00
Jon Siwek
9bb00639ba Updating submodule(s).
[nomail]
2015-03-11 17:01:13 -05:00
Jon Siwek
2d82cab998 Updating submodule(s).
[nomail]
2015-03-11 16:48:38 -05:00
Vlad Grigorescu
82c4037929 Refactoring ssh-protocol.pac:
- Simplify and unify some types
  - Fix parsing of the key exchange messages, so we can transition
  - states properly again.
2015-03-11 11:58:31 -04:00
Johanna Amann
31795e7600 When setting the SSL analyzer to fail, also stop processing data
that already has been delivered to the analyzer, not just future data.

No testcase because this is hard to reproduce, this was only found due
to mistakenly triggering an error in life traffic at a site...
2015-03-10 14:29:40 -07:00
Jon Siwek
cb5902d1ad Fix broker data stores in absence of --enable-debug.
Oops, put too much inside the assert() macro, so the registering of data
stores got preprocessed out of optimized builds.
2015-03-10 13:27:13 -05:00
Vlad Grigorescu
3ad6b3004b SSH: Use the compression_algorithms const in another place. 2015-03-10 11:57:12 -04:00
Vlad Grigorescu
d9b4693240 Some cleanup and refactoring on SSH main.bro.
Specifically, an overhaul of how the algorithm negotiation is
calculated, to simplify a lot of the code.
2015-03-09 16:04:35 -04:00
Johanna Amann
d208c95e9a and still use the hash for notice suppression. 2015-03-09 12:56:55 -07:00
Johanna Amann
144302d3e7 add knob to revert to old validation behavior 2015-03-09 12:53:29 -07:00
Johanna Amann
6ab5701ad0 Update certificate validation script - new version will cache valid
intermediate chains that it encounters on the wire and use those to try
to validate chains that might be missing intermediate certificates.

This vastly improves the number of certificates that Bro can validate.
The only drawback is that now validation behavior is not entirely
predictable anymore - the certificate of a server can fail to validate
when Bro just started up (due to the intermediate missing), and succeed
later, when the intermediate can be found in the cache.

Has been tested on big-ish clusters and should not introduce any
performance problems.
2015-03-09 12:46:33 -07:00
Jon Siwek
867c4379ea Fix a format specifier. 2015-03-09 13:16:49 -05:00
Robin Sommer
7870da9028 Updating submodule(s).
[nomail]
2015-03-06 14:59:28 -08:00
Robin Sommer
b9fa21156e Updating submodule(s).
[nomail]
2015-03-06 14:55:39 -08:00
Jon Siwek
057ddb22a9 Merge remote-tracking branch 'origin/topic/jsiwek/broker'
* origin/topic/jsiwek/broker:
  Fix build warnings, clarify broker requirements, update submodule.
  Rename comm/ directories to broker/
  Rename broker-related namespaces.
  Improve remote logging via broker.
  Disable a stream's remote logging via broker if it fails.
  Improve some broker communication unit tests.
  Adapt to a broker API change.

BIT-1319 #merged
2015-03-06 12:57:48 -06:00
Jon Siwek
2f626fa602 Fix build warnings, clarify broker requirements, update submodule. 2015-03-06 11:07:58 -06:00
Jon Siwek
9e53722b57 Rename comm/ directories to broker/ 2015-03-05 17:02:25 -06:00
Jon Siwek
fa08083a92 Rename broker-related namespaces.
c++ namespace "comm" -> bro_broker
script module "Comm" -> BrokerComm
script module "Store" -> BrokerStore
2015-03-05 16:20:51 -06:00
Seth Hall
371cf10c86 Improved transition into SSL/TLS from RDP. 2015-03-05 16:57:58 -05:00
Seth Hall
ffdf2a46d7 Fixes tests in RDP branch.
- Re-enable MySQL.  It had accidentally been disabled.
2015-03-05 16:08:18 -05:00
Johanna Amann
ec91641569 Merge branch 'topic/seth/rdp' of ssh://git.bro.org/bro into topic/seth/rdp 2015-03-05 13:00:41 -08:00
Johanna Amann
9441dc68ec add a special case to the X509 code that deals with RDP certificates.
Basically, at least some rdp certificates specify a completely invalid
and nonsensical value for theyr key type. OpenSSL does not like this and
refuses to parse the key in this case. With this change, we detect this
case and special-case it, hinting to OpenSSL what kind of key we have.
This gives us additional information that we would not have otherwhise
in the log file (like key length and the exponent).
2015-03-05 12:59:03 -08:00
Jon Siwek
25a4d0ebed Improve remote logging via broker.
Only send fields with the &log attribute.
2015-03-05 14:07:06 -06:00
Seth Hall
4737b235b6 Merge remote-tracking branch 'origin/master' into topic/seth/rdp 2015-03-05 14:38:34 -05:00
Seth Hall
276e072e6e A few more changes to handling encryption in RDP. 2015-03-05 13:38:54 -05:00
Jon Siwek
69693663eb Disable a stream's remote logging via broker if it fails.
If there's something invalid about the stream like trying to log an
unsupported data type, don't keep trying to send remote logs.
2015-03-05 11:53:50 -06:00
Jon Siwek
4f918f1f98 Improve some broker communication unit tests.
For testing data store queries, when statements may not work well if
time stops advancing e.g. due to lack of input sources, so try to
workaround by reading a trace file in unit test.
2015-03-05 11:46:55 -06:00
Seth Hall
b92a68e2bd Adds some comments and fixes a broxygen warning. 2015-03-05 11:37:37 -05:00
Seth Hall
6909d0de87 Fixes another optional part of an RDP unit. 2015-03-05 03:02:19 -05:00
Seth Hall
374ac42814 Support RDP negotiation requests optionally and support zero length cookies. 2015-03-05 02:48:21 -05:00
Seth Hall
b4e3fbc9e7 Changed UTF-16 to UTF-8 conversion to be more lenient.
- This seems to solve the occasional problems with strings not
   getting converted.
2015-03-05 02:30:32 -05:00
Seth Hall
d59d0b57c1 Fixed an issue with parse failure on an optional field.
- Quite a bit more of this needs to happen.
2015-03-05 02:23:35 -05:00
Seth Hall
e05bebc5fb Removing a stray printf from RDP analyzer. 2015-03-05 02:10:11 -05:00
Seth Hall
f45e057779 Another big RDP update.
- New fields for certificate type, number of certificates,
   if certificates are permanent on the server, and the selected
   security protocol.
 - Fixed some issues with X.509 certificate handling over RDP
   (the event handler wasn't sufficiently constrained).
 - Better detection of and transition into encrypted mode.  No more
   binpac parse failures from the test traces anymore!
 - Some event name clean up and new events.
 - X.509 Certificate chains are now handled correctly (was only grabbing
   a single certificate).
2015-03-05 01:15:12 -05:00
Jon Siwek
d2747547b7 Adapt to a broker API change. 2015-03-04 16:19:14 -06:00
Robin Sommer
e5adc768cc Merge branch 'stats-bytes-recvd' of https://github.com/msmiley/bro 2015-03-04 13:16:19 -08:00
Robin Sommer
0cc3e574f0 Merge remote-tracking branch 'origin/topic/johanna/x509-cn'
* origin/topic/johanna/x509-cn:
  Use our new features to send the CN and SAN fields of certificates to the intel framework.
  Do not log common name by default (it is most interesting for scripts) and add a test case.
  extract most specific common name from certificates

BIT-1323 #merged
2015-03-04 12:31:34 -08:00
Robin Sommer
bfaf41310c Updating submodule(s).
[nomail]
2015-03-04 12:27:24 -08:00
Seth Hall
0d04557ac4 New script to add a field to rdp.log when the connection is upgraded to SSL. 2015-03-04 14:50:41 -05:00
Daniel Thayer
bf08770764 Correct a minor typo in the docs 2015-03-04 13:31:13 -06:00
Vlad Grigorescu
8ca0067363 SSH: A bit of code cleanup. 2015-03-04 13:24:59 -05:00
Seth Hall
d361deb975 Merge remote-tracking branch 'origin/master' into topic/seth/rdp 2015-03-04 13:12:45 -05:00
Seth Hall
bbedb73a45 Huge updates to the RDP analyzer from Josh Liburdi.
- More data pulled into scriptland.
  - Logs expanded with client screen resolution and desired color depth.
  - Values in UTF-16 on the wire are converted to UTF-8 before being
    sent to scriptland.
  - If the RDP turns into SSL records, we now pass data that appears
    to be SSL to the PIA analyzer.
  - If RDP uses native encryption with X.509 certs we pass those
    certs to the files framework and the base scripts pass them forward
    to the X.509 analyzer.
  - Lots of cleanup and adjustment to fit the documented protocol
    a bit better.
  - Cleaned up the DPD signatures.
  - Moved to flowunit instead of datagram.
  - Added tests.
2015-03-04 13:12:03 -05:00
Vlad Grigorescu
c448425272 Move SSH constants to consts.pac 2015-03-04 11:41:21 -05:00
Johanna Amann
946f19fb9d Use our new features to send the CN and SAN fields of certificates to
the intel framework.
2015-03-03 17:15:24 -08:00
Johanna Amann
e48c6ccc4a Do not log common name by default (it is most interesting for scripts)
and add a test case.
2015-03-03 16:38:25 -08:00