Commit graph

6667 commits

Author SHA1 Message Date
Johanna Amann
b7a7e45a07 Merge remote-tracking branch 'origin/master' into topic/johanna/ocsp-sct-validate 2017-06-26 11:16:08 -07:00
Jon Siwek
5540b228e5 Merge branch 'nfs_changes' of https://github.com/jwallior/bro
* 'nfs_changes' of https://github.com/jwallior/bro:
  Add nfs unittest. Includes an example for the new nfs_proc_rename.
  Added rename event to rpc/nfs protocol analyzer. 	This event identifies and reports information 	about nfs/rpc calls and replies of the type 	rename.
  Expand parsing of RPC Call packets to add Uid, Gid, Stamp, MachineName and AuxGIDs
  Fix NFS protocol parser.
2017-05-22 20:35:56 -05:00
Jon Siwek
4d06ee85ce Merge branch 'topic/corelight/ascii-gzip' of https://github.com/corelight/bro
* 'topic/corelight/ascii-gzip' of https://github.com/corelight/bro:
  Add gzip log writing to the ascii writer.
2017-05-22 00:10:09 -05:00
Johanna Amann
7a1ec3501d SCT: another memory leak in SCT parsing. 2017-05-14 19:38:36 -07:00
Johanna Amann
e1d42ec99c SCT validation: fix small memory leak (public keys were not freed) 2017-05-14 09:55:17 -07:00
Jon Siwek
874d2b9fb0 Merge branch 'topic/corelight/logging-hooks' of https://github.com/corelight/bro
* 'topic/corelight/logging-hooks' of https://github.com/corelight/bro:
  Plugin: Add hooks for log init and writing.
2017-05-04 11:44:43 -05:00
Johanna Amann
7f292dc4ad TLS: Fix compile warning (comparison between signed/unsigned).
This was introduced with the addition of new TLS1.3 extensions.
2017-05-02 11:51:55 -07:00
Jon Siwek
12e809dfa0 Merge branch 'topic/corelight/file-rename-unlink' of https://github.com/corelight/bro
* 'topic/corelight/file-rename-unlink' of https://github.com/corelight/bro:
  Add rename, unlink, and rmdir bifs.
2017-05-01 10:41:28 -05:00
Johanna Amann
684ea8aa37 Plugin: Add hooks for log init and writing.
The two hooks being added are:

void HookLogInit(const std::string& writer, const std::string& instantiating_filter, bool local, bool remote, const logging::WriterBackend::WriterInfo& info, int num_fields, const threading::Field* const* fields);

which is called when a writer is being instantiated and contains
information about the fields being logged, as well as

bool HookLogWrite(const std::string& writer, const std::string& filter, const logging::WriterBackend::WriterInfo& info, int num_fields, const threading::Field* const* fields, threading::Value** vals);

which is called for each log line being written by each writer. It
contains all the data being written. The data can be changed in the
function call and lines can be prevented from being written.

This commit also fixes a few small problems with plugin hooks itself,
and extends the tests that were already there, besides introducing tests
for the added functionality.
2017-04-24 14:02:05 -07:00
Johanna Amann
c868a19a28 Add gzip log writing to the ascii writer.
This feature can be enabled globally for all logs by setting
LogAscii::gzip_level to a value greater than 0.

This feature can be enabled on a per-log basis by setting gzip-level in
$confic to a value greater than 0.
2017-04-24 13:15:32 -07:00
Johanna Amann
333bb71ed1 Add rename, unlink, and rmdir bifs. 2017-04-24 11:58:05 -07:00
Robin Sommer
ad4b2d6880 Updating submodule(s).
[nomail]
2017-04-22 08:12:15 -07:00
Robin Sommer
f80a10fb96 Merge remote-tracking branch 'origin/topic/johanna/format-checks'
* origin/topic/johanna/format-checks:
  Guard a few more format strings with __attribute__((format))
2017-04-21 14:19:47 -07:00
Robin Sommer
bf15ff4c83 Merge remote-tracking branch 'origin/topic/johanna/tls13-extensions'
* origin/topic/johanna/tls13-extensions:
  Add support for two TLS 1.3 extensions.
