From e11c20e1eb70cb124c63ba754439a1ee908cab07 Mon Sep 17 00:00:00 2001 From: Arne Welzel Date: Mon, 26 Feb 2024 16:35:34 +0100 Subject: [PATCH] test-all-policy: Do not load iso-9660.zeek 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. --- scripts/test-all-policy.zeek | 2 +- scripts/zeekygen/__load__.zeek | 1 + .../files.log.cut | 7 ++++++ .../http.log.cut | 7 ++++++ .../vnd.ms-cab-compressed-multi-conn.pcap | Bin 0 -> 100550 bytes .../vnd.ms-cab-compressed-multi-conn.zeek | 22 ++++++++++++++++++ 6 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 testing/btest/Baseline/scripts.base.files.mime.vnd.ms-cab-compressed-multi-conn/files.log.cut create mode 100644 testing/btest/Baseline/scripts.base.files.mime.vnd.ms-cab-compressed-multi-conn/http.log.cut create mode 100644 testing/btest/Traces/http/vnd.ms-cab-compressed-multi-conn.pcap create mode 100644 testing/btest/scripts/base/files/mime/vnd.ms-cab-compressed-multi-conn.zeek diff --git a/scripts/test-all-policy.zeek b/scripts/test-all-policy.zeek index 4e76a54171..cf75ed5aa0 100644 --- a/scripts/test-all-policy.zeek +++ b/scripts/test-all-policy.zeek @@ -72,7 +72,7 @@ @load frameworks/notice/extend-email/hostnames.zeek @load files/x509/disable-certificate-events-known-certs.zeek @load frameworks/packet-filter/shunt.zeek -@load frameworks/signatures/iso-9660.zeek +# @load frameworks/signatures/iso-9660.zeek @load frameworks/software/version-changes.zeek @load frameworks/software/vulnerable.zeek # @load frameworks/spicy/record-spicy-batch.zeek diff --git a/scripts/zeekygen/__load__.zeek b/scripts/zeekygen/__load__.zeek index 80a530bc3b..5cda9d6263 100644 --- a/scripts/zeekygen/__load__.zeek +++ b/scripts/zeekygen/__load__.zeek @@ -10,6 +10,7 @@ @load frameworks/management/node/__load__.zeek @load frameworks/management/node/main.zeek @load frameworks/files/extract-all-files.zeek +@load frameworks/signatures/iso-9660.zeek @load policy/misc/dump-events.zeek @load policy/protocols/conn/speculative-service.zeek diff --git a/testing/btest/Baseline/scripts.base.files.mime.vnd.ms-cab-compressed-multi-conn/files.log.cut b/testing/btest/Baseline/scripts.base.files.mime.vnd.ms-cab-compressed-multi-conn/files.log.cut new file mode 100644 index 0000000000..3299024504 --- /dev/null +++ b/testing/btest/Baseline/scripts.base.files.mime.vnd.ms-cab-compressed-multi-conn/files.log.cut @@ -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 diff --git a/testing/btest/Baseline/scripts.base.files.mime.vnd.ms-cab-compressed-multi-conn/http.log.cut b/testing/btest/Baseline/scripts.base.files.mime.vnd.ms-cab-compressed-multi-conn/http.log.cut new file mode 100644 index 0000000000..952f611b2b --- /dev/null +++ b/testing/btest/Baseline/scripts.base.files.mime.vnd.ms-cab-compressed-multi-conn/http.log.cut @@ -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 diff --git a/testing/btest/Traces/http/vnd.ms-cab-compressed-multi-conn.pcap b/testing/btest/Traces/http/vnd.ms-cab-compressed-multi-conn.pcap new file mode 100644 index 0000000000000000000000000000000000000000..db4aed21b41812f0a39a866bfd18189c57440228 GIT binary patch literal 100550 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 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]; + }