No description
Find a file
Robin Sommer 6fbebc5e94
Fixing productive connections with missing SYN still considered partial after flipping direction.
In https://github.com/zeek/zeek/pull/2191, we added endpoint flipping
for cases where a connection starts with a SYN/ACK followed by ACK or
data. The goal was to treat the connection as productive and go ahead
and parse it. But the TCP analyzer could continue to consider it
partial after flipping, meaning that app layers would bail out. #2426
shows such a case: HTTP gets correctly activated after flipping
through content inspection, but it won't process anything because
`IsPartial()` returns true. As the is-partial state reflects
whether we saw the first packets each in direction, this patch now
overrides that state for the originally missing SYN after flipping.

We actually had the same problem at a couple of other locations already
as well. One of that only happened to work because of the originally
inconsistent state flipping that was fixed in the previous commit. The
corresponding unit test now broke after that change. This commit
updates that logic as well to override the state.

This fix is a bit of a hack, but the best solution I could think of
without introducing larger changes.

Closes #2426.
2022-11-16 09:56:51 +01:00
.github/workflows Remove external CAF build for Coverity setup 2022-10-21 15:46:34 -07:00
auxil Updating submodule(s) [nomail] 2022-10-29 19:14:05 -07:00
ci Merge remote-tracking branch 'origin/topic/johanna/ubuntu2210ci' 2022-11-03 08:56:43 -07:00
cmake@2729d2ccbd Merge remote-tracking branch 'origin/topic/awelzel/2483-builtin-plugin-includes' 2022-11-07 11:25:03 +01:00
doc@8fbfe097a7 Bump documentation. 2022-11-07 11:48:35 +01:00
docker Add new zeek-client dependency to Dockerfile: python3-websocket 2022-10-24 15:59:26 -07:00
man Add documentation for GH-1829 2021-11-16 13:51:29 +00:00
scripts Merge remote-tracking branch 'origin/topic/awelzel/2528-cluster-layout-content-warning' 2022-11-07 11:28:57 +01:00
src Fixing productive connections with missing SYN still considered partial after flipping direction. 2022-11-16 09:56:51 +01:00
testing Fixing productive connections with missing SYN still considered partial after flipping direction. 2022-11-16 09:56:51 +01:00
.cirrus.yml Add Ubuntu 22.10 to ci 2022-11-03 10:08:12 +00: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
.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 Added --include-plugins configure argument 2021-06-10 10:39:13 -07:00
.gitmodules Include in Jan's AF_PACKET plugin as builtin plugin 2022-10-13 13:29:27 +02:00
.lgtm.yml Include in Jan's AF_PACKET plugin as builtin plugin 2022-10-13 13:29:27 +02:00
.pre-commit-config.yaml Format Python scripts with yapf. 2021-11-24 23:13:24 +01: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 Bump documentation. 2022-11-07 11:48:35 +01:00
CMakeLists.txt Merge remote-tracking branch 'origin/topic/awelzel/builtin-af-packet' 2022-10-26 16:48:37 -07:00
configure Add configure --display-cmake argument 2022-11-02 12:29:47 -07:00
COPYING Update COPYING to 2021 2021-01-07 09:56:59 +00:00
COPYING.3rdparty Add gulrak/filesystem to auxil, expose via zeek::filesystem 2022-07-04 13:32:18 +02:00
INSTALL Update documentation to include "Book of Zeek" revisions 2021-02-01 15:54:36 -08:00
Makefile Keep make dist from deleting all paths containing 'build' [skip ci] 2022-06-03 22:36:19 +00:00
NEWS Merge remote-tracking branch 'origin/topic/awelzel/2440-break-next-usage-validation' 2022-11-02 10:59:29 +01:00
README Fix hello world script in the readme. 2019-07-31 14:43:18 -04:00
README.md Fix logo/website link in README [skip ci] 2021-01-20 11:04:17 -08:00
VERSION Bump documentation. 2022-11-07 11:48:35 +01:00
zeek-config.h.in Remove cmake tests for LIBPCAP_PCAP_COMPILE_NOPCAP_HAS_ERROR_PARAMETER 2022-10-21 10:50:00 -07:00
zeek-config.in Remove other general deprecations 2022-06-30 19:17:13 +00:00
zeek-path-dev.in Switch to more accurate source and binary references in cmake 2021-06-23 10:26:17 +00:00
zeek-wrapper.in Format shell scripts with shfmt. 2021-11-24 23:13:02 +01:00
zkg-config.in Add bin_dir setting for default zkg config file 2021-03-24 15:53:10 -07: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

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.