No description
Find a file
Robin Sommer 0040111955
Integrate the Spicy plugin into Zeek proper.
This reflects the `spicy-plugin` code as of `d8c296b81cc2a11`.

In addition to moving the code into Zeek's source tree, this comes
with a couple small functional changes:

- `spicyz` no longer tries to infer if it's running from the build
  directory. Instead `ZEEK_SPICY_LIBRARY` can be set to a custom
  location. `zeek-set-path.sh` does that now.

- ZEEK_CONFIG can be set to change what `spicyz -z` print out. This is
  primarily for backwards compatibility.

Some further notes on specifics:

- We raise the minimum Spicy version to 1.8 (i.e., current `main`
  branch).

- Renamed the `compiler/` subdirectory to `spicyz` to avoid
  include-path conflicts with the Spicy headers.

- In `cmake/`, the corresponding PR brings a new/extended version of
  `FindZeek`, which Spicy analyzer packages need. We also now install
  some of the files that the Spicy plugin used to bring for testing,
  so that existing packages keep working.

- For now, this all remains backwards compatible with the current
  `zkg` analyzer templates so that they work with both external and
  integrated Spicy support. Later, once we don't need to support any
  external Spicy plugin versions anymore, we can clean up the
  templates as well.

- All the plugin's tests have moved into the standard test suite. They
  are skipped if configure with `--disable-spicy`.

This holds off on adapting the new code further to Zeek's coding
conventions, so that it remains easier to maintain it in parallel to
the (now legacy) external plugin. We'll make a pass over the
formatting for (presumable) Zeek 6.1.
2023-05-16 10:17:45 +02:00
.github/workflows generate-docs: Only update submodule pointer during scheduled builds 2023-05-04 14:52:21 -07:00
auxil Integrate the Spicy plugin into Zeek proper. 2023-05-16 10:17:45 +02:00
ci ci: Add public-ecr-vacuum.sh 2023-05-05 12:11:09 +02:00
cmake@ac0529be3d Integrate the Spicy plugin into Zeek proper. 2023-05-16 10:17:45 +02:00
doc@40e049c138 Update doc submodule [nomail] [skip ci] 2023-05-13 00:41:08 +00:00
docker Configure apt to retry a few times on Docker image builder tasks 2023-02-27 14:29:56 -07:00
man Use the same rules as cmake submodule to reformat Zeek 2023-05-09 08:31:43 -07:00
scripts Integrate the Spicy plugin into Zeek proper. 2023-05-16 10:17:45 +02:00
src Integrate the Spicy plugin into Zeek proper. 2023-05-16 10:17:45 +02:00
testing Integrate the Spicy plugin into Zeek proper. 2023-05-16 10:17:45 +02:00
.cirrus.yml ci: Add public-ecr-vacuum.sh 2023-05-05 12:11:09 +02:00
.clang-format Add pre-commit config. 2021-11-09 07:20:18 +01:00
.clang-tidy Disable annoying bugprone-easily-swappable-parameters clang-tidy check [skip ci] 2022-10-07 16:15:47 -07:00
.cmake-format.json Use the same rules as cmake submodule to reformat Zeek 2023-05-09 08:31:43 -07:00
.dockerignore Add .dockerignore to suppress btest artifacts 2021-09-24 17:04:26 -07:00
.git-blame-ignore-revs GH-1781: Add .git-blame-ignore-revs file 2021-11-02 16:06:36 -07:00
.gitattributes GH-1497: Support CRLF line-endings in Zeek scripts and signature files 2021-04-08 20:32:30 -07:00
.gitignore Cirrus configuration for Windows builds 2022-11-09 18:16:13 +02:00
.gitmodules Integrate the Spicy plugin into Zeek proper. 2023-05-16 10:17:45 +02:00
.pre-commit-config.yaml Use the same rules as cmake submodule to reformat Zeek 2023-05-09 08:31:43 -07:00
.style.yapf Format Python scripts with yapf. 2021-11-24 23:13:24 +01:00
.update-changes.cfg Add script to update external test repo commit pointers 2019-04-05 17:09:01 -07:00
CHANGES Merge remote-tracking branch 'origin/topic/awelzel/zeek-seed-env-2' 2023-05-12 23:45:47 +02:00
CMakeLists.txt Integrate the Spicy plugin into Zeek proper. 2023-05-16 10:17:45 +02:00
configure Integrate the Spicy plugin into Zeek proper. 2023-05-16 10:17:45 +02:00
COPYING Update COPYING to 2023 2023-01-03 12:10:03 -07:00
COPYING-3rdparty Rename COPYING.3rdparty to COPYING-3rdparty 2023-01-03 12:10:03 -07:00
INSTALL Update documentation to include "Book of Zeek" revisions 2021-02-01 15:54:36 -08:00
Makefile Add zeek -V/--build-info 2023-02-13 12:23:29 +01:00
NEWS Merge remote-tracking branch 'origin/topic/awelzel/zeek-seed-env-2' 2023-05-12 23:45:47 +02:00
README Add tooling section to README 2023-01-27 13:03:52 -07:00
README.md Add build status, slack, and discourse badges to readme 2023-02-27 15:25:36 -07:00
VERSION Merge remote-tracking branch 'origin/topic/awelzel/zeek-seed-env-2' 2023-05-12 23:45:47 +02:00
zeek-config.h.in Integrate the Spicy plugin into Zeek proper. 2023-05-16 10:17:45 +02:00
zeek-config.in Integrate the Spicy plugin into Zeek proper. 2023-05-16 10:17:45 +02:00
zeek-path-dev.bat.in Modify Windows test cmd file to actually run tests 2023-04-26 09:17:52 -07:00
zeek-path-dev.in Add template file and cmake call for zeek-path setup on Windows 2023-04-25 15:15:04 -07:00
zeek-version.h.in zeek-config: Move ZEEK_VERSION* out of zeek-config.h 2023-02-22 16:48:39 +01:00
zkg-config.in cmake: Fixup BRO_PLUGIN_INSTALL_PATH references 2023-04-24 12:15:37 +02: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.

Coverage Status Build Status

Slack Discourse

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.

Tooling

We use the following tooling to help discover issues to fix, amongst a number of others.