zeek/testing/btest/spicy/protocol-analyzer-data-in-from-tcp-to-udp.zeek
Robin Sommer a2ae9c4b02
Spicy: Support UDP in Spicy's protocol_* runtime functions.
This extends the ability to feed new payload back into Zeek's analyzer
pipeline from TCP to now also UDP.

Note: We don't extend this further to ICMP because the ICMP analyzer
cannot be dynamically instantiated (Zeek aborts when trying so). As
ICMP isn't very interesting from use-case perspective anyways, that
seems fine.

Closes #3561.
2024-05-07 18:19:46 +02:00

34 lines
779 B
Text

# @TEST-REQUIRES: have-spicy
#
# @TEST-EXEC: spicyz -d -o test.hlto dns.spicy ./dns.evt
# @TEST-EXEC: zeek -r ${TRACES}/dns53.pcap test.hlto %INPUT
# @TEST-EXEC: btest-diff http.log
# @TEST-START-FILE dns.spicy
module DNS;
import spicy;
import zeek;
public type Packet = unit {
data: bytes &eod;
};
on Packet::%done {
zeek::protocol_begin("HTTP", spicy::Protocol::TCP);
zeek::protocol_data_in(True, b"GET /etc/passwd1 ");
zeek::protocol_data_in(True, b"HTTP/1.0\r\n\r\n");
zeek::protocol_data_in(False, b"HTTP/1.0 200 OK\r\nContent-Length: 0\r\n\r\n");
zeek::protocol_end();
}
# @TEST-END-FILE
# @TEST-START-FILE dns.evt
import zeek;
protocol analyzer spicy::DNS over UDP:
parse originator with DNS::Packet,
replaces DNS;
# @TEST-END-FILE