No description
Find a file
Christian Kreibich 1bd658da8f Support for log filter policy hooks
This adds a "policy" hook into the logging framework's streams and
filters to replace the existing log filter predicates. The hook
signature is as follows:

    hook(rec: any, id: Log::ID, filter: Log::Filter);

The logging manager invokes hooks on each log record. Hooks can veto
log records via a break, and modify them if necessary. Log filters
inherit the stream-level hook, but can override or remove the hook as
needed.

The distribution's existing log streams now come with pre-defined
hooks that users can add handlers to. Their name is standardized as
"log_policy" by convention, with additional suffixes when a module
provides multiple streams. The following adds a handler to the Conn
module's default log policy hook:

    hook Conn::log_policy(rec: Conn::Info, id: Log::ID, filter: Log::Filter)
            {
            if ( some_veto_reason(rec) )
                break;
            }

By default, this handler will get invoked for any log filter
associated with the Conn::LOG stream.

The existing predicates are deprecated for removal in 4.1 but continue
to work.
2020-09-30 12:32:45 -07:00
.github/workflows Fix generate-docs Action to stage autogenerated script-reference files 2020-09-10 11:54:51 -07:00
auxil Update submodule(s) [nomail] 2020-09-24 07:48:25 -07:00
ci Add Zeekygen documentation support for packet analyzers 2020-09-23 22:50:52 -07:00
cmake@153496bbe4 Update submodule(s) 2020-07-23 10:13:00 -07:00
doc@07c1592967 Update submodule(s) [nomail] [skip ci] 2020-09-29 15:42:08 -07:00
man Rename all BRO-prefixed environment variables 2019-05-22 00:12:31 -05:00
scripts Support for log filter policy hooks 2020-09-30 12:32:45 -07:00
src Support for log filter policy hooks 2020-09-30 12:32:45 -07:00
testing Improve broker/ssl_auth_failure.zeek test 2020-09-29 17:12:03 -07:00
.cirrus.yml Merge remote-tracking branch 'origin/topic/jsiwek/gh-822-ubsan-ci' 2020-09-24 08:17:58 -07:00
.clang-tidy Change over to whitelisting clang-tidy options instead of blacklisting 2019-08-12 13:59:17 -07:00
.gitattributes Make github identify our Flex source correctly. 2019-08-23 14:27:06 -04:00
.gitignore Initial implementation of Lower-Level analyzers 2020-09-23 11:13:25 -07:00
.gitmodules Add zeek-archiver tool as submodule 2020-07-20 16:06:44 -07:00
.update-changes.cfg Add script to update external test repo commit pointers 2019-04-05 17:09:01 -07:00
CHANGES Improve broker/ssl_auth_failure.zeek test 2020-09-29 17:12:03 -07:00
CMakeLists.txt Add framework for running UndefinedBehaviorSanitizer in CI 2020-09-18 11:32:05 -07:00
configure Add zeek-archiver tool as submodule 2020-07-20 16:06:44 -07:00
COPYING Update license year for 2018 2018-11-01 13:54:07 -05:00
COPYING.3rdparty Rename aux/ to auxil/ 2020-06-04 15:18:44 -07:00
INSTALL Make INSTALL a symlink to doc/install/install.rst 2015-03-13 15:45:20 -05:00
Makefile Rename aux/ to auxil/ 2020-06-04 15:18:44 -07:00
NEWS Merge branch 'add-dce-rpc-payloads' of https://github.com/ynadji/zeek 2020-09-25 14:39:30 -07:00
README Fix hello world script in the readme. 2019-07-31 14:43:18 -04:00
README.md Update README.md to fix the logo and one of the links 2020-04-15 13:45:25 -07:00
VERSION Improve broker/ssl_auth_failure.zeek test 2020-09-29 17:12:03 -07:00
zeek-config.h.in Move file_analysis code to zeek namespaces 2020-08-20 15:55:17 -07:00
zeek-config.in GH-1068: Add zeek symlink to allow "zeek/Foo.h" include style 2020-07-20 17:54:09 -07:00
zeek-path-dev.in Rename all BRO-prefixed environment variables 2019-05-22 00:12:31 -05:00
zeek-wrapper.in Merge remote-tracking branch 'origin/topic/robin/631-deprecation-v2' 2020-01-30 19:19:56 -08:00

Zeek Logo

The Zeek Network Security Monitor

A powerful framework for network traffic analysis and security monitoring.

Key FeaturesDocumentationGetting StartedDevelopmentLicense

Follow us on Twitter at @zeekurity.

Key Features

  • In-depth Analysis Zeek ships with analyzers for many protocols, enabling high-level semantic analysis at the application layer.

  • Adaptable and Flexible Zeek's domain-specific scripting language enables site-specific monitoring policies and means that it is not restricted to any particular detection approach.

  • Efficient Zeek targets high-performance networks and is used operationally at a variety of large sites.

  • Highly Stateful Zeek keeps extensive application-layer state about the network it monitors and provides a high-level archive of a network's activity.

Getting Started

The best place to find information about getting started with Zeek is our web site www.zeek.org, specifically the documentation section there. On the web site you can also find downloads for stable releases, tutorials on getting Zeek set up, and many other useful resources.

You can find release notes in NEWS, and a complete record of all changes in CHANGES.

To work with the most recent code from the development branch of Zeek, clone the master git repository:

git clone --recursive https://github.com/zeek/zeek

With all dependencies in place, build and install:

./configure && make && sudo make install

Write your first Zeek script:

# File "hello.zeek"

event zeek_init()
    {
    print "Hello World!";
    }

And run it:

zeek hello.zeek

For learning more about the Zeek scripting language, try.zeek.org is a great resource.

Development

Zeek is developed on GitHub by its community. We welcome contributions. Working on an open source project like Zeek can be an incredibly rewarding experience and, packet by packet, makes the Internet a little safer. Today, as a result of countless contributions, Zeek is used operationally around the world by major companies and educational and scientific institutions alike for securing their cyber infrastructure.

If you're interested in getting involved, we collect feature requests and issues on GitHub here and you might find these to be a good place to get started. More information on Zeek's development can be found here, and information about its community and mailing lists (which are fairly active) can be found here.

License

Zeek comes with a BSD license, allowing for free use with virtually no restrictions. You can find it here.