Commit graph

11634 commits

Author SHA1 Message Date
Seth Hall
00eeadf2f5 Complete removal of the old table based notice policy mechanism. 2013-03-06 09:44:25 -05:00
Bernhard Amann
5e8e12182a add base64-encode functionality and bif.
This allows replacing an ugly openssl-call from one of
the policy scripts. The openssl call is now replaced with
a still-but-less-ugly call to base64_encode.

I do not know if I split the Base64 classes in a "smart" way... :)
2013-03-05 16:05:07 -08:00
Jon Siwek
c330b46128 FileAnalysis: add libmagic file type detection. 2013-03-04 16:20:10 -06:00
Jon Siwek
c88babf6ef Fix init of local sets/vectors via curly brace initializer lists. 2013-03-01 16:42:16 -06:00
Scott Runnels
78c81a59e0 Started in on describing records. 2013-03-01 15:55:38 -05:00
Jon Siwek
9425c2508f Change semantics of FileAnalysis::stop BIF to internally mean "ignore".
The manager has to remember that the file is being ignored until either
EOF or timeout.
2013-03-01 14:03:37 -06:00
Jon Siwek
6cb58a5228 FileAnalysis: minor code reorg/tweak of BOF buffering stuff. 2013-03-01 09:55:49 -06:00
Jon Siwek
720858fb36 FileAnalysis: refactor add/remove/stop BIFs, add BOF triggers/fields.
The add_action, remove_action, and stop BIFs now go through a queue to
ensure that modifications are made at well-defined times and don't end
up invalidating loop iterators.
2013-02-28 17:19:16 -06:00
Jon Siwek
2481f9f837 Fix possible null pointer dereference in identify_data BIF.
There was no check/handling for if magic_buffer() returns null.
Also centralized libmagic calls for consistent error handling/output.
2013-02-27 16:04:36 -06:00
Seth Hall
e3856d7681 Removing a field that is no longer logged through the standard metrics log. 2013-02-27 11:25:01 -05:00
Jon Siwek
691622b3aa Refactor how file analysis actions are tracked.
The Info record now uses a "table[ActionArgs] of ActionResults", which
allows for simultaneous actions of a given type as long as other args
(fields in the ActionArgs record) are different.
2013-02-25 16:35:42 -06:00
Scott Runnels
b53f701ffe Added documentation for the pattern data type as well as btests for time, interval, and pattern. 2013-02-25 01:12:07 -05:00
Jon Siwek
4b30cc2e24 Add file analysis action to send data to script-land in chosen events. 2013-02-22 16:49:53 -06:00
Jon Siwek
dd9f361bc7 Fix build on OpenBSD 5.2. 2013-02-22 10:45:22 -06:00
Seth Hall
ff2c2c7e52 Merge remote-tracking branch 'origin/topic/jsiwek/file-analysis' into topic/seth/file-analysis-exe-analyzer
Conflicts:
	src/CMakeLists.txt
	src/file_analysis.bif
	src/file_analysis/Info.cc
2013-02-22 02:38:29 -05:00
Seth Hall
efc76fd052 Initial groundwork for analyzer actions in file analysis framework. 2013-02-22 02:36:41 -05:00
Jon Siwek
85410a7657 Add MD5/SHA1/SHA256 file analysis hashing actions. 2013-02-21 21:05:01 -06:00
Jon Siwek
ceb471fb36 Prettify file analysis IDs to be more like connection uids. 2013-02-20 22:09:39 -06:00
Scott Runnels
1724784aad After extensive testing it has been revealed that 2.2 secons is not equal to 10 seconds. Scientific paper to follow. 2013-02-20 09:35:53 -05:00
Jon Siwek
d158c7ffdf Fix memory leaks resulting from 'when' and 'return when' statements.
Addresses #946.
2013-02-19 16:19:16 -06:00
Jon Siwek
7e5115460c Fix three bugs with 'when' and 'return when' statements. Addresses #946
- 'when' statements were problematic when used in a function/event/hook
  that had local variables with an assigned function value.  This was
  because 'when' blocks operate on a clone of the frame and the cloning
  process serializes locals and the serialization of functions had an
  infinite cycle in it (ID -> BroFunc -> ID -> BroFunc ...).  The ID
  was only used for the function name and type information, so
  refactoring Func and subclasses to depend on those two things instead
  fixes the issue.

- 'return when' blocks, specifically, didn't work whenever execution
  of the containing function's body does another function call before
  reaching the 'return when' block, because of an assertion.  This was
  was due to logic in CallExpr::Eval always clearing the CallExpr
  associated with the Frame after doing the call, instead of restoring
  any previous CallExpr, which the code in Trigger::Eval expected to
  have available.

- An assert could be reached when the condition of a 'when' statement
  depended on checking the value of global state variables.  The assert
  in Trigger::QueueTrigger that checks that the Trigger isn't disabled
  would get hit because Trigger::Eval/Timeout disable themselves after
  running, but don't unregister themselves from the NotifierRegistry,
  which keeps calling QueueTrigger for every state access of the global.