2017-04-21 14:15:23 -07:00
Johanna Amann
81dbbbd3a2 Update submodule
[nomail]
2017-04-17 22:02:39 +02:00
Johanna Amann
15375ba1e3 Guard a few more format strings with __attribute__((format))
This will cause compile-time error messages to be raised if someone
passes incorrect parameters to these strings.
2017-04-17 21:46:58 +02:00
Johanna Amann
a7b1161c12 Threading Types: add a bit of documentation to subnet type.
This explains how the length field is currently handled when exchanging
data in both directions.
2017-04-10 11:37:43 -07:00
Robin Sommer
7826cbdfb6 Fixing couple issues reported by Coverity. 2017-04-08 09:57:45 -07:00
Johanna Amann
61906fe7fb Merge branch 'topic/johanna/tls13-extensions' into topic/johanna/ocsp-sct-validate 2017-04-05 12:04:15 -07:00
Johanna Amann
6c9449c780 Add support for two TLS 1.3 extensions.
New events:

event ssl_extension_supported_versions(c: connection, is_orig: bool, versions: index_vec)

event ssl_extension_psk_key_exchange_modes(c: connection, is_orig: bool, modes: index_vec)
2017-04-05 11:55:40 -07:00
Roberto Del Valle Rodriguez
1ee9610b77 Added rename event to rpc/nfs protocol analyzer.
This event identifies and reports information
	about nfs/rpc calls and replies of the type
	rename.
2017-04-03 18:27:51 -04:00
Julien Wallior
e69bb37cc7 Expand parsing of RPC Call packets to add Uid, Gid, Stamp, MachineName
and AuxGIDs
2017-04-03 18:27:36 -04:00
Julien Wallior
04478acb59 Fix NFS protocol parser. 2017-04-03 18:27:25 -04:00
Johanna Amann
b8e81029f8 TLS-SCT: compile on old versions of OpenSSL (1.0.1...) 2017-03-29 09:17:30 -07:00
Johanna Amann
115a676d08 SCT: Allow verification of SCTs in Certs.
This is much more complex than the TLS Extension/OCSP cases. We need to
first alter the certificate and remove the extension from it, before
extracting the tbscert. Furthermore, we need the key hash of the issuing
certificate to be able to validate the proof - which means that we need
a valid certificate chain.

Missing: documentation, nice integration so that we can just add a
script and use this in Bro.
2017-03-29 09:17:24 -07:00
Johanna Amann
41a2028dee SCT: only compare correct OID/NID for Cert/OCSP.
The old way of doing it did not really cause problems - but now only the
OID that can be used in practice is checked.
2017-03-29 09:04:11 -07:00
Johanna Amann
c403a7f4e6 SCT: add validation of proofs for extensions and OCSP.
This does not yet work for certificates, because this requires some
changing the ASN.1 structure before validation (we need to extract the
tbscert and remove the SCT extension before).

API will change in the future.
2017-03-29 09:04:05 -07:00
Johanna Amann
d50bddfbfb SCT: pass timestamp as uint64 instead of time
For verification, we need the exact uint64 as it was seen on the wire;
converting it to a double might mean that we loose precision.
2017-03-16 18:18:39 -07:00
Johanna Amann
2b3dcc273a KRB: Fix small recently introduced files bug.
is_orig was set incorrectly for responses.
2017-03-16 12:29:50 -07:00
Johanna Amann
7aa219758c Merge remote-tracking branch 'origin/master' into topic/johanna/ocsp-new 2017-03-16 12:28:08 -07:00
Robin Sommer
98c808fbfe Merge remote-tracking branch 'origin/fastpath'
* origin/fastpath:
  Fix some Coverity warnings
2017-03-15 06:44:56 -07:00
Johanna Amann
0d691a5032 Merge branch 'patch-1' of https://github.com/petiepooo/bro
* 'patch-1' of https://github.com/petiepooo/bro:
  print version string to stdout on --version
2017-03-13 11:22:59 -07:00
Johanna Amann
17fa1b6fed Fix compiler warnings raised by llvm 8.0.
Warning was:

warning: moving a temporary object prevents copy elision [-Wpessimizing-move]
2017-03-13 11:16:19 -07:00
Johanna Amann
a38f44b1fd Fix coverity warning in Ascii reader. 2017-03-13 11:16:15 -07:00
Pete
05746ab7fc print version string to stdout on --version
When running a *nix command from the prompt, and output is expected, that output should be sent to stdout, not stderr.  The --version option is such a case.  The outputted version string is not an indication of error or a diagnostic output; it is the expected output, thus should follow standard conventions and be output to stdout..
2017-03-12 12:53:12 -04:00
Seth Hall
ffdd684eaa Merge remote-tracking branch 'origin/master' into topic/seth/input-thread-behavior 2017-03-09 12:18:41 -05:00
Daniel Thayer
5ec4e00fcd Fix some Coverity warnings
Fixed some Coverity warnings in RemoteSerializer::ProcessLogCreateWriter().
Upon failure, CreateWriterForRemoteLog() frees the "info" and "fields"
pointers, so they are now set to null in order to avoid freeing them
a second time.
2017-03-08 14:19:31 -06:00
Johanna Amann
b6e6302b40 Ascii reader error changes - fix small bugs
The changes are now a bit more succinct with less code changes required.
Behavior is tested a little bit more thoroughly and a memory problem
when reading incomplete lines was fixed. ReadHeader also always directly
returns if header reading failed.

Error messages now are back to what they were before the change, if the
new behavior is not used.

I also tweaked the documentation text a bit.
2017-03-03 12:42:44 -08:00
Robin Sommer
6302b103f4 Merge remote-tracking branch 'origin/topic/johanna/threads'
Tweaked the new threading code a bit more.

* origin/topic/johanna/threads:
  Move threading to c++11 primitives (mostly).
2017-03-03 10:40:04 -08:00
Johanna Amann
9341ff801c Move threading to c++11 primitives (mostly).
This moves all threading code in Bro from pthreads to the c++11
primitives, which make for shorter, easier to use, and less error-prone
code.

pthreads is still used in 2 places in Bro currently. BasicThread uses
two bits of functionality that are not available using the c++ API
(setting thread names & setting signal masks). Since all c++
implementations that I am aware of still use an underlying pthreads
implementation, we just use native_handle to access the underlying
pthreads implementation for these cases. I do not expect this to lead to
problems in the forseable future. If we ever encounter a platform where
a different thread architecture is used, we might have to change that
around.

This code is guarded by static_asserts, so we will notice if a platform
uses a different implementation.

sqlite also uses pthreads directly.
2017-03-02 08:53:38 -08:00
Seth Hall
01a3943635 Do some updates to remove build time warnings.
The linker was complaining about linking files that didn't
have any symbols.  These were actually empty files so I just
got rid of them and removed references to them.
2017-02-28 12:40:01 -05:00
Seth Hall
b89fe748c9 Merge remote-tracking branch 'origin/topic/robin/broker-logging'
* origin/topic/robin/broker-logging:
  Another fix for the new Broker-based remote logging.
  Fix some minor issues.
  Adding Broker ifdefs for new remote logging code.
  Changing semantics of Broker's remote logging to match old communication framework.
2017-02-27 15:10:36 -05:00
Robin Sommer
58a2d06c93 Another fix for the new Broker-based remote logging. 2017-02-27 08:22:16 -08:00
Seth Hall
5078159080 Tiny fix to correct a warning message. 2017-02-23 23:13:48 -05:00
Seth Hall
75744d22bc Input's ascii reader is now more resilient.
By default, the ASCII reader does not fail on errors anymore.
If there is a problem parsing a line, a reporter warning is
written and parsing continues.  If the file is missing or can't
be read, the input thread just tries again on the next heartbeat.

Options have been added to recreate the previous behavior...

const InputAscii::fail_on_invalid_lines: bool;
and
const InputAscii::fail_on_file_problem: bool;

They are both set to `F` by default which makes the input readers
resilient to failure.
2017-02-23 23:13:12 -05:00
Robin Sommer
5cf7803e68 Fix some minor issues.
From Daniel, thanks!
2017-02-23 17:18:43 -08:00
Johanna Amann
5b76366199 Plugin: add/fix documentation for HookSetupAnalyzerTree 2017-02-23 15:00:27 -08:00
Johanna Amann
ae6dbf17a2 Input Manager: tiny error message fix. 2017-02-23 10:00:52 -08:00
Seth Hall
f562989aa3 Merge remote-tracking branch 'origin/topic/vladg/krb5-ticket-tracking'
* origin/topic/vladg/krb5-ticket-tracking:
  Kerberos ciphertext had some additional ASN.1 content being lumped in.
2017-02-22 00:01:20 -05:00
Seth Hall
2b15ec1069 Another resilient Ascii reader checkpoint.
This works correctly now (as a prototype at least). If a file
disappears, the thread complains once and once the file reappears
the thread will once again begin watching it.
2017-02-21 23:35:29 -05:00