Commit graph

15378 commits

Author SHA1 Message Date
Arne Welzel
540fe7aff7 http: Heuristic around rejecting malformed HTTP/0.9 traffic
oss-fuzz generated "HTTP traffic" containing 250k+ sequences of "T<space>\r\r"
which Zeek then logged as individual HTTP requests. Add a heuristic to bail
on such request lines. It's a bit specific to the test case, but should work.

There are more issues around handling HTTP/0.9, e.g. triggering
"not a http reply line" when HTTP/0.9 never had such a thing, but
I don't think that's worth fixing up.

Fixes #119
2022-11-18 18:19:58 +01:00
Tim Wojtulewicz
ade2bb385b Merge remote-tracking branch 'origin/topic/awelzel/topic/amazon-ecr-zeek-not-zeekurity'
* origin/topic/awelzel/topic/amazon-ecr-zeek-not-zeekurity:
  docker/ecr: Push into zeek/zeek, not zeekurity/zeek
2022-11-18 09:41:51 -07:00
Tim Wojtulewicz
1ed15fb807 Merge remote-tracking branch 'origin/topic/neverlord/web-socket-events-warning'
* origin/topic/neverlord/web-socket-events-warning:
  Fix warning in broker.web-socket-events btest
2022-11-18 09:41:18 -07:00
Tim Wojtulewicz
c92b14fa40 Merge remote-tracking branch 'origin/topic/timw/fix-strcasestr-unit-test'
* origin/topic/timw/fix-strcasestr-unit-test:
  Fix the strcasestr unit test
2022-11-18 09:41:00 -07:00
Tim Wojtulewicz
976caf61ba Merge remote-tracking branch 'jsoref/spelling-repetition'
* jsoref/spelling-repetition:
  spelling: repetitions
2022-11-18 09:40:43 -07:00
Josh Soref
186fe346ad spelling: repetitions
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2022-11-18 10:26:33 -05:00
Robin Sommer
d2585e21be
Merge remote-tracking branch 'origin/topic/robin/gh-2426-flipping'
* origin/topic/robin/gh-2426-flipping:
  Fixing productive connections with missing SYN still considered partial after flipping direction.
  Add some missing bits when flipping endpoints.
2022-11-18 11:50:28 +01:00
Arne Welzel
9bb8ea3b5f docker/ecr: Push into zeek/zeek, not zeekurity/zeek 2022-11-18 09:33:13 +01:00
Christian Kreibich
9c2b36027b Merge branch 'topic/bbannier/publish-on-ecr'
* topic/bbannier/publish-on-ecr:
  Publish container images to ECR in addition to docker.io.
2022-11-17 16:29:01 -08:00
Tim Wojtulewicz
d5a1eb162e Add additional length checking to IPv6::ToVal 2022-11-17 12:05:26 -07:00
Tim Wojtulewicz
a0659994f0 Merge remote-tracking branch 'origin/topic/bbannier/issue-2586'
* origin/topic/bbannier/issue-2586:
  Make dependency of `zeek` on spicy-plugin's driver object file explicit.
2022-11-17 11:34:55 -07:00
Tim Wojtulewicz
224d2b0284 Merge remote-tracking branch 'jsoref/spelling-root'
* jsoref/spelling-root:
  Spelling NEWS & CMakeLists.txt
2022-11-17 11:31:38 -07:00
Tim Wojtulewicz
03d311c915 Merge remote-tracking branch 'jsoref/spelling-testing'
* jsoref/spelling-testing:
  Spelling testing
2022-11-17 11:30:35 -07:00
Tim Wojtulewicz
ca8f82a574 Fix the strcasestr unit test 2022-11-17 11:21:40 -07:00
nadavkluger
dd849bc339 Added NTLM challenge and response 2022-11-17 18:38:49 +02:00
Dominik Charousset
1b1af51bdc Fix warning in broker.web-socket-events btest 2022-11-17 12:13:30 +01:00
Josh Soref
4b7eb50892 Spelling NEWS & CMakeLists.txt
* analyzer
* calling
* can
* compatibility
* configurable
* conjunction
* connection
* corresponding
* currently
* evaluated
* framework
* frequently
* functionality
* handshake
* information
* more
* necessary
* occurred
* ocsp
* potentially
* preexisting
* serialized
* superseded
* synchronized
* timer
* unnecessary
* workarounds

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2022-11-16 20:21:38 -05:00
Josh Soref
74af1ebe16 Spelling testing
* alphabet
* another
* associated
* avoiding
* base
* because
* constructors
* defining
* deterministic
* directly
* endlessly
* entity
* function
* indefinitely
* initial
* interpreter
* into
* modifying
* negotiate
* nonexistent
* observations
* occasional
* omission
* orphaned
* overridden
* passing
* primitive
* produces
* reassembly
* repository
* restore
* shouldn't
* something
* statement
* the
* therefore
* transferred
* uninitialized
* unsuccessful

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2022-11-16 20:05:03 -05:00
zeek-bot
53394bca0c Update doc submodule [nomail] [skip ci] 2022-11-17 00:41:43 +00:00
Tim Wojtulewicz
d236c15b68 Merge remote-tracking branch 'jsoref/spelling-ci'
* jsoref/spelling-ci:
  spelling: organization
  spelling: invalidate
2022-11-16 14:55:16 -07:00
Tim Wojtulewicz
116204d0a9 Merge remote-tracking branch 'jsoref/spelling-github'
* jsoref/spelling-github:
  spelling: github
2022-11-16 14:53:48 -07:00
Tim Wojtulewicz
6055a85b3c Merge remote-tracking branch 'origin/topic/awelzel/smb1-avoid-dialect-index-error'
* origin/topic/awelzel/smb1-avoid-dialect-index-error:
  smb1: Ensure existence of dialect_index in offered dialects
2022-11-16 14:51:56 -07:00
Tim Wojtulewicz
5b57d5efd5 Merge remote-tracking branch 'origin/topic/awelzel/ssh-analyzer-id-existence'
* origin/topic/awelzel/ssh-analyzer-id-existence:
  ssh: Test for c$ssh$analyzer_id existence
2022-11-16 14:51:22 -07:00
Arne Welzel
e9fa853048 smb1: Ensure existence of dialect_index in offered dialects
When a negotiate request offers no dialects, but the response contains
an ntlm record which selects a dialect, a script error is triggered.

    $ zeek -C -r ./f2b0e.pcap 'DPD::ignore_violations+={ Analyzer::ANALYZER_SMB }'
    1668615340.837882 expression error in /home/awelzel/corelight-oss/zeek/scripts/base/protocols/smb/./smb1-main.zeek, line 96: no such index (SMB1::c$smb_state$current_cmd$smb1_offered_dialects[SMB1::response$ntlm$dialect_index])

Script error triggered by fuzzing when testing Tim's all-the-fuzzing branch.
2022-11-16 17:49:55 +01:00
Arne Welzel
187096d4a4 ssh: Test for c$ssh$analyzer_id existence
While unusual, analyzer_confirmation() may never be called for the
SSH analyzer, but still ssh_auth_attempted is invoked later indicating
successful authentication. I haven't checked how that is actually possible,
but seems prudent to check for the existence of c$ssh$analyzer_id before
referencing it (also in light of runtime enable/disabling of events).

This was found testing Tim's all-the-fuzzing branch on large system,
merging this should avoid oss-fuzz telling us about it.

    $ zeek -C -r ./e83db.pcap 'DPD::ignore_violations+={ Analyzer::ANALYZER_SSH }'
    1668610572.429058 expression error in scripts/base/protocols/ssh/./main.zeek, line 260: field value missing (SSH::c$ssh$analyzer_id)
2022-11-16 16:35:57 +01:00
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
Benjamin Bannier
b94c8bc91b Make dependency of zeek on spicy-plugin's driver object file explicit.
For generators like Makefile the implicit dependency would not have been
apparent to `make` which could have lead to build failures (depending on
the way targets were scheduled). This patch makes the dependency
explicit so it can be enforced.

Closes #2586.
2022-11-16 09:23:47 +01:00
zeek-bot
ec3eca0549 Update doc submodule [nomail] [skip ci] 2022-11-16 01:02:52 +00:00
Josh Soref
e7bdf1d7b0 spelling: github
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2022-11-15 17:57:58 -05:00
Josh Soref
f04e0f3ac4 spelling: organization
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2022-11-15 17:47:49 -05:00
Josh Soref
9c42b92a2b spelling: invalidate
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2022-11-15 17:47:36 -05:00
Tim Wojtulewicz
f810f78e3e Merge remote-tracking branch 'origin/topic/awelzel/fix-zeek-see-get-event-handler-call-counts'
* origin/topic/awelzel/fix-zeek-see-get-event-handler-call-counts:
  init-bare: Fix zeek:see after bif renaming
2022-11-15 11:35:08 -07:00
Arne Welzel
c9b2b15eb9 init-bare: Fix zeek:see after bif renaming
The docs build is currently broken due to this :-/
2022-11-15 16:04:37 +01:00
Tim Wojtulewicz
ee8e2decec Merge remote-tracking branch 'origin/topic/timw/broker-sanity-check'
* origin/topic/timw/broker-sanity-check:
  Update broker submodule [nomail]
2022-11-14 13:19:43 -07:00
Tim Wojtulewicz
f7322cba03 Update broker submodule [nomail] 2022-11-14 12:22:36 -07:00
Tim Wojtulewicz
e2d46ea6b7 Merge remote-tracking branch 'origin/topic/timw/windows-follow-ups'
* origin/topic/timw/windows-follow-ups:
  Re-enable strcasestr on Windows, fix linking error
  Minor renaming changes to event handler stats bif, plus a test
  Remove unneeded forward-declaration of select()
  Rework setting adding ports to map slightly
2022-11-14 09:42:03 -07:00
Tim Wojtulewicz
51cdbbd59d Re-enable strcasestr on Windows, fix linking error 2022-11-14 09:13:31 -07:00
Tim Wojtulewicz
bfd5b06943 Minor renaming changes to event handler stats bif, plus a test 2022-11-14 09:13:31 -07:00
Tim Wojtulewicz
accac2d3bb Remove unneeded forward-declaration of select() 2022-11-14 09:13:31 -07:00
Tim Wojtulewicz
bd52ab1a55 Rework setting adding ports to map slightly 2022-11-14 09:13:31 -07:00
zeek-bot
11be8888d7 Update doc submodule [nomail] [skip ci] 2022-11-12 00:41:52 +00:00
Tim Wojtulewicz
a8fc63e182 Merge remote-tracking branch 'microsoft/master'
* microsoft/master: (71 commits)
  Clang formatting
  Mask ports before inserting them into the map
  Fix compiler warning from applied patch
  Remove statistics plugin in favor of stats bif
  Add EventHandler version of stats plugin
  Mark a few EventHandler methods const
  Changed implementation from std::map to std::unordered_map of Val.cc
  Removed const, Windows build is now working
  Added fixes suggested in PR
  Update src/packet_analysis/protocol/ip/IP.cc
  Apply suggestions from code review
  Clang format again but now with v13.0.1
  Rewrote usages of define(_MSC_VER) to ifdef _MSC_VER
  Clang format it all
  Fixed initial CR comments
  Add NEWS entry about Windows port
  Add a couple of extra unistd.h includes to fix a build failure
  Use std::chrono instead of gettimeofday
  Update libkqueue submodule [nomail]
  Don't call tokenize_string if the input string is empty
  ...
2022-11-11 15:23:21 -07:00
Tim Wojtulewicz
2739275b88 Merge remote-tracking branch 'jsoref/spelling-src'
* jsoref/spelling-src:
  Spelling src
2022-11-11 12:49:15 -07:00
Tomer Lev
642d44009a Clang formatting 2022-11-11 18:54:05 +02:00
voidbar
425a9585b4
Merge pull request #1 from timwoj/master
Add a non-plugin version of statistics plugin
2022-11-11 18:48:14 +02:00
Tim Wojtulewicz
5996520cc7 Mask ports before inserting them into the map 2022-11-11 08:22:08 -07:00
Tim Wojtulewicz
a26e98f170 Fix compiler warning from applied patch 2022-11-10 13:37:31 -07:00
Tim Wojtulewicz
5d5f5de1d1 Remove statistics plugin in favor of stats bif 2022-11-10 13:37:31 -07:00
Tim Wojtulewicz
3a963f080e Add EventHandler version of stats plugin 2022-11-10 12:19:12 -07:00
Tim Wojtulewicz
194960eafa Mark a few EventHandler methods const 2022-11-10 11:17:53 -07:00