2013-02-19 11:38:17 -06:00
Scott Runnels
11f9b83cd9 Added documentation for the interval data type. 2013-02-18 00:16:59 -05:00
Scott Runnels
7e281015ac Add documentation for the time data type. 2013-02-17 23:23:03 -05:00
Scott Runnels
6b3186780b Added a quick explanation of the port data type. 2013-02-17 22:24:35 -05:00
Scott Runnels
0cd9b82c0f Merge branch 'topic/documentation' of ssh://git.bro-ids.org/bro into topic/documentation 2013-02-17 22:05:49 -05:00
Scott Runnels
19804aa173 Merge remote-tracking branch 'origin/master' into topic/documentation 2013-02-17 21:50:18 -05:00
Daniel Thayer
8524ebc53e Merge remote-tracking branch 'origin/topic/dnthayer/lang-docs' into topic/documentation 2013-02-15 09:27:56 -06:00
Daniel Thayer
6ebc098c21 Merge remote-tracking branch 'origin/master' into topic/documentation 2013-02-15 09:26:48 -06:00
Daniel Thayer
9c9cc0d5db Merge remote-tracking branch 'origin/master' into topic/dnthayer/lang-docs 2013-02-15 09:25:51 -06:00
Jon Siwek
f8af42cf9a Reorganizing file analysis source code. 2013-02-14 16:07:42 -06:00
Jon Siwek
f04d189d3f More work on the interface to add/remove file analysis actions.
Added the file extraction action and did other misc. cleanup.  Most of
the minimal core features/support for file analysis should be working at
this point, just have to start fleshing things out.
2013-02-14 12:53:20 -06:00
Scott Runnels
b296f27514 Start definition of address data type. 2013-02-12 23:38:11 -05:00
Scott Runnels
739134dc66 Include an extended explanation of the module and export{} considerations when using global variables. 2013-02-12 22:34:49 -05:00
Seth Hall
9f8ba408ba Updates for the notices framework.
- Moved the Notice::notice event and Notice::policy table to both be hooks.

 - Renamed the old Notice::policy to Notice::policy_table and documented it as deprecated.
2013-02-11 14:36:14 -05:00
Jon Siwek
b9d204005d Merge branch 'master' into topic/jsiwek/file-analysis 2013-02-08 09:53:27 -06:00
Scott Runnels
ed8267dd38 Added a more simple example to the section on Constants to re-inforce &redef. 2013-02-07 23:28:33 -05:00
Scott Runnels
614f85259a Remove references to event.bif.bro 2013-02-07 22:36:17 -05:00
Jon Siwek
26bf99c5a3 Add parsing for GTPv1 extension headers and control messages.
Added a generic gtpv1_message event generated for any GTP message type.

Added specific events for the create/update/delete PDP context
request/response messages.

Addresses #934.
2013-02-07 14:59:02 -06:00
Seth Hall
f8be65ca56 Merge remote-tracking branch 'origin/master' into topic/seth/metrics-merge 2013-02-07 10:01:13 -05:00
Seth Hall
e974950c6d Correctly handle DNS lookups for software version ranges. 2013-02-06 13:59:17 -05:00
Seth Hall
ff3ec04f32 Improvements to vulnerable software detection.
- Add a DNS based updating method.  This needs to be tested still.

 - Vulnerable version ranges are used now instead
   of only single versions.  This can deal with
   software with multiple stable major versions.
2013-02-06 13:59:12 -05:00
Seth Hall
ad9e2a143c Update software version parsing and comparison to account for a third numeric subversion.
- $addl is also compared numerically now if the value is actually numeric.
2013-02-06 13:59:05 -05:00
Scott Runnels
2fd187f991 Start to integrate suggestions from Robin 2013-02-06 01:22:42 -05:00
Seth Hall
a2556642e6 Merge remote-tracking branch 'origin/topic/matthias/notary'
* origin/topic/matthias/notary:
  Small cosmetic changes.
  Give log buffer the correct name.
  Simplify delayed logging of SSL records.
  Implement delay-token style SSL logging.
  More style tweaks: replace spaces with tabs.
  Factor notary code into separte file.
  Adhere to Bro coding style guidelines.
  Enhance ssl.log with information from notary.

Closes #928
2013-02-05 02:06:33 -05:00
Robin Sommer
10d91fd1eb Merge remote-tracking branch 'origin/topic/bernhard/input-tests-exit-after-terminate'
* origin/topic/bernhard/input-tests-exit-after-terminate:
  update input tests to use exit_only_after_terminate
2013-02-04 09:46:01 -08:00
Robin Sommer
52f52f60a5 Merge branch 'topic/robin/exit-after-terminate'
* topic/robin/exit-after-terminate:
  Updating submodule(s).
  Fixing exit-after-terminate when used with bare mode.
  New option exit_only_after_terminate to prevent Bro from exiting.
2013-02-04 09:44:33 -08:00
Bernhard Amann
dd24d7af83 update input tests to use exit_only_after_terminate 2013-02-01 15:45:21 -08:00
Bernhard Amann
d4289b3313 Merge remote-tracking branch 'origin/topic/robin/exit-after-terminate' into topic/bernhard/input-tests-exit-after-terminate 2013-02-01 15:14:49 -08:00
Robin Sommer
d3814594ff Updating submodule(s).
[nomail]
2013-02-01 08:03:18 -08:00
Robin Sommer
01c2bf4e0e Updating submodule(s).
[nomail]
2013-01-30 20:10:36 -08:00