From 5811e581390e960d100e3d5cd3e115e24be0dbb0 Mon Sep 17 00:00:00 2001 From: Tim Wojtulewicz Date: Tue, 11 Jul 2023 16:16:56 -0700 Subject: [PATCH] Merge remote-tracking branch 'origin/topic/awelzel/3145-dcerpc-state-clean' * origin/topic/awelzel/3145-dcerpc-state-clean: dce-rpc: Test cases for unbounded state growth dce-rpc: Handle smb2_close_request() in scripts smb/dce-rpc: Cleanup DCE-RPC analyzers when fid is closed and limit them dce-rpc: Do not repeatedly register removal hooks (cherry picked from commit f9904511abe9b16e7657ec317477ec200944a01b) --- scripts/base/frameworks/notice/weird.zeek | 1 + scripts/base/init-bare.zeek | 6 + scripts/base/protocols/dce-rpc/main.zeek | 21 +++- src/analyzer/protocol/smb/consts.bif | 1 + src/analyzer/protocol/smb/events.bif | 10 ++ src/analyzer/protocol/smb/smb-pipe.pac | 33 +++++- src/analyzer/protocol/smb/smb2-com-close.pac | 2 + .../out | 66 +++++++++++ .../weird.log | 11 ++ .../out | 103 ++++++++++++++++++ .../Traces/dce-rpc/20-fids-no-close.pcap | Bin 0 -> 102244 bytes testing/btest/Traces/dce-rpc/20-fids.pcap | Bin 0 -> 124804 bytes .../dce-rpc/dce-rpc-backing-discard.zeek | 19 ++++ .../dce-rpc/dce-rpc-backing-size.zeek | 19 ++++ 14 files changed, 289 insertions(+), 3 deletions(-) create mode 100644 testing/btest/Baseline/scripts.base.protocols.dce-rpc.dce-rpc-backing-discard/out create mode 100644 testing/btest/Baseline/scripts.base.protocols.dce-rpc.dce-rpc-backing-discard/weird.log create mode 100644 testing/btest/Baseline/scripts.base.protocols.dce-rpc.dce-rpc-backing-size/out create mode 100644 testing/btest/Traces/dce-rpc/20-fids-no-close.pcap create mode 100644 testing/btest/Traces/dce-rpc/20-fids.pcap create mode 100644 testing/btest/scripts/base/protocols/dce-rpc/dce-rpc-backing-discard.zeek create mode 100644 testing/btest/scripts/base/protocols/dce-rpc/dce-rpc-backing-size.zeek diff --git a/scripts/base/frameworks/notice/weird.zeek b/scripts/base/frameworks/notice/weird.zeek index 919f683123..0511fc1e22 100644 --- a/scripts/base/frameworks/notice/weird.zeek +++ b/scripts/base/frameworks/notice/weird.zeek @@ -211,6 +211,7 @@ export { ["spontaneous_RST"] = ACTION_IGNORE, ["SMB_parsing_error"] = ACTION_LOG, ["SMB_discarded_messages_state"] = ACTION_LOG, + ["SMB_discarded_dce_rpc_analyzers"] = ACTION_LOG, ["no_smb_session_using_parsesambamsg"] = ACTION_LOG, ["smb_andx_command_failed_to_parse"] = ACTION_LOG, ["smb_tree_connect_andx_response_without_tree"] = ACTION_LOG_PER_CONN, diff --git a/scripts/base/init-bare.zeek b/scripts/base/init-bare.zeek index fb15bea8dd..cbc6c74da4 100644 --- a/scripts/base/init-bare.zeek +++ b/scripts/base/init-bare.zeek @@ -3006,6 +3006,12 @@ export { ## ## .. zeek:see:: smb2_discarded_messages_state const SMB::max_pending_messages = 1000 &redef; + + ## Maximum number of DCE-RPC analyzers per connection + ## before discarding them to avoid unbounded state growth. + ## + ## .. zeek:see:: smb_discarded_dce_rpc_analyzers + const max_dce_rpc_analyzers = 1000 &redef; } module SMB1; diff --git a/scripts/base/protocols/dce-rpc/main.zeek b/scripts/base/protocols/dce-rpc/main.zeek index b5b9f77e72..6c385acc22 100644 --- a/scripts/base/protocols/dce-rpc/main.zeek +++ b/scripts/base/protocols/dce-rpc/main.zeek @@ -88,8 +88,6 @@ function set_state(c: connection, state_x: BackingState) c$dce_rpc$endpoint = uuid_endpoint_map[c$dce_rpc_state$uuid]; if ( c$dce_rpc_state?$named_pipe ) c$dce_rpc$named_pipe = c$dce_rpc_state$named_pipe; - - Conn::register_removal_hook(c, finalize_dce_rpc); } function set_session(c: connection, fid: count) @@ -97,7 +95,9 @@ function set_session(c: connection, fid: count) if ( ! c?$dce_rpc_backing ) { c$dce_rpc_backing = table(); + Conn::register_removal_hook(c, finalize_dce_rpc); } + if ( fid !in c$dce_rpc_backing ) { local info = Info($ts=network_time(),$id=c$id,$uid=c$uid); @@ -216,6 +216,23 @@ event dce_rpc_response(c: connection, fid: count, ctx_id: count, opnum: count, s } } +event smb_discarded_dce_rpc_analyzers(c: connection) + { + # This event is raised when the DCE-RPC analyzers table + # grew too large. Assume things are broken and wipe + # the backing table. + delete c$dce_rpc_backing; + Reporter::conn_weird("SMB_discarded_dce_rpc_analyzers", c, "", "SMB"); + } + +# If a fid representing a pipe was closed, remove it from dce_rpc_backing. +event smb2_close_request(c: connection, hdr: SMB2::Header, file_id: SMB2::GUID) &priority=-5 + { + local fid = file_id$persistent + file_id$volatile; + if ( c?$dce_rpc_backing ) + delete c$dce_rpc_backing[fid]; + } + hook finalize_dce_rpc(c: connection) { if ( ! c?$dce_rpc ) diff --git a/src/analyzer/protocol/smb/consts.bif b/src/analyzer/protocol/smb/consts.bif index 6acd464f6a..6da0f83f3c 100644 --- a/src/analyzer/protocol/smb/consts.bif +++ b/src/analyzer/protocol/smb/consts.bif @@ -1,2 +1,3 @@ const SMB::pipe_filenames: string_set; const SMB::max_pending_messages: count; +const SMB::max_dce_rpc_analyzers: count; diff --git a/src/analyzer/protocol/smb/events.bif b/src/analyzer/protocol/smb/events.bif index 77746c2a09..fce37d9440 100644 --- a/src/analyzer/protocol/smb/events.bif +++ b/src/analyzer/protocol/smb/events.bif @@ -8,3 +8,13 @@ ## ## c: The connection. event smb_pipe_connect_heuristic%(c: connection%); + +## Generated for :abbr:`SMB (Server Message Block)` when the number of +## :abbr:`DCE-RPC (Distributed Computing Environment/Remote Procedure Calls)` +## analyzers exceeds :zeek:see:`SMB::max_dce_rpc_analyzers`. +## Occurrence of this event may indicate traffic loss, traffic load-balancing +## issues or abnormal SMB protocol usage. +## +## c: The connection. +## +event smb_discarded_dce_rpc_analyzers%(c: connection%); diff --git a/src/analyzer/protocol/smb/smb-pipe.pac b/src/analyzer/protocol/smb/smb-pipe.pac index c1500cdbb8..b7d7bb8aeb 100644 --- a/src/analyzer/protocol/smb/smb-pipe.pac +++ b/src/analyzer/protocol/smb/smb-pipe.pac @@ -10,7 +10,7 @@ refine connection SMB_Conn += { %cleanup{ // Iterate all of the analyzers and destroy them. - for ( auto kv : fid_to_analyzer_map ) + for ( const auto& kv : fid_to_analyzer_map ) { if ( kv.second ) { @@ -49,6 +49,22 @@ refine connection SMB_Conn += { if ( it == fid_to_analyzer_map.end() ) { + // Too many analyzers? + if ( zeek::BifConst::SMB::max_dce_rpc_analyzers > 0 && + fid_to_analyzer_map.size() >= zeek::BifConst::SMB::max_dce_rpc_analyzers ) + { + if ( smb_discarded_dce_rpc_analyzers ) + zeek::BifEvent::enqueue_smb_discarded_dce_rpc_analyzers(zeek_analyzer(), zeek_analyzer()->Conn()); + + for ( const auto& kv : fid_to_analyzer_map ) + { + kv.second->Done(); + delete kv.second; + } + + fid_to_analyzer_map.clear(); + } + auto tmp_analyzer = zeek::analyzer_mgr->InstantiateAnalyzer("DCE_RPC", zeek_analyzer()->Conn()); pipe_dcerpc = static_cast(tmp_analyzer); @@ -68,4 +84,19 @@ refine connection SMB_Conn += { return true; %} + + function forward_dce_rpc_close(fid: uint64): bool + %{ + auto it = fid_to_analyzer_map.find(fid); + + if ( it != fid_to_analyzer_map.end() ) + { + it->second->Done(); + delete it->second; + fid_to_analyzer_map.erase(it); + return true; + } + + return false; + %} }; diff --git a/src/analyzer/protocol/smb/smb2-com-close.pac b/src/analyzer/protocol/smb/smb2-com-close.pac index 1efc7ec4e7..e7e6f5a6f5 100644 --- a/src/analyzer/protocol/smb/smb2-com-close.pac +++ b/src/analyzer/protocol/smb/smb2-com-close.pac @@ -46,7 +46,9 @@ type SMB2_close_request(header: SMB2_Header) = record { reserved : uint32; file_id : SMB2_guid; } &let { + fid: uint64 = file_id.persistent + file_id._volatile; proc: bool = $context.connection.proc_smb2_close_request(header, this); + maybe_pipe_close: bool = $context.connection.forward_dce_rpc_close(fid); }; type SMB2_close_response(header: SMB2_Header) = record { diff --git a/testing/btest/Baseline/scripts.base.protocols.dce-rpc.dce-rpc-backing-discard/out b/testing/btest/Baseline/scripts.base.protocols.dce-rpc.dce-rpc-backing-discard/out new file mode 100644 index 0000000000..63c9346e2c --- /dev/null +++ b/testing/btest/Baseline/scripts.base.protocols.dce-rpc.dce-rpc-backing-discard/out @@ -0,0 +1,66 @@ +### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63. +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 2775301094, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 2775301094, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 2775301094, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 2775301094, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 2775301094, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 2780179611, backing, 2 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 2780179611, backing, 2 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 2780179611, backing, 2 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 5622680288, backing, 3 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 5622680288, backing, 3 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 5622680288, backing, 3 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 770495516, backing, 4 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 770495516, backing, 4 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 770495516, backing, 4 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 3230398483, backing, 5 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 3230398483, backing, 5 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 3230398483, backing, 5 +smb_discarded_dce_rpc_analyzers, CHhAvVGS1DHFjwGM9 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 3404240006, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 3404240006, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 3404240006, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 581185132, backing, 2 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 581185132, backing, 2 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 581185132, backing, 2 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 1419732663, backing, 3 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 1419732663, backing, 3 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 1419732663, backing, 3 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 6525719129, backing, 4 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 6525719129, backing, 4 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 6525719129, backing, 4 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 7865351196, backing, 5 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 7865351196, backing, 5 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 7865351196, backing, 5 +smb_discarded_dce_rpc_analyzers, CHhAvVGS1DHFjwGM9 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 7808965122, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 7808965122, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 7808965122, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 5744501780, backing, 2 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 5744501780, backing, 2 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 5744501780, backing, 2 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 4423347481, backing, 3 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 4423347481, backing, 3 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 4423347481, backing, 3 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 2572299628, backing, 4 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 2572299628, backing, 4 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 2572299628, backing, 4 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 3551409164, backing, 5 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 3551409164, backing, 5 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 3551409164, backing, 5 +smb_discarded_dce_rpc_analyzers, CHhAvVGS1DHFjwGM9 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 4758761704, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 4758761704, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 4758761704, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 5174655977, backing, 2 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 5174655977, backing, 2 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 5174655977, backing, 2 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 2565910467, backing, 3 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 2565910467, backing, 3 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 2565910467, backing, 3 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 4869689094, backing, 4 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 4869689094, backing, 4 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 4869689094, backing, 4 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 4356815780, backing, 5 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 4356815780, backing, 5 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 4356815780, backing, 5 diff --git a/testing/btest/Baseline/scripts.base.protocols.dce-rpc.dce-rpc-backing-discard/weird.log b/testing/btest/Baseline/scripts.base.protocols.dce-rpc.dce-rpc-backing-discard/weird.log new file mode 100644 index 0000000000..b544657b9e --- /dev/null +++ b/testing/btest/Baseline/scripts.base.protocols.dce-rpc.dce-rpc-backing-discard/weird.log @@ -0,0 +1,11 @@ +### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63. +#separator \x09 +#set_separator , +#empty_field (empty) +#unset_field - +#path weird +#open XXXX-XX-XX-XX-XX-XX +#fields ts uid id.orig_h id.orig_p id.resp_h id.resp_p name addl notice peer source +#types time string addr port addr port string string bool string string +XXXXXXXXXX.XXXXXX CHhAvVGS1DHFjwGM9 172.17.0.1 38016 172.17.0.2 445 SMB_discarded_dce_rpc_analyzers - F zeek SMB +#close XXXX-XX-XX-XX-XX-XX diff --git a/testing/btest/Baseline/scripts.base.protocols.dce-rpc.dce-rpc-backing-size/out b/testing/btest/Baseline/scripts.base.protocols.dce-rpc.dce-rpc-backing-size/out new file mode 100644 index 0000000000..46f303a0a3 --- /dev/null +++ b/testing/btest/Baseline/scripts.base.protocols.dce-rpc.dce-rpc-backing-size/out @@ -0,0 +1,103 @@ +### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63. +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 2775301094, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 2775301094, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 2775301094, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 2775301094, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 2775301094, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 2775301094, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 2775301094, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 2780179611, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 2780179611, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 2780179611, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 2780179611, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 2780179611, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 5622680288, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 5622680288, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 5622680288, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 5622680288, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 5622680288, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 770495516, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 770495516, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 770495516, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 770495516, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 770495516, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 3230398483, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 3230398483, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 3230398483, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 3230398483, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 3230398483, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 3404240006, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 3404240006, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 3404240006, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 3404240006, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 3404240006, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 581185132, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 581185132, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 581185132, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 581185132, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 581185132, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 1419732663, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 1419732663, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 1419732663, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 1419732663, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 1419732663, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 6525719129, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 6525719129, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 6525719129, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 6525719129, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 6525719129, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 7865351196, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 7865351196, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 7865351196, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 7865351196, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 7865351196, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 7808965122, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 7808965122, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 7808965122, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 7808965122, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 7808965122, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 5744501780, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 5744501780, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 5744501780, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 5744501780, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 5744501780, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 4423347481, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 4423347481, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 4423347481, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 4423347481, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 4423347481, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 2572299628, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 2572299628, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 2572299628, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 2572299628, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 2572299628, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 3551409164, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 3551409164, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 3551409164, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 3551409164, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 3551409164, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 4758761704, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 4758761704, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 4758761704, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 4758761704, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 4758761704, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 5174655977, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 5174655977, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 5174655977, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 5174655977, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 5174655977, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 2565910467, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 2565910467, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 2565910467, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 2565910467, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 2565910467, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 4869689094, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 4869689094, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 4869689094, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 4869689094, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 4869689094, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 4356815780, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 4356815780, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 4356815780, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 4356815780, backing, 1 +dce_rpc_request, CHhAvVGS1DHFjwGM9, fid, 4356815780, backing, 1 diff --git a/testing/btest/Traces/dce-rpc/20-fids-no-close.pcap b/testing/btest/Traces/dce-rpc/20-fids-no-close.pcap new file mode 100644 index 0000000000000000000000000000000000000000..108d246fdd14b19c440dc7b5af40e4dd1c898510 GIT binary patch literal 102244 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�?@ij@O5FYhy`lXdu>Ivzb=#i>h{;eb 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 NSQl~a8V&7g@P8{!5R(7^ literal 0 HcmV?d00001 diff --git a/testing/btest/Traces/dce-rpc/20-fids.pcap b/testing/btest/Traces/dce-rpc/20-fids.pcap new file mode 100644 index 0000000000000000000000000000000000000000..25abdd354da7361a29df7ee90ad045a6ca18538b GIT binary patch literal 124804 zcmd3v30w^CAIE1`g`M#fHp6|@;#lzdy$r%HNrtjYwMg|{T z&#du1vCxoF!Fycf&Rb0xx!if&;hu#HF|8TK!C{aS<75+21)PAxwH%g%5lTy*km?=YC;xq%?h#lZT&Koi+}uTzjmnI^wz z8S|zGjF@X_3x{_sEard)0!X9~y*n8J=S#v1;EYfD&4)#$R&x%jv% zFN50Nyl?xNX|g_})wc$ZZrYEXJ-UL8ReAU>V@&opfOj&mhR4EG2>vh?Apd6|7bVH( zx=cN$A!ExZ*`+R_M+v&+c|zc0d%Fs#TT+m~#{kjN!9^ zEU2MeZX9EyR76{wTltL~+t+u%K(OrFcZgr#PA)C&>o#oUz1Wa7}OmNe!Gbl|A{hW9zo7<5!N2&n!_-(7`H&L zMKjsEe?Dm~jzNoHWWB~`8Y$t`(ggmANh_}Aqv&fn0GRIEowRM5U8Q}o-o`-DzDqmz z&YeBTk;()W^1<&Z*yG^ZNMp7HmRr7ptE3M77Fh12Kt8ME$E%fXqCm+n-KuNK4Q0*- zHOHXE(kl&_>2L&Gbm$*tR|zd9l2#hk)U=tbMKjr#+r_mOZ=pr_)R-z+mSGMe`=)GJ zs5=gLx3TrB3XQl()#sMh=#w_mKT? z4{YGDIkRBKF#VVjj1RolX8JQD89!z$ydMJV0Ss2>Ld=chc~uzQVFm7RhHvAd1Gc@x zaCAp}JwDiNq7qz;BGBDC770tetFF$eRj$^$JI>w;uC${<$0-4 zGVF{>!e0n{6FZOPu*T2Pur`6eZLr3QL_Kc%y}ElFze7{LKAQRL_KnyRyi9UF>?rc6 zM-#`(=S!@ZEI$*ve47mHV4^;H)uHo{98(lpxZ>13qhx-#B6ZV z>Vt=4JDwg_w|vv}J5#cP3I`>8YFjJGYhg<9I}>|tE}moz$_P_orUGy|gc%5=)?suz zT-?7K)R9h1TgDY$J20M%2Qvxi9l#8OdV{s5E#n2Av11xTj`mKN6|&ZM!lVz4>m1m+IMxw>I!+I@3l~1jxwKyIv zf|0>oF$zGXH-mp-qGLGCCq~<*4@j$3u?Z8D6tXbvcKu1=J2YZgGQHqW7qeafk_R-# zRzwe1$bFt3I(=Lf;>sy}R|Zs2E8Dpu9G%W-U3mvwIUeBs14pP`RbsKa zUW)+7tt73*9JB~VJcN2sIJkO5hMHHVaGWnY&}~rW=X3szt?mSwewuE=$xnGDD-E;=0Sau|gc<2LEF z2pm+%Ba2uBBZ1s<8*(_vJJSP|IpyxssO7aUT|@eH3V(aQe^0-R#+VaWglVlz^Iy~t z8w^YV(9F@K=}1Rw>I;-APbVEdtguu`lLX%M2R=@MPVYN@QrfyA(IV<(22J|=*XPRPPvc1q9jli;AD!N5k{1{u zIs`gqWv8r`F=A`jkDCJ751}28H^H}khOQsV{)?=zv^G%MJpHg#JkCaAY2#}Ns5q%m zO)QF>b?mJvEtZsW)@idL(*UxIi;y#!!eI9m8VC05H~=j|MqhIEE5hN- zkW&~gXX_h#7izfsy3vXS(|Q+oZQB7k`|F@7Bh(=P{*MbLy50r-B4y5yDN+!-$p9FE zp9a}f@Wi;!zs zhFx{Em~daOMexf)C%#4a6ejcwvcf~eSYzW|6{_n z1&YNcL#8P4hlT9C)*mlBGfWYtmq#0q*1g~ic{J`yzmgwcpnte04CVuTOz!q**nmCc zAAZ7MHDZ$XoF9EW7JQsX4f>K-o5!M$<8AnL&;5WxHE9h}(?0Lq8tdL&v^a6AA+rQT z!bMn{)f_YAts!Gl0IO}bES-+wb!sH`H2>wK!qfa^KO5IKvl^6G zI(X3B^23CApr2RwdiA|&d3T>KE{OpT%TK*XGerG(Zc9_Y*sJHU*I<6{Nd?V;)JcU+ z;X_s{C&^+wx>)y~AKbCtjBA4zC@)U$H~-cm<2UCfUl2Q~7z`)7W8h@>SDaLQs}^$0 zJoV%#$KIFvyeYV2F)}(07|o+zr>#^Vqe6MXK*kW)0}?yBSjJli@@cnl83~ zcY=3vhJ+8`9j^7CgTMyZ5gQp?@cWqN-Yqps{XvhD>qD9xgidh;f*R7UR71S_Iu| zEYVt=gchL)$Ar4mUNi5kh~I0jH-7AG9(i}g%#`g79tX62ELD#@SdFCWkq79HT2~$KOk2xovvy|2!L;9S=%H~k8Wd#h;EL`c4lbo>L zSn(9E+oM

5&NI^e2b9%k3v7v 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 +# @TEST-EXEC: btest-diff out +# @TEST-EXEC: btest-diff weird.log + +@load base/protocols/smb +@load base/protocols/dce-rpc + +redef SMB::max_dce_rpc_analyzers = 5; + +event dce_rpc_request(c: connection, fid: count, ctx_id: count, opnum: count, stub_len: count) + { + print "dce_rpc_request", c$uid, "fid", fid, "backing", |c$dce_rpc_backing|; + } + +event smb_discarded_dce_rpc_analyzers(c: connection) + { + print "smb_discarded_dce_rpc_analyzers", c$uid; + } diff --git a/testing/btest/scripts/base/protocols/dce-rpc/dce-rpc-backing-size.zeek b/testing/btest/scripts/base/protocols/dce-rpc/dce-rpc-backing-size.zeek new file mode 100644 index 0000000000..8b5dbb6432 --- /dev/null +++ b/testing/btest/scripts/base/protocols/dce-rpc/dce-rpc-backing-size.zeek @@ -0,0 +1,19 @@ +# @TEST-DOC: Ensure dce_rpc_backing state stays bounded when pipes are closed properly. +# @TEST-EXEC: zeek -C -r $TRACES/dce-rpc/20-fids.pcap %INPUT >out +# @TEST-EXEC: btest-diff out +# @TEST-EXEC: test ! -f weird.log + +@load base/protocols/smb +@load base/protocols/dce-rpc + +redef SMB::max_dce_rpc_analyzers = 5; + +event dce_rpc_request(c: connection, fid: count, ctx_id: count, opnum: count, stub_len: count) + { + print "dce_rpc_request", c$uid, "fid", fid, "backing", |c$dce_rpc_backing|; + } + +event smb_discarded_dce_rpc_analyzers(c: connection) + { + print "UNEXPECTED", "smb_discarded_dce_rpc_analyzers", c$uid; + }