![]() Avoid creating and recreating count objects for each chunk of file analyzed. This replaces counts inside of records with c++ uint64_ts. On a pcap containing a 100GB file download this gives a 9% speedup Benchmark 1 (3 runs): zeek-master/bin/zeek -Cr http_100g_zeroes.pcap tuning/json-logs frameworks/files/hash-all-files measurement mean ± σ min … max outliers delta wall_time 102s ± 1.23s 101s … 103s 0 ( 0%) 0% peak_rss 108MB ± 632KB 107MB … 109MB 0 ( 0%) 0% cpu_cycles 381G ± 862M 380G … 382G 0 ( 0%) 0% instructions 663G ± 5.16M 663G … 663G 0 ( 0%) 0% cache_references 1.03G ± 109M 927M … 1.15G 0 ( 0%) 0% cache_misses 12.3M ± 587K 11.7M … 12.9M 0 ( 0%) 0% branch_misses 1.23G ± 2.10M 1.22G … 1.23G 0 ( 0%) 0% Benchmark 2 (3 runs): zeek-file_analysis_speedup/bin/zeek -Cr http_100g_zeroes.pcap tuning/json-logs frameworks/files/hash-all-files measurement mean ± σ min … max outliers delta wall_time 92.9s ± 1.85s 91.8s … 95.1s 0 ( 0%) ⚡- 9.0% ± 3.5% peak_rss 108MB ± 393KB 108MB … 109MB 0 ( 0%) + 0.1% ± 1.1% cpu_cycles 341G ± 695M 341G … 342G 0 ( 0%) ⚡- 10.4% ± 0.5% instructions 605G ± 626M 605G … 606G 0 ( 0%) ⚡- 8.7% ± 0.2% cache_references 831M ± 16.9M 813M … 846M 0 ( 0%) ⚡- 19.6% ± 17.2% cache_misses 12.4M ± 1.48M 11.4M … 14.1M 0 ( 0%) + 0.3% ± 20.8% branch_misses 1.02G ± 3.45M 1.02G … 1.02G 0 ( 0%) ⚡- 16.8% ± 0.5% |
||
---|---|---|
.github/workflows | ||
auxil | ||
ci | ||
cmake@fd0696f907 | ||
cmake_templates | ||
doc@8986afb25d | ||
docker | ||
man | ||
scripts | ||
src | ||
testing | ||
.cirrus.yml | ||
.clang-format | ||
.clang-tidy | ||
.cmake-format.json | ||
.dockerignore | ||
.git-blame-ignore-revs | ||
.gitattributes | ||
.gitignore | ||
.gitmodules | ||
.pre-commit-config.yaml | ||
.typos.toml | ||
.update-changes.cfg | ||
CHANGES | ||
CMakeLists.txt | ||
CODE_OF_CONDUCT.md | ||
configure | ||
CONTRIBUTING.md | ||
COPYING | ||
COPYING-3rdparty | ||
INSTALL | ||
Makefile | ||
NEWS | ||
README | ||
README.md | ||
ruff.toml | ||
SECURITY.md | ||
vcpkg.json | ||
VERSION | ||
zeek-path-dev.in |
The Zeek Network Security Monitor
A powerful framework for network traffic analysis and security monitoring.
Key Features — Documentation — Getting Started — Development — License
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.
Tooling
We use the following tooling to help discover issues to fix, amongst a number of others.
- Clang-Tidy
- Coverity
- PVS-Studio - static analyzer for C, C++, C#, and Java code.