From 5f81c50e0f20790026c2540d8c329764bf44bb40 Mon Sep 17 00:00:00 2001 From: Tim Wojtulewicz Date: Wed, 8 Dec 2021 10:11:35 -0700 Subject: [PATCH] GH-1125: Support GRE ARUBA headers --- src/packet_analysis/protocol/gre/GRE.cc | 30 +++++++++++++++--- .../protocol/iptunnel/IPTunnel.cc | 11 +++---- .../core.tunnels.gre-aruba/tunnel.log | 11 +++++++ testing/btest/Traces/tunnels/gre-aruba.pcap | Bin 0 -> 384129 bytes testing/btest/core/tunnels/gre-aruba.zeek | 4 +++ 5 files changed, 46 insertions(+), 10 deletions(-) create mode 100644 testing/btest/Baseline/core.tunnels.gre-aruba/tunnel.log create mode 100644 testing/btest/Traces/tunnels/gre-aruba.pcap create mode 100644 testing/btest/core/tunnels/gre-aruba.zeek diff --git a/src/packet_analysis/protocol/gre/GRE.cc b/src/packet_analysis/protocol/gre/GRE.cc index f282f314eb..4eefff20e8 100644 --- a/src/packet_analysis/protocol/gre/GRE.cc +++ b/src/packet_analysis/protocol/gre/GRE.cc @@ -85,7 +85,6 @@ bool GREAnalyzer::AnalyzePacket(size_t len, const uint8_t* data, Packet* packet) { eth_len = 14; gre_link_type = DLT_EN10MB; - proto_typ = ntohs(*((uint16_t*)(data + gre_len + eth_len - 2))); } else { @@ -113,7 +112,6 @@ bool GREAnalyzer::AnalyzePacket(size_t len, const uint8_t* data, Packet* packet) return false; } } - proto_typ = ntohs(*((uint16_t*)(data + gre_len + erspan_len + eth_len - 2))); } else { @@ -144,8 +142,32 @@ bool GREAnalyzer::AnalyzePacket(size_t len, const uint8_t* data, Packet* packet) return false; } } + } + else + { + Weird("truncated_GRE", packet); + return false; + } + } - proto_typ = ntohs(*((uint16_t*)(data + gre_len + erspan_len + eth_len - 2))); + else if ( proto_typ == 0x8200 ) + { + // ARUBA. Following headers seem like they're always a 26-byte 802.11 QoS header, then + // an 8-byte LLC header, then IPv4. There's very little in the way of documentation + // for ARUBA's header format. This is all based on the one sample file we have that + // contains it. + if ( len > gre_len + 34 ) + { + gre_link_type = DLT_EN10MB; + erspan_len = 34; + + // TODO: fix this, but it's gonna require quite a bit more surgery to the GRE + // analyzer to make it more independent from the IPTunnel analyzer. + // Setting gre_version to 1 here tricks the IPTunnel analyzer into treating the + // first header as IP instead of Ethernet which it does by default when + // gre_version is 0. + gre_version = 1; + proto = (data[gre_len + 34] & 0xF0) >> 4; } else { @@ -187,7 +209,7 @@ bool GREAnalyzer::AnalyzePacket(size_t len, const uint8_t* data, Packet* packet) return false; } - if ( gre_version == 1 ) + if ( gre_version == 1 && proto_typ != 0x8200 ) { uint16_t ppp_proto = ntohs(*((uint16_t*)(data + gre_len + 2))); diff --git a/src/packet_analysis/protocol/iptunnel/IPTunnel.cc b/src/packet_analysis/protocol/iptunnel/IPTunnel.cc index 699572a950..b16b2dd00c 100644 --- a/src/packet_analysis/protocol/iptunnel/IPTunnel.cc +++ b/src/packet_analysis/protocol/iptunnel/IPTunnel.cc @@ -84,13 +84,12 @@ bool IPTunnelAnalyzer::AnalyzePacket(size_t len, const uint8_t* data, Packet* pa tunnel_it->second.second = zeek::run_state::network_time; if ( gre_version == 0 ) - ProcessEncapsulatedPacket(run_state::processing_start_time, packet, len, len, data, - gre_link_type, packet->encap, ip_tunnels[tunnel_idx].first); + return ProcessEncapsulatedPacket(run_state::processing_start_time, packet, len, len, data, + gre_link_type, packet->encap, + ip_tunnels[tunnel_idx].first); else - ProcessEncapsulatedPacket(run_state::processing_start_time, packet, inner, packet->encap, - ip_tunnels[tunnel_idx].first); - - return true; + return ProcessEncapsulatedPacket(run_state::processing_start_time, packet, inner, + packet->encap, ip_tunnels[tunnel_idx].first); } /** diff --git a/testing/btest/Baseline/core.tunnels.gre-aruba/tunnel.log b/testing/btest/Baseline/core.tunnels.gre-aruba/tunnel.log new file mode 100644 index 0000000000..468fedf7aa --- /dev/null +++ b/testing/btest/Baseline/core.tunnels.gre-aruba/tunnel.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 tunnel +#open XXXX-XX-XX-XX-XX-XX +#fields ts uid id.orig_h id.orig_p id.resp_h id.resp_p tunnel_type action +#types time string addr port addr port enum enum +XXXXXXXXXX.XXXXXX CHhAvVGS1DHFjwGM9 10.3.34.171 0 10.33.10.23 0 Tunnel::GRE Tunnel::DISCOVER +#close XXXX-XX-XX-XX-XX-XX diff --git a/testing/btest/Traces/tunnels/gre-aruba.pcap b/testing/btest/Traces/tunnels/gre-aruba.pcap new file mode 100644 index 0000000000000000000000000000000000000000..ba150aa4b26c26f52e41bf115f738f384b000c61 GIT binary patch literal 384129 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
sz+k)K5wsgA963>yPr3zXcYQiB%QFffLZM@ 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