16
Sanitizing PCAPs Jasper Bongertz @packetjay Fun and games until someone uses IPv6 or TCP

@packetjay Fun and games until someone uses IPv6 or TCP

Embed Size (px)

Citation preview

Page 1: @packetjay Fun and games until someone uses IPv6 or TCP

Sanitizing PCAPs

Jasper Bongertz@packetjay

Fun and games until someone uses IPv6 or TCP

Page 2: @packetjay Fun and games until someone uses IPv6 or TCP

Once upon a time…

Page 3: @packetjay Fun and games until someone uses IPv6 or TCP

PCAP / PCAPng PCAP = Packet CAPture

binary log of network packetsold format, being replaced by PCAPng

Written by tcpdump, Wireshark (using dumpcap), Snort, and other tools

Page 4: @packetjay Fun and games until someone uses IPv6 or TCP

Why sanitization? Similar to editing packets for packet replay Removing sensitive details

User CredentialsNetwork topology (IP addresses etc.)Device & software version informationVulnerable protocolsPayloads

Page 5: @packetjay Fun and games until someone uses IPv6 or TCP

Often, people do this…

Page 6: @packetjay Fun and games until someone uses IPv6 or TCP

Sanitization Goal: Analysis Network analysts

often require to keep packets only up to the TCP layer

look at packet loss, timings, TCP being messed up by obscure middle boxes

sometimes need details like FQDNs or URLs

Page 7: @packetjay Fun and games until someone uses IPv6 or TCP

Sanitization Goals: Malware Security Analysts/Researchers

usually don't care that much about Ethernet / ARP / IPv4 / TCP / UDP headers

Need to keep the malware / exploit delivery process intact: FQDNs, URLs, binary payloads

Page 8: @packetjay Fun and games until someone uses IPv6 or TCP

General Challenges Balance between removing details and

remaining usefulness One packet vs. many Protocol complexity Procotol dependencies Defensive Transformation

Page 9: @packetjay Fun and games until someone uses IPv6 or TCP

Selected Tools – Manual Editing

Hex Editors Wireshark Edit Feature

only in GTK at this time WireEdit

Page 10: @packetjay Fun and games until someone uses IPv6 or TCP

Selected Tools – Batch Edit bittwiste, tcprewrite pktanon

http://www.tm.uka.de/software/pktanon/ pcaplib

http://sourceforge.net/projects/pcaplib/ TraceWrangler

https://www.tracewrangler.com

Page 11: @packetjay Fun and games until someone uses IPv6 or TCP

Replacement Challenges Example: replacing an IPv4 Address

Generate a new 32bit value and assign itRandom, 1:1 rule, network rule

Problems:Special IP addresses (0.0.0.0, 127.0.0.0/8)Multicast range (224.0.0.0/4)Mapping to the same replacement

Page 12: @packetjay Fun and games until someone uses IPv6 or TCP

Protocol challenges - TCP Well known vs. arbitrary ports Payloads may be split across multiple

packets (uh oh!)Reassembly may be neccessaryWhat about missing packets &

retransmissions? Replacement size differences matter

Page 13: @packetjay Fun and games until someone uses IPv6 or TCP

Protocol challenges Example: IPv6 Neighbor Solicitation Address dependencies:

MAC IPv6Multicast

Page 14: @packetjay Fun and games until someone uses IPv6 or TCP

Protocol challenges Even DNS can be complicated

Runs on UDP (mostly) but TCP sometimes, tooContains FQDNs in most cases

Replacing FQDNs is not easySubelements need be consistently replaced„test.packet-foo.com“ -> „something.secret.com“„abc.def.packet-foo.com“ -> „wut.xyz.secret.com“

Page 15: @packetjay Fun and games until someone uses IPv6 or TCP

Demo

Page 16: @packetjay Fun and games until someone uses IPv6 or TCP

Thanks! Questions? Mail: [email protected] Web:blog.packet-foo.com Twitter: @packetjay