Commit graph

15389 commits

Author SHA1 Message Date
Tim Wojtulewicz
eb3fb68fcc Merge remote-tracking branch 'security/topic/awelzel/119-http-timeout-tspacerr'
* security/topic/awelzel/119-http-timeout-tspacerr:
  http: Heuristic around rejecting malformed HTTP/0.9 traffic
2022-11-22 12:27:10 -07:00
Arne Welzel
4aecbbda49 zeekygen.bif: Drop using namespace zeekygen
I might be missing something, but not sure why there are there.
2022-11-22 13:23:15 +01:00
Arne Welzel
ef166649bf zeekygen: Add BIFs to access declaring scripts
Two new BIFs get_identifier_declaring_script() and get_record_field_declaring_script()
mirroring existing functions for comments. This allows to query the declaring
script information from Zeek scripts and further determine if a redef operations
were involved for record fields or enum names by comparing the declaring script
with the one of the involved type. See the tests.

Yet another one of @stevesmoot's requests.
2022-11-22 13:23:01 +01:00
zeek-bot
e7c6d17156 Update doc submodule [nomail] [skip ci] 2022-11-22 00:33:27 +00:00
Vern Paxson
47152e38c4 change vector constructors to require direct type equivalence for non-arithmetics 2022-11-21 15:32:46 -08:00
Tim Wojtulewicz
c1e5389929 Merge remote-tracking branch 'dop/topic/dopheide/vfmt-buf_len'
* dop/topic/dopheide/vfmt-buf_len:
  Fix logic error in vfmt() when growing the buffer
2022-11-21 09:10:37 -07:00
Tim Wojtulewicz
26030f4a57 Merge remote-tracking branch 'nadav/topic/nadavk/ntlm'
* nadav/topic/nadavk/ntlm:
  Added NTLM challenge and response
2022-11-21 09:09:18 -07:00
Arne Welzel
3f5cb75a2a ftp: Introduce FTP::max_command_length
oss-fuzz produced FTP traffic with a ~550KB long FTP command. Cap FTP command
length at 100 bytes, log a weird if a command is larger than that and move
on to the next. Likely it's not actual FTP traffic, but raising an
analyzer violation would allow clients an easy way to disable the analyzer
by sending an overly long command.

The added test PCAP was generated using a fake Python socket server/client.
2022-11-21 09:36:29 +01:00
Vern Paxson
134f8f2ef5 script optimization fixes:
new initialization model for standalone C++ scripts
 type coercion fix
 ZAM fix for compiling using C++ optimizer
 disambiguate empty constructors
2022-11-20 12:16:25 -08:00
zeek-bot
dbb2aa88a6 Update doc submodule [nomail] [skip ci] 2022-11-19 00:36:18 +00:00
Michael Dopheide
e47b055769 Fix logic error in vfmt() when growing the buffer 2022-11-18 17:46:03 +00:00
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