mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 14:48:21 +00:00
Merge remote-tracking branch 'origin/topic/awelzel/move-iso-9660-sig-to-policy'
* origin/topic/awelzel/move-iso-9660-sig-to-policy: signatures/iso-9660: Add \x01 suffix to CD001 test-all-policy: Do not load iso-9660.zeek signatures: Move ISO 9660 signature to policy
This commit is contained in:
commit
d728981b77
13 changed files with 107 additions and 16 deletions
41
CHANGES
41
CHANGES
|
@ -1,3 +1,44 @@
|
||||||
|
7.0.0-dev.26 | 2024-02-26 21:15:59 +0100
|
||||||
|
|
||||||
|
* signatures/iso-9660: Add \x01 suffix to CD001 (Arne Welzel, Corelight)
|
||||||
|
|
||||||
|
As discussed with Tim, that should make it a bit more robust against
|
||||||
|
false positives.
|
||||||
|
|
||||||
|
* test-all-policy: Do not load iso-9660.zeek (Arne Welzel, Corelight)
|
||||||
|
|
||||||
|
Changing the default_file_bof_buffer_size has subtle impact on
|
||||||
|
MIME type detection and changed the zeek-testing baseline. Do
|
||||||
|
not load this new script via test-all-policy to avoid this.
|
||||||
|
|
||||||
|
The new test was mainly an aid to understand what is actually going on.
|
||||||
|
In short, if default_file_bof_buffer_size is larger than the file MIME
|
||||||
|
detection only runs when the buffer is full, or when the file is removed.
|
||||||
|
When a file transfer happens over multiple HTTP connections, only
|
||||||
|
some or one of the http.log entries will have a proper response MIME type.
|
||||||
|
|
||||||
|
PCAP extracted from 2009-M57-day11-18.trace.gz.
|
||||||
|
|
||||||
|
* signatures: Move ISO 9660 signature to policy (Arne Welzel, Corelight)
|
||||||
|
|
||||||
|
The previous "fix" caused significant performance degradation without
|
||||||
|
the signature ever having a chance to trigger. Moving it to policy
|
||||||
|
seems the best compromise, the alternative being outright removing it.
|
||||||
|
|
||||||
|
* GH-3490: global_ids: Align script_id$type_name field with type_name() (Arne Welzel, Corelight)
|
||||||
|
|
||||||
|
Populate script_id$type_name with what the type_name() bif
|
||||||
|
would produce for the same identifier.
|
||||||
|
|
||||||
|
Closes #3490
|
||||||
|
|
||||||
|
* utils: Introduce packages.zeek with can_load() helper (Arne Welzel, Corelight)
|
||||||
|
|
||||||
|
* GH-3594: zeek.bif: Add find_in_zeekpath() helper (Arne Welzel, Corelight)
|
||||||
|
|
||||||
|
Relates to #3594. This helper can be used to determine the path that
|
||||||
|
will be used by @load, if at all.
|
||||||
|
|
||||||
7.0.0-dev.16 | 2024-02-26 11:09:57 -0700
|
7.0.0-dev.16 | 2024-02-26 11:09:57 -0700
|
||||||
|
|
||||||
* Update Mozilla CA and Google CT list and related tests. (Johanna Amann, Corelight)
|
* Update Mozilla CA and Google CT list and related tests. (Johanna Amann, Corelight)
|
||||||
|
|
7
NEWS
7
NEWS
|
@ -39,6 +39,13 @@ Changed Functionality
|
||||||
returned by ``type_name()`` for each identifier. E.g, ``Site::local_nets``
|
returned by ``type_name()`` for each identifier. E.g, ``Site::local_nets``
|
||||||
has a type_name of ``set[subnet]`` rather than ``table``.
|
has a type_name of ``set[subnet]`` rather than ``table``.
|
||||||
|
|
||||||
|
- The ISO 9660 file signature has been moved into the policy directory. The
|
||||||
|
signature has previously been non-functional due to implicit anchoring. Further,
|
||||||
|
this signature requires users to significantly increase their
|
||||||
|
``default_file_bof_buffer_size``. Users can now enable this signature by loading
|
||||||
|
``frameworks/signatures/iso-9660`` which also increases the BOF buffer sufficiently.
|
||||||
|
Note, doing so may increase memory and CPU usage significantly.
|
||||||
|
|
||||||
Removed Functionality
|
Removed Functionality
|
||||||
---------------------
|
---------------------
|
||||||
|
|
||||||
|
|
2
VERSION
2
VERSION
|
@ -1 +1 @@
|
||||||
7.0.0-dev.16
|
7.0.0-dev.26
|
||||||
|
|
|
@ -296,18 +296,3 @@ signature file-windows-minidump {
|
||||||
file-mime "application/x-windows-minidump", 50
|
file-mime "application/x-windows-minidump", 50
|
||||||
file-magic /^MDMP/
|
file-magic /^MDMP/
|
||||||
}
|
}
|
||||||
|
|
||||||
# ISO 9660 disk image: First 16 sectors (2k) are arbitrary data.
|
|
||||||
# The following sector is a volume descriptor with magic string "CD001"
|
|
||||||
# at offset 1: 16 * 2048 + 1 = 32769
|
|
||||||
signature file-iso9660 {
|
|
||||||
file-mime "application/x-iso9660-image", 99
|
|
||||||
file-magic /^.{32769}CD001/
|
|
||||||
}
|
|
||||||
|
|
||||||
# ISO 9660 disk image, magic string match in next volume descriptor.
|
|
||||||
# 17 * 2048 + 1 = 34817
|
|
||||||
signature file-iso9660-2 {
|
|
||||||
file-mime "application/x-iso9660-image", 99
|
|
||||||
file-magic /^.{34817}CD001/
|
|
||||||
}
|
|
||||||
|
|
10
scripts/policy/frameworks/signatures/iso-9660.sig
Normal file
10
scripts/policy/frameworks/signatures/iso-9660.sig
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
# ISO 9660 disk image: First 16 sectors (2k) are arbitrary data.
|
||||||
|
# The following sector is a volume descriptor with magic string "CD001"
|
||||||
|
# at offset 1: 16 * 2048 + 1 = 32769.
|
||||||
|
#
|
||||||
|
# However, we do not use exact offset matching /^.{32769}CD001/ as this
|
||||||
|
# results in major performance degradation.
|
||||||
|
signature file-iso9660 {
|
||||||
|
file-mime "application/x-iso9660-image", 99
|
||||||
|
file-magic /.*CD001\x01/
|
||||||
|
}
|
8
scripts/policy/frameworks/signatures/iso-9660.zeek
Normal file
8
scripts/policy/frameworks/signatures/iso-9660.zeek
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
##! Load signature for ISO 9660 disk image and increase
|
||||||
|
##! default_file_bof_buffer_size to make it functional.
|
||||||
|
@load-sigs ./iso-9660
|
||||||
|
|
||||||
|
# CD001 string is in the 17th sector.
|
||||||
|
@if ( default_file_bof_buffer_size < (16 + 1) * 2048 )
|
||||||
|
redef default_file_bof_buffer_size = (16 + 1) * 2048;
|
||||||
|
@endif
|
|
@ -72,6 +72,7 @@
|
||||||
@load frameworks/notice/extend-email/hostnames.zeek
|
@load frameworks/notice/extend-email/hostnames.zeek
|
||||||
@load files/x509/disable-certificate-events-known-certs.zeek
|
@load files/x509/disable-certificate-events-known-certs.zeek
|
||||||
@load frameworks/packet-filter/shunt.zeek
|
@load frameworks/packet-filter/shunt.zeek
|
||||||
|
# @load frameworks/signatures/iso-9660.zeek
|
||||||
@load frameworks/software/version-changes.zeek
|
@load frameworks/software/version-changes.zeek
|
||||||
@load frameworks/software/vulnerable.zeek
|
@load frameworks/software/vulnerable.zeek
|
||||||
# @load frameworks/spicy/record-spicy-batch.zeek
|
# @load frameworks/spicy/record-spicy-batch.zeek
|
||||||
|
|
|
@ -10,6 +10,7 @@
|
||||||
@load frameworks/management/node/__load__.zeek
|
@load frameworks/management/node/__load__.zeek
|
||||||
@load frameworks/management/node/main.zeek
|
@load frameworks/management/node/main.zeek
|
||||||
@load frameworks/files/extract-all-files.zeek
|
@load frameworks/files/extract-all-files.zeek
|
||||||
|
@load frameworks/signatures/iso-9660.zeek
|
||||||
@load policy/misc/dump-events.zeek
|
@load policy/misc/dump-events.zeek
|
||||||
@load policy/protocols/conn/speculative-service.zeek
|
@load policy/protocols/conn/speculative-service.zeek
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63.
|
||||||
|
fuid source mime_type filename
|
||||||
|
FJYJFE2AmtoQavCYEh HTTP application/vnd.ms-cab-compressed windows6.0-kb955430-x86-express_9c8a57958486102e94e591384dc69dd7e8d01169.cab
|
||||||
|
FJYJFE2AmtoQavCYEh HTTP application/vnd.ms-cab-compressed windows6.0-kb955430-x86-express_9c8a57958486102e94e591384dc69dd7e8d01169.cab
|
||||||
|
FJYJFE2AmtoQavCYEh HTTP application/vnd.ms-cab-compressed windows6.0-kb955430-x86-express_9c8a57958486102e94e591384dc69dd7e8d01169.cab
|
||||||
|
FJYJFE2AmtoQavCYEh HTTP application/vnd.ms-cab-compressed windows6.0-kb955430-x86-express_9c8a57958486102e94e591384dc69dd7e8d01169.cab
|
||||||
|
FJYJFE2AmtoQavCYEh HTTP application/vnd.ms-cab-compressed windows6.0-kb955430-x86-express_9c8a57958486102e94e591384dc69dd7e8d01169.cab
|
|
@ -0,0 +1,7 @@
|
||||||
|
### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63.
|
||||||
|
uid method host status_code resp_fuids response_body_len resp_mime_types
|
||||||
|
CHhAvVGS1DHFjwGM9 GET au.download.windowsupdate.com 206 FJYJFE2AmtoQavCYEh 5473 -
|
||||||
|
ClEkJM2Vm5giqnMf4h GET au.download.windowsupdate.com 206 FJYJFE2AmtoQavCYEh 6622 -
|
||||||
|
C4J4Th3PJpwUYZZ6gc GET au.download.windowsupdate.com 206 FJYJFE2AmtoQavCYEh 7551 -
|
||||||
|
CtPZjS20MLrsMUOJi2 GET au.download.windowsupdate.com 206 FJYJFE2AmtoQavCYEh 11791 -
|
||||||
|
CUM0KZ3MLUfNB0cl11 GET au.download.windowsupdate.com 206 FJYJFE2AmtoQavCYEh 8181 application/vnd.ms-cab-compressed
|
BIN
testing/btest/Traces/http/vnd.ms-cab-compressed-multi-conn.pcap
Normal file
BIN
testing/btest/Traces/http/vnd.ms-cab-compressed-multi-conn.pcap
Normal file
Binary file not shown.
|
@ -7,6 +7,8 @@
|
||||||
@load base/protocols/http
|
@load base/protocols/http
|
||||||
@load base/frameworks/files
|
@load base/frameworks/files
|
||||||
|
|
||||||
|
@load frameworks/signatures/iso-9660
|
||||||
|
|
||||||
redef default_file_bof_buffer_size = 40000;
|
redef default_file_bof_buffer_size = 40000;
|
||||||
|
|
||||||
event file_over_new_connection(f: fa_file, c: connection, is_orig: bool)
|
event file_over_new_connection(f: fa_file, c: connection, is_orig: bool)
|
||||||
|
|
|
@ -0,0 +1,22 @@
|
||||||
|
# @TEST-DOC: Increasing default_file_bof_buffer_size has subtle impact on mime_type detection and association for partial file transfers over HTTP. Test mainly to aid understanding.
|
||||||
|
#
|
||||||
|
# @TEST-EXEC: zeek -b -r $TRACES/http/vnd.ms-cab-compressed-multi-conn.pcap %INPUT
|
||||||
|
# @TEST-EXEC: zeek-cut -m fuid source mime_type filename < files.log > files.log.cut
|
||||||
|
# @TEST-EXEC: btest-diff files.log.cut
|
||||||
|
# @TEST-EXEC: zeek-cut -m uid method host status_code resp_fuids response_body_len resp_mime_types < http.log > http.log.cut
|
||||||
|
# @TEST-EXEC: btest-diff http.log.cut
|
||||||
|
|
||||||
|
@load base/protocols/http
|
||||||
|
@load base/frameworks/files
|
||||||
|
|
||||||
|
# Increases default_file_bof_buffer_size, resulting in only one of the GET
|
||||||
|
# of http.log having the application/vnd.ms-cab-compressed associated.
|
||||||
|
@load policy/frameworks/signatures/iso-9660
|
||||||
|
|
||||||
|
redef LogAscii::use_json = F;
|
||||||
|
|
||||||
|
event file_over_new_connection(f: fa_file, c: connection, is_orig: bool)
|
||||||
|
{
|
||||||
|
if ( f$source == "HTTP" )
|
||||||
|
f$info$filename = split_string(c$http$uri, /\//)[-1];
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue