From 5d30be20838730dc2604aa7d1491414cbc56c826 Mon Sep 17 00:00:00 2001 From: Robin Sommer Date: Fri, 3 Jul 2015 08:40:22 -0700 Subject: [PATCH] A set of tests exercising IP defragmentation and TCP reassembly. --- testing/btest/Baseline/core.reassembly/output | 32 ++++++++++++++++++ testing/btest/Traces/ipv4/fragmented-1.pcap | Bin 0 -> 620 bytes testing/btest/Traces/ipv4/fragmented-2.pcap | Bin 0 -> 342 bytes testing/btest/Traces/ipv4/fragmented-3.pcap | Bin 0 -> 7674 bytes testing/btest/Traces/ipv4/fragmented-4.pcap | Bin 0 -> 477 bytes testing/btest/Traces/tcp/reassembly.pcap | Bin 0 -> 43248 bytes testing/btest/core/reassembly.bro | 26 ++++++++++++++ 7 files changed, 58 insertions(+) create mode 100644 testing/btest/Baseline/core.reassembly/output create mode 100644 testing/btest/Traces/ipv4/fragmented-1.pcap create mode 100644 testing/btest/Traces/ipv4/fragmented-2.pcap create mode 100644 testing/btest/Traces/ipv4/fragmented-3.pcap create mode 100644 testing/btest/Traces/ipv4/fragmented-4.pcap create mode 100644 testing/btest/Traces/tcp/reassembly.pcap create mode 100644 testing/btest/core/reassembly.bro diff --git a/testing/btest/Baseline/core.reassembly/output b/testing/btest/Baseline/core.reassembly/output new file mode 100644 index 0000000000..79922b43c4 --- /dev/null +++ b/testing/btest/Baseline/core.reassembly/output @@ -0,0 +1,32 @@ +---------------------- +flow weird, excessively_small_fragment, 164.1.123.163, 164.1.123.61 +flow weird, fragment_size_inconsistency, 164.1.123.163, 164.1.123.61 +flow weird, fragment_inconsistency, 164.1.123.163, 164.1.123.61 +flow weird, fragment_inconsistency, 164.1.123.163, 164.1.123.61 +flow weird, dns_unmatched_msg, 164.1.123.163, 164.1.123.61 +---------------------- +flow weird, excessively_small_fragment, 164.1.123.163, 164.1.123.61 +flow weird, excessively_small_fragment, 164.1.123.163, 164.1.123.61 +flow weird, fragment_overlap, 164.1.123.163, 164.1.123.61 +---------------------- +flow weird, fragment_with_DF, 210.54.213.247, 131.243.1.10 +flow weird, fragment_with_DF, 210.54.213.247, 131.243.1.10 +flow weird, fragment_with_DF, 210.54.213.247, 131.243.1.10 +flow weird, fragment_with_DF, 210.54.213.247, 131.243.1.10 +flow weird, fragment_with_DF, 210.54.213.247, 131.243.1.10 +---------------------- +flow weird, excessively_small_fragment, 128.32.46.142, 10.0.0.1 +flow weird, excessively_small_fragment, 128.32.46.142, 10.0.0.1 +flow weird, fragment_inconsistency, 128.32.46.142, 10.0.0.1 +---------------------- +net_weird, truncated_IP +net_weird, truncated_IP +net_weird, truncated_IP +net_weird, truncated_IP +rexmit_inconsistency, [orig_h=63.193.213.194, orig_p=2564/tcp, resp_h=128.3.97.175, resp_p=80/tcp], nlkmlpjfjjnoomfnqmdqgrdsgpefslhjrdjghsshrmosrkosidknnieiggpmnggelfhlkflfqojpjrsmeqghklmjlkdskjollmensjiqosemknoehellhlsspjfjpddfgqkemghskqosrksmkpsdomfoghllfokilshsisgpjhjoosidirlnmespjhdogdidoemejrnjjrookfrmiqllllqhlqfgolfqssfjrhrjhgfkpdnigiilrmnespjspeqjfedjhrkisjdhoofqdfeqnmihrelmildkngirkqorjslhmglripdojfedjjngjnpikoliqhdipgpshenekqiphmrsqmemghklodqnqoeggfkdqngrfollhjmddjreeghdqflohgrhqhelqsmdghgihpifpnikrddpmdfejhrhgfdfdlepmmhlhrnrslepqgmkopmdfogpoljeepqoemisfeksdeddiplnkfjddjioqhojlnmlirehidipdhqlddssssgpgikieeldsmfrkidpldsngdkidkoshkrofnonrrehghlmgmqshkedgpkpgjjkoneigsfjdlgjsngepfkndqoefqmsssrgegspromqepdpdeglmmegjljlmljeeorhhfmrohjeregpfshqjsqkekrihjdpfdjflgspepqjrqfemsjffmjfkhejdkrokmgdrhojgmgjpldjeiphroeheipolfmshoglkfnllfnhlflhlpddjflekhiqilefjpfqepdrrdokkjiekmelkhdpjlqjdlnfjemqdrksirdnjlrhrdijgqjhdqlidpfdisgrmnlfnsdlishlpfkshhglpdiqhpgmhpjdrpednjljfsqknsiqpfeqhlphgqdphflglpmqfkkhdjeodkelinkfpmfedidhphldmqjqggrljlhriehqqemeimkjhoqnsrdgengmgjokpeiijgrseppeoiflngggomdfjkndpqedhgnkiqlodkpjfkqoifidjmrdhhmglledkomllhpehdfjfdspmklkjdnhkdgpgqephfdfdrfplmepoegsekmrnikknelnprdpslmfkhghhooknieksjjhdeelidikndedijqqhfmphdondndpehmfoqelqigdpgioeljhedhfoeqlinriemqjigerkphgepqmiiidqlhriqioimpglonlsgomeloipndiihqqfiekkeriokrsjlmsjqiehqsrqkhdjlddjrrllirqkidqiggdrjpjirssgqepnqmhigfsqlekiqdddllnsjmroiofkieqnghddpjnhdjkfloilheljofddrkherkrieeoijrlfghiikmhpfdhekdjloejlmpperkgrhomedpfOOOOOOOOOOOOOOOOOOOOOOOOOOOO, nlkmlpjfjjnoomfnqmdqgrdsgpefslhjrdjghsshrmosrkosidknnieiggpmnggelfhlkflfqojpjrsmeqghklmjlkdskjollmensjiqosemknoehellhlsspjfjpddfgqkemghskqosrksmkpsdomfoghllfokilshsisgpjhjoosidirlnmespjhdogdidoemejrnjjrookfrmiqllllqhlqfgolfqssfjrhrjhgfkpdnigiilrmnespjspeqjfedjhrkisjdhoofqdfeqnmihrelmildkngirkqorjslhmglripdojfedjjngjnpikoliqhdipgpshenekqiphmrsqmemghklodqnqoeggfkdqngrfollhjmddjreeghdqflohgrhqhelqsmdghgihpifpnikrddpmdfejhrhgfdfdlepmmhlhrnrslepqgmkopmdfogpoljeepqoemisfeksdeddiplnkfjddjioqhojlnmlirehidipdhqlddssssgpgikieeldsmfrkidpldsngdkidkoshkrofnonrrehghlmgmqshkedgpkpgjjkoneigsfjdlgjsngepfkndqoefqmsssrgegspromqepdpdeglmmegjljlmljeeorhhfmrohjeregpfshqjsqkekrihjdpfdjflgspepqjrqfemsjffmjfkhejdkrokmgdrhojgmgjpldjeiphroeheipolfmshoglkfnllfnhlflhlpddjflekhiqilefjpfqepdrrdokkjiekmelkhdpjlqjdlnfjemqdrksirdnjlrhrdijgqjhdqlidpfdisgrmnlfnsdlishlpfkshhglpdiqhpgmhpjdrpednjljfsqknsiqpfeqhlphgqdphflglpmqfkkhdjeodkelinkfpmfedidhphldmqjqggrljlhriehqqemeimkjhoqnsrdgengmgjokpeiijgrseppeoiflngggomdfjkndpqedhgnkiqlodkpjfkqoifidjmrdhhmglledkomllhpehdfjfdspmklkjdnhkdgpgqephfdfdrfplmepoegsekmrnikknelnprdpslmfkhghhooknieksjjhdeelidikndedijqqhfmphdondndpehmfoqelqigdpgioeljhedhfoeqlinriemqjigerkphgepqmiiidqlhriqioimpglonlsgomeloipndiihqqfiekkeriokrsjlmsjqiehqsrqkhdjlddjrrllirqkidqiggdrjpjirssgqepnqmhigfsqlekiqdddllnsjmroiofkieqnghddpjnhdjkfloilheljofddrkherkrieeoijrlfghiikmhpfdhekdjloejlmpperkgrhomedpfqkrodjdmrqfpiodgphidfliidlhd +rexmit_inconsistency, [orig_h=63.193.213.194, orig_p=2564/tcp, resp_h=128.3.97.175, resp_p=80/tcp], dgphrodofqhq, orgmmpelofil +rexmit_inconsistency, [orig_h=63.193.213.194, orig_p=2564/tcp, resp_h=128.3.97.175, resp_p=80/tcp], lenhfdqhqfgs, dfpqssidkpdg +rexmit_inconsistency, [orig_h=63.193.213.194, orig_p=2564/tcp, resp_h=128.3.97.175, resp_p=80/tcp], nlkmlpjfjjnoomfnqmdqgrdsgpefslhjrdjghsshrmosrkosidknnieiggpmnggelfhlkflfqojpjrsmeqghklmjlkdskjollmensjiqosemknoehellhlsspjfjpddfgqkemghskqosrksmkpsdomfoghllfokilshsisgpjhjoosidirlnmespjhdogdidoemejrnjjrookfrmiqllllqhlqfgolfqssfjrhrjhgfkpdnigiilrmnespjspeqjfedjhrkisjdhoofqdfeqnmihrelmildkngirkqorjslhmglripdojfedjjngjnpikoliqhdipgpshenekqiphmrsqmemghklodqnqoeggfkdqngrfollhjmddjreeghdqflohgrhqhelqsmdghgihpifpnikrddpmdfejhrhgfdfdlepmmhlhrnrslepqgmkopmdfogpoljeepqoemisfeksdeddiplnkfjddjioqhojlnmlirehidipdhqlddssssgpgikieeldsmfrkidpldsngdkidkoshkrofnonrrehghlmgmqshkedgpkpgjjkoneigsfjdlgjsngepfkndqoefqmsssrgegspromqepdpdeglmmegjljlmljeeorhhfmrohjeregpfshqjsqkekrihjdpfdjflgspepqjrqfemsjffmjfkhejdkrokmgdrhojgmgjpldjeiphroeheipolfmshoglkfnllfnhlflhlpddjflekhiqilefjpfqepdrrdokkjiekmelkhdpjlqjdlnfjemqdrksirdnjlrhrdijgqjhdqlidpfdisgrmnlfnsdlishlpfkshhglpdiqhpgmhpjdrpednjljfsqknsiqpfeqhlphgqdphflglpmqfkkhdjeodkelinkfpmfedidhphldmqjqggrljlhriehqqemeimkjhoqnsrdgengmgjokpeiijgrseppeoiflngggomdfjkndpqedhgnkiqlodkpjfkqoifidjmrdhhmglledkomllhpehdfjfdspmklkjdnhkdgpgqephfdfdrfplmepoegsekmrnikknelnprdpslmfkhghhooknieksjjhdeelidikndedijqqhfmphdondndpehmfoqelqigdpgioeljhedhfoeqlinriemqjigerkphgepqmiiidqlhriqioimpglonlsgomeloipndiihqqfiekkeriokrsjlmsjqiehqsrqkhdjlddjrrllirqkidqiggdrjpjirssgqepnqmhigfsqlekiqdddllnsjmroiofkieqnghddpjnhdjkfloilheljofddrkherkrieeoijrlfghiikmhpfdhekdjloejlmpperkgrhomedpfOOOOOOOOOOOOOOOOOOOOOOOOOOOO, nlkmlpjfjjnoomfnqmdqgrdsgpefslhjrdjghsshrmosrkosidknnieiggpmnggelfhlkflfqojpjrsmeqghklmjlkdskjollmensjiqosemknoehellhlsspjfjpddfgqkemghskqosrksmkpsdomfoghllfokilshsisgpjhjoosidirlnmespjhdogdidoemejrnjjrookfrmiqllllqhlqfgolfqssfjrhrjhgfkpdnigiilrmnespjspeqjfedjhrkisjdhoofqdfeqnmihrelmildkngirkqorjslhmglripdojfedjjngjnpikoliqhdipgpshenekqiphmrsqmemghklodqnqoeggfkdqngrfollhjmddjreeghdqflohgrhqhelqsmdghgihpifpnikrddpmdfejhrhgfdfdlepmmhlhrnrslepqgmkopmdfogpoljeepqoemisfeksdeddiplnkfjddjioqhojlnmlirehidipdhqlddssssgpgikieeldsmfrkidpldsngdkidkoshkrofnonrrehghlmgmqshkedgpkpgjjkoneigsfjdlgjsngepfkndqoefqmsssrgegspromqepdpdeglmmegjljlmljeeorhhfmrohjeregpfshqjsqkekrihjdpfdjflgspepqjrqfemsjffmjfkhejdkrokmgdrhojgmgjpldjeiphroeheipolfmshoglkfnllfnhlflhlpddjflekhiqilefjpfqepdrrdokkjiekmelkhdpjlqjdlnfjemqdrksirdnjlrhrdijgqjhdqlidpfdisgrmnlfnsdlishlpfkshhglpdiqhpgmhpjdrpednjljfsqknsiqpfeqhlphgqdphflglpmqfkkhdjeodkelinkfpmfedidhphldmqjqggrljlhriehqqemeimkjhoqnsrdgengmgjokpeiijgrseppeoiflngggomdfjkndpqedhgnkiqlodkpjfkqoifidjmrdhhmglledkomllhpehdfjfdspmklkjdnhkdgpgqephfdfdrfplmepoegsekmrnikknelnprdpslmfkhghhooknieksjjhdeelidikndedijqqhfmphdondndpehmfoqelqigdpgioeljhedhfoeqlinriemqjigerkphgepqmiiidqlhriqioimpglonlsgomeloipndiihqqfiekkeriokrsjlmsjqiehqsrqkhdjlddjrrllirqkidqiggdrjpjirssgqepnqmhigfsqlekiqdddllnsjmroiofkieqnghddpjnhdjkfloilheljofddrkherkrieeoijrlfghiikmhpfdhekdjloejlmpperkgrhomedpfqkrodjdmrqfpiodgphidfliislrr +rexmit_inconsistency, [orig_h=63.193.213.194, orig_p=2564/tcp, resp_h=128.3.97.175, resp_p=80/tcp], iokgedlsdkjkiefgmeqkfjoh, ggdeolssksemrhedoledddml +net_weird, truncated_IP +rexmit_inconsistency, [orig_h=63.193.213.194, orig_p=2564/tcp, resp_h=128.3.97.175, resp_p=80/tcp], OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO HTTP/1.1\x0d\x0aHost: 127.0.0.1\x0d\x0aContent-Type: text/xml\x0d\x0aContent-length: 1\x0d\x0a\x0d\x0aO\x0d\x0aYh=wuMu{|KZQ6@biIo5;j44JZu47-n@ad}3g85VYz-F{@<1 v9I83A<$+wOnasox1oS=#qq~yP1>$4LE6A>7vvV8axl0uFsLzn zQebcpl=`%Uv3fBO+cH!$bTSC-e*{vD3P5H(0Gc%oC=9|FW_2)pVqkL+wCX}Jt7N|% PsyVdffn52QNA%x9+NG6L}Nd^+ox_7gJOU0*x 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 literal 0 HcmV?d00001 diff --git a/testing/btest/Traces/ipv4/fragmented-4.pcap b/testing/btest/Traces/ipv4/fragmented-4.pcap new file mode 100644 index 0000000000000000000000000000000000000000..ddcef18f1880a8cb94010d826014901648f6581f GIT binary patch literal 477 zcmca|c+)~A1{MYwxWLZ9zzF1QyL827>PsF5Gaws;88%#aA}k0YIT&087&I6d92owy zecH0-K`4z@Pv$a=ye6>$O=5$Yq^D|>rl+T0o|%_dqF-ED zT#}k=Y^0x@3p2?W=o}EnaFZ%fjPpMmGdIkn6us1nRD1no?Uc+S?PRMME|?KPK$Rej zVT23NTg?C29({xvp`Tlvn3Alo2Xz#j4)XR34=qZ`&-c|1FV6Ni^2~Jf2@LVX41V;0 Yg9iU$0hkTYfXf009OM80+jtll08SNvbN~PV literal 0 HcmV?d00001 diff --git a/testing/btest/Traces/tcp/reassembly.pcap b/testing/btest/Traces/tcp/reassembly.pcap new file mode 100644 index 0000000000000000000000000000000000000000..f387c3fbba81126ed2b6fb7162f4d5a1691bc06c GIT binary patch literal 43248 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 N{@mn!yoC4h-vR!6%3=Tj literal 0 HcmV?d00001 diff --git a/testing/btest/core/reassembly.bro b/testing/btest/core/reassembly.bro new file mode 100644 index 0000000000..cb04ace71b --- /dev/null +++ b/testing/btest/core/reassembly.bro @@ -0,0 +1,26 @@ +# @TEST-EXEC: bro -C -r $TRACES/ipv4/fragmented-1.pcap %INPUT >>output +# @TEST-EXEC: bro -C -r $TRACES/ipv4/fragmented-2.pcap %INPUT >>output +# @TEST-EXEC: bro -C -r $TRACES/ipv4/fragmented-3.pcap %INPUT >>output +# @TEST-EXEC: bro -C -r $TRACES/ipv4/fragmented-4.pcap %INPUT >>output +# @TEST-EXEC: bro -C -r $TRACES/tcp/reassembly.pcap %INPUT >>output +# @TEST-EXEC: btest-diff output + +event bro_init() + { + print "----------------------"; + } + +event flow_weird(name: string, src: addr, dst: addr) + { + print "flow weird", name, src, dst; + } + +event net_weird(name: string) + { + print "net_weird", name; + } + +event rexmit_inconsistency(c: connection, t1: string, t2: string) + { + print "rexmit_inconsistency", c$id, t1, t2 ; + }