From f6d5da423cccc5585d191a3d48745977659eca79 Mon Sep 17 00:00:00 2001 From: Jon Siwek Date: Wed, 12 Dec 2012 14:52:08 -0600 Subject: [PATCH 01/71] Fix record constructors in table initializer indices. Addresses #660. For an index expression list, ListExpr::InitVal() passed the TypeList to Expr::InitVal() for each expression element in the list instead of the type for that element. This made RecordConstructorExpr::InitVal() complain since it expects a RecordType and not a TypeList with a RecordType element as an argument. In most other cases, Expr::InitVal() worked because check_and_promote() "flattens" the list to a single type. --- src/Expr.cc | 9 +- .../language.table-init-record-idx-2/output | 25 ++ .../language.table-init-record-idx-3/output | 25 ++ .../language.table-init-record-idx-2/output | 25 ++ .../language.table-init-record-idx-4/output | 25 ++ .../language.table-init-record-idx/output | 25 ++ .../language/table-init-container-ctors.bro | 2 +- .../btest/language/table-init-record-idx.bro | 216 ++++++++++++++++++ 8 files changed, 350 insertions(+), 2 deletions(-) create mode 100644 testing/btest/Baseline/language.table-init-record-idx-2/output create mode 100644 testing/btest/Baseline/language.table-init-record-idx-3/output create mode 100644 testing/btest/Baseline/language.table-init-record-idx-4/language.table-init-record-idx-2/output create mode 100644 testing/btest/Baseline/language.table-init-record-idx-4/output create mode 100644 testing/btest/Baseline/language.table-init-record-idx/output create mode 100644 testing/btest/language/table-init-record-idx.bro diff --git a/src/Expr.cc b/src/Expr.cc index 7995d5d495..f5da47c506 100644 --- a/src/Expr.cc +++ b/src/Expr.cc @@ -4893,9 +4893,16 @@ Val* ListExpr::InitVal(const BroType* t, Val* aggr) const { ListVal* v = new ListVal(TYPE_ANY); + const type_list* tl = type->AsTypeList()->Types(); + if ( exprs.length() != tl->length() ) + { + Error("index mismatch", t); + return 0; + } + loop_over_list(exprs, i) { - Val* vi = exprs[i]->InitVal(t, 0); + Val* vi = exprs[i]->InitVal((*tl)[i], 0); if ( ! vi ) { Unref(v); diff --git a/testing/btest/Baseline/language.table-init-record-idx-2/output b/testing/btest/Baseline/language.table-init-record-idx-2/output new file mode 100644 index 0000000000..1496863177 --- /dev/null +++ b/testing/btest/Baseline/language.table-init-record-idx-2/output @@ -0,0 +1,25 @@ +following should all be true... +T +T +T +T +T +T +T +T +1 +1 +1 +following should all be false... +F +F +F +now here's the foo table... +{ +[[a=foo, b=2], 2] = 2, +[[a=baz, b=6], 6] = 6, +[[a=bar, b=4], 4] = 4, +[[a=baz, b=5], 5] = 5, +[[a=bar, b=3], 3] = 3, +[[a=foo, b=1], 1] = 1 +} diff --git a/testing/btest/Baseline/language.table-init-record-idx-3/output b/testing/btest/Baseline/language.table-init-record-idx-3/output new file mode 100644 index 0000000000..b8d1540d0a --- /dev/null +++ b/testing/btest/Baseline/language.table-init-record-idx-3/output @@ -0,0 +1,25 @@ +following should all be true... +T +T +T +T +T +T +T +T +1 +1 +1 +following should all be false... +F +F +F +now here's the foo table... +{ +[[a=baz, b=5]] = 5, +[[a=foo, b=2]] = 2, +[[a=baz, b=6]] = 6, +[[a=foo, b=1]] = 1, +[[a=bar, b=4]] = 4, +[[a=bar, b=3]] = 3 +} diff --git a/testing/btest/Baseline/language.table-init-record-idx-4/language.table-init-record-idx-2/output b/testing/btest/Baseline/language.table-init-record-idx-4/language.table-init-record-idx-2/output new file mode 100644 index 0000000000..1496863177 --- /dev/null +++ b/testing/btest/Baseline/language.table-init-record-idx-4/language.table-init-record-idx-2/output @@ -0,0 +1,25 @@ +following should all be true... +T +T +T +T +T +T +T +T +1 +1 +1 +following should all be false... +F +F +F +now here's the foo table... +{ +[[a=foo, b=2], 2] = 2, +[[a=baz, b=6], 6] = 6, +[[a=bar, b=4], 4] = 4, +[[a=baz, b=5], 5] = 5, +[[a=bar, b=3], 3] = 3, +[[a=foo, b=1], 1] = 1 +} diff --git a/testing/btest/Baseline/language.table-init-record-idx-4/output b/testing/btest/Baseline/language.table-init-record-idx-4/output new file mode 100644 index 0000000000..1496863177 --- /dev/null +++ b/testing/btest/Baseline/language.table-init-record-idx-4/output @@ -0,0 +1,25 @@ +following should all be true... +T +T +T +T +T +T +T +T +1 +1 +1 +following should all be false... +F +F +F +now here's the foo table... +{ +[[a=foo, b=2], 2] = 2, +[[a=baz, b=6], 6] = 6, +[[a=bar, b=4], 4] = 4, +[[a=baz, b=5], 5] = 5, +[[a=bar, b=3], 3] = 3, +[[a=foo, b=1], 1] = 1 +} diff --git a/testing/btest/Baseline/language.table-init-record-idx/output b/testing/btest/Baseline/language.table-init-record-idx/output new file mode 100644 index 0000000000..b8d1540d0a --- /dev/null +++ b/testing/btest/Baseline/language.table-init-record-idx/output @@ -0,0 +1,25 @@ +following should all be true... +T +T +T +T +T +T +T +T +1 +1 +1 +following should all be false... +F +F +F +now here's the foo table... +{ +[[a=baz, b=5]] = 5, +[[a=foo, b=2]] = 2, +[[a=baz, b=6]] = 6, +[[a=foo, b=1]] = 1, +[[a=bar, b=4]] = 4, +[[a=bar, b=3]] = 3 +} diff --git a/testing/btest/language/table-init-container-ctors.bro b/testing/btest/language/table-init-container-ctors.bro index 4829f41688..1f9e18d848 100644 --- a/testing/btest/language/table-init-container-ctors.bro +++ b/testing/btest/language/table-init-container-ctors.bro @@ -2,7 +2,7 @@ # @TEST-EXEC: btest-diff output # The various container constructor expressions should work in table -# initialization lists. +# initialization lists (as yields). type set_yield: set[string, count]; type vector_yield: vector of count; diff --git a/testing/btest/language/table-init-record-idx.bro b/testing/btest/language/table-init-record-idx.bro new file mode 100644 index 0000000000..db9716dc42 --- /dev/null +++ b/testing/btest/language/table-init-record-idx.bro @@ -0,0 +1,216 @@ +# @TEST-EXEC: bro -b %INPUT >output +# @TEST-EXEC: btest-diff output + +# Record constructors should work in table initializers + +type r: record { + a: string; + b: count; +}; + +global a: r = [$a="foo", $b=1]; +global b: r = [$a="foo", $b=2]; +global c: r = [$a="bar", $b=3]; +global d: r = [$a="bar", $b=4]; +global e: r = [$a="baz", $b=5]; +global f: r = [$a="baz", $b=6]; + +global foo: table[r] of count = { + [a] = 1, + [record($a="foo", $b=2)] = 2, + [[$a="bar", $b=3]] = 3, +}; + +foo[d] = 4; +foo[[$a="baz", $b=5]] = 5; +foo[record($a="baz", $b=6)] = 6; + +print "following should all be true..."; + +print a in foo; +print b in foo; +print c in foo; +print d in foo; +print e in foo; +print f in foo; + +print [$a="foo", $b=1] in foo; +print record($a="foo", $b=1) in foo; + +print foo[a]; +print foo[[$a="foo", $b=1]]; +print foo[record($a="foo", $b=1)]; + +print "following should all be false..."; + +local bah: r = [$a="bah", $b=0]; + +print bah in foo; +print [$a="bah", $b=0] in foo; +print record($a="bah", $b=0) in foo; + +print "now here's the foo table..."; + +print foo; + +# @TEST-START-NEXT + +# They can be part of a compound index type, too... + +type r: record { + a: string; + b: count; +}; + +global a: r = [$a="foo", $b=1]; +global b: r = [$a="foo", $b=2]; +global c: r = [$a="bar", $b=3]; +global d: r = [$a="bar", $b=4]; +global e: r = [$a="baz", $b=5]; +global f: r = [$a="baz", $b=6]; + +global foo: table[r, count] of count = { + [a, 1] = 1, + [record($a="foo", $b=2), 2] = 2, + [[$a="bar", $b=3], 3] = 3, +}; + +foo[d, 4] = 4; +foo[[$a="baz", $b=5], 5] = 5; +foo[record($a="baz", $b=6), 6] = 6; + +print "following should all be true..."; + +print [a, 1] in foo; +print [b, 2] in foo; +print [c, 3] in foo; +print [d, 4] in foo; +print [e, 5] in foo; +print [f, 6] in foo; + +print [[$a="foo", $b=1], 1] in foo; +print [record($a="foo", $b=1), 1] in foo; + +print foo[a, 1]; +print foo[[$a="foo", $b=1], 1]; +print foo[record($a="foo", $b=1), 1]; + +print "following should all be false..."; + +local bah: r = [$a="bah", $b=0]; + +print [bah, 0] in foo; +print [[$a="bah", $b=0], 0] in foo; +print [record($a="bah", $b=0), 0] in foo; + +print "now here's the foo table..."; + +print foo; + +# @TEST-START-NEXT + +# Now checking table() ctor versus { } initializer + +type r: record { + a: string; + b: count; +}; + +global a: r = [$a="foo", $b=1]; +global b: r = [$a="foo", $b=2]; +global c: r = [$a="bar", $b=3]; +global d: r = [$a="bar", $b=4]; +global e: r = [$a="baz", $b=5]; +global f: r = [$a="baz", $b=6]; + +global foo: table[r] of count = table( + [a] = 1, + [record($a="foo", $b=2)] = 2, + [[$a="bar", $b=3]] = 3 +); + +foo[d] = 4; +foo[[$a="baz", $b=5]] = 5; +foo[record($a="baz", $b=6)] = 6; + +print "following should all be true..."; + +print a in foo; +print b in foo; +print c in foo; +print d in foo; +print e in foo; +print f in foo; + +print [$a="foo", $b=1] in foo; +print record($a="foo", $b=1) in foo; + +print foo[a]; +print foo[[$a="foo", $b=1]]; +print foo[record($a="foo", $b=1)]; + +print "following should all be false..."; + +local bah: r = [$a="bah", $b=0]; + +print bah in foo; +print [$a="bah", $b=0] in foo; +print record($a="bah", $b=0) in foo; + +print "now here's the foo table..."; + +print foo; + +# @TEST-START-NEXT + +# Now checking table() ctor versus { } initializer for compound index + +type r: record { + a: string; + b: count; +}; + +global a: r = [$a="foo", $b=1]; +global b: r = [$a="foo", $b=2]; +global c: r = [$a="bar", $b=3]; +global d: r = [$a="bar", $b=4]; +global e: r = [$a="baz", $b=5]; +global f: r = [$a="baz", $b=6]; + +global foo: table[r, count] of count = table( + [a, 1] = 1, + [record($a="foo", $b=2), 2] = 2, + [[$a="bar", $b=3], 3] = 3 +); + +foo[d, 4] = 4; +foo[[$a="baz", $b=5], 5] = 5; +foo[record($a="baz", $b=6), 6] = 6; + +print "following should all be true..."; + +print [a, 1] in foo; +print [b, 2] in foo; +print [c, 3] in foo; +print [d, 4] in foo; +print [e, 5] in foo; +print [f, 6] in foo; + +print [[$a="foo", $b=1], 1] in foo; +print [record($a="foo", $b=1), 1] in foo; + +print foo[a, 1]; +print foo[[$a="foo", $b=1], 1]; +print foo[record($a="foo", $b=1), 1]; + +print "following should all be false..."; + +local bah: r = [$a="bah", $b=0]; + +print [bah, 0] in foo; +print [[$a="bah", $b=0], 0] in foo; +print [record($a="bah", $b=0), 0] in foo; + +print "now here's the foo table..."; + +print foo; From ad9e2a143c846635652ca99e4f50bba4898f7a07 Mon Sep 17 00:00:00 2001 From: Seth Hall Date: Thu, 17 Jan 2013 10:31:51 -0500 Subject: [PATCH 02/71] Update software version parsing and comparison to account for a third numeric subversion. - $addl is also compared numerically now if the value is actually numeric. --- scripts/base/frameworks/software/main.bro | 41 +++++++++++++++---- .../frameworks/software/version-parsing.bro | 10 ++--- 2 files changed, 38 insertions(+), 13 deletions(-) diff --git a/scripts/base/frameworks/software/main.bro b/scripts/base/frameworks/software/main.bro index 7471076335..fefc465e1a 100644 --- a/scripts/base/frameworks/software/main.bro +++ b/scripts/base/frameworks/software/main.bro @@ -29,6 +29,8 @@ export { minor: count &optional; ## Minor subversion number minor2: count &optional; + ## Minor updates number + minor3: count &optional; ## Additional version string (e.g. "beta42") addl: string &optional; } &log; @@ -146,10 +148,10 @@ function parse(unparsed_version: string): Description if ( /^[\/\-\._v\(]/ in sv ) sv = strip(sub(version_parts[2], /^\(?[\/\-\._v\(]/, "")); local version_numbers = split_n(sv, /[\-\._,\[\(\{ ]/, F, 3); - if ( 4 in version_numbers && version_numbers[4] != "" ) - v$addl = strip(version_numbers[4]); + if ( 5 in version_numbers && version_numbers[5] != "" ) + v$addl = strip(version_numbers[5]); else if ( 3 in version_parts && version_parts[3] != "" && - version_parts[3] != ")" ) + version_parts[3] != ")" ) { if ( /^[[:blank:]]*\([a-zA-Z0-9\-\._[:blank:]]*\)/ in version_parts[3] ) { @@ -177,7 +179,9 @@ function parse(unparsed_version: string): Description } } - + + if ( 4 in version_numbers && version_numbers[4] != "" ) + v$minor3 = extract_count(version_numbers[4]); if ( 3 in version_numbers && version_numbers[3] != "" ) v$minor2 = extract_count(version_numbers[3]); if ( 2 in version_numbers && version_numbers[2] != "" ) @@ -332,8 +336,25 @@ function cmp_versions(v1: Version, v2: Version): int return v1?$minor2 ? 1 : -1; } + if ( v1?$minor3 && v2?$minor3 ) + { + if ( v1$minor3 < v2$minor3 ) + return -1; + if ( v1$minor3 > v2$minor3 ) + return 1; + } + else + { + if ( !v1?$minor3 && !v2?$minor3 ) + { } + else + return v1?$minor3 ? 1 : -1; + } + if ( v1?$addl && v2?$addl ) + { return strcmp(v1$addl, v2$addl); + } else { if ( !v1?$addl && !v2?$addl ) @@ -341,6 +362,9 @@ function cmp_versions(v1: Version, v2: Version): int else return v1?$addl ? 1 : -1; } + + # A catcher return that should never be reached...hopefully + return 0; } function software_endpoint_name(id: conn_id, host: addr): string @@ -351,10 +375,11 @@ function software_endpoint_name(id: conn_id, host: addr): string # Convert a version into a string "a.b.c-x". function software_fmt_version(v: Version): string { - return fmt("%d.%d.%d%s", - v?$major ? v$major : 0, - v?$minor ? v$minor : 0, - v?$minor2 ? v$minor2 : 0, + return fmt("%s%s%s%s%s", + v?$major ? fmt("%d", v$major) : "0", + v?$minor ? fmt(".%d", v$minor) : "", + v?$minor2 ? fmt(".%d", v$minor2) : "", + v?$minor3 ? fmt(".%d", v$minor3) : "", v?$addl ? fmt("-%s", v$addl) : ""); } diff --git a/testing/btest/scripts/base/frameworks/software/version-parsing.bro b/testing/btest/scripts/base/frameworks/software/version-parsing.bro index 03327a25cd..2b406f22b8 100644 --- a/testing/btest/scripts/base/frameworks/software/version-parsing.bro +++ b/testing/btest/scripts/base/frameworks/software/version-parsing.bro @@ -21,7 +21,7 @@ global matched_software: table[string] of Software::Description = { ["Java1.2.2-JDeveloper"] = [$name="Java", $version=[$major=1,$minor=2,$minor2=2,$addl="JDeveloper"], $unparsed_version=""], ["Java/1.6.0_13"] = - [$name="Java", $version=[$major=1,$minor=6,$minor2=0,$addl="13"], $unparsed_version=""], + [$name="Java", $version=[$major=1,$minor=6,$minor2=0,$minor3=13], $unparsed_version=""], ["Python-urllib/3.1"] = [$name="Python-urllib", $version=[$major=3,$minor=1], $unparsed_version=""], ["libwww-perl/5.820"] = @@ -39,9 +39,9 @@ global matched_software: table[string] of Software::Description = { ["The Bat! (v2.00.9) Personal"] = [$name="The Bat!", $version=[$major=2,$minor=0,$minor2=9,$addl="Personal"], $unparsed_version=""], ["Flash/10,2,153,1"] = - [$name="Flash", $version=[$major=10,$minor=2,$minor2=153,$addl="1"], $unparsed_version=""], + [$name="Flash", $version=[$major=10,$minor=2,$minor2=153,$minor3=1], $unparsed_version=""], ["mt2/1.2.3.967 Oct 13 2010-13:40:24 ord-pixel-x2 pid 0x35a3 13731"] = - [$name="mt2", $version=[$major=1,$minor=2,$minor2=3,$addl="967"], $unparsed_version=""], + [$name="mt2", $version=[$major=1,$minor=2,$minor2=3,$minor3=967,$addl="Oct"], $unparsed_version=""], ["CacheFlyServe v26b"] = [$name="CacheFlyServe", $version=[$major=26,$addl="b"], $unparsed_version=""], ["Apache/2.0.46 (Win32) mod_ssl/2.0.46 OpenSSL/0.9.7b mod_jk2/2.0.4"] = @@ -54,7 +54,7 @@ global matched_software: table[string] of Software::Description = { ["Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_2 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8H7 Safari/6533.18.5"] = [$name="Safari", $version=[$major=5,$minor=0,$minor2=2,$addl="Mobile"], $unparsed_version=""], ["Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_7; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.205 Safari/534.16"] = - [$name="Chrome", $version=[$major=10,$minor=0,$minor2=648,$addl="205"], $unparsed_version=""], + [$name="Chrome", $version=[$major=10,$minor=0,$minor2=648,$minor3=205], $unparsed_version=""], ["Opera/9.80 (Windows NT 6.1; U; sv) Presto/2.7.62 Version/11.01"] = [$name="Opera", $version=[$major=11,$minor=1], $unparsed_version=""], ["Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.2.11) Gecko/20101013 Lightning/1.0b2 Thunderbird/3.1.5"] = @@ -62,7 +62,7 @@ global matched_software: table[string] of Software::Description = { ["iTunes/9.0 (Macintosh; Intel Mac OS X 10.5.8) AppleWebKit/531.9"] = [$name="iTunes", $version=[$major=9,$minor=0,$addl="Macintosh"], $unparsed_version=""], ["Java1.3.1_04"] = - [$name="Java", $version=[$major=1,$minor=3,$minor2=1,$addl="04"], $unparsed_version=""], + [$name="Java", $version=[$major=1,$minor=3,$minor2=1,$minor3=4], $unparsed_version=""], ["Mozilla/5.0 (Linux; U; Android 2.3.3; zh-tw; HTC Pyramid Build/GRI40) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1"] = [$name="Safari", $version=[$major=4,$minor=0,$addl="Mobile"], $unparsed_version=""], ["Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_6; en-us) AppleWebKit/533.20.25 (KHTML, like Gecko) Version/5.0.4 Safari/533.20.27"] = From ff3ec04f324d87f553eba296c5a932be70fe26a3 Mon Sep 17 00:00:00 2001 From: Seth Hall Date: Thu, 17 Jan 2013 10:33:32 -0500 Subject: [PATCH 03/71] Improvements to vulnerable software detection. - Add a DNS based updating method. This needs to be tested still. - Vulnerable version ranges are used now instead of only single versions. This can deal with software with multiple stable major versions. --- .../policy/frameworks/software/vulnerable.bro | 116 +++++++++++++++++- 1 file changed, 110 insertions(+), 6 deletions(-) diff --git a/scripts/policy/frameworks/software/vulnerable.bro b/scripts/policy/frameworks/software/vulnerable.bro index c2c2ba5b32..2f6f0fed73 100644 --- a/scripts/policy/frameworks/software/vulnerable.bro +++ b/scripts/policy/frameworks/software/vulnerable.bro @@ -2,6 +2,7 @@ ##! a version of that software as old or older than the defined version a ##! notice will be generated. +@load base/frameworks/control @load base/frameworks/notice @load base/frameworks/software @@ -13,17 +14,120 @@ export { Vulnerable_Version, }; + type VulnerableVersionRange: record { + ## The minimal version of a vulnerable version range. This + ## field can be undefined if all previous versions of a piece + ## of software are vulnerable. + min: Software::Version &optional; + ## The maximum vulnerable version. This field is deliberately + ## not optional because a maximum vulnerable version must + ## always be defined. + max: Software::Version; + }; + + ## The DNS zone where runtime vulnerable software updates will + ## be loaded from. + const vulnerable_versions_update_endpoint = "" &redef; + + ## The interval at which vulnerable versions should grab updates + ## over DNS. + const vulnerable_versions_update_interval = 1hr &redef; + ## This is a table of software versions indexed by the name of the - ## software and yielding the latest version that is vulnerable. - const vulnerable_versions: table[string] of Version &redef; + ## software and a set of version ranges that are declared to be + ## vulnerable for that software. + const vulnerable_versions: table[string] of set[VulnerableVersionRange] &redef; } +global internal_vulnerable_versions: table[string] of set[VulnerableVersionRange] = table(); + +event Control::configuration_update() + { + # Copy the const vulnerable versions into the global modifiable one. + for ( sw in vulnerable_versions ) + internal_vulnerable_versions[sw] = vulnerable_versions[sw]; + } + +function decode_vulnerable_version_range(vuln_sw: string): VulnerableVersionRange + { + # Create a max value with a dunce value only because the $max field + # is not optional. + local vvr: Software::VulnerableVersionRange = [$max=[$major=0]]; + + if ( /max=/ !in vuln_sw ) + { + Reporter::warning(fmt("The vulnerable software detection script encountered a version with no max value (which is required). %s", vuln_sw)); + return vvr; + } + + local versions = split1(vuln_sw, /\x09/); + + for ( i in versions ) + { + local field_and_ver = split1(versions[i], /=/); + if ( |field_and_ver| != 2 ) + return vvr; #failure! + + local ver = Software::parse(field_and_ver[2])$version; + if ( field_and_ver[1] == "min" ) + vvr$min = ver; + else if ( field_and_ver[1] == "max" ) + vvr$max = ver; + } + + return vvr; + } + +event grab_vulnerable_versions(i: count) + { + if ( vulnerable_versions_update_endpoint == "" ) + { + # Reschedule this event in case the user updates the setting at runtime. + schedule vulnerable_versions_update_interval { grab_vulnerable_versions(1) }; + return; + } + + when ( local result = lookup_hostname_txt(cat(i,".",vulnerable_versions_update_endpoint)) ) + { + local parts = split1(result, /\x09/); + if ( |parts| != 2 ) + return; #failure! + + local sw = parts[1]; + local vvr = decode_vulnerable_version_range(parts[2]); + add internal_vulnerable_versions[sw][vvr]; + + # TODO: deal with the lookup timing out or otherwise failing. + # maybe keep a "last lookup" time with an event scheduled to + # make sure that nothing's failing occassionally. + if ( sw == "" ) + schedule vulnerable_versions_update_interval { grab_vulnerable_versions(1) }; + else + event grab_vulnerable_versions(i+1); + } + } + +event bro_init() + { + event grab_vulnerable_versions(1); + + #print decode_vulnerable_version_range("min=6.1 max=6.9.3.a"); + } + event log_software(rec: Info) { - if ( rec$name in vulnerable_versions && - cmp_versions(rec$version, vulnerable_versions[rec$name]) <= 0 ) + if ( rec$name !in internal_vulnerable_versions ) + return; + + for ( version_range in internal_vulnerable_versions[rec$name] ) { - NOTICE([$note=Vulnerable_Version, $src=rec$host, - $msg=fmt("A vulnerable version of software was detected: %s", software_fmt(rec))]); + if ( cmp_versions(rec$version, version_range$max) <= 0 && + (!version_range?$min || cmp_versions(rec$version, version_range$min) >= 0) ) + { + # The software is inside a vulnerable version range. + NOTICE([$note=Vulnerable_Version, $src=rec$host, + $msg=fmt("%s is running %s which is vulnerable.", rec$host, software_fmt(rec)), + $sub=software_fmt(rec)]); + } } } From e974950c6d9a35c663c4b6dd351974ef6be6fc21 Mon Sep 17 00:00:00 2001 From: Seth Hall Date: Sat, 26 Jan 2013 00:51:49 -0500 Subject: [PATCH 04/71] Correctly handle DNS lookups for software version ranges. --- .../policy/frameworks/software/vulnerable.bro | 34 +++++++++++-------- scripts/site/local.bro | 7 ---- 2 files changed, 20 insertions(+), 21 deletions(-) diff --git a/scripts/policy/frameworks/software/vulnerable.bro b/scripts/policy/frameworks/software/vulnerable.bro index 2f6f0fed73..ea3752e7d1 100644 --- a/scripts/policy/frameworks/software/vulnerable.bro +++ b/scripts/policy/frameworks/software/vulnerable.bro @@ -21,12 +21,14 @@ export { min: Software::Version &optional; ## The maximum vulnerable version. This field is deliberately ## not optional because a maximum vulnerable version must - ## always be defined. + ## always be defined. This assumption may become incorrent + ## if all future versions of some software are to be considered + ## vulnerable. :) max: Software::Version; }; ## The DNS zone where runtime vulnerable software updates will - ## be loaded from. + ## be loaded from. const vulnerable_versions_update_endpoint = "" &redef; ## The interval at which vulnerable versions should grab updates @@ -36,13 +38,15 @@ export { ## This is a table of software versions indexed by the name of the ## software and a set of version ranges that are declared to be ## vulnerable for that software. - const vulnerable_versions: table[string] of set[VulnerableVersionRange] &redef; + const vulnerable_versions: table[string] of set[VulnerableVersionRange] = table() &redef; } global internal_vulnerable_versions: table[string] of set[VulnerableVersionRange] = table(); event Control::configuration_update() { + internal_vulnerable_versions = table(); + # Copy the const vulnerable versions into the global modifiable one. for ( sw in vulnerable_versions ) internal_vulnerable_versions[sw] = vulnerable_versions[sw]; @@ -90,28 +94,30 @@ event grab_vulnerable_versions(i: count) when ( local result = lookup_hostname_txt(cat(i,".",vulnerable_versions_update_endpoint)) ) { local parts = split1(result, /\x09/); - if ( |parts| != 2 ) - return; #failure! + if ( |parts| != 2 ) #failure or end of list! + { + schedule vulnerable_versions_update_interval { grab_vulnerable_versions(1) }; + return; + } local sw = parts[1]; local vvr = decode_vulnerable_version_range(parts[2]); + if ( sw !in internal_vulnerable_versions ) + internal_vulnerable_versions[sw] = set(); add internal_vulnerable_versions[sw][vvr]; - # TODO: deal with the lookup timing out or otherwise failing. - # maybe keep a "last lookup" time with an event scheduled to - # make sure that nothing's failing occassionally. - if ( sw == "" ) - schedule vulnerable_versions_update_interval { grab_vulnerable_versions(1) }; - else - event grab_vulnerable_versions(i+1); + event grab_vulnerable_versions(i+1); + } + timeout 5secs + { + # In case a lookup fails, try starting over in one minute. + schedule 1min { grab_vulnerable_versions(1) }; } } event bro_init() { event grab_vulnerable_versions(1); - - #print decode_vulnerable_version_range("min=6.1 max=6.9.3.a"); } event log_software(rec: Info) diff --git a/scripts/site/local.bro b/scripts/site/local.bro index a080300185..6dff7881f5 100644 --- a/scripts/site/local.bro +++ b/scripts/site/local.bro @@ -14,13 +14,6 @@ # information. @load frameworks/software/vulnerable -# Example vulnerable software. This needs to be updated and maintained over -# time as new vulnerabilities are discovered. -redef Software::vulnerable_versions += { - ["Flash"] = [$major=10,$minor=2,$minor2=153,$addl="1"], - ["Java"] = [$major=1,$minor=6,$minor2=0,$addl="22"], -}; - # Detect software changing (e.g. attacker installing hacked SSHD). @load frameworks/software/version-changes From 26bf99c5a334c8bd23dd436aa3dcfad9c0e80535 Mon Sep 17 00:00:00 2001 From: Jon Siwek Date: Thu, 7 Feb 2013 14:59:02 -0600 Subject: [PATCH 05/71] Add parsing for GTPv1 extension headers and control messages. Added a generic gtpv1_message event generated for any GTP message type. Added specific events for the create/update/delete PDP context request/response messages. Addresses #934. --- scripts/base/frameworks/tunnels/main.bro | 6 +- scripts/base/init-bare.bro | 140 ++++ src/NetVar.cc | 2 - src/NetVar.h | 1 - src/event.bif | 61 ++ src/gtpv1-analyzer.pac | 694 ++++++++++++++++-- src/gtpv1-protocol.pac | 477 +++++++++++- src/types.bif | 14 + .../Baseline/core.tunnels.gtp.ext_header/out | 2 + .../core.tunnels.gtp.non_recursive/out | 2 +- .../core.tunnels.gtp.pdp_ctx_messages/out | 24 + .../dpd.log | 6 +- .../tunnel.log | 4 +- .../Traces/tunnels/gtp/gtp_control_prime.pcap | Bin 0 -> 1292 bytes .../tunnels/gtp/gtp_create_pdp_ctx.pcap | Bin 0 -> 713 bytes .../Traces/tunnels/gtp/gtp_ext_header.pcap | Bin 0 -> 1648 bytes .../btest/core/tunnels/gtp/ext_header.test | 8 + .../core/tunnels/gtp/pdp_ctx_messages.test | 56 ++ 18 files changed, 1435 insertions(+), 62 deletions(-) create mode 100644 testing/btest/Baseline/core.tunnels.gtp.ext_header/out create mode 100644 testing/btest/Baseline/core.tunnels.gtp.pdp_ctx_messages/out create mode 100644 testing/btest/Traces/tunnels/gtp/gtp_control_prime.pcap create mode 100644 testing/btest/Traces/tunnels/gtp/gtp_create_pdp_ctx.pcap create mode 100644 testing/btest/Traces/tunnels/gtp/gtp_ext_header.pcap create mode 100644 testing/btest/core/tunnels/gtp/ext_header.test create mode 100644 testing/btest/core/tunnels/gtp/pdp_ctx_messages.test diff --git a/scripts/base/frameworks/tunnels/main.bro b/scripts/base/frameworks/tunnels/main.bro index a3db7061d3..a8fc6c8236 100644 --- a/scripts/base/frameworks/tunnels/main.bro +++ b/scripts/base/frameworks/tunnels/main.bro @@ -88,10 +88,10 @@ redef dpd_config += { [ANALYZER_AYIYA] = [$ports = ayiya_ports] }; const teredo_ports = { 3544/udp }; redef dpd_config += { [ANALYZER_TEREDO] = [$ports = teredo_ports] }; -const gtpv1u_ports = { 2152/udp }; -redef dpd_config += { [ANALYZER_GTPV1] = [$ports = gtpv1u_ports] }; +const gtpv1_ports = { 2152/udp, 2123/udp }; +redef dpd_config += { [ANALYZER_GTPV1] = [$ports = gtpv1_ports] }; -redef likely_server_ports += { ayiya_ports, teredo_ports, gtpv1u_ports }; +redef likely_server_ports += { ayiya_ports, teredo_ports, gtpv1_ports }; event bro_init() &priority=5 { diff --git a/scripts/base/init-bare.bro b/scripts/base/init-bare.bro index 23321a35dd..b6187df0d9 100644 --- a/scripts/base/init-bare.bro +++ b/scripts/base/init-bare.bro @@ -1488,6 +1488,146 @@ type gtpv1_hdr: record { next_type: count &optional; }; +type gtp_cause: count; +type gtp_imsi: count; +type gtp_teardown_ind: bool; +type gtp_nsapi: count; +type gtp_recovery: count; +type gtp_teid1: count; +type gtp_teid_control_plane: count; +type gtp_charging_id: count; +type gtp_charging_gateway_addr: addr; +type gtp_trace_reference: count; +type gtp_trace_type: count; +type gtp_tft: string; +type gtp_trigger_id: string; +type gtp_omc_id: string; +type gtp_reordering_required: bool; +type gtp_proto_config_options: string; +type gtp_charging_characteristics: count; +type gtp_selection_mode: count; +type gtp_access_point_name: string; +type gtp_msisdn: string; + +type gtp_gsn_addr: record { + ## If the GSN Address information element has length 4 or 16, then this + ## field is set to be the informational element's value interpreted as + ## an IPv4 or IPv6 address, respectively. + ip: addr &optional; + ## This field is set if it's not an IPv4 or IPv6 address. + other: string &optional; +}; + +type gtp_end_user_addr: record { + pdp_type_org: count; + pdp_type_num: count; + ## Set if the End User Address information element is IPv4/IPv6. + pdp_ip: addr &optional; + ## Set if the End User Address information element isn't IPv4/IPv6. + pdp_other_addr: string &optional; +}; + +type gtp_rai: record { + mcc: count; + mnc: count; + lac: count; + rac: count; +}; + +type gtp_qos_profile: record { + priority: count; + data: string; +}; + +type gtp_private_extension: record { + id: count; + value: string; +}; + +type gtp_create_pdp_ctx_request_elements: record { + imsi: gtp_imsi &optional; + rai: gtp_rai &optional; + recovery: gtp_recovery &optional; + select_mode: gtp_selection_mode &optional; + data1: gtp_teid1; + cp: gtp_teid_control_plane &optional; + nsapi: gtp_nsapi; + linked_nsapi: gtp_nsapi &optional; + charge_character: gtp_charging_characteristics &optional; + trace_ref: gtp_trace_reference &optional; + trace_type: gtp_trace_type &optional; + end_user_addr: gtp_end_user_addr &optional; + ap_name: gtp_access_point_name &optional; + opts: gtp_proto_config_options &optional; + signal_addr: gtp_gsn_addr; + user_addr: gtp_gsn_addr; + msisdn: gtp_msisdn &optional; + qos_prof: gtp_qos_profile; + tft: gtp_tft &optional; + trigger_id: gtp_trigger_id &optional; + omc_id: gtp_omc_id &optional; + ext: gtp_private_extension &optional; +}; + +type gtp_create_pdp_ctx_response_elements: record { + cause: gtp_cause; + reorder_req: gtp_reordering_required &optional; + recovery: gtp_recovery &optional; + data1: gtp_teid1 &optional; + cp: gtp_teid_control_plane &optional; + charging_id: gtp_charging_id &optional; + end_user_addr: gtp_end_user_addr &optional; + opts: gtp_proto_config_options &optional; + cp_addr: gtp_gsn_addr &optional; + user_addr: gtp_gsn_addr &optional; + qos_prof: gtp_qos_profile &optional; + charge_gateway: gtp_charging_gateway_addr &optional; + ext: gtp_private_extension &optional; +}; + +type gtp_update_pdp_ctx_request_elements: record { + imsi: gtp_imsi &optional; + rai: gtp_rai &optional; + recovery: gtp_recovery &optional; + data1: gtp_teid1; + cp: gtp_teid_control_plane &optional; + nsapi: gtp_nsapi; + trace_ref: gtp_trace_reference &optional; + trace_type: gtp_trace_type &optional; + cp_addr: gtp_gsn_addr; + user_addr: gtp_gsn_addr; + qos_prof: gtp_qos_profile; + tft: gtp_tft &optional; + trigger_id: gtp_trigger_id &optional; + omc_id: gtp_omc_id &optional; + ext: gtp_private_extension &optional; + end_user_addr: gtp_end_user_addr &optional; +}; + +type gtp_update_pdp_ctx_response_elements: record { + cause: gtp_cause; + recovery: gtp_recovery &optional; + data1: gtp_teid1 &optional; + cp: gtp_teid_control_plane &optional; + charging_id: gtp_charging_id &optional; + cp_addr: gtp_gsn_addr &optional; + user_addr: gtp_gsn_addr &optional; + qos_prof: gtp_qos_profile &optional; + charge_gateway: gtp_charging_gateway_addr &optional; + ext: gtp_private_extension &optional; +}; + +type gtp_delete_pdp_ctx_request_elements: record { + teardown_ind: gtp_teardown_ind &optional; + nsapi: gtp_nsapi; + ext: gtp_private_extension &optional; +}; + +type gtp_delete_pdp_ctx_response_elements: record { + cause: gtp_cause; + ext: gtp_private_extension &optional; +}; + ## Definition of "secondary filters". A secondary filter is a BPF filter given as ## index in this table. For each such filter, the corresponding event is raised for ## all matching packets. diff --git a/src/NetVar.cc b/src/NetVar.cc index 1783130f34..248ae15e1a 100644 --- a/src/NetVar.cc +++ b/src/NetVar.cc @@ -5,7 +5,6 @@ #include "Var.h" #include "NetVar.h" -RecordType* gtpv1_hdr_type; RecordType* conn_id; RecordType* endpoint; RecordType* endpoint_stats; @@ -309,7 +308,6 @@ void init_net_var() #include "input.bif.netvar_init" #include "reporter.bif.netvar_init" - gtpv1_hdr_type = internal_type("gtpv1_hdr")->AsRecordType(); conn_id = internal_type("conn_id")->AsRecordType(); endpoint = internal_type("endpoint")->AsRecordType(); endpoint_stats = internal_type("endpoint_stats")->AsRecordType(); diff --git a/src/NetVar.h b/src/NetVar.h index 4bb2d2a7f9..2561fa0ad9 100644 --- a/src/NetVar.h +++ b/src/NetVar.h @@ -8,7 +8,6 @@ #include "EventRegistry.h" #include "Stats.h" -extern RecordType* gtpv1_hdr_type; extern RecordType* conn_id; extern RecordType* endpoint; extern RecordType* endpoint_stats; diff --git a/src/event.bif b/src/event.bif index 8dd940f38b..393021024a 100644 --- a/src/event.bif +++ b/src/event.bif @@ -577,6 +577,13 @@ event teredo_origin_indication%(outer: connection, inner: teredo_hdr%); ## it may become particularly expensive for real-time analysis. event teredo_bubble%(outer: connection, inner: teredo_hdr%); +## Generated for any GTP message with a GTPv1 header. +## +## c: The connection over which the message is sent. +## +## hdr: The GTPv1 header. +event gtpv1_message%(c: connection, hdr: gtpv1_hdr%); + ## Generated for GTPv1 G-PDU packets. That is, packets with a UDP payload ## that includes a GTP header followed by an IPv4 or IPv6 packet. ## @@ -590,6 +597,60 @@ event teredo_bubble%(outer: connection, inner: teredo_hdr%); ## it may become particularly expensive for real-time analysis. event gtpv1_g_pdu_packet%(outer: connection, inner_gtp: gtpv1_hdr, inner_ip: pkt_hdr%); +## Generated for GTPv1-C Create PDP Context Request messages. +## +## c: The connection over which the message is sent. +## +## hdr: The GTPv1 header. +## +## elements: The set of Information Elements comprising the message. +event gtpv1_create_pdp_ctx_request%(c: connection, hdr: gtpv1_hdr, elements: gtp_create_pdp_ctx_request_elements%); + +## Generated for GTPv1-C Create PDP Context Response messages. +## +## c: The connection over which the message is sent. +## +## hdr: The GTPv1 header. +## +## elements: The set of Information Elements comprising the message. +event gtpv1_create_pdp_ctx_response%(c: connection, hdr: gtpv1_hdr, elements: gtp_create_pdp_ctx_response_elements%); + +## Generated for GTPv1-C Update PDP Context Request messages. +## +## c: The connection over which the message is sent. +## +## hdr: The GTPv1 header. +## +## elements: The set of Information Elements comprising the message. +event gtpv1_update_pdp_ctx_request%(c: connection, hdr: gtpv1_hdr, elements: gtp_update_pdp_ctx_request_elements%); + +## Generated for GTPv1-C Update PDP Context Response messages. +## +## c: The connection over which the message is sent. +## +## hdr: The GTPv1 header. +## +## elements: The set of Information Elements comprising the message. +event gtpv1_update_pdp_ctx_response%(c: connection, hdr: gtpv1_hdr, elements: gtp_update_pdp_ctx_response_elements%); + +## Generated for GTPv1-C Delete PDP Context Request messages. +## +## c: The connection over which the message is sent. +## +## hdr: The GTPv1 header. +## +## elements: The set of Information Elements comprising the message. +event gtpv1_delete_pdp_ctx_request%(c: connection, hdr: gtpv1_hdr, elements: gtp_delete_pdp_ctx_request_elements%); + +## Generated for GTPv1-C Delete PDP Context Response messages. +## +## c: The connection over which the message is sent. +## +## hdr: The GTPv1 header. +## +## elements: The set of Information Elements comprising the message. +event gtpv1_delete_pdp_ctx_response%(c: connection, hdr: gtpv1_hdr, elements: gtp_delete_pdp_ctx_response_elements%); + ## Generated for every packet that has a non-empty transport-layer payload. ## This is a very low-level and expensive event that should be avoided when ## at all possible. It's usually infeasible to handle when processing even diff --git a/src/gtpv1-analyzer.pac b/src/gtpv1-analyzer.pac index 08fbdef74a..51d28123cb 100644 --- a/src/gtpv1-analyzer.pac +++ b/src/gtpv1-analyzer.pac @@ -1,4 +1,602 @@ +%code{ +RecordVal* BuildGTPv1Hdr(const GTPv1_Header* pdu) + { + RecordVal* rv = new RecordVal(BifType::Record::gtpv1_hdr); + + rv->Assign(0, new Val(pdu->version(), TYPE_COUNT)); + rv->Assign(1, new Val(pdu->pt_flag(), TYPE_BOOL)); + rv->Assign(2, new Val(pdu->rsv(), TYPE_BOOL)); + rv->Assign(3, new Val(pdu->e_flag(), TYPE_BOOL)); + rv->Assign(4, new Val(pdu->s_flag(), TYPE_BOOL)); + rv->Assign(5, new Val(pdu->pn_flag(), TYPE_BOOL)); + rv->Assign(6, new Val(pdu->msg_type(), TYPE_COUNT)); + rv->Assign(7, new Val(pdu->length(), TYPE_COUNT)); + rv->Assign(8, new Val(pdu->teid(), TYPE_COUNT)); + + if ( pdu->has_opt() ) + { + rv->Assign(9, new Val(pdu->opt_hdr()->seq(), TYPE_COUNT)); + rv->Assign(10, new Val(pdu->opt_hdr()->n_pdu(), TYPE_COUNT)); + rv->Assign(11, new Val(pdu->opt_hdr()->next_type(), TYPE_COUNT)); + } + + return rv; + } + +Val* BuildIMSI(const InformationElement* ie) + { + return new Val(ie->imsi()->value(), TYPE_COUNT); + } + +Val* BuildRAI(const InformationElement* ie) + { + RecordVal* ev = new RecordVal(BifType::Record::gtp_rai); + ev->Assign(0, new Val(ie->rai()->mcc(), TYPE_COUNT)); + ev->Assign(1, new Val(ie->rai()->mnc(), TYPE_COUNT)); + ev->Assign(2, new Val(ie->rai()->lac(), TYPE_COUNT)); + ev->Assign(3, new Val(ie->rai()->rac(), TYPE_COUNT)); + return ev; + } + +Val* BuildRecovery(const InformationElement* ie) + { + return new Val(ie->recovery()->restart_counter(), TYPE_COUNT); + } + +Val* BuildSelectionMode(const InformationElement* ie) + { + return new Val(ie->selection_mode()->mode(), TYPE_COUNT); + } + +Val* BuildTEID1(const InformationElement* ie) + { + return new Val(ie->teid1()->value(), TYPE_COUNT); + } + +Val* BuildTEID_ControlPlane(const InformationElement* ie) + { + return new Val(ie->teidcp()->value(), TYPE_COUNT); + } + +Val* BuildNSAPI(const InformationElement* ie) + { + return new Val(ie->nsapi()->nsapi(), TYPE_COUNT); + } + +Val* BuildChargingCharacteristics(const InformationElement* ie) + { + return new Val(ie->charging_characteristics()->value(), TYPE_COUNT); + } + +Val* BuildTraceReference(const InformationElement* ie) + { + return new Val(ie->trace_reference()->value(), TYPE_COUNT); + } + +Val* BuildTraceType(const InformationElement* ie) + { + return new Val(ie->trace_type()->value(), TYPE_COUNT); + } + +Val* BuildEndUserAddr(const InformationElement* ie) + { + RecordVal* ev = new RecordVal(BifType::Record::gtp_end_user_addr); + ev->Assign(0, new Val(ie->end_user_addr()->pdp_type_org(), TYPE_COUNT)); + ev->Assign(1, new Val(ie->end_user_addr()->pdp_type_num(), TYPE_COUNT)); + + int len = ie->end_user_addr()->pdp_addr().length(); + + if ( len > 0 ) + { + const uint8* d = ie->end_user_addr()->pdp_addr().data(); + + switch ( ie->end_user_addr()->pdp_type_num() ) { + case 0x21: + ev->Assign(2, new AddrVal( + IPAddr(IPv4, (const uint32*) d, IPAddr::Network))); + break; + case 0x57: + ev->Assign(2, new AddrVal( + IPAddr(IPv6, (const uint32*) d, IPAddr::Network))); + break; + default: + ev->Assign(3, new StringVal( + new BroString((const u_char*) d, len, 0))); + break; + } + } + + return ev; + } + +Val* BuildAccessPointName(const InformationElement* ie) + { + BroString* bs = new BroString((const u_char*) ie->ap_name()->value().data(), + ie->ap_name()->value().length(), 0); + return new StringVal(bs); + } + +Val* BuildProtoConfigOptions(const InformationElement* ie) + { + const u_char* d = (const u_char*) ie->proto_config_opts()->value().data(); + int len = ie->proto_config_opts()->value().length(); + return new StringVal(new BroString(d, len, 0)); + } + +Val* BuildGSN_Addr(const InformationElement* ie) + { + RecordVal* ev = new RecordVal(BifType::Record::gtp_gsn_addr); + + int len = ie->gsn_addr()->value().length(); + const uint8* d = ie->gsn_addr()->value().data(); + + if ( len == 4 ) + ev->Assign(0, new AddrVal( + IPAddr(IPv4, (const uint32*) d, IPAddr::Network))); + else if ( len == 16 ) + ev->Assign(0, new AddrVal( + IPAddr(IPv6, (const uint32*) d, IPAddr::Network))); + else + ev->Assign(1, new StringVal(new BroString((const u_char*) d, len, 0))); + + return ev; + } + +Val* BuildMSISDN(const InformationElement* ie) + { + const u_char* d = (const u_char*) ie->msisdn()->value().data(); + int len = ie->msisdn()->value().length(); + return new StringVal(new BroString(d, len, 0)); + } + +Val* BuildQoS_Profile(const InformationElement* ie) + { + RecordVal* ev = new RecordVal(BifType::Record::gtp_qos_profile); + + const u_char* d = (const u_char*) ie->qos_profile()->data().data(); + int len = ie->qos_profile()->data().length(); + + ev->Assign(0, new Val(ie->qos_profile()->alloc_retention_priority(), + TYPE_COUNT)); + ev->Assign(1, new StringVal(new BroString(d, len, 0))); + + return ev; + } + +Val* BuildTrafficFlowTemplate(const InformationElement* ie) + { + const uint8* d = ie->traffic_flow_template()->value().data(); + int len = ie->traffic_flow_template()->value().length(); + return new StringVal(new BroString((const u_char*) d, len, 0)); + } + +Val* BuildTriggerID(const InformationElement* ie) + { + const uint8* d = ie->trigger_id()->value().data(); + int len = ie->trigger_id()->value().length(); + return new StringVal(new BroString((const u_char*) d, len, 0)); + } + +Val* BuildOMC_ID(const InformationElement* ie) + { + const uint8* d = ie->omc_id()->value().data(); + int len = ie->omc_id()->value().length(); + return new StringVal(new BroString((const u_char*) d, len, 0)); + } + +Val* BuildPrivateExt(const InformationElement* ie) + { + RecordVal* ev = new RecordVal(BifType::Record::gtp_private_extension); + + const uint8* d = ie->private_ext()->value().data(); + int len = ie->private_ext()->value().length(); + + ev->Assign(0, new Val(ie->private_ext()->id(), TYPE_COUNT)); + ev->Assign(1, new StringVal(new BroString((const u_char*) d, len, 0))); + + return ev; + } + +Val* BuildCause(const InformationElement* ie) + { + return new Val(ie->cause()->value(), TYPE_COUNT); + } + +Val* BuildReorderReq(const InformationElement* ie) + { + return new Val(ie->reorder_req()->req(), TYPE_BOOL); + } + +Val* BuildChargingID(const InformationElement* ie) + { + return new Val(ie->charging_id()->value(), TYPE_COUNT);; + } + +Val* BuildChargingGatewayAddr(const InformationElement* ie) + { + const uint8* d = ie->charging_gateway_addr()->value().data(); + int len = ie->charging_gateway_addr()->value().length(); + if ( len == 4 ) + return new AddrVal(IPAddr(IPv4, (const uint32*) d, IPAddr::Network)); + else if ( len == 16 ) + return new AddrVal(IPAddr(IPv6, (const uint32*) d, IPAddr::Network)); + else + return 0; + } + +Val* BuildTeardownInd(const InformationElement* ie) + { + return new Val(ie->teardown_ind()->ind(), TYPE_BOOL); + } + +void CreatePDP_Request(const BroAnalyzer& a, const GTPv1_Header* pdu) + { + if ( ! ::gtpv1_create_pdp_ctx_request ) return; + + RecordVal* rv = new RecordVal( + BifType::Record::gtp_create_pdp_ctx_request_elements); + + const vector * v = pdu->create_pdp_ctx_request(); + + bool second_nsapi = false; + bool second_gsn_addr = false; + + for ( size_t i = 0; i < v->size(); ++i ) + { + const InformationElement* ie = (*v)[i]; + + switch ( ie->type() ) { + case GTPv1::TYPE_IMSI: + rv->Assign(0, BuildIMSI(ie)); + break; + case GTPv1::TYPE_RAI: + rv->Assign(1, BuildRAI(ie)); + break; + case GTPv1::TYPE_RECOVERY: + rv->Assign(2, BuildRecovery(ie)); + break; + case GTPv1::TYPE_SELECTION_MODE: + rv->Assign(3, BuildSelectionMode(ie)); + break; + case GTPv1::TYPE_TEID1: + rv->Assign(4, BuildTEID1(ie)); + break; + case GTPv1::TYPE_TEID_CONTROL_PLANE: + rv->Assign(5, BuildTEID_ControlPlane(ie)); + break; + case GTPv1::TYPE_NSAPI: + if ( second_nsapi ) + rv->Assign(7, BuildNSAPI(ie)); + else + { + second_nsapi = true; + rv->Assign(6, BuildNSAPI(ie)); + } + break; + case GTPv1::TYPE_CHARGING_CHARACTERISTICS: + rv->Assign(8, BuildChargingCharacteristics(ie)); + break; + case GTPv1::TYPE_TRACE_REFERENCE: + rv->Assign(9, BuildTraceReference(ie)); + break; + case GTPv1::TYPE_TRACE_TYPE: + rv->Assign(10, BuildTraceType(ie)); + break; + case GTPv1::TYPE_END_USER_ADDR: + rv->Assign(11, BuildEndUserAddr(ie)); + break; + case GTPv1::TYPE_ACCESS_POINT_NAME: + rv->Assign(12, BuildAccessPointName(ie)); + break; + case GTPv1::TYPE_PROTO_CONFIG_OPTIONS: + rv->Assign(13, BuildProtoConfigOptions(ie)); + break; + case GTPv1::TYPE_GSN_ADDR: + if ( second_gsn_addr ) + rv->Assign(15, BuildGSN_Addr(ie)); + else + { + second_gsn_addr = true; + rv->Assign(14, BuildGSN_Addr(ie)); + } + break; + case GTPv1::TYPE_MSISDN: + rv->Assign(16, BuildMSISDN(ie)); + break; + case GTPv1::TYPE_QOS_PROFILE: + rv->Assign(17, BuildQoS_Profile(ie)); + break; + case GTPv1::TYPE_TRAFFIC_FLOW_TEMPLATE: + rv->Assign(18, BuildTrafficFlowTemplate(ie)); + break; + case GTPv1::TYPE_TRIGGER_ID: + rv->Assign(19, BuildTriggerID(ie)); + break; + case GTPv1::TYPE_OMC_ID: + rv->Assign(20, BuildOMC_ID(ie)); + break; + case GTPv1::TYPE_PRIVATE_EXT: + rv->Assign(21, BuildPrivateExt(ie)); + break; + default: + a->Weird(fmt("gtp_invalid_info_element_%d", (*v)[i]->type())); + break; + } + } + + BifEvent::generate_gtpv1_create_pdp_ctx_request(a, a->Conn(), + BuildGTPv1Hdr(pdu), rv); + } + +void CreatePDP_Response(const BroAnalyzer& a, const GTPv1_Header* pdu) + { + if ( ! ::gtpv1_create_pdp_ctx_response ) return; + + RecordVal* rv = new RecordVal( + BifType::Record::gtp_create_pdp_ctx_response_elements); + + const vector * v = pdu->create_pdp_ctx_response(); + + bool second_gsn_addr = false; + + for ( size_t i = 0; i < v->size(); ++i ) + { + const InformationElement* ie = (*v)[i]; + + switch ( ie->type() ) { + case GTPv1::TYPE_CAUSE: + rv->Assign(0, BuildCause(ie)); + break; + case GTPv1::TYPE_REORDER_REQ: + rv->Assign(1, BuildReorderReq(ie)); + break; + case GTPv1::TYPE_RECOVERY: + rv->Assign(2, BuildRecovery(ie)); + break; + case GTPv1::TYPE_TEID1: + rv->Assign(3, BuildTEID1(ie)); + break; + case GTPv1::TYPE_TEID_CONTROL_PLANE: + rv->Assign(4, BuildTEID_ControlPlane(ie)); + break; + case GTPv1::TYPE_CHARGING_ID: + rv->Assign(5, BuildChargingID(ie)); + break; + case GTPv1::TYPE_END_USER_ADDR: + rv->Assign(6, BuildEndUserAddr(ie)); + break; + case GTPv1::TYPE_PROTO_CONFIG_OPTIONS: + rv->Assign(7, BuildProtoConfigOptions(ie)); + break; + case GTPv1::TYPE_GSN_ADDR: + if ( second_gsn_addr ) + rv->Assign(9, BuildGSN_Addr(ie)); + else + { + second_gsn_addr = true; + rv->Assign(8, BuildGSN_Addr(ie)); + } + break; + case GTPv1::TYPE_QOS_PROFILE: + rv->Assign(10, BuildQoS_Profile(ie)); + break; + case GTPv1::TYPE_CHARGING_GATEWAY_ADDR: + rv->Assign(11, BuildChargingGatewayAddr(ie)); + break; + case GTPv1::TYPE_PRIVATE_EXT: + rv->Assign(12, BuildPrivateExt(ie)); + break; + default: + a->Weird(fmt("gtp_invalid_info_element_%d", (*v)[i]->type())); + break; + } + } + + BifEvent::generate_gtpv1_create_pdp_ctx_response(a, a->Conn(), + BuildGTPv1Hdr(pdu), rv); + } + +void UpdatePDP_Request(const BroAnalyzer& a, const GTPv1_Header* pdu) + { + if ( ! ::gtpv1_update_pdp_ctx_request ) return; + + RecordVal* rv = new RecordVal( + BifType::Record::gtp_update_pdp_ctx_request_elements); + + const vector * v = pdu->update_pdp_ctx_request(); + + bool second_gsn_addr = false; + + for ( size_t i = 0; i < v->size(); ++i ) + { + const InformationElement* ie = (*v)[i]; + + switch ( ie->type() ) { + case GTPv1::TYPE_IMSI: + rv->Assign(0, BuildIMSI(ie)); + break; + case GTPv1::TYPE_RAI: + rv->Assign(1, BuildRAI(ie)); + break; + case GTPv1::TYPE_RECOVERY: + rv->Assign(2, BuildRecovery(ie)); + break; + case GTPv1::TYPE_TEID1: + rv->Assign(3, BuildTEID1(ie)); + break; + case GTPv1::TYPE_TEID_CONTROL_PLANE: + rv->Assign(4, BuildTEID_ControlPlane(ie)); + break; + case GTPv1::TYPE_NSAPI: + rv->Assign(5, BuildNSAPI(ie)); + break; + case GTPv1::TYPE_TRACE_REFERENCE: + rv->Assign(6, BuildTraceReference(ie)); + break; + case GTPv1::TYPE_TRACE_TYPE: + rv->Assign(7, BuildTraceType(ie)); + break; + case GTPv1::TYPE_GSN_ADDR: + if ( second_gsn_addr ) + rv->Assign(9, BuildGSN_Addr(ie)); + else + { + second_gsn_addr = true; + rv->Assign(8, BuildGSN_Addr(ie)); + } + break; + case GTPv1::TYPE_QOS_PROFILE: + rv->Assign(10, BuildQoS_Profile(ie)); + break; + case GTPv1::TYPE_TRAFFIC_FLOW_TEMPLATE: + rv->Assign(11, BuildTrafficFlowTemplate(ie)); + break; + case GTPv1::TYPE_TRIGGER_ID: + rv->Assign(12, BuildTriggerID(ie)); + break; + case GTPv1::TYPE_OMC_ID: + rv->Assign(13, BuildOMC_ID(ie)); + break; + case GTPv1::TYPE_PRIVATE_EXT: + rv->Assign(14, BuildPrivateExt(ie)); + break; + case GTPv1::TYPE_END_USER_ADDR: + rv->Assign(15, BuildEndUserAddr(ie)); + break; + default: + a->Weird(fmt("gtp_invalid_info_element_%d", (*v)[i]->type())); + break; + } + } + + BifEvent::generate_gtpv1_update_pdp_ctx_request(a, a->Conn(), + BuildGTPv1Hdr(pdu), rv); + } + +void UpdatePDP_Response(const BroAnalyzer& a, const GTPv1_Header* pdu) + { + if ( ! ::gtpv1_update_pdp_ctx_response ) return; + + RecordVal* rv = new RecordVal( + BifType::Record::gtp_update_pdp_ctx_response_elements); + + const vector * v = pdu->update_pdp_ctx_response(); + + bool second_gsn_addr = false; + + for ( size_t i = 0; i < v->size(); ++i ) + { + const InformationElement* ie = (*v)[i]; + + switch ( ie->type() ) { + case GTPv1::TYPE_CAUSE: + rv->Assign(0, BuildCause(ie)); + break; + case GTPv1::TYPE_RECOVERY: + rv->Assign(1, BuildRecovery(ie)); + break; + case GTPv1::TYPE_TEID1: + rv->Assign(2, BuildTEID1(ie)); + break; + case GTPv1::TYPE_TEID_CONTROL_PLANE: + rv->Assign(3, BuildTEID_ControlPlane(ie)); + break; + case GTPv1::TYPE_CHARGING_ID: + rv->Assign(4, BuildChargingID(ie)); + break; + case GTPv1::TYPE_GSN_ADDR: + if ( second_gsn_addr ) + rv->Assign(6, BuildGSN_Addr(ie)); + else + { + second_gsn_addr = true; + rv->Assign(5, BuildGSN_Addr(ie)); + } + break; + case GTPv1::TYPE_QOS_PROFILE: + rv->Assign(7, BuildQoS_Profile(ie)); + break; + case GTPv1::TYPE_CHARGING_GATEWAY_ADDR: + rv->Assign(8, BuildChargingGatewayAddr(ie)); + break; + case GTPv1::TYPE_PRIVATE_EXT: + rv->Assign(9, BuildPrivateExt(ie)); + break; + default: + a->Weird(fmt("gtp_invalid_info_element_%d", (*v)[i]->type())); + break; + } + } + + BifEvent::generate_gtpv1_update_pdp_ctx_response(a, a->Conn(), + BuildGTPv1Hdr(pdu), rv); + } + +void DeletePDP_Request(const BroAnalyzer& a, const GTPv1_Header* pdu) + { + if ( ! ::gtpv1_delete_pdp_ctx_request ) return; + + RecordVal* rv = new RecordVal( + BifType::Record::gtp_delete_pdp_ctx_request_elements); + + const vector * v = pdu->delete_pdp_ctx_request(); + + for ( size_t i = 0; i < v->size(); ++i ) + { + const InformationElement* ie = (*v)[i]; + + switch ( ie->type() ) { + case GTPv1::TYPE_TEARDOWN_IND: + rv->Assign(0, BuildTeardownInd(ie)); + break; + case GTPv1::TYPE_NSAPI: + rv->Assign(1, BuildNSAPI(ie)); + break; + case GTPv1::TYPE_PRIVATE_EXT: + rv->Assign(2, BuildPrivateExt(ie)); + break; + default: + a->Weird(fmt("gtp_invalid_info_element_%d", (*v)[i]->type())); + break; + } + } + + BifEvent::generate_gtpv1_delete_pdp_ctx_request(a, a->Conn(), + BuildGTPv1Hdr(pdu), rv); + } + +void DeletePDP_Response(const BroAnalyzer& a, const GTPv1_Header* pdu) + { + if ( ! ::gtpv1_delete_pdp_ctx_response ) return; + + RecordVal* rv = new RecordVal( + BifType::Record::gtp_delete_pdp_ctx_response_elements); + + const vector * v = pdu->delete_pdp_ctx_response(); + + for ( size_t i = 0; i < v->size(); ++i ) + { + const InformationElement* ie = (*v)[i]; + + switch ( ie->type() ) { + case GTPv1::TYPE_CAUSE: + rv->Assign(0, BuildCause(ie)); + break; + case GTPv1::TYPE_PRIVATE_EXT: + rv->Assign(1, BuildPrivateExt(ie)); + break; + default: + a->Weird(fmt("gtp_invalid_info_element_%d", (*v)[i]->type())); + break; + } + } + + BifEvent::generate_gtpv1_delete_pdp_ctx_response(a, a->Conn(), + BuildGTPv1Hdr(pdu), rv); + } +%} + connection GTPv1_Conn(bro_analyzer: BroAnalyzer) { upflow = GTPv1_Flow(true); @@ -27,17 +625,17 @@ connection GTPv1_Conn(bro_analyzer: BroAnalyzer) %} } -%code{ -inline void violate(const char* r, const BroAnalyzer& a, const bytestring& p) - { - a->ProtocolViolation(r, (const char*) p.data(), p.length()); - } -%} - flow GTPv1_Flow(is_orig: bool) { datagram = GTPv1_Header withcontext(connection, this); + function violate(r: string, pdu: GTPv1_Header): void + %{ + BroAnalyzer a = connection()->bro_analyzer(); + const_bytestring b = ${pdu.sourcedata}; + a->ProtocolViolation(r.c_str(), (const char*) b.begin(), b.length()); + %} + function process_gtpv1(pdu: GTPv1_Header): bool %{ BroAnalyzer a = connection()->bro_analyzer(); @@ -55,14 +653,14 @@ flow GTPv1_Flow(is_orig: bool) if ( e && e->LastType() == BifEnum::Tunnel::GTPv1 ) { // GTP is never tunneled in GTP so, this must be a regular packet - violate("GTP-in-GTP", a, ${pdu.packet}); + violate("GTP-in-GTP", pdu); return false; } if ( ${pdu.version} != 1 ) { // Only know of GTPv1 with Version == 1 - violate("GTPv1 bad Version", a, ${pdu.packet}); + violate("GTPv1 bad Version", pdu); return false; } @@ -72,21 +670,46 @@ flow GTPv1_Flow(is_orig: bool) return false; } - if ( ${pdu.e_flag} ) - { - // TODO: can't currently parse past extension headers - return false; - } + if ( ::gtpv1_message ) + BifEvent::generate_gtpv1_message(a, c, BuildGTPv1Hdr(pdu)); - if ( ${pdu.msg_type} != 0xff ) - { - // Only interested in decapsulating user plane data beyond here. + switch ( ${pdu.msg_type} ) { + case 16: + CreatePDP_Request(a, pdu); + return true; + case 17: + CreatePDP_Response(a, pdu); + return true; + case 18: + UpdatePDP_Request(a, pdu); + return true; + case 19: + UpdatePDP_Response(a, pdu); + return true; + case 20: + DeletePDP_Request(a, pdu); + return true; + case 21: + DeletePDP_Response(a, pdu); + return true; + case 255: + return process_g_pdu(pdu); + default: return false; - } + } + + return false; + %} + + function process_g_pdu(pdu: GTPv1_Header): bool + %{ + BroAnalyzer a = connection()->bro_analyzer(); + Connection *c = a->Conn(); + const EncapsulationStack* e = c->GetEncapsulation(); if ( ${pdu.packet}.length() < (int)sizeof(struct ip) ) { - violate("Truncated GTPv1", a, ${pdu.packet}); + violate("Truncated GTPv1", pdu); return false; } @@ -94,7 +717,7 @@ flow GTPv1_Flow(is_orig: bool) if ( ip->ip_v != 4 && ip->ip_v != 6 ) { - violate("non-IP packet in GTPv1", a, ${pdu.packet}); + violate("non-IP packet in GTPv1", pdu); return false; } @@ -113,10 +736,10 @@ flow GTPv1_Flow(is_orig: bool) } else if ( result < 0 ) - violate("Truncated GTPv1", a, ${pdu.packet}); + violate("Truncated GTPv1", pdu); else - violate("GTPv1 payload length", a, ${pdu.packet}); + violate("GTPv1 payload length", pdu); if ( result != 0 ) { @@ -125,37 +748,16 @@ flow GTPv1_Flow(is_orig: bool) } if ( ::gtpv1_g_pdu_packet ) - { - RecordVal* rv = new RecordVal(gtpv1_hdr_type); - - rv->Assign(0, new Val(${pdu.version}, TYPE_COUNT)); - rv->Assign(1, new Val(${pdu.pt_flag}, TYPE_BOOL)); - rv->Assign(2, new Val(${pdu.rsv}, TYPE_BOOL)); - rv->Assign(3, new Val(${pdu.e_flag}, TYPE_BOOL)); - rv->Assign(4, new Val(${pdu.s_flag}, TYPE_BOOL)); - rv->Assign(5, new Val(${pdu.pn_flag}, TYPE_BOOL)); - rv->Assign(6, new Val(${pdu.msg_type}, TYPE_COUNT)); - rv->Assign(7, new Val(ntohs(${pdu.length}), TYPE_COUNT)); - rv->Assign(8, new Val(ntohl(${pdu.teid}), TYPE_COUNT)); - - if ( ${pdu.has_opt} ) - { - rv->Assign(9, new Val(ntohs(${pdu.opt_hdr.seq}), TYPE_COUNT)); - rv->Assign(10, new Val(${pdu.opt_hdr.n_pdu}, TYPE_COUNT)); - rv->Assign(11, new Val(${pdu.opt_hdr.next_type}, TYPE_COUNT)); - } - - BifEvent::generate_gtpv1_g_pdu_packet(a, c, rv, + BifEvent::generate_gtpv1_g_pdu_packet(a, c, BuildGTPv1Hdr(pdu), inner->BuildPktHdrVal()); - } EncapsulatingConn ec(c, BifEnum::Tunnel::GTPv1); sessions->DoNextInnerPacket(network_time(), 0, inner, e, ec); - return (result == 0) ? true : false; + return true; %} - }; refine typeattr GTPv1_Header += &let { proc_gtpv1 = $context.flow.process_gtpv1(this); }; + diff --git a/src/gtpv1-protocol.pac b/src/gtpv1-protocol.pac index 5bf31a48ee..0a87665fd2 100644 --- a/src/gtpv1-protocol.pac +++ b/src/gtpv1-protocol.pac @@ -4,11 +4,27 @@ type GTPv1_Header = record { msg_type: uint8; length: uint16; teid: uint32; + opt: case has_opt of { true -> opt_hdr: GTPv1_Opt_Header; false -> no_opt: empty; - } &requires(has_opt); - packet: bytestring &restofdata; + }; + + ext: case e_flag of { + true -> ext_hdrs: GTPv1_Ext_Header[] &until($element.next_type == 0); + false -> no_ext: empty; + }; + + msg: case msg_type of { + 16 -> create_pdp_ctx_request: InformationElement[]; + 17 -> create_pdp_ctx_response: InformationElement[]; + 18 -> update_pdp_ctx_request: InformationElement[]; + 19 -> update_pdp_ctx_response: InformationElement[]; + 20 -> delete_pdp_ctx_request: InformationElement[]; + 21 -> delete_pdp_ctx_response: InformationElement[]; + 255 -> packet: bytestring &restofdata; + default -> unknown: bytestring &restofdata; + }; } &let { version: uint8 = (flags & 0xE0) >> 5; @@ -18,10 +34,463 @@ type GTPv1_Header = record { s_flag: bool = flags & 0x02; pn_flag: bool = flags & 0x01; has_opt: bool = flags & 0x07; -} &byteorder = littleendian; +} &byteorder = bigendian, &exportsourcedata; type GTPv1_Opt_Header = record { seq: uint16; n_pdu: uint8; next_type: uint8; -} +}; + +type GTPv1_Ext_Header = record { + length: uint8; + contents: bytestring &length=(length * 4 - 2); + next_type: uint8; +}; + +enum InfoElementType { + TYPE_CAUSE = 1, + TYPE_IMSI = 2, + TYPE_RAI = 3, + TYPE_TLLI = 4, + TYPE_P_TMSI = 5, + TYPE_REORDER_REQ = 8, + TYPE_AUTHN_TRIPLET = 9, + TYPE_MAP_CAUSE = 11, + TYPE_P_TMSI_SIG = 12, + TYPE_MS_VALID = 13, + TYPE_RECOVERY = 14, + TYPE_SELECTION_MODE = 15, + TYPE_TEID1 = 16, + TYPE_TEID_CONTROL_PLANE = 17, + TYPE_TEID2 = 18, + TYPE_TEARDOWN_IND = 19, + TYPE_NSAPI = 20, + TYPE_RANAP_CAUSE = 21, + TYPE_RAB_CTX = 22, + TYPE_RADIO_PRIORITY_SMS = 23, + TYPE_RADIO_PRIORITY = 24, + TYPE_PACKET_FLOW_ID = 25, + TYPE_CHARGING_CHARACTERISTICS = 26, + TYPE_TRACE_REFERENCE = 27, + TYPE_TRACE_TYPE = 28, + TYPE_MS_NOT_REACHABLE_REASON = 29, + TYPE_CHARGING_ID = 127, + TYPE_END_USER_ADDR = 128, + TYPE_MM_CTX = 129, + TYPE_PDP_CTX = 130, + TYPE_ACCESS_POINT_NAME = 131, + TYPE_PROTO_CONFIG_OPTIONS = 132, + TYPE_GSN_ADDR = 133, + TYPE_MSISDN = 134, + TYPE_QOS_PROFILE = 135, + TYPE_AUTHN_QUINTUPLET = 136, + TYPE_TRAFFIC_FLOW_TEMPLATE = 137, + TYPE_TARGET_ID = 138, + TYPE_UTRAN_TRANSPARENT_CONTAINER = 139, + TYPE_RAB_SETUP_INFO = 140, + TYPE_EXT_HEADER_TYPE_LIST = 141, + TYPE_TRIGGER_ID = 142, + TYPE_OMC_ID = 143, + TYPE_CHARGING_GATEWAY_ADDR = 251, + TYPE_PRIVATE_EXT = 255, +}; + +type InformationElement = record { + type: uint8; + + len: case is_tlv of { + true -> tlv_len: uint16; + false -> no_len: empty; + }; + + value: case type of { + TYPE_CAUSE -> cause: Cause; + TYPE_IMSI -> imsi: IMSI; + TYPE_RAI -> rai: RAI; + TYPE_TLLI -> tlli: TLLI; + TYPE_P_TMSI -> p_tmsi: P_TMSI; + TYPE_REORDER_REQ -> reorder_req: ReorderReq; + TYPE_AUTHN_TRIPLET -> authn_triplet: AuthN_Triplet; + TYPE_MAP_CAUSE -> map_cause: MAP_Cause; + TYPE_P_TMSI_SIG -> p_tmsi_sig: P_TMSI_Sig; + TYPE_MS_VALID -> ms_valid: MS_Valid; + TYPE_RECOVERY -> recovery: Recovery; + TYPE_SELECTION_MODE -> selection_mode: SelectionMode; + TYPE_TEID1 -> teid1: TEID1; + TYPE_TEID_CONTROL_PLANE -> teidcp: TEID_ControlPlane; + TYPE_TEID2 -> teid2: TEID2; + TYPE_TEARDOWN_IND -> teardown_ind: TeardownInd; + TYPE_NSAPI -> nsapi: NSAPI; + TYPE_RANAP_CAUSE -> ranap_cause: RANAP_Cause; + TYPE_RAB_CTX -> rab_ctx: RAB_Ctx; + TYPE_RADIO_PRIORITY_SMS -> radio_priority_sms: RadioPrioritySMS; + TYPE_RADIO_PRIORITY -> radio_priority: RadioPriority; + TYPE_PACKET_FLOW_ID -> packet_flow_id: PacketFlowID; + TYPE_CHARGING_CHARACTERISTICS -> charging_characteristics: ChargingCharacteristics; + TYPE_TRACE_REFERENCE -> trace_reference: TraceReference; + TYPE_TRACE_TYPE -> trace_type: TraceType; + TYPE_MS_NOT_REACHABLE_REASON -> ms_not_reachable_reason: MS_Not_Reachable_Reason; + TYPE_CHARGING_ID -> charging_id: ChargingID; + TYPE_END_USER_ADDR -> end_user_addr: EndUserAddr(length); + TYPE_MM_CTX -> mm_ctx: MM_Ctx(length); + TYPE_PDP_CTX -> pdp_ctx: PDP_Ctx(length); + TYPE_ACCESS_POINT_NAME -> ap_name: AP_Name(length); + TYPE_PROTO_CONFIG_OPTIONS -> proto_config_opts: ProtoConfigOpts(length); + TYPE_GSN_ADDR -> gsn_addr: GSN_Addr(length); + TYPE_MSISDN -> msisdn: MSISDN(length); + TYPE_QOS_PROFILE -> qos_profile: QoS_Profile(length); + TYPE_AUTHN_QUINTUPLET -> authn_quintuplet: AuthN_Quintuplet(length); + TYPE_TRAFFIC_FLOW_TEMPLATE -> traffic_flow_template: TrafficFlowTemplate(length); + TYPE_TARGET_ID -> target_id: TargetID(length); + TYPE_UTRAN_TRANSPARENT_CONTAINER -> utran_transparent_container: UTRAN_TransparentContainer(length); + TYPE_RAB_SETUP_INFO -> rab_setup_info: RAB_SetupInfo(length); + TYPE_EXT_HEADER_TYPE_LIST -> ext_hdr_type_list: ExtHdrTypeList(length); + TYPE_TRIGGER_ID -> trigger_id: TriggerID(length); + TYPE_OMC_ID -> omc_id: OMC_ID(length); + TYPE_CHARGING_GATEWAY_ADDR -> charging_gateway_addr: ChargingGatewayAddr(length); + TYPE_PRIVATE_EXT -> private_ext: PrivateExt(length); + default -> unknown: bytestring &length=length; + } &requires(length); + +} &let { + is_tlv: bool = (type & 0x80); + length: uint16 = is_tlv ? tlv_len : Get_IE_Len(type); +}; + +type Cause = record { + value: uint8; +}; + +function decode_imsi(v: uint8[8]): uint64 + %{ + uint64 rval = 0; + uint8 digits[16]; + for ( size_t i = 0; i < v->size(); ++i ) + { + digits[2 * i + 1] = ((*v)[i] & 0xf0) >> 4; + digits[2 * i] = (*v)[i] & 0x0f; + } + int power = 0; + for ( int i = 15; i >= 0; --i ) + { + if ( digits[i] == 0x0f ) continue; + rval += digits[i] * pow(10, power); + ++power; + } + return rval; + %} + +type IMSI = record { + tbcd_encoded_value: uint8[8]; +} &let { + value: uint64 = decode_imsi(tbcd_encoded_value); +}; + +type RAI = record { + mcc2_mcc1: uint8; + mnc3_mcc3: uint8; + mnc2_mnc1: uint8; + lac: uint16; + rac: uint8; +} &let { + mcc1: uint8 = (mcc2_mcc1 & 0x0f); + mcc2: uint8 = ((mcc2_mcc1 & 0xf0)>>4); + mcc3: uint8 = (mnc3_mcc3 & 0x0f); + mcc: uint16 = mcc1 * 100 + mcc2 * 10 + mcc3; + mnc1: uint8 = (mnc2_mnc1 & 0x0f); + mnc2: uint8 = ((mnc2_mnc1 & 0xf0)>>4); + mnc3: uint8 = (mnc3_mcc3 & 0xf0)>>4; + mnc: uint16 = (mnc3 & 0x0f) ? mnc1 * 10 + mnc2 : mnc1 * 100 + mnc2 * 10 + mnc3; +}; + +type TLLI = record { + value: uint32; +}; + +type P_TMSI = record { + value: uint32; +}; + +type ReorderReq = record { + value: uint8; +} &let { + req: bool = value & 0x01; +}; + +type AuthN_Triplet = record { + rand: bytestring &length=16; + sres: uint32; + kc: uint64; +}; + +type MAP_Cause = record { + value: uint8; +}; + +type P_TMSI_Sig = record { + value: bytestring &length=3; +}; + +type MS_Valid = record { + value: uint8; +}; + +type Recovery = record { + restart_counter: uint8; +}; + +type SelectionMode = record { + value: uint8; +} &let { + mode: uint8 = value & 0x01; +}; + +type TEID1 = record { + value: uint32; +}; + +type TEID_ControlPlane = record { + value: uint32; +}; + +type TEID2 = record { + spare_nsapi: uint8; + teid2: uint32; +}; + +type TeardownInd = record { + value: uint8; +} &let { + ind: bool = value & 0x01; +}; + +type NSAPI = record { + xxxx_nsapi: uint8; +} &let { + nsapi: uint8 = xxxx_nsapi & 0x0f; +}; + +type RANAP_Cause = record { + value: uint8; +}; + +type RAB_Ctx = record { + spare_nsapi: uint8; + dl_gtpu_seq_num: uint16; + ul_gtpu_seq_num: uint16; + dl_pdcp_seq_num: uint16; + ul_pdcp_seq_num: uint16; +}; + +type RadioPrioritySMS = record { + value: uint8; +}; + +type RadioPriority = record { + nsapi_radio_priority: uint8; +}; + +type PacketFlowID = record { + rsv_nsapi: uint8; + packet_flow_id: uint8; +}; + +type ChargingCharacteristics = record { + value: uint16; +}; + +type TraceReference = record { + value: uint16; +}; + +type TraceType = record { + value: uint16; +}; + +type MS_Not_Reachable_Reason = record { + value: uint8; +}; + +type ChargingID = record { + value: uint32; +}; + +type EndUserAddr(n: uint16) = record { + spare_pdp_type_org: uint8; + pdp_type_num: uint8; + pdp_addr: bytestring &length=(n-2); +} &let { + pdp_type_org: uint8 = spare_pdp_type_org & 0x0f; +}; + +type MM_Ctx(n: uint16) = record { + spare_cksn_ksi: uint8; + security_params: uint8; + + keys: case gsm_keys of { + true -> kc: uint64; + false -> ck_ik: bytestring &length=32; + }; + + vector_len: case have_triplets of { + true -> no_quint_len: empty; + false -> quint_len: uint16; + }; + + vectors: case have_triplets of { + true -> triplets: AuthN_Triplet[num_vectors]; + false -> quintuplets: AuthN_Quintuplet(quint_len)[num_vectors]; + } &requires(num_vectors); + + drx_param: uint16; + ms_net_capability_len: uint8; + ms_net_capability: bytestring &length=ms_net_capability_len; + container_len: uint16; + container: bytestring &length=container_len; + +} &let { + security_mode: uint8 = security_params >> 6; + gsm_keys: bool = security_mode & 0x01; + have_triplets: bool = (security_mode == 1); + num_vectors: uint8 = (security_params & 0x38) >> 3; +}; + +type PDP_Ctx(n: uint16) = record { + rsv_nsapi: uint8; + xxxx_sapi: uint8; + qos_sub_len: uint8; + qos_sub: QoS_Profile(qos_sub_len); + qos_req_len: uint8; + qos_req: QoS_Profile(qos_req_len); + qos_neg_len: uint8; + qos_neg: QoS_Profile(qos_neg_len); + snd: uint16; + snu: uint16; + send_npdu_num: uint8; + recv_npdu_num: uint8; + ul_teid_cp: TEID_ControlPlane; + ul_teid_data1: TEID1; + pdp_ctx_id: uint8; + spare_pdp_type_org: uint8; + pdp_type_num: uint8; + pdp_addr_len: uint8; + pdp_addr: bytestring &length=pdp_addr_len; + ggsn_addr_control_plane_len: uint8; + ggsn_addr_control_plane: bytestring &length=ggsn_addr_control_plane_len; + ggsn_addr_user_traffic_len: uint8; + ggsn_addr_user_traffic: bytestring &length=ggsn_addr_user_traffic_len; + apn_len: uint8; + apn: AP_Name(apn_len); + spare_transaction_id: uint8; + transaction_id: uint8; +}; + +type AP_Name(n: uint16) = record { + value: bytestring &length=n; +}; + +type ProtoConfigOpts(n: uint16) = record { + value: bytestring &length=n; +}; + +type GSN_Addr(n: uint16) = record { + value: bytestring &length=n; +}; + +type MSISDN(n: uint16) = record { + value: bytestring &length=n; +}; + +type QoS_Profile(n: uint16) = record { + alloc_retention_priority: uint8; + data: bytestring &length=n-1; +}; + +type AuthN_Quintuplet(n: uint16) = record { + rand: bytestring &length=16; + xres_len: uint8; + xres: bytestring &length=xres_len; + ck: bytestring &length=16; + ik: bytestring &length=16; + autn_len: uint8; + autn: bytestring &length=autn_len; +}; + +type TrafficFlowTemplate(n: uint16) = record { + value: bytestring &length=n; +}; + +type TargetID(n: uint16) = record { + value: bytestring &length=n; +}; + +type UTRAN_TransparentContainer(n: uint16) = record { + value: bytestring &length=n; +}; + +type RAB_SetupInfo(n: uint16) = record { + xxxx_nsapi: uint8; + + have_teid: case n of { + 1 -> no_teid: empty; + default -> teid: TEID1; + }; + + have_addr: case n of { + 1 -> no_addr: empty; + default -> rnc_addr: bytestring &length=n-5; + }; +}; + +type ExtHdrTypeList(n: uint16) = record { + value: uint8[n]; +}; + +type TriggerID(n: uint16) = record { + value: bytestring &length=n; +}; + +type OMC_ID(n: uint16) = record { + value: bytestring &length=n; +}; + +type ChargingGatewayAddr(n: uint16) = record { + value: bytestring &length=n; +}; + +type PrivateExt(n: uint16) = record { + id: uint16; + value: bytestring &length=n-2; +}; + +function Get_IE_Len(t: uint8): uint16 = + case t of { + TYPE_CAUSE -> 1; + TYPE_IMSI -> 8; + TYPE_RAI -> 6; + TYPE_TLLI -> 4; + TYPE_P_TMSI -> 4; + TYPE_REORDER_REQ -> 1; + TYPE_AUTHN_TRIPLET -> 28; + TYPE_MAP_CAUSE -> 1; + TYPE_P_TMSI_SIG -> 3; + TYPE_MS_VALID -> 1; + TYPE_RECOVERY -> 1; + TYPE_SELECTION_MODE -> 1; + TYPE_TEID1 -> 4; + TYPE_TEID_CONTROL_PLANE -> 4; + TYPE_TEID2 -> 5; + TYPE_TEARDOWN_IND -> 1; + TYPE_NSAPI -> 1; + TYPE_RANAP_CAUSE -> 1; + TYPE_RAB_CTX -> 9; + TYPE_RADIO_PRIORITY_SMS -> 1; + TYPE_RADIO_PRIORITY -> 1; + TYPE_PACKET_FLOW_ID -> 2; + TYPE_CHARGING_CHARACTERISTICS -> 2; + TYPE_TRACE_REFERENCE -> 2; + TYPE_TRACE_TYPE -> 2; + TYPE_MS_NOT_REACHABLE_REASON -> 1; + TYPE_CHARGING_ID -> 4; + }; diff --git a/src/types.bif b/src/types.bif index 888310419c..27009d2e1c 100644 --- a/src/types.bif +++ b/src/types.bif @@ -211,3 +211,17 @@ enum Mode %{ %} module GLOBAL; + +type gtpv1_hdr: record; +type gtp_create_pdp_ctx_request_elements: record; +type gtp_create_pdp_ctx_response_elements: record; +type gtp_update_pdp_ctx_request_elements: record; +type gtp_update_pdp_ctx_response_elements: record; +type gtp_delete_pdp_ctx_request_elements: record; +type gtp_delete_pdp_ctx_response_elements: record; + +type gtp_end_user_addr: record; +type gtp_rai: record; +type gtp_qos_profile: record; +type gtp_private_extension: record; +type gtp_gsn_addr: record; diff --git a/testing/btest/Baseline/core.tunnels.gtp.ext_header/out b/testing/btest/Baseline/core.tunnels.gtp.ext_header/out new file mode 100644 index 0000000000..e76a7f35de --- /dev/null +++ b/testing/btest/Baseline/core.tunnels.gtp.ext_header/out @@ -0,0 +1,2 @@ +gtpv1_message, [orig_h=10.155.148.149, orig_p=9000/udp, resp_h=10.155.148.157, resp_p=2152/udp] +[version=1, pt_flag=T, rsv=F, e_flag=T, s_flag=T, pn_flag=F, msg_type=255, length=1508, teid=1050199, seq=5, n_pdu=0, next_type=192] diff --git a/testing/btest/Baseline/core.tunnels.gtp.non_recursive/out b/testing/btest/Baseline/core.tunnels.gtp.non_recursive/out index a299c4d592..49bb5f7399 100644 --- a/testing/btest/Baseline/core.tunnels.gtp.non_recursive/out +++ b/testing/btest/Baseline/core.tunnels.gtp.non_recursive/out @@ -1 +1 @@ -protocol_violation, [orig_h=74.125.216.149, orig_p=2152/udp, resp_h=10.131.138.69, resp_p=2152/udp], GTP-in-GTP [n\xd9'|\x00\x00\x01\xb6[\xf6\xdc0\xb7d\xe5\xe6\xa76\x91\xfbk\x0e\x02\xc8A\x05\xa8\xe6\xf3Gi\x80(]\xcew\x84\xae}\xd2...] +protocol_violation, [orig_h=74.125.216.149, orig_p=2152/udp, resp_h=10.131.138.69, resp_p=2152/udp], GTP-in-GTP [\x80\xe1Bc.\xe20\xebn\xd9'|\x00\x00\x01\xb6[\xf6\xdc0\xb7d\xe5\xe6\xa76\x91\xfbk\x0e\x02\xc8A\x05\xa8\xe6\xf3Gi\x80...] diff --git a/testing/btest/Baseline/core.tunnels.gtp.pdp_ctx_messages/out b/testing/btest/Baseline/core.tunnels.gtp.pdp_ctx_messages/out new file mode 100644 index 0000000000..fcdfe94824 --- /dev/null +++ b/testing/btest/Baseline/core.tunnels.gtp.pdp_ctx_messages/out @@ -0,0 +1,24 @@ +gtpv1_message, [orig_h=192.169.100.1, orig_p=34273/udp, resp_h=10.100.200.33, resp_p=2123/udp] +[version=1, pt_flag=T, rsv=F, e_flag=F, s_flag=T, pn_flag=F, msg_type=16, length=137, teid=0, seq=4875, n_pdu=0, next_type=0] +gtp create request, [orig_h=192.169.100.1, orig_p=34273/udp, resp_h=10.100.200.33, resp_p=2123/udp] +[version=1, pt_flag=T, rsv=F, e_flag=F, s_flag=T, pn_flag=F, msg_type=16, length=137, teid=0, seq=4875, n_pdu=0, next_type=0] +[imsi=460004100000101, rai=[mcc=460, mnc=6, lac=65534, rac=255], recovery=176, select_mode=1, data1=854600697, cp=854600697, nsapi=5, linked_nsapi=, charge_character=, trace_ref=, trace_type=, end_user_addr=[pdp_type_org=1, pdp_type_num=33, pdp_ip=, pdp_other_addr=], ap_name=^Feetest, opts=\x80\x80!^V^A^A\0^V^C^F\0\0\0\0\x81^F\0\0\0\0\x83^F\0\0\0\0, signal_addr=[ip=192.169.100.1, other=], user_addr=[ip=192.169.100.1, other=], msisdn=\x91hQ"^A\0^A\xf1, qos_prof=[priority=2, data=\x1bB\x1fs\x8c@@tK@@], tft=, trigger_id=, omc_id=, ext=[id=10923, value=^B^A^C]] +gtpv1_message, [orig_h=192.169.100.1, orig_p=34273/udp, resp_h=10.100.200.33, resp_p=2123/udp] +[version=1, pt_flag=T, rsv=F, e_flag=F, s_flag=T, pn_flag=F, msg_type=17, length=101, teid=854600697, seq=4875, n_pdu=0, next_type=0] +gtp create response, [orig_h=192.169.100.1, orig_p=34273/udp, resp_h=10.100.200.33, resp_p=2123/udp] +[version=1, pt_flag=T, rsv=F, e_flag=F, s_flag=T, pn_flag=F, msg_type=17, length=101, teid=854600697, seq=4875, n_pdu=0, next_type=0] +[cause=128, reorder_req=F, recovery=24, data1=268435589, cp=268435584, charging_id=103000009, end_user_addr=[pdp_type_org=1, pdp_type_num=33, pdp_ip=192.168.252.130, pdp_other_addr=], opts=\x80\x80!^P^D^A\0^P\x81^F\0\0\0\0\x83^F\0\0\0\0\x80!^J^C^A\0^J^C^F\xc0\xa8\xfc\x82, cp_addr=[ip=10.100.200.34, other=], user_addr=[ip=10.100.200.49, other=], qos_prof=[priority=2, data=\x1bB\x1fs\x8c@@tK@@], charge_gateway=, ext=] +gtpv1_message, [orig_h=127.0.0.2, orig_p=2123/udp, resp_h=127.0.0.1, resp_p=2123/udp] +[version=1, pt_flag=T, rsv=F, e_flag=F, s_flag=T, pn_flag=F, msg_type=1, length=4, teid=0, seq=3072, n_pdu=0, next_type=0] +gtpv1_message, [orig_h=127.0.0.2, orig_p=2123/udp, resp_h=127.0.0.1, resp_p=2123/udp] +[version=1, pt_flag=T, rsv=F, e_flag=F, s_flag=T, pn_flag=F, msg_type=2, length=6, teid=0, seq=3072, n_pdu=0, next_type=0] +gtpv1_message, [orig_h=127.0.0.2, orig_p=2123/udp, resp_h=127.0.0.1, resp_p=2123/udp] +[version=1, pt_flag=T, rsv=F, e_flag=F, s_flag=T, pn_flag=F, msg_type=16, length=104, teid=0, seq=3073, n_pdu=0, next_type=0] +gtp create request, [orig_h=127.0.0.2, orig_p=2123/udp, resp_h=127.0.0.1, resp_p=2123/udp] +[version=1, pt_flag=T, rsv=F, e_flag=F, s_flag=T, pn_flag=F, msg_type=16, length=104, teid=0, seq=3073, n_pdu=0, next_type=0] +[imsi=240010123456789, rai=, recovery=3, select_mode=1, data1=1, cp=1, nsapi=0, linked_nsapi=, charge_character=2048, trace_ref=, trace_type=, end_user_addr=[pdp_type_org=1, pdp_type_num=33, pdp_ip=, pdp_other_addr=], ap_name=^Hinternet, opts=\x80\xc0#^Q^A^A\0^Q^Cmig^Hhemmelig, signal_addr=[ip=127.0.0.2, other=], user_addr=[ip=127.0.0.2, other=], msisdn=\x91d^G^R2T\xf6, qos_prof=[priority=0, data=^K\x92\x1f], tft=, trigger_id=, omc_id=, ext=] +gtpv1_message, [orig_h=127.0.0.2, orig_p=2123/udp, resp_h=127.0.0.1, resp_p=2123/udp] +[version=1, pt_flag=T, rsv=F, e_flag=F, s_flag=T, pn_flag=F, msg_type=17, length=78, teid=1, seq=3073, n_pdu=0, next_type=0] +gtp create response, [orig_h=127.0.0.2, orig_p=2123/udp, resp_h=127.0.0.1, resp_p=2123/udp] +[version=1, pt_flag=T, rsv=F, e_flag=F, s_flag=T, pn_flag=F, msg_type=17, length=78, teid=1, seq=3073, n_pdu=0, next_type=0] +[cause=128, reorder_req=F, recovery=1, data1=1, cp=1, charging_id=1, end_user_addr=[pdp_type_org=1, pdp_type_num=33, pdp_ip=192.168.0.2, pdp_other_addr=], opts=\x80\x80!^P^B\0\0^P\x81^F\0\0\0\0\x83^F\0\0\0\0, cp_addr=[ip=127.0.0.1, other=], user_addr=[ip=127.0.0.1, other=], qos_prof=[priority=0, data=^K\x92\x1f], charge_gateway=, ext=] diff --git a/testing/btest/Baseline/core.tunnels.gtp.unknown_or_too_short/dpd.log b/testing/btest/Baseline/core.tunnels.gtp.unknown_or_too_short/dpd.log index 221fa16f4f..fcd110f8ab 100644 --- a/testing/btest/Baseline/core.tunnels.gtp.unknown_or_too_short/dpd.log +++ b/testing/btest/Baseline/core.tunnels.gtp.unknown_or_too_short/dpd.log @@ -3,8 +3,8 @@ #empty_field (empty) #unset_field - #path dpd -#open 2012-10-19-17-38-54 +#open 2013-01-25-21-49-19 #fields ts uid id.orig_h id.orig_p id.resp_h id.resp_p proto analyzer failure_reason #types time string addr port addr port enum string string -1333458853.075889 UWkUyAuUGXf 173.86.159.28 2152 213.72.147.186 2152 udp GTPV1 Truncated GTPv1 [E\x00\x05\xc8G\xea@\x00\x80\x06\xb6\x83\x0a\x83w&\xd9\x14\x9c\x04\xd9\xc2\x00P\xddh\xb4\x8f41eVP\x10\x10\xe0u\xcf\x00\x00...] -#close 2012-10-19-17-38-54 +1333458853.075889 UWkUyAuUGXf 173.86.159.28 2152 213.72.147.186 2152 udp GTPV1 Truncated GTPv1 [0\xff\x00\xac\x98\x13\x01LE\x00\x05\xc8G\xea@\x00\x80\x06\xb6\x83\x0a\x83w&\xd9\x14\x9c\x04\xd9\xc2\x00P\xddh\xb4\x8f41eV...] +#close 2013-01-25-21-49-19 diff --git a/testing/btest/Baseline/core.tunnels.gtp.unknown_or_too_short/tunnel.log b/testing/btest/Baseline/core.tunnels.gtp.unknown_or_too_short/tunnel.log index 659090a581..070a754702 100644 --- a/testing/btest/Baseline/core.tunnels.gtp.unknown_or_too_short/tunnel.log +++ b/testing/btest/Baseline/core.tunnels.gtp.unknown_or_too_short/tunnel.log @@ -3,9 +3,9 @@ #empty_field (empty) #unset_field - #path tunnel -#open 2012-10-19-17-38-54 +#open 2013-01-25-21-49-19 #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 1333458853.034734 UWkUyAuUGXf 173.86.159.28 2152 213.72.147.186 2152 Tunnel::GTPv1 Tunnel::DISCOVER 1333458853.108391 UWkUyAuUGXf 173.86.159.28 2152 213.72.147.186 2152 Tunnel::GTPv1 Tunnel::CLOSE -#close 2012-10-19-17-38-54 +#close 2013-01-25-21-49-19 diff --git a/testing/btest/Traces/tunnels/gtp/gtp_control_prime.pcap b/testing/btest/Traces/tunnels/gtp/gtp_control_prime.pcap new file mode 100644 index 0000000000000000000000000000000000000000..ebed358a265429d5d7cecb975a3a8c2a8b53e3a7 GIT binary patch literal 1292 zcmb`GO=uHQ5P;|HhV3RzHoG;gTIk8j0qtI?9Hu> z7NH9E*pmw4&p|LET2H}JkAfiHMLhJDQWXRx&b++XT~C4z%)Z@a-uJ$lY~C+b?n>Z; zX4LBd3?FVx)a)-86d1yLN_VJm0-z5d4sqk?>ni{fCR1(IhRCyCi#2dT+(HyPtH2Sw zr*sFW^b1Or2t?wPj{8wd0)?uHqA}tu=M-4LCrWp4&Ya*RJvLLfMl2oDR2{^oq~pM1 zW2xEinjB_2zGMbnBG9RV1JY`22K;I!UrH78sZtr*oobK47#MOcGpVLixm@aEX7U>N z=nS!3hnCytTH36{w^{7Ebv{a_QeHtG@WkbJaMPkNo$_>?EUj1ujAJPyQ|74H^|~U~ z;yX}QW7UTsl_BCdFa(__d+L#3Fnur)u`wGb-Ff0;M~+52EArJ7%dXataNH zh9SH5(bQo=N0&N=7@S|h4mBSQ4@ZYW|2Q*}`-yVXXhrD`E_X@DT_!OS;`>yuxC|tV05; zJ>$avFusdJoGp*yS0%qY{VA=&=M|#TNssX))gNdLhP1G5v~7sAcWm6WxpPa`Rx`RS z*4?vx$IjlqUH!ZF?A^D2;DB}T(BRNv+V^xJ08fxX=?-pqM;M;;bUe41M8g7Bdkw2l ccyteUu<;LQ$jDL-{P;@Lru`^;^WW@$0e@fV*Z=?k literal 0 HcmV?d00001 diff --git a/testing/btest/Traces/tunnels/gtp/gtp_create_pdp_ctx.pcap b/testing/btest/Traces/tunnels/gtp/gtp_create_pdp_ctx.pcap new file mode 100644 index 0000000000000000000000000000000000000000..78283156d57ce5d254f9ad62c400e161c6b67611 GIT binary patch literal 713 zcmaiyOK8+k6o&tso5V}TjtTRy_-fNxR9gymm~~C7F6w}cAn4Aa%z&FINaM;y(@ayR zK5^sFg`gm|B8uoz(1@TGceN8wQ1#&a_k1{WIm&&}iJobNyPtiF13M}dm1 zD~bR{4|m7sipS5X@abL(`#ul(SE1f4yeJ491>BWSz=-wzK)AGG7*56)H8F{@ISlOS zVrxV1N`!dN^ftNeZ*~Z_}$)w>sta@A5o5OPjM?mlbE? zSdU}w+c8PhoL2FSK1o3f?wvdnb6tyx9;O~SIAk512=7;zQF&_z>!OH-*H7~%=H(Bm z1Qo2nA%CpJi7eWTl8<-%GV>dQKP(y2ng^w2*RjPki+?}`P-Uq<%N)dwvnTqi1+2PVpe-<`1)KnSF&Q^N1!5Iv$%RR(S zCHmUS@L${#^W!NUw}?=RPJicKuVV(T%ahBOat_3#sNsTY$QeL91Et=qubfU@ yF1+yvyon>LYcmbQ7rd)6t|JW)eVuY7Uyg>EOJh9I(KSA(v)D)f|7{%Z{_q>RB(gRD literal 0 HcmV?d00001 diff --git a/testing/btest/Traces/tunnels/gtp/gtp_ext_header.pcap b/testing/btest/Traces/tunnels/gtp/gtp_ext_header.pcap new file mode 100644 index 0000000000000000000000000000000000000000..453ebf934a9d06a74140e1686c616ec0e3c09d59 GIT binary patch literal 1648 zcmca|c+)~A1{MYw`2U}Qff2}=J^Py9%2sBESF8+REX2UbWXSMhyNAF-4Gsp^2-Z6a zJqir}1kI0d&7Lw9i03M6aAdH4VPG)(&-#QxfGwPXmEiy*Ckuls1M8hTzZ@9s*)Bcj zn!W85*X&)Ei`2zSrwKh{R$>g9)gZv2x2_9lD@G{G_B#0BO}`VE_OC literal 0 HcmV?d00001 diff --git a/testing/btest/core/tunnels/gtp/ext_header.test b/testing/btest/core/tunnels/gtp/ext_header.test new file mode 100644 index 0000000000..6316acb184 --- /dev/null +++ b/testing/btest/core/tunnels/gtp/ext_header.test @@ -0,0 +1,8 @@ +# @TEST-EXEC: bro -r $TRACES/tunnels/gtp/gtp_ext_header.pcap %INPUT >out +# @TEST-EXEC: btest-diff out + +event gtpv1_message(c: connection, hdr: gtpv1_hdr) + { + print "gtpv1_message", c$id; + print hdr; + } diff --git a/testing/btest/core/tunnels/gtp/pdp_ctx_messages.test b/testing/btest/core/tunnels/gtp/pdp_ctx_messages.test new file mode 100644 index 0000000000..7405c8d019 --- /dev/null +++ b/testing/btest/core/tunnels/gtp/pdp_ctx_messages.test @@ -0,0 +1,56 @@ +# @TEST-EXEC: bro -r $TRACES/tunnels/gtp/gtp_control_prime.pcap -r $TRACES/tunnels/gtp/gtp_create_pdp_ctx.pcap %INPUT >out +# @TEST-EXEC: btest-diff out + +event gtpv1_message(c: connection, hdr: gtpv1_hdr) + { + print "gtpv1_message", c$id; + print hdr; + } + +event gtpv1_create_pdp_ctx_request(c: connection, hdr: gtpv1_hdr, + elements: gtp_create_pdp_ctx_request_elements) + { + print "gtp create request", c$id; + print hdr; + print elements; + } + +event gtpv1_create_pdp_ctx_response(c: connection, hdr: gtpv1_hdr, + elements: gtp_create_pdp_ctx_response_elements) + { + print "gtp create response", c$id; + print hdr; + print elements; + } + +event gtpv1_update_pdp_ctx_request(c: connection, hdr: gtpv1_hdr, + elements: gtp_update_pdp_ctx_request_elements) + { + print "gtp update request", c$id; + print hdr; + print elements; + } + +event gtpv1_update_pdp_ctx_response(c: connection, hdr: gtpv1_hdr, + elements: gtp_update_pdp_ctx_response_elements) + { + print "gtp update response", c$id; + print hdr; + print elements; + } + +event gtpv1_delete_pdp_ctx_request(c: connection, hdr: gtpv1_hdr, + elements: gtp_delete_pdp_ctx_request_elements) + { + print "gtp delete request", c$id; + print hdr; + print elements; + } + +event gtpv1_delete_pdp_ctx_response(c: connection, hdr: gtpv1_hdr, + elements: gtp_delete_pdp_ctx_response_elements) + { + print "gtp delete response", c$id; + print hdr; + print elements; + } From 9f8ba408ba0112d8d053fdade3a21f0bf1cfa106 Mon Sep 17 00:00:00 2001 From: Seth Hall Date: Mon, 11 Feb 2013 14:36:14 -0500 Subject: [PATCH 06/71] Updates for the notices framework. - Moved the Notice::notice event and Notice::policy table to both be hooks. - Renamed the old Notice::policy to Notice::policy_table and documented it as deprecated. --- doc/scripts/DocSourcesList.cmake | 1 + scripts/base/frameworks/notice/__load__.bro | 4 +- .../frameworks/notice/actions/add-geodata.bro | 15 ++- .../base/frameworks/notice/actions/drop.bro | 21 ++-- .../frameworks/notice/actions/email_admin.bro | 2 +- .../base/frameworks/notice/actions/page.bro | 2 +- .../frameworks/notice/actions/pp-alarms.bro | 2 +- scripts/base/frameworks/notice/cluster.bro | 28 +++-- .../notice/extend-email/hostnames.bro | 2 +- scripts/base/frameworks/notice/main.bro | 112 +++++++----------- .../base/frameworks/notice/non-cluster.bro | 14 +++ .../canonified_loaded_scripts.log | 5 +- .../manager-1.notice.log | 10 +- .../manager-1.notice.log | 10 +- .../manager-1.notice.log | 10 +- .../notice.log | 10 +- .../notice.log | 10 +- .../base/frameworks/metrics/notice.bro | 24 ---- .../base/frameworks/notice/mail-alarms.bro | 6 +- 19 files changed, 129 insertions(+), 159 deletions(-) create mode 100644 scripts/base/frameworks/notice/non-cluster.bro delete mode 100644 testing/btest/scripts/base/frameworks/metrics/notice.bro diff --git a/doc/scripts/DocSourcesList.cmake b/doc/scripts/DocSourcesList.cmake index 6ed14ca943..117430223e 100644 --- a/doc/scripts/DocSourcesList.cmake +++ b/doc/scripts/DocSourcesList.cmake @@ -57,6 +57,7 @@ rest_target(${psd} base/frameworks/notice/actions/pp-alarms.bro) rest_target(${psd} base/frameworks/notice/cluster.bro) rest_target(${psd} base/frameworks/notice/extend-email/hostnames.bro) rest_target(${psd} base/frameworks/notice/main.bro) +rest_target(${psd} base/frameworks/notice/non-cluster.bro) rest_target(${psd} base/frameworks/notice/weird.bro) rest_target(${psd} base/frameworks/packet-filter/main.bro) rest_target(${psd} base/frameworks/packet-filter/netstats.bro) diff --git a/scripts/base/frameworks/notice/__load__.bro b/scripts/base/frameworks/notice/__load__.bro index 4548e98dc2..bcf3cd6898 100644 --- a/scripts/base/frameworks/notice/__load__.bro +++ b/scripts/base/frameworks/notice/__load__.bro @@ -17,7 +17,9 @@ @if ( Cluster::is_enabled() ) @load ./cluster +@else +@load ./non-cluster @endif # Load here so that it can check whether clustering is enabled. -@load ./actions/pp-alarms +@load ./actions/pp-alarms \ No newline at end of file diff --git a/scripts/base/frameworks/notice/actions/add-geodata.bro b/scripts/base/frameworks/notice/actions/add-geodata.bro index 9f6909595c..c762be3b86 100644 --- a/scripts/base/frameworks/notice/actions/add-geodata.bro +++ b/scripts/base/frameworks/notice/actions/add-geodata.bro @@ -27,18 +27,17 @@ export { ## Notice types which should have the "remote" location looked up. ## If GeoIP support is not built in, this does nothing. const lookup_location_types: set[Notice::Type] = {} &redef; - - ## Add a helper to the notice policy for looking up GeoIP data. - redef Notice::policy += { - [$pred(n: Notice::Info) = { return (n$note in Notice::lookup_location_types); }, - $action = ACTION_ADD_GEODATA, - $priority = 10], - }; } +hook policy(n: Notice::Info) &priority=10 + { + if ( n$note in Notice::lookup_location_types ) + add n$actions[ACTION_ADD_GEODATA]; + } + # This is handled at a high priority in case other notice handlers # want to use the data. -event notice(n: Notice::Info) &priority=10 +hook notice(n: Notice::Info) &priority=10 { if ( ACTION_ADD_GEODATA in n$actions && |Site::local_nets| > 0 && diff --git a/scripts/base/frameworks/notice/actions/drop.bro b/scripts/base/frameworks/notice/actions/drop.bro index 0116dd4ed4..1befd8644f 100644 --- a/scripts/base/frameworks/notice/actions/drop.bro +++ b/scripts/base/frameworks/notice/actions/drop.bro @@ -17,20 +17,13 @@ export { }; } -# This is a little awkward because we want to inject drop along with the -# synchronous functions. -event bro_init() +hook notice(n: Notice::Info) { - local drop_func = function(n: Notice::Info) + if ( ACTION_DROP in n$actions ) { - if ( ACTION_DROP in n$actions ) - { - #local drop = React::drop_address(n$src, ""); - #local addl = drop?$sub ? fmt(" %s", drop$sub) : ""; - #n$dropped = drop$note != Drop::AddressDropIgnored; - #n$msg += fmt(" [%s%s]", drop$note, addl); - } - }; - - add Notice::sync_functions[drop_func]; + #local drop = React::drop_address(n$src, ""); + #local addl = drop?$sub ? fmt(" %s", drop$sub) : ""; + #n$dropped = drop$note != Drop::AddressDropIgnored; + #n$msg += fmt(" [%s%s]", drop$note, addl); + } } diff --git a/scripts/base/frameworks/notice/actions/email_admin.bro b/scripts/base/frameworks/notice/actions/email_admin.bro index 7484a1c606..fb82f2b960 100644 --- a/scripts/base/frameworks/notice/actions/email_admin.bro +++ b/scripts/base/frameworks/notice/actions/email_admin.bro @@ -18,7 +18,7 @@ export { }; } -event notice(n: Notice::Info) &priority=-5 +hook notice(n: Notice::Info) &priority=-5 { if ( |Site::local_admins| > 0 && ACTION_EMAIL_ADMIN in n$actions ) diff --git a/scripts/base/frameworks/notice/actions/page.bro b/scripts/base/frameworks/notice/actions/page.bro index 16a3463126..e29b2bf0ee 100644 --- a/scripts/base/frameworks/notice/actions/page.bro +++ b/scripts/base/frameworks/notice/actions/page.bro @@ -15,7 +15,7 @@ export { const mail_page_dest = "" &redef; } -event notice(n: Notice::Info) &priority=-5 +hook notice(n: Notice::Info) &priority=-5 { if ( ACTION_PAGE in n$actions ) email_notice_to(n, mail_page_dest, F); diff --git a/scripts/base/frameworks/notice/actions/pp-alarms.bro b/scripts/base/frameworks/notice/actions/pp-alarms.bro index 0f19d3da8f..52312c2624 100644 --- a/scripts/base/frameworks/notice/actions/pp-alarms.bro +++ b/scripts/base/frameworks/notice/actions/pp-alarms.bro @@ -105,7 +105,7 @@ event bro_init() $postprocessor=pp_postprocessor]); } -event notice(n: Notice::Info) &priority=-5 +hook notice(n: Notice::Info) &priority=-5 { if ( ! want_pp() ) return; diff --git a/scripts/base/frameworks/notice/cluster.bro b/scripts/base/frameworks/notice/cluster.bro index e812c3fdca..02f11533fa 100644 --- a/scripts/base/frameworks/notice/cluster.bro +++ b/scripts/base/frameworks/notice/cluster.bro @@ -21,22 +21,11 @@ redef Cluster::manager2worker_events += /Notice::begin_suppression/; redef Cluster::worker2manager_events += /Notice::cluster_notice/; @if ( Cluster::local_node_type() != Cluster::MANAGER ) - -# The notice policy is completely handled by the manager and shouldn't be -# done by workers or proxies to save time for packet processing. -redef Notice::policy = table(); - event Notice::begin_suppression(n: Notice::Info) { suppressing[n$note, n$identifier] = n; } -event Notice::notice(n: Notice::Info) - { - # Send the locally generated notice on to the manager. - event Notice::cluster_notice(n); - } - event bro_init() &priority=-3 { # Workers and proxies need to disable the notice streams because notice @@ -54,3 +43,20 @@ event Notice::cluster_notice(n: Notice::Info) NOTICE(n); } @endif + +module GLOBAL; + +## This is the entry point in the global namespace for notice framework. +function NOTICE(n: Notice::Info) + { + # Suppress this notice if necessary. + if ( Notice::is_being_suppressed(n) ) + return; + +@if ( Cluster::local_node_type() == Cluster::MANAGER ) + Notice::internal_NOTICE(n); +@else + # For non-managers, send the notice on to the manager. + event Notice::cluster_notice(n); +@endif + } diff --git a/scripts/base/frameworks/notice/extend-email/hostnames.bro b/scripts/base/frameworks/notice/extend-email/hostnames.bro index 2ec6dbb23f..18442f453d 100644 --- a/scripts/base/frameworks/notice/extend-email/hostnames.bro +++ b/scripts/base/frameworks/notice/extend-email/hostnames.bro @@ -13,7 +13,7 @@ module Notice; # reference to the original notice) global tmp_notice_storage: table[string] of Notice::Info &create_expire=max_email_delay+10secs; -event Notice::notice(n: Notice::Info) &priority=10 +hook notice(n: Notice::Info) &priority=10 { if ( ! n?$src && ! n?$dst ) return; diff --git a/scripts/base/frameworks/notice/main.bro b/scripts/base/frameworks/notice/main.bro index e9b29e7392..5d3cc48091 100644 --- a/scripts/base/frameworks/notice/main.bro +++ b/scripts/base/frameworks/notice/main.bro @@ -102,10 +102,6 @@ export { ## The actions which have been applied to this notice. actions: set[Notice::Action] &log &optional; - ## These are policy items that returned T and applied their action - ## to the notice. - policy_items: set[count] &log &optional; - ## By adding chunks of text into this element, other scripts can ## expand on notices that are being emailed. The normal way to add text ## is to extend the vector by handling the :bro:id:`Notice::notice` @@ -185,32 +181,15 @@ export { }; ## Defines a notice policy that is extensible on a per-site basis. - ## All notice processing is done through this variable. - const policy: set[PolicyItem] = { - [$pred(n: Notice::Info) = { return (n$note in Notice::ignored_types); }, - $halt=T, $priority = 9], - [$pred(n: Notice::Info) = { return (n$note in Notice::not_suppressed_types); }, - $action = ACTION_NO_SUPPRESS, - $priority = 9], - [$pred(n: Notice::Info) = { return (n$note in Notice::alarmed_types); }, - $action = ACTION_ALARM, - $priority = 8], - [$pred(n: Notice::Info) = { return (n$note in Notice::emailed_types); }, - $action = ACTION_EMAIL, - $priority = 8], - [$pred(n: Notice::Info) = { - if (n$note in Notice::type_suppression_intervals) - { - n$suppress_for=Notice::type_suppression_intervals[n$note]; - return T; - } - return F; - }, - $action = ACTION_NONE, - $priority = 8], - [$action = ACTION_LOG, - $priority = 0], - } &redef; + ## All notice processing is done through this variable. This variable + ## is the former 'policy' variable, and + ## this variable is deprecated and will be removed in a future version. + ## All notice policy decisions are going to be done through the + ## 'policy' hook now. + const policy_table: set[PolicyItem] = {} &redef; + + ## The hook to modify notice handling. + global policy: hook(n: Notice::Info); ## Local system sendmail program. const sendmail = "/usr/sbin/sendmail" &redef; @@ -240,25 +219,11 @@ export { ## This is the event that is called as the entry point to the ## notice framework by the global :bro:id:`NOTICE` function. By the time ## this event is generated, default values have already been filled out in - ## the :bro:type:`Notice::Info` record and synchronous functions in the - ## :bro:id:`Notice::sync_functions` have already been called. The notice + ## the :bro:type:`Notice::Info` record and the notice ## policy has also been applied. ## ## n: The record containing notice data. - global notice: event(n: Info); - - ## This is a set of functions that provide a synchronous way for scripts - ## extending the notice framework to run before the normal event based - ## notice pathway that most of the notice framework takes. This is helpful - ## in cases where an action against a notice needs to happen immediately - ## and can't wait the short time for the event to bubble up to the top of - ## the event queue. An example is the IP address dropping script that - ## can block IP addresses that have notices generated because it - ## needs to operate closer to real time than the event queue allows it to. - ## Normally the event based extension model using the - ## :bro:id:`Notice::notice` event will work fine if there aren't harder - ## real time constraints. - const sync_functions: set[function(n: Notice::Info)] = set() &redef; + global notice: hook(n: Info); ## This event is generated when a notice begins to be suppressed. ## @@ -266,6 +231,11 @@ export { ## about to be suppressed. global begin_suppression: event(n: Notice::Info); + ## A function to determine if an event is supposed to be suppressed. + ## + ## n: The record containing the notice in question. + global is_being_suppressed: function(n: Notice::Info): bool; + ## This event is generated on each occurence of an event being suppressed. ## ## n: The record containing notice data regarding the notice type @@ -424,9 +394,7 @@ function email_notice_to(n: Notice::Info, dest: string, extend: bool) } else { - event reporter_info(network_time(), - fmt("Notice email delay tokens weren't released in time (%s).", n$email_delay_tokens), - ""); + Reporter::info(fmt("Notice email delay tokens weren't released in time (%s).", n$email_delay_tokens)); } } } @@ -468,7 +436,26 @@ function email_notice_to(n: Notice::Info, dest: string, extend: bool) piped_exec(fmt("%s -t -oi", sendmail), email_text); } -event notice(n: Notice::Info) &priority=-5 +hook Notice::policy(n: Notice::Info) &priority=10 + { + if ( n$note in Notice::ignored_types ) + break; + + if ( n$note in Notice::not_suppressed_types ) + add n$actions[ACTION_NO_SUPPRESS]; + if ( n$note in Notice::alarmed_types ) + add n$actions[ACTION_ALARM]; + if ( n$note in Notice::emailed_types ) + add n$actions[ACTION_EMAIL]; + + if ( n$note in Notice::type_suppression_intervals ) + n$suppress_for=Notice::type_suppression_intervals[n$note]; + + # Logging is a default action. It can be removed in a later hook if desired. + add n$actions[ACTION_LOG]; + } + +hook Notice::notice(n: Notice::Info) &priority=-5 { if ( ACTION_EMAIL in n$actions ) email_notice_to(n, mail_dest, T); @@ -565,16 +552,12 @@ function apply_policy(n: Notice::Info) if ( ! n?$email_delay_tokens ) n$email_delay_tokens = set(); - if ( ! n?$policy_items ) - n$policy_items = set(); - for ( i in ordered_policy ) { # If there's no predicate or the predicate returns F. if ( ! ordered_policy[i]?$pred || ordered_policy[i]$pred(n) ) { add n$actions[ordered_policy[i]$action]; - add n$policy_items[int_to_count(i)]; # If the predicate matched and there was a suppression interval, # apply it to the notice now. @@ -587,6 +570,9 @@ function apply_policy(n: Notice::Info) } } + # Apply the hook based policy. + hook Notice::policy(n); + # Apply the suppression time after applying the policy so that policy # items can give custom suppression intervals. If there is no # suppression interval given yet, the default is applied. @@ -610,7 +596,7 @@ event bro_init() &priority=10 Log::create_stream(Notice::POLICY_LOG, [$columns=PolicyItem]); local tmp: table[count] of set[PolicyItem] = table(); - for ( pi in policy ) + for ( pi in policy_table ) { if ( pi$priority < 0 || pi$priority > 10 ) Reporter::fatal("All Notice::PolicyItem priorities must be within 0 and 10"); @@ -638,25 +624,13 @@ event bro_init() &priority=10 function internal_NOTICE(n: Notice::Info) { - # Suppress this notice if necessary. - if ( is_being_suppressed(n) ) - return; - # Fill out fields that might be empty and do the policy processing. apply_policy(n); - # Run the synchronous functions with the notice. - for ( func in sync_functions ) - func(n); - # Generate the notice event with the notice. - event Notice::notice(n); + hook Notice::notice(n); } module GLOBAL; -## This is the entry point in the global namespace for notice framework. -function NOTICE(n: Notice::Info) - { - Notice::internal_NOTICE(n); - } +global NOTICE: function(n: Notice::Info); \ No newline at end of file diff --git a/scripts/base/frameworks/notice/non-cluster.bro b/scripts/base/frameworks/notice/non-cluster.bro new file mode 100644 index 0000000000..002ec0da34 --- /dev/null +++ b/scripts/base/frameworks/notice/non-cluster.bro @@ -0,0 +1,14 @@ + +@load ./main + +module GLOBAL; + +## This is the entry point in the global namespace for notice framework. +function NOTICE(n: Notice::Info) + { + # Suppress this notice if necessary. + if ( Notice::is_being_suppressed(n) ) + return; + + Notice::internal_NOTICE(n); + } diff --git a/testing/btest/Baseline/coverage.default-load-baseline/canonified_loaded_scripts.log b/testing/btest/Baseline/coverage.default-load-baseline/canonified_loaded_scripts.log index 7fd3a1bdc8..d9e8ee0703 100644 --- a/testing/btest/Baseline/coverage.default-load-baseline/canonified_loaded_scripts.log +++ b/testing/btest/Baseline/coverage.default-load-baseline/canonified_loaded_scripts.log @@ -3,7 +3,7 @@ #empty_field (empty) #unset_field - #path loaded_scripts -#open 2012-11-05-23-29-45 +#open 2013-02-11-18-44-43 #fields name #types string scripts/base/init-bare.bro @@ -53,6 +53,7 @@ scripts/base/init-default.bro scripts/base/frameworks/cluster/./main.bro scripts/base/frameworks/control/__load__.bro scripts/base/frameworks/control/./main.bro + scripts/base/frameworks/notice/./non-cluster.bro scripts/base/frameworks/notice/./actions/pp-alarms.bro scripts/base/frameworks/dpd/__load__.bro scripts/base/frameworks/dpd/./main.bro @@ -118,4 +119,4 @@ scripts/base/init-default.bro scripts/base/protocols/syslog/./main.bro scripts/base/misc/find-checksum-offloading.bro scripts/policy/misc/loaded-scripts.bro -#close 2012-11-05-23-29-45 +#close 2013-02-11-18-44-43 diff --git a/testing/btest/Baseline/scripts.base.frameworks.metrics.cluster-intermediate-update/manager-1.notice.log b/testing/btest/Baseline/scripts.base.frameworks.metrics.cluster-intermediate-update/manager-1.notice.log index 217b3ed49b..c87853e2b4 100644 --- a/testing/btest/Baseline/scripts.base.frameworks.metrics.cluster-intermediate-update/manager-1.notice.log +++ b/testing/btest/Baseline/scripts.base.frameworks.metrics.cluster-intermediate-update/manager-1.notice.log @@ -3,8 +3,8 @@ #empty_field (empty) #unset_field - #path notice -#open 2012-07-20-01-50-59 -#fields ts uid id.orig_h id.orig_p id.resp_h id.resp_p proto note msg sub src dst p n peer_descr actions policy_items suppress_for dropped remote_location.country_code remote_location.region remote_location.city remote_location.latitude remote_location.longitude metric_index.host metric_index.str metric_index.network -#types time string addr port addr port enum enum string string addr addr port count string table[enum] table[count] interval bool string string string double double addr string subnet -1342749059.978651 - - - - - - Test_Notice Threshold crossed by metric_index(host=1.2.3.4) 100/100 - 1.2.3.4 - - 100 manager-1 Notice::ACTION_LOG 6 3600.000000 F - - - - - 1.2.3.4 - - -#close 2012-07-20-01-51-08 +#open 2013-02-11-18-41-03 +#fields ts uid id.orig_h id.orig_p id.resp_h id.resp_p proto note msg sub src dst p n peer_descr actions suppress_for dropped remote_location.country_code remote_location.region remote_location.city remote_location.latitude remote_location.longitude metric_index.host metric_index.str metric_index.network +#types time string addr port addr port enum enum string string addr addr port count string table[enum] interval bool string string string double double addr string subnet +1360608063.517719 - - - - - - Test_Notice Threshold crossed by metric_index(host=1.2.3.4) 100/100 - 1.2.3.4 - - 100 manager-1 Notice::ACTION_LOG 3600.000000 F - - - - - 1.2.3.4 - - +#close 2013-02-11-18-41-03 diff --git a/testing/btest/Baseline/scripts.base.frameworks.notice.cluster/manager-1.notice.log b/testing/btest/Baseline/scripts.base.frameworks.notice.cluster/manager-1.notice.log index 6c93cb875e..ddbb59c565 100644 --- a/testing/btest/Baseline/scripts.base.frameworks.notice.cluster/manager-1.notice.log +++ b/testing/btest/Baseline/scripts.base.frameworks.notice.cluster/manager-1.notice.log @@ -3,8 +3,8 @@ #empty_field (empty) #unset_field - #path notice -#open 2012-07-20-01-51-18 -#fields ts uid id.orig_h id.orig_p id.resp_h id.resp_p proto note msg sub src dst p n peer_descr actions policy_items suppress_for dropped remote_location.country_code remote_location.region remote_location.city remote_location.latitude remote_location.longitude metric_index.host metric_index.str metric_index.network -#types time string addr port addr port enum enum string string addr addr port count string table[enum] table[count] interval bool string string string double double addr string subnet -1342749078.270791 - - - - - - Test_Notice test notice! - - - - - worker-1 Notice::ACTION_LOG 6 3600.000000 F - - - - - - - - -#close 2012-07-20-01-51-27 +#open 2013-02-11-18-45-43 +#fields ts uid id.orig_h id.orig_p id.resp_h id.resp_p proto note msg sub src dst p n peer_descr actions suppress_for dropped remote_location.country_code remote_location.region remote_location.city remote_location.latitude remote_location.longitude metric_index.host metric_index.str metric_index.network +#types time string addr port addr port enum enum string string addr addr port count string table[enum] interval bool string string string double double addr string subnet +1360608343.088948 - - - - - - Test_Notice test notice! - - - - - worker-1 Notice::ACTION_LOG 3600.000000 F - - - - - - - - +#close 2013-02-11-18-45-43 diff --git a/testing/btest/Baseline/scripts.base.frameworks.notice.suppression-cluster/manager-1.notice.log b/testing/btest/Baseline/scripts.base.frameworks.notice.suppression-cluster/manager-1.notice.log index 88f25b066f..2f163a5491 100644 --- a/testing/btest/Baseline/scripts.base.frameworks.notice.suppression-cluster/manager-1.notice.log +++ b/testing/btest/Baseline/scripts.base.frameworks.notice.suppression-cluster/manager-1.notice.log @@ -3,8 +3,8 @@ #empty_field (empty) #unset_field - #path notice -#open 2012-07-20-01-51-36 -#fields ts uid id.orig_h id.orig_p id.resp_h id.resp_p proto note msg sub src dst p n peer_descr actions policy_items suppress_for dropped remote_location.country_code remote_location.region remote_location.city remote_location.latitude remote_location.longitude metric_index.host metric_index.str metric_index.network -#types time string addr port addr port enum enum string string addr addr port count string table[enum] table[count] interval bool string string string double double addr string subnet -1342749096.545663 - - - - - - Test_Notice test notice! - - - - - worker-2 Notice::ACTION_LOG 6 3600.000000 F - - - - - - - - -#close 2012-07-20-01-51-45 +#open 2013-02-11-18-45-14 +#fields ts uid id.orig_h id.orig_p id.resp_h id.resp_p proto note msg sub src dst p n peer_descr actions suppress_for dropped remote_location.country_code remote_location.region remote_location.city remote_location.latitude remote_location.longitude metric_index.host metric_index.str metric_index.network +#types time string addr port addr port enum enum string string addr addr port count string table[enum] interval bool string string string double double addr string subnet +1360608314.794257 - - - - - - Test_Notice test notice! - - - - - worker-2 Notice::ACTION_LOG 3600.000000 F - - - - - - - - +#close 2013-02-11-18-45-17 diff --git a/testing/btest/Baseline/scripts.base.frameworks.notice.suppression/notice.log b/testing/btest/Baseline/scripts.base.frameworks.notice.suppression/notice.log index 7c7254f87e..f7f4148548 100644 --- a/testing/btest/Baseline/scripts.base.frameworks.notice.suppression/notice.log +++ b/testing/btest/Baseline/scripts.base.frameworks.notice.suppression/notice.log @@ -3,8 +3,8 @@ #empty_field (empty) #unset_field - #path notice -#open 2012-07-20-01-49-23 -#fields ts uid id.orig_h id.orig_p id.resp_h id.resp_p proto note msg sub src dst p n peer_descr actions policy_items suppress_for dropped remote_location.country_code remote_location.region remote_location.city remote_location.latitude remote_location.longitude -#types time string addr port addr port enum enum string string addr addr port count string table[enum] table[count] interval bool string string string double double -1342748963.685754 - - - - - - Test_Notice test - - - - - bro Notice::ACTION_LOG 6 3600.000000 F - - - - - -#close 2012-07-20-01-49-23 +#open 2013-02-11-18-32-39 +#fields ts uid id.orig_h id.orig_p id.resp_h id.resp_p proto note msg sub src dst p n peer_descr actions suppress_for dropped remote_location.country_code remote_location.region remote_location.city remote_location.latitude remote_location.longitude +#types time string addr port addr port enum enum string string addr addr port count string table[enum] interval bool string string string double double +1360607559.193954 - - - - - - Test_Notice test - - - - - bro Notice::ACTION_LOG 3600.000000 F - - - - - +#close 2013-02-11-18-32-39 diff --git a/testing/btest/Baseline/scripts.base.protocols.ftp.gridftp/notice.log b/testing/btest/Baseline/scripts.base.protocols.ftp.gridftp/notice.log index f9292344a8..da5489e0b7 100644 --- a/testing/btest/Baseline/scripts.base.protocols.ftp.gridftp/notice.log +++ b/testing/btest/Baseline/scripts.base.protocols.ftp.gridftp/notice.log @@ -3,8 +3,8 @@ #empty_field (empty) #unset_field - #path notice -#open 2012-10-05-21-45-15 -#fields ts uid id.orig_h id.orig_p id.resp_h id.resp_p proto note msg sub src dst p n peer_descr actions policy_items suppress_for dropped remote_location.country_code remote_location.region remote_location.city remote_location.latitude remote_location.longitude metric_index.host metric_index.str metric_index.network -#types time string addr port addr port enum enum string string addr addr port count string table[enum] table[count] interval bool string string string double double addr string subnet -1348168976.558309 arKYeMETxOg 192.168.57.103 35391 192.168.57.101 55968 tcp GridFTP::Data_Channel GridFTP data channel over threshold 2 bytes - 192.168.57.103 192.168.57.101 55968 - bro Notice::ACTION_LOG 6 3600.000000 F - - - - - - - - -#close 2012-10-05-21-45-15 +#open 2013-02-11-18-33-41 +#fields ts uid id.orig_h id.orig_p id.resp_h id.resp_p proto note msg sub src dst p n peer_descr actions suppress_for dropped remote_location.country_code remote_location.region remote_location.city remote_location.latitude remote_location.longitude metric_index.host metric_index.str metric_index.network +#types time string addr port addr port enum enum string string addr addr port count string table[enum] interval bool string string string double double addr string subnet +1348168976.558309 arKYeMETxOg 192.168.57.103 35391 192.168.57.101 55968 tcp GridFTP::Data_Channel GridFTP data channel over threshold 2 bytes - 192.168.57.103 192.168.57.101 55968 - bro Notice::ACTION_LOG 3600.000000 F - - - - - - - - +#close 2013-02-11-18-33-41 diff --git a/testing/btest/scripts/base/frameworks/metrics/notice.bro b/testing/btest/scripts/base/frameworks/metrics/notice.bro deleted file mode 100644 index 0ac9faa956..0000000000 --- a/testing/btest/scripts/base/frameworks/metrics/notice.bro +++ /dev/null @@ -1,24 +0,0 @@ -# @TEST-EXEC: bro %INPUT -# @TEST-EXEC: btest-diff notice.log - - -redef enum Notice::Type += { - Test_Notice, -}; - -redef enum Metrics::ID += { - TEST_METRIC, -}; - -event bro_init() &priority=5 - { - Metrics::add_filter(TEST_METRIC, - [$name="foo-bar", - $break_interval=3secs, - $note=Test_Notice, - $notice_threshold=2, - $log=F]); - Metrics::add_data(TEST_METRIC, [$host=1.2.3.4], 3); - Metrics::add_data(TEST_METRIC, [$host=6.5.4.3], 2); - Metrics::add_data(TEST_METRIC, [$host=7.2.1.5], 1); - } diff --git a/testing/btest/scripts/base/frameworks/notice/mail-alarms.bro b/testing/btest/scripts/base/frameworks/notice/mail-alarms.bro index 3116b1025a..0970ec0c76 100644 --- a/testing/btest/scripts/base/frameworks/notice/mail-alarms.bro +++ b/testing/btest/scripts/base/frameworks/notice/mail-alarms.bro @@ -1,7 +1,11 @@ # @TEST-EXEC: bro -C -r $TRACES/web.trace %INPUT # @TEST-EXEC: btest-diff alarm-mail.txt -redef Notice::policy += { [$action = Notice::ACTION_ALARM, $priority = 1 ] }; +hook Notice::policy(n: Notice::Info) &priority=1 + { + add n$actions[Notice::ACTION_ALARM]; + } + redef Notice::force_email_summaries = T; redef enum Notice::Type += { From 7e5115460c2da630825b7ef994591f95aef4f4dc Mon Sep 17 00:00:00 2001 From: Jon Siwek Date: Tue, 19 Feb 2013 11:38:17 -0600 Subject: [PATCH 07/71] Fix three bugs with 'when' and 'return when' statements. Addresses #946 - 'when' statements were problematic when used in a function/event/hook that had local variables with an assigned function value. This was because 'when' blocks operate on a clone of the frame and the cloning process serializes locals and the serialization of functions had an infinite cycle in it (ID -> BroFunc -> ID -> BroFunc ...). The ID was only used for the function name and type information, so refactoring Func and subclasses to depend on those two things instead fixes the issue. - 'return when' blocks, specifically, didn't work whenever execution of the containing function's body does another function call before reaching the 'return when' block, because of an assertion. This was was due to logic in CallExpr::Eval always clearing the CallExpr associated with the Frame after doing the call, instead of restoring any previous CallExpr, which the code in Trigger::Eval expected to have available. - An assert could be reached when the condition of a 'when' statement depended on checking the value of global state variables. The assert in Trigger::QueueTrigger that checks that the Trigger isn't disabled would get hit because Trigger::Eval/Timeout disable themselves after running, but don't unregister themselves from the NotifierRegistry, which keeps calling QueueTrigger for every state access of the global. --- src/Debug.cc | 2 +- src/Expr.cc | 3 +- src/Func.cc | 83 +++++++++---------- src/Func.h | 17 ++-- src/Stats.cc | 2 +- src/Trigger.cc | 2 + src/Trigger.h | 1 - src/input/Manager.cc | 4 +- src/logging/Manager.cc | 2 +- .../Baseline/language.returnwhen/bro..stdout | 12 +++ testing/btest/language/returnwhen.bro | 79 ++++++++++++++++++ 11 files changed, 144 insertions(+), 63 deletions(-) create mode 100644 testing/btest/Baseline/language.returnwhen/bro..stdout create mode 100644 testing/btest/language/returnwhen.bro diff --git a/src/Debug.cc b/src/Debug.cc index 535e193685..8cf2e38596 100644 --- a/src/Debug.cc +++ b/src/Debug.cc @@ -763,7 +763,7 @@ int dbg_handle_debug_input() Frame* curr_frame = g_frame_stack.back(); const BroFunc* func = curr_frame->GetFunction(); if ( func ) - current_module = func->GetID()->ModuleName(); + current_module = extract_module_name(func->Name()); else current_module = GLOBAL_MODULE_NAME; diff --git a/src/Expr.cc b/src/Expr.cc index 3df4d781a0..1a647e8c01 100644 --- a/src/Expr.cc +++ b/src/Expr.cc @@ -4639,12 +4639,13 @@ Val* CallExpr::Eval(Frame* f) const { const ::Func* func = func_val->AsFunc(); calling_expr = this; + const CallExpr* current_call = f ? f->GetCall() : 0; if ( f ) f->SetCall(this); ret = func->Call(v, f); // No try/catch here; we pass exceptions upstream. if ( f ) - f->ClearCall(); + f->SetCall(current_call); // Don't Unref() the arguments, as Func::Call already did that. delete v; diff --git a/src/Func.cc b/src/Func.cc index 9b94b15d97..69af3fb93c 100644 --- a/src/Func.cc +++ b/src/Func.cc @@ -54,13 +54,13 @@ bool did_builtin_init = false; vector Func::unique_ids; -Func::Func() : scope(0), id(0), return_value(0) +Func::Func() : scope(0), type(0) { unique_id = unique_ids.size(); unique_ids.push_back(this); } -Func::Func(Kind arg_kind) : scope(0), kind(arg_kind), id(0), return_value(0) +Func::Func(Kind arg_kind) : scope(0), kind(arg_kind), type(0) { unique_id = unique_ids.size(); unique_ids.push_back(this); @@ -68,6 +68,7 @@ Func::Func(Kind arg_kind) : scope(0), kind(arg_kind), id(0), return_value(0) Func::~Func() { + Unref(type); } void Func::AddBody(Stmt* /* new_body */, id_list* /* new_inits */, @@ -129,6 +130,12 @@ bool Func::DoSerialize(SerialInfo* info) const if ( ! SERIALIZE(char(kind) ) ) return false; + if ( ! type->Serialize(info) ) + return false; + + if ( ! SERIALIZE(Name()) ) + return false; + // We don't serialize scope as only global functions are considered here // anyway. return true; @@ -160,12 +167,24 @@ bool Func::DoUnserialize(UnserialInfo* info) return false; kind = (Kind) c; + + type = BroType::Unserialize(info); + if ( ! type ) + return false; + + const char* n; + if ( ! UNSERIALIZE_STR(&n, 0) ) + return false; + + name = n; + delete [] n; + return true; } void Func::DescribeDebug(ODesc* d, const val_list* args) const { - id->Describe(d); + d->Add(Name()); RecordType* func_args = FType()->Args(); if ( args ) @@ -196,21 +215,6 @@ void Func::DescribeDebug(ODesc* d, const val_list* args) const } } -void Func::SetID(ID *arg_id) - { - id = arg_id; - - return_value = - new ID(string(string(id->Name()) + "_returnvalue").c_str(), - SCOPE_FUNCTION, false); - return_value->SetType(FType()->YieldType()->Ref()); - } - -ID* Func::GetReturnValueID() const - { - return return_value; - } - TraversalCode Func::Traverse(TraversalCallback* cb) const { // FIXME: Make a fake scope for builtins? @@ -226,12 +230,6 @@ TraversalCode Func::Traverse(TraversalCallback* cb) const tc = scope->Traverse(cb); HANDLE_TC_STMT_PRE(tc); - if ( GetReturnValueID() ) - { - tc = GetReturnValueID()->Traverse(cb); - HANDLE_TC_STMT_PRE(tc); - } - for ( unsigned int i = 0; i < bodies.size(); ++i ) { tc = bodies[i].stmts->Traverse(cb); @@ -249,7 +247,8 @@ BroFunc::BroFunc(ID* arg_id, Stmt* arg_body, id_list* aggr_inits, int arg_frame_size, int priority) : Func(BRO_FUNC) { - id = arg_id; + name = arg_id->Name(); + type = arg_id->Type()->Ref(); frame_size = arg_frame_size; if ( arg_body ) @@ -263,7 +262,6 @@ BroFunc::BroFunc(ID* arg_id, Stmt* arg_body, id_list* aggr_inits, BroFunc::~BroFunc() { - Unref(id); for ( unsigned int i = 0; i < bodies.size(); ++i ) Unref(bodies[i].stmts); } @@ -378,7 +376,8 @@ Val* BroFunc::Call(val_list* args, Frame* parent) const (flow != FLOW_RETURN /* we fell off the end */ || ! result /* explicit return with no result */) && ! f->HasDelayed() ) - reporter->Warning("non-void function returns without a value: %s", id->Name()); + reporter->Warning("non-void function returns without a value: %s", + Name()); if ( result && g_trace_state.DoTrace() ) { @@ -421,8 +420,7 @@ void BroFunc::AddBody(Stmt* new_body, id_list* new_inits, int new_frame_size, void BroFunc::Describe(ODesc* d) const { - if ( id ) - id->Describe(d); + d->Add(Name()); d->NL(); d->AddCount(frame_size); @@ -450,14 +448,14 @@ IMPLEMENT_SERIAL(BroFunc, SER_BRO_FUNC); bool BroFunc::DoSerialize(SerialInfo* info) const { DO_SERIALIZE(SER_BRO_FUNC, Func); - return id->Serialize(info) && SERIALIZE(frame_size); + return SERIALIZE(frame_size); } bool BroFunc::DoUnserialize(UnserialInfo* info) { DO_UNSERIALIZE(Func); - id = ID::Unserialize(info); - return id && UNSERIALIZE(&frame_size); + + return UNSERIALIZE(&frame_size); } BuiltinFunc::BuiltinFunc(built_in_func arg_func, const char* arg_name, @@ -465,15 +463,16 @@ BuiltinFunc::BuiltinFunc(built_in_func arg_func, const char* arg_name, : Func(BUILTIN_FUNC) { func = arg_func; - name = copy_string(make_full_var_name(GLOBAL_MODULE_NAME, arg_name).c_str()); + name = make_full_var_name(GLOBAL_MODULE_NAME, arg_name); is_pure = arg_is_pure; - id = lookup_ID(name, GLOBAL_MODULE_NAME, false); + ID* id = lookup_ID(Name(), GLOBAL_MODULE_NAME, false); if ( ! id ) - reporter->InternalError("built-in function %s missing", name); + reporter->InternalError("built-in function %s missing", Name()); if ( id->HasVal() ) - reporter->InternalError("built-in function %s multiply defined", name); + reporter->InternalError("built-in function %s multiply defined", Name()); + type = id->Type()->Ref(); id->SetVal(new Val(this)); } @@ -491,7 +490,7 @@ Val* BuiltinFunc::Call(val_list* args, Frame* parent) const #ifdef PROFILE_BRO_FUNCTIONS DEBUG_MSG("Function: %s\n", Name()); #endif - SegmentProfiler(segment_logger, name); + SegmentProfiler(segment_logger, Name()); if ( sample_logger ) sample_logger->FunctionSeen(this); @@ -522,8 +521,7 @@ Val* BuiltinFunc::Call(val_list* args, Frame* parent) const void BuiltinFunc::Describe(ODesc* d) const { - if ( id ) - id->Describe(d); + d->Add(Name()); d->AddCount(is_pure); } @@ -532,16 +530,13 @@ IMPLEMENT_SERIAL(BuiltinFunc, SER_BUILTIN_FUNC); bool BuiltinFunc::DoSerialize(SerialInfo* info) const { DO_SERIALIZE(SER_BUILTIN_FUNC, Func); - - // We ignore the ID. Func::Serialize() will rebind us anyway. - return SERIALIZE(name); + return true; } bool BuiltinFunc::DoUnserialize(UnserialInfo* info) { DO_UNSERIALIZE(Func); - id = 0; - return UNSERIALIZE_STR(&name, 0); + return true; } void builtin_error(const char* msg, BroObj* arg) diff --git a/src/Func.h b/src/Func.h index 7f9627b66d..3413e0bef1 100644 --- a/src/Func.h +++ b/src/Func.h @@ -47,15 +47,11 @@ public: virtual void SetScope(Scope* newscope) { scope = newscope; } virtual Scope* GetScope() const { return scope; } - virtual FuncType* FType() const - { - return (FuncType*) id->Type()->AsFuncType(); - } + virtual FuncType* FType() const { return type->AsFuncType(); } Kind GetKind() const { return kind; } - const ID* GetID() const { return id; } - void SetID(ID *arg_id); + const char* Name() const { return name.c_str(); } virtual void Describe(ODesc* d) const = 0; virtual void DescribeDebug(ODesc* d, const val_list* args) const; @@ -64,7 +60,6 @@ public: bool Serialize(SerialInfo* info) const; static Func* Unserialize(UnserialInfo* info); - ID* GetReturnValueID() const; virtual TraversalCode Traverse(TraversalCallback* cb) const; uint32 GetUniqueFuncID() const { return unique_id; } @@ -79,8 +74,8 @@ protected: vector bodies; Scope* scope; Kind kind; - ID* id; - ID* return_value; + BroType* type; + string name; uint32 unique_id; static vector unique_ids; }; @@ -119,18 +114,16 @@ public: int IsPure() const; Val* Call(val_list* args, Frame* parent) const; - const char* Name() const { return name; } built_in_func TheFunc() const { return func; } void Describe(ODesc* d) const; protected: - BuiltinFunc() { func = 0; name = 0; is_pure = 0; } + BuiltinFunc() { func = 0; is_pure = 0; } DECLARE_SERIAL(BuiltinFunc); built_in_func func; - const char* name; int is_pure; }; diff --git a/src/Stats.cc b/src/Stats.cc index 8d48c47a25..1bccb8f9be 100644 --- a/src/Stats.cc +++ b/src/Stats.cc @@ -338,7 +338,7 @@ SampleLogger::~SampleLogger() void SampleLogger::FunctionSeen(const Func* func) { - load_samples->Assign(new StringVal(func->GetID()->Name()), 0); + load_samples->Assign(new StringVal(func->Name()), 0); } void SampleLogger::LocationSeen(const Location* loc) diff --git a/src/Trigger.cc b/src/Trigger.cc index b7e08b557e..e7e887e055 100644 --- a/src/Trigger.cc +++ b/src/Trigger.cc @@ -251,6 +251,7 @@ bool Trigger::Eval() timer_mgr->Cancel(timer); Disable(); + UnregisterAll(); Unref(this); return true; @@ -337,6 +338,7 @@ void Trigger::Timeout() } Disable(); + UnregisterAll(); Unref(this); } diff --git a/src/Trigger.h b/src/Trigger.h index 8e04fb9189..dd2e171ef6 100644 --- a/src/Trigger.h +++ b/src/Trigger.h @@ -79,7 +79,6 @@ private: friend class TriggerTimer; void Init(); - void DeleteTrigger(); void Register(ID* id); void Register(Val* val); void UnregisterAll(); diff --git a/src/input/Manager.cc b/src/input/Manager.cc index d9006d66a2..e8e12b64c4 100644 --- a/src/input/Manager.cc +++ b/src/input/Manager.cc @@ -483,7 +483,7 @@ bool Manager::CreateEventStream(RecordVal* fval) Unref(fields); // ref'd by lookupwithdefault stream->num_fields = fieldsV.size(); stream->fields = fields->Ref()->AsRecordType(); - stream->event = event_registry->Lookup(event->GetID()->Name()); + stream->event = event_registry->Lookup(event->Name()); stream->want_record = ( want_record->InternalInt() == 1 ); Unref(want_record); // ref'd by lookupwithdefault @@ -644,7 +644,7 @@ bool Manager::CreateTableStream(RecordVal* fval) stream->tab = dst->AsTableVal(); stream->rtype = val ? val->AsRecordType() : 0; stream->itype = idx->AsRecordType(); - stream->event = event ? event_registry->Lookup(event->GetID()->Name()) : 0; + stream->event = event ? event_registry->Lookup(event->Name()) : 0; stream->currDict = new PDict(InputHash); stream->currDict->SetDeleteFunc(input_hash_delete_func); stream->lastDict = new PDict(InputHash); diff --git a/src/logging/Manager.cc b/src/logging/Manager.cc index f62cd1685d..1ab83d84ba 100644 --- a/src/logging/Manager.cc +++ b/src/logging/Manager.cc @@ -365,7 +365,7 @@ bool Manager::CreateStream(EnumVal* id, RecordVal* sval) streams[idx]->id = id->Ref()->AsEnumVal(); streams[idx]->enabled = true; streams[idx]->name = id->Type()->AsEnumType()->Lookup(idx); - streams[idx]->event = event ? event_registry->Lookup(event->GetID()->Name()) : 0; + streams[idx]->event = event ? event_registry->Lookup(event->Name()) : 0; streams[idx]->columns = columns->Ref()->AsRecordType(); DBG_LOG(DBG_LOGGING, "Created new logging stream '%s', raising event %s", diff --git a/testing/btest/Baseline/language.returnwhen/bro..stdout b/testing/btest/Baseline/language.returnwhen/bro..stdout new file mode 100644 index 0000000000..d213d7bd02 --- /dev/null +++ b/testing/btest/Baseline/language.returnwhen/bro..stdout @@ -0,0 +1,12 @@ +dummy from async_func() from bro_init() +async_func() return result in bro_init(), flag in my_set +dummy from bro_init() when block +hi! +dummy from async_func() from do_another() +async_func() return result in do_another(), flag in my_set +dummy from do_another() when block +hi! +dummy from async_func() from do_another() +async_func() return result in do_another(), timeout +dummy from do_another() when block +hi! diff --git a/testing/btest/language/returnwhen.bro b/testing/btest/language/returnwhen.bro new file mode 100644 index 0000000000..593841eb7e --- /dev/null +++ b/testing/btest/language/returnwhen.bro @@ -0,0 +1,79 @@ +# @TEST-EXEC: btest-bg-run bro bro -b %INPUT +# @TEST-EXEC: btest-bg-wait 15 +# @TEST-EXEC: btest-diff bro/.stdout + +redef exit_only_after_terminate = T; + +global my_set: set[string] = set(); +global flag: string = "flag"; +global done: bool = F; + +function dummyfunc(s: string): string + { + return "dummy " + s; + } + +function async_func(s: string): string + { + print dummyfunc("from async_func() " + s); + + return when ( flag in my_set ) + { + return flag + " in my_set"; + } + timeout 3sec + { + return "timeout"; + } + } + +event set_flag() + { + add my_set[flag]; + } + +event do_another() + { + delete my_set[flag]; + + local local_dummy = dummyfunc; + + local anon = function(s: string): string { return s + "!"; }; + + if ( ! done ) + schedule 1sec { set_flag() }; + + when ( local result = async_func("from do_another()") ) + { + print "async_func() return result in do_another()", result; + print local_dummy("from do_another() when block"); + print anon("hi"); + if ( result == "timeout" ) + terminate(); + else + { + done = T; + schedule 10msec { do_another() }; + } + } + } + +event bro_init() + { + local local_dummy = dummyfunc; + + local anon = function(s: string): string { return s + "!"; }; + + schedule 1sec { set_flag() }; + + when ( local result = async_func("from bro_init()") ) + { + print "async_func() return result in bro_init()", result; + print local_dummy("from bro_init() when block"); + print anon("hi"); + if ( result == "timeout" ) terminate(); + schedule 10msec { do_another() }; + } + } + + From d158c7ffdfed8ac58e107efaba660a1d541cb7d0 Mon Sep 17 00:00:00 2001 From: Jon Siwek Date: Tue, 19 Feb 2013 16:19:16 -0600 Subject: [PATCH 08/71] Fix memory leaks resulting from 'when' and 'return when' statements. Addresses #946. --- src/Frame.cc | 1 + src/StateAccess.cc | 13 +++- src/Trigger.cc | 10 ++- src/Trigger.h | 2 +- src/Type.cc | 2 + testing/btest/core/leaks/returnwhen.bro | 84 +++++++++++++++++++++++++ 6 files changed, 106 insertions(+), 6 deletions(-) create mode 100644 testing/btest/core/leaks/returnwhen.bro diff --git a/src/Frame.cc b/src/Frame.cc index f86fa32805..8a21b02b9e 100644 --- a/src/Frame.cc +++ b/src/Frame.cc @@ -87,6 +87,7 @@ Frame* Frame::Clone() void Frame::SetTrigger(Trigger* arg_trigger) { + ClearTrigger(); if ( arg_trigger ) Ref(arg_trigger); trigger = arg_trigger; diff --git a/src/StateAccess.cc b/src/StateAccess.cc index 2d0a8dfc5a..0deaef5bb5 100644 --- a/src/StateAccess.cc +++ b/src/StateAccess.cc @@ -926,17 +926,22 @@ void NotifierRegistry::Register(ID* id, NotifierRegistry::Notifier* notifier) DBG_LOG(DBG_NOTIFIERS, "registering ID %s for notifier %s", id->Name(), notifier->Name()); + Attr* attr = new Attr(ATTR_TRACKED); + if ( id->Attrs() ) - id->Attrs()->AddAttr(new Attr(ATTR_TRACKED)); + { + if ( ! id->Attrs()->FindAttr(ATTR_TRACKED) ) + id->Attrs()->AddAttr(attr); + } else { attr_list* a = new attr_list; - Attr* attr = new Attr(ATTR_TRACKED); a->append(attr); id->SetAttrs(new Attributes(a, id->Type(), false)); - Unref(attr); } + Unref(attr); + NotifierMap::iterator i = ids.find(id->Name()); if ( i != ids.end() ) @@ -967,7 +972,9 @@ void NotifierRegistry::Unregister(ID* id, NotifierRegistry::Notifier* notifier) if ( i == ids.end() ) return; + Attr* attr = id->Attrs()->FindAttr(ATTR_TRACKED); id->Attrs()->RemoveAttr(ATTR_TRACKED); + Unref(attr); NotifierSet* s = i->second; s->erase(notifier); diff --git a/src/Trigger.cc b/src/Trigger.cc index e7e887e055..a567528232 100644 --- a/src/Trigger.cc +++ b/src/Trigger.cc @@ -242,6 +242,7 @@ bool Trigger::Eval() trigger->Cache(frame->GetCall(), v); trigger->Release(); + frame->ClearTrigger(); } Unref(v); @@ -251,7 +252,6 @@ bool Trigger::Eval() timer_mgr->Cancel(timer); Disable(); - UnregisterAll(); Unref(this); return true; @@ -331,6 +331,7 @@ void Trigger::Timeout() #endif trigger->Cache(frame->GetCall(), v); trigger->Release(); + frame->ClearTrigger(); } Unref(v); @@ -338,7 +339,6 @@ void Trigger::Timeout() } Disable(); - UnregisterAll(); Unref(this); } @@ -426,6 +426,12 @@ Val* Trigger::Lookup(const CallExpr* expr) return (i != cache.end()) ? i->second : 0; } +void Trigger::Disable() + { + UnregisterAll(); + disabled = true; + } + const char* Trigger::Name() const { assert(location); diff --git a/src/Trigger.h b/src/Trigger.h index dd2e171ef6..b752ea8ada 100644 --- a/src/Trigger.h +++ b/src/Trigger.h @@ -49,7 +49,7 @@ public: // Disable this trigger completely. Needed because Unref'ing the trigger // may not immediately delete it as other references may still exist. - void Disable() { disabled = true; } + void Disable(); virtual void Describe(ODesc* d) const { d->Add(""); } diff --git a/src/Type.cc b/src/Type.cc index 1fb813efa1..6ac6070660 100644 --- a/src/Type.cc +++ b/src/Type.cc @@ -696,7 +696,9 @@ string FuncType::FlavorString() const FuncType::~FuncType() { + Unref(args); Unref(arg_types); + Unref(yield); } BroType* FuncType::YieldType() diff --git a/testing/btest/core/leaks/returnwhen.bro b/testing/btest/core/leaks/returnwhen.bro new file mode 100644 index 0000000000..9fd9a794cd --- /dev/null +++ b/testing/btest/core/leaks/returnwhen.bro @@ -0,0 +1,84 @@ +# Needs perftools support. +# +# @TEST-GROUP: leaks +# +# @TEST-REQUIRES: bro --help 2>&1 | grep -q mem-leaks +# +# @TEST-EXEC: btest-bg-run bro HEAP_CHECK_DUMP_DIRECTORY=. HEAPCHECK=local bro -m -b %INPUT +# @TEST-EXEC: btest-bg-wait 15 + +redef exit_only_after_terminate = T; + +global my_set: set[string] = set(); +global flag: string = "flag"; +global done: bool = F; + +function dummyfunc(s: string): string + { + return "dummy " + s; + } + +function async_func(s: string): string + { + print dummyfunc("from async_func() " + s); + + return when ( flag in my_set ) + { + return flag + " in my_set"; + } + timeout 3sec + { + return "timeout"; + } + } + +event set_flag() + { + add my_set[flag]; + } + +event do_another() + { + delete my_set[flag]; + + local local_dummy = dummyfunc; + + local anon = function(s: string): string { return s + "!"; }; + + if ( ! done ) + schedule 1sec { set_flag() }; + + when ( local result = async_func("from do_another()") ) + { + print "async_func() return result in do_another()", result; + print local_dummy("from do_another() when block"); + print anon("hi"); + if ( result == "timeout" ) + terminate(); + else + { + done = T; + schedule 10msec { do_another() }; + } + } + } + +event bro_init() + { + local local_dummy = dummyfunc; + + local anon = function(s: string): string { return s + "!"; }; + + schedule 1sec { set_flag() }; + + when ( local result = async_func("from bro_init()") ) + { + print "async_func() return result in bro_init()", result; + print local_dummy("from bro_init() when block"); + print anon("hi"); + if ( result == "timeout" ) terminate(); + schedule 10msec { do_another() }; + } + } + + From dd9f361bc739f5aa4bc11f70569499e9115d0d50 Mon Sep 17 00:00:00 2001 From: Jon Siwek Date: Fri, 22 Feb 2013 10:45:22 -0600 Subject: [PATCH 09/71] Fix build on OpenBSD 5.2. --- src/bro_inet_ntop.h | 1 + src/threading/SerialTypes.h | 1 + 2 files changed, 2 insertions(+) diff --git a/src/bro_inet_ntop.h b/src/bro_inet_ntop.h index 00326b092e..c018403893 100644 --- a/src/bro_inet_ntop.h +++ b/src/bro_inet_ntop.h @@ -5,6 +5,7 @@ extern "C" { #endif +#include #include const char * diff --git a/src/threading/SerialTypes.h b/src/threading/SerialTypes.h index 60aee2411e..f4f0bc0957 100644 --- a/src/threading/SerialTypes.h +++ b/src/threading/SerialTypes.h @@ -2,6 +2,7 @@ #ifndef THREADING_SERIALIZATIONTYPES_H #define THREADING_SERIALIZATIONTYPES_H +#include #include #include #include From 4b30cc2e24d3fe5223645a26f4f7c8f654186f67 Mon Sep 17 00:00:00 2001 From: Jon Siwek Date: Fri, 22 Feb 2013 16:49:53 -0600 Subject: [PATCH 10/71] Add file analysis action to send data to script-land in chosen events. --- .../base/frameworks/file-analysis/main.bro | 5 ++ src/CMakeLists.txt | 1 + src/file_analysis.bif | 13 ++-- src/file_analysis/DataEvent.cc | 69 +++++++++++++++++++ src/file_analysis/DataEvent.h | 34 +++++++++ src/file_analysis/Hash.cc | 2 +- src/file_analysis/Info.cc | 8 ++- src/file_analysis/Info.h | 13 ++-- src/file_analysis/InfoTimer.cc | 4 +- src/file_analysis/Manager.cc | 2 +- 10 files changed, 134 insertions(+), 17 deletions(-) create mode 100644 src/file_analysis/DataEvent.cc create mode 100644 src/file_analysis/DataEvent.h diff --git a/scripts/base/frameworks/file-analysis/main.bro b/scripts/base/frameworks/file-analysis/main.bro index 43c0c7a3ac..49e8ed363a 100644 --- a/scripts/base/frameworks/file-analysis/main.bro +++ b/scripts/base/frameworks/file-analysis/main.bro @@ -33,8 +33,13 @@ export { ## TODO: what's a reasonable default? const default_data_event_len: count = 1024*1024 &redef; + # Needed a forward declaration for event parameters... + type Info: record {}; + type ActionArgs: record { extract_filename: string &optional; + chunk_event: event(info: Info, data: string, off: count) &optional; + stream_event: event(info: Info, data: string) &optional; }; type ActionResults: record { diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index b1efabf60e..3f8fd07be5 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -455,6 +455,7 @@ set(bro_SRCS file_analysis/Action.h file_analysis/Extract.cc file_analysis/Hash.cc + file_analysis/DataEvent.cc nb_dns.c digest.h diff --git a/src/file_analysis.bif b/src/file_analysis.bif index 3ee8865b8f..a814f2e574 100644 --- a/src/file_analysis.bif +++ b/src/file_analysis.bif @@ -61,11 +61,12 @@ enum Action %{ ACTION_MD5, ACTION_SHA1, ACTION_SHA256, + ACTION_DATA_EVENT, %} function FileAnalysis::postpone_timeout%(file_id: string%): bool %{ - using namespace file_analysis; + using file_analysis::FileID; bool result = file_mgr->PostponeTimeout(FileID(file_id->CheckString())); return new Val(result, TYPE_BOOL); %} @@ -74,9 +75,9 @@ function FileAnalysis::add_action%(file_id: string, action: FileAnalysis::Action, args: any%): bool %{ - using namespace file_analysis; - RecordVal* rv = args->AsRecordVal()->CoerceTo( - BifType::Record::FileAnalysis::ActionArgs); + using file_analysis::FileID; + using BifType::Record::FileAnalysis::ActionArgs; + RecordVal* rv = args->AsRecordVal()->CoerceTo(ActionArgs); bool result = file_mgr->AddAction(FileID(file_id->CheckString()), action->AsEnumVal(), rv); Unref(rv); @@ -86,7 +87,7 @@ function FileAnalysis::add_action%(file_id: string, function FileAnalysis::remove_action%(file_id: string, action: FileAnalysis::Action%): bool %{ - using namespace file_analysis; + using file_analysis::FileID; bool result = file_mgr->RemoveAction(FileID(file_id->CheckString()), action->AsEnumVal()); return new Val(result, TYPE_BOOL); @@ -94,7 +95,7 @@ function FileAnalysis::remove_action%(file_id: string, function FileAnalysis::stop%(file_id: string%): bool %{ - using namespace file_analysis; + using file_analysis::FileID; bool result = file_mgr->RemoveFile(FileID(file_id->CheckString())); return new Val(result, TYPE_BOOL); %} diff --git a/src/file_analysis/DataEvent.cc b/src/file_analysis/DataEvent.cc new file mode 100644 index 0000000000..fb8e4e39aa --- /dev/null +++ b/src/file_analysis/DataEvent.cc @@ -0,0 +1,69 @@ +#include + +#include "DataEvent.h" +#include "EventRegistry.h" +#include "Event.h" +#include "util.h" + +using namespace file_analysis; + +DataEvent::DataEvent(Info* arg_info, EventHandlerPtr ce, EventHandlerPtr se) + : Action(arg_info, BifEnum::FileAnalysis::ACTION_DATA_EVENT), + chunk_event(ce), stream_event(se) + { + } + +Action* DataEvent::Instantiate(const RecordVal* args, Info* info) + { + using BifType::Record::FileAnalysis::ActionArgs; + + const char* chunk_field = "chunk_event"; + const char* stream_field = "stream_event"; + int chunk_off = ActionArgs->FieldOffset(chunk_field); + int stream_off = ActionArgs->FieldOffset(stream_field); + + Val* chunk_val = args->Lookup(chunk_off); + Val* stream_val = args->Lookup(stream_off); + + if ( ! chunk_val && ! stream_val ) return 0; + + EventHandlerPtr chunk; + EventHandlerPtr stream; + + if ( chunk_val ) + chunk = event_registry->Lookup(chunk_val->AsFunc()->GetID()->Name()); + + if ( stream_val ) + stream = event_registry->Lookup(stream_val->AsFunc()->GetID()->Name()); + + return new DataEvent(info, chunk, stream); + } + +bool DataEvent::DeliverChunk(const u_char* data, uint64 len, uint64 offset) + { + Action::DeliverChunk(data, len, offset); + + if ( ! chunk_event ) return true; + + val_list* args = new val_list; + args->append(info->GetVal()->Ref()); + args->append(new StringVal(new BroString(data, len, 0))); + args->append(new Val(offset, TYPE_COUNT)); + mgr.QueueEvent(chunk_event, args); + + return true; + } + +bool DataEvent::DeliverStream(const u_char* data, uint64 len) + { + Action::DeliverStream(data, len); + + if ( ! stream_event ) return true; + + val_list* args = new val_list; + args->append(info->GetVal()->Ref()); + args->append(new StringVal(new BroString(data, len, 0))); + mgr.QueueEvent(stream_event, args); + + return true; + } diff --git a/src/file_analysis/DataEvent.h b/src/file_analysis/DataEvent.h new file mode 100644 index 0000000000..e7df47cc8c --- /dev/null +++ b/src/file_analysis/DataEvent.h @@ -0,0 +1,34 @@ +#ifndef FILE_ANALYSIS_DATAEVENT_H +#define FILE_ANALYSIS_DATAEVENT_H + +#include + +#include "Val.h" +#include "Info.h" +#include "Action.h" + +namespace file_analysis { + +/** + * An action to send file data to script-layer events. + */ +class DataEvent : public Action { +public: + + static Action* Instantiate(const RecordVal* args, Info* info); + + virtual bool DeliverChunk(const u_char* data, uint64 len, uint64 offset); + + virtual bool DeliverStream(const u_char* data, uint64 len); + +protected: + + DataEvent(Info* arg_info, EventHandlerPtr ce, EventHandlerPtr se); + + EventHandlerPtr chunk_event; + EventHandlerPtr stream_event; +}; + +} // namespace file_analysis + +#endif diff --git a/src/file_analysis/Hash.cc b/src/file_analysis/Hash.cc index 1bb8e48e5d..7a095039f4 100644 --- a/src/file_analysis/Hash.cc +++ b/src/file_analysis/Hash.cc @@ -50,5 +50,5 @@ void Hash::Finalize() if ( i < 0 ) reporter->InternalError("Hash Action result field not found"); - info->Results()->Assign(i, sv); + info->GetResults()->Assign(i, sv); } diff --git a/src/file_analysis/Info.cc b/src/file_analysis/Info.cc index e2e0961c28..ad4ebb2074 100644 --- a/src/file_analysis/Info.cc +++ b/src/file_analysis/Info.cc @@ -9,6 +9,7 @@ #include "Action.h" #include "Extract.h" #include "Hash.h" +#include "DataEvent.h" using namespace file_analysis; @@ -18,6 +19,7 @@ static ActionInstantiator action_factory[] = { MD5::Instantiate, SHA1::Instantiate, SHA256::Instantiate, + DataEvent::Instantiate, }; static TableVal* empty_conn_id_set() @@ -150,12 +152,12 @@ int Info::Idx(const string& field) return rval; } -double Info::TimeoutInterval() const +double Info::GetTimeoutInterval() const { return LookupFieldDefaultInterval(timeout_interval_idx); } -RecordVal* Info::Results() const +RecordVal* Info::GetResults() const { return val->Lookup(action_results_idx)->AsRecordVal(); } @@ -182,7 +184,7 @@ bool Info::IsComplete() const void Info::ScheduleInactivityTimer() const { - timer_mgr->Add(new InfoTimer(network_time, file_id, TimeoutInterval())); + timer_mgr->Add(new InfoTimer(network_time, file_id, GetTimeoutInterval())); } bool Info::AddAction(ActionTag act, RecordVal* args) diff --git a/src/file_analysis/Info.h b/src/file_analysis/Info.h index 7a89e7d898..e61e375ec1 100644 --- a/src/file_analysis/Info.h +++ b/src/file_analysis/Info.h @@ -19,10 +19,15 @@ public: ~Info(); + /** + * @return the #val record. + */ + RecordVal* GetVal() const { return val; } + /** * @return value (seconds) of the "timeout_interval" field from #val record. */ - double TimeoutInterval() const; + double GetTimeoutInterval() const; /** * @return value of the "file_id" field from #val record. @@ -32,17 +37,17 @@ public: /** * @return record val of the "action_results" field from #val record. */ - RecordVal* Results() const; + RecordVal* GetResults() const; /** * @return the string which uniquely identifies the file. */ - string Unique() const { return unique; } + string GetUnique() const { return unique; } /** * @return #last_activity_time */ - double LastActivityTime() const { return last_activity_time; } + double GetLastActivityTime() const { return last_activity_time; } /** * Refreshes #last_activity_time with current network time. diff --git a/src/file_analysis/InfoTimer.cc b/src/file_analysis/InfoTimer.cc index f1bb524d40..c855d0a54d 100644 --- a/src/file_analysis/InfoTimer.cc +++ b/src/file_analysis/InfoTimer.cc @@ -9,7 +9,7 @@ void InfoTimer::Dispatch(double t, int is_expire) if ( ! info ) return; - double last_active = info->LastActivityTime(); + double last_active = info->GetLastActivityTime(); double inactive_time = t > last_active ? t - last_active : 0.0; DBG_LOG(DBG_FILE_ANALYSIS, "Checking inactivity for %s, last active at %f, " @@ -23,7 +23,7 @@ void InfoTimer::Dispatch(double t, int is_expire) return; } - if ( inactive_time >= info->TimeoutInterval() ) + if ( inactive_time >= info->GetTimeoutInterval() ) file_mgr->Timeout(file_id); else if ( ! is_expire ) info->ScheduleInactivityTimer(); diff --git a/src/file_analysis/Manager.cc b/src/file_analysis/Manager.cc index dbb8366ded..7b0df9055b 100644 --- a/src/file_analysis/Manager.cc +++ b/src/file_analysis/Manager.cc @@ -185,7 +185,7 @@ bool Manager::RemoveFile(const FileID& file_id) if ( it == id_map.end() ) return false; - if ( ! str_map.erase(it->second->Unique()) ) + if ( ! str_map.erase(it->second->GetUnique()) ) reporter->Error("No string mapping for file ID %s", file_id.c_str()); delete it->second; id_map.erase(it); From 691622b3aa2a3eda82d0f7565f8f9f3675ea55dc Mon Sep 17 00:00:00 2001 From: Jon Siwek Date: Mon, 25 Feb 2013 16:35:42 -0600 Subject: [PATCH 11/71] Refactor how file analysis actions are tracked. The Info record now uses a "table[ActionArgs] of ActionResults", which allows for simultaneous actions of a given type as long as other args (fields in the ActionArgs record) are different. --- .../base/frameworks/file-analysis/main.bro | 10 +- src/file_analysis.bif | 16 +- src/file_analysis/Action.h | 35 +++- src/file_analysis/DataEvent.cc | 10 +- src/file_analysis/DataEvent.h | 5 +- src/file_analysis/Extract.cc | 13 +- src/file_analysis/Extract.h | 4 +- src/file_analysis/Hash.cc | 16 +- src/file_analysis/Hash.h | 44 ++--- src/file_analysis/Info.cc | 181 ++++++++++++------ src/file_analysis/Info.h | 39 ++-- src/file_analysis/Manager.cc | 9 +- src/file_analysis/Manager.h | 9 +- 13 files changed, 233 insertions(+), 158 deletions(-) diff --git a/scripts/base/frameworks/file-analysis/main.bro b/scripts/base/frameworks/file-analysis/main.bro index 49e8ed363a..7e0096f78b 100644 --- a/scripts/base/frameworks/file-analysis/main.bro +++ b/scripts/base/frameworks/file-analysis/main.bro @@ -37,6 +37,7 @@ export { type Info: record {}; type ActionArgs: record { + act: Action; extract_filename: string &optional; chunk_event: event(info: Info, data: string, off: count) &optional; stream_event: event(info: Info, data: string) &optional; @@ -88,13 +89,8 @@ export { timeout_interval: interval &log &default=default_timeout_interval; ## Actions that have been added to the analysis of this file. - actions: vector of Action &default=vector(); - - ## The corresponding arguments supplied to each element of *actions*. - action_args: vector of ActionArgs &default=vector(); - - ## Some actions may directly yield results in this record. - action_results: ActionResults; + ## Not meant to be modified directly by scripts. + actions: table[ActionArgs] of ActionResults; } &redef; ## TODO: document diff --git a/src/file_analysis.bif b/src/file_analysis.bif index a814f2e574..81a3490d47 100644 --- a/src/file_analysis.bif +++ b/src/file_analysis.bif @@ -71,25 +71,23 @@ function FileAnalysis::postpone_timeout%(file_id: string%): bool return new Val(result, TYPE_BOOL); %} -function FileAnalysis::add_action%(file_id: string, - action: FileAnalysis::Action, - args: any%): bool +function FileAnalysis::add_action%(file_id: string, args: any%): bool %{ using file_analysis::FileID; using BifType::Record::FileAnalysis::ActionArgs; RecordVal* rv = args->AsRecordVal()->CoerceTo(ActionArgs); - bool result = file_mgr->AddAction(FileID(file_id->CheckString()), - action->AsEnumVal(), rv); + bool result = file_mgr->AddAction(FileID(file_id->CheckString()), rv); Unref(rv); return new Val(result, TYPE_BOOL); %} -function FileAnalysis::remove_action%(file_id: string, - action: FileAnalysis::Action%): bool +function FileAnalysis::remove_action%(file_id: string, args: any%): bool %{ using file_analysis::FileID; - bool result = file_mgr->RemoveAction(FileID(file_id->CheckString()), - action->AsEnumVal()); + using BifType::Record::FileAnalysis::ActionArgs; + RecordVal* rv = args->AsRecordVal()->CoerceTo(ActionArgs); + bool result = file_mgr->RemoveAction(FileID(file_id->CheckString()), rv); + Unref(rv); return new Val(result, TYPE_BOOL); %} diff --git a/src/file_analysis/Action.h b/src/file_analysis/Action.h index 78611b4ef1..8461b4b4d3 100644 --- a/src/file_analysis/Action.h +++ b/src/file_analysis/Action.h @@ -16,7 +16,11 @@ class Info; class Action { public: - virtual ~Action() {} + virtual ~Action() + { + DBG_LOG(DBG_FILE_ANALYSIS, "Destroy action %d", tag); + Unref(args); + } /** * Subclasses may override this to receive file data non-sequentially. @@ -50,17 +54,40 @@ public: virtual bool Undelivered(uint64 offset, uint64 len) { return true; } + /** + * @return the action type enum value. + */ ActionTag Tag() const { return tag; } + /** + * @return the ActionArgs associated with the aciton. + */ + RecordVal* Args() const { return args; } + + /** + * @return the action tag equivalent of the 'act' field from the ActionArgs + * value \a args. + */ + static ActionTag ArgsTag(const RecordVal* args) + { + using BifType::Record::FileAnalysis::ActionArgs; + return static_cast( + args->Lookup(ActionArgs->FieldOffset("act"))->AsEnum()); + } + protected: - Action(Info* arg_info, ActionTag arg_tag) : info(arg_info), tag(arg_tag) {} + Action(RecordVal* arg_args, Info* arg_info) + : tag(Action::ArgsTag(arg_args)), args(arg_args->Ref()->AsRecordVal()), + info(arg_info) + {} - Info* info; ActionTag tag; + RecordVal* args; + Info* info; }; -typedef Action* (*ActionInstantiator)(const RecordVal* args, Info* info); +typedef Action* (*ActionInstantiator)(RecordVal* args, Info* info); } // namespace file_analysis diff --git a/src/file_analysis/DataEvent.cc b/src/file_analysis/DataEvent.cc index fb8e4e39aa..9c1084c1cf 100644 --- a/src/file_analysis/DataEvent.cc +++ b/src/file_analysis/DataEvent.cc @@ -7,13 +7,13 @@ using namespace file_analysis; -DataEvent::DataEvent(Info* arg_info, EventHandlerPtr ce, EventHandlerPtr se) - : Action(arg_info, BifEnum::FileAnalysis::ACTION_DATA_EVENT), - chunk_event(ce), stream_event(se) +DataEvent::DataEvent(RecordVal* args, Info* info, + EventHandlerPtr ce, EventHandlerPtr se) + : Action(args, info), chunk_event(ce), stream_event(se) { } -Action* DataEvent::Instantiate(const RecordVal* args, Info* info) +Action* DataEvent::Instantiate(RecordVal* args, Info* info) { using BifType::Record::FileAnalysis::ActionArgs; @@ -36,7 +36,7 @@ Action* DataEvent::Instantiate(const RecordVal* args, Info* info) if ( stream_val ) stream = event_registry->Lookup(stream_val->AsFunc()->GetID()->Name()); - return new DataEvent(info, chunk, stream); + return new DataEvent(args, info, chunk, stream); } bool DataEvent::DeliverChunk(const u_char* data, uint64 len, uint64 offset) diff --git a/src/file_analysis/DataEvent.h b/src/file_analysis/DataEvent.h index e7df47cc8c..083b40bbdc 100644 --- a/src/file_analysis/DataEvent.h +++ b/src/file_analysis/DataEvent.h @@ -15,7 +15,7 @@ namespace file_analysis { class DataEvent : public Action { public: - static Action* Instantiate(const RecordVal* args, Info* info); + static Action* Instantiate(RecordVal* args, Info* info); virtual bool DeliverChunk(const u_char* data, uint64 len, uint64 offset); @@ -23,7 +23,8 @@ public: protected: - DataEvent(Info* arg_info, EventHandlerPtr ce, EventHandlerPtr se); + DataEvent(RecordVal* args, Info* info, + EventHandlerPtr ce, EventHandlerPtr se); EventHandlerPtr chunk_event; EventHandlerPtr stream_event; diff --git a/src/file_analysis/Extract.cc b/src/file_analysis/Extract.cc index 3a4897e5cb..76bd9bdee2 100644 --- a/src/file_analysis/Extract.cc +++ b/src/file_analysis/Extract.cc @@ -5,9 +5,8 @@ using namespace file_analysis; -Extract::Extract(Info* arg_info, const string& arg_filename) - : Action(arg_info, BifEnum::FileAnalysis::ACTION_EXTRACT), - filename(arg_filename) +Extract::Extract(RecordVal* args, Info* info, const string& arg_filename) + : Action(args, info), filename(arg_filename) { fd = open(filename.c_str(), O_WRONLY | O_CREAT | O_TRUNC, 0666); @@ -26,15 +25,15 @@ Extract::~Extract() safe_close(fd); } -Action* Extract::Instantiate(const RecordVal* args, Info* info) +Action* Extract::Instantiate(RecordVal* args, Info* info) { + using BifType::Record::FileAnalysis::ActionArgs; const char* field = "extract_filename"; - int off = BifType::Record::FileAnalysis::ActionArgs->FieldOffset(field); - Val* v = args->Lookup(off); + Val* v = args->Lookup(ActionArgs->FieldOffset(field)); if ( ! v ) return 0; - return new Extract(info, v->AsString()->CheckString()); + return new Extract(args, info, v->AsString()->CheckString()); } bool Extract::DeliverChunk(const u_char* data, uint64 len, uint64 offset) diff --git a/src/file_analysis/Extract.h b/src/file_analysis/Extract.h index df03d40967..47bcf202cb 100644 --- a/src/file_analysis/Extract.h +++ b/src/file_analysis/Extract.h @@ -15,7 +15,7 @@ namespace file_analysis { class Extract : public Action { public: - static Action* Instantiate(const RecordVal* args, Info* info); + static Action* Instantiate(RecordVal* args, Info* info); virtual ~Extract(); @@ -23,7 +23,7 @@ public: protected: - Extract(Info* arg_info, const string& arg_filename); + Extract(RecordVal* args, Info* info, const string& arg_filename); string filename; int fd; diff --git a/src/file_analysis/Hash.cc b/src/file_analysis/Hash.cc index 7a095039f4..43cfcb74a7 100644 --- a/src/file_analysis/Hash.cc +++ b/src/file_analysis/Hash.cc @@ -5,9 +5,12 @@ using namespace file_analysis; -Hash::Hash(Info* arg_info, ActionTag tag, HashVal* hv) - : Action(arg_info, tag), hash(hv) +Hash::Hash(RecordVal* args, Info* info, HashVal* hv, const char* field) + : Action(args, info), hash(hv) { + using BifType::Record::FileAnalysis::ActionResults; + if ( (result_field_idx = ActionResults->FieldOffset(field)) < 0 ) + reporter->InternalError("Missing ActionResults field: %s", field); hash->Init(); } @@ -15,7 +18,7 @@ Hash::~Hash() { // maybe it's all there... Finalize(); - delete hash; + Unref(hash); } bool Hash::DeliverStream(const u_char* data, uint64 len) @@ -45,10 +48,5 @@ void Hash::Finalize() if ( ! hash->IsValid() ) return; StringVal* sv = hash->Get(); - int i = GetResultFieldOffset(); - - if ( i < 0 ) - reporter->InternalError("Hash Action result field not found"); - - info->GetResults()->Assign(i, sv); + info->GetResults(args)->Assign(result_field_idx, sv); } diff --git a/src/file_analysis/Hash.h b/src/file_analysis/Hash.h index 8b101ac7b6..18c4166237 100644 --- a/src/file_analysis/Hash.h +++ b/src/file_analysis/Hash.h @@ -26,61 +26,51 @@ public: protected: - Hash(Info* arg_info, ActionTag arg_tag, HashVal* hv); + Hash(RecordVal* args, Info* info, HashVal* hv, const char* field); void Finalize(); - virtual int GetResultFieldOffset() const = 0; - HashVal* hash; + int result_field_idx; }; class MD5 : public Hash { public: - static Action* Instantiate(const RecordVal* args, Info* info) - { return new MD5(info); } + static Action* Instantiate(RecordVal* args, Info* info) + { return new MD5(args, info); } protected: - MD5(Info* arg_info) - : Hash(arg_info, BifEnum::FileAnalysis::ACTION_MD5, new MD5Val()) {} - - virtual int GetResultFieldOffset() const - { return BifType::Record::FileAnalysis::ActionResults-> - FieldOffset("md5"); } + MD5(RecordVal* args, Info* info) + : Hash(args, info, new MD5Val(), "md5") + {} }; class SHA1 : public Hash { public: - static Action* Instantiate(const RecordVal* args, Info* info) - { return new SHA1(info); } + static Action* Instantiate(RecordVal* args, Info* info) + { return new SHA1(args, info); } protected: - SHA1(Info* arg_info) - : Hash(arg_info, BifEnum::FileAnalysis::ACTION_SHA1, new SHA1Val()) {} - - virtual int GetResultFieldOffset() const - { return BifType::Record::FileAnalysis::ActionResults-> - FieldOffset("sha1"); } + SHA1(RecordVal* args, Info* info) + : Hash(args, info, new SHA1Val(), "sha1") + {} }; class SHA256 : public Hash { public: - static Action* Instantiate(const RecordVal* args, Info* info) - { return new SHA256(info); } + static Action* Instantiate(RecordVal* args, Info* info) + { return new SHA256(args, info); } protected: - SHA256(Info* arg_info) - : Hash(arg_info, BifEnum::FileAnalysis::ACTION_SHA256, new SHA256Val()) {} - - virtual int GetResultFieldOffset() const - { return BifType::Record::FileAnalysis::ActionResults-> - FieldOffset("sha256"); } + SHA256(RecordVal* args, Info* info) + : Hash(args, info, new SHA256Val(), "sha256") + {} }; } // namespace file_analysis diff --git a/src/file_analysis/Info.cc b/src/file_analysis/Info.cc index ad4ebb2074..6b135bab6c 100644 --- a/src/file_analysis/Info.cc +++ b/src/file_analysis/Info.cc @@ -5,6 +5,7 @@ #include "FileID.h" #include "Reporter.h" #include "Val.h" +#include "Type.h" #include "Action.h" #include "Extract.h" @@ -58,8 +59,6 @@ int Info::missing_bytes_idx = -1; int Info::overflow_bytes_idx = -1; int Info::timeout_interval_idx = -1; int Info::actions_idx = -1; -int Info::action_args_idx = -1; -int Info::action_results_idx = -1; void Info::InitFieldIndices() { @@ -75,8 +74,11 @@ void Info::InitFieldIndices() overflow_bytes_idx = Idx("overflow_bytes"); timeout_interval_idx = Idx("timeout_interval"); actions_idx = Idx("actions"); - action_args_idx = Idx("action_args"); - action_results_idx = Idx("action_results"); + } + +static void action_del_func(void* v) + { + delete (Action*) v; } Info::Info(const string& unique, Connection* conn, const string& protocol) @@ -94,6 +96,12 @@ Info::Info(const string& unique, Connection* conn, const string& protocol) val->Assign(file_id_idx, new StringVal(id)); file_id = FileID(id); + TypeList* t = new TypeList(); + t->Append(BifType::Record::FileAnalysis::ActionArgs->Ref()); + action_hash = new CompositeHash(t); + Unref(t); + action_map.SetDeleteFunc(action_del_func); + UpdateConnectionFields(conn); if ( protocol != "" ) @@ -104,11 +112,8 @@ Info::Info(const string& unique, Connection* conn, const string& protocol) Info::~Info() { - ActionMap::const_iterator it; - for ( it = actions.begin(); it != actions.end(); ++it ) - delete it->second; - - DBG_LOG(DBG_FILE_ANALYSIS, "Destroying Info object %s",file_id.c_str()); + DBG_LOG(DBG_FILE_ANALYSIS, "Destroying Info object %s", file_id.c_str()); + delete action_hash; Unref(val); } @@ -157,9 +162,18 @@ double Info::GetTimeoutInterval() const return LookupFieldDefaultInterval(timeout_interval_idx); } -RecordVal* Info::GetResults() const +RecordVal* Info::GetResults(RecordVal* args) const { - return val->Lookup(action_results_idx)->AsRecordVal(); + TableVal* actions_table = val->Lookup(actions_idx)->AsTableVal(); + RecordVal* rval = actions_table->Lookup(args)->AsRecordVal(); + + if ( ! rval ) + { + rval = new RecordVal(BifType::Record::FileAnalysis::ActionResults); + actions_table->Assign(args, rval); + } + + return rval; } void Info::IncrementByteCount(uint64 size, int field_idx) @@ -187,59 +201,91 @@ void Info::ScheduleInactivityTimer() const timer_mgr->Add(new InfoTimer(network_time, file_id, GetTimeoutInterval())); } -bool Info::AddAction(ActionTag act, RecordVal* args) +bool Info::AddAction(RecordVal* args) { - if ( actions.find(act) != actions.end() ) return false; + HashKey* key = action_hash->ComputeHash(args, 1); - ActionTag tag = static_cast(act); + if ( ! key ) + reporter->InternalError("ActionArgs type mismatch in add_action"); - Action* a = action_factory[act](args, this); + Action* act = action_map.Lookup(key); - if ( ! a ) return false; + if ( act ) + { + DBG_LOG(DBG_FILE_ANALYSIS, "Add action %d skipped for already active" + " action on file id %s", act->Tag(), file_id.c_str()); + delete key; + return false; + } - DBG_LOG(DBG_FILE_ANALYSIS, "Add action %d for file id %s", act, + act = action_factory[Action::ArgsTag(args)](args, this); + + if ( ! act ) + { + DBG_LOG(DBG_FILE_ANALYSIS, "Failed to instantiate action %d" + " on file id %s", Action::ArgsTag(args), file_id.c_str()); + delete key; + return false; + } + + DBG_LOG(DBG_FILE_ANALYSIS, "Add action %d for file id %s", act->Tag(), file_id.c_str()); - actions[act] = a; - VectorVal* av = val->LookupWithDefault(actions_idx)->AsVectorVal(); - VectorVal* aav = val->LookupWithDefault(action_args_idx)->AsVectorVal(); - - EnumVal* ev = new EnumVal(act, BifType::Enum::FileAnalysis::Action); - av->Assign(av->Size(), ev, 0); - aav->Assign(aav->Size(), args->Ref(), 0); - - Unref(av); - Unref(aav); + action_map.Insert(key, act); + val->Lookup(actions_idx)->AsTableVal()->Assign(args, + new RecordVal(BifType::Record::FileAnalysis::ActionResults)); return true; } -bool Info::RemoveAction(ActionTag act) +void Info::ScheduleRemoval(const Action* act) { - ActionMap::iterator it = actions.find(act); - - if ( it == actions.end() ) return false; - - return RemoveAction(it); + removing.push_back(act->Args()); } -bool Info::RemoveAction(const ActionMap::iterator& it) +void Info::DoActionRemoval() { - DBG_LOG(DBG_FILE_ANALYSIS, "Remove action %d for file id %s", it->first, + ActionArgList::iterator it; + for ( it = removing.begin(); it != removing.end(); ++it ) + RemoveAction(*it); + removing.clear(); + } + +bool Info::RemoveAction(const RecordVal* args) + { + HashKey* key = action_hash->ComputeHash(args, 1); + + if ( ! key ) + reporter->InternalError("ActionArgs type mismatch in remove_action"); + + Action* act = (Action*) action_map.Remove(key); + delete key; + + if ( ! act ) + { + DBG_LOG(DBG_FILE_ANALYSIS, "Skip remove action %d for file id %s", + Action::ArgsTag(args), file_id.c_str()); + return false; + } + + DBG_LOG(DBG_FILE_ANALYSIS, "Remove action %d for file id %s", act->Tag(), file_id.c_str()); - delete it->second; - actions.erase(it); + delete act; return true; } void Info::DataIn(const u_char* data, uint64 len, uint64 offset) { - ActionMap::iterator it = actions.begin(); - while ( it != actions.end() ) - if ( ! it->second->DeliverChunk(data, len, offset) ) - RemoveAction(it++); - else - ++it; + Action* act = 0; + IterCookie* c = action_map.InitForIteration(); + + while ( (act = action_map.NextEntry(c)) ) + { + if ( ! act->DeliverChunk(data, len, offset) ) + ScheduleRemoval(act); + } + + DoActionRemoval(); // TODO: check reassembly requirement based on buffer size in record if ( need_reassembly ) @@ -255,45 +301,54 @@ void Info::DataIn(const u_char* data, uint64 len, uint64 offset) void Info::DataIn(const u_char* data, uint64 len) { - ActionMap::iterator it = actions.begin(); - while ( it != actions.end() ) + Action* act = 0; + IterCookie* c = action_map.InitForIteration(); + + while ( (act = action_map.NextEntry(c)) ) { - if ( ! it->second->DeliverStream(data, len) ) + if ( ! act->DeliverStream(data, len) ) { - RemoveAction(it++); + ScheduleRemoval(act); continue; } uint64 offset = LookupFieldDefaultCount(seen_bytes_idx) + LookupFieldDefaultCount(missing_bytes_idx); - if ( ! it->second->DeliverChunk(data, len, offset) ) - RemoveAction(it++); - else - ++it; + + if ( ! act->DeliverChunk(data, len, offset) ) + ScheduleRemoval(act); } + DoActionRemoval(); IncrementByteCount(len, seen_bytes_idx); } void Info::EndOfFile() { - ActionMap::iterator it = actions.begin(); - while ( it != actions.end() ) - if ( ! it->second->EndOfFile() ) - RemoveAction(it++); - else - ++it; + Action* act = 0; + IterCookie* c = action_map.InitForIteration(); + + while ( (act = action_map.NextEntry(c)) ) + { + if ( ! act->EndOfFile() ) + ScheduleRemoval(act); + } + + DoActionRemoval(); } void Info::Gap(uint64 offset, uint64 len) { - ActionMap::iterator it = actions.begin(); - while ( it != actions.end() ) - if ( ! it->second->Undelivered(offset, len) ) - RemoveAction(it++); - else - ++it; + Action* act = 0; + IterCookie* c = action_map.InitForIteration(); + while ( (act = action_map.NextEntry(c)) ) + { + if ( ! act->Undelivered(offset, len) ) + ScheduleRemoval(act); + } + + DoActionRemoval(); IncrementByteCount(len, missing_bytes_idx); } diff --git a/src/file_analysis/Info.h b/src/file_analysis/Info.h index e61e375ec1..c8a1c6bf58 100644 --- a/src/file_analysis/Info.h +++ b/src/file_analysis/Info.h @@ -2,8 +2,10 @@ #define FILE_ANALYSIS_INFO_H #include -#include +#include +#include "CompHash.h" +#include "Dict.h" #include "Conn.h" #include "Val.h" #include "Action.h" @@ -11,6 +13,8 @@ namespace file_analysis { +declare(PDict,Action); + /** * Wrapper class around \c FileAnalysis::Info record values from script layer. */ @@ -35,9 +39,11 @@ public: FileID GetFileID() const { return file_id; } /** - * @return record val of the "action_results" field from #val record. + * @return looks up the value of the "actions" field in the #val record at + * the index corresponding to \a args. If there was no value at + * the index, it is created. */ - RecordVal* GetResults() const; + RecordVal* GetResults(RecordVal* args) const; /** * @return the string which uniquely identifies the file. @@ -74,16 +80,17 @@ public: void ScheduleInactivityTimer() const; /** - * Attaches an action. Only one action per type can be attached at a time. + * Attaches an action. Only one action per type can be attached at a time, + * unless the arguments differ. * @return true if the action was attached, else false. */ - bool AddAction(ActionTag act, RecordVal* args); + bool AddAction(RecordVal* args); /** * Removes an action. * @return true if the action was removed, else false. */ - bool RemoveAction(ActionTag act); + bool RemoveAction(const RecordVal* args); /** * Pass in non-sequential data and deliver to attached actions/analyzers. @@ -109,8 +116,6 @@ protected: friend class Manager; - typedef map ActionMap; - /** * Constructor; only file_analysis::Manager should be creating these. */ @@ -141,10 +146,15 @@ protected: double LookupFieldDefaultInterval(int idx) const; /** - * Removes an action. - * @return true if the action was removed, else false. + * Adds file_analysis::Action associated with \a args to list of actions + * to remove, #removing. */ - bool RemoveAction(const ActionMap::iterator& it); + void ScheduleRemoval(const Action* act); + + /** + * Deletes/removes all actions in #removing. + */ + void DoActionRemoval(); FileID file_id; /**< A pretty hash that likely identifies file*/ string unique; /**< A string that uniquely identifies file */ @@ -152,7 +162,10 @@ protected: double last_activity_time; /**< Time of last activity. */ bool postpone_timeout; /**< Whether postponing timeout is requested. */ bool need_reassembly; /**< Whether file stream reassembly is needed. */ - ActionMap actions; /**< Actions/analysis to perform on file. */ + CompositeHash* action_hash;/**< ActionArgs hashes Action map lookup. */ + PDict(Action) action_map; /**< Actions indexed by ActionArgs. */ + typedef list ActionArgList; + ActionArgList removing; /**< Actions pending removal. */ /** * @return the field offset in #val record corresponding to \a field_name. @@ -175,8 +188,6 @@ protected: static int overflow_bytes_idx; static int timeout_interval_idx; static int actions_idx; - static int action_args_idx; - static int action_results_idx; }; } // namespace file_analysis diff --git a/src/file_analysis/Manager.cc b/src/file_analysis/Manager.cc index 7b0df9055b..0c718cce3d 100644 --- a/src/file_analysis/Manager.cc +++ b/src/file_analysis/Manager.cc @@ -100,23 +100,22 @@ bool Manager::PostponeTimeout(const FileID& file_id) const return true; } -bool Manager::AddAction(const FileID& file_id, EnumVal* act, - RecordVal* args) const +bool Manager::AddAction(const FileID& file_id, RecordVal* args) const { Info* info = Lookup(file_id); if ( ! info ) return false; - return info->AddAction(static_cast(act->AsEnum()), args); + return info->AddAction(args); } -bool Manager::RemoveAction(const FileID& file_id, EnumVal* act) const +bool Manager::RemoveAction(const FileID& file_id, const RecordVal* args) const { Info* info = Lookup(file_id); if ( ! info ) return false; - return info->RemoveAction(static_cast(act->AsEnum())); + return info->RemoveAction(args); } Info* Manager::GetInfo(const string& unique, Connection* conn, diff --git a/src/file_analysis/Manager.h b/src/file_analysis/Manager.h index 7dfaf5a665..300f351d9f 100644 --- a/src/file_analysis/Manager.h +++ b/src/file_analysis/Manager.h @@ -73,17 +73,18 @@ public: bool PostponeTimeout(const FileID& file_id) const; /** - * Attaches an action to the file identifier. Only one action of a given - * type can be attached per file identifier at a time. + * Attaches an action to the file identifier. Multiple actions of a given + * type can be attached per file identifier at a time as long as the + * arguments differ. * @return true if the action was attached, else false. */ - bool AddAction(const FileID& file_id, EnumVal* act, RecordVal* args) const; + bool AddAction(const FileID& file_id, RecordVal* args) const; /** * Removes an action for a given file identifier. * @return true if the action was removed, else false. */ - bool RemoveAction(const FileID& file_id, EnumVal* act) const; + bool RemoveAction(const FileID& file_id, const RecordVal* args) const; /** * Calls the \c FileAnalysis::policy hook. From 2481f9f83772a4e934f72c1bf9ac35fd0ea7c096 Mon Sep 17 00:00:00 2001 From: Jon Siwek Date: Wed, 27 Feb 2013 16:04:36 -0600 Subject: [PATCH 12/71] Fix possible null pointer dereference in identify_data BIF. There was no check/handling for if magic_buffer() returns null. Also centralized libmagic calls for consistent error handling/output. --- src/FileAnalyzer.cc | 27 +++++---------------------- src/FileAnalyzer.h | 2 -- src/bro.bif | 28 ++++++---------------------- src/util.cc | 32 ++++++++++++++++++++++++++++++++ src/util.h | 4 ++++ 5 files changed, 47 insertions(+), 46 deletions(-) diff --git a/src/FileAnalyzer.cc b/src/FileAnalyzer.cc index d4064e8144..172f1aaa1d 100644 --- a/src/FileAnalyzer.cc +++ b/src/FileAnalyzer.cc @@ -2,6 +2,7 @@ #include "FileAnalyzer.h" #include "Reporter.h" +#include "util.h" magic_t File_Analyzer::magic = 0; magic_t File_Analyzer::magic_mime = 0; @@ -11,11 +12,8 @@ File_Analyzer::File_Analyzer(Connection* conn) { buffer_len = 0; - if ( ! magic ) - { - InitMagic(&magic, MAGIC_NONE); - InitMagic(&magic_mime, MAGIC_MIME); - } + bro_init_magic(&magic, MAGIC_NONE); + bro_init_magic(&magic_mime, MAGIC_MIME); } void File_Analyzer::DeliverStream(int len, const u_char* data, bool orig) @@ -49,10 +47,10 @@ void File_Analyzer::Identify() const char* mime = 0; if ( magic ) - descr = magic_buffer(magic, buffer, buffer_len); + descr = bro_magic_buffer(magic, buffer, buffer_len); if ( magic_mime ) - mime = magic_buffer(magic_mime, buffer, buffer_len); + mime = bro_magic_buffer(magic_mime, buffer, buffer_len); val_list* vl = new val_list; vl->append(BuildConnVal()); @@ -61,18 +59,3 @@ void File_Analyzer::Identify() vl->append(new StringVal(mime ? mime : "")); ConnectionEvent(file_transferred, vl); } - -void File_Analyzer::InitMagic(magic_t* magic, int flags) - { - *magic = magic_open(flags); - - if ( ! *magic ) - reporter->Error("can't init libmagic: %s", magic_error(*magic)); - - else if ( magic_load(*magic, 0) < 0 ) - { - reporter->Error("can't load magic file: %s", magic_error(*magic)); - magic_close(*magic); - *magic = 0; - } - } diff --git a/src/FileAnalyzer.h b/src/FileAnalyzer.h index dcf9d22e8e..ac5c783e6b 100644 --- a/src/FileAnalyzer.h +++ b/src/FileAnalyzer.h @@ -29,8 +29,6 @@ protected: char buffer[BUFFER_SIZE]; int buffer_len; - static void InitMagic(magic_t* magic, int flags); - static magic_t magic; static magic_t magic_mime; }; diff --git a/src/bro.bif b/src/bro.bif index 8cea9d9123..29aa178316 100644 --- a/src/bro.bif +++ b/src/bro.bif @@ -16,6 +16,7 @@ #include "digest.h" #include "Reporter.h" #include "IPAddr.h" +#include "util.h" using namespace std; @@ -844,38 +845,21 @@ extern "C" { ## return_mime: If true, the function returns a short MIME type string (e.g., ## ``text/plain`` instead of a more elaborate textual description). ## -## Returns: The MIME type of *data*. +## Returns: The MIME type of *data*, or "" if there was an error. function identify_data%(data: string, return_mime: bool%): string %{ - const char* descr = ""; - static magic_t magic_mime = 0; static magic_t magic_descr = 0; magic_t* magic = return_mime ? &magic_mime : &magic_descr; + bro_init_magic(magic, return_mime ? MAGIC_MIME : MAGIC_NONE); if( ! *magic ) - { - *magic = magic_open(return_mime ? MAGIC_MIME : MAGIC_NONE); + return new StringVal(""); - if ( ! *magic ) - { - reporter->Error("can't init libmagic: %s", magic_error(*magic)); - return new StringVal(""); - } + const char* desc = bro_magic_buffer(*magic, data->Bytes(), data->Len()); - if ( magic_load(*magic, 0) < 0 ) - { - reporter->Error("can't load magic file: %s", magic_error(*magic)); - magic_close(*magic); - *magic = 0; - return new StringVal(""); - } - } - - descr = magic_buffer(*magic, data->Bytes(), data->Len()); - - return new StringVal(descr); + return new StringVal(desc ? desc : ""); %} ## Performs an entropy test on the given data. diff --git a/src/util.cc b/src/util.cc index c36ff6a31c..1c3de862a5 100644 --- a/src/util.cc +++ b/src/util.cc @@ -1527,3 +1527,35 @@ void operator delete[](void* v) } #endif + +void bro_init_magic(magic_t* cookie_ptr, int flags) + { + if ( ! cookie_ptr || *cookie_ptr ) return; + + *cookie_ptr = magic_open(flags); + + if ( ! *cookie_ptr ) + { + const char* err = magic_error(*cookie_ptr); + reporter->Error("can't init libmagic: %s", err ? err : "unknown"); + } + + else if ( magic_load(*cookie_ptr, 0) < 0 ) + { + const char* err = magic_error(*cookie_ptr); + reporter->Error("can't load magic file: %s", err ? err : "unknown"); + magic_close(*cookie_ptr); + *cookie_ptr = 0; + } + } + +const char* bro_magic_buffer(magic_t cookie, const void* buffer, size_t length) + { + const char* rval = magic_buffer(cookie, buffer, length); + if ( ! rval ) + { + const char* err = magic_error(cookie); + reporter->Error("magic_buffer error: %s", err ? err : "unknown"); + } + return rval; + } diff --git a/src/util.h b/src/util.h index 7d65f42fa8..5d4115773d 100644 --- a/src/util.h +++ b/src/util.h @@ -15,6 +15,7 @@ #include #include #include +#include #include "config.h" #if __STDC__ @@ -364,4 +365,7 @@ struct CompareString } }; +void bro_init_magic(magic_t* cookie_ptr, int flags); +const char* bro_magic_buffer(magic_t cookie, const void* buffer, size_t length); + #endif From 720858fb36187916b84214fbe30a48471e41dcb3 Mon Sep 17 00:00:00 2001 From: Jon Siwek Date: Thu, 28 Feb 2013 17:19:16 -0600 Subject: [PATCH 13/71] FileAnalysis: refactor add/remove/stop BIFs, add BOF triggers/fields. The add_action, remove_action, and stop BIFs now go through a queue to ensure that modifications are made at well-defined times and don't end up invalidating loop iterators. --- .../base/frameworks/file-analysis/main.bro | 23 +- src/CMakeLists.txt | 1 + src/file_analysis.bif | 10 +- src/file_analysis/Action.h | 9 +- src/file_analysis/ActionSet.cc | 186 +++++++++++++++ src/file_analysis/ActionSet.h | 104 +++++++++ src/file_analysis/DataEvent.cc | 4 - src/file_analysis/Extract.cc | 2 - src/file_analysis/Hash.cc | 5 - src/file_analysis/Info.cc | 214 +++++++++--------- src/file_analysis/Info.h | 52 +++-- src/file_analysis/Manager.cc | 46 +++- src/file_analysis/Manager.h | 30 ++- 13 files changed, 517 insertions(+), 169 deletions(-) create mode 100644 src/file_analysis/ActionSet.cc create mode 100644 src/file_analysis/ActionSet.h diff --git a/scripts/base/frameworks/file-analysis/main.bro b/scripts/base/frameworks/file-analysis/main.bro index 7e0096f78b..3133ab43b9 100644 --- a/scripts/base/frameworks/file-analysis/main.bro +++ b/scripts/base/frameworks/file-analysis/main.bro @@ -18,8 +18,7 @@ export { const default_reassembly_buffer_size: count = 1024*1024 &redef; ## The default buffer size used for storing the beginning of files. - # TODO: what's a reasonable default? - const default_bof_buffer_size: count = 256 &redef; + const default_bof_buffer_size: count = 1024 &redef; ## The default amount of time file analysis will wait for new file data ## before giving up. @@ -27,12 +26,6 @@ export { #const default_timeout_interval: interval = 2 mins &redef; const default_timeout_interval: interval = 10 sec &redef; - ## The default amount of data that a user is allowed to extract - ## from a file to an event with the - ## :bro:see:`FileAnalysis::ACTION_DATA_EVENT` action. - ## TODO: what's a reasonable default? - const default_data_event_len: count = 1024*1024 &redef; - # Needed a forward declaration for event parameters... type Info: record {}; @@ -88,6 +81,20 @@ export { ## the analysis engine will wait before giving up on it. timeout_interval: interval &log &default=default_timeout_interval; + ## The number of bytes at the beginning of a file to save for later + ## inspection in *bof_buffer* field of + ## :bro:see:`FileAnalysis::ActionResults`. + bof_buffer_size: count &default=default_bof_buffer_size; + + ## The content of the beginning of a file up to *bof_buffer_size* bytes. + ## This is also the buffer that's used for file/mime type detection. + bof_buffer: string &optional; + + ## An initial guess at file type. + file_type: string &optional; + ## An initial guess at mime type. + mime_type: string &optional; + ## Actions that have been added to the analysis of this file. ## Not meant to be modified directly by scripts. actions: table[ActionArgs] of ActionResults; diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 3f8fd07be5..dbabaebff2 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -453,6 +453,7 @@ set(bro_SRCS file_analysis/InfoTimer.cc file_analysis/FileID.h file_analysis/Action.h + file_analysis/ActionSet.cc file_analysis/Extract.cc file_analysis/Hash.cc file_analysis/DataEvent.cc diff --git a/src/file_analysis.bif b/src/file_analysis.bif index 81a3490d47..cb3c017311 100644 --- a/src/file_analysis.bif +++ b/src/file_analysis.bif @@ -35,13 +35,13 @@ enum Trigger %{ ## Raised when the beginning of a file is available and that beginning ## is at least the number of bytes indicated by the *bof_buffer_size* ## field of :bro:see:`FileAnalysis::Info`. - TRIGGER_BOF_BUFFER_AVAIL, - ## Raised when the mime type of a file is matched based on magic - ## numbers. TODO: re-purposing protocols/http/file-ident.sig for - ## doing this is tricky since the signature engine doesn't expect + TRIGGER_BOF_BUFFER, + ## Raised when an initial guess at the file/mime type of a file is matched + ## based on magic numbers. TODO: re-purposing protocols/http/file-ident.sig + ## for doing this is tricky since the signature engine doesn't expect ## to be decoupled from connections, so figure out what work needs ## done there. - TRIGGER_MIME_TYPE, + TRIGGER_TYPE, ## Raised when the end of a file is detected. If the file is not ## being transferred linearly, then this doesn't have to mean the full ## file has been transferred. diff --git a/src/file_analysis/Action.h b/src/file_analysis/Action.h index 8461b4b4d3..6ddb67367b 100644 --- a/src/file_analysis/Action.h +++ b/src/file_analysis/Action.h @@ -39,7 +39,9 @@ public: { return true; } /** - * Subclasses may override this to specifically handle the end of a file. + * Subclasses may override this to specifically handle an EOF signal, + * which means no more data is going to be incoming and the action/analyzer + * may be deleted/cleaned up soon. * @return true if the action is still in a valid state to continue * receiving data/events or false if it's essentially "done". */ @@ -64,6 +66,11 @@ public: */ RecordVal* Args() const { return args; } + /** + * @return the file_analysis::Info object to which the action is attached. + */ + Info* GetInfo() const { return info; } + /** * @return the action tag equivalent of the 'act' field from the ActionArgs * value \a args. diff --git a/src/file_analysis/ActionSet.cc b/src/file_analysis/ActionSet.cc new file mode 100644 index 0000000000..c615484509 --- /dev/null +++ b/src/file_analysis/ActionSet.cc @@ -0,0 +1,186 @@ +#include "ActionSet.h" +#include "Info.h" +#include "Action.h" +#include "Extract.h" +#include "DataEvent.h" +#include "Hash.h" + +using namespace file_analysis; + +// keep in order w/ declared enum values in file_analysis.bif +static ActionInstantiator action_factory[] = { + Extract::Instantiate, + MD5::Instantiate, + SHA1::Instantiate, + SHA256::Instantiate, + DataEvent::Instantiate, +}; + +static void action_del_func(void* v) + { + delete (Action*) v; + } + +ActionSet::ActionSet(Info* arg_info) : info(arg_info) + { + TypeList* t = new TypeList(); + t->Append(BifType::Record::FileAnalysis::ActionArgs->Ref()); + action_hash = new CompositeHash(t); + Unref(t); + action_map.SetDeleteFunc(action_del_func); + } + +ActionSet::~ActionSet() + { + while ( ! mod_queue.empty() ) + { + Modification* mod = mod_queue.front(); + mod->Abort(); + delete mod; + mod_queue.pop(); + } + delete action_hash; + } + +bool ActionSet::AddAction(RecordVal* args) + { + HashKey* key = GetKey(args); + + if ( action_map.Lookup(key) ) + { + DBG_LOG(DBG_FILE_ANALYSIS, "Instantiate action %d skipped for file id" + " %s: already exists", Action::ArgsTag(args), + info->GetFileID().c_str()); + delete key; + return true; + } + + Action* act = InstantiateAction(args); + + if ( ! act ) + { + delete key; + return false; + } + + InsertAction(act, key); + + return true; + } + +bool ActionSet::QueueAddAction(RecordVal* args) + { + HashKey* key = GetKey(args); + Action* act = InstantiateAction(args); + + if ( ! act ) + { + delete key; + return false; + } + + mod_queue.push(new Add(act, key)); + + return true; + } + +bool ActionSet::Add::Perform(ActionSet* set) + { + if ( set->action_map.Lookup(key) ) + { + DBG_LOG(DBG_FILE_ANALYSIS, "Add action %d skipped for file id" + " %s: already exists", act->Tag(), + act->GetInfo()->GetFileID().c_str()); + Abort(); + return true; + } + + set->InsertAction(act, key); + return true; + } + +bool ActionSet::RemoveAction(const RecordVal* args) + { + return RemoveAction(Action::ArgsTag(args), GetKey(args)); + } + +bool ActionSet::RemoveAction(ActionTag tag, HashKey* key) + { + Action* act = (Action*) action_map.Remove(key); + delete key; + + if ( ! act ) + { + DBG_LOG(DBG_FILE_ANALYSIS, "Skip remove action %d for file id %s", + tag, info->GetFileID().c_str()); + return false; + } + + DBG_LOG(DBG_FILE_ANALYSIS, "Remove action %d for file id %s", act->Tag(), + info->GetFileID().c_str()); + delete act; + return true; + } + +bool ActionSet::QueueRemoveAction(const RecordVal* args) + { + HashKey* key = GetKey(args); + ActionTag tag = Action::ArgsTag(args); + + mod_queue.push(new Remove(tag, key)); + + return action_map.Lookup(key); + } + +bool ActionSet::Remove::Perform(ActionSet* set) + { + return set->RemoveAction(tag, key); + } + +HashKey* ActionSet::GetKey(const RecordVal* args) const + { + HashKey* key = action_hash->ComputeHash(args, 1); + if ( ! key ) + reporter->InternalError("ActionArgs type mismatch"); + return key; + } + +Action* ActionSet::InstantiateAction(RecordVal* args) const + { + Action* act = action_factory[Action::ArgsTag(args)](args, info); + + if ( ! act ) + { + DBG_LOG(DBG_FILE_ANALYSIS, "Instantiate action %d failed for file id", + " %s", Action::ArgsTag(args), info->GetFileID().c_str()); + return 0; + } + + return act; + } + +void ActionSet::InsertAction(Action* act, HashKey* key) + { + DBG_LOG(DBG_FILE_ANALYSIS, "Add action %d for file id %s", act->Tag(), + info->GetFileID().c_str()); + action_map.Insert(key, act); + info->GetVal()->Lookup(Info::actions_idx)->AsTableVal()->Assign(act->Args(), + new RecordVal(BifType::Record::FileAnalysis::ActionResults)); + } + +void ActionSet::FlushQueuedModifications() + { + if ( mod_queue.empty() ) return; + + DBG_LOG(DBG_FILE_ANALYSIS, "Start flushing action mod queue of file id %s", + info->GetFileID().c_str()); + do + { + Modification* mod = mod_queue.front(); + mod->Perform(this); + delete mod; + mod_queue.pop(); + } while ( ! mod_queue.empty() ); + DBG_LOG(DBG_FILE_ANALYSIS, "End flushing action mod queue of file id %s", + info->GetFileID().c_str()); + } diff --git a/src/file_analysis/ActionSet.h b/src/file_analysis/ActionSet.h new file mode 100644 index 0000000000..506fdf5c77 --- /dev/null +++ b/src/file_analysis/ActionSet.h @@ -0,0 +1,104 @@ +#ifndef FILE_ANALYSIS_ACTIONSET_H +#define FILE_ANALYSIS_ACTIONSET_H + +#include + +#include "Action.h" +#include "Dict.h" +#include "CompHash.h" +#include "Val.h" + +namespace file_analysis { + +class Info; +declare(PDict,Action); + +class ActionSet { +public: + + ActionSet(Info* arg_info); + + ~ActionSet(); + + /** + * @return true if action was instantiated/attached, else false. + */ + bool AddAction(RecordVal* args); + + /** + * @return true if action was able to be instantiated, else false. + */ + bool QueueAddAction(RecordVal* args); + + /** + * @return false if action didn't exist and so wasn't removed, else true. + */ + bool RemoveAction(const RecordVal* args); + + /** + * @return true if action exists at time of call, else false; + */ + bool QueueRemoveAction(const RecordVal* args); + + /** + * Perform all queued modifications to the currently active actions. + */ + void FlushQueuedModifications(); + + IterCookie* InitForIteration() const + { return action_map.InitForIteration(); } + + Action* NextEntry(IterCookie* c) + { return action_map.NextEntry(c); } + +protected: + + HashKey* GetKey(const RecordVal* args) const; + Action* InstantiateAction(RecordVal* args) const; + void InsertAction(Action* act, HashKey* key); + bool RemoveAction(ActionTag tag, HashKey* key); + + Info* info; + CompositeHash* action_hash; /**< ActionArgs hashes Action map lookup. */ + PDict(Action) action_map; /**< Actions indexed by ActionArgs. */ + + class Modification { + public: + virtual ~Modification() {} + virtual bool Perform(ActionSet* set) = 0; + virtual void Abort() = 0; + }; + + class Add : public Modification { + public: + Add(Action* arg_act, HashKey* arg_key) + : Modification(), act(arg_act), key(arg_key) {} + virtual ~Add() {} + virtual bool Perform(ActionSet* set); + virtual void Abort() { delete act; delete key; } + + protected: + Action* act; + HashKey* key; + }; + + class Remove : public Modification { + public: + Remove(ActionTag arg_tag, HashKey* arg_key) + : Modification(), tag(arg_tag), key(arg_key) {} + virtual ~Remove() {} + virtual bool Perform(ActionSet* set); + virtual void Abort() { delete key; } + + protected: + ActionTag tag; + HashKey* key; + }; + + typedef queue ModQueue; + ModQueue mod_queue; +}; + +} // namespace file_analysiss + +#endif diff --git a/src/file_analysis/DataEvent.cc b/src/file_analysis/DataEvent.cc index 9c1084c1cf..d901801f82 100644 --- a/src/file_analysis/DataEvent.cc +++ b/src/file_analysis/DataEvent.cc @@ -41,8 +41,6 @@ Action* DataEvent::Instantiate(RecordVal* args, Info* info) bool DataEvent::DeliverChunk(const u_char* data, uint64 len, uint64 offset) { - Action::DeliverChunk(data, len, offset); - if ( ! chunk_event ) return true; val_list* args = new val_list; @@ -56,8 +54,6 @@ bool DataEvent::DeliverChunk(const u_char* data, uint64 len, uint64 offset) bool DataEvent::DeliverStream(const u_char* data, uint64 len) { - Action::DeliverStream(data, len); - if ( ! stream_event ) return true; val_list* args = new val_list; diff --git a/src/file_analysis/Extract.cc b/src/file_analysis/Extract.cc index 76bd9bdee2..c05d37e7ce 100644 --- a/src/file_analysis/Extract.cc +++ b/src/file_analysis/Extract.cc @@ -38,8 +38,6 @@ Action* Extract::Instantiate(RecordVal* args, Info* info) bool Extract::DeliverChunk(const u_char* data, uint64 len, uint64 offset) { - Action::DeliverChunk(data, len, offset); - if ( ! fd ) return false; safe_pwrite(fd, data, len, offset); diff --git a/src/file_analysis/Hash.cc b/src/file_analysis/Hash.cc index 43cfcb74a7..28662559af 100644 --- a/src/file_analysis/Hash.cc +++ b/src/file_analysis/Hash.cc @@ -16,15 +16,11 @@ Hash::Hash(RecordVal* args, Info* info, HashVal* hv, const char* field) Hash::~Hash() { - // maybe it's all there... - Finalize(); Unref(hash); } bool Hash::DeliverStream(const u_char* data, uint64 len) { - Action::DeliverStream(data, len); - if ( ! hash->IsValid() ) return false; hash->Feed(data, len); @@ -33,7 +29,6 @@ bool Hash::DeliverStream(const u_char* data, uint64 len) bool Hash::EndOfFile() { - Action::EndOfFile(); Finalize(); return false; } diff --git a/src/file_analysis/Info.cc b/src/file_analysis/Info.cc index 6b135bab6c..c4b8e3f192 100644 --- a/src/file_analysis/Info.cc +++ b/src/file_analysis/Info.cc @@ -3,26 +3,13 @@ #include "Info.h" #include "InfoTimer.h" #include "FileID.h" +#include "Manager.h" #include "Reporter.h" #include "Val.h" #include "Type.h" -#include "Action.h" -#include "Extract.h" -#include "Hash.h" -#include "DataEvent.h" - using namespace file_analysis; -// keep in order w/ declared enum values in file_analysis.bif -static ActionInstantiator action_factory[] = { - Extract::Instantiate, - MD5::Instantiate, - SHA1::Instantiate, - SHA256::Instantiate, - DataEvent::Instantiate, -}; - static TableVal* empty_conn_id_set() { TypeList* set_index = new TypeList(conn_id); @@ -58,6 +45,10 @@ int Info::total_bytes_idx = -1; int Info::missing_bytes_idx = -1; int Info::overflow_bytes_idx = -1; int Info::timeout_interval_idx = -1; +int Info::bof_buffer_size_idx = -1; +int Info::bof_buffer_idx = -1; +int Info::file_type_idx = -1; +int Info::mime_type_idx = -1; int Info::actions_idx = -1; void Info::InitFieldIndices() @@ -73,17 +64,17 @@ void Info::InitFieldIndices() missing_bytes_idx = Idx("missing_bytes"); overflow_bytes_idx = Idx("overflow_bytes"); timeout_interval_idx = Idx("timeout_interval"); + bof_buffer_size_idx = Idx("bof_buffer_size"); + bof_buffer_idx = Idx("bof_buffer"); + file_type_idx = Idx("file_type"); + mime_type_idx = Idx("mime_type"); actions_idx = Idx("actions"); } -static void action_del_func(void* v) - { - delete (Action*) v; - } - Info::Info(const string& unique, Connection* conn, const string& protocol) : file_id(unique), unique(unique), val(0), last_activity_time(network_time), - postpone_timeout(false), need_reassembly(false) + postpone_timeout(false), need_reassembly(false), done(false), + actions(this) { InitFieldIndices(); @@ -96,24 +87,15 @@ Info::Info(const string& unique, Connection* conn, const string& protocol) val->Assign(file_id_idx, new StringVal(id)); file_id = FileID(id); - TypeList* t = new TypeList(); - t->Append(BifType::Record::FileAnalysis::ActionArgs->Ref()); - action_hash = new CompositeHash(t); - Unref(t); - action_map.SetDeleteFunc(action_del_func); - UpdateConnectionFields(conn); if ( protocol != "" ) val->Assign(protocol_idx, new StringVal(protocol.c_str())); - - ScheduleInactivityTimer(); } Info::~Info() { DBG_LOG(DBG_FILE_ANALYSIS, "Destroying Info object %s", file_id.c_str()); - delete action_hash; Unref(val); } @@ -203,89 +185,90 @@ void Info::ScheduleInactivityTimer() const bool Info::AddAction(RecordVal* args) { - HashKey* key = action_hash->ComputeHash(args, 1); - - if ( ! key ) - reporter->InternalError("ActionArgs type mismatch in add_action"); - - Action* act = action_map.Lookup(key); - - if ( act ) - { - DBG_LOG(DBG_FILE_ANALYSIS, "Add action %d skipped for already active" - " action on file id %s", act->Tag(), file_id.c_str()); - delete key; - return false; - } - - act = action_factory[Action::ArgsTag(args)](args, this); - - if ( ! act ) - { - DBG_LOG(DBG_FILE_ANALYSIS, "Failed to instantiate action %d" - " on file id %s", Action::ArgsTag(args), file_id.c_str()); - delete key; - return false; - } - - DBG_LOG(DBG_FILE_ANALYSIS, "Add action %d for file id %s", act->Tag(), - file_id.c_str()); - - action_map.Insert(key, act); - val->Lookup(actions_idx)->AsTableVal()->Assign(args, - new RecordVal(BifType::Record::FileAnalysis::ActionResults)); - - return true; - } - -void Info::ScheduleRemoval(const Action* act) - { - removing.push_back(act->Args()); - } - -void Info::DoActionRemoval() - { - ActionArgList::iterator it; - for ( it = removing.begin(); it != removing.end(); ++it ) - RemoveAction(*it); - removing.clear(); + return done ? false : actions.QueueAddAction(args); } bool Info::RemoveAction(const RecordVal* args) { - HashKey* key = action_hash->ComputeHash(args, 1); + return done ? false : actions.QueueRemoveAction(args); + } - if ( ! key ) - reporter->InternalError("ActionArgs type mismatch in remove_action"); +bool Info::BufferBOF(const u_char* data, uint64 len) + { + if ( bof_buffer.full || bof_buffer.replayed ) return false; - Action* act = (Action*) action_map.Remove(key); - delete key; + using BifEnum::FileAnalysis::TRIGGER_BOF; + using BifEnum::FileAnalysis::TRIGGER_BOF_BUFFER; - if ( ! act ) + if ( bof_buffer.chunks.size() == 0 ) + Manager::EvaluatePolicy(TRIGGER_BOF, this); + + if ( ! data ) { - DBG_LOG(DBG_FILE_ANALYSIS, "Skip remove action %d for file id %s", - Action::ArgsTag(args), file_id.c_str()); + // A gap means we're done seeing as much as the start of the file + // as possible, replay anything that we have + bof_buffer.full = true; + ReplayBOF(); + // TODO: libmagic stuff return false; } - DBG_LOG(DBG_FILE_ANALYSIS, "Remove action %d for file id %s", act->Tag(), - file_id.c_str()); - delete act; + uint64 desired_size = LookupFieldDefaultCount(bof_buffer_size_idx); + + // If no buffer is desired or if the first chunk satisfies desired size, + // just do everything we need with the first chunk without copying. + if ( desired_size == 0 || + (bof_buffer.chunks.empty() && len >= desired_size) ) + { + bof_buffer.full = bof_buffer.replayed = true; + val->Assign(bof_buffer_idx, new StringVal(new BroString(data, len, 0))); + Manager::EvaluatePolicy(TRIGGER_BOF_BUFFER, this); + // TODO: libmagic stuff + return false; + } + + bof_buffer.chunks.push_back(new BroString(data, len, 0)); + bof_buffer.size += len; + + if ( bof_buffer.size >= desired_size ) + { + bof_buffer.full = true; + // TODO: libmagic stuff + ReplayBOF(); + } + return true; } +void Info::ReplayBOF() + { + if ( bof_buffer.replayed ) return; + bof_buffer.replayed = true; + + val->Assign(bof_buffer_idx, new StringVal(concatenate(bof_buffer.chunks))); + + using BifEnum::FileAnalysis::TRIGGER_BOF_BUFFER; + Manager::EvaluatePolicy(TRIGGER_BOF_BUFFER, this); + + for ( size_t i = 0; i < bof_buffer.chunks.size(); ++i ) + DataIn(bof_buffer.chunks[i]->Bytes(), bof_buffer.chunks[i]->Len()); + } + void Info::DataIn(const u_char* data, uint64 len, uint64 offset) { - Action* act = 0; - IterCookie* c = action_map.InitForIteration(); + actions.FlushQueuedModifications(); + // TODO: attempt libmagic stuff here before doing reassembly? - while ( (act = action_map.NextEntry(c)) ) + Action* act = 0; + IterCookie* c = actions.InitForIteration(); + + while ( (act = actions.NextEntry(c)) ) { if ( ! act->DeliverChunk(data, len, offset) ) - ScheduleRemoval(act); + actions.QueueRemoveAction(act->Args()); } - DoActionRemoval(); + actions.FlushQueuedModifications(); // TODO: check reassembly requirement based on buffer size in record if ( need_reassembly ) @@ -293,62 +276,73 @@ void Info::DataIn(const u_char* data, uint64 len, uint64 offset) // TODO } - // TODO: reassembly stuff, possibly having to deliver chunks if buffer full - // and incrememt overflow bytes + // TODO: reassembly overflow stuff, increment overflow count, eval trigger IncrementByteCount(len, seen_bytes_idx); } void Info::DataIn(const u_char* data, uint64 len) { - Action* act = 0; - IterCookie* c = action_map.InitForIteration(); + actions.FlushQueuedModifications(); + if ( BufferBOF(data, len) ) return; - while ( (act = action_map.NextEntry(c)) ) + Action* act = 0; + IterCookie* c = actions.InitForIteration(); + + while ( (act = actions.NextEntry(c)) ) { if ( ! act->DeliverStream(data, len) ) { - ScheduleRemoval(act); + actions.QueueRemoveAction(act->Args()); continue; } uint64 offset = LookupFieldDefaultCount(seen_bytes_idx) + LookupFieldDefaultCount(missing_bytes_idx); - if ( ! act->DeliverChunk(data, len, offset) ) - ScheduleRemoval(act); + actions.QueueRemoveAction(act->Args()); } - DoActionRemoval(); + actions.FlushQueuedModifications(); IncrementByteCount(len, seen_bytes_idx); } void Info::EndOfFile() { - Action* act = 0; - IterCookie* c = action_map.InitForIteration(); + if ( done ) return; + done = true; + actions.FlushQueuedModifications(); - while ( (act = action_map.NextEntry(c)) ) + // send along anything that's been buffered, but never flushed + ReplayBOF(); + + Action* act = 0; + IterCookie* c = actions.InitForIteration(); + + while ( (act = actions.NextEntry(c)) ) { if ( ! act->EndOfFile() ) - ScheduleRemoval(act); + actions.QueueRemoveAction(act->Args()); } - DoActionRemoval(); + actions.FlushQueuedModifications(); } void Info::Gap(uint64 offset, uint64 len) { - Action* act = 0; - IterCookie* c = action_map.InitForIteration(); + actions.FlushQueuedModifications(); + if ( BufferBOF(0, len) ) return; - while ( (act = action_map.NextEntry(c)) ) + Action* act = 0; + IterCookie* c = actions.InitForIteration(); + + while ( (act = actions.NextEntry(c)) ) { if ( ! act->Undelivered(offset, len) ) - ScheduleRemoval(act); + actions.QueueRemoveAction(act->Args()); } - DoActionRemoval(); + actions.FlushQueuedModifications(); IncrementByteCount(len, missing_bytes_idx); } diff --git a/src/file_analysis/Info.h b/src/file_analysis/Info.h index c8a1c6bf58..bfb6b22015 100644 --- a/src/file_analysis/Info.h +++ b/src/file_analysis/Info.h @@ -2,19 +2,16 @@ #define FILE_ANALYSIS_INFO_H #include -#include +#include -#include "CompHash.h" -#include "Dict.h" #include "Conn.h" #include "Val.h" -#include "Action.h" +#include "ActionSet.h" #include "FileID.h" +#include "BroString.h" namespace file_analysis { -declare(PDict,Action); - /** * Wrapper class around \c FileAnalysis::Info record values from script layer. */ @@ -80,15 +77,15 @@ public: void ScheduleInactivityTimer() const; /** - * Attaches an action. Only one action per type can be attached at a time, - * unless the arguments differ. - * @return true if the action was attached, else false. + * Queues attaching an action. Only one action per type can be attached at + * a time unless the arguments differ. + * @return false if action can't be instantiated, else true. */ bool AddAction(RecordVal* args); /** - * Removes an action. - * @return true if the action was removed, else false. + * Queues removal of an action. + * @return true if action was active at time of call, else false. */ bool RemoveAction(const RecordVal* args); @@ -146,15 +143,16 @@ protected: double LookupFieldDefaultInterval(int idx) const; /** - * Adds file_analysis::Action associated with \a args to list of actions - * to remove, #removing. + * Buffers incoming data at the beginning of a file. If \a data is a null + * pointer, that signifies a gap and the buffering cannot continue. + * @return true if buffering is still required, else false */ - void ScheduleRemoval(const Action* act); + bool BufferBOF(const u_char* data, uint64 len); /** - * Deletes/removes all actions in #removing. + * Forward any beginning-of-file buffered data on to DataIn stream. */ - void DoActionRemoval(); + void ReplayBOF(); FileID file_id; /**< A pretty hash that likely identifies file*/ string unique; /**< A string that uniquely identifies file */ @@ -162,10 +160,19 @@ protected: double last_activity_time; /**< Time of last activity. */ bool postpone_timeout; /**< Whether postponing timeout is requested. */ bool need_reassembly; /**< Whether file stream reassembly is needed. */ - CompositeHash* action_hash;/**< ActionArgs hashes Action map lookup. */ - PDict(Action) action_map; /**< Actions indexed by ActionArgs. */ - typedef list ActionArgList; - ActionArgList removing; /**< Actions pending removal. */ + bool done; /**< If this object is about to be deleted. */ + ActionSet actions; + + struct BOF_Buffer { + BOF_Buffer() : full(false), replayed(false), size(0) {} + ~BOF_Buffer() + { for ( size_t i = 0; i < chunks.size(); ++i ) delete chunks[i]; } + + bool full; + bool replayed; + uint64 size; + BroString::CVec chunks; + } bof_buffer; /**< Beginning of file buffer. */ /** * @return the field offset in #val record corresponding to \a field_name. @@ -177,6 +184,7 @@ protected: */ static void InitFieldIndices(); +public: static int file_id_idx; static int parent_file_id_idx; static int protocol_idx; @@ -187,6 +195,10 @@ protected: static int missing_bytes_idx; static int overflow_bytes_idx; static int timeout_interval_idx; + static int bof_buffer_size_idx; + static int bof_buffer_idx; + static int file_type_idx; + static int mime_type_idx; static int actions_idx; }; diff --git a/src/file_analysis/Manager.cc b/src/file_analysis/Manager.cc index 0c718cce3d..67566f56b4 100644 --- a/src/file_analysis/Manager.cc +++ b/src/file_analysis/Manager.cc @@ -29,8 +29,8 @@ static void check_file_done(Info* info) { if ( info->IsComplete() ) { - Manager::EvaluatePolicy(BifEnum::FileAnalysis::TRIGGER_DONE, info); file_mgr->RemoveFile(info->GetFileID()); + Manager::EvaluatePolicy(BifEnum::FileAnalysis::TRIGGER_DONE, info); } } @@ -40,6 +40,7 @@ void Manager::DataIn(const string& unique, const u_char* data, uint64 len, Info* info = GetInfo(unique, conn, protocol); info->DataIn(data, len, offset); check_file_done(info); + DoRemoveFiles(); } void Manager::DataIn(const string& unique, const u_char* data, uint64 len, @@ -48,6 +49,7 @@ void Manager::DataIn(const string& unique, const u_char* data, uint64 len, Info* info = GetInfo(unique, conn, protocol); info->DataIn(data, len); check_file_done(info); + DoRemoveFiles(); } void Manager::EndOfFile(const string& unique, Connection* conn, @@ -56,6 +58,7 @@ void Manager::EndOfFile(const string& unique, Connection* conn, Info* info = GetInfo(unique, conn, protocol); info->EndOfFile(); Manager::EvaluatePolicy(BifEnum::FileAnalysis::TRIGGER_EOF, info); + DoRemoveFiles(); } void Manager::Gap(const string& unique, uint64 offset, uint64 len, @@ -64,6 +67,7 @@ void Manager::Gap(const string& unique, uint64 offset, uint64 len, Info* info = GetInfo(unique, conn, protocol); info->Gap(offset, len); Manager::EvaluatePolicy(BifEnum::FileAnalysis::TRIGGER_GAP, info); + DoRemoveFiles(); } void Manager::SetSize(const string& unique, uint64 size, @@ -72,6 +76,7 @@ void Manager::SetSize(const string& unique, uint64 size, Info* info = GetInfo(unique, conn, protocol); info->SetTotalBytes(size); check_file_done(info); + DoRemoveFiles(); } void Manager::EvaluatePolicy(BifEnum::FileAnalysis::Trigger t, Info* info) @@ -131,11 +136,12 @@ Info* Manager::GetInfo(const string& unique, Connection* conn, if ( id_map[id] ) { reporter->Error("Evicted duplicate file ID: %s", id.c_str()); - RemoveFile(id); + DoRemoveFile(id); } id_map[id] = rval; Manager::EvaluatePolicy(BifEnum::FileAnalysis::TRIGGER_NEW, rval); + rval->ScheduleInactivityTimer(); } else { @@ -175,7 +181,24 @@ void Manager::Timeout(const FileID& file_id, bool is_terminating) DBG_LOG(DBG_FILE_ANALYSIS, "File analysis timeout for %s", info->GetFileID().c_str()); - RemoveFile(file_id); + DoRemoveFile(file_id); + } + +bool Manager::DoRemoveFile(const FileID& file_id) + { + IDMap::iterator it = id_map.find(file_id); + + if ( it == id_map.end() ) return false; + + if ( ! str_map.erase(it->second->GetUnique()) ) + reporter->Error("No string mapping for file ID %s", file_id.c_str()); + + DBG_LOG(DBG_FILE_ANALYSIS, "Remove FileID %s", it->first.c_str()); + + it->second->EndOfFile(); + delete it->second; + id_map.erase(it); + return true; } bool Manager::RemoveFile(const FileID& file_id) @@ -184,9 +207,18 @@ bool Manager::RemoveFile(const FileID& file_id) if ( it == id_map.end() ) return false; - if ( ! str_map.erase(it->second->GetUnique()) ) - reporter->Error("No string mapping for file ID %s", file_id.c_str()); - delete it->second; - id_map.erase(it); + DBG_LOG(DBG_FILE_ANALYSIS, "Queue removal of FileID %s", + it->first.c_str()); + + it->second->EndOfFile(); + removing.push_back(it->first); return true; } + +void Manager::DoRemoveFiles() + { + IDList::iterator it; + for ( it = removing.begin(); it != removing.end(); ++it ) + DoRemoveFile(*it); + removing.clear(); + } diff --git a/src/file_analysis/Manager.h b/src/file_analysis/Manager.h index 300f351d9f..98f9a469d7 100644 --- a/src/file_analysis/Manager.h +++ b/src/file_analysis/Manager.h @@ -3,6 +3,7 @@ #include #include +#include #include "Net.h" #include "Conn.h" @@ -61,7 +62,9 @@ public: const string& protocol = ""); /** - * Discard the file_analysis::Info object associated with \a file_id. + * Queue the file_analysis::Info object associated with \a file_id to + * be discarded. It will be discarded at the end of DataIn, EndOfFile, Gap, + * or SetSize functions. * @return false if file identifier did not map to anything, else true. */ bool RemoveFile(const FileID& file_id); @@ -73,16 +76,16 @@ public: bool PostponeTimeout(const FileID& file_id) const; /** - * Attaches an action to the file identifier. Multiple actions of a given - * type can be attached per file identifier at a time as long as the - * arguments differ. - * @return true if the action was attached, else false. + * Queue attachment of an action to the file identifier. Multiple actions + * of a given type can be attached per file identifier at a time as long as + * the arguments differ. + * @return false if the action failed to be instantiated, else true. */ bool AddAction(const FileID& file_id, RecordVal* args) const; /** - * Removes an action for a given file identifier. - * @return true if the action was removed, else false. + * Queue removal of an action for a given file identifier. + * @return true if the action is active at the time of call, else false. */ bool RemoveAction(const FileID& file_id, const RecordVal* args) const; @@ -97,6 +100,7 @@ protected: typedef map StrMap; typedef map IDMap; + typedef list IDList; /** * @return the Info object mapped to \a unique. One is created if mapping @@ -118,8 +122,20 @@ protected: */ void Timeout(const FileID& file_id, bool is_terminating = ::terminating); + /** + * Immediately remove file_analysis::Info object associated with \a file_id. + * @return false if file identifier did not map to anything, else true. + */ + bool DoRemoveFile(const FileID& file_id); + + /** + * Clean up all pending file analysis for file IDs in #removing. + */ + void DoRemoveFiles(); + StrMap str_map; /**< Map unique strings to \c FileAnalysis::Info records. */ IDMap id_map; /**< Map file IDs to \c FileAnalysis::Info records. */ + IDList removing;/**< File IDs that are about to be removed. */ }; } // namespace file_analysis From 6cb58a5228dbd005e042d037b9b5d4ba78824c27 Mon Sep 17 00:00:00 2001 From: Jon Siwek Date: Fri, 1 Mar 2013 09:55:49 -0600 Subject: [PATCH 14/71] FileAnalysis: minor code reorg/tweak of BOF buffering stuff. --- src/file_analysis/Info.cc | 30 +++++++++++++----------------- src/file_analysis/Info.h | 3 +-- 2 files changed, 14 insertions(+), 19 deletions(-) diff --git a/src/file_analysis/Info.cc b/src/file_analysis/Info.cc index c4b8e3f192..d98920604d 100644 --- a/src/file_analysis/Info.cc +++ b/src/file_analysis/Info.cc @@ -203,22 +203,11 @@ bool Info::BufferBOF(const u_char* data, uint64 len) if ( bof_buffer.chunks.size() == 0 ) Manager::EvaluatePolicy(TRIGGER_BOF, this); - if ( ! data ) - { - // A gap means we're done seeing as much as the start of the file - // as possible, replay anything that we have - bof_buffer.full = true; - ReplayBOF(); - // TODO: libmagic stuff - return false; - } - uint64 desired_size = LookupFieldDefaultCount(bof_buffer_size_idx); - // If no buffer is desired or if the first chunk satisfies desired size, - // just do everything we need with the first chunk without copying. - if ( desired_size == 0 || - (bof_buffer.chunks.empty() && len >= desired_size) ) + /* Leaving out this optimization (I think) for now to keep things simpler. + // If first chunk satisfies desired size, do everything now without copying. + if ( bof_buffer.chunks.empty() && len >= desired_size ) { bof_buffer.full = bof_buffer.replayed = true; val->Assign(bof_buffer_idx, new StringVal(new BroString(data, len, 0))); @@ -226,6 +215,7 @@ bool Info::BufferBOF(const u_char* data, uint64 len) // TODO: libmagic stuff return false; } + */ bof_buffer.chunks.push_back(new BroString(data, len, 0)); bof_buffer.size += len; @@ -233,7 +223,6 @@ bool Info::BufferBOF(const u_char* data, uint64 len) if ( bof_buffer.size >= desired_size ) { bof_buffer.full = true; - // TODO: libmagic stuff ReplayBOF(); } @@ -250,6 +239,8 @@ void Info::ReplayBOF() using BifEnum::FileAnalysis::TRIGGER_BOF_BUFFER; Manager::EvaluatePolicy(TRIGGER_BOF_BUFFER, this); + // TODO: libmagic stuff + for ( size_t i = 0; i < bof_buffer.chunks.size(); ++i ) DataIn(bof_buffer.chunks[i]->Bytes(), bof_buffer.chunks[i]->Len()); } @@ -284,6 +275,7 @@ void Info::DataIn(const u_char* data, uint64 len, uint64 offset) void Info::DataIn(const u_char* data, uint64 len) { actions.FlushQueuedModifications(); + if ( BufferBOF(data, len) ) return; Action* act = 0; @@ -312,9 +304,10 @@ void Info::EndOfFile() { if ( done ) return; done = true; + actions.FlushQueuedModifications(); - // send along anything that's been buffered, but never flushed + // Send along anything that's been buffered, but never flushed. ReplayBOF(); Action* act = 0; @@ -332,7 +325,10 @@ void Info::EndOfFile() void Info::Gap(uint64 offset, uint64 len) { actions.FlushQueuedModifications(); - if ( BufferBOF(0, len) ) return; + + // If we were buffering the beginning of the file, a gap means we've got + // as much contiguous stuff at the beginning as possible, so work with that. + ReplayBOF(); Action* act = 0; IterCookie* c = actions.InitForIteration(); diff --git a/src/file_analysis/Info.h b/src/file_analysis/Info.h index bfb6b22015..d3b55a7357 100644 --- a/src/file_analysis/Info.h +++ b/src/file_analysis/Info.h @@ -143,8 +143,7 @@ protected: double LookupFieldDefaultInterval(int idx) const; /** - * Buffers incoming data at the beginning of a file. If \a data is a null - * pointer, that signifies a gap and the buffering cannot continue. + * Buffers incoming data at the beginning of a file. * @return true if buffering is still required, else false */ bool BufferBOF(const u_char* data, uint64 len); From 9425c2508f9749a2156802d88adbf11f706dce0c Mon Sep 17 00:00:00 2001 From: Jon Siwek Date: Fri, 1 Mar 2013 14:03:37 -0600 Subject: [PATCH 15/71] Change semantics of FileAnalysis::stop BIF to internally mean "ignore". The manager has to remember that the file is being ignored until either EOF or timeout. --- src/file_analysis.bif | 12 ++-- src/file_analysis/Info.cc | 18 ++++-- src/file_analysis/Manager.cc | 109 +++++++++++++++++++---------------- src/file_analysis/Manager.h | 33 ++++++----- 4 files changed, 93 insertions(+), 79 deletions(-) diff --git a/src/file_analysis.bif b/src/file_analysis.bif index cb3c017311..abe7dbbd3c 100644 --- a/src/file_analysis.bif +++ b/src/file_analysis.bif @@ -37,14 +37,10 @@ enum Trigger %{ ## field of :bro:see:`FileAnalysis::Info`. TRIGGER_BOF_BUFFER, ## Raised when an initial guess at the file/mime type of a file is matched - ## based on magic numbers. TODO: re-purposing protocols/http/file-ident.sig - ## for doing this is tricky since the signature engine doesn't expect - ## to be decoupled from connections, so figure out what work needs - ## done there. + ## based on magic numbers. TRIGGER_TYPE, - ## Raised when the end of a file is detected. If the file is not - ## being transferred linearly, then this doesn't have to mean the full - ## file has been transferred. + ## Raised to signal that no more file data is incoming and it couldn't be + ## determined whether the full file was actually seen. TRIGGER_EOF, ## The reassembly buffer for the file filled and had to be discarded. ## The *undelivered* field of :bro:see:`FileAnalysis::Info` will @@ -94,6 +90,6 @@ function FileAnalysis::remove_action%(file_id: string, args: any%): bool function FileAnalysis::stop%(file_id: string%): bool %{ using file_analysis::FileID; - bool result = file_mgr->RemoveFile(FileID(file_id->CheckString())); + bool result = file_mgr->IgnoreFile(FileID(file_id->CheckString())); return new Val(result, TYPE_BOOL); %} diff --git a/src/file_analysis/Info.cc b/src/file_analysis/Info.cc index d98920604d..c3d2a7f175 100644 --- a/src/file_analysis/Info.cc +++ b/src/file_analysis/Info.cc @@ -197,11 +197,8 @@ bool Info::BufferBOF(const u_char* data, uint64 len) { if ( bof_buffer.full || bof_buffer.replayed ) return false; - using BifEnum::FileAnalysis::TRIGGER_BOF; - using BifEnum::FileAnalysis::TRIGGER_BOF_BUFFER; - if ( bof_buffer.chunks.size() == 0 ) - Manager::EvaluatePolicy(TRIGGER_BOF, this); + file_mgr->EvaluatePolicy(BifEnum::FileAnalysis::TRIGGER_BOF, this); uint64 desired_size = LookupFieldDefaultCount(bof_buffer_size_idx); @@ -211,7 +208,7 @@ bool Info::BufferBOF(const u_char* data, uint64 len) { bof_buffer.full = bof_buffer.replayed = true; val->Assign(bof_buffer_idx, new StringVal(new BroString(data, len, 0))); - Manager::EvaluatePolicy(TRIGGER_BOF_BUFFER, this); + file_mgr->EvaluatePolicy(TRIGGER_BOF_BUFFER, this); // TODO: libmagic stuff return false; } @@ -234,10 +231,12 @@ void Info::ReplayBOF() if ( bof_buffer.replayed ) return; bof_buffer.replayed = true; + if ( bof_buffer.chunks.empty() ) return; + val->Assign(bof_buffer_idx, new StringVal(concatenate(bof_buffer.chunks))); using BifEnum::FileAnalysis::TRIGGER_BOF_BUFFER; - Manager::EvaluatePolicy(TRIGGER_BOF_BUFFER, this); + file_mgr->EvaluatePolicy(TRIGGER_BOF_BUFFER, this); // TODO: libmagic stuff @@ -319,6 +318,11 @@ void Info::EndOfFile() actions.QueueRemoveAction(act->Args()); } + if ( IsComplete() ) + file_mgr->EvaluatePolicy(BifEnum::FileAnalysis::TRIGGER_DONE, this); + else + file_mgr->EvaluatePolicy(BifEnum::FileAnalysis::TRIGGER_EOF, this); + actions.FlushQueuedModifications(); } @@ -339,6 +343,8 @@ void Info::Gap(uint64 offset, uint64 len) actions.QueueRemoveAction(act->Args()); } + file_mgr->EvaluatePolicy(BifEnum::FileAnalysis::TRIGGER_GAP, this); + actions.FlushQueuedModifications(); IncrementByteCount(len, missing_bytes_idx); } diff --git a/src/file_analysis/Manager.cc b/src/file_analysis/Manager.cc index 67566f56b4..fa46f4b04c 100644 --- a/src/file_analysis/Manager.cc +++ b/src/file_analysis/Manager.cc @@ -25,62 +25,70 @@ void Manager::Terminate() Timeout(keys[i], true); } -static void check_file_done(Info* info) - { - if ( info->IsComplete() ) - { - file_mgr->RemoveFile(info->GetFileID()); - Manager::EvaluatePolicy(BifEnum::FileAnalysis::TRIGGER_DONE, info); - } - } - void Manager::DataIn(const string& unique, const u_char* data, uint64 len, uint64 offset, Connection* conn, const string& protocol) { + if ( IsIgnored(unique) ) return; + Info* info = GetInfo(unique, conn, protocol); + + if ( ! info ) return; + info->DataIn(data, len, offset); - check_file_done(info); - DoRemoveFiles(); + + if ( info->IsComplete() ) + RemoveFile(unique); } void Manager::DataIn(const string& unique, const u_char* data, uint64 len, Connection* conn, const string& protocol) { Info* info = GetInfo(unique, conn, protocol); + + if ( ! info ) return; + info->DataIn(data, len); - check_file_done(info); - DoRemoveFiles(); + + if ( info->IsComplete() ) + RemoveFile(unique); } void Manager::EndOfFile(const string& unique, Connection* conn, const string& protocol) { - Info* info = GetInfo(unique, conn, protocol); - info->EndOfFile(); - Manager::EvaluatePolicy(BifEnum::FileAnalysis::TRIGGER_EOF, info); - DoRemoveFiles(); + // Just call GetInfo because maybe the conn/protocol args will update + // something in the Info record. + GetInfo(unique, conn, protocol); + RemoveFile(unique); } void Manager::Gap(const string& unique, uint64 offset, uint64 len, Connection* conn, const string& protocol) { Info* info = GetInfo(unique, conn, protocol); + + if ( ! info ) return; + info->Gap(offset, len); - Manager::EvaluatePolicy(BifEnum::FileAnalysis::TRIGGER_GAP, info); - DoRemoveFiles(); } void Manager::SetSize(const string& unique, uint64 size, Connection* conn, const string& protocol) { Info* info = GetInfo(unique, conn, protocol); + + if ( ! info ) return; + info->SetTotalBytes(size); - check_file_done(info); - DoRemoveFiles(); + + if ( info->IsComplete() ) + RemoveFile(unique); } void Manager::EvaluatePolicy(BifEnum::FileAnalysis::Trigger t, Info* info) { + if ( IsIgnored(info->GetUnique()) ) return; + const ID* id = global_scope()->Lookup("FileAnalysis::policy"); assert(id); const Func* hook = id->ID_Val()->AsFunc(); @@ -126,6 +134,8 @@ bool Manager::RemoveAction(const FileID& file_id, const RecordVal* args) const Info* Manager::GetInfo(const string& unique, Connection* conn, const string& protocol) { + if ( IsIgnored(unique) ) return 0; + Info* rval = str_map[unique]; if ( ! rval ) @@ -136,12 +146,13 @@ Info* Manager::GetInfo(const string& unique, Connection* conn, if ( id_map[id] ) { reporter->Error("Evicted duplicate file ID: %s", id.c_str()); - DoRemoveFile(id); + RemoveFile(unique); } id_map[id] = rval; - Manager::EvaluatePolicy(BifEnum::FileAnalysis::TRIGGER_NEW, rval); + file_mgr->EvaluatePolicy(BifEnum::FileAnalysis::TRIGGER_NEW, rval); rval->ScheduleInactivityTimer(); + if ( IsIgnored(unique) ) return 0; } else { @@ -167,7 +178,7 @@ void Manager::Timeout(const FileID& file_id, bool is_terminating) if ( ! info ) return; - Manager::EvaluatePolicy(BifEnum::FileAnalysis::TRIGGER_TIMEOUT, info); + file_mgr->EvaluatePolicy(BifEnum::FileAnalysis::TRIGGER_TIMEOUT, info); if ( info->postpone_timeout && ! is_terminating ) { @@ -181,44 +192,44 @@ void Manager::Timeout(const FileID& file_id, bool is_terminating) DBG_LOG(DBG_FILE_ANALYSIS, "File analysis timeout for %s", info->GetFileID().c_str()); - DoRemoveFile(file_id); + RemoveFile(info->GetUnique()); } -bool Manager::DoRemoveFile(const FileID& file_id) +bool Manager::IgnoreFile(const FileID& file_id) { IDMap::iterator it = id_map.find(file_id); if ( it == id_map.end() ) return false; - if ( ! str_map.erase(it->second->GetUnique()) ) - reporter->Error("No string mapping for file ID %s", file_id.c_str()); + DBG_LOG(DBG_FILE_ANALYSIS, "Ignore FileID %s", file_id.c_str()); - DBG_LOG(DBG_FILE_ANALYSIS, "Remove FileID %s", it->first.c_str()); + ignored.insert(it->second->GetUnique()); + + return true; + } + +bool Manager::RemoveFile(const string& unique) + { + StrMap::iterator it = str_map.find(unique); + + if ( it == str_map.end() ) return false; it->second->EndOfFile(); + + FileID id = it->second->GetFileID(); + + DBG_LOG(DBG_FILE_ANALYSIS, "Remove FileID %s", id.c_str()); + + if ( ! id_map.erase(id) ) + reporter->Error("No mapping for fileID %s", id.c_str()); + + ignored.erase(unique); + str_map.erase(unique); delete it->second; - id_map.erase(it); return true; } -bool Manager::RemoveFile(const FileID& file_id) +bool Manager::IsIgnored(const string& unique) { - IDMap::iterator it = id_map.find(file_id); - - if ( it == id_map.end() ) return false; - - DBG_LOG(DBG_FILE_ANALYSIS, "Queue removal of FileID %s", - it->first.c_str()); - - it->second->EndOfFile(); - removing.push_back(it->first); - return true; - } - -void Manager::DoRemoveFiles() - { - IDList::iterator it; - for ( it = removing.begin(); it != removing.end(); ++it ) - DoRemoveFile(*it); - removing.clear(); + return ignored.find(unique) != ignored.end(); } diff --git a/src/file_analysis/Manager.h b/src/file_analysis/Manager.h index 98f9a469d7..257060f406 100644 --- a/src/file_analysis/Manager.h +++ b/src/file_analysis/Manager.h @@ -3,7 +3,7 @@ #include #include -#include +#include #include "Net.h" #include "Conn.h" @@ -62,12 +62,11 @@ public: const string& protocol = ""); /** - * Queue the file_analysis::Info object associated with \a file_id to - * be discarded. It will be discarded at the end of DataIn, EndOfFile, Gap, - * or SetSize functions. + * Starts ignoring a file, which will finally be removed from internal + * mappings on EOF or TIMEOUT. * @return false if file identifier did not map to anything, else true. */ - bool RemoveFile(const FileID& file_id); + bool IgnoreFile(const FileID& file_id); /** * If called during \c FileAnalysis::policy evaluation for a @@ -92,20 +91,22 @@ public: /** * Calls the \c FileAnalysis::policy hook. */ - static void EvaluatePolicy(BifEnum::FileAnalysis::Trigger t, Info* info); + void EvaluatePolicy(BifEnum::FileAnalysis::Trigger t, Info* info); protected: friend class InfoTimer; typedef map StrMap; + typedef set StrSet; typedef map IDMap; - typedef list IDList; /** - * @return the Info object mapped to \a unique. One is created if mapping - * doesn't exist. If it did exist, the activity time is refreshed - * and connection-related fields of the record value may be updated. + * @return the Info object mapped to \a unique or a null pointer if analysis + * is being ignored for the associated file. An Info object may be + * created if a mapping doesn't exist, and if it did exist, the + * activity time is refreshed and connection-related fields of the + * record value may be updated. */ Info* GetInfo(const string& unique, Connection* conn = 0, const string& protocol = ""); @@ -123,19 +124,19 @@ protected: void Timeout(const FileID& file_id, bool is_terminating = ::terminating); /** - * Immediately remove file_analysis::Info object associated with \a file_id. - * @return false if file identifier did not map to anything, else true. + * Immediately remove file_analysis::Info object associated with \a unique. + * @return false if file string did not map to anything, else true. */ - bool DoRemoveFile(const FileID& file_id); + bool RemoveFile(const string& unique); /** - * Clean up all pending file analysis for file IDs in #removing. + * @return whether the file mapped to \a unique is being ignored. */ - void DoRemoveFiles(); + bool IsIgnored(const string& unique); StrMap str_map; /**< Map unique strings to \c FileAnalysis::Info records. */ IDMap id_map; /**< Map file IDs to \c FileAnalysis::Info records. */ - IDList removing;/**< File IDs that are about to be removed. */ + StrSet ignored; /**< Ignored files. Will be finally removed on EOF. */ }; } // namespace file_analysis From c88babf6ef169cb2007188ffecfeccea5aed6882 Mon Sep 17 00:00:00 2001 From: Jon Siwek Date: Fri, 1 Mar 2013 16:42:16 -0600 Subject: [PATCH 16/71] Fix init of local sets/vectors via curly brace initializer lists. --- src/Expr.cc | 21 ++++++--- .../language.container-ctor-scope/out | 44 +++++++++++++++++++ .../btest/language/container-ctor-scope.bro | 38 ++++++++++++++++ 3 files changed, 98 insertions(+), 5 deletions(-) create mode 100644 testing/btest/Baseline/language.container-ctor-scope/out create mode 100644 testing/btest/language/container-ctor-scope.bro diff --git a/src/Expr.cc b/src/Expr.cc index 3df4d781a0..db82f95ef1 100644 --- a/src/Expr.cc +++ b/src/Expr.cc @@ -2507,15 +2507,26 @@ bool AssignExpr::TypeCheck(attr_list* attrs) attr_copy->append((*attrs)[i]); } - op2 = new TableConstructorExpr(op2->AsListExpr(), attr_copy); + if ( op1->Type()->IsSet() ) + op2 = new SetConstructorExpr(op2->AsListExpr(), attr_copy); + else + op2 = new TableConstructorExpr(op2->AsListExpr(), attr_copy); return true; } - if ( bt1 == TYPE_VECTOR && bt2 == bt1 && - op2->Type()->AsVectorType()->IsUnspecifiedVector() ) + if ( bt1 == TYPE_VECTOR ) { - op2 = new VectorCoerceExpr(op2, op1->Type()->AsVectorType()); - return true; + if ( bt2 == bt1 && op2->Type()->AsVectorType()->IsUnspecifiedVector() ) + { + op2 = new VectorCoerceExpr(op2, op1->Type()->AsVectorType()); + return true; + } + + if ( op2->Tag() == EXPR_LIST ) + { + op2 = new VectorConstructorExpr(op2->AsListExpr()); + return true; + } } if ( op1->Type()->Tag() == TYPE_RECORD && diff --git a/testing/btest/Baseline/language.container-ctor-scope/out b/testing/btest/Baseline/language.container-ctor-scope/out new file mode 100644 index 0000000000..4f9acfce86 --- /dev/null +++ b/testing/btest/Baseline/language.container-ctor-scope/out @@ -0,0 +1,44 @@ +{ +[2/tcp] = 2, +[1/tcp] = 1, +[3/tcp] = 3 +} +{ +[2/tcp] = 2, +[1/tcp] = 1, +[3/tcp] = 3 +} +{ +2/tcp, +1/tcp, +3/tcp +} +{ +2/tcp, +1/tcp, +3/tcp +} +[1/tcp, 2/tcp, 3/tcp, 1/tcp] +[1/tcp, 2/tcp, 3/tcp, 1/tcp] +{ +[2/tcp] = 2, +[1/tcp] = 1, +[3/tcp] = 3 +} +{ +[2/tcp] = 2, +[1/tcp] = 1, +[3/tcp] = 3 +} +{ +2/tcp, +1/tcp, +3/tcp +} +{ +2/tcp, +1/tcp, +3/tcp +} +[1/tcp, 2/tcp, 3/tcp, 1/tcp] +[1/tcp, 2/tcp, 3/tcp, 1/tcp] diff --git a/testing/btest/language/container-ctor-scope.bro b/testing/btest/language/container-ctor-scope.bro new file mode 100644 index 0000000000..fd1939a459 --- /dev/null +++ b/testing/btest/language/container-ctor-scope.bro @@ -0,0 +1,38 @@ +# @TEST-EXEC: bro -b %INPUT >out +# @TEST-EXEC: btest-diff out + +# All various container contructors should work at both global and local scope. + +global gt1: table[port] of count = table( [1/tcp] = 1, [2/tcp] = 2, [3/tcp] = 3 ); +global gs1: set[port] = set( 1/tcp, 2/tcp, 3/tcp ); +global gv1: vector of port = vector( 1/tcp, 2/tcp, 3/tcp, 1/tcp ); + +global gt2: table[port] of count = { [1/tcp] = 1, [2/tcp] = 2, [3/tcp] = 3 }; +global gs2: set[port] = { 1/tcp, 2/tcp, 3/tcp }; +global gv2: vector of port = { 1/tcp, 2/tcp, 3/tcp, 1/tcp }; + +local t1: table[port] of count = table( [1/tcp] = 1, [2/tcp] = 2, [3/tcp] = 3 ); +local s1: set[port] = set( 1/tcp, 2/tcp, 3/tcp ); +local v1: vector of port = vector( 1/tcp, 2/tcp, 3/tcp, 1/tcp ); + +local t2: table[port] of count = { [1/tcp] = 1, [2/tcp] = 2, [3/tcp] = 3 }; +local s2: set[port] = { 1/tcp, 2/tcp, 3/tcp }; +local v2: vector of port = { 1/tcp, 2/tcp, 3/tcp, 1/tcp }; + +print gt1; +print gt2; + +print gs1; +print gs2; + +print gv1; +print gv2; + +print t1; +print t2; + +print s1; +print s2; + +print v1; +print v2; From c330b46128994508f80dd0a1d35b8f79430ce802 Mon Sep 17 00:00:00 2001 From: Jon Siwek Date: Mon, 4 Mar 2013 16:20:10 -0600 Subject: [PATCH 17/71] FileAnalysis: add libmagic file type detection. --- src/file_analysis/Info.cc | 39 +++++++++++++++++++++++++++++++++++++-- src/file_analysis/Info.h | 4 ++++ 2 files changed, 41 insertions(+), 2 deletions(-) diff --git a/src/file_analysis/Info.cc b/src/file_analysis/Info.cc index c3d2a7f175..e6ab66135f 100644 --- a/src/file_analysis/Info.cc +++ b/src/file_analysis/Info.cc @@ -51,6 +51,9 @@ int Info::file_type_idx = -1; int Info::mime_type_idx = -1; int Info::actions_idx = -1; +magic_t Info::magic = 0; +magic_t Info::magic_mime = 0; + void Info::InitFieldIndices() { if ( file_id_idx != -1 ) return; @@ -71,6 +74,21 @@ void Info::InitFieldIndices() actions_idx = Idx("actions"); } +static void init_magic(magic_t* magic, int flags) + { + *magic = magic_open(flags); + + if ( ! *magic ) + reporter->Error("can't init libmagic: %s", magic_error(*magic)); + + else if ( magic_load(*magic, 0) < 0 ) + { + reporter->Error("can't load magic file: %s", magic_error(*magic)); + magic_close(*magic); + *magic = 0; + } + } + Info::Info(const string& unique, Connection* conn, const string& protocol) : file_id(unique), unique(unique), val(0), last_activity_time(network_time), postpone_timeout(false), need_reassembly(false), done(false), @@ -78,6 +96,12 @@ Info::Info(const string& unique, Connection* conn, const string& protocol) { InitFieldIndices(); + if ( ! magic ) + { + init_magic(&magic, MAGIC_NONE); + init_magic(&magic_mime, MAGIC_MIME); + } + char id[20]; uitoa_n(calculate_unique_id(), id, sizeof(id), 62); @@ -233,12 +257,23 @@ void Info::ReplayBOF() if ( bof_buffer.chunks.empty() ) return; - val->Assign(bof_buffer_idx, new StringVal(concatenate(bof_buffer.chunks))); + BroString* bs = concatenate(bof_buffer.chunks); + const char* desc = magic_buffer(magic, bs->Bytes(), bs->Len()); + const char* mime = magic_buffer(magic_mime, bs->Bytes(), bs->Len()); + + val->Assign(bof_buffer_idx, new StringVal(bs)); + + if ( desc ) + val->Assign(file_type_idx, new StringVal(desc)); + + if ( mime ) + val->Assign(mime_type_idx, new StringVal(mime)); using BifEnum::FileAnalysis::TRIGGER_BOF_BUFFER; file_mgr->EvaluatePolicy(TRIGGER_BOF_BUFFER, this); - // TODO: libmagic stuff + if ( desc || mime ) + file_mgr->EvaluatePolicy(BifEnum::FileAnalysis::TRIGGER_TYPE, this); for ( size_t i = 0; i < bof_buffer.chunks.size(); ++i ) DataIn(bof_buffer.chunks[i]->Bytes(), bof_buffer.chunks[i]->Len()); diff --git a/src/file_analysis/Info.h b/src/file_analysis/Info.h index d3b55a7357..f6dd1d3b46 100644 --- a/src/file_analysis/Info.h +++ b/src/file_analysis/Info.h @@ -3,6 +3,7 @@ #include #include +#include #include "Conn.h" #include "Val.h" @@ -183,6 +184,9 @@ protected: */ static void InitFieldIndices(); + static magic_t magic; + static magic_t magic_mime; + public: static int file_id_idx; static int parent_file_id_idx; From 5e8e12182a10165d8111fb79f6650cdd8f8d6614 Mon Sep 17 00:00:00 2001 From: Bernhard Amann Date: Tue, 5 Mar 2013 16:05:07 -0800 Subject: [PATCH 18/71] add base64-encode functionality and bif. This allows replacing an ugly openssl-call from one of the policy scripts. The openssl call is now replaced with a still-but-less-ugly call to base64_encode. I do not know if I split the Base64 classes in a "smart" way... :) --- scripts/base/protocols/ssl/main.bro | 5 -- .../protocols/ssl/extract-certs-pem.bro | 33 ++++++--- src/Base64.cc | 73 ++++++++++++++++++- src/Base64.h | 26 +++++-- src/bro.bif | 42 +++++++++++ 5 files changed, 158 insertions(+), 21 deletions(-) diff --git a/scripts/base/protocols/ssl/main.bro b/scripts/base/protocols/ssl/main.bro index 2dcbfee5ef..c6c4091a87 100644 --- a/scripts/base/protocols/ssl/main.bro +++ b/scripts/base/protocols/ssl/main.bro @@ -67,11 +67,6 @@ export { ## (especially with large file transfers). const disable_analyzer_after_detection = T &redef; - ## The openssl command line utility. If it's in the path the default - ## value will work, otherwise a full path string can be supplied for the - ## utility. - const openssl_util = "openssl" &redef; - ## The maximum amount of time a script can delay records from being logged. const max_log_delay = 15secs &redef; diff --git a/scripts/policy/protocols/ssl/extract-certs-pem.bro b/scripts/policy/protocols/ssl/extract-certs-pem.bro index 420c60a4fd..bdd7d08586 100644 --- a/scripts/policy/protocols/ssl/extract-certs-pem.bro +++ b/scripts/policy/protocols/ssl/extract-certs-pem.bro @@ -8,10 +8,6 @@ ##! own certificate files and no duplicate checking is done across ##! clusters so each node would log each certificate. ##! -##! - If there is a certificate input based vulnerability found in the -##! openssl command line utility, you could be in trouble because this -##! script uses that utility to convert from DER to PEM certificates. -##! @load base/protocols/ssl @load base/utils/directions-and-hosts @@ -35,15 +31,32 @@ event ssl_established(c: connection) &priority=5 { if ( ! c$ssl?$cert ) return; + if ( ! addr_matches_host(c$id$resp_h, extract_certs_pem) ) return; - + if ( c$ssl$cert_hash in extracted_certs ) # If we already extracted this cert, don't do it again. return; - - add extracted_certs[c$ssl$cert_hash]; - local side = Site::is_local_addr(c$id$resp_h) ? "local" : "remote"; - local cmd = fmt("%s x509 -inform DER -outform PEM >> certs-%s.pem", openssl_util, side); - piped_exec(cmd, c$ssl$cert); + + local filename = Site::is_local_addr(c$id$resp_h) ? "certs-local.pem" : "certs-remote.pem"; + local outfile = open_for_append(filename); + + print outfile, "-----BEGIN CERTIFICATE-----"; + + # encode to base64 and format to fit 50 lines. Otherwise openssl won't like it later. + local lines = split_all(encode_base64(c$ssl$cert), /.{50}/); + local i = 1; + for ( line in lines ) + { + if ( byte_len(lines[i]) > 0 ) + { + print outfile, lines[i]; + } + i+=1; + } + + print outfile, "-----END CERTIFICATE-----"; + print outfile, ""; + close(outfile); } diff --git a/src/Base64.cc b/src/Base64.cc index b0da8ea74c..030f013d6f 100644 --- a/src/Base64.cc +++ b/src/Base64.cc @@ -1,8 +1,59 @@ #include "config.h" #include "Base64.h" +#include int Base64Decoder::default_base64_table[256]; -const string Base64Decoder::default_alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; +const string Base64::default_alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; + +Base64Encoder::Base64Encoder(const string& arg_alphabet) + { + if ( arg_alphabet.size() > 0 ) + { + assert(arg_alphabet.size() == 64); + alphabet = arg_alphabet; + } + else + { + alphabet = default_alphabet; + } + } + +void Base64Encoder::Encode(int len, const unsigned char* data, int* pblen, char** pbuf) + { + int blen; + char *buf; + + if ( ! pbuf ) + reporter->InternalError("nil pointer to encoding result buffer"); + + if ( *pbuf && (*pblen % 4 != 0) ) + reporter->InternalError("Base64 encode buffer not a multiple of 4"); + + if ( *pbuf ) + { + buf = *pbuf; + blen = *pblen; + } + else + { + blen = int( 4 * ceil ( (double) len / 3 ) ); + *pbuf = buf = new char[blen]; + *pblen = blen; + } + + for ( int i = 0, j = 0; (i < len) && ( j < blen ); ) + { + uint32_t bit32 = ( ( i < len ? data[i++] : 0 ) << 16 ) + + ( ( i < len ? data[i++] : 0 & i++ ) << 8 ) + + ( i < len ? data[i++] : 0 & i++ ); + + buf[j++] = alphabet[(bit32 >> 18) & 0x3f]; + buf[j++] = alphabet[(bit32 >> 12) & 0x3f]; + buf[j++] = ( i == (len+2) ) ? '=' : alphabet[(bit32 >> 6) & 0x3f]; + buf[j++] = ( i >= (len+1) ) ? '=' : alphabet[bit32 & 0x3f]; + } + } + int* Base64Decoder::InitBase64Table(const string& alphabet) { @@ -44,6 +95,8 @@ int* Base64Decoder::InitBase64Table(const string& alphabet) return base64_table; } + + Base64Decoder::Base64Decoder(Analyzer* arg_analyzer, const string& alphabet) { base64_table = InitBase64Table(alphabet.size() ? alphabet : default_alphabet); @@ -195,3 +248,21 @@ err: delete [] rbuf; return 0; } + +BroString* encode_base64(const BroString* s, const BroString* a) + { + if ( a && a->Len() != 64 ) + { + reporter->Error("base64 alphabet is not 64 characters: %s", + a->CheckString()); + return 0; + } + + char* outbuf = 0; + int outlen = 0; + Base64Encoder enc; + enc.Encode(s->Len(), (const unsigned char*) s->Bytes(), &outlen, &outbuf); + + return new BroString(1, (u_char*)outbuf, outlen); + } + diff --git a/src/Base64.h b/src/Base64.h index 0e02c94cf0..5b94ec7c2c 100644 --- a/src/Base64.h +++ b/src/Base64.h @@ -11,7 +11,23 @@ // Maybe we should have a base class for generic decoders? -class Base64Decoder { +class Base64 { +public: +protected: + static const string default_alphabet; +}; + + +class Base64Encoder : public Base64 { +public: + Base64Encoder(const string& arg_alphabet = ""); + void Encode(int len, const unsigned char* data, int* blen, char** buf); +protected: + string alphabet; + +}; + +class Base64Decoder : public Base64 { public: // is used for error reporting, and it should be zero when // the decoder is called by the built-in function decode_base64(). @@ -51,19 +67,19 @@ protected: char error_msg[256]; protected: + static int* InitBase64Table(const string& alphabet); + static int default_base64_table[256]; char base64_group[4]; int base64_group_next; int base64_padding; int base64_after_padding; + int* base64_table; int errored; // if true, we encountered an error - skip further processing Analyzer* analyzer; - int* base64_table; - static int* InitBase64Table(const string& alphabet); - static int default_base64_table[256]; - static const string default_alphabet; }; BroString* decode_base64(const BroString* s, const BroString* a = 0); +BroString* encode_base64(const BroString* s, const BroString* a = 0); #endif /* base64_h */ diff --git a/src/bro.bif b/src/bro.bif index 8cea9d9123..3714839ab8 100644 --- a/src/bro.bif +++ b/src/bro.bif @@ -2868,6 +2868,48 @@ function bytestring_to_hexstr%(bytestring: string%): string return new StringVal(hexstr); %} +## Encodes a Base64-encoded string. +## +## s: The string to encode +## +## Returns: The encoded version of *s*. +## +## .. bro:see:: encode_base64_custom +function encode_base64%(s: string%): string + %{ + BroString* t = encode_base64(s->AsString()); + if ( t ) + return new StringVal(t); + else + { + reporter->Error("error in encoding string %s", s->CheckString()); + return new StringVal(""); + } + %} + +## Encodes a Base64-encoded string with a custom alphabet. +## +## s: The string to encode +## +## a: The custom alphabet. The empty string indicates the default alphabet. The +## length of *a* must be 64. For example, a custom alphabet could be +## ``"!#$%&/(),-.:;<>@[]^ `_{|}~abcdefghijklmnopqrstuvwxyz0123456789+?"``. +## +## Returns: The encoded version of *s*. +## +## .. bro:see:: encode_base64 +function encode_base64_custom%(s: string, a: string%): string + %{ + BroString* t = encode_base64(s->AsString(), a->AsString()); + if ( t ) + return new StringVal(t); + else + { + reporter->Error("error in encoding string %s", s->CheckString()); + return new StringVal(""); + } + %} + ## Decodes a Base64-encoded string. ## ## s: The Base64-encoded string. From 00eeadf2f5b9b4627c822ce9fc57dd181ab056c8 Mon Sep 17 00:00:00 2001 From: Seth Hall Date: Wed, 6 Mar 2013 09:44:25 -0500 Subject: [PATCH 19/71] Complete removal of the old table based notice policy mechanism. --- scripts/base/frameworks/notice/cluster.bro | 22 ++--- scripts/base/frameworks/notice/main.bro | 103 +-------------------- 2 files changed, 9 insertions(+), 116 deletions(-) diff --git a/scripts/base/frameworks/notice/cluster.bro b/scripts/base/frameworks/notice/cluster.bro index 02f11533fa..c722f37bab 100644 --- a/scripts/base/frameworks/notice/cluster.bro +++ b/scripts/base/frameworks/notice/cluster.bro @@ -25,15 +25,6 @@ event Notice::begin_suppression(n: Notice::Info) { suppressing[n$note, n$identifier] = n; } - -event bro_init() &priority=-3 - { - # Workers and proxies need to disable the notice streams because notice - # events are forwarded directly instead of being logged remotely. - Log::disable_stream(Notice::LOG); - Log::disable_stream(Notice::POLICY_LOG); - Log::disable_stream(Notice::ALARM_LOG); - } @endif @if ( Cluster::local_node_type() == Cluster::MANAGER ) @@ -46,17 +37,16 @@ event Notice::cluster_notice(n: Notice::Info) module GLOBAL; -## This is the entry point in the global namespace for notice framework. +## This is the entry point in the global namespace for the notice framework. function NOTICE(n: Notice::Info) { # Suppress this notice if necessary. if ( Notice::is_being_suppressed(n) ) return; -@if ( Cluster::local_node_type() == Cluster::MANAGER ) - Notice::internal_NOTICE(n); -@else - # For non-managers, send the notice on to the manager. - event Notice::cluster_notice(n); -@endif + if ( Cluster::local_node_type() == Cluster::MANAGER ) + Notice::internal_NOTICE(n); + else + # For non-managers, send the notice on to the manager. + event Notice::cluster_notice(n); } diff --git a/scripts/base/frameworks/notice/main.bro b/scripts/base/frameworks/notice/main.bro index 5d3cc48091..60415b8907 100644 --- a/scripts/base/frameworks/notice/main.bro +++ b/scripts/base/frameworks/notice/main.bro @@ -10,9 +10,6 @@ export { redef enum Log::ID += { ## This is the primary logging stream for notices. LOG, - ## This is the notice policy auditing log. It records what the current - ## notice policy is at Bro init time. - POLICY_LOG, ## This is the alarm stream. ALARM_LOG, }; @@ -42,9 +39,6 @@ export { ## version of the alarm log is emailed in bulk to the address(es) ## configured in :bro:id:`Notice::mail_dest`. ACTION_ALARM, - ## Indicates that the notice should not be supressed by the normal - ## duplicate notice suppression that the notice framework does. - ACTION_NO_SUPPRESS, }; ## The notice framework is able to do automatic notice supression by @@ -138,9 +132,8 @@ export { identifier: string &optional; ## This field indicates the length of time that this - ## unique notice should be suppressed. This field is automatically - ## filled out and should not be written to by any other script. - suppress_for: interval &log &optional; + ## unique notice should be suppressed. + suppress_for: interval &log &default=default_suppression_interval; }; ## Ignored notice types. @@ -155,39 +148,6 @@ export { ## intervals for entire notice types. const type_suppression_intervals: table[Notice::Type] of interval = {} &redef; - ## This is the record that defines the items that make up the notice policy. - type PolicyItem: record { - ## This is the exact positional order in which the - ## :bro:type:`Notice::PolicyItem` records are checked. - ## This is set internally by the notice framework. - position: count &log &optional; - ## Define the priority for this check. Items are checked in ordered - ## from highest value (10) to lowest value (0). - priority: count &log &default=5; - ## An action given to the notice if the predicate return true. - action: Notice::Action &log &default=ACTION_NONE; - ## The pred (predicate) field is a function that returns a boolean T - ## or F value. If the predicate function return true, the action in - ## this record is applied to the notice that is given as an argument - ## to the predicate function. If no predicate is supplied, it's - ## assumed that the PolicyItem always applies. - pred: function(n: Notice::Info): bool &log &optional; - ## Indicates this item should terminate policy processing if the - ## predicate returns T. - halt: bool &log &default=F; - ## This defines the length of time that this particular notice should - ## be supressed. - suppress_for: interval &log &optional; - }; - - ## Defines a notice policy that is extensible on a per-site basis. - ## All notice processing is done through this variable. This variable - ## is the former 'policy' variable, and - ## this variable is deprecated and will be removed in a future version. - ## All notice policy decisions are going to be done through the - ## 'policy' hook now. - const policy_table: set[PolicyItem] = {} &redef; - ## The hook to modify notice handling. global policy: hook(n: Notice::Info); @@ -308,10 +268,6 @@ global suppressing: table[Type, string] of Notice::Info = {} &create_expire=0secs &expire_func=per_notice_suppression_interval; -# This is an internal variable used to store the notice policy ordered by -# priority. -global ordered_policy: vector of PolicyItem = vector(); - function log_mailing_postprocessor(info: Log::RotationInfo): bool { if ( ! reading_traces() && mail_dest != "" ) @@ -442,7 +398,7 @@ hook Notice::policy(n: Notice::Info) &priority=10 break; if ( n$note in Notice::not_suppressed_types ) - add n$actions[ACTION_NO_SUPPRESS]; + n$suppress_for=0secs; if ( n$note in Notice::alarmed_types ) add n$actions[ACTION_ALARM]; if ( n$note in Notice::emailed_types ) @@ -467,7 +423,6 @@ hook Notice::notice(n: Notice::Info) &priority=-5 # Normally suppress further notices like this one unless directed not to. # n$identifier *must* be specified for suppression to function at all. if ( n?$identifier && - ACTION_NO_SUPPRESS !in n$actions && [n$note, n$identifier] !in suppressing && n$suppress_for != 0secs ) { @@ -552,24 +507,6 @@ function apply_policy(n: Notice::Info) if ( ! n?$email_delay_tokens ) n$email_delay_tokens = set(); - for ( i in ordered_policy ) - { - # If there's no predicate or the predicate returns F. - if ( ! ordered_policy[i]?$pred || ordered_policy[i]$pred(n) ) - { - add n$actions[ordered_policy[i]$action]; - - # If the predicate matched and there was a suppression interval, - # apply it to the notice now. - if ( ordered_policy[i]?$suppress_for ) - n$suppress_for = ordered_policy[i]$suppress_for; - - # If the policy item wants to halt policy processing, do it now! - if ( ordered_policy[i]$halt ) - break; - } - } - # Apply the hook based policy. hook Notice::policy(n); @@ -588,40 +525,6 @@ function apply_policy(n: Notice::Info) delete n$iconn; } -# Create the ordered notice policy automatically which will be used at runtime -# for prioritized matching of the notice policy. -event bro_init() &priority=10 - { - # Create the policy log here because it's only written to in this handler. - Log::create_stream(Notice::POLICY_LOG, [$columns=PolicyItem]); - - local tmp: table[count] of set[PolicyItem] = table(); - for ( pi in policy_table ) - { - if ( pi$priority < 0 || pi$priority > 10 ) - Reporter::fatal("All Notice::PolicyItem priorities must be within 0 and 10"); - - if ( pi$priority !in tmp ) - tmp[pi$priority] = set(); - add tmp[pi$priority][pi]; - } - - local rev_count = vector(10,9,8,7,6,5,4,3,2,1,0); - for ( i in rev_count ) - { - local j = rev_count[i]; - if ( j in tmp ) - { - for ( pi in tmp[j] ) - { - pi$position = |ordered_policy|; - ordered_policy[|ordered_policy|] = pi; - Log::write(Notice::POLICY_LOG, pi); - } - } - } - } - function internal_NOTICE(n: Notice::Info) { # Fill out fields that might be empty and do the policy processing. From e56a33b6c5801ef0dedbd1c4bc4ee388a149f74e Mon Sep 17 00:00:00 2001 From: Seth Hall Date: Wed, 6 Mar 2013 10:04:50 -0500 Subject: [PATCH 20/71] Update notice framework documentation to represent the new reality. --- doc/notice.rst | 155 ++++++++++++++++++------------------------------- 1 file changed, 58 insertions(+), 97 deletions(-) diff --git a/doc/notice.rst b/doc/notice.rst index 5849e605a9..3aba73885a 100644 --- a/doc/notice.rst +++ b/doc/notice.rst @@ -6,7 +6,7 @@ Notice Framework One of the easiest ways to customize Bro is writing a local notice policy. Bro can detect a large number of potentially interesting - situations, and the notice policy tells which of them the user wants to be + situations, and the notice policy hook which of them the user wants to be acted upon in some manner. In particular, the notice policy can specify actions to be taken, such as sending an email or compiling regular alarm emails. This page gives an introduction into writing such a notice @@ -24,8 +24,8 @@ of interest for the user. However, none of these scripts determines the importance of what it finds itself. Instead, the scripts only flag situations as *potentially* interesting, leaving it to the local configuration to define which of them are in fact actionable. This decoupling of detection and -reporting allows Bro to address the different needs that sites have: -definitions of what constitutes an attack or even a compromise differ quite a +reporting allows Bro to address the different needs that sites have. +Definitions of what constitutes an attack or even a compromise differ quite a bit between environments, and activity deemed malicious at one site might be fully acceptable at another. @@ -40,7 +40,7 @@ More information about raising notices can be found in the `Raising Notices`_ section. Once a notice is raised, it can have any number of actions applied to it by -the :bro:see:`Notice::policy` set which is described in the `Notice Policy`_ +writing :bro:see:`Notice::policy` hooks which is described in the `Notice Policy`_ section below. Such actions can be to send a mail to the configured address(es) or to simply ignore the notice. Currently, the following actions are defined: @@ -68,12 +68,6 @@ are defined: - Send an email to the email address or addresses given in the :bro:see:`Notice::mail_page_dest` variable. - * - Notice::ACTION_NO_SUPPRESS - - This action will disable the built in notice suppression for the - notice. Keep in mind that this action will need to be applied to - every notice that shouldn't be suppressed including each of the future - notices that would have normally been suppressed. - How these notice actions are applied to notices is discussed in the `Notice Policy`_ and `Notice Policy Shortcuts`_ sections. @@ -83,26 +77,24 @@ Processing Notices Notice Policy ************* -The predefined set :bro:see:`Notice::policy` provides the mechanism for -applying actions and other behavior modifications to notices. Each entry -of :bro:see:`Notice::policy` is a record of the type -:bro:see:`Notice::PolicyItem` which defines a condition to be matched -against all raised notices and one or more of a variety of behavior -modifiers. The notice policy is defined by adding any number of -:bro:see:`Notice::PolicyItem` records to the :bro:see:`Notice::policy` -set. +The hook :bro:see:`Notice::policy` provides the mechanism for applying +actions and generally modifying the notice before it's sent onward to +the action plugins. Hooks can be thought of as multi-bodied functions +and using them looks very similar to handling events. The difference +is that they don't go through the event queue like events. Users should +directly make modifications to the :bro:see:`Notice::Info` record +given as the argument to the hook. Here's a simple example which tells Bro to send an email for all notices of type :bro:see:`SSH::Login` if the server is 10.0.0.1: .. code:: bro - redef Notice::policy += { - [$pred(n: Notice::Info) = { - return n$note == SSH::Login && n$id$resp_h == 10.0.0.1; - }, - $action = Notice::ACTION_EMAIL] - }; + hook Notice::policy(n: Notice::Info) + { + if ( n$note == SSH::Login && n$id$resp_h == 10.0.0.1 ) + add n$actions[Notice::ACTION_EMAIL]; + } .. note:: @@ -110,78 +102,21 @@ type :bro:see:`SSH::Login` if the server is 10.0.0.1: such that it is only raised when Bro heuristically detects a successful login. No apparently failed logins will raise this notice. -While the syntax might look a bit convoluted at first, it provides a lot of -flexibility due to having access to Bro's full programming language. - -Predicate Field -^^^^^^^^^^^^^^^ - -The :bro:see:`Notice::PolicyItem` record type has a field name ``$pred`` -which defines the entry's condition in the form of a predicate written -as a Bro function. The function is passed the notice as a -:bro:see:`Notice::Info` record and it returns a boolean value indicating -if the entry is applicable to that particular notice. - -.. note:: - - The lack of a predicate in a ``Notice::PolicyItem`` is implicitly true - (``T``) since an implicit false (``F``) value would never be used. - -Bro evaluates the predicates of each entry in the order defined by the -``$priority`` field in :bro:see:`Notice::PolicyItem` records. The valid -values are 0-10 with 10 being earliest evaluated. If ``$priority`` is -omitted, the default priority is 5. - -Behavior Modification Fields -^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -There are a set of fields in the :bro:see:`Notice::PolicyItem` record type that -indicate ways that either the notice or notice processing should be modified -if the predicate field (``$pred``) evaluated to true (``T``). Those fields are -explained in more detail in the following table. - -.. list-table:: - :widths: 20 30 20 - :header-rows: 1 - - * - Field - - Description - - Example - - * - ``$action=`` - - Each :bro:see:`Notice::PolicyItem` can have a single action - applied to the notice with this field. - - ``$action = Notice::ACTION_EMAIL`` - - * - ``$suppress_for=`` - - This field makes it possible for a user to modify the behavior of the - notice framework's automated suppression of intrinsically similar - notices. More information about the notice framework's automated - suppression can be found in the `Automated Suppression`_ section of - this document. - - ``$suppress_for = 10mins`` - - * - ``$halt=`` - - This field can be used for modification of the notice policy - evaluation. To stop processing of notice policy items before - evaluating all of them, set this field to ``T`` and make the ``$pred`` - field return ``T``. :bro:see:`Notice::PolicyItem` records defined at - a higher priority as defined by the ``$priority`` field will still be - evaluated but those at a lower priority won't. - - ``$halt = T`` - - +Hooks can also have priorities applied to order their execution like events +with a default priority of 0. Greater values are executed first. Setting +a hook body to run before default hook bodies might look like this: .. code:: bro - redef Notice::policy += { - [$pred(n: Notice::Info) = { - return n$note == SSH::Login && n$id$resp_h == 10.0.0.1; - }, - $action = Notice::ACTION_EMAIL, - $priority=5] - }; + hook Notice::policy(n: Notice::Info) &priority=5 + { + if ( n$note == SSH::Login && n$id$resp_h == 10.0.0.1 ) + add n$actions[Notice::ACTION_EMAIL]; + } +Hooks can also abort later hook bodies with the ``break`` keyword. This +is primarily useful if one wants to completely preempt processing by +lower priority :bro:see:`Notice::policy` hooks. Notice Policy Shortcuts *********************** @@ -189,7 +124,7 @@ Notice Policy Shortcuts Although the notice framework provides a great deal of flexibility and configurability there are many times that the full expressiveness isn't needed and actually becomes a hindrance to achieving results. The framework provides -a default :bro:see:`Notice::policy` suite as a way of giving users the +a default :bro:see:`Notice::policy` hook body as a way of giving users the shortcuts to easily apply many common actions to notices. These are implemented as sets and tables indexed with a @@ -377,19 +312,45 @@ Setting the ``$identifier`` field is left to those raising notices because it's assumed that the script author who is raising the notice understands the full problem set and edge cases of the notice which may not be readily apparent to users. If users don't want the suppression to take place or simply -want a different interval, they can always modify it with the -:bro:see:`Notice::policy`. +want a different interval, they can set a notice's suppression +interval to ``0secs`` or delete the value from the ``$identifier`` field in +a :bro:see:`Notice::policy` hook. Extending Notice Framework -------------------------- -Adding Custom Notice Actions -**************************** +There are a couple of mechanism currently for extending the notice framework +and adding new capability. Extending Notice Emails *********************** +If there is extra information that you would like to add to emails, that is +possible to add by writing :bro:see:`Notice::policy` hooks. + +There is a field in the :bro:see:`Notice::Info` record named +``$email_body_sections`` which will be included verbatim when email is being +sent. An example of including some information from an HTTP request is +included below. + +.. code:: bro + + hook Notice::policy(n: Notice::Info) + { + if ( n?$conn && n$conn?$http && n$conn$http?$host ) + n$email_body_sections[|email_body_sections|] = fmt("HTTP host header: %s", n$conn$http$host); + } + + Cluster Considerations ---------------------- +As a user/developer of Bro, the main cluster concern with the notice framework +is understanding what runs where. When a notice is generated on a worker, the +worker checks to see if the notice shoudl be suppressed based on information +locally maintained in the worker process. If it's not being +suppressed, the worker forwards the notice directly to the manager and does no more +local processing. The manager then runs the :bro:see:`Notice::policy` hook and +executes all of the actions determined to be run. + From 00b2d34a8e89307f8259793501fe592efea8b91b Mon Sep 17 00:00:00 2001 From: Jon Siwek Date: Wed, 6 Mar 2013 12:59:54 -0600 Subject: [PATCH 21/71] FileAnalysis: add binary input reader and BIFs for sending in data. This allows the input framework to feed files in to Bro for analysis. --- .../base/frameworks/file-analysis/main.bro | 6 +- scripts/base/frameworks/input/__load__.bro | 1 + .../base/frameworks/input/readers/binary.bro | 8 + src/CMakeLists.txt | 1 + src/file_analysis.bif | 41 +++ src/file_analysis/Info.cc | 10 +- src/file_analysis/Info.h | 5 +- src/file_analysis/Manager.cc | 26 +- src/file_analysis/Manager.h | 12 +- src/input.bif | 3 + src/input/Manager.cc | 2 + src/input/readers/Binary.cc | 264 ++++++++++++++++++ src/input/readers/Binary.h | 48 ++++ src/types.bif | 1 + 14 files changed, 399 insertions(+), 29 deletions(-) create mode 100644 scripts/base/frameworks/input/readers/binary.bro create mode 100644 src/input/readers/Binary.cc create mode 100644 src/input/readers/Binary.h diff --git a/scripts/base/frameworks/file-analysis/main.bro b/scripts/base/frameworks/file-analysis/main.bro index 3133ab43b9..68246761cf 100644 --- a/scripts/base/frameworks/file-analysis/main.bro +++ b/scripts/base/frameworks/file-analysis/main.bro @@ -51,8 +51,10 @@ export { ## from a container file as part of the analysis. parent_file_id: string &log &optional; - ## The network protocol over which the file was transferred. - protocol: string &log &optional; + ## An identification of the source of the file data. E.g. it may be + ## a network protocol over which it was transferred, or a local file + ## path which was read, or some other input source. + source: string &log &optional; ## The set of connections over which the file was transferred, ## indicated by UID strings. diff --git a/scripts/base/frameworks/input/__load__.bro b/scripts/base/frameworks/input/__load__.bro index 0e7d8ffb73..53b2be8364 100644 --- a/scripts/base/frameworks/input/__load__.bro +++ b/scripts/base/frameworks/input/__load__.bro @@ -2,4 +2,5 @@ @load ./readers/ascii @load ./readers/raw @load ./readers/benchmark +@load ./readers/binary diff --git a/scripts/base/frameworks/input/readers/binary.bro b/scripts/base/frameworks/input/readers/binary.bro new file mode 100644 index 0000000000..abd7944ff2 --- /dev/null +++ b/scripts/base/frameworks/input/readers/binary.bro @@ -0,0 +1,8 @@ +##! Interface for the binary input reader. + +module InputBinary; + +export { + ## Size of data chunks to read from the input file at a time. + const chunk_size = 1024 &redef; +} diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index dbabaebff2..e60a68a5a3 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -447,6 +447,7 @@ set(bro_SRCS input/readers/Ascii.cc input/readers/Raw.cc input/readers/Benchmark.cc + input/readers/Binary.cc file_analysis/Manager.cc file_analysis/Info.cc diff --git a/src/file_analysis.bif b/src/file_analysis.bif index abe7dbbd3c..91c235edfe 100644 --- a/src/file_analysis.bif +++ b/src/file_analysis.bif @@ -93,3 +93,44 @@ function FileAnalysis::stop%(file_id: string%): bool bool result = file_mgr->IgnoreFile(FileID(file_id->CheckString())); return new Val(result, TYPE_BOOL); %} + +function FileAnalysis::input_data%(source: string, data: string%): any + %{ + string s = source->CheckString(); + string unique = "BIF " + s; + file_mgr->DataIn(unique, data->Bytes(), data->Len(), 0, s); + return 0; + %} + +function FileAnalysis::input_data_chunk%(source: string, data: string, + offset: count%): any + %{ + string s = source->CheckString(); + string unique = "BIF " + s; + file_mgr->DataIn(unique, data->Bytes(), data->Len(), offset, 0, s); + return 0; + %} + +function FileAnalysis::gap%(source: string, offset: count, len: count%): any + %{ + string s = source->CheckString(); + string unique = "BIF " + s; + file_mgr->Gap(unique, offset, len, 0, s); + return 0; + %} + +function FileAnalysis::set_size%(source: string, size: count%): any + %{ + string s = source->CheckString(); + string unique = "BIF " + s; + file_mgr->SetSize(unique, size, 0, s); + return 0; + %} + +function FileAnalysis::input_eof%(source: string%): any + %{ + string s = source->CheckString(); + string unique = "BIF "+ s; + file_mgr->EndOfFile(unique, 0, s); + return 0; + %} diff --git a/src/file_analysis/Info.cc b/src/file_analysis/Info.cc index e6ab66135f..0d74ae5d99 100644 --- a/src/file_analysis/Info.cc +++ b/src/file_analysis/Info.cc @@ -37,7 +37,7 @@ static RecordVal* get_conn_id_val(const Connection* conn) int Info::file_id_idx = -1; int Info::parent_file_id_idx = -1; -int Info::protocol_idx = -1; +int Info::source_idx = -1; int Info::conn_uids_idx = -1; int Info::conn_ids_idx = -1; int Info::seen_bytes_idx = -1; @@ -59,7 +59,7 @@ void Info::InitFieldIndices() if ( file_id_idx != -1 ) return; file_id_idx = Idx("file_id"); parent_file_id_idx = Idx("parent_file_id"); - protocol_idx = Idx("protocol"); + source_idx = Idx("source"); conn_uids_idx = Idx("conn_uids"); conn_ids_idx = Idx("conn_ids"); seen_bytes_idx = Idx("seen_bytes"); @@ -89,7 +89,7 @@ static void init_magic(magic_t* magic, int flags) } } -Info::Info(const string& unique, Connection* conn, const string& protocol) +Info::Info(const string& unique, Connection* conn, const string& source) : file_id(unique), unique(unique), val(0), last_activity_time(network_time), postpone_timeout(false), need_reassembly(false), done(false), actions(this) @@ -113,8 +113,8 @@ Info::Info(const string& unique, Connection* conn, const string& protocol) UpdateConnectionFields(conn); - if ( protocol != "" ) - val->Assign(protocol_idx, new StringVal(protocol.c_str())); + if ( ! source.empty() ) + val->Assign(source_idx, new StringVal(source.c_str())); } Info::~Info() diff --git a/src/file_analysis/Info.h b/src/file_analysis/Info.h index f6dd1d3b46..a02262c99d 100644 --- a/src/file_analysis/Info.h +++ b/src/file_analysis/Info.h @@ -117,8 +117,7 @@ protected: /** * Constructor; only file_analysis::Manager should be creating these. */ - Info(const string& unique, Connection* conn = 0, - const string& protocol = ""); + Info(const string& unique, Connection* conn = 0, const string& source = ""); /** * Updates the "conn_ids" and "conn_uids" fields in #val record with the @@ -190,7 +189,7 @@ protected: public: static int file_id_idx; static int parent_file_id_idx; - static int protocol_idx; + static int source_idx; static int conn_uids_idx; static int conn_ids_idx; static int seen_bytes_idx; diff --git a/src/file_analysis/Manager.cc b/src/file_analysis/Manager.cc index fa46f4b04c..85dbe8ff39 100644 --- a/src/file_analysis/Manager.cc +++ b/src/file_analysis/Manager.cc @@ -26,11 +26,11 @@ void Manager::Terminate() } void Manager::DataIn(const string& unique, const u_char* data, uint64 len, - uint64 offset, Connection* conn, const string& protocol) + uint64 offset, Connection* conn, const string& source) { if ( IsIgnored(unique) ) return; - Info* info = GetInfo(unique, conn, protocol); + Info* info = GetInfo(unique, conn, source); if ( ! info ) return; @@ -41,9 +41,9 @@ void Manager::DataIn(const string& unique, const u_char* data, uint64 len, } void Manager::DataIn(const string& unique, const u_char* data, uint64 len, - Connection* conn, const string& protocol) + Connection* conn, const string& source) { - Info* info = GetInfo(unique, conn, protocol); + Info* info = GetInfo(unique, conn, source); if ( ! info ) return; @@ -54,18 +54,18 @@ void Manager::DataIn(const string& unique, const u_char* data, uint64 len, } void Manager::EndOfFile(const string& unique, Connection* conn, - const string& protocol) + const string& source) { - // Just call GetInfo because maybe the conn/protocol args will update + // Just call GetInfo because maybe the conn/source args will update // something in the Info record. - GetInfo(unique, conn, protocol); + GetInfo(unique, conn, source); RemoveFile(unique); } void Manager::Gap(const string& unique, uint64 offset, uint64 len, - Connection* conn, const string& protocol) + Connection* conn, const string& source) { - Info* info = GetInfo(unique, conn, protocol); + Info* info = GetInfo(unique, conn, source); if ( ! info ) return; @@ -73,9 +73,9 @@ void Manager::Gap(const string& unique, uint64 offset, uint64 len, } void Manager::SetSize(const string& unique, uint64 size, - Connection* conn, const string& protocol) + Connection* conn, const string& source) { - Info* info = GetInfo(unique, conn, protocol); + Info* info = GetInfo(unique, conn, source); if ( ! info ) return; @@ -132,7 +132,7 @@ bool Manager::RemoveAction(const FileID& file_id, const RecordVal* args) const } Info* Manager::GetInfo(const string& unique, Connection* conn, - const string& protocol) + const string& source) { if ( IsIgnored(unique) ) return 0; @@ -140,7 +140,7 @@ Info* Manager::GetInfo(const string& unique, Connection* conn, if ( ! rval ) { - rval = str_map[unique] = new Info(unique, conn, protocol); + rval = str_map[unique] = new Info(unique, conn, source); FileID id = rval->GetFileID(); if ( id_map[id] ) diff --git a/src/file_analysis/Manager.h b/src/file_analysis/Manager.h index 257060f406..f17bdef540 100644 --- a/src/file_analysis/Manager.h +++ b/src/file_analysis/Manager.h @@ -35,31 +35,31 @@ public: */ void DataIn(const string& unique, const u_char* data, uint64 len, uint64 offset, Connection* conn = 0, - const string& protocol = ""); + const string& source = ""); /** * Pass in sequential file data. */ void DataIn(const string& unique, const u_char* data, uint64 len, - Connection* conn = 0, const string& protocol = ""); + Connection* conn = 0, const string& source = ""); /** * Signal the end of file data. */ void EndOfFile(const string& unique, Connection* conn = 0, - const string& protocol = ""); + const string& source = ""); /** * Signal a gap in the file data stream. */ void Gap(const string& unique, uint64 offset, uint64 len, - Connection* conn = 0, const string& protocol = ""); + Connection* conn = 0, const string& source = ""); /** * Provide the expected number of bytes that comprise a file. */ void SetSize(const string& unique, uint64 size, Connection* conn = 0, - const string& protocol = ""); + const string& source = ""); /** * Starts ignoring a file, which will finally be removed from internal @@ -109,7 +109,7 @@ protected: * record value may be updated. */ Info* GetInfo(const string& unique, Connection* conn = 0, - const string& protocol = ""); + const string& source = ""); /** * @return the Info object mapped to \a file_id, or a null pointer if no diff --git a/src/input.bif b/src/input.bif index 199b665fa6..d7e4de5463 100644 --- a/src/input.bif +++ b/src/input.bif @@ -57,3 +57,6 @@ const autospread: double; const addfactor: count; const stopspreadat: count; const timedspread: double; + +module InputBinary; +const chunk_size: count; diff --git a/src/input/Manager.cc b/src/input/Manager.cc index d9006d66a2..4b843cdc35 100644 --- a/src/input/Manager.cc +++ b/src/input/Manager.cc @@ -8,6 +8,7 @@ #include "readers/Ascii.h" #include "readers/Raw.h" #include "readers/Benchmark.h" +#include "readers/Binary.h" #include "Event.h" #include "EventHandler.h" @@ -34,6 +35,7 @@ ReaderDefinition input_readers[] = { { BifEnum::Input::READER_ASCII, "Ascii", 0, reader::Ascii::Instantiate }, { BifEnum::Input::READER_RAW, "Raw", 0, reader::Raw::Instantiate }, { BifEnum::Input::READER_BENCHMARK, "Benchmark", 0, reader::Benchmark::Instantiate }, + { BifEnum::Input::READER_BINARY, "Binary", 0, reader::Binary::Instantiate }, // End marker { BifEnum::Input::READER_DEFAULT, "None", 0, (ReaderBackend* (*)(ReaderFrontend* frontend))0 } diff --git a/src/input/readers/Binary.cc b/src/input/readers/Binary.cc new file mode 100644 index 0000000000..da86753303 --- /dev/null +++ b/src/input/readers/Binary.cc @@ -0,0 +1,264 @@ +// See the file "COPYING" in the main distribution directory for copyright. + +#include + +#include "Binary.h" +#include "NetVar.h" + +#include "../../threading/SerialTypes.h" + +using namespace input::reader; +using threading::Value; +using threading::Field; + +streamsize Binary::chunk_size = 0; + +Binary::Binary(ReaderFrontend *frontend) + : ReaderBackend(frontend), in(0), mtime(0), firstrun(true) + { + if ( ! chunk_size ) + { + chunk_size = BifConst::InputBinary::chunk_size; + if ( ! chunk_size ) + chunk_size = 1024; + } + } + +Binary::~Binary() + { + DoClose(); + } + +void Binary::DoClose() + { + if ( in ) + CloseInput(); + } + +bool Binary::OpenInput() + { + in = new ifstream(fname.c_str(), ios_base::in | ios_base::binary); + + if ( in->fail() ) + { + Error(Fmt("Init: cannot open %s", fname.c_str())); + return false; + } + + return true; + } + +bool Binary::CloseInput() + { + if ( ! in || ! in->is_open() ) + { + InternalError(Fmt("Trying to close closed file for stream %s", + fname.c_str())); + return false; + } + +#ifdef DEBUG + Debug(DBG_INPUT, "Binary reader starting close"); +#endif + + in->close(); + delete in; + in = 0; + +#ifdef DEBUG + Debug(DBG_INPUT, "Binary reader finished close"); +#endif + + return true; + } + +bool Binary::DoInit(const ReaderInfo& info, int num_fields, + const Field* const* fields) + { + in = 0; + mtime = 0; + firstrun = true; + + if ( ! info.source || strlen(info.source) == 0 ) + { + Error("No source path provided"); + return false; + } + + if ( num_fields != 1 ) + { + Error("Filter for binary reader contains more than one field. Filters " + "for binary reader must contain exactly one string field. " + "Filter ignored."); + return false; + } + + if ( fields[0]->type != TYPE_STRING ) + { + Error("Filter for binary reader contains a non-string field."); + return false; + } + + // do Initialization + fname = info.source; + + if ( ! OpenInput() ) return false; + + if ( UpdateModificationTime() == -1 ) return false; + +#ifdef DEBUG + Debug(DBG_INPUT, "Binary reader created, will perform first update"); +#endif + + // after initialization - do update + DoUpdate(); + +#ifdef DEBUG + Debug(DBG_INPUT, "Binary reader did first update"); +#endif + + return true; + } + +streamsize Binary::GetChunk(char** chunk) + { + if ( in->peek() == std::iostream::traits_type::eof() ) + return 0; + + if ( in->eof() == true || in->fail() == true ) + return 0; + + *chunk = new char[chunk_size]; + + in->read(*chunk, chunk_size); + + streamsize bytes_read = in->gcount(); + + if ( ! bytes_read ) + { + delete *chunk; + *chunk = 0; + return 0; + } + + // probably faster to just not resize if bytes_read < chunk_size, since + // length of valid data is known + + return bytes_read; + } + +int Binary::UpdateModificationTime() + { + struct stat sb; + + if ( stat(fname.c_str(), &sb) == -1 ) + { + Error(Fmt("Could not get stat for %s", fname.c_str())); + return -1; + } + + if ( sb.st_mtime <= mtime ) + // no change + return 0; + + mtime = sb.st_mtime; + return 1; + } + +// read the entire file and send appropriate thingies back to InputMgr +bool Binary::DoUpdate() + { + if ( firstrun ) + firstrun = false; + + else + { + switch ( Info().mode ) { + case MODE_REREAD: + { + switch ( UpdateModificationTime() ) { + case -1: + return false; // error + case 0: + return true; // no change + case 1: + break; // file changed. reread. + default: + assert(false); + } + // fallthrough + } + + case MODE_MANUAL: + case MODE_STREAM: + if ( Info().mode == MODE_STREAM && in ) + { + in->clear(); // remove end of file evil bits + break; + } + + CloseInput(); + if ( ! OpenInput() ) + return false; + + break; + + default: + assert(false); + } + } + + char* chunk = 0; + streamsize size = 0; + while ( (size = GetChunk(&chunk)) ) + { + assert (NumFields() == 1); + + Value** fields = new Value*[1]; + + // filter has exactly one text field. convert to it. + Value* val = new Value(TYPE_STRING, true); + val->val.string_val.data = chunk; + val->val.string_val.length = size; + fields[0] = val; + + if ( Info().mode == MODE_STREAM ) + Put(fields); + else + SendEntry(fields); + } + + if ( Info().mode != MODE_STREAM ) + EndCurrentSend(); + +#ifdef DEBUG + Debug(DBG_INPUT, "DoUpdate finished successfully"); +#endif + + return true; + } + +bool Binary::DoHeartbeat(double network_time, double current_time) + { + switch ( Info().mode ) { + case MODE_MANUAL: + // yay, we do nothing :) + break; + + case MODE_REREAD: + case MODE_STREAM: +#ifdef DEBUG + Debug(DBG_INPUT, "Starting Heartbeat update"); +#endif + Update(); // call update and not DoUpdate, because update + // checks disabled. +#ifdef DEBUG + Debug(DBG_INPUT, "Finished with heartbeat update"); +#endif + break; + default: + assert(false); + } + + return true; + } diff --git a/src/input/readers/Binary.h b/src/input/readers/Binary.h new file mode 100644 index 0000000000..2705800ab8 --- /dev/null +++ b/src/input/readers/Binary.h @@ -0,0 +1,48 @@ +// See the file "COPYING" in the main distribution directory for copyright. + +#ifndef INPUT_READERS_BINARY_H +#define INPUT_READERS_BINARY_H + +#include "../ReaderBackend.h" +#include + +namespace input { namespace reader { + +/** + * Binary mode file reader. + */ +class Binary : public ReaderBackend { +public: + Binary(ReaderFrontend* frontend); + + ~Binary(); + + static ReaderBackend* Instantiate(ReaderFrontend* frontend) + { return new Binary(frontend); } + +protected: + virtual bool DoInit(const ReaderInfo& info, int arg_num_fields, + const threading::Field* const* fields); + virtual void DoClose(); + virtual bool DoUpdate(); + virtual bool DoHeartbeat(double network_time, double current_time); + +private: + bool OpenInput(); + bool CloseInput(); + streamsize GetChunk(char** chunk); + int UpdateModificationTime(); + + string fname; + ifstream* in; + time_t mtime; + bool firstrun; + + // options set from the script-level. + static streamsize chunk_size; +}; + +} +} + +#endif /* INPUT_READERS_BINARY_H */ diff --git a/src/types.bif b/src/types.bif index 888310419c..b800ce2e8e 100644 --- a/src/types.bif +++ b/src/types.bif @@ -196,6 +196,7 @@ enum Reader %{ READER_ASCII, READER_RAW, READER_BENCHMARK, + READER_BINARY, %} enum Event %{ From cfada6167223ef20630ea7b6ca5cd771ee3dd33c Mon Sep 17 00:00:00 2001 From: Bernhard Amann Date: Wed, 6 Mar 2013 13:30:13 -0800 Subject: [PATCH 22/71] and modernize script. thanks Seth. --- scripts/policy/protocols/ssl/extract-certs-pem.bro | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/policy/protocols/ssl/extract-certs-pem.bro b/scripts/policy/protocols/ssl/extract-certs-pem.bro index bdd7d08586..f48d4bc369 100644 --- a/scripts/policy/protocols/ssl/extract-certs-pem.bro +++ b/scripts/policy/protocols/ssl/extract-certs-pem.bro @@ -49,7 +49,7 @@ event ssl_established(c: connection) &priority=5 local i = 1; for ( line in lines ) { - if ( byte_len(lines[i]) > 0 ) + if ( |lines[i]| > 0 ) { print outfile, lines[i]; } From 986b346e3f3d58a4052815bc1ee9c9dc7a19638f Mon Sep 17 00:00:00 2001 From: Bernhard Amann Date: Wed, 6 Mar 2013 13:45:42 -0800 Subject: [PATCH 23/71] remove the byte_len and length bifs --- scripts/base/frameworks/signatures/main.bro | 6 ++--- scripts/base/utils/paths.bro | 2 +- scripts/base/utils/strings.bro | 2 +- scripts/policy/protocols/http/detect-MHR.bro | 2 +- src/bro.bif | 23 -------------------- src/strings.bif | 13 ----------- testing/btest/bifs/byte_len.bro | 10 --------- testing/btest/bifs/length.bro | 22 ------------------- 8 files changed, 6 insertions(+), 74 deletions(-) delete mode 100644 testing/btest/bifs/byte_len.bro delete mode 100644 testing/btest/bifs/length.bro diff --git a/scripts/base/frameworks/signatures/main.bro b/scripts/base/frameworks/signatures/main.bro index 4102214075..7e2f71ea8c 100644 --- a/scripts/base/frameworks/signatures/main.bro +++ b/scripts/base/frameworks/signatures/main.bro @@ -161,7 +161,7 @@ event signature_match(state: signature_state, msg: string, data: string) return; # Trim the matched data down to something reasonable - if ( byte_len(data) > 140 ) + if ( |data| > 140 ) data = fmt("%s...", sub_bytes(data, 0, 140)); local src_addr: addr; @@ -259,8 +259,8 @@ event signature_match(state: signature_state, msg: string, data: string) add vert_table[orig, resp][sig_id]; - local hcount = length(horiz_table[orig, sig_id]); - local vcount = length(vert_table[orig, resp]); + local hcount = |horiz_table[orig, sig_id]|; + local vcount = |vert_table[orig, resp]|; if ( hcount in horiz_scan_thresholds && hcount != last_hthresh[orig] ) { diff --git a/scripts/base/utils/paths.bro b/scripts/base/utils/paths.bro index 92f0745be4..aa083ddf5b 100644 --- a/scripts/base/utils/paths.bro +++ b/scripts/base/utils/paths.bro @@ -27,7 +27,7 @@ function compress_path(dir: string): string const cdup_sep = /((\/)*([^\/]|\\\/)+)?((\/)+\.\.(\/)*)/; local parts = split_n(dir, cdup_sep, T, 1); - if ( length(parts) > 1 ) + if ( |parts| > 1 ) { # reaching a point with two parent dir references back-to-back means # we don't know about anything higher in the tree to pop off diff --git a/scripts/base/utils/strings.bro b/scripts/base/utils/strings.bro index 2836f368b4..560ba6d160 100644 --- a/scripts/base/utils/strings.bro +++ b/scripts/base/utils/strings.bro @@ -6,7 +6,7 @@ ## characters. function is_string_binary(s: string): bool { - return byte_len(gsub(s, /[\x00-\x7f]/, "")) * 100 / |s| >= 25; + return |gsub(s, /[\x00-\x7f]/, "")| * 100 / |s| >= 25; } ## Joins a set of string together, with elements delimited by a constant string. diff --git a/scripts/policy/protocols/http/detect-MHR.bro b/scripts/policy/protocols/http/detect-MHR.bro index 1898022978..0594276c93 100644 --- a/scripts/policy/protocols/http/detect-MHR.bro +++ b/scripts/policy/protocols/http/detect-MHR.bro @@ -32,7 +32,7 @@ event log_http(rec: HTTP::Info) { # Data is returned as " " local MHR_answer = split1(MHR_result, / /); - if ( length(MHR_answer) == 2 && to_count(MHR_answer[2]) >= MHR_threshold ) + if ( |MHR_answer| == 2 && to_count(MHR_answer[2]) >= MHR_threshold ) { local url = HTTP::build_url_http(rec); local message = fmt("%s %s %s", rec$id$orig_h, rec$md5, url); diff --git a/src/bro.bif b/src/bro.bif index 8cea9d9123..15c2e8da3f 100644 --- a/src/bro.bif +++ b/src/bro.bif @@ -1033,29 +1033,6 @@ function clear_table%(v: any%): any return 0; %} -## Returns the number of elements in a container. This function works with all -## container types, i.e., sets, tables, and vectors. -## -## v: The container whose elements are counted. -## -## Returns: The number of elements in *v*. -function length%(v: any%): count - %{ - TableVal* tv = v->Type()->Tag() == TYPE_TABLE ? v->AsTableVal() : 0; - - if ( tv ) - return new Val(tv->Size(), TYPE_COUNT); - - else if ( v->Type()->Tag() == TYPE_VECTOR ) - return new Val(v->AsVectorVal()->Size(), TYPE_COUNT); - - else - { - builtin_error("length() requires a table/set/vector argument"); - return new Val(0, TYPE_COUNT); - } - %} - ## Checks whether two objects reference the same internal object. This function ## uses equality comparison of C++ raw pointer values to determine if the two ## objects are the same. diff --git a/src/strings.bif b/src/strings.bif index dc5e064dc6..22f5429a8b 100644 --- a/src/strings.bif +++ b/src/strings.bif @@ -265,19 +265,6 @@ function edit%(arg_s: string, arg_edit_char: string%): string return new StringVal(new BroString(1, byte_vec(new_s), ind)); %} -## Returns the number of characters (bytes) in the given string. The -## length computation includes any embedded NULs, and also a trailing NUL, -## if any (which is why the function isn't called ``strlen``; to remind -## the user that Bro strings can include NULs). -## -## s: The string to compute the length for. -## -## Returns: The number of characters in *s*. -function byte_len%(s: string%): count - %{ - return new Val(s->Len(), TYPE_COUNT); - %} - ## Get a substring from a string, given a starting position and length. ## ## s: The string to obtain a substring from. diff --git a/testing/btest/bifs/byte_len.bro b/testing/btest/bifs/byte_len.bro deleted file mode 100644 index bd15b0c390..0000000000 --- a/testing/btest/bifs/byte_len.bro +++ /dev/null @@ -1,10 +0,0 @@ -# -# @TEST-EXEC: bro -b %INPUT >out -# @TEST-EXEC: btest-diff out - -event bro_init() - { - local a = "hello\0there"; - - print byte_len(a); - } diff --git a/testing/btest/bifs/length.bro b/testing/btest/bifs/length.bro deleted file mode 100644 index ca82d7eab7..0000000000 --- a/testing/btest/bifs/length.bro +++ /dev/null @@ -1,22 +0,0 @@ -# -# @TEST-EXEC: bro -b %INPUT > out -# @TEST-EXEC: btest-diff out - -event bro_init() - { - local mytable: table[string] of string = { ["key1"] = "val1" }; - local myset: set[count] = set( 3, 6, 2, 7 ); - local myvec: vector of string = vector( "value1", "value2" ); - - print length(mytable); - print length(myset); - print length(myvec); - - mytable = table(); - myset = set(); - myvec = vector(); - - print length(mytable); - print length(myset); - print length(myvec); - } From 8f259f866d7ca05cf4aaeb507ed3891cb742f776 Mon Sep 17 00:00:00 2001 From: Bernhard Amann Date: Wed, 6 Mar 2013 14:08:06 -0800 Subject: [PATCH 24/71] change vector assignment operator and remove unnecessary argument (expr) --- src/BroString.cc | 2 +- src/CompHash.cc | 2 +- src/Expr.cc | 43 ++++++++++++++++++--------------------- src/ICMP.cc | 2 +- src/IP.cc | 4 ++-- src/NFS.cc | 2 +- src/SmithWaterman.cc | 4 ++-- src/StateAccess.cc | 4 ++-- src/TunnelEncapsulation.h | 2 +- src/Val.cc | 9 ++++---- src/Val.h | 10 ++++----- src/bro.bif | 8 ++++---- src/input/Manager.cc | 2 +- src/modbus-analyzer.pac | 36 ++++++++++++++++---------------- src/strings.bif | 2 +- 15 files changed, 63 insertions(+), 69 deletions(-) diff --git a/src/BroString.cc b/src/BroString.cc index e05995b156..19f7a16566 100644 --- a/src/BroString.cc +++ b/src/BroString.cc @@ -369,7 +369,7 @@ VectorVal* BroString:: VecToPolicy(Vec* vec) BroString* string = (*vec)[i]; StringVal* val = new StringVal(string->Len(), (const char*) string->Bytes()); - result->Assign(i+1, val, 0); + result->Assign(i+1, val); } return result; diff --git a/src/CompHash.cc b/src/CompHash.cc index 306b3ea83e..05d3e515d2 100644 --- a/src/CompHash.cc +++ b/src/CompHash.cc @@ -856,7 +856,7 @@ const char* CompositeHash::RecoverOneVal(const HashKey* k, const char* kp0, if ( have_val ) kp1 = RecoverOneVal(k, kp1, k_end, vt->YieldType(), value, false); - vv->Assign(index, value, 0); + vv->Assign(index, value); } pval = vv; diff --git a/src/Expr.cc b/src/Expr.cc index 3df4d781a0..19295e92d5 100644 --- a/src/Expr.cc +++ b/src/Expr.cc @@ -485,7 +485,7 @@ Val* UnaryExpr::Eval(Frame* f) const for ( unsigned int i = 0; i < v_op->Size(); ++i ) { Val* v_i = v_op->Lookup(i); - result->Assign(i, v_i ? Fold(v_i) : 0, this); + result->Assign(i, v_i ? Fold(v_i) : 0); } Unref(v); @@ -625,10 +625,9 @@ Val* BinaryExpr::Eval(Frame* f) const if ( v_op1->Lookup(i) && v_op2->Lookup(i) ) v_result->Assign(i, Fold(v_op1->Lookup(i), - v_op2->Lookup(i)), - this); + v_op2->Lookup(i))); else - v_result->Assign(i, 0, this); + v_result->Assign(i, 0); // SetError("undefined element in vector operation"); } @@ -648,10 +647,9 @@ Val* BinaryExpr::Eval(Frame* f) const if ( vv_i ) v_result->Assign(i, is_vec1 ? - Fold(vv_i, v2) : Fold(v1, vv_i), - this); + Fold(vv_i, v2) : Fold(v1, vv_i)); else - v_result->Assign(i, 0, this); + v_result->Assign(i, 0); // SetError("Undefined element in vector operation"); } @@ -1049,10 +1047,10 @@ Val* IncrExpr::Eval(Frame* f) const if ( elt ) { Val* new_elt = DoSingleEval(f, elt); - v_vec->Assign(i, new_elt, this, OP_INCR); + v_vec->Assign(i, new_elt, OP_INCR); } else - v_vec->Assign(i, 0, this, OP_INCR); + v_vec->Assign(i, 0, OP_INCR); } op->Assign(f, v_vec, OP_INCR); } @@ -1919,7 +1917,7 @@ Val* BoolExpr::Eval(Frame* f) const result = new VectorVal(Type()->AsVectorType()); result->Resize(vector_v->Size()); result->AssignRepeat(0, result->Size(), - scalar_v, this); + scalar_v); } else result = vector_v->Ref()->AsVectorVal(); @@ -1957,10 +1955,10 @@ Val* BoolExpr::Eval(Frame* f) const (! op1->IsZero() && ! op2->IsZero()) : (! op1->IsZero() || ! op2->IsZero()); - result->Assign(i, new Val(local_result, TYPE_BOOL), this); + result->Assign(i, new Val(local_result, TYPE_BOOL)); } else - result->Assign(i, 0, this); + result->Assign(i, 0); } Unref(v1); @@ -2334,10 +2332,9 @@ Val* CondExpr::Eval(Frame* f) const if ( local_cond ) result->Assign(i, local_cond->IsZero() ? - b->Lookup(i) : a->Lookup(i), - this); + b->Lookup(i) : a->Lookup(i)); else - result->Assign(i, 0, this); + result->Assign(i, 0); } return result; @@ -2961,7 +2958,7 @@ Val* IndexExpr::Eval(Frame* f) const for ( unsigned int i = 0; i < v_v2->Size(); ++i ) { if ( v_v2->Lookup(i)->AsBool() ) - v_result->Assign(v_result->Size() + 1, v_v1->Lookup(i), this); + v_result->Assign(v_result->Size() + 1, v_v1->Lookup(i)); } } else @@ -2971,7 +2968,7 @@ Val* IndexExpr::Eval(Frame* f) const // Probably only do this if *all* are negative. v_result->Resize(v_v2->Size()); for ( unsigned int i = 0; i < v_v2->Size(); ++i ) - v_result->Assign(i, v_v1->Lookup(v_v2->Lookup(i)->CoerceToInt()), this); + v_result->Assign(i, v_v1->Lookup(v_v2->Lookup(i)->CoerceToInt())); } } else @@ -3048,7 +3045,7 @@ void IndexExpr::Assign(Frame* f, Val* v, Opcode op) switch ( v1->Type()->Tag() ) { case TYPE_VECTOR: - if ( ! v1->AsVectorVal()->Assign(v2, v, this, op) ) + if ( ! v1->AsVectorVal()->Assign(v2, v, op) ) Internal("assignment failed"); break; @@ -3620,7 +3617,7 @@ Val* VectorConstructorExpr::Eval(Frame* f) const { Expr* e = exprs[i]; Val* v = e->Eval(f); - if ( ! vec->Assign(i, v, e) ) + if ( ! vec->Assign(i, v) ) { Error(fmt("type mismatch at index %d", i), e); return 0; @@ -3644,7 +3641,7 @@ Val* VectorConstructorExpr::InitVal(const BroType* t, Val* aggr) const Expr* e = exprs[i]; Val* v = check_and_promote(e->Eval(0), t->YieldType(), 1); - if ( ! v || ! vec->Assign(i, v, e) ) + if ( ! v || ! vec->Assign(i, v) ) { Error(fmt("initialization type mismatch at index %d", i), e); return 0; @@ -3865,9 +3862,9 @@ Val* ArithCoerceExpr::Fold(Val* v) const { Val* elt = vv->Lookup(i); if ( elt ) - result->Assign(i, FoldSingleVal(elt, t), this); + result->Assign(i, FoldSingleVal(elt, t)); else - result->Assign(i, 0, this); + result->Assign(i, 0); } return result; @@ -5042,7 +5039,7 @@ Val* ListExpr::InitVal(const BroType* t, Val* aggr) const Expr* e = exprs[i]; check_and_promote_expr(e, vec->Type()->AsVectorType()->YieldType()); Val* v = e->Eval(0); - if ( ! vec->Assign(i, v, e) ) + if ( ! vec->Assign(i, v) ) { e->Error(fmt("type mismatch at index %d", i)); return 0; diff --git a/src/ICMP.cc b/src/ICMP.cc index b9b4e89404..5634e3885f 100644 --- a/src/ICMP.cc +++ b/src/ICMP.cc @@ -829,7 +829,7 @@ VectorVal* ICMP_Analyzer::BuildNDOptionsVal(int caplen, const u_char* data) data += length; caplen -= length; - vv->Assign(vv->Size(), rv, 0); + vv->Assign(vv->Size(), rv); } return vv; diff --git a/src/IP.cc b/src/IP.cc index 16424e26f2..78311cc2d2 100644 --- a/src/IP.cc +++ b/src/IP.cc @@ -63,7 +63,7 @@ static VectorVal* BuildOptionsVal(const u_char* data, int len) len -= opt->ip6o_len + off; } - vv->Assign(vv->Size(), rv, 0); + vv->Assign(vv->Size(), rv); } return vv; @@ -626,7 +626,7 @@ VectorVal* IPv6_Hdr_Chain::BuildVal() const reporter->InternalError("IPv6_Hdr_Chain bad header %d", type); break; } - rval->Assign(rval->Size(), ext_hdr, 0); + rval->Assign(rval->Size(), ext_hdr); } return rval; diff --git a/src/NFS.cc b/src/NFS.cc index 2911ee7f59..d64f7755a3 100644 --- a/src/NFS.cc +++ b/src/NFS.cc @@ -599,7 +599,7 @@ RecordVal* NFS_Interp::nfs3_readdir_reply(bool isplus, const u_char*& buf, entry->Assign(4, nfs3_post_op_fh(buf,n)); } - entries->Assign(pos, entry, 0); + entries->Assign(pos, entry); pos++; } diff --git a/src/SmithWaterman.cc b/src/SmithWaterman.cc index ef329e49a5..e051032756 100644 --- a/src/SmithWaterman.cc +++ b/src/SmithWaterman.cc @@ -96,12 +96,12 @@ VectorVal* BroSubstring::VecToPolicy(Vec* vec) align_val->Assign(0, new StringVal(new BroString(*align.string))); align_val->Assign(1, new Val(align.index, TYPE_COUNT)); - aligns->Assign(j+1, align_val, 0); + aligns->Assign(j+1, align_val); } st_val->Assign(1, aligns); st_val->Assign(2, new Val(bst->IsNewAlignment(), TYPE_BOOL)); - result->Assign(i+1, st_val, 0); + result->Assign(i+1, st_val); } } diff --git a/src/StateAccess.cc b/src/StateAccess.cc index 2d0a8dfc5a..c027624526 100644 --- a/src/StateAccess.cc +++ b/src/StateAccess.cc @@ -371,7 +371,7 @@ void StateAccess::Replay() CheckOld("index assign", target.id, op1.val, op3, v->AsVectorVal()->Lookup(index)); - v->AsVectorVal()->Assign(index, op2 ? op2->Ref() : 0, 0); + v->AsVectorVal()->Assign(index, op2 ? op2->Ref() : 0); } else @@ -421,7 +421,7 @@ void StateAccess::Replay() Val* lookup_op1 = v->AsVectorVal()->Lookup(index); int delta = lookup_op1->CoerceToInt() + amount; Val* new_val = new Val(delta, t); - v->AsVectorVal()->Assign(index, new_val, 0); + v->AsVectorVal()->Assign(index, new_val); } else diff --git a/src/TunnelEncapsulation.h b/src/TunnelEncapsulation.h index e8ca7a48b6..a43f7c0b57 100644 --- a/src/TunnelEncapsulation.h +++ b/src/TunnelEncapsulation.h @@ -186,7 +186,7 @@ public: if ( conns ) { for ( size_t i = 0; i < conns->size(); ++i ) - vv->Assign(i, (*conns)[i].GetRecordVal(), 0); + vv->Assign(i, (*conns)[i].GetRecordVal()); } return vv; diff --git a/src/Val.cc b/src/Val.cc index 20051aff5f..5133550236 100644 --- a/src/Val.cc +++ b/src/Val.cc @@ -2921,8 +2921,7 @@ VectorVal::~VectorVal() delete val.vector_val; } -bool VectorVal::Assign(unsigned int index, Val* element, const Expr* assigner, - Opcode op) +bool VectorVal::Assign(unsigned int index, Val* element, Opcode op) { if ( element && ! same_type(element->Type(), vector_type->YieldType(), 0) ) @@ -2983,12 +2982,12 @@ bool VectorVal::Assign(unsigned int index, Val* element, const Expr* assigner, } bool VectorVal::AssignRepeat(unsigned int index, unsigned int how_many, - Val* element, const Expr* assigner) + Val* element) { ResizeAtLeast(index + how_many); for ( unsigned int i = index; i < index + how_many; ++i ) - if ( ! Assign(i, element, assigner) ) + if ( ! Assign(i, element ) ) return false; return true; @@ -3089,7 +3088,7 @@ bool VectorVal::DoUnserialize(UnserialInfo* info) { Val* v; UNSERIALIZE_OPTIONAL(v, Val::Unserialize(info, TYPE_ANY)); - Assign(i, v, 0); + Assign(i, v); } return true; diff --git a/src/Val.h b/src/Val.h index 8ebfb2de0e..4b2705c5b4 100644 --- a/src/Val.h +++ b/src/Val.h @@ -968,18 +968,16 @@ public: // Note: does NOT Ref() the element! Remember to do so unless // the element was just created and thus has refcount 1. // - bool Assign(unsigned int index, Val* element, const Expr* assigner, - Opcode op = OP_ASSIGN); - bool Assign(Val* index, Val* element, const Expr* assigner, - Opcode op = OP_ASSIGN) + bool Assign(unsigned int index, Val* element, Opcode op = OP_ASSIGN); + bool Assign(Val* index, Val* element, Opcode op = OP_ASSIGN) { return Assign(index->AsListVal()->Index(0)->CoerceToUnsigned(), - element, assigner, op); + element, op); } // Assigns the value to how_many locations starting at index. bool AssignRepeat(unsigned int index, unsigned int how_many, - Val* element, const Expr* assigner); + Val* element); // Returns nil if no element was at that value. // Lookup does NOT grow the vector to this size. diff --git a/src/bro.bif b/src/bro.bif index 8cea9d9123..79161ac47a 100644 --- a/src/bro.bif +++ b/src/bro.bif @@ -1349,7 +1349,7 @@ function order%(v: any, ...%) : index_vec for ( i = 0; i < n; ++i ) { int ind = ind_vv[i]; - result_v->Assign(i, new Val(ind, TYPE_COUNT), 0); + result_v->Assign(i, new Val(ind, TYPE_COUNT)); } return result_v; @@ -1633,7 +1633,7 @@ function record_type_to_vector%(rt: string%): string_vec for ( int i = 0; i < type->NumFields(); ++i ) { StringVal* val = new StringVal(type->FieldName(i)); - result->Assign(i+1, val, 0); + result->Assign(i+1, val); } } @@ -2139,7 +2139,7 @@ function routing0_data_to_addrs%(s: string%): addr_vec while ( len > 0 ) { IPAddr a(IPv6, (const uint32*) bytes, IPAddr::Network); - rval->Assign(rval->Size(), new AddrVal(a), 0); + rval->Assign(rval->Size(), new AddrVal(a)); bytes += 16; len -= 16; } @@ -2162,7 +2162,7 @@ function addr_to_counts%(a: addr%): index_vec int len = a->AsAddr().GetBytes(&bytes); for ( int i = 0; i < len; ++i ) - rval->Assign(i, new Val(ntohl(bytes[i]), TYPE_COUNT), 0); + rval->Assign(i, new Val(ntohl(bytes[i]), TYPE_COUNT)); return rval; %} diff --git a/src/input/Manager.cc b/src/input/Manager.cc index d9006d66a2..a6df9533e7 100644 --- a/src/input/Manager.cc +++ b/src/input/Manager.cc @@ -2107,7 +2107,7 @@ Val* Manager::ValueToVal(const Value* val, BroType* request_type) VectorType* vt = new VectorType(type->Ref()); VectorVal* v = new VectorVal(vt); for ( int i = 0; i < val->val.vector_val.size; i++ ) - v->Assign(i, ValueToVal( val->val.set_val.vals[i], type ), 0); + v->Assign(i, ValueToVal( val->val.set_val.vals[i], type )); Unref(vt); return v; diff --git a/src/modbus-analyzer.pac b/src/modbus-analyzer.pac index b03df9d188..a9c773b9e9 100644 --- a/src/modbus-analyzer.pac +++ b/src/modbus-analyzer.pac @@ -149,7 +149,7 @@ refine flow ModbusTCP_Flow += { for ( unsigned int i=0; i < ${message.registers}->size(); ++i ) { Val* r = new Val(${message.registers[i]}, TYPE_COUNT); - t->Assign(i, r, 0, OP_ASSIGN); + t->Assign(i, r); } BifEvent::generate_modbus_read_holding_registers_response(connection()->bro_analyzer(), @@ -192,7 +192,7 @@ refine flow ModbusTCP_Flow += { for ( unsigned int i=0; i < (${message.registers})->size(); ++i ) { Val* r = new Val(${message.registers[i]}, TYPE_COUNT); - t->Assign(i, r, 0, OP_ASSIGN); + t->Assign(i, r); } BifEvent::generate_modbus_read_input_registers_response(connection()->bro_analyzer(), @@ -335,7 +335,7 @@ refine flow ModbusTCP_Flow += { for ( unsigned int i = 0; i < (${message.registers}->size()); ++i ) { Val* r = new Val(${message.registers[i]}, TYPE_COUNT); - t->Assign(i, r, 0, OP_ASSIGN); + t->Assign(i, r); } BifEvent::generate_modbus_write_multiple_registers_request(connection()->bro_analyzer(), @@ -371,13 +371,13 @@ refine flow ModbusTCP_Flow += { //for ( unsigned int i = 0; i < (${message.references}->size()); ++i ) // { // Val* r = new Val((${message.references[i].ref_type}), TYPE_COUNT); - // t->Assign(i, r, 0, OP_ASSIGN); + // t->Assign(i, r); // // Val* k = new Val((${message.references[i].file_num}), TYPE_COUNT); - // t->Assign(i, k, 0, OP_ASSIGN); + // t->Assign(i, k); // // Val* l = new Val((${message.references[i].record_num}), TYPE_COUNT); - // t->Assign(i, l, 0, OP_ASSIGN); + // t->Assign(i, l); // } BifEvent::generate_modbus_read_file_record_request(connection()->bro_analyzer(), @@ -398,7 +398,7 @@ refine flow ModbusTCP_Flow += { // { // //TODO: work the reference type in here somewhere // Val* r = new Val(${message.references[i].record_data}), TYPE_COUNT); - // t->Assign(i, r, 0, OP_ASSIGN); + // t->Assign(i, r); // } BifEvent::generate_modbus_read_file_record_response(connection()->bro_analyzer(), @@ -418,18 +418,18 @@ refine flow ModbusTCP_Flow += { //for ( unsigned int i = 0; i < (${message.references}->size()); ++i ) // { // Val* r = new Val((${message.references[i].ref_type}), TYPE_COUNT); - // t->Assign(i, r, 0, OP_ASSIGN); + // t->Assign(i, r); // // Val* k = new Val((${message.references[i].file_num}), TYPE_COUNT); - // t->Assign(i, k, 0, OP_ASSIGN); + // t->Assign(i, k); // // Val* n = new Val((${message.references[i].record_num}), TYPE_COUNT); - // t->Assign(i, n, 0, OP_ASSIGN); + // t->Assign(i, n); // // for ( unsigned int j = 0; j < (${message.references[i].register_value}->size()); ++j ) // { // k = new Val((${message.references[i].register_value[j]}), TYPE_COUNT); - // t->Assign(i, k, 0, OP_ASSIGN); + // t->Assign(i, k); // } // } @@ -451,18 +451,18 @@ refine flow ModbusTCP_Flow += { //for ( unsigned int i = 0; i < (${messages.references}->size()); ++i ) // { // Val* r = new Val((${message.references[i].ref_type}), TYPE_COUNT); - // t->Assign(i, r, 0, OP_ASSIGN); + // t->Assign(i, r); // // Val* f = new Val((${message.references[i].file_num}), TYPE_COUNT); - // t->Assign(i, f, 0, OP_ASSIGN); + // t->Assign(i, f); // // Val* rn = new Val((${message.references[i].record_num}), TYPE_COUNT); - // t->Assign(i, rn, 0, OP_ASSIGN); + // t->Assign(i, rn); // // for ( unsigned int j = 0; j<(${message.references[i].register_value}->size()); ++j ) // { // Val* k = new Val((${message.references[i].register_value[j]}), TYPE_COUNT); - // t->Assign(i, k, 0, OP_ASSIGN); + // t->Assign(i, k); // } BifEvent::generate_modbus_write_file_record_response(connection()->bro_analyzer(), @@ -519,7 +519,7 @@ refine flow ModbusTCP_Flow += { for ( unsigned int i = 0; i < ${message.write_register_values}->size(); ++i ) { Val* r = new Val(${message.write_register_values[i]}, TYPE_COUNT); - t->Assign(i, r, 0, OP_ASSIGN); + t->Assign(i, r); } BifEvent::generate_modbus_read_write_multiple_registers_request(connection()->bro_analyzer(), @@ -550,7 +550,7 @@ refine flow ModbusTCP_Flow += { for ( unsigned int i = 0; i < ${message.registers}->size(); ++i ) { Val* r = new Val(${message.registers[i]}, TYPE_COUNT); - t->Assign(i, r, 0, OP_ASSIGN); + t->Assign(i, r); } BifEvent::generate_modbus_read_write_multiple_registers_response(connection()->bro_analyzer(), @@ -593,7 +593,7 @@ refine flow ModbusTCP_Flow += { for ( unsigned int i = 0; i < (${message.register_data})->size(); ++i ) { Val* r = new Val(${message.register_data[i]}, TYPE_COUNT); - t->Assign(i, r, 0, OP_ASSIGN); + t->Assign(i, r); } BifEvent::generate_modbus_read_fifo_queue_response(connection()->bro_analyzer(), diff --git a/src/strings.bif b/src/strings.bif index dc5e064dc6..55e2e79c7f 100644 --- a/src/strings.bif +++ b/src/strings.bif @@ -866,7 +866,7 @@ function str_split%(s: string, idx: index_vec%): string_vec for ( BroString::VecIt it = result->begin(); it != result->end(); ++it, ++i ) - result_v->Assign(i, new StringVal(*it), 0); + result_v->Assign(i, new StringVal(*it)); // StringVal now possesses string. delete result; From a005d773691a3df49e8a481097c1a06fac8fec9c Mon Sep 17 00:00:00 2001 From: Bernhard Amann Date: Wed, 6 Mar 2013 14:14:55 -0800 Subject: [PATCH 25/71] forgot to remove the baselines for the now unnecessary bifs --- testing/btest/Baseline/bifs.byte_len/out | 1 - testing/btest/Baseline/bifs.length/out | 6 ------ 2 files changed, 7 deletions(-) delete mode 100644 testing/btest/Baseline/bifs.byte_len/out delete mode 100644 testing/btest/Baseline/bifs.length/out diff --git a/testing/btest/Baseline/bifs.byte_len/out b/testing/btest/Baseline/bifs.byte_len/out deleted file mode 100644 index b4de394767..0000000000 --- a/testing/btest/Baseline/bifs.byte_len/out +++ /dev/null @@ -1 +0,0 @@ -11 diff --git a/testing/btest/Baseline/bifs.length/out b/testing/btest/Baseline/bifs.length/out deleted file mode 100644 index ad43182650..0000000000 --- a/testing/btest/Baseline/bifs.length/out +++ /dev/null @@ -1,6 +0,0 @@ -1 -4 -2 -0 -0 -0 From 8ee4382721f32660bf038df16dc75f2eaa6a05b1 Mon Sep 17 00:00:00 2001 From: Robin Sommer Date: Wed, 6 Mar 2013 18:32:43 -0800 Subject: [PATCH 26/71] Updating submodule(s). [nomail] --- aux/binpac | 2 +- aux/bro-aux | 2 +- aux/broccoli | 2 +- aux/broctl | 2 +- cmake | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/aux/binpac b/aux/binpac index 2fd9086c9d..09ff521f98 160000 --- a/aux/binpac +++ b/aux/binpac @@ -1 +1 @@ -Subproject commit 2fd9086c9dc0e76f6ff1ae04a60cbbce60507aab +Subproject commit 09ff521f9804a711a59e64192eb110286b56ae23 diff --git a/aux/bro-aux b/aux/bro-aux index bea556198b..a9900d03a0 160000 --- a/aux/bro-aux +++ b/aux/bro-aux @@ -1 +1 @@ -Subproject commit bea556198b69d30d64c0cf1b594e6de71176df6f +Subproject commit a9900d03a0bcc7f5e94999e63068cd36118f9fac diff --git a/aux/broccoli b/aux/broccoli index c1ba9b44c4..6a7ce301ba 160000 --- a/aux/broccoli +++ b/aux/broccoli @@ -1 +1 @@ -Subproject commit c1ba9b44c4815c61c54c968f462ec5b0865e5990 +Subproject commit 6a7ce301bab11bfeabf7c03e0a236c8c1f85181c diff --git a/aux/broctl b/aux/broctl index 2bf6b37177..90a400410c 160000 --- a/aux/broctl +++ b/aux/broctl @@ -1 +1 @@ -Subproject commit 2bf6b37177b895329173acac2bb98f38a8783bc1 +Subproject commit 90a400410c3c22e579f9ee0d23881c6f25bd259d diff --git a/cmake b/cmake index 14537f56d6..599c3fa916 160000 --- a/cmake +++ b/cmake @@ -1 +1 @@ -Subproject commit 14537f56d66b18ab9d5024f798caf4d1f356fc67 +Subproject commit 599c3fa916a8d746a535666955ab4439bea20471 From 2293443ea0ceec8fca018556f41646fdb8da45d0 Mon Sep 17 00:00:00 2001 From: Jon Siwek Date: Thu, 7 Mar 2013 13:02:33 -0600 Subject: [PATCH 27/71] Fix function type-equivalence requiring same param names, addresses #957 --- src/Type.cc | 6 +-- src/Type.h | 6 +-- .../Baseline/language.func-assignment/out | 4 ++ testing/btest/language/func-assignment.bro | 39 +++++++++++++++++++ 4 files changed, 48 insertions(+), 7 deletions(-) create mode 100644 testing/btest/Baseline/language.func-assignment/out create mode 100644 testing/btest/language/func-assignment.bro diff --git a/src/Type.cc b/src/Type.cc index 6ac6070660..db6e940e87 100644 --- a/src/Type.cc +++ b/src/Type.cc @@ -712,7 +712,7 @@ int FuncType::MatchesIndex(ListExpr*& index) const MATCHES_INDEX_SCALAR : DOES_NOT_MATCH_INDEX; } -int FuncType::CheckArgs(const type_list* args) const +int FuncType::CheckArgs(const type_list* args, bool is_init) const { const type_list* my_args = arg_types->Types(); @@ -720,7 +720,7 @@ int FuncType::CheckArgs(const type_list* args) const return 0; for ( int i = 0; i < my_args->length(); ++i ) - if ( ! same_type((*args)[i], (*my_args)[i]) ) + if ( ! same_type((*args)[i], (*my_args)[i], is_init) ) return 0; return 1; @@ -1722,7 +1722,7 @@ int same_type(const BroType* t1, const BroType* t2, int is_init) return 0; } - return same_type(ft1->Args(), ft2->Args(), is_init); + return ft1->CheckArgs(ft2->ArgTypes()->Types(), is_init); } case TYPE_RECORD: diff --git a/src/Type.h b/src/Type.h index 249d8709c5..0b7620cd68 100644 --- a/src/Type.h +++ b/src/Type.h @@ -370,11 +370,9 @@ public: { Unref(yield); yield = 0; flavor = arg_flav; } int MatchesIndex(ListExpr*& index) const; - int CheckArgs(const type_list* args) const; + int CheckArgs(const type_list* args, bool is_init = false) const; - TypeList* ArgTypes() { return arg_types; } - - ID* GetReturnValueID() const; + TypeList* ArgTypes() const { return arg_types; } void Describe(ODesc* d) const; void DescribeReST(ODesc* d) const; diff --git a/testing/btest/Baseline/language.func-assignment/out b/testing/btest/Baseline/language.func-assignment/out new file mode 100644 index 0000000000..b569f7ee55 --- /dev/null +++ b/testing/btest/Baseline/language.func-assignment/out @@ -0,0 +1,4 @@ +Brogrammers, like bowties, are cool. Brogrammers, like bowties, are cool. Brogrammers, like bowties, are cool. +Brogrammers, like bowties, are cool. Brogrammers, like bowties, are cool. +BROGRAMMERS, LIKE BOWTIES, ARE COOL. +BROGRAMMERS, LIKE BOWTIES, ARE COOL. diff --git a/testing/btest/language/func-assignment.bro b/testing/btest/language/func-assignment.bro new file mode 100644 index 0000000000..576d7f3270 --- /dev/null +++ b/testing/btest/language/func-assignment.bro @@ -0,0 +1,39 @@ +# @TEST-EXEC: bro -b %INPUT >out +# @TEST-EXEC: btest-diff out + +function double_string(s: string): string + { + return string_cat(s, " ", s); + } + +function triple_string(str: string): string + { + return string_cat(str, " ", str, " ", str); + } + +type sample_function: record { + s: string; + f: function(str: string): string; +}; + +event bro_init() + { + local test_sf: sample_function; + test_sf$s = "Brogrammers, like bowties, are cool."; + + test_sf$f = triple_string; + print test_sf$f(test_sf$s); + + test_sf$f = double_string; + print test_sf$f(test_sf$s); + + # Works as expected + test_sf$f = function(str: string): string + { return to_upper(str); }; + print test_sf$f(test_sf$s); + + # Func arg names shouldn't factor in to the type check. + test_sf$f = function(s: string): string + { return to_upper(s); }; + print test_sf$f(test_sf$s); + } From f4d59f8137865dfa4357b8a7a91c2cf6c816557a Mon Sep 17 00:00:00 2001 From: Jon Siwek Date: Thu, 7 Mar 2013 14:41:18 -0600 Subject: [PATCH 28/71] Fix compiler warnings. --- src/SerialObj.cc | 2 +- src/patricia.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/SerialObj.cc b/src/SerialObj.cc index 73cab275c2..ab7f63e823 100644 --- a/src/SerialObj.cc +++ b/src/SerialObj.cc @@ -155,7 +155,7 @@ SerialObj* SerialObj::Unserialize(UnserialInfo* info, SerialType type) else { // Broccoli compatibility mode with 32bit pids. - uint32 tmp; + uint32 tmp = 0; result = UNSERIALIZE(&full_obj) && UNSERIALIZE(&tmp); pid = tmp; } diff --git a/src/patricia.c b/src/patricia.c index 6998576fdb..c4815b40ec 100644 --- a/src/patricia.c +++ b/src/patricia.c @@ -336,7 +336,7 @@ ascii2prefix (int family, char *string) memcpy (save, string, cp - string); save[cp - string] = '\0'; string = save; - if (bitlen < 0 || bitlen > maxbitlen) + if (bitlen > maxbitlen) bitlen = maxbitlen; } else { From 7e4963b22ca3b6ebd8c23e36f5f15d9cacbd974f Mon Sep 17 00:00:00 2001 From: Jon Siwek Date: Thu, 7 Mar 2013 14:41:51 -0600 Subject: [PATCH 29/71] Fix new[]/delete mismatch in RE.cc reported by jbaines, addresses #958. --- src/RE.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/RE.cc b/src/RE.cc index b6f1a1361f..87117c1c3a 100644 --- a/src/RE.cc +++ b/src/RE.cc @@ -496,7 +496,7 @@ static RE_Matcher* matcher_merge(const RE_Matcher* re1, const RE_Matcher* re2, safe_snprintf(merge_text, n, "(%s)%s(%s)", text1, merge_op, text2); RE_Matcher* merge = new RE_Matcher(merge_text); - delete merge_text; + delete [] merge_text; merge->Compile(); From f830ed3edf123ae6e07e18a5d33c356a8694b30a Mon Sep 17 00:00:00 2001 From: Robin Sommer Date: Thu, 7 Mar 2013 19:16:58 -0800 Subject: [PATCH 30/71] s/bro-ids.org/bro.org/g --- INSTALL | 12 +++++------ NEWS | 4 ++-- README | 2 +- doc/_templates/layout.html | 4 ++-- doc/index.rst | 2 +- doc/quickstart.rst | 2 +- doc/reporting-problems.rst | 2 +- doc/upgrade.rst | 4 ++-- scripts/base/frameworks/cluster/main.bro | 2 +- src/bro.bif | 4 ++-- src/logging/writers/DataSeries.cc | 2 +- src/netflow-analyzer.pac | 2 +- src/util.h | 2 +- .../ssh.ds.xml | 2 +- .../out | 20 +++++++++---------- .../ssh.ds.txt | 2 +- .../conn.ds.txt | 2 +- .../conn.ds.txt | 2 +- .../http.ds.txt | 2 +- testing/btest/README | 4 ++-- 20 files changed, 39 insertions(+), 39 deletions(-) diff --git a/INSTALL b/INSTALL index 084ca9dc2e..4604a26bf5 100644 --- a/INSTALL +++ b/INSTALL @@ -4,7 +4,7 @@ .. _MacPorts: http://www.macports.org .. _Fink: http://www.finkproject.org .. _Homebrew: http://mxcl.github.com/homebrew -.. _bro downloads page: http://bro-ids.org/download/index.html +.. _bro downloads page: http://bro.org/download/index.html ============== Installing Bro @@ -189,15 +189,15 @@ Bro releases are bundled into source packages for convenience and available from the `bro downloads page`_. Alternatively, the latest Bro development version can be obtained through git -repositories hosted at `git.bro-ids.org `_. See +repositories hosted at `git.bro.org `_. See our `git development documentation -`_ for comprehensive +`_ for comprehensive information on Bro's use of git revision control, but the short story for downloading the full source code experience for Bro via git is: .. console:: - git clone --recursive git://git.bro-ids.org/bro + git clone --recursive git://git.bro.org/bro .. note:: If you choose to clone the ``bro`` repository non-recursively for a "minimal Bro experience", be aware that compiling it depends on @@ -230,7 +230,7 @@ automatically. Finally, use ``make install-aux`` to install some of the other programs that are in the ``aux/bro-aux`` directory. OpenBSD users, please see our FAQ at -http://www.bro-ids.org/documentation/faq.html if you are having +http://www.bro.org/documentation/faq.html if you are having problems installing Bro. @@ -298,7 +298,7 @@ Running Bro Bro is a complex program and it takes a bit of time to get familiar with it. A good place for newcomers to start is the Quick Start Guide -at http://www.bro-ids.org/documentation/quickstart.html. +at http://www.bro.org/documentation/quickstart.html. For developers that wish to run Bro directly from the ``build/`` directory (i.e., without performing ``make install``), they will have diff --git a/NEWS b/NEWS index 59ab51bc9c..8605dcdbd4 100644 --- a/NEWS +++ b/NEWS @@ -292,7 +292,7 @@ Bro 2.0 As the version number jump suggests, Bro 2.0 is a major upgrade and lots of things have changed. We have assembled a separate upgrade guide with the most important changes compared to Bro 1.5 at -http://www.bro-ids.org/documentation/upgrade.html. You can find +http://www.bro.org/documentation/upgrade.html. You can find the offline version of that document in ``doc/upgrade.rst.``. Compared to the earlier 2.0 Beta version, the major changes in the @@ -300,7 +300,7 @@ final release are: * The default scripts now come with complete reference documentation. See - http://www.bro-ids.org/documentation/index.html. + http://www.bro.org/documentation/index.html. * libz and libmagic are now required dependencies. diff --git a/README b/README index c837afaf92..734246c914 100644 --- a/README +++ b/README @@ -11,7 +11,7 @@ Please see COPYING for licensing information. For more documentation, research publications, and community contact information, please see Bro's home page: - http://www.bro-ids.org + http://www.bro.org On behalf of the Bro Development Team, diff --git a/doc/_templates/layout.html b/doc/_templates/layout.html index 77d9d1de1c..2f8ea02aff 100644 --- a/doc/_templates/layout.html +++ b/doc/_templates/layout.html @@ -10,7 +10,7 @@ {% endblock %} {% block header %} - {% endblock %} @@ -108,6 +108,6 @@ {% endblock %} {% block footer %} - {% endblock %} diff --git a/doc/index.rst b/doc/index.rst index cea72d1759..29b29541b4 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -53,7 +53,7 @@ Other Bro Components The following are snapshots of documentation for components that come with this version of Bro (|version|). Since they can also be used independently, see the `download page -`_ for documentation of any +`_ for documentation of any current, independent component releases. .. toctree:: diff --git a/doc/quickstart.rst b/doc/quickstart.rst index 89c9be5a87..9f64e36d89 100644 --- a/doc/quickstart.rst +++ b/doc/quickstart.rst @@ -111,7 +111,7 @@ protocol-dependent activity that's occurring. E.g. ``http.log``'s next few columns (shortened for brevity) show a request to the root of Bro website:: # method host uri referrer user_agent - GET bro-ids.org / - <...>Chrome/12.0.742.122<...> + GET bro.org / - <...>Chrome/12.0.742.122<...> Some logs are worth explicit mention: diff --git a/doc/reporting-problems.rst b/doc/reporting-problems.rst index 5e55b2ac90..903df76257 100644 --- a/doc/reporting-problems.rst +++ b/doc/reporting-problems.rst @@ -19,7 +19,7 @@ Reporting Problems Generally, when you encounter a problem with Bro, the best thing to do is opening a new ticket in `Bro's issue tracker -`__ and include information on how to +`__ and include information on how to reproduce the issue. Ideally, your ticket should come with the following: diff --git a/doc/upgrade.rst b/doc/upgrade.rst index 9ea006f488..539757537d 100644 --- a/doc/upgrade.rst +++ b/doc/upgrade.rst @@ -254,7 +254,7 @@ Variable Naming - Identifiers may have been renamed to conform to new `scripting conventions - `_ + `_ BroControl @@ -296,7 +296,7 @@ Development Infrastructure Bro development has moved from using SVN to Git for revision control. Users that want to use the latest Bro development snapshot by checking it out from the source repositories should see the `development process -`_. Note that all the various +`_. Note that all the various sub-components now reside in their own repositories. However, the top-level Bro repository includes them as git submodules so it's easy to check them all out simultaneously. diff --git a/scripts/base/frameworks/cluster/main.bro b/scripts/base/frameworks/cluster/main.bro index 766dea912f..4184ad6ded 100644 --- a/scripts/base/frameworks/cluster/main.bro +++ b/scripts/base/frameworks/cluster/main.bro @@ -39,7 +39,7 @@ export { ## The node type doing all the actual traffic analysis. WORKER, ## A node acting as a traffic recorder using the - ## `Time Machine `_ software. + ## `Time Machine `_ software. TIME_MACHINE, }; diff --git a/src/bro.bif b/src/bro.bif index d275dedc30..014c582ec9 100644 --- a/src/bro.bif +++ b/src/bro.bif @@ -3535,7 +3535,7 @@ function lookup_addr%(host: addr%) : string ## Issues an asynchronous TEXT DNS lookup and delays the function result. ## This function can therefore only be called inside a ``when`` condition, -## e.g., ``when ( local h = lookup_hostname_txt("www.bro-ids.org") ) { f(h); }``. +## e.g., ``when ( local h = lookup_hostname_txt("www.bro.org") ) { f(h); }``. ## ## host: The hostname to lookup. ## @@ -3564,7 +3564,7 @@ function lookup_hostname_txt%(host: string%) : string ## Issues an asynchronous DNS lookup and delays the function result. ## This function can therefore only be called inside a ``when`` condition, -## e.g., ``when ( local h = lookup_hostname("www.bro-ids.org") ) { f(h); }``. +## e.g., ``when ( local h = lookup_hostname("www.bro.org") ) { f(h); }``. ## ## host: The hostname to lookup. ## diff --git a/src/logging/writers/DataSeries.cc b/src/logging/writers/DataSeries.cc index 27e021ba2c..bc15c6f5b9 100644 --- a/src/logging/writers/DataSeries.cc +++ b/src/logging/writers/DataSeries.cc @@ -167,7 +167,7 @@ string DataSeries::BuildDSSchemaFromFieldTypes(const vector& vals, string xmlschema = "\n"; + + "\" version=\"1.0\" namespace=\"bro.org\">\n"; for( size_t i = 0; i < vals.size(); ++i ) { diff --git a/src/netflow-analyzer.pac b/src/netflow-analyzer.pac index e89a0181a2..666de076c8 100644 --- a/src/netflow-analyzer.pac +++ b/src/netflow-analyzer.pac @@ -38,7 +38,7 @@ flow NetFlow_Flow { # %cleanup does not only put the cleanup code into the destructor, # but also at the end of the catch clause in NewData(). This is # different from the documentation at - # http://www.bro-ids.org/wiki/index.php/BinPAC_Userguide#.25cleanup.7B....25.7D + # http://www.bro.org/wiki/index.php/BinPAC_Userguide#.25cleanup.7B....25.7D # # Unfortunately this means that we cannot clean up the identifier # string. Note that IOSource destructors seemingly are never diff --git a/src/util.h b/src/util.h index 5d4115773d..f717ecd333 100644 --- a/src/util.h +++ b/src/util.h @@ -76,7 +76,7 @@ typedef int32 ptr_compat_int; #define PRI_PTR_COMPAT_INT PRId32 #define PRI_PTR_COMPAT_UINT PRIu32 #else -# error "Unusual pointer size. Please report to bro@bro-ids.org." +# error "Unusual pointer size. Please report to bro@bro.org." #endif extern "C" diff --git a/testing/btest/Baseline/scripts.base.frameworks.logging.dataseries.options/ssh.ds.xml b/testing/btest/Baseline/scripts.base.frameworks.logging.dataseries.options/ssh.ds.xml index cacc3b0ea4..a1e65c254e 100644 --- a/testing/btest/Baseline/scripts.base.frameworks.logging.dataseries.options/ssh.ds.xml +++ b/testing/btest/Baseline/scripts.base.frameworks.logging.dataseries.options/ssh.ds.xml @@ -1,4 +1,4 @@ - + diff --git a/testing/btest/Baseline/scripts.base.frameworks.logging.dataseries.rotate/out b/testing/btest/Baseline/scripts.base.frameworks.logging.dataseries.rotate/out index 1e5e1b05c6..94f25c37f4 100644 --- a/testing/btest/Baseline/scripts.base.frameworks.logging.dataseries.rotate/out +++ b/testing/btest/Baseline/scripts.base.frameworks.logging.dataseries.rotate/out @@ -19,7 +19,7 @@ test.2011-03-07-12-00-05.ds test 11-03-07_12.00.05 11-03-07_12.59.55 1 dataserie - + @@ -47,7 +47,7 @@ t id.orig_h id.orig_p id.resp_h id.resp_p - + @@ -75,7 +75,7 @@ t id.orig_h id.orig_p id.resp_h id.resp_p - + @@ -103,7 +103,7 @@ t id.orig_h id.orig_p id.resp_h id.resp_p - + @@ -131,7 +131,7 @@ t id.orig_h id.orig_p id.resp_h id.resp_p - + @@ -159,7 +159,7 @@ t id.orig_h id.orig_p id.resp_h id.resp_p - + @@ -187,7 +187,7 @@ t id.orig_h id.orig_p id.resp_h id.resp_p - + @@ -215,7 +215,7 @@ t id.orig_h id.orig_p id.resp_h id.resp_p - + @@ -243,7 +243,7 @@ t id.orig_h id.orig_p id.resp_h id.resp_p - + @@ -271,7 +271,7 @@ t id.orig_h id.orig_p id.resp_h id.resp_p - + diff --git a/testing/btest/Baseline/scripts.base.frameworks.logging.dataseries.test-logging/ssh.ds.txt b/testing/btest/Baseline/scripts.base.frameworks.logging.dataseries.test-logging/ssh.ds.txt index e6abc3f1f6..225217faea 100644 --- a/testing/btest/Baseline/scripts.base.frameworks.logging.dataseries.test-logging/ssh.ds.txt +++ b/testing/btest/Baseline/scripts.base.frameworks.logging.dataseries.test-logging/ssh.ds.txt @@ -8,7 +8,7 @@ - + diff --git a/testing/btest/Baseline/scripts.base.frameworks.logging.dataseries.time-as-int/conn.ds.txt b/testing/btest/Baseline/scripts.base.frameworks.logging.dataseries.time-as-int/conn.ds.txt index 5d95fdc0c0..bd3d367632 100644 --- a/testing/btest/Baseline/scripts.base.frameworks.logging.dataseries.time-as-int/conn.ds.txt +++ b/testing/btest/Baseline/scripts.base.frameworks.logging.dataseries.time-as-int/conn.ds.txt @@ -8,7 +8,7 @@ - + diff --git a/testing/btest/Baseline/scripts.base.frameworks.logging.dataseries.wikipedia/conn.ds.txt b/testing/btest/Baseline/scripts.base.frameworks.logging.dataseries.wikipedia/conn.ds.txt index 5af6f702b8..a85ae29346 100644 --- a/testing/btest/Baseline/scripts.base.frameworks.logging.dataseries.wikipedia/conn.ds.txt +++ b/testing/btest/Baseline/scripts.base.frameworks.logging.dataseries.wikipedia/conn.ds.txt @@ -8,7 +8,7 @@ - + diff --git a/testing/btest/Baseline/scripts.base.frameworks.logging.dataseries.wikipedia/http.ds.txt b/testing/btest/Baseline/scripts.base.frameworks.logging.dataseries.wikipedia/http.ds.txt index 756a49a427..bea50e6aba 100644 --- a/testing/btest/Baseline/scripts.base.frameworks.logging.dataseries.wikipedia/http.ds.txt +++ b/testing/btest/Baseline/scripts.base.frameworks.logging.dataseries.wikipedia/http.ds.txt @@ -8,7 +8,7 @@ - + diff --git a/testing/btest/README b/testing/btest/README index 6e8abd24ed..a635251939 100644 --- a/testing/btest/README +++ b/testing/btest/README @@ -1,7 +1,7 @@ This a test suite of small "unit tests" that verify individual pieces of Bro functionality. They all utilize BTest, a simple framework/driver for writing unit tests. More information about BTest can be found at -http://www.bro-ids.org/development/btest.html +http://www.bro.org/development/btest.html The test suite's BTest configuration is handled through the ``btest.cfg`` file. Of particular interest is the "TestDirs" settings, @@ -61,7 +61,7 @@ Adding Tests ============= See either the `BTest documentation -`_ or the existing unit +`_ or the existing unit tests for examples of what they actually look like. The essential components of a new test include: From 74a529d9378075c29626e66285097d3a1c4b12e8 Mon Sep 17 00:00:00 2001 From: Robin Sommer Date: Thu, 7 Mar 2013 19:33:19 -0800 Subject: [PATCH 31/71] Updating submodule(s). [nomail] --- aux/binpac | 2 +- aux/bro-aux | 2 +- aux/broccoli | 2 +- aux/broctl | 2 +- aux/btest | 2 +- cmake | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/aux/binpac b/aux/binpac index 09ff521f98..72d121ade5 160000 --- a/aux/binpac +++ b/aux/binpac @@ -1 +1 @@ -Subproject commit 09ff521f9804a711a59e64192eb110286b56ae23 +Subproject commit 72d121ade5a37df83d3252646de51cb77ce69a89 diff --git a/aux/bro-aux b/aux/bro-aux index a9900d03a0..ae14da422b 160000 --- a/aux/bro-aux +++ b/aux/bro-aux @@ -1 +1 @@ -Subproject commit a9900d03a0bcc7f5e94999e63068cd36118f9fac +Subproject commit ae14da422bfb252c8a53bd00d3e5fd7da8bc112e diff --git a/aux/broccoli b/aux/broccoli index 6a7ce301ba..e64204fec5 160000 --- a/aux/broccoli +++ b/aux/broccoli @@ -1 +1 @@ -Subproject commit 6a7ce301bab11bfeabf7c03e0a236c8c1f85181c +Subproject commit e64204fec55759c614a276c1933bbff2069a63db diff --git a/aux/broctl b/aux/broctl index 90a400410c..5eb828fb8e 160000 --- a/aux/broctl +++ b/aux/broctl @@ -1 +1 @@ -Subproject commit 90a400410c3c22e579f9ee0d23881c6f25bd259d +Subproject commit 5eb828fb8e2bc5cb250901597beaedf2cf524f03 diff --git a/aux/btest b/aux/btest index ba0700fe44..d5b8df42cb 160000 --- a/aux/btest +++ b/aux/btest @@ -1 +1 @@ -Subproject commit ba0700fe448895b654b90d50f389f6f1341234cb +Subproject commit d5b8df42cb9c398142e02d4bf8ede835fd0227f4 diff --git a/cmake b/cmake index 599c3fa916..94e72a3075 160000 --- a/cmake +++ b/cmake @@ -1 +1 @@ -Subproject commit 599c3fa916a8d746a535666955ab4439bea20471 +Subproject commit 94e72a3075bb0b9550ad05758963afda394bfb2c From 1fb05da9cd7df317fb758ba24c3b4edb47e5651f Mon Sep 17 00:00:00 2001 From: Bernhard Amann Date: Thu, 7 Mar 2013 20:28:18 -0800 Subject: [PATCH 32/71] Fix race-condition in table-event test. Event depended on the input manager receiving all lines from the reader before the first input event was processed by the scripting layer. --- .../out | 168 ------------------ .../base/frameworks/input/tableevent.bro | 1 - 2 files changed, 169 deletions(-) diff --git a/testing/btest/Baseline/scripts.base.frameworks.input.tableevent/out b/testing/btest/Baseline/scripts.base.frameworks.input.tableevent/out index d76c63ef31..54048a86b8 100644 --- a/testing/btest/Baseline/scripts.base.frameworks.input.tableevent/out +++ b/testing/btest/Baseline/scripts.base.frameworks.input.tableevent/out @@ -1,189 +1,21 @@ -[source=../input.log, reader=Input::READER_ASCII, mode=Input::MANUAL, name=input, destination={ -[2] = T, -[4] = F, -[6] = F, -[7] = T, -[1] = T, -[5] = F, -[3] = F -}, idx=, val=, want_record=F, ev=line -{ -print outfile, description; -print outfile, tpe; -print outfile, left; -print outfile, right; -try = try + 1; -if (7 == try) -{ -close(outfile); -terminate(); -} - -}, pred=, config={ - -}] Input::EVENT_NEW [i=1] T -[source=../input.log, reader=Input::READER_ASCII, mode=Input::MANUAL, name=input, destination={ -[2] = T, -[4] = F, -[6] = F, -[7] = T, -[1] = T, -[5] = F, -[3] = F -}, idx=, val=, want_record=F, ev=line -{ -print outfile, description; -print outfile, tpe; -print outfile, left; -print outfile, right; -try = try + 1; -if (7 == try) -{ -close(outfile); -terminate(); -} - -}, pred=, config={ - -}] Input::EVENT_NEW [i=2] T -[source=../input.log, reader=Input::READER_ASCII, mode=Input::MANUAL, name=input, destination={ -[2] = T, -[4] = F, -[6] = F, -[7] = T, -[1] = T, -[5] = F, -[3] = F -}, idx=, val=, want_record=F, ev=line -{ -print outfile, description; -print outfile, tpe; -print outfile, left; -print outfile, right; -try = try + 1; -if (7 == try) -{ -close(outfile); -terminate(); -} - -}, pred=, config={ - -}] Input::EVENT_NEW [i=3] F -[source=../input.log, reader=Input::READER_ASCII, mode=Input::MANUAL, name=input, destination={ -[2] = T, -[4] = F, -[6] = F, -[7] = T, -[1] = T, -[5] = F, -[3] = F -}, idx=, val=, want_record=F, ev=line -{ -print outfile, description; -print outfile, tpe; -print outfile, left; -print outfile, right; -try = try + 1; -if (7 == try) -{ -close(outfile); -terminate(); -} - -}, pred=, config={ - -}] Input::EVENT_NEW [i=4] F -[source=../input.log, reader=Input::READER_ASCII, mode=Input::MANUAL, name=input, destination={ -[2] = T, -[4] = F, -[6] = F, -[7] = T, -[1] = T, -[5] = F, -[3] = F -}, idx=, val=, want_record=F, ev=line -{ -print outfile, description; -print outfile, tpe; -print outfile, left; -print outfile, right; -try = try + 1; -if (7 == try) -{ -close(outfile); -terminate(); -} - -}, pred=, config={ - -}] Input::EVENT_NEW [i=5] F -[source=../input.log, reader=Input::READER_ASCII, mode=Input::MANUAL, name=input, destination={ -[2] = T, -[4] = F, -[6] = F, -[7] = T, -[1] = T, -[5] = F, -[3] = F -}, idx=, val=, want_record=F, ev=line -{ -print outfile, description; -print outfile, tpe; -print outfile, left; -print outfile, right; -try = try + 1; -if (7 == try) -{ -close(outfile); -terminate(); -} - -}, pred=, config={ - -}] Input::EVENT_NEW [i=6] F -[source=../input.log, reader=Input::READER_ASCII, mode=Input::MANUAL, name=input, destination={ -[2] = T, -[4] = F, -[6] = F, -[7] = T, -[1] = T, -[5] = F, -[3] = F -}, idx=, val=, want_record=F, ev=line -{ -print outfile, description; -print outfile, tpe; -print outfile, left; -print outfile, right; -try = try + 1; -if (7 == try) -{ -close(outfile); -terminate(); -} - -}, pred=, config={ - -}] Input::EVENT_NEW [i=7] T diff --git a/testing/btest/scripts/base/frameworks/input/tableevent.bro b/testing/btest/scripts/base/frameworks/input/tableevent.bro index a409803440..c83b1361c1 100644 --- a/testing/btest/scripts/base/frameworks/input/tableevent.bro +++ b/testing/btest/scripts/base/frameworks/input/tableevent.bro @@ -35,7 +35,6 @@ global destination: table[int] of Val = table(); event line(description: Input::TableDescription, tpe: Input::Event, left: Idx, right: bool) { - print outfile, description; print outfile, tpe; print outfile, left; print outfile, right; From 0075973249906ce1374948b567d261395f99220e Mon Sep 17 00:00:00 2001 From: Robin Sommer Date: Fri, 8 Mar 2013 09:41:35 -0800 Subject: [PATCH 33/71] Updating submodule(s). [nomail] --- aux/broctl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aux/broctl b/aux/broctl index 5eb828fb8e..3d2172a60a 160000 --- a/aux/broctl +++ b/aux/broctl @@ -1 +1 @@ -Subproject commit 5eb828fb8e2bc5cb250901597beaedf2cf524f03 +Subproject commit 3d2172a60aa503745c92cef8ab3020d1dfc13f0d From 8d5434ef2dd8f9f5e5538a171d73434632fa012d Mon Sep 17 00:00:00 2001 From: Jon Siwek Date: Mon, 11 Mar 2013 10:54:51 -0500 Subject: [PATCH 34/71] Fix large memory allocation in IP fragment reassembly. Addresses #961. Patch by jbaines modified slightly to return earlier so that the problem packet can't cause any state change in the FragReassembler. --- src/Frag.cc | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/Frag.cc b/src/Frag.cc index d873f5bc0c..4b9047d072 100644 --- a/src/Frag.cc +++ b/src/Frag.cc @@ -100,6 +100,13 @@ void FragReassembler::AddFragment(double t, const IP_Hdr* ip, const u_char* pkt) int offset = ip->FragOffset(); int len = ip->TotalLen(); int hdr_len = ip->HdrLen(); + + if ( len < hdr_len ) + { + s->Weird("fragment_protocol_inconsistency", ip); + return; + } + int upper_seq = offset + len - hdr_len; if ( ! offset ) From 90ca2b87c4b21611a0c7ef37c0e1c465c36f270f Mon Sep 17 00:00:00 2001 From: Jon Siwek Date: Mon, 11 Mar 2013 11:58:54 -0500 Subject: [PATCH 35/71] Add check for truncated link frames. Addresses #962. Patch provided by jbaines, modified with a more descriptive Weird name. --- src/Sessions.cc | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/Sessions.cc b/src/Sessions.cc index 6f42e5726b..2e5a6ded30 100644 --- a/src/Sessions.cc +++ b/src/Sessions.cc @@ -223,6 +223,12 @@ void NetSessions::NextPacket(double t, const struct pcap_pkthdr* hdr, // we look to see if what we have is consistent with an // IPv4 packet. If not, it's either ARP or IPv6 or weird. + if ( hdr_size > static_cast(hdr->caplen) ) + { + Weird("truncated_link_frame", hdr, pkt); + return; + } + uint32 caplen = hdr->caplen - hdr_size; if ( caplen < sizeof(struct ip) ) { From 2b28c3a578166da59c42494beede75707acbfc9b Mon Sep 17 00:00:00 2001 From: Bernhard Amann Date: Tue, 12 Mar 2013 09:27:59 -0700 Subject: [PATCH 36/71] re-unify classes --- src/Base64.cc | 37 +++++++++++++++++++------------------ src/Base64.h | 25 ++++++------------------- 2 files changed, 25 insertions(+), 37 deletions(-) diff --git a/src/Base64.cc b/src/Base64.cc index 030f013d6f..1826ede93a 100644 --- a/src/Base64.cc +++ b/src/Base64.cc @@ -3,22 +3,9 @@ #include int Base64Decoder::default_base64_table[256]; -const string Base64::default_alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; +const string Base64Decoder::default_alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; -Base64Encoder::Base64Encoder(const string& arg_alphabet) - { - if ( arg_alphabet.size() > 0 ) - { - assert(arg_alphabet.size() == 64); - alphabet = arg_alphabet; - } - else - { - alphabet = default_alphabet; - } - } - -void Base64Encoder::Encode(int len, const unsigned char* data, int* pblen, char** pbuf) +void Base64Decoder::Encode(int len, const unsigned char* data, int* pblen, char** pbuf) { int blen; char *buf; @@ -97,9 +84,19 @@ int* Base64Decoder::InitBase64Table(const string& alphabet) -Base64Decoder::Base64Decoder(Analyzer* arg_analyzer, const string& alphabet) +Base64Decoder::Base64Decoder(Analyzer* arg_analyzer, const string& arg_alphabet) { - base64_table = InitBase64Table(alphabet.size() ? alphabet : default_alphabet); + if ( arg_alphabet.size() > 0 ) + { + assert(arg_alphabet.size() == 64); + alphabet = arg_alphabet; + } + else + { + alphabet = default_alphabet; + } + + base64_table = 0; base64_group_next = 0; base64_padding = base64_after_padding = 0; errored = 0; @@ -117,6 +114,10 @@ int Base64Decoder::Decode(int len, const char* data, int* pblen, char** pbuf) int blen; char* buf; + // initialization of table on first_time call of Decode + if ( base64_table == 0 ) + base64_table = InitBase64Table(alphabet); + if ( ! pbuf ) reporter->InternalError("nil pointer to decoding result buffer"); @@ -260,7 +261,7 @@ BroString* encode_base64(const BroString* s, const BroString* a) char* outbuf = 0; int outlen = 0; - Base64Encoder enc; + Base64Decoder enc(0); enc.Encode(s->Len(), (const unsigned char*) s->Bytes(), &outlen, &outbuf); return new BroString(1, (u_char*)outbuf, outlen); diff --git a/src/Base64.h b/src/Base64.h index 5b94ec7c2c..00bd208f08 100644 --- a/src/Base64.h +++ b/src/Base64.h @@ -10,27 +10,10 @@ #include "Analyzer.h" // Maybe we should have a base class for generic decoders? - -class Base64 { -public: -protected: - static const string default_alphabet; -}; - - -class Base64Encoder : public Base64 { -public: - Base64Encoder(const string& arg_alphabet = ""); - void Encode(int len, const unsigned char* data, int* blen, char** buf); -protected: - string alphabet; - -}; - -class Base64Decoder : public Base64 { +class Base64Decoder { public: // is used for error reporting, and it should be zero when - // the decoder is called by the built-in function decode_base64(). + // the decoder is called by the built-in function decode_base64() or encode_base64(). // Empty alphabet indicates the default base64 alphabet. Base64Decoder(Analyzer* analyzer, const string& alphabet = ""); ~Base64Decoder(); @@ -46,6 +29,7 @@ public: // is not enough output buffer space. int Decode(int len, const char* data, int* blen, char** buf); + void Encode(int len, const unsigned char* data, int* blen, char** buf); int Done(int* pblen, char** pbuf); int HasData() const { return base64_group_next != 0; } @@ -67,6 +51,9 @@ protected: char error_msg[256]; protected: + static const string default_alphabet; + string alphabet; + static int* InitBase64Table(const string& alphabet); static int default_base64_table[256]; char base64_group[4]; From a5161783ef1f043140fe75323de0de098218b9e8 Mon Sep 17 00:00:00 2001 From: Bernhard Amann Date: Tue, 12 Mar 2013 09:33:49 -0700 Subject: [PATCH 37/71] and add bae64 bif tests. --- src/Base64.cc | 2 +- testing/btest/Baseline/bifs.encode_base64/out | 6 ++++++ testing/btest/bifs/encode_base64.bro | 14 ++++++++++++++ 3 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 testing/btest/Baseline/bifs.encode_base64/out create mode 100644 testing/btest/bifs/encode_base64.bro diff --git a/src/Base64.cc b/src/Base64.cc index 1826ede93a..628d872c07 100644 --- a/src/Base64.cc +++ b/src/Base64.cc @@ -261,7 +261,7 @@ BroString* encode_base64(const BroString* s, const BroString* a) char* outbuf = 0; int outlen = 0; - Base64Decoder enc(0); + Base64Decoder enc(0, a ? a->CheckString() : ""); enc.Encode(s->Len(), (const unsigned char*) s->Bytes(), &outlen, &outbuf); return new BroString(1, (u_char*)outbuf, outlen); diff --git a/testing/btest/Baseline/bifs.encode_base64/out b/testing/btest/Baseline/bifs.encode_base64/out new file mode 100644 index 0000000000..84c2c98264 --- /dev/null +++ b/testing/btest/Baseline/bifs.encode_base64/out @@ -0,0 +1,6 @@ +YnJv +YnJv +}n-v +cGFkZGluZw== +cGFkZGluZzE= +cGFkZGluZzEy diff --git a/testing/btest/bifs/encode_base64.bro b/testing/btest/bifs/encode_base64.bro new file mode 100644 index 0000000000..a351392bb5 --- /dev/null +++ b/testing/btest/bifs/encode_base64.bro @@ -0,0 +1,14 @@ +# @TEST-EXEC: bro -b %INPUT >out +# @TEST-EXEC: btest-diff out + +global default_alphabet: string = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; + +global my_alphabet: string = "!#$%&/(),-.:;<>@[]^ `_{|}~abcdefghijklmnopqrstuvwxyz0123456789+?"; + +print encode_base64("bro"); +print encode_base64_custom("bro", default_alphabet); +print encode_base64_custom("bro", my_alphabet); + +print encode_base64("padding"); +print encode_base64("padding1"); +print encode_base64("padding12"); From 3dd513e26e1b4ad2d83483b5bd47a4510c56c27f Mon Sep 17 00:00:00 2001 From: Jon Siwek Date: Tue, 12 Mar 2013 13:40:18 -0500 Subject: [PATCH 38/71] FileAnalysis: move unique file handle string generation to script-layer And add minimal integration with HTTP analyzer. --- .../base/frameworks/file-analysis/main.bro | 35 +++++ scripts/base/init-bare.bro | 2 +- scripts/base/protocols/http/main.bro | 7 + src/CMakeLists.txt | 1 + src/FileAnalyzer.cc | 12 +- src/HTTP.cc | 9 ++ src/Net.cc | 2 + src/RemoteSerializer.cc | 2 + src/file_analysis.bif | 20 +-- src/file_analysis/ActionSet.cc | 2 +- src/file_analysis/ActionSet.h | 2 +- src/file_analysis/FileID.h | 4 +- src/file_analysis/Info.cc | 45 ++++-- src/file_analysis/Info.h | 2 +- src/file_analysis/Manager.cc | 141 +++++++++++++++--- src/file_analysis/Manager.h | 63 ++++++-- src/file_analysis/PendingFile.cc | 60 ++++++++ src/file_analysis/PendingFile.h | 37 +++++ 18 files changed, 365 insertions(+), 81 deletions(-) create mode 100644 src/file_analysis/PendingFile.cc create mode 100644 src/file_analysis/PendingFile.h diff --git a/scripts/base/frameworks/file-analysis/main.bro b/scripts/base/frameworks/file-analysis/main.bro index 68246761cf..7bc62997ae 100644 --- a/scripts/base/frameworks/file-analysis/main.bro +++ b/scripts/base/frameworks/file-analysis/main.bro @@ -5,6 +5,11 @@ # TODO: do logging here? @load base/frameworks/logging +# dependendies for file handle determination +@load base/protocols/http/main +@load base/protocols/http/utils +@load base/protocols/ftp/main + module FileAnalysis; export { @@ -105,5 +110,35 @@ export { ## TODO: document global policy: hook(trig: Trigger, info: Info); + global get_handle: function(c: connection, is_orig: bool): string &redef; + # TODO: wrapper functions for BiFs ? } + +function conn_str(c: connection): string + { + return fmt("%s:%s -> %s:%s", c$id$orig_h, c$id$orig_p, + c$id$resp_h, c$id$resp_p); + } + +function get_handle(c: connection, is_orig: bool): string + { + local rval: string = ""; + local cid: conn_id = c$id; + + if ( "ftp-data" in c$service ) + rval = fmt("%s: %s", "ftp-data", conn_str(c)); + + else if ( c?$http ) + { + if ( c$http$range_request ) + rval = fmt("http(%s): %s: %s", is_orig, c$id$orig_h, + HTTP::build_url(c$http)); + else + rval = fmt("http(%s, %s): %s", is_orig, c$http$trans_depth, + conn_str(c)); + } + + #print fmt("file handle: %s", rval); + return rval; + } diff --git a/scripts/base/init-bare.bro b/scripts/base/init-bare.bro index bad8be6062..798eb387b3 100644 --- a/scripts/base/init-bare.bro +++ b/scripts/base/init-bare.bro @@ -300,7 +300,7 @@ type connection: record { ## one protocol analyzer is able to parse the same data. If so, all will ## be recorded. Also note that the recorced services are independent of any ## transport-level protocols. - service: set[string]; + service: set[string]; addl: string; ##< Deprecated. hot: count; ##< Deprecated. history: string; ##< State history of connections. See *history* in :bro:see:`Conn::Info`. diff --git a/scripts/base/protocols/http/main.bro b/scripts/base/protocols/http/main.bro index 660386f901..260c0e525a 100644 --- a/scripts/base/protocols/http/main.bro +++ b/scripts/base/protocols/http/main.bro @@ -71,6 +71,10 @@ export { ## All of the headers that may indicate if the request was proxied. proxied: set[string] &log &optional; + + ## Indicates if this request can assume 206 partial content in + ## response. + range_request: bool &default=F; }; ## Structure to maintain state for an HTTP connection with multiple @@ -235,6 +239,9 @@ event http_header(c: connection, is_orig: bool, name: string, value: string) &pr else if ( name == "HOST" ) # The split is done to remove the occasional port value that shows up here. c$http$host = split1(value, /:/)[1]; + + else if ( name == "RANGE" ) + c$http$range_request = T; else if ( name == "USER-AGENT" ) c$http$user_agent = value; diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index e60a68a5a3..41e2a2bec5 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -452,6 +452,7 @@ set(bro_SRCS file_analysis/Manager.cc file_analysis/Info.cc file_analysis/InfoTimer.cc + file_analysis/PendingFile.cc file_analysis/FileID.h file_analysis/Action.h file_analysis/ActionSet.cc diff --git a/src/FileAnalyzer.cc b/src/FileAnalyzer.cc index 1220b0ec87..c736ebf5c4 100644 --- a/src/FileAnalyzer.cc +++ b/src/FileAnalyzer.cc @@ -15,19 +15,13 @@ File_Analyzer::File_Analyzer(Connection* conn) bro_init_magic(&magic, MAGIC_NONE); bro_init_magic(&magic_mime, MAGIC_MIME); - - char op[256], rp[256]; - modp_ulitoa10(ntohs(conn->OrigPort()), op); - modp_ulitoa10(ntohs(conn->RespPort()), rp); - unique_file = "TCPFile " + conn->OrigAddr().AsString() + ":" + op + "->" + - conn->RespAddr().AsString() + ":" + rp; } void File_Analyzer::DeliverStream(int len, const u_char* data, bool orig) { TCP_ApplicationAnalyzer::DeliverStream(len, data, orig); - file_mgr->DataIn(unique_file, data, len, Conn()); + file_mgr->DataIn(data, len, Conn(), orig); int n = min(len, BUFFER_SIZE - buffer_len); @@ -46,14 +40,14 @@ void File_Analyzer::Undelivered(int seq, int len, bool orig) { TCP_ApplicationAnalyzer::Undelivered(seq, len, orig); - file_mgr->Gap(unique_file, seq, len); + file_mgr->Gap(seq, len, Conn(), orig); } void File_Analyzer::Done() { TCP_ApplicationAnalyzer::Done(); - file_mgr->EndOfFile(unique_file, Conn()); + file_mgr->EndOfFile(Conn()); if ( buffer_len && buffer_len != BUFFER_SIZE ) Identify(); diff --git a/src/HTTP.cc b/src/HTTP.cc index 7e4079b853..292db83765 100644 --- a/src/HTTP.cc +++ b/src/HTTP.cc @@ -12,6 +12,7 @@ #include "HTTP.h" #include "Event.h" #include "MIME.h" +#include "file_analysis/Manager.h" const bool DEBUG_http = false; @@ -194,6 +195,12 @@ void HTTP_Entity::DeliverBody(int len, const char* data, int trailing_CRLF) } else DeliverBodyClear(len, data, trailing_CRLF); + + file_mgr->DataIn(reinterpret_cast(data), len, + http_message->MyHTTP_Analyzer()->Conn(), + http_message->IsOrig()); + // TODO: set size if we have content_length? + // TODO: handle partial content and multipart/byteranges } void HTTP_Entity::DeliverBodyClear(int len, const char* data, int trailing_CRLF) @@ -586,6 +593,8 @@ void HTTP_Message::EndEntity(MIME_Entity* entity) // SubmitAllHeaders (through EndOfData). if ( entity == top_level ) Done(); + + file_mgr->EndOfFile(MyHTTP_Analyzer()->Conn(), is_orig); } void HTTP_Message::SubmitHeader(MIME_Header* h) diff --git a/src/Net.cc b/src/Net.cc index 73c618b8af..d69337bd63 100644 --- a/src/Net.cc +++ b/src/Net.cc @@ -30,6 +30,7 @@ #include "PacketSort.h" #include "Serializer.h" #include "PacketDumper.h" +#include "file_analysis/Manager.h" extern "C" { #include "setsignal.h" @@ -352,6 +353,7 @@ void net_packet_dispatch(double t, const struct pcap_pkthdr* hdr, sessions->DispatchPacket(t, hdr, pkt, hdr_size, src_ps, pkt_elem); mgr.Drain(); + file_mgr->DrainPending(); if ( sp ) { diff --git a/src/RemoteSerializer.cc b/src/RemoteSerializer.cc index 66f8def489..80c839a1da 100644 --- a/src/RemoteSerializer.cc +++ b/src/RemoteSerializer.cc @@ -192,6 +192,7 @@ #include "logging/Manager.h" #include "IPAddr.h" #include "bro_inet_ntop.h" +#include "file_analysis/Manager.h" extern "C" { #include "setsignal.h" @@ -1462,6 +1463,7 @@ void RemoteSerializer::Process() current_iosrc = this; sessions->NextPacket(p->time, p->hdr, p->pkt, p->hdr_size, 0); mgr.Drain(); + file_mgr->DrainPending(); current_hdr = 0; // done with these current_pkt = 0; diff --git a/src/file_analysis.bif b/src/file_analysis.bif index 91c235edfe..9bea289444 100644 --- a/src/file_analysis.bif +++ b/src/file_analysis.bif @@ -96,41 +96,31 @@ function FileAnalysis::stop%(file_id: string%): bool function FileAnalysis::input_data%(source: string, data: string%): any %{ - string s = source->CheckString(); - string unique = "BIF " + s; - file_mgr->DataIn(unique, data->Bytes(), data->Len(), 0, s); + file_mgr->DataIn(data->Bytes(), data->Len(), source->CheckString()); return 0; %} function FileAnalysis::input_data_chunk%(source: string, data: string, offset: count%): any %{ - string s = source->CheckString(); - string unique = "BIF " + s; - file_mgr->DataIn(unique, data->Bytes(), data->Len(), offset, 0, s); + file_mgr->DataIn(data->Bytes(), data->Len(), offset, source->CheckString()); return 0; %} function FileAnalysis::gap%(source: string, offset: count, len: count%): any %{ - string s = source->CheckString(); - string unique = "BIF " + s; - file_mgr->Gap(unique, offset, len, 0, s); + file_mgr->Gap(offset, len, source->CheckString()); return 0; %} function FileAnalysis::set_size%(source: string, size: count%): any %{ - string s = source->CheckString(); - string unique = "BIF " + s; - file_mgr->SetSize(unique, size, 0, s); + file_mgr->SetSize(size, source->CheckString()); return 0; %} function FileAnalysis::input_eof%(source: string%): any %{ - string s = source->CheckString(); - string unique = "BIF "+ s; - file_mgr->EndOfFile(unique, 0, s); + file_mgr->EndOfFile(source->CheckString()); return 0; %} diff --git a/src/file_analysis/ActionSet.cc b/src/file_analysis/ActionSet.cc index c615484509..2e055a5c24 100644 --- a/src/file_analysis/ActionSet.cc +++ b/src/file_analysis/ActionSet.cc @@ -168,7 +168,7 @@ void ActionSet::InsertAction(Action* act, HashKey* key) new RecordVal(BifType::Record::FileAnalysis::ActionResults)); } -void ActionSet::FlushQueuedModifications() +void ActionSet::DrainModifications() { if ( mod_queue.empty() ) return; diff --git a/src/file_analysis/ActionSet.h b/src/file_analysis/ActionSet.h index 506fdf5c77..e1f1355aa9 100644 --- a/src/file_analysis/ActionSet.h +++ b/src/file_analysis/ActionSet.h @@ -43,7 +43,7 @@ public: /** * Perform all queued modifications to the currently active actions. */ - void FlushQueuedModifications(); + void DrainModifications(); IterCookie* InitForIteration() const { return action_map.InitForIteration(); } diff --git a/src/file_analysis/FileID.h b/src/file_analysis/FileID.h index c339445ea8..6d594d6b37 100644 --- a/src/file_analysis/FileID.h +++ b/src/file_analysis/FileID.h @@ -9,8 +9,8 @@ namespace file_analysis { * identify files, and others which use a pretty hash (the FileID) to identify * files. A FileID is primarily used in methods which interface with the * script-layer, while the unique strings are used for methods which interface - * with protocol analyzers (to better accomodate the possibility that a file - * can be distributed over different connections and thus analyzer instances). + * with protocol analyzers or anything that sends data to the file analysis + * framework. */ struct FileID { string id; diff --git a/src/file_analysis/Info.cc b/src/file_analysis/Info.cc index 5929be966f..f1af9ffff1 100644 --- a/src/file_analysis/Info.cc +++ b/src/file_analysis/Info.cc @@ -74,7 +74,7 @@ void Info::InitFieldIndices() actions_idx = Idx("actions"); } -Info::Info(const string& unique, Connection* conn, const string& source) +Info::Info(const string& unique, Connection* conn) : file_id(unique), unique(unique), val(0), last_activity_time(network_time), postpone_timeout(false), need_reassembly(false), done(false), actions(this) @@ -93,10 +93,31 @@ Info::Info(const string& unique, Connection* conn, const string& source) val->Assign(file_id_idx, new StringVal(id)); file_id = FileID(id); - UpdateConnectionFields(conn); + if ( conn ) + { + // update source and connection fields + RecordVal* cval = conn->BuildConnVal(); + ListVal* services = cval->Lookup(5)->AsTableVal()->ConvertToPureList(); + Unref(cval); + string source; - if ( ! source.empty() ) - val->Assign(source_idx, new StringVal(source.c_str())); + for ( int i = 0; i < services->Length(); ++i ) + { + if ( i > 0 ) + source += ", "; + source += services->Index(i)->AsStringVal()->CheckString(); + } + + Unref(services); + + if ( ! source.empty() ) + val->Assign(source_idx, new StringVal(source.c_str())); + + UpdateConnectionFields(conn); + } + else + // use the unique file handle as source + val->Assign(source_idx, new StringVal(unique.c_str())); } Info::~Info() @@ -263,7 +284,7 @@ void Info::ReplayBOF() void Info::DataIn(const u_char* data, uint64 len, uint64 offset) { - actions.FlushQueuedModifications(); + actions.DrainModifications(); // TODO: attempt libmagic stuff here before doing reassembly? Action* act = 0; @@ -275,7 +296,7 @@ void Info::DataIn(const u_char* data, uint64 len, uint64 offset) actions.QueueRemoveAction(act->Args()); } - actions.FlushQueuedModifications(); + actions.DrainModifications(); // TODO: check reassembly requirement based on buffer size in record if ( need_reassembly ) @@ -290,7 +311,7 @@ void Info::DataIn(const u_char* data, uint64 len, uint64 offset) void Info::DataIn(const u_char* data, uint64 len) { - actions.FlushQueuedModifications(); + actions.DrainModifications(); if ( BufferBOF(data, len) ) return; @@ -312,7 +333,7 @@ void Info::DataIn(const u_char* data, uint64 len) actions.QueueRemoveAction(act->Args()); } - actions.FlushQueuedModifications(); + actions.DrainModifications(); IncrementByteCount(len, seen_bytes_idx); } @@ -321,7 +342,7 @@ void Info::EndOfFile() if ( done ) return; done = true; - actions.FlushQueuedModifications(); + actions.DrainModifications(); // Send along anything that's been buffered, but never flushed. ReplayBOF(); @@ -340,12 +361,12 @@ void Info::EndOfFile() else file_mgr->EvaluatePolicy(BifEnum::FileAnalysis::TRIGGER_EOF, this); - actions.FlushQueuedModifications(); + actions.DrainModifications(); } void Info::Gap(uint64 offset, uint64 len) { - actions.FlushQueuedModifications(); + actions.DrainModifications(); // If we were buffering the beginning of the file, a gap means we've got // as much contiguous stuff at the beginning as possible, so work with that. @@ -362,6 +383,6 @@ void Info::Gap(uint64 offset, uint64 len) file_mgr->EvaluatePolicy(BifEnum::FileAnalysis::TRIGGER_GAP, this); - actions.FlushQueuedModifications(); + actions.DrainModifications(); IncrementByteCount(len, missing_bytes_idx); } diff --git a/src/file_analysis/Info.h b/src/file_analysis/Info.h index a02262c99d..8b4c10473c 100644 --- a/src/file_analysis/Info.h +++ b/src/file_analysis/Info.h @@ -117,7 +117,7 @@ protected: /** * Constructor; only file_analysis::Manager should be creating these. */ - Info(const string& unique, Connection* conn = 0, const string& source = ""); + Info(const string& unique, Connection* conn = 0); /** * Updates the "conn_ids" and "conn_uids" fields in #val record with the diff --git a/src/file_analysis/Manager.cc b/src/file_analysis/Manager.cc index 85dbe8ff39..81fa9824c2 100644 --- a/src/file_analysis/Manager.cc +++ b/src/file_analysis/Manager.cc @@ -16,6 +16,32 @@ Manager::~Manager() Terminate(); } +string Manager::GetFileHandle(Connection* conn, bool is_orig) + { + if ( ! conn ) return ""; + + const ID* id = global_scope()->Lookup("FileAnalysis::get_handle"); + assert(id); + const Func* func = id->ID_Val()->AsFunc(); + + val_list vl(2); + vl.append(conn->BuildConnVal()); + vl.append(new Val(is_orig, TYPE_BOOL)); + + Val* result = func->Call(&vl); + string rval = result->AsString()->CheckString(); + Unref(result); + return rval; + } + +void Manager::DrainPending() + { + for ( size_t i = 0; i < pending.size(); ++i ) + pending[i].Retry(); + + pending.clear(); + } + void Manager::Terminate() { vector keys; @@ -25,66 +51,134 @@ void Manager::Terminate() Timeout(keys[i], true); } -void Manager::DataIn(const string& unique, const u_char* data, uint64 len, - uint64 offset, Connection* conn, const string& source) +void Manager::DataIn(const u_char* data, uint64 len, uint64 offset, + Connection* conn, bool is_orig, bool allow_retry) { - if ( IsIgnored(unique) ) return; + string unique = GetFileHandle(conn, is_orig); - Info* info = GetInfo(unique, conn, source); + if ( ! unique.empty() ) + { + DataIn(data, len, offset, GetInfo(unique, conn)); + return; + } + if ( allow_retry ) + pending.push_back(PendingFile(data, len, offset, conn, is_orig)); + } + +void Manager::DataIn(const u_char* data, uint64 len, uint64 offset, + const string& unique) + { + DataIn(data, len, offset, GetInfo(unique)); + } + +void Manager::DataIn(const u_char* data, uint64 len, uint64 offset, + Info* info) + { if ( ! info ) return; info->DataIn(data, len, offset); if ( info->IsComplete() ) - RemoveFile(unique); + RemoveFile(info->GetUnique()); } -void Manager::DataIn(const string& unique, const u_char* data, uint64 len, - Connection* conn, const string& source) +void Manager::DataIn(const u_char* data, uint64 len, Connection* conn, + bool is_orig, bool allow_retry) { - Info* info = GetInfo(unique, conn, source); + string unique = GetFileHandle(conn, is_orig); + if ( ! unique.empty() ) + { + DataIn(data, len, GetInfo(unique, conn)); + return; + } + + if ( allow_retry ) + pending.push_back(PendingFile(data, len, conn, is_orig)); + } + +void Manager::DataIn(const u_char* data, uint64 len, const string& unique) + { + DataIn(data, len, GetInfo(unique)); + } + +void Manager::DataIn(const u_char* data, uint64 len, Info* info) + { if ( ! info ) return; info->DataIn(data, len); if ( info->IsComplete() ) - RemoveFile(unique); + RemoveFile(info->GetUnique()); } -void Manager::EndOfFile(const string& unique, Connection* conn, - const string& source) +void Manager::EndOfFile(Connection* conn) { - // Just call GetInfo because maybe the conn/source args will update - // something in the Info record. - GetInfo(unique, conn, source); + EndOfFile(conn, true); + EndOfFile(conn, false); + } + +void Manager::EndOfFile(Connection* conn, bool is_orig) + { + string unique = GetFileHandle(conn, is_orig); + + if ( unique.empty() ) return; // nothing to do + RemoveFile(unique); } -void Manager::Gap(const string& unique, uint64 offset, uint64 len, - Connection* conn, const string& source) +void Manager::EndOfFile(const string& unique) { - Info* info = GetInfo(unique, conn, source); + RemoveFile(unique); + } +void Manager::Gap(uint64 offset, uint64 len, Connection* conn, bool is_orig) + { + string unique = GetFileHandle(conn, is_orig); + + if ( unique.empty() ) return; // nothing to do since no data has been seen + + Gap(offset, len, GetInfo(unique, conn)); + } + +void Manager::Gap(uint64 offset, uint64 len, const string& unique) + { + Gap(offset, len, GetInfo(unique)); + } + +void Manager::Gap(uint64 offset, uint64 len, Info* info) + { if ( ! info ) return; info->Gap(offset, len); } -void Manager::SetSize(const string& unique, uint64 size, - Connection* conn, const string& source) +void Manager::SetSize(uint64 size, Connection* conn, bool is_orig) { - Info* info = GetInfo(unique, conn, source); + string unique = GetFileHandle(conn, is_orig); + if ( unique.empty() ) return; // ok assuming this always follows a DataIn() + + SetSize(size, GetInfo(unique, conn)); + } + +void Manager::SetSize(uint64 size, const string& unique) + { + SetSize(size, GetInfo(unique)); + } + +void Manager::SetSize(uint64 size, Info* info) + { if ( ! info ) return; info->SetTotalBytes(size); if ( info->IsComplete() ) - RemoveFile(unique); + RemoveFile(info->GetUnique()); } + void Manager::EvaluatePolicy(BifEnum::FileAnalysis::Trigger t, Info* info) { if ( IsIgnored(info->GetUnique()) ) return; @@ -131,8 +225,7 @@ bool Manager::RemoveAction(const FileID& file_id, const RecordVal* args) const return info->RemoveAction(args); } -Info* Manager::GetInfo(const string& unique, Connection* conn, - const string& source) +Info* Manager::GetInfo(const string& unique, Connection* conn) { if ( IsIgnored(unique) ) return 0; @@ -140,7 +233,7 @@ Info* Manager::GetInfo(const string& unique, Connection* conn, if ( ! rval ) { - rval = str_map[unique] = new Info(unique, conn, source); + rval = str_map[unique] = new Info(unique, conn); FileID id = rval->GetFileID(); if ( id_map[id] ) diff --git a/src/file_analysis/Manager.h b/src/file_analysis/Manager.h index f17bdef540..0a660add26 100644 --- a/src/file_analysis/Manager.h +++ b/src/file_analysis/Manager.h @@ -4,6 +4,7 @@ #include #include #include +#include #include "Net.h" #include "Conn.h" @@ -12,6 +13,7 @@ #include "Info.h" #include "InfoTimer.h" #include "FileID.h" +#include "PendingFile.h" namespace file_analysis { @@ -25,6 +27,17 @@ public: ~Manager(); + /** + * Attempts to forward the data from any pending file contents, i.e. + * those for which a unique file handle string could not immediately + * be determined. If again a file handle can't be determined, give up. + * The assumption for this to work correctly is that the EventMgr would + * have always drained between packet boundaries, so calling this method + * at that time may mean the script-layer function for generating file + * handles can now come up with a result. + */ + void DrainPending(); + /** * Times out any active file analysis to prepare for shutdown. */ @@ -33,33 +46,41 @@ public: /** * Pass in non-sequential file data. */ - void DataIn(const string& unique, const u_char* data, uint64 len, - uint64 offset, Connection* conn = 0, - const string& source = ""); + void DataIn(const u_char* data, uint64 len, uint64 offset, + Connection* conn, bool is_orig, bool allow_retry = true); + void DataIn(const u_char* data, uint64 len, uint64 offset, + const string& unique); + void DataIn(const u_char* data, uint64 len, uint64 offset, + Info* info); /** * Pass in sequential file data. */ - void DataIn(const string& unique, const u_char* data, uint64 len, - Connection* conn = 0, const string& source = ""); + void DataIn(const u_char* data, uint64 len, Connection* conn, bool is_orig, + bool allow_retry = true); + void DataIn(const u_char* data, uint64 len, const string& unique); + void DataIn(const u_char* data, uint64 len, Info* info); /** * Signal the end of file data. */ - void EndOfFile(const string& unique, Connection* conn = 0, - const string& source = ""); + void EndOfFile(Connection* conn); + void EndOfFile(Connection* conn, bool is_orig); + void EndOfFile(const string& unique); /** * Signal a gap in the file data stream. */ - void Gap(const string& unique, uint64 offset, uint64 len, - Connection* conn = 0, const string& source = ""); + void Gap(uint64 offset, uint64 len, Connection* conn, bool is_orig); + void Gap(uint64 offset, uint64 len, const string& unique); + void Gap(uint64 offset, uint64 len, Info* info); /** * Provide the expected number of bytes that comprise a file. */ - void SetSize(const string& unique, uint64 size, Connection* conn = 0, - const string& source = ""); + void SetSize(uint64 size, Connection* conn, bool is_orig); + void SetSize(uint64 size, const string& unique); + void SetSize(uint64 size, Info* info); /** * Starts ignoring a file, which will finally be removed from internal @@ -96,20 +117,31 @@ public: protected: friend class InfoTimer; + friend class PendingFile; typedef map StrMap; typedef set StrSet; typedef map IDMap; + typedef vector PendingList; /** * @return the Info object mapped to \a unique or a null pointer if analysis * is being ignored for the associated file. An Info object may be * created if a mapping doesn't exist, and if it did exist, the - * activity time is refreshed and connection-related fields of the - * record value may be updated. + * activity time is refreshed along with any connection-related + * fields. */ - Info* GetInfo(const string& unique, Connection* conn = 0, - const string& source = ""); + Info* GetInfo(const string& unique, Connection* conn = 0); + + /** + * @return a string which can uniquely identify the file being transported + * over the connection. A script-layer function is evaluated in + * order to determine the unique string. An empty string means + * a unique handle for the file couldn't be determined at the time + * time the function was evaluated (possibly because some events + * have not yet been drained from the queue). + */ + string GetFileHandle(Connection* conn, bool is_orig); /** * @return the Info object mapped to \a file_id, or a null pointer if no @@ -137,6 +169,7 @@ protected: StrMap str_map; /**< Map unique strings to \c FileAnalysis::Info records. */ IDMap id_map; /**< Map file IDs to \c FileAnalysis::Info records. */ StrSet ignored; /**< Ignored files. Will be finally removed on EOF. */ + PendingList pending; /**< Files waiting for next Tick to return a handle */ }; } // namespace file_analysis diff --git a/src/file_analysis/PendingFile.cc b/src/file_analysis/PendingFile.cc new file mode 100644 index 0000000000..90029703b1 --- /dev/null +++ b/src/file_analysis/PendingFile.cc @@ -0,0 +1,60 @@ +#include "PendingFile.h" +#include "Manager.h" + +using namespace file_analysis; + +PendingFile::PendingFile(const u_char* arg_data, uint64 arg_len, + uint64 arg_offset, Connection* arg_conn, + bool arg_is_orig) + : is_linear(false), data(arg_data), len(arg_len), offset(arg_offset), + conn(arg_conn), is_orig(arg_is_orig) + { + Ref(conn); + } + +PendingFile::PendingFile(const u_char* arg_data, uint64 arg_len, + Connection* arg_conn, bool arg_is_orig) + : is_linear(true), data(arg_data), len(arg_len), offset(0), + conn(arg_conn), is_orig(arg_is_orig) + { + Ref(conn); + } + +PendingFile::PendingFile(const PendingFile& other) + : is_linear(other.is_linear), data(other.data), len(other.len), + offset(other.offset), conn(other.conn), is_orig(other.is_orig) + { + Ref(conn); + } + +PendingFile& PendingFile::operator=(const PendingFile& other) + { + // handle self-assign for correct reference counting + if ( this == &other ) return *this; + + Unref(conn); + + is_linear = other.is_linear; + data = other.data; + len = other.len; + offset = other.offset; + conn = other.conn; + is_orig = other.is_orig; + + Ref(conn); + + return *this; + } + +PendingFile::~PendingFile() + { + Unref(conn); + } + +void PendingFile::Retry() const + { + if ( is_linear ) + file_mgr->DataIn(data, len, conn, is_orig, false); + else + file_mgr->DataIn(data, len, offset, conn, is_orig, false); + } diff --git a/src/file_analysis/PendingFile.h b/src/file_analysis/PendingFile.h new file mode 100644 index 0000000000..81a6ee51d3 --- /dev/null +++ b/src/file_analysis/PendingFile.h @@ -0,0 +1,37 @@ +#ifndef FILE_ANALYSIS_PENDINGFILE_H +#define FILE_ANALYSIS_PENDINGFILE_H + +#include "Conn.h" + +namespace file_analysis { + +class PendingFile { +public: + + PendingFile(const u_char* arg_data, uint64 arg_len, uint64 arg_offset, + Connection* arg_conn, bool arg_is_orig); + + PendingFile(const u_char* arg_data, uint64 arg_len, + Connection* arg_conn, bool arg_is_orig); + + PendingFile(const PendingFile& other); + + PendingFile& operator=(const PendingFile& other); + + ~PendingFile(); + + void Retry() const; + +private: + + bool is_linear; + const u_char* data; + uint64 len; + uint64 offset; + Connection* conn; + bool is_orig; +}; + +} // namespace file_analysis + +#endif From bb3228e8f6c6b6e3740afea6e82ac676f73d5461 Mon Sep 17 00:00:00 2001 From: Jon Siwek Date: Tue, 12 Mar 2013 16:06:06 -0500 Subject: [PATCH 39/71] FileAnalysis: small tweak to file handle generation. For files that go over a single connection, add connection start time to handle, so the file id will always differ even if the same connection parameters are later used to transfer a file (same one or different). --- scripts/base/frameworks/file-analysis/main.bro | 13 ++++++++----- src/HTTP.cc | 2 ++ 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/scripts/base/frameworks/file-analysis/main.bro b/scripts/base/frameworks/file-analysis/main.bro index 7bc62997ae..2e5feee22b 100644 --- a/scripts/base/frameworks/file-analysis/main.bro +++ b/scripts/base/frameworks/file-analysis/main.bro @@ -127,16 +127,19 @@ function get_handle(c: connection, is_orig: bool): string local cid: conn_id = c$id; if ( "ftp-data" in c$service ) - rval = fmt("%s: %s", "ftp-data", conn_str(c)); + rval = fmt("%s ftp-data: %s", c$start_time, conn_str(c)); + + if ( "irc-dcc-data" in c$service ) + rval = fmt("%s irc-dcc-data: %s", c$start_time, conn_str(c)); else if ( c?$http ) { if ( c$http$range_request ) - rval = fmt("http(%s): %s: %s", is_orig, c$id$orig_h, - HTTP::build_url(c$http)); + rval = fmt("%s http(%s): %s: %s", c$start_time, is_orig, + c$id$orig_h, HTTP::build_url(c$http)); else - rval = fmt("http(%s, %s): %s", is_orig, c$http$trans_depth, - conn_str(c)); + rval = fmt("%s http(%s, %s): %s", c$start_time, is_orig, + c$http$trans_depth, conn_str(c)); } #print fmt("file handle: %s", rval); diff --git a/src/HTTP.cc b/src/HTTP.cc index 292db83765..f0f0fc7e96 100644 --- a/src/HTTP.cc +++ b/src/HTTP.cc @@ -855,6 +855,8 @@ void HTTP_Analyzer::Done() Unref(unanswered_requests.front()); unanswered_requests.pop(); } + + file_mgr->EndOfFile(Conn()); } void HTTP_Analyzer::DeliverStream(int len, const u_char* data, bool is_orig) From 457ce10e99549b93a01214ba776be45183aa0548 Mon Sep 17 00:00:00 2001 From: Bernhard Amann Date: Wed, 13 Mar 2013 00:34:15 -0700 Subject: [PATCH 40/71] and re-enable caching of extracted certs I kind of deleted the line by accident... --- scripts/policy/protocols/ssl/extract-certs-pem.bro | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/policy/protocols/ssl/extract-certs-pem.bro b/scripts/policy/protocols/ssl/extract-certs-pem.bro index f48d4bc369..c64e8f86dc 100644 --- a/scripts/policy/protocols/ssl/extract-certs-pem.bro +++ b/scripts/policy/protocols/ssl/extract-certs-pem.bro @@ -39,6 +39,7 @@ event ssl_established(c: connection) &priority=5 # If we already extracted this cert, don't do it again. return; + add extracted_certs[c$ssl$cert_hash]; local filename = Site::is_local_addr(c$id$resp_h) ? "certs-local.pem" : "certs-remote.pem"; local outfile = open_for_append(filename); From 878dfff2f27a214c24215f38c9719711ea5f0423 Mon Sep 17 00:00:00 2001 From: Jon Siwek Date: Wed, 13 Mar 2013 10:48:26 -0500 Subject: [PATCH 41/71] FileAnalysis: decentralize unique file handle generator callbacks. The framework now cycles through callbacks based on a table indexed by analyzer tags, or the special case of service strings if a given analyzer is overloaded for multiple protocols (FTP/IRC data). This lets each protocol script bundle implement the callback locally and reduces the FAF's external dependencies. --- .../base/frameworks/file-analysis/main.bro | 49 +++++++---------- scripts/base/protocols/ftp/__load__.bro | 1 + scripts/base/protocols/ftp/file-analysis.bro | 10 ++++ scripts/base/protocols/http/__load__.bro | 1 + scripts/base/protocols/http/file-analysis.bro | 21 ++++++++ scripts/base/protocols/irc/__load__.bro | 3 +- scripts/base/protocols/irc/file-analysis.bro | 10 ++++ src/FileAnalyzer.h | 2 - src/file_analysis/Manager.cc | 53 ++++++++++++++----- src/file_analysis/Manager.h | 5 +- 10 files changed, 108 insertions(+), 47 deletions(-) create mode 100644 scripts/base/protocols/ftp/file-analysis.bro create mode 100644 scripts/base/protocols/http/file-analysis.bro create mode 100644 scripts/base/protocols/irc/file-analysis.bro diff --git a/scripts/base/frameworks/file-analysis/main.bro b/scripts/base/frameworks/file-analysis/main.bro index 2e5feee22b..00ff5b4120 100644 --- a/scripts/base/frameworks/file-analysis/main.bro +++ b/scripts/base/frameworks/file-analysis/main.bro @@ -5,11 +5,6 @@ # TODO: do logging here? @load base/frameworks/logging -# dependendies for file handle determination -@load base/protocols/http/main -@load base/protocols/http/utils -@load base/protocols/ftp/main - module FileAnalysis; export { @@ -110,38 +105,32 @@ export { ## TODO: document global policy: hook(trig: Trigger, info: Info); + type HandleCallback: function(c: connection, is_orig: bool): string; + + const handle_callbacks: table[AnalyzerTag] of HandleCallback = {} &redef; + + const service_handle_callbacks: table[string] of HandleCallback = {} &redef; + global get_handle: function(c: connection, is_orig: bool): string &redef; # TODO: wrapper functions for BiFs ? } -function conn_str(c: connection): string +function get_file_handle_by_service(c: connection, is_orig: bool): string { - return fmt("%s:%s -> %s:%s", c$id$orig_h, c$id$orig_p, - c$id$resp_h, c$id$resp_p); - } + local handle: string = ""; -function get_handle(c: connection, is_orig: bool): string - { - local rval: string = ""; - local cid: conn_id = c$id; - - if ( "ftp-data" in c$service ) - rval = fmt("%s ftp-data: %s", c$start_time, conn_str(c)); - - if ( "irc-dcc-data" in c$service ) - rval = fmt("%s irc-dcc-data: %s", c$start_time, conn_str(c)); - - else if ( c?$http ) + for ( serv in c$service ) { - if ( c$http$range_request ) - rval = fmt("%s http(%s): %s: %s", c$start_time, is_orig, - c$id$orig_h, HTTP::build_url(c$http)); - else - rval = fmt("%s http(%s, %s): %s", c$start_time, is_orig, - c$http$trans_depth, conn_str(c)); + if ( serv in service_handle_callbacks ) + { + handle = service_handle_callbacks[serv](c, is_orig); + if ( handle != "" ) return handle; + } } - - #print fmt("file handle: %s", rval); - return rval; + return handle; } + +redef FileAnalysis::handle_callbacks += { + [ANALYZER_FILE] = get_file_handle_by_service, +}; diff --git a/scripts/base/protocols/ftp/__load__.bro b/scripts/base/protocols/ftp/__load__.bro index 15c61be614..464571dc7d 100644 --- a/scripts/base/protocols/ftp/__load__.bro +++ b/scripts/base/protocols/ftp/__load__.bro @@ -1,4 +1,5 @@ @load ./utils-commands @load ./main +@load ./file-analysis @load ./file-extract @load ./gridftp diff --git a/scripts/base/protocols/ftp/file-analysis.bro b/scripts/base/protocols/ftp/file-analysis.bro new file mode 100644 index 0000000000..c124c1bf25 --- /dev/null +++ b/scripts/base/protocols/ftp/file-analysis.bro @@ -0,0 +1,10 @@ +@load ./main +@load base/utils/conn-ids +@load base/frameworks/file-analysis/main + +redef FileAnalysis::service_handle_callbacks += { + ["ftp-data"] = function(c: connection, is_orig: bool): string + { + return fmt("%s ftp-data: %s", c$start_time, id_string(c$id)); + }, +}; diff --git a/scripts/base/protocols/http/__load__.bro b/scripts/base/protocols/http/__load__.bro index 314f04b872..58618dedc7 100644 --- a/scripts/base/protocols/http/__load__.bro +++ b/scripts/base/protocols/http/__load__.bro @@ -1,5 +1,6 @@ @load ./main @load ./utils +@load ./file-analysis @load ./file-ident @load ./file-hash @load ./file-extract diff --git a/scripts/base/protocols/http/file-analysis.bro b/scripts/base/protocols/http/file-analysis.bro new file mode 100644 index 0000000000..901d82b74c --- /dev/null +++ b/scripts/base/protocols/http/file-analysis.bro @@ -0,0 +1,21 @@ +@load ./main +@load ./utils +@load base/utils/conn-ids +@load base/frameworks/file-analysis/main + +module HTTP; + +function get_file_handle(c: connection, is_orig: bool): string + { + if ( ! c?$http ) return ""; + + if ( c$http$range_request ) + return fmt("%s http(%s): %s: %s", c$start_time, is_orig, + c$id$orig_h, build_url(c$http)); + return fmt("%s http(%s, %s): %s", c$start_time, is_orig, + c$http$trans_depth, id_string(c$id)); + } + +redef FileAnalysis::handle_callbacks += { + [ANALYZER_HTTP] = get_file_handle, +}; diff --git a/scripts/base/protocols/irc/__load__.bro b/scripts/base/protocols/irc/__load__.bro index 240e1487c3..5123385b0c 100644 --- a/scripts/base/protocols/irc/__load__.bro +++ b/scripts/base/protocols/irc/__load__.bro @@ -1,2 +1,3 @@ @load ./main -@load ./dcc-send \ No newline at end of file +@load ./dcc-send +@load ./file-analysis diff --git a/scripts/base/protocols/irc/file-analysis.bro b/scripts/base/protocols/irc/file-analysis.bro new file mode 100644 index 0000000000..dbb06da3ba --- /dev/null +++ b/scripts/base/protocols/irc/file-analysis.bro @@ -0,0 +1,10 @@ +@load ./dcc-send.bro +@load base/utils/conn-ids +@load base/frameworks/file-analysis/main + +redef FileAnalysis::service_handle_callbacks += { + ["irc-dcc-data"] = function(c: connection, is_orig: bool): string + { + return fmt("%s irc-dcc-data: %s", c$start_time, id_string(c$id)); + }, +}; diff --git a/src/FileAnalyzer.h b/src/FileAnalyzer.h index 1b42593bca..c7ba3fb5a9 100644 --- a/src/FileAnalyzer.h +++ b/src/FileAnalyzer.h @@ -34,8 +34,6 @@ protected: static magic_t magic; static magic_t magic_mime; - - string unique_file; }; #endif diff --git a/src/file_analysis/Manager.cc b/src/file_analysis/Manager.cc index 81fa9824c2..1c2fcc4889 100644 --- a/src/file_analysis/Manager.cc +++ b/src/file_analysis/Manager.cc @@ -4,6 +4,7 @@ #include "Manager.h" #include "Info.h" #include "Action.h" +#include "Var.h" using namespace file_analysis; @@ -16,22 +17,48 @@ Manager::~Manager() Terminate(); } -string Manager::GetFileHandle(Connection* conn, bool is_orig) +string Manager::GetFileHandle(Analyzer* root, Connection* conn, + bool is_orig) const + { + static TableVal* table = 0; + + if ( ! table ) + table = internal_val("FileAnalysis::handle_callbacks")->AsTableVal(); + + if ( ! root ) return ""; + + Val* index = new Val(root->GetTag(), TYPE_COUNT); + const Val* callback = table->Lookup(index); + Unref(index); + + if ( callback ) + { + val_list vl(2); + vl.append(conn->BuildConnVal()); + vl.append(new Val(is_orig, TYPE_BOOL)); + + Val* result = callback->AsFunc()->Call(&vl); + string rval = result->AsString()->CheckString(); + Unref(result); + + if ( ! rval.empty() ) return rval; + } + + for ( analyzer_list::const_iterator it = root->GetChildren().begin(); + it != root->GetChildren().end(); ++it ) + { + string rval = GetFileHandle((*it), conn, is_orig); + if ( ! rval.empty() ) return rval; + } + + return ""; + } + +string Manager::GetFileHandle(Connection* conn, bool is_orig) const { if ( ! conn ) return ""; - const ID* id = global_scope()->Lookup("FileAnalysis::get_handle"); - assert(id); - const Func* func = id->ID_Val()->AsFunc(); - - val_list vl(2); - vl.append(conn->BuildConnVal()); - vl.append(new Val(is_orig, TYPE_BOOL)); - - Val* result = func->Call(&vl); - string rval = result->AsString()->CheckString(); - Unref(result); - return rval; + return GetFileHandle(conn->GetRootAnalyzer(), conn, is_orig); } void Manager::DrainPending() diff --git a/src/file_analysis/Manager.h b/src/file_analysis/Manager.h index 0a660add26..db9be04a06 100644 --- a/src/file_analysis/Manager.h +++ b/src/file_analysis/Manager.h @@ -9,6 +9,7 @@ #include "Net.h" #include "Conn.h" #include "Val.h" +#include "Analyzer.h" #include "Info.h" #include "InfoTimer.h" @@ -141,7 +142,9 @@ protected: * time the function was evaluated (possibly because some events * have not yet been drained from the queue). */ - string GetFileHandle(Connection* conn, bool is_orig); + string GetFileHandle(Connection* conn, bool is_orig) const; + string GetFileHandle(Analyzer* root, Connection* conn, + bool is_orig) const; /** * @return the Info object mapped to \a file_id, or a null pointer if no From 637fe69cf974d4d6a053b8990bc19db5052ac8bd Mon Sep 17 00:00:00 2001 From: Jon Siwek Date: Thu, 14 Mar 2013 10:57:16 -0500 Subject: [PATCH 42/71] FileAnalysis: buffer input that can't get unique file handle immediately A retry happens on every new input and also periodically based on a timer. If a file handle is returned at those times, the input is forwarded for analysis, else it keeps retrying until a timeout threshold. --- scripts/base/init-bare.bro | 20 +++ scripts/base/protocols/http/file-analysis.bro | 1 + src/Net.cc | 2 - src/RemoteSerializer.cc | 2 - src/Timer.h | 1 + src/const.bif | 3 + src/file_analysis/InfoTimer.h | 2 - src/file_analysis/Manager.cc | 128 +++++++++++++---- src/file_analysis/Manager.h | 50 ++++--- src/file_analysis/PendingFile.cc | 130 +++++++++++++----- src/file_analysis/PendingFile.h | 83 +++++++++-- 11 files changed, 319 insertions(+), 103 deletions(-) diff --git a/scripts/base/init-bare.bro b/scripts/base/init-bare.bro index 798eb387b3..81b25d9568 100644 --- a/scripts/base/init-bare.bro +++ b/scripts/base/init-bare.bro @@ -3025,6 +3025,26 @@ export { } module GLOBAL; +module FileAnalysis; +export { + ## When the file analysis framework receives input regarding a file + ## transferred over the network, and a unique handle string cannot + ## be determined immediately from :bro:see:`FileAnalysis::handle_callbacks`, + ## that input is buffered. This is the interval at which to automatically + ## check back on any currently buffered inputs to see if a handle is + ## available so that the input can be processed. Since any input + ## triggers the check for all buffered inputs, this option only helps + ## cases where the file analysis framework is getting little input. + const pending_file_drain_interval = 10 sec &redef; + + ## This is the interval at which to give up checking for a unique handle + ## string for files transferred over the network that were initially + ## buffered because no handle was available yet (e.g. when the necessary + ## events to construct the handle may not have been flushed yet). + const pending_file_timeout = 10 sec &redef; +} +module GLOBAL; + ## Number of bytes per packet to capture from live interfaces. const snaplen = 8192 &redef; diff --git a/scripts/base/protocols/http/file-analysis.bro b/scripts/base/protocols/http/file-analysis.bro index 901d82b74c..a0390710a8 100644 --- a/scripts/base/protocols/http/file-analysis.bro +++ b/scripts/base/protocols/http/file-analysis.bro @@ -12,6 +12,7 @@ function get_file_handle(c: connection, is_orig: bool): string if ( c$http$range_request ) return fmt("%s http(%s): %s: %s", c$start_time, is_orig, c$id$orig_h, build_url(c$http)); + return fmt("%s http(%s, %s): %s", c$start_time, is_orig, c$http$trans_depth, id_string(c$id)); } diff --git a/src/Net.cc b/src/Net.cc index d69337bd63..73c618b8af 100644 --- a/src/Net.cc +++ b/src/Net.cc @@ -30,7 +30,6 @@ #include "PacketSort.h" #include "Serializer.h" #include "PacketDumper.h" -#include "file_analysis/Manager.h" extern "C" { #include "setsignal.h" @@ -353,7 +352,6 @@ void net_packet_dispatch(double t, const struct pcap_pkthdr* hdr, sessions->DispatchPacket(t, hdr, pkt, hdr_size, src_ps, pkt_elem); mgr.Drain(); - file_mgr->DrainPending(); if ( sp ) { diff --git a/src/RemoteSerializer.cc b/src/RemoteSerializer.cc index 80c839a1da..66f8def489 100644 --- a/src/RemoteSerializer.cc +++ b/src/RemoteSerializer.cc @@ -192,7 +192,6 @@ #include "logging/Manager.h" #include "IPAddr.h" #include "bro_inet_ntop.h" -#include "file_analysis/Manager.h" extern "C" { #include "setsignal.h" @@ -1463,7 +1462,6 @@ void RemoteSerializer::Process() current_iosrc = this; sessions->NextPacket(p->time, p->hdr, p->pkt, p->hdr_size, 0); mgr.Drain(); - file_mgr->DrainPending(); current_hdr = 0; // done with these current_pkt = 0; diff --git a/src/Timer.h b/src/Timer.h index 615c8bf69a..f3192cbd79 100644 --- a/src/Timer.h +++ b/src/Timer.h @@ -23,6 +23,7 @@ enum TimerType { TIMER_CONN_STATUS_UPDATE, TIMER_DNS_EXPIRE, TIMER_FILE_ANALYSIS_INACTIVITY, + TIMER_FILE_ANALYSIS_DRAIN, TIMER_FRAG, TIMER_INCREMENTAL_SEND, TIMER_INCREMENTAL_WRITE, diff --git a/src/const.bif b/src/const.bif index ea84b3363d..0b843e34a9 100644 --- a/src/const.bif +++ b/src/const.bif @@ -23,3 +23,6 @@ const Tunnel::delay_gtp_confirmation: bool; const Tunnel::ip_tunnel_timeout: interval; const Threading::heartbeat_interval: interval; + +const FileAnalysis::pending_file_drain_interval: interval; +const FileAnalysis::pending_file_timeout: interval; diff --git a/src/file_analysis/InfoTimer.h b/src/file_analysis/InfoTimer.h index ac0d8b6b00..250dbedddf 100644 --- a/src/file_analysis/InfoTimer.h +++ b/src/file_analysis/InfoTimer.h @@ -16,8 +16,6 @@ public: InfoTimer(double t, const FileID& id, double interval) : Timer(t + interval, TIMER_FILE_ANALYSIS_INACTIVITY), file_id(id) {} - ~InfoTimer() {} - /** * Check inactivity of file_analysis::Info corresponding to #file_id, * reschedule if active, else call file_analysis::Manager::Timeout. diff --git a/src/file_analysis/Manager.cc b/src/file_analysis/Manager.cc index 1c2fcc4889..a6d2dfa3fc 100644 --- a/src/file_analysis/Manager.cc +++ b/src/file_analysis/Manager.cc @@ -8,8 +8,19 @@ using namespace file_analysis; -Manager::Manager() +void DrainTimer::Dispatch(double t, int is_expire) { + using BifConst::FileAnalysis::pending_file_drain_interval; + DBG_LOG(DBG_FILE_ANALYSIS, "DrainTimer dispatched"); + file_mgr->DrainPending(); + if ( ! is_expire ) + timer_mgr->Add(new DrainTimer(pending_file_drain_interval)); + } + +Manager::Manager() : is_draining(false) + { + using BifConst::FileAnalysis::pending_file_drain_interval; + timer_mgr->Add(new DrainTimer(pending_file_drain_interval)); } Manager::~Manager() @@ -38,10 +49,13 @@ string Manager::GetFileHandle(Analyzer* root, Connection* conn, vl.append(new Val(is_orig, TYPE_BOOL)); Val* result = callback->AsFunc()->Call(&vl); - string rval = result->AsString()->CheckString(); - Unref(result); - if ( ! rval.empty() ) return rval; + if ( result ) + { + string rval = result->AsString()->CheckString(); + Unref(result); + if ( ! rval.empty() ) return rval; + } } for ( analyzer_list::const_iterator it = root->GetChildren().begin(); @@ -63,14 +77,29 @@ string Manager::GetFileHandle(Connection* conn, bool is_orig) const void Manager::DrainPending() { - for ( size_t i = 0; i < pending.size(); ++i ) - pending[i].Retry(); + if ( is_draining ) return; - pending.clear(); + is_draining = true; + PendingList::iterator it = pending.begin(); + + while ( it != pending.end() ) + { + if ( (*it)->Retry() || (*it)->IsStale() ) + { + delete *it; + pending.erase(it++); + } + else + ++it; + } + + is_draining = false; } void Manager::Terminate() { + DrainPending(); + vector keys; for ( IDMap::iterator it = id_map.begin(); it != id_map.end(); ++it ) keys.push_back(it->first); @@ -78,19 +107,24 @@ void Manager::Terminate() Timeout(keys[i], true); } -void Manager::DataIn(const u_char* data, uint64 len, uint64 offset, - Connection* conn, bool is_orig, bool allow_retry) +bool Manager::DataIn(const u_char* data, uint64 len, uint64 offset, + Connection* conn, bool is_orig) { + DrainPending(); + string unique = GetFileHandle(conn, is_orig); if ( ! unique.empty() ) { DataIn(data, len, offset, GetInfo(unique, conn)); - return; + return true; } - if ( allow_retry ) - pending.push_back(PendingFile(data, len, offset, conn, is_orig)); + if ( ! is_draining ) + pending.push_back(new PendingDataInChunk(data, len, offset, conn, + is_orig)); + + return false; } void Manager::DataIn(const u_char* data, uint64 len, uint64 offset, @@ -102,6 +136,8 @@ void Manager::DataIn(const u_char* data, uint64 len, uint64 offset, void Manager::DataIn(const u_char* data, uint64 len, uint64 offset, Info* info) { + DrainPending(); + if ( ! info ) return; info->DataIn(data, len, offset); @@ -110,19 +146,23 @@ void Manager::DataIn(const u_char* data, uint64 len, uint64 offset, RemoveFile(info->GetUnique()); } -void Manager::DataIn(const u_char* data, uint64 len, Connection* conn, - bool is_orig, bool allow_retry) +bool Manager::DataIn(const u_char* data, uint64 len, Connection* conn, + bool is_orig) { + DrainPending(); + string unique = GetFileHandle(conn, is_orig); if ( ! unique.empty() ) { DataIn(data, len, GetInfo(unique, conn)); - return; + return true; } - if ( allow_retry ) - pending.push_back(PendingFile(data, len, conn, is_orig)); + if ( ! is_draining ) + pending.push_back(new PendingDataInStream(data, len, conn, is_orig)); + + return false; } void Manager::DataIn(const u_char* data, uint64 len, const string& unique) @@ -132,6 +172,8 @@ void Manager::DataIn(const u_char* data, uint64 len, const string& unique) void Manager::DataIn(const u_char* data, uint64 len, Info* info) { + DrainPending(); + if ( ! info ) return; info->DataIn(data, len); @@ -146,27 +188,46 @@ void Manager::EndOfFile(Connection* conn) EndOfFile(conn, false); } -void Manager::EndOfFile(Connection* conn, bool is_orig) +bool Manager::EndOfFile(Connection* conn, bool is_orig) { + DrainPending(); + string unique = GetFileHandle(conn, is_orig); - if ( unique.empty() ) return; // nothing to do + if ( ! unique.empty() ) + { + RemoveFile(unique); + return true; + } - RemoveFile(unique); + if ( ! is_draining ) + pending.push_back(new PendingEOF(conn, is_orig)); + + return false; } void Manager::EndOfFile(const string& unique) { + DrainPending(); RemoveFile(unique); } -void Manager::Gap(uint64 offset, uint64 len, Connection* conn, bool is_orig) +bool Manager::Gap(uint64 offset, uint64 len, Connection* conn, bool is_orig) { + DrainPending(); + string unique = GetFileHandle(conn, is_orig); - if ( unique.empty() ) return; // nothing to do since no data has been seen + if ( ! unique.empty() ) + { + Gap(offset, len, GetInfo(unique, conn)); + return true; + } - Gap(offset, len, GetInfo(unique, conn)); + if ( ! is_draining ) + pending.push_back(new PendingGap(offset, len, conn, is_orig)); + + return false; } void Manager::Gap(uint64 offset, uint64 len, const string& unique) @@ -176,18 +237,29 @@ void Manager::Gap(uint64 offset, uint64 len, const string& unique) void Manager::Gap(uint64 offset, uint64 len, Info* info) { + DrainPending(); + if ( ! info ) return; info->Gap(offset, len); } -void Manager::SetSize(uint64 size, Connection* conn, bool is_orig) +bool Manager::SetSize(uint64 size, Connection* conn, bool is_orig) { + DrainPending(); + string unique = GetFileHandle(conn, is_orig); - if ( unique.empty() ) return; // ok assuming this always follows a DataIn() + if ( ! unique.empty() ) + { + SetSize(size, GetInfo(unique, conn)); + return true; + } - SetSize(size, GetInfo(unique, conn)); + if ( ! is_draining ) + pending.push_back(new PendingSize(size, conn, is_orig)); + + return false; } void Manager::SetSize(uint64 size, const string& unique) @@ -197,6 +269,8 @@ void Manager::SetSize(uint64 size, const string& unique) void Manager::SetSize(uint64 size, Info* info) { + DrainPending(); + if ( ! info ) return; info->SetTotalBytes(size); @@ -294,6 +368,8 @@ Info* Manager::Lookup(const FileID& file_id) const void Manager::Timeout(const FileID& file_id, bool is_terminating) { + DrainPending(); + Info* info = Lookup(file_id); if ( ! info ) return; diff --git a/src/file_analysis/Manager.h b/src/file_analysis/Manager.h index db9be04a06..6f92553c3b 100644 --- a/src/file_analysis/Manager.h +++ b/src/file_analysis/Manager.h @@ -4,12 +4,13 @@ #include #include #include -#include +#include #include "Net.h" #include "Conn.h" #include "Val.h" #include "Analyzer.h" +#include "Timer.h" #include "Info.h" #include "InfoTimer.h" @@ -18,6 +19,15 @@ namespace file_analysis { +class DrainTimer : public Timer { +public: + + DrainTimer(double interval) + : Timer(network_time + interval, TIMER_FILE_ANALYSIS_DRAIN) {} + + void Dispatch(double t, int is_expire); +}; + /** * Main entry point for interacting with file analysis. */ @@ -28,17 +38,6 @@ public: ~Manager(); - /** - * Attempts to forward the data from any pending file contents, i.e. - * those for which a unique file handle string could not immediately - * be determined. If again a file handle can't be determined, give up. - * The assumption for this to work correctly is that the EventMgr would - * have always drained between packet boundaries, so calling this method - * at that time may mean the script-layer function for generating file - * handles can now come up with a result. - */ - void DrainPending(); - /** * Times out any active file analysis to prepare for shutdown. */ @@ -47,8 +46,8 @@ public: /** * Pass in non-sequential file data. */ - void DataIn(const u_char* data, uint64 len, uint64 offset, - Connection* conn, bool is_orig, bool allow_retry = true); + bool DataIn(const u_char* data, uint64 len, uint64 offset, + Connection* conn, bool is_orig); void DataIn(const u_char* data, uint64 len, uint64 offset, const string& unique); void DataIn(const u_char* data, uint64 len, uint64 offset, @@ -57,8 +56,7 @@ public: /** * Pass in sequential file data. */ - void DataIn(const u_char* data, uint64 len, Connection* conn, bool is_orig, - bool allow_retry = true); + bool DataIn(const u_char* data, uint64 len, Connection* conn, bool is_orig); void DataIn(const u_char* data, uint64 len, const string& unique); void DataIn(const u_char* data, uint64 len, Info* info); @@ -66,20 +64,20 @@ public: * Signal the end of file data. */ void EndOfFile(Connection* conn); - void EndOfFile(Connection* conn, bool is_orig); + bool EndOfFile(Connection* conn, bool is_orig); void EndOfFile(const string& unique); /** * Signal a gap in the file data stream. */ - void Gap(uint64 offset, uint64 len, Connection* conn, bool is_orig); + bool Gap(uint64 offset, uint64 len, Connection* conn, bool is_orig); void Gap(uint64 offset, uint64 len, const string& unique); void Gap(uint64 offset, uint64 len, Info* info); /** * Provide the expected number of bytes that comprise a file. */ - void SetSize(uint64 size, Connection* conn, bool is_orig); + bool SetSize(uint64 size, Connection* conn, bool is_orig); void SetSize(uint64 size, const string& unique); void SetSize(uint64 size, Info* info); @@ -118,12 +116,13 @@ public: protected: friend class InfoTimer; + friend class DrainTimer; friend class PendingFile; typedef map StrMap; typedef set StrSet; typedef map IDMap; - typedef vector PendingList; + typedef list PendingList; /** * @return the Info object mapped to \a unique or a null pointer if analysis @@ -169,10 +168,19 @@ protected: */ bool IsIgnored(const string& unique); + /** + * Attempts to forward the data from any pending file contents, i.e. + * those for which a unique file handle string could not immediately + * be determined. + */ + void DrainPending(); + StrMap str_map; /**< Map unique strings to \c FileAnalysis::Info records. */ IDMap id_map; /**< Map file IDs to \c FileAnalysis::Info records. */ StrSet ignored; /**< Ignored files. Will be finally removed on EOF. */ - PendingList pending; /**< Files waiting for next Tick to return a handle */ + PendingList pending; /**< Files awaiting a unique handle. */ + + bool is_draining; }; } // namespace file_analysis diff --git a/src/file_analysis/PendingFile.cc b/src/file_analysis/PendingFile.cc index 90029703b1..5d94c441a2 100644 --- a/src/file_analysis/PendingFile.cc +++ b/src/file_analysis/PendingFile.cc @@ -3,58 +3,112 @@ using namespace file_analysis; -PendingFile::PendingFile(const u_char* arg_data, uint64 arg_len, - uint64 arg_offset, Connection* arg_conn, - bool arg_is_orig) - : is_linear(false), data(arg_data), len(arg_len), offset(arg_offset), - conn(arg_conn), is_orig(arg_is_orig) +static void copy_data(const u_char** dst, const u_char* src, uint64 len) { - Ref(conn); + u_char* tmp = new u_char[len]; + memcpy(tmp, src, len); + *dst = tmp; } -PendingFile::PendingFile(const u_char* arg_data, uint64 arg_len, - Connection* arg_conn, bool arg_is_orig) - : is_linear(true), data(arg_data), len(arg_len), offset(0), - conn(arg_conn), is_orig(arg_is_orig) +static string conn_str(Connection* c) { - Ref(conn); + char op[256], rp[256]; + modp_ulitoa10(ntohs(c->OrigPort()), op); + modp_ulitoa10(ntohs(c->RespPort()), rp); + string rval = c->OrigAddr().AsString() + ":" + op + "->" + + c->RespAddr().AsString() + ":" + rp; + return rval; } -PendingFile::PendingFile(const PendingFile& other) - : is_linear(other.is_linear), data(other.data), len(other.len), - offset(other.offset), conn(other.conn), is_orig(other.is_orig) +PendingFile::PendingFile(Connection* arg_conn, bool arg_is_orig) + : conn(arg_conn), is_orig(arg_is_orig), creation_time(network_time) { Ref(conn); - } - -PendingFile& PendingFile::operator=(const PendingFile& other) - { - // handle self-assign for correct reference counting - if ( this == &other ) return *this; - - Unref(conn); - - is_linear = other.is_linear; - data = other.data; - len = other.len; - offset = other.offset; - conn = other.conn; - is_orig = other.is_orig; - - Ref(conn); - - return *this; + DBG_LOG(DBG_FILE_ANALYSIS, "New pending file: %s", conn_str(conn).c_str()); } PendingFile::~PendingFile() { Unref(conn); + DBG_LOG(DBG_FILE_ANALYSIS, "Delete pending file: %s", + conn_str(conn).c_str()); } -void PendingFile::Retry() const +bool PendingFile::IsStale() const { - if ( is_linear ) - file_mgr->DataIn(data, len, conn, is_orig, false); - else - file_mgr->DataIn(data, len, offset, conn, is_orig, false); + using BifConst::FileAnalysis::pending_file_timeout; + if ( creation_time + pending_file_timeout < network_time ) + { + DBG_LOG(DBG_FILE_ANALYSIS, "Stale pending file: %s", + conn_str(conn).c_str()); + return true; + } + return false; + } + +PendingDataInChunk::PendingDataInChunk(const u_char* arg_data, uint64 arg_len, + uint64 arg_offset, Connection* arg_conn, + bool arg_is_orig) + : PendingFile(arg_conn, arg_is_orig), len(arg_len), offset(arg_offset) + { + copy_data(&data, arg_data, len); + } + +bool PendingDataInChunk::Retry() const + { + return file_mgr->DataIn(data, len, offset, conn, is_orig); + } + +PendingDataInChunk::~PendingDataInChunk() + { + delete [] data; + } + +PendingDataInStream::PendingDataInStream(const u_char* arg_data, uint64 arg_len, + Connection* arg_conn, bool arg_is_orig) + : PendingFile(arg_conn, arg_is_orig), len(arg_len) + { + copy_data(&data, arg_data, len); + } + +bool PendingDataInStream::Retry() const + { + return file_mgr->DataIn(data, len, conn, is_orig); + } + +PendingDataInStream::~PendingDataInStream() + { + delete [] data; + } + +PendingGap::PendingGap(uint64 arg_offset, uint64 arg_len, Connection* arg_conn, + bool arg_is_orig) + : PendingFile(arg_conn, arg_is_orig), offset(arg_offset), len(arg_len) + { + } + +bool PendingGap::Retry() const + { + return file_mgr->Gap(offset, len, conn, is_orig); + } + +PendingEOF::PendingEOF(Connection* arg_conn, bool arg_is_orig) + : PendingFile(arg_conn, arg_is_orig) + { + } + +bool PendingEOF::Retry() const + { + return file_mgr->EndOfFile(conn, is_orig); + } + +PendingSize::PendingSize(uint64 arg_size, Connection* arg_conn, + bool arg_is_orig) + : PendingFile(arg_conn, arg_is_orig), size(arg_size) + { + } + +bool PendingSize::Retry() const + { + return file_mgr->SetSize(size, conn, is_orig); } diff --git a/src/file_analysis/PendingFile.h b/src/file_analysis/PendingFile.h index 81a6ee51d3..53e760e998 100644 --- a/src/file_analysis/PendingFile.h +++ b/src/file_analysis/PendingFile.h @@ -8,28 +8,87 @@ namespace file_analysis { class PendingFile { public: - PendingFile(const u_char* arg_data, uint64 arg_len, uint64 arg_offset, - Connection* arg_conn, bool arg_is_orig); + virtual ~PendingFile(); - PendingFile(const u_char* arg_data, uint64 arg_len, - Connection* arg_conn, bool arg_is_orig); + virtual bool Retry() const = 0; - PendingFile(const PendingFile& other); + bool IsStale() const; - PendingFile& operator=(const PendingFile& other); +protected: - ~PendingFile(); + PendingFile(Connection* arg_conn, bool arg_is_orig); - void Retry() const; + Connection* conn; + bool is_orig; + double creation_time; +}; -private: +class PendingDataInChunk : public PendingFile { +public: + + PendingDataInChunk(const u_char* arg_data, uint64 arg_len, + uint64 arg_offset, Connection* arg_conn, + bool arg_is_orig); + + virtual ~PendingDataInChunk(); + + virtual bool Retry() const; + +protected: - bool is_linear; const u_char* data; uint64 len; uint64 offset; - Connection* conn; - bool is_orig; +}; + +class PendingDataInStream : public PendingFile { +public: + + PendingDataInStream(const u_char* arg_data, uint64 arg_len, + Connection* arg_conn, bool arg_is_orig); + + virtual ~PendingDataInStream(); + + virtual bool Retry() const; + +protected: + + const u_char* data; + uint64 len; +}; + +class PendingGap : public PendingFile { +public: + + PendingGap(uint64 arg_offset, uint64 arg_len, Connection* arg_conn, + bool arg_is_orig); + + virtual bool Retry() const; + +protected: + + uint64 offset; + uint64 len; +}; + +class PendingEOF : public PendingFile { +public: + + PendingEOF(Connection* arg_conn, bool arg_is_orig); + + virtual bool Retry() const; +}; + +class PendingSize : public PendingFile { +public: + + PendingSize(uint64 arg_size, Connection* arg_conn, bool arg_is_orig); + + virtual bool Retry() const; + +protected: + + uint64 size; }; } // namespace file_analysis From e0f3713912e458c9179ae390d05ef9bca5c5d126 Mon Sep 17 00:00:00 2001 From: Jon Siwek Date: Thu, 14 Mar 2013 14:08:26 -0500 Subject: [PATCH 43/71] FileAnalysis: change file handle -> file id mapping process. They're now actually directly related via a hash function that will produce the same results among different instances in a cluster. --- scripts/base/init-bare.bro | 8 ++++++++ src/const.bif | 1 + src/file_analysis/Info.cc | 22 ++++++++++++++++------ src/file_analysis/Info.h | 6 ++++-- 4 files changed, 29 insertions(+), 8 deletions(-) diff --git a/scripts/base/init-bare.bro b/scripts/base/init-bare.bro index 81b25d9568..49fcd94d2a 100644 --- a/scripts/base/init-bare.bro +++ b/scripts/base/init-bare.bro @@ -3042,6 +3042,14 @@ export { ## buffered because no handle was available yet (e.g. when the necessary ## events to construct the handle may not have been flushed yet). const pending_file_timeout = 10 sec &redef; + + ## The salt concatenated to unique file handle strings generated by + ## :bro:see:`FileAnalysis::handle_callbacks` before hashing them + ## in to a file id (the *file_id* field of :bro:see:`FileAnalysis::Info`). + ## Provided to help mitigate the possiblility of manipulating parts of + ## network connections that factor in to the file handle in order to + ## generate two handles that would hash to the same file id. + const salt = "I recommend changing this." &redef; } module GLOBAL; diff --git a/src/const.bif b/src/const.bif index 0b843e34a9..7fdb444c2c 100644 --- a/src/const.bif +++ b/src/const.bif @@ -26,3 +26,4 @@ const Threading::heartbeat_interval: interval; const FileAnalysis::pending_file_drain_interval: interval; const FileAnalysis::pending_file_timeout: interval; +const FileAnalysis::salt: string; diff --git a/src/file_analysis/Info.cc b/src/file_analysis/Info.cc index f1af9ffff1..d3a89fd825 100644 --- a/src/file_analysis/Info.cc +++ b/src/file_analysis/Info.cc @@ -1,4 +1,5 @@ #include +#include #include "Info.h" #include "InfoTimer.h" @@ -54,9 +55,12 @@ int Info::actions_idx = -1; magic_t Info::magic = 0; magic_t Info::magic_mime = 0; -void Info::InitFieldIndices() +string Info::salt; + +void Info::StaticInit() { if ( file_id_idx != -1 ) return; + file_id_idx = Idx("file_id"); parent_file_id_idx = Idx("parent_file_id"); source_idx = Idx("source"); @@ -72,6 +76,11 @@ void Info::InitFieldIndices() file_type_idx = Idx("file_type"); mime_type_idx = Idx("mime_type"); actions_idx = Idx("actions"); + + bro_init_magic(&magic, MAGIC_NONE); + bro_init_magic(&magic_mime, MAGIC_MIME); + + salt = BifConst::FileAnalysis::salt->CheckString(); } Info::Info(const string& unique, Connection* conn) @@ -79,13 +88,14 @@ Info::Info(const string& unique, Connection* conn) postpone_timeout(false), need_reassembly(false), done(false), actions(this) { - InitFieldIndices(); - - bro_init_magic(&magic, MAGIC_NONE); - bro_init_magic(&magic_mime, MAGIC_MIME); + StaticInit(); char id[20]; - uitoa_n(calculate_unique_id(), id, sizeof(id), 62); + uint64 hash[2]; + string msg(unique + salt); + MD5(reinterpret_cast(msg.data()), msg.size(), + reinterpret_cast(hash)); + uitoa_n(hash[0], id, sizeof(id), 62); DBG_LOG(DBG_FILE_ANALYSIS, "Creating new Info object %s", id); diff --git a/src/file_analysis/Info.h b/src/file_analysis/Info.h index 8b4c10473c..2ec9efef6e 100644 --- a/src/file_analysis/Info.h +++ b/src/file_analysis/Info.h @@ -179,13 +179,15 @@ protected: static int Idx(const string& field_name); /** - * Initializes the index offsets for fields in \c FileAnalysis::info record. + * Initializes static member. */ - static void InitFieldIndices(); + static void StaticInit(); static magic_t magic; static magic_t magic_mime; + static string salt; + public: static int file_id_idx; static int parent_file_id_idx; From 31590fbb9bcf31ebfe05f4fb5b457c1b6125bca9 Mon Sep 17 00:00:00 2001 From: Jon Siwek Date: Thu, 14 Mar 2013 17:05:05 -0500 Subject: [PATCH 44/71] FileAnalysis: improve HTTP integration. Seems to be working with various examples I tested, now including multipart/byteranges. --- src/HTTP.cc | 44 ++++++++++++++++++++++++++++++++++++-------- src/HTTP.h | 3 +++ src/MIME.h | 2 +- 3 files changed, 40 insertions(+), 9 deletions(-) diff --git a/src/HTTP.cc b/src/HTTP.cc index f0f0fc7e96..4ac6652ca1 100644 --- a/src/HTTP.cc +++ b/src/HTTP.cc @@ -45,6 +45,9 @@ HTTP_Entity::HTTP_Entity(HTTP_Message *arg_message, MIME_Entity* parent_entity, deliver_body = (http_entity_data != 0); encoding = IDENTITY; zip = 0; + is_partial_content = false; + offset = 0; + content_size = -1; // unspecified } void HTTP_Entity::EndOfData() @@ -195,12 +198,6 @@ void HTTP_Entity::DeliverBody(int len, const char* data, int trailing_CRLF) } else DeliverBodyClear(len, data, trailing_CRLF); - - file_mgr->DataIn(reinterpret_cast(data), len, - http_message->MyHTTP_Analyzer()->Conn(), - http_message->IsOrig()); - // TODO: set size if we have content_length? - // TODO: handle partial content and multipart/byteranges } void HTTP_Entity::DeliverBodyClear(int len, const char* data, int trailing_CRLF) @@ -284,6 +281,28 @@ void HTTP_Entity::SubmitData(int len, const char* buf) { if ( deliver_body ) MIME_Entity::SubmitData(len, buf); + + if ( is_partial_content ) + { + file_mgr->DataIn(reinterpret_cast(buf), len, offset, + http_message->MyHTTP_Analyzer()->Conn(), + http_message->IsOrig()); + offset += len; + if ( content_size >= 0 ) + file_mgr->SetSize(content_size, + http_message->MyHTTP_Analyzer()->Conn(), + http_message->IsOrig()); + } + else + { + file_mgr->DataIn(reinterpret_cast(buf), len, + http_message->MyHTTP_Analyzer()->Conn(), + http_message->IsOrig()); + if ( content_length >= 0 ) + file_mgr->SetSize(content_length, + http_message->MyHTTP_Analyzer()->Conn(), + http_message->IsOrig()); + } } void HTTP_Entity::SetPlainDelivery(int64_t length) @@ -366,7 +385,14 @@ void HTTP_Entity::SubmitHeader(MIME_Header* h) DEBUG_MSG("Content-Range length = %"PRId64"\n", len); if ( len > 0 ) + { + if ( instance_length != "*" ) + atoi_n(instance_length.size(), instance_length.c_str(), 0, 10, + content_size); + is_partial_content = true; + offset = f; content_length = len; + } else { http_message->Weird("HTTP_non_positive_content_range"); @@ -529,6 +555,7 @@ void HTTP_Message::Done(const int interrupted, const char* detail) } MyHTTP_Analyzer()->HTTP_MessageDone(is_orig, this); + file_mgr->EndOfFile(MyHTTP_Analyzer()->Conn(), is_orig); delete_strings(buffers); @@ -593,8 +620,9 @@ void HTTP_Message::EndEntity(MIME_Entity* entity) // SubmitAllHeaders (through EndOfData). if ( entity == top_level ) Done(); - - file_mgr->EndOfFile(MyHTTP_Analyzer()->Conn(), is_orig); + else if ( ! ( current_entity->MIMEContentType() == CONTENT_TYPE_MULTIPART && + MyHTTP_Analyzer()->HTTP_ReplyCode() == 206 ) ) + file_mgr->EndOfFile(MyHTTP_Analyzer()->Conn(), is_orig); } void HTTP_Message::SubmitHeader(MIME_Header* h) diff --git a/src/HTTP.h b/src/HTTP.h index c9d8ae55d1..a65a93e417 100644 --- a/src/HTTP.h +++ b/src/HTTP.h @@ -55,6 +55,9 @@ protected: int deliver_body; enum { IDENTITY, GZIP, COMPRESS, DEFLATE } encoding; ZIP_Analyzer* zip; + bool is_partial_content; + uint64_t offset; + int64_t content_size; // total size of content specified by content-range MIME_Entity* NewChildEntity() { return new HTTP_Entity(http_message, this, 1); } diff --git a/src/MIME.h b/src/MIME.h index ffff30e387..b8e5251fc0 100644 --- a/src/MIME.h +++ b/src/MIME.h @@ -131,7 +131,7 @@ protected: int GetDataBuffer(); void DataOctet(char ch); void DataOctets(int len, const char* data); - void SubmitData(int len, const char* buf); + virtual void SubmitData(int len, const char* buf); virtual void SubmitHeader(MIME_Header* h); // Submit all headers in member "headers". From f412a00ada7accf345889fb2487370cb922f9ca4 Mon Sep 17 00:00:00 2001 From: Robin Sommer Date: Sun, 17 Mar 2013 13:06:24 -0700 Subject: [PATCH 45/71] Adding a test for extract-certs-pem.pem. --- .../certs-remote.pem | 34 ++++++++++++++++++ testing/btest/Traces/ssl.v3.trace | Bin 0 -> 190576 bytes .../protocols/ssl/extract-certs-pem.bro | 6 ++++ 3 files changed, 40 insertions(+) create mode 100644 testing/btest/Baseline/scripts.policy.protocols.ssl.extract-certs-pem/certs-remote.pem create mode 100644 testing/btest/Traces/ssl.v3.trace create mode 100644 testing/btest/scripts/policy/protocols/ssl/extract-certs-pem.bro diff --git a/testing/btest/Baseline/scripts.policy.protocols.ssl.extract-certs-pem/certs-remote.pem b/testing/btest/Baseline/scripts.policy.protocols.ssl.extract-certs-pem/certs-remote.pem new file mode 100644 index 0000000000..1767a32095 --- /dev/null +++ b/testing/btest/Baseline/scripts.policy.protocols.ssl.extract-certs-pem/certs-remote.pem @@ -0,0 +1,34 @@ +-----BEGIN CERTIFICATE----- +MIIEfDCCA+WgAwIBAgIQBKeBFvADKDvaK4RiBJ+eyzANBgkqhk +iG9w0BAQUFADCBujEfMB0GA1UEChMWVmVyaVNpZ24gVHJ1c3Qg +TmV0d29yazEXMBUGA1UECxMOVmVyaVNpZ24sIEluYy4xMzAxBg +NVBAsTKlZlcmlTaWduIEludGVybmF0aW9uYWwgU2VydmVyIENB +IC0gQ2xhc3MgMzFJMEcGA1UECxNAd3d3LnZlcmlzaWduLmNvbS +9DUFMgSW5jb3JwLmJ5IFJlZi4gTElBQklMSVRZIExURC4oYyk5 +NyBWZXJpU2lnbjAeFw0wNjExMTQwMDAwMDBaFw0wNzExMTQyMz +U5NTlaMIHAMQswCQYDVQQGEwJERTEPMA0GA1UECBMGQmF5ZXJu +MREwDwYDVQQHFAhNdWVuY2hlbjE3MDUGA1UEChQuQUdJUyBBbG +xpYW56IERyZXNkbmVyIEluZm9ybWF0aW9uc3N5c3RlbWUgR21i +SDEzMDEGA1UECxQqVGVybXMgb2YgdXNlIGF0IHd3dy52ZXJpc2 +lnbi5jb20vcnBhIChjKTAwMR8wHQYDVQQDFBZ3d3cuZHJlc2Ru +ZXItcHJpdmF0LmRlMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQ +KBgQDrqHR+++O06r6LHD3t6oYEYlHgKlqehm+Yy7zF7cXIylad +TJJY4WsTb7y35S6YQPeP1qPACqtGUhs4/AUg54Duxl3VuwP8xY +O6mmcI/Sy6owiU8LMfFij2BWZbv3+oWfq+mWs2YrhuxoNHU2MP +WrRRwYioVbnUMW09KkqVCtF7hwIDAQABo4IBeTCCAXUwCQYDVR +0TBAIwADALBgNVHQ8EBAMCBaAwRgYDVR0fBD8wPTA7oDmgN4Y1 +aHR0cDovL2NybC52ZXJpc2lnbi5jb20vQ2xhc3MzSW50ZXJuYX +Rpb25hbFNlcnZlci5jcmwwRAYDVR0gBD0wOzA5BgtghkgBhvhF +AQcXAzAqMCgGCCsGAQUFBwIBFhxodHRwczovL3d3dy52ZXJpc2 +lnbi5jb20vcnBhMCgGA1UdJQQhMB8GCWCGSAGG+EIEAQYIKwYB +BQUHAwEGCCsGAQUFBwMCMDQGCCsGAQUFBwEBBCgwJjAkBggrBg +EFBQcwAYYYaHR0cDovL29jc3AudmVyaXNpZ24uY29tMG0GCCsG +AQUFBwEMBGEwX6FdoFswWTBXMFUWCWltYWdlL2dpZjAhMB8wBw +YFKw4DAhoEFI/l0xqGrI2Oa8PPgGrUSBgsexkuMCUWI2h0dHA6 +Ly9sb2dvLnZlcmlzaWduLmNvbS92c2xvZ28uZ2lmMA0GCSqGSI +b3DQEBBQUAA4GBAC9z4m/BniN+WVCJlXhv6QS9mFRTYOwIUtIK +KZKabarVsWfBYt7JGE5XPWmcsgNmkgO76E3FmNQvQtm20uCXEF +h2z+fWp8y72yXuQl3L8HSr0lTl6LpRD6TDPjT6UvKg5nr0j9x2 +Qr09/HjAt+teLR/FoF7foBGH+MNYEMh5KPjk +-----END CERTIFICATE----- + diff --git a/testing/btest/Traces/ssl.v3.trace b/testing/btest/Traces/ssl.v3.trace new file mode 100644 index 0000000000000000000000000000000000000000..3bcb9729a2cb2676b6261f2d66423a5fecc2240a GIT binary patch literal 190576 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 Y0=tqm^zJ6eTzeF{$-u-^F=$bU2uom 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

tVnEemL6>>%b5Hh)TnaA{ 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


ix>e?&m;PDFOyauOy8;wGMp@vGF_r$_g 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 literal 0 HcmV?d00001 diff --git a/testing/btest/scripts/policy/protocols/ssl/extract-certs-pem.bro b/testing/btest/scripts/policy/protocols/ssl/extract-certs-pem.bro new file mode 100644 index 0000000000..acc414a33c --- /dev/null +++ b/testing/btest/scripts/policy/protocols/ssl/extract-certs-pem.bro @@ -0,0 +1,6 @@ +# @TEST-EXEC: bro -r $TRACES/ssl.v3.trace %INPUT +# @TEST-EXEC: btest-diff certs-remote.pem + +@load protocols/ssl/extract-certs-pem + +redef SSL::extract_certs_pem = ALL_HOSTS; From 6865f0438aecaa0476ef5cd34aecab0c622fbc33 Mon Sep 17 00:00:00 2001 From: Robin Sommer Date: Sun, 17 Mar 2013 13:14:26 -0700 Subject: [PATCH 46/71] Renaming Base64Decoder to Base64Converter. It nows encodes and decodes. --- CHANGES | 6 +++++- VERSION | 2 +- src/Base64.cc | 20 ++++++++++---------- src/Base64.h | 6 +++--- src/MIME.cc | 2 +- src/MIME.h | 2 +- 6 files changed, 21 insertions(+), 17 deletions(-) diff --git a/CHANGES b/CHANGES index e1024cfdfb..cc6bf0c233 100644 --- a/CHANGES +++ b/CHANGES @@ -1,5 +1,5 @@ -2.1-373 | 2013-03-17 12:58:39 -0700 +2.1-375 | 2013-03-17 13:14:26 -0700 * Add base64 encoding functionality, including new BiFs encode_base64() and encode_base64_custom(). (Bernhard Amann) @@ -7,6 +7,10 @@ * Replace call to external "openssl" in extract-certs-pem.bro with that encode_base64(). (Bernhard Amann) + * Adding a test for extract-certs-pem.pem. (Robin Sommer) + + * Renaming Base64Decoder to Base64Converter. (Robin Sommer) + 2.1-366 | 2013-03-17 12:35:59 -0700 * Correctly handle DNS lookups for software version ranges. (Seth diff --git a/VERSION b/VERSION index dea19475d1..14ae5c58d9 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.1-373 +2.1-375 diff --git a/src/Base64.cc b/src/Base64.cc index 5b3968549a..d953ec3557 100644 --- a/src/Base64.cc +++ b/src/Base64.cc @@ -2,10 +2,10 @@ #include "Base64.h" #include -int Base64Decoder::default_base64_table[256]; -const string Base64Decoder::default_alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; +int Base64Converter::default_base64_table[256]; +const string Base64Converter::default_alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; -void Base64Decoder::Encode(int len, const unsigned char* data, int* pblen, char** pbuf) +void Base64Converter::Encode(int len, const unsigned char* data, int* pblen, char** pbuf) { int blen; char *buf; @@ -42,7 +42,7 @@ void Base64Decoder::Encode(int len, const unsigned char* data, int* pblen, char* } -int* Base64Decoder::InitBase64Table(const string& alphabet) +int* Base64Converter::InitBase64Table(const string& alphabet) { assert(alphabet.size() == 64); @@ -84,7 +84,7 @@ int* Base64Decoder::InitBase64Table(const string& alphabet) -Base64Decoder::Base64Decoder(Analyzer* arg_analyzer, const string& arg_alphabet) +Base64Converter::Base64Converter(Analyzer* arg_analyzer, const string& arg_alphabet) { if ( arg_alphabet.size() > 0 ) { @@ -103,13 +103,13 @@ Base64Decoder::Base64Decoder(Analyzer* arg_analyzer, const string& arg_alphabet) analyzer = arg_analyzer; } -Base64Decoder::~Base64Decoder() +Base64Converter::~Base64Converter() { if ( base64_table != default_base64_table ) delete base64_table; } -int Base64Decoder::Decode(int len, const char* data, int* pblen, char** pbuf) +int Base64Converter::Decode(int len, const char* data, int* pblen, char** pbuf) { int blen; char* buf; @@ -199,7 +199,7 @@ int Base64Decoder::Decode(int len, const char* data, int* pblen, char** pbuf) return dlen; } -int Base64Decoder::Done(int* pblen, char** pbuf) +int Base64Converter::Done(int* pblen, char** pbuf) { const char* padding = "==="; @@ -231,7 +231,7 @@ BroString* decode_base64(const BroString* s, const BroString* a) int rlen2, rlen = buf_len; char* rbuf2, *rbuf = new char[rlen]; - Base64Decoder dec(0, a ? a->CheckString() : ""); + Base64Converter dec(0, a ? a->CheckString() : ""); if ( dec.Decode(s->Len(), (const char*) s->Bytes(), &rlen, &rbuf) == -1 ) goto err; @@ -261,7 +261,7 @@ BroString* encode_base64(const BroString* s, const BroString* a) char* outbuf = 0; int outlen = 0; - Base64Decoder enc(0, a ? a->CheckString() : ""); + Base64Converter enc(0, a ? a->CheckString() : ""); enc.Encode(s->Len(), (const unsigned char*) s->Bytes(), &outlen, &outbuf); return new BroString(1, (u_char*)outbuf, outlen); diff --git a/src/Base64.h b/src/Base64.h index 8926a6d096..8cfeffde74 100644 --- a/src/Base64.h +++ b/src/Base64.h @@ -10,13 +10,13 @@ #include "Analyzer.h" // Maybe we should have a base class for generic decoders? -class Base64Decoder { +class Base64Converter { public: // is used for error reporting, and it should be zero when // the decoder is called by the built-in function decode_base64() or encode_base64(). // Empty alphabet indicates the default base64 alphabet. - Base64Decoder(Analyzer* analyzer, const string& alphabet = ""); - ~Base64Decoder(); + Base64Converter(Analyzer* analyzer, const string& alphabet = ""); + ~Base64Converter(); // A note on Decode(): // diff --git a/src/MIME.cc b/src/MIME.cc index 4a7c0268b0..ce60e74b89 100644 --- a/src/MIME.cc +++ b/src/MIME.cc @@ -810,7 +810,7 @@ void MIME_Entity::StartDecodeBase64() if ( base64_decoder ) reporter->InternalError("previous Base64 decoder not released!"); - base64_decoder = new Base64Decoder(message->GetAnalyzer()); + base64_decoder = new Base64Converter(message->GetAnalyzer()); } void MIME_Entity::FinishDecodeBase64() diff --git a/src/MIME.h b/src/MIME.h index ffff30e387..17ac7fde9f 100644 --- a/src/MIME.h +++ b/src/MIME.h @@ -163,7 +163,7 @@ protected: MIME_Entity* parent; MIME_Entity* current_child_entity; - Base64Decoder* base64_decoder; + Base64Converter* base64_decoder; int data_buf_length; char* data_buf_data; From c180d04db95135fb27f1d7adee17090e9f0cb38b Mon Sep 17 00:00:00 2001 From: Robin Sommer Date: Sun, 17 Mar 2013 13:56:17 -0700 Subject: [PATCH 47/71] Updating submodule(s). [nomail] --- aux/broctl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aux/broctl b/aux/broctl index 3d2172a60a..3e3ada3c2e 160000 --- a/aux/broctl +++ b/aux/broctl @@ -1 +1 @@ -Subproject commit 3d2172a60aa503745c92cef8ab3020d1dfc13f0d +Subproject commit 3e3ada3c2efebeda1278b8897859dd7c7d61e671 From c39223e226235e42acdb6411b1cfc19858939e8b Mon Sep 17 00:00:00 2001 From: Robin Sommer Date: Sun, 17 Mar 2013 17:35:16 -0700 Subject: [PATCH 48/71] Fixing potential leak in DNS error case. From Vlad. Closes #967. --- CHANGES | 4 ++++ VERSION | 2 +- src/nb_dns.c | 1 + 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGES b/CHANGES index cc6bf0c233..024276620f 100644 --- a/CHANGES +++ b/CHANGES @@ -1,4 +1,8 @@ +2.1-377 | 2013-03-17 17:36:09 -0700 + + * Fixing potential leak in DNS error case. (Vlad Grigorescu) + 2.1-375 | 2013-03-17 13:14:26 -0700 * Add base64 encoding functionality, including new BiFs diff --git a/VERSION b/VERSION index 14ae5c58d9..ccb2f89fe9 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.1-375 +2.1-377 diff --git a/src/nb_dns.c b/src/nb_dns.c index e8595e6837..33a00837e4 100644 --- a/src/nb_dns.c +++ b/src/nb_dns.c @@ -265,6 +265,7 @@ _nb_dns_mkquery(register struct nb_dns_info *nd, register const char *name, default: snprintf(errstr, NB_DNS_ERRSIZE, "_nb_dns_mkquery: bad family %d", atype); + free(ne); return (-1); } From 873d0549bf99f86d591a903361bee31b684cbc98 Mon Sep 17 00:00:00 2001 From: Bernhard Amann Date: Mon, 18 Mar 2013 09:01:03 -0700 Subject: [PATCH 49/71] fix gcc compile warning in base64 encoder --- src/Base64.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Base64.cc b/src/Base64.cc index d953ec3557..d3abd9b563 100644 --- a/src/Base64.cc +++ b/src/Base64.cc @@ -30,9 +30,9 @@ void Base64Converter::Encode(int len, const unsigned char* data, int* pblen, cha for ( int i = 0, j = 0; (i < len) && ( j < blen ); ) { - uint32_t bit32 = ((i < len ? data[i++] : 0) << 16) + - ((i < len ? data[i++] : 0 & i++) << 8) + - ( i < len ? data[i++] : 0 & i++); + uint32_t bit32 = data[i++] << 16; + bit32 += (i++ < len ? data[i-1] : 0) << 8; + bit32 += i++ < len ? data[i-1] : 0; buf[j++] = alphabet[(bit32 >> 18) & 0x3f]; buf[j++] = alphabet[(bit32 >> 12) & 0x3f]; From 4aab9921be3e5cfb7370beb4ce22e96eadd6f0ec Mon Sep 17 00:00:00 2001 From: Bernhard Amann Date: Mon, 18 Mar 2013 09:04:18 -0700 Subject: [PATCH 50/71] fix gcc compile warning in Benchmark reader --- src/input/readers/Benchmark.cc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/input/readers/Benchmark.cc b/src/input/readers/Benchmark.cc index 0c25092e08..0584037e05 100644 --- a/src/input/readers/Benchmark.cc +++ b/src/input/readers/Benchmark.cc @@ -8,6 +8,7 @@ #include #include #include +#include #include "../../threading/Manager.h" @@ -71,7 +72,9 @@ string Benchmark::RandomString(const int len) double Benchmark::CurrTime() { struct timeval tv; - assert ( gettimeofday(&tv, 0) >= 0 ); + if ( gettimeofday(&tv, 0) != 0 ) { + FatalError(Fmt("Could not get time: %d", errno)); + } return double(tv.tv_sec) + double(tv.tv_usec) / 1e6; } From 550c3c477d02df91e6c1ac772a98533d9d3700aa Mon Sep 17 00:00:00 2001 From: Jon Siwek Date: Mon, 18 Mar 2013 11:30:59 -0500 Subject: [PATCH 51/71] FileAnalysis: integrate w/ SMTP analyzer. More generally w/ MIME_Mail messages, which POP3 analyzer also uses. --- scripts/base/protocols/smtp/__load__.bro | 3 ++- scripts/base/protocols/smtp/file-analysis.bro | 18 ++++++++++++++++++ src/MIME.cc | 6 ++++++ 3 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 scripts/base/protocols/smtp/file-analysis.bro diff --git a/scripts/base/protocols/smtp/__load__.bro b/scripts/base/protocols/smtp/__load__.bro index b4f089eaf4..bac9cc118f 100644 --- a/scripts/base/protocols/smtp/__load__.bro +++ b/scripts/base/protocols/smtp/__load__.bro @@ -1,3 +1,4 @@ @load ./main @load ./entities -@load ./entities-excerpt \ No newline at end of file +@load ./entities-excerpt +@load ./file-analysis diff --git a/scripts/base/protocols/smtp/file-analysis.bro b/scripts/base/protocols/smtp/file-analysis.bro new file mode 100644 index 0000000000..6ba6981639 --- /dev/null +++ b/scripts/base/protocols/smtp/file-analysis.bro @@ -0,0 +1,18 @@ +@load ./main +@load ./entities +@load base/utils/conn-ids +@load base/frameworks/file-analysis/main + +module SMTP; + +function get_file_handle(c: connection, is_orig: bool): string + { + if ( ! c?$smtp ) return ""; + + return fmt("%s smtp(%s, %s)", c$start_time, c$smtp$trans_depth, + c$smtp_state$mime_level); + } + +redef FileAnalysis::handle_callbacks += { + [ANALYZER_SMTP] = get_file_handle, +}; diff --git a/src/MIME.cc b/src/MIME.cc index 4a7c0268b0..29cfc2f66e 100644 --- a/src/MIME.cc +++ b/src/MIME.cc @@ -5,6 +5,7 @@ #include "Event.h" #include "Reporter.h" #include "digest.h" +#include "file_analysis/Manager.h" // Here are a few things to do: // @@ -1019,6 +1020,8 @@ void MIME_Mail::Done() } MIME_Message::Done(); + + file_mgr->EndOfFile(analyzer->Conn()); } MIME_Mail::~MIME_Mail() @@ -1122,6 +1125,9 @@ void MIME_Mail::SubmitData(int len, const char* buf) analyzer->ConnectionEvent(mime_segment_data, vl); } + file_mgr->DataIn(reinterpret_cast(buf), len, + analyzer->Conn(), false); // is_orig param N/A + buffer_start = (buf + len) - (char*)data_buffer->Bytes(); } From b30211c178f1654f63a8615b9803b4879ba600c0 Mon Sep 17 00:00:00 2001 From: Jon Siwek Date: Mon, 18 Mar 2013 12:29:41 -0500 Subject: [PATCH 52/71] FileAnalysis: fix unit tests. --- doc/scripts/DocSourcesList.cmake | 5 +++++ .../Baseline/core.when-interpreter-exceptions/bro..stdout | 4 ++-- .../canonified_loaded_scripts.log | 1 + .../canonified_loaded_scripts.log | 4 ++++ testing/btest/core/when-interpreter-exceptions.bro | 2 +- 5 files changed, 13 insertions(+), 3 deletions(-) diff --git a/doc/scripts/DocSourcesList.cmake b/doc/scripts/DocSourcesList.cmake index 476f4dbf22..8afe2b5545 100644 --- a/doc/scripts/DocSourcesList.cmake +++ b/doc/scripts/DocSourcesList.cmake @@ -37,6 +37,7 @@ rest_target(${psd} base/frameworks/file-analysis/main.bro) rest_target(${psd} base/frameworks/input/main.bro) rest_target(${psd} base/frameworks/input/readers/ascii.bro) rest_target(${psd} base/frameworks/input/readers/benchmark.bro) +rest_target(${psd} base/frameworks/input/readers/binary.bro) rest_target(${psd} base/frameworks/input/readers/raw.bro) rest_target(${psd} base/frameworks/intel/cluster.bro) rest_target(${psd} base/frameworks/intel/input.bro) @@ -74,21 +75,25 @@ rest_target(${psd} base/protocols/conn/main.bro) rest_target(${psd} base/protocols/conn/polling.bro) rest_target(${psd} base/protocols/dns/consts.bro) rest_target(${psd} base/protocols/dns/main.bro) +rest_target(${psd} base/protocols/ftp/file-analysis.bro) rest_target(${psd} base/protocols/ftp/file-extract.bro) rest_target(${psd} base/protocols/ftp/gridftp.bro) rest_target(${psd} base/protocols/ftp/main.bro) rest_target(${psd} base/protocols/ftp/utils-commands.bro) +rest_target(${psd} base/protocols/http/file-analysis.bro) rest_target(${psd} base/protocols/http/file-extract.bro) rest_target(${psd} base/protocols/http/file-hash.bro) rest_target(${psd} base/protocols/http/file-ident.bro) rest_target(${psd} base/protocols/http/main.bro) rest_target(${psd} base/protocols/http/utils.bro) rest_target(${psd} base/protocols/irc/dcc-send.bro) +rest_target(${psd} base/protocols/irc/file-analysis.bro) rest_target(${psd} base/protocols/irc/main.bro) rest_target(${psd} base/protocols/modbus/consts.bro) rest_target(${psd} base/protocols/modbus/main.bro) rest_target(${psd} base/protocols/smtp/entities-excerpt.bro) rest_target(${psd} base/protocols/smtp/entities.bro) +rest_target(${psd} base/protocols/smtp/file-analysis.bro) rest_target(${psd} base/protocols/smtp/main.bro) rest_target(${psd} base/protocols/socks/consts.bro) rest_target(${psd} base/protocols/socks/main.bro) diff --git a/testing/btest/Baseline/core.when-interpreter-exceptions/bro..stdout b/testing/btest/Baseline/core.when-interpreter-exceptions/bro..stdout index 49eafc365f..792954f9a0 100644 --- a/testing/btest/Baseline/core.when-interpreter-exceptions/bro..stdout +++ b/testing/btest/Baseline/core.when-interpreter-exceptions/bro..stdout @@ -1,6 +1,6 @@ -timeout g(), F -timeout g(), T timeout +timeout g(), T +timeout g(), F g() done, no exception, T localhost resolved localhost resolved from f(), T diff --git a/testing/btest/Baseline/coverage.bare-load-baseline/canonified_loaded_scripts.log b/testing/btest/Baseline/coverage.bare-load-baseline/canonified_loaded_scripts.log index 018480850c..0c9f74db81 100644 --- a/testing/btest/Baseline/coverage.bare-load-baseline/canonified_loaded_scripts.log +++ b/testing/btest/Baseline/coverage.bare-load-baseline/canonified_loaded_scripts.log @@ -29,6 +29,7 @@ scripts/base/init-bare.bro scripts/base/frameworks/input/./readers/ascii.bro scripts/base/frameworks/input/./readers/raw.bro scripts/base/frameworks/input/./readers/benchmark.bro + scripts/base/frameworks/input/./readers/binary.bro scripts/base/frameworks/file-analysis/__load__.bro scripts/base/frameworks/file-analysis/./main.bro build/src/base/file_analysis.bif.bro diff --git a/testing/btest/Baseline/coverage.default-load-baseline/canonified_loaded_scripts.log b/testing/btest/Baseline/coverage.default-load-baseline/canonified_loaded_scripts.log index dc0ae1393e..a34ae7faa3 100644 --- a/testing/btest/Baseline/coverage.default-load-baseline/canonified_loaded_scripts.log +++ b/testing/btest/Baseline/coverage.default-load-baseline/canonified_loaded_scripts.log @@ -91,6 +91,7 @@ scripts/base/init-default.bro scripts/base/protocols/ftp/__load__.bro scripts/base/protocols/ftp/./utils-commands.bro scripts/base/protocols/ftp/./main.bro + scripts/base/protocols/ftp/./file-analysis.bro scripts/base/protocols/ftp/./file-extract.bro scripts/base/protocols/ftp/./gridftp.bro scripts/base/protocols/ssl/__load__.bro @@ -100,12 +101,14 @@ scripts/base/init-default.bro scripts/base/protocols/http/__load__.bro scripts/base/protocols/http/./main.bro scripts/base/protocols/http/./utils.bro + scripts/base/protocols/http/./file-analysis.bro scripts/base/protocols/http/./file-ident.bro scripts/base/protocols/http/./file-hash.bro scripts/base/protocols/http/./file-extract.bro scripts/base/protocols/irc/__load__.bro scripts/base/protocols/irc/./main.bro scripts/base/protocols/irc/./dcc-send.bro + scripts/base/protocols/irc/./file-analysis.bro scripts/base/protocols/modbus/__load__.bro scripts/base/protocols/modbus/./consts.bro scripts/base/protocols/modbus/./main.bro @@ -113,6 +116,7 @@ scripts/base/init-default.bro scripts/base/protocols/smtp/./main.bro scripts/base/protocols/smtp/./entities.bro scripts/base/protocols/smtp/./entities-excerpt.bro + scripts/base/protocols/smtp/./file-analysis.bro scripts/base/protocols/socks/__load__.bro scripts/base/protocols/socks/./consts.bro scripts/base/protocols/socks/./main.bro diff --git a/testing/btest/core/when-interpreter-exceptions.bro b/testing/btest/core/when-interpreter-exceptions.bro index b1880c5139..9b6f689dcf 100644 --- a/testing/btest/core/when-interpreter-exceptions.bro +++ b/testing/btest/core/when-interpreter-exceptions.bro @@ -1,6 +1,6 @@ # @TEST-EXEC: btest-bg-run bro bro -b --pseudo-realtime -r $TRACES/rotation.trace %INPUT # @TEST-EXEC: btest-bg-wait -k 3 -# @TEST-EXEC: TEST_DIFF_CANONIFIER="$SCRIPTS/diff-remove-abspath | $SCRIPTS/diff-remove-timestamps" btest-diff bro/.stderr +# @TEST-EXEC: TEST_DIFF_CANONIFIER="$SCRIPTS/diff-remove-abspath | $SCRIPTS/diff-remove-timestamps | $SCRIPTS/diff-sort" btest-diff bro/.stderr # @TEST-EXEC: btest-diff bro/.stdout # interpreter exceptions in "when" blocks shouldn't cause termination From 59ed5c75f190d4401d30172b9297b3592dd72acf Mon Sep 17 00:00:00 2001 From: Jon Siwek Date: Tue, 19 Mar 2013 15:50:05 -0500 Subject: [PATCH 53/71] FileAnalysis: add unit tests covering current protocol integration. And had to make various fixes/refinements after scrutinizing results. --- .../base/frameworks/file-analysis/main.bro | 4 +- scripts/base/protocols/ftp/file-analysis.bro | 1 + scripts/base/protocols/http/file-analysis.bro | 4 +- scripts/base/protocols/http/main.bro | 2 +- scripts/base/protocols/irc/file-analysis.bro | 1 + src/HTTP.cc | 66 +- src/HTTP.h | 3 +- src/MIME.cc | 2 + src/file_analysis/Hash.cc | 7 +- src/file_analysis/Hash.h | 1 + src/file_analysis/Info.cc | 3 +- .../out | 20 + .../thefile | 425 ++++++++++++ .../KPVibShQgUc-file | 159 +++++ .../LMA6EHLacYc-file | 11 + .../get-gzip.out | 20 + .../get.out | 21 + .../a.out | 14 + .../a.size | 1 + .../b.out | 25 + .../b.size | 1 + .../c.out | 14 + .../c.size | 1 + .../Ac8PLL9KL49-file | Bin 0 -> 94 bytes .../NV2MvAX0Is4-file | Bin 0 -> 2349 bytes .../WLJWC1FMBq9-file | 636 ++++++++++++++++++ .../YLndcRpw5Ge-file | Bin 0 -> 27579 bytes .../Z3kT1FyLnfk-file | 63 ++ .../out | 103 +++ .../LkolCF6OeHh-file | 17 + .../WDJLxTGN0m8-file | 1 + .../out | 42 ++ .../out | 20 + .../thefile | Bin 0 -> 42208 bytes .../out | 60 ++ .../thefile0 | 13 + .../thefile1 | 71 ++ .../thefile2 | 264 ++++++++ .../Traces/{ftp-ipv4.trace => ftp/ipv4.trace} | Bin .../Traces/{ipv6-ftp.trace => ftp/ipv6.trace} | Bin testing/btest/Traces/ftp/retr.trace | Bin 0 -> 22764 bytes .../100-continue.trace} | Bin testing/btest/Traces/http/206_example_a.pcap | Bin 0 -> 631110 bytes testing/btest/Traces/http/206_example_b.pcap | Bin 0 -> 1490467 bytes testing/btest/Traces/http/206_example_c.pcap | Bin 0 -> 629226 bytes .../byteranges.trace} | Bin testing/btest/Traces/http/get-gzip.trace | Bin 0 -> 1613 bytes testing/btest/Traces/http/get.trace | Bin 0 -> 6335 bytes .../methods.trace} | Bin .../pipelined-requests.trace} | Bin testing/btest/Traces/http/post.trace | Bin 0 -> 1871 bytes testing/btest/core/ipv6-flow-labels.test | 2 +- testing/btest/core/leaks/vector-val-bifs.test | 2 +- .../base/frameworks/file-analysis/ftp.bro | 68 ++ .../frameworks/file-analysis/http/get.bro | 76 +++ .../file-analysis/http/partial-content.bro | 89 +++ .../file-analysis/http/pipeline.bro | 77 +++ .../frameworks/file-analysis/http/post.bro | 74 ++ .../base/frameworks/file-analysis/irc.bro | 68 ++ .../base/frameworks/file-analysis/smtp.bro | 74 ++ .../conn/contents-default-extract.test | 2 +- .../scripts/base/protocols/conn/polling.test | 4 +- .../scripts/base/protocols/ftp/ftp-ipv4.bro | 2 +- .../scripts/base/protocols/ftp/ftp-ipv6.bro | 2 +- .../base/protocols/http/100-continue.bro | 2 +- .../base/protocols/http/http-header-crlf.bro | 2 +- .../base/protocols/http/http-methods.bro | 2 +- .../base/protocols/http/http-mime-and-md5.bro | 2 +- .../base/protocols/http/http-pipelining.bro | 2 +- .../btest/signatures/bad-eval-condition.bro | 2 +- testing/btest/signatures/dpd.bro | 8 +- testing/btest/signatures/eval-condition.bro | 2 +- 72 files changed, 2605 insertions(+), 53 deletions(-) create mode 100644 testing/btest/Baseline/scripts.base.frameworks.file-analysis.ftp/out create mode 100644 testing/btest/Baseline/scripts.base.frameworks.file-analysis.ftp/thefile create mode 100644 testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.get/KPVibShQgUc-file create mode 100644 testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.get/LMA6EHLacYc-file create mode 100644 testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.get/get-gzip.out create mode 100644 testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.get/get.out create mode 100644 testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.partial-content/a.out create mode 100644 testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.partial-content/a.size create mode 100644 testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.partial-content/b.out create mode 100644 testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.partial-content/b.size create mode 100644 testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.partial-content/c.out create mode 100644 testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.partial-content/c.size create mode 100644 testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.pipeline/Ac8PLL9KL49-file create mode 100644 testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.pipeline/NV2MvAX0Is4-file create mode 100644 testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.pipeline/WLJWC1FMBq9-file create mode 100644 testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.pipeline/YLndcRpw5Ge-file create mode 100644 testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.pipeline/Z3kT1FyLnfk-file create mode 100644 testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.pipeline/out create mode 100644 testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.post/LkolCF6OeHh-file create mode 100644 testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.post/WDJLxTGN0m8-file create mode 100644 testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.post/out create mode 100644 testing/btest/Baseline/scripts.base.frameworks.file-analysis.irc/out create mode 100644 testing/btest/Baseline/scripts.base.frameworks.file-analysis.irc/thefile create mode 100644 testing/btest/Baseline/scripts.base.frameworks.file-analysis.smtp/out create mode 100644 testing/btest/Baseline/scripts.base.frameworks.file-analysis.smtp/thefile0 create mode 100644 testing/btest/Baseline/scripts.base.frameworks.file-analysis.smtp/thefile1 create mode 100644 testing/btest/Baseline/scripts.base.frameworks.file-analysis.smtp/thefile2 rename testing/btest/Traces/{ftp-ipv4.trace => ftp/ipv4.trace} (100%) rename testing/btest/Traces/{ipv6-ftp.trace => ftp/ipv6.trace} (100%) create mode 100644 testing/btest/Traces/ftp/retr.trace rename testing/btest/Traces/{http-100-continue.trace => http/100-continue.trace} (100%) create mode 100644 testing/btest/Traces/http/206_example_a.pcap create mode 100644 testing/btest/Traces/http/206_example_b.pcap create mode 100644 testing/btest/Traces/http/206_example_c.pcap rename testing/btest/Traces/{http-byteranges.trace => http/byteranges.trace} (100%) create mode 100644 testing/btest/Traces/http/get-gzip.trace create mode 100644 testing/btest/Traces/http/get.trace rename testing/btest/Traces/{http-methods.trace => http/methods.trace} (100%) rename testing/btest/Traces/{http-pipelined-requests.trace => http/pipelined-requests.trace} (100%) create mode 100644 testing/btest/Traces/http/post.trace create mode 100644 testing/btest/scripts/base/frameworks/file-analysis/ftp.bro create mode 100644 testing/btest/scripts/base/frameworks/file-analysis/http/get.bro create mode 100644 testing/btest/scripts/base/frameworks/file-analysis/http/partial-content.bro create mode 100644 testing/btest/scripts/base/frameworks/file-analysis/http/pipeline.bro create mode 100644 testing/btest/scripts/base/frameworks/file-analysis/http/post.bro create mode 100644 testing/btest/scripts/base/frameworks/file-analysis/irc.bro create mode 100644 testing/btest/scripts/base/frameworks/file-analysis/smtp.bro diff --git a/scripts/base/frameworks/file-analysis/main.bro b/scripts/base/frameworks/file-analysis/main.bro index 00ff5b4120..08597aa157 100644 --- a/scripts/base/frameworks/file-analysis/main.bro +++ b/scripts/base/frameworks/file-analysis/main.bro @@ -22,9 +22,7 @@ export { ## The default amount of time file analysis will wait for new file data ## before giving up. - ## TODO: what's a reasonable default? - #const default_timeout_interval: interval = 2 mins &redef; - const default_timeout_interval: interval = 10 sec &redef; + const default_timeout_interval: interval = 2 mins &redef; # Needed a forward declaration for event parameters... type Info: record {}; diff --git a/scripts/base/protocols/ftp/file-analysis.bro b/scripts/base/protocols/ftp/file-analysis.bro index c124c1bf25..68bde54e1d 100644 --- a/scripts/base/protocols/ftp/file-analysis.bro +++ b/scripts/base/protocols/ftp/file-analysis.bro @@ -5,6 +5,7 @@ redef FileAnalysis::service_handle_callbacks += { ["ftp-data"] = function(c: connection, is_orig: bool): string { + if ( is_orig ) return ""; return fmt("%s ftp-data: %s", c$start_time, id_string(c$id)); }, }; diff --git a/scripts/base/protocols/http/file-analysis.bro b/scripts/base/protocols/http/file-analysis.bro index a0390710a8..b1241b4107 100644 --- a/scripts/base/protocols/http/file-analysis.bro +++ b/scripts/base/protocols/http/file-analysis.bro @@ -10,8 +10,8 @@ function get_file_handle(c: connection, is_orig: bool): string if ( ! c?$http ) return ""; if ( c$http$range_request ) - return fmt("%s http(%s): %s: %s", c$start_time, is_orig, - c$id$orig_h, build_url(c$http)); + return fmt("http(%s): %s: %s", is_orig, c$id$orig_h, + build_url(c$http)); return fmt("%s http(%s, %s): %s", c$start_time, is_orig, c$http$trans_depth, id_string(c$id)); diff --git a/scripts/base/protocols/http/main.bro b/scripts/base/protocols/http/main.bro index 260c0e525a..a1771c8e77 100644 --- a/scripts/base/protocols/http/main.bro +++ b/scripts/base/protocols/http/main.bro @@ -74,7 +74,7 @@ export { ## Indicates if this request can assume 206 partial content in ## response. - range_request: bool &default=F; + range_request: bool &default=F; }; ## Structure to maintain state for an HTTP connection with multiple diff --git a/scripts/base/protocols/irc/file-analysis.bro b/scripts/base/protocols/irc/file-analysis.bro index dbb06da3ba..dc6b5e588a 100644 --- a/scripts/base/protocols/irc/file-analysis.bro +++ b/scripts/base/protocols/irc/file-analysis.bro @@ -5,6 +5,7 @@ redef FileAnalysis::service_handle_callbacks += { ["irc-dcc-data"] = function(c: connection, is_orig: bool): string { + if ( is_orig ) return ""; return fmt("%s irc-dcc-data: %s", c$start_time, id_string(c$id)); }, }; diff --git a/src/HTTP.cc b/src/HTTP.cc index 4ac6652ca1..7110e2d1fa 100644 --- a/src/HTTP.cc +++ b/src/HTTP.cc @@ -47,7 +47,8 @@ HTTP_Entity::HTTP_Entity(HTTP_Message *arg_message, MIME_Entity* parent_entity, zip = 0; is_partial_content = false; offset = 0; - content_size = -1; // unspecified + instance_length = -1; // unspecified + send_size = true; } void HTTP_Entity::EndOfData() @@ -282,27 +283,33 @@ void HTTP_Entity::SubmitData(int len, const char* buf) if ( deliver_body ) MIME_Entity::SubmitData(len, buf); + if ( send_size && ( encoding == GZIP || encoding == DEFLATE ) ) + // Auto-decompress in DeliverBody invalidates sizes derived from headers + send_size = false; + if ( is_partial_content ) { + if ( send_size && instance_length > 0 ) + file_mgr->SetSize(instance_length, + http_message->MyHTTP_Analyzer()->Conn(), + http_message->IsOrig()); file_mgr->DataIn(reinterpret_cast(buf), len, offset, - http_message->MyHTTP_Analyzer()->Conn(), - http_message->IsOrig()); + http_message->MyHTTP_Analyzer()->Conn(), + http_message->IsOrig()); offset += len; - if ( content_size >= 0 ) - file_mgr->SetSize(content_size, - http_message->MyHTTP_Analyzer()->Conn(), - http_message->IsOrig()); } else { - file_mgr->DataIn(reinterpret_cast(buf), len, - http_message->MyHTTP_Analyzer()->Conn(), - http_message->IsOrig()); - if ( content_length >= 0 ) + if ( send_size && content_length > 0 ) file_mgr->SetSize(content_length, - http_message->MyHTTP_Analyzer()->Conn(), - http_message->IsOrig()); + http_message->MyHTTP_Analyzer()->Conn(), + http_message->IsOrig()); + file_mgr->DataIn(reinterpret_cast(buf), len, + http_message->MyHTTP_Analyzer()->Conn(), + http_message->IsOrig()); } + + send_size = false; } void HTTP_Entity::SetPlainDelivery(int64_t length) @@ -333,9 +340,7 @@ void HTTP_Entity::SubmitHeader(MIME_Header* h) } // Figure out content-length for HTTP 206 Partial Content response - // that uses multipart/byteranges content-type. - else if ( strcasecmp_n(h->get_name(), "content-range") == 0 && Parent() && - Parent()->MIMEContentType() == CONTENT_TYPE_MULTIPART && + else if ( strcasecmp_n(h->get_name(), "content-range") == 0 && http_message->MyHTTP_Analyzer()->HTTP_ReplyCode() == 206 ) { data_chunk_t vt = h->get_value_token(); @@ -359,7 +364,7 @@ void HTTP_Entity::SubmitHeader(MIME_Header* h) } string byte_range_resp_spec = byte_range.substr(0, p); - string instance_length = byte_range.substr(p + 1); + string instance_length_str = byte_range.substr(p + 1); p = byte_range_resp_spec.find("-"); if ( p == string::npos ) @@ -374,7 +379,7 @@ void HTTP_Entity::SubmitHeader(MIME_Header* h) if ( DEBUG_http ) DEBUG_MSG("Parsed Content-Range: %s %s-%s/%s\n", byte_unit.c_str(), first_byte_pos.c_str(), last_byte_pos.c_str(), - instance_length.c_str()); + instance_length_str.c_str()); int64_t f, l; atoi_n(first_byte_pos.size(), first_byte_pos.c_str(), 0, 10, f); @@ -386,9 +391,13 @@ void HTTP_Entity::SubmitHeader(MIME_Header* h) if ( len > 0 ) { - if ( instance_length != "*" ) - atoi_n(instance_length.size(), instance_length.c_str(), 0, 10, - content_size); + if ( instance_length_str != "*" ) + { + if ( ! atoi_n(instance_length_str.size(), + instance_length_str.c_str(), 0, 10, + instance_length) ) + instance_length = 0; + } is_partial_content = true; offset = f; content_length = len; @@ -554,8 +563,11 @@ void HTTP_Message::Done(const int interrupted, const char* detail) GetAnalyzer()->ConnectionEvent(http_message_done, vl); } + if ( is_orig || MyHTTP_Analyzer()->HTTP_ReplyCode() != 206 ) + // multipart/byteranges may span multiple connections + file_mgr->EndOfFile(MyHTTP_Analyzer()->Conn(), is_orig); + MyHTTP_Analyzer()->HTTP_MessageDone(is_orig, this); - file_mgr->EndOfFile(MyHTTP_Analyzer()->Conn(), is_orig); delete_strings(buffers); @@ -620,8 +632,7 @@ void HTTP_Message::EndEntity(MIME_Entity* entity) // SubmitAllHeaders (through EndOfData). if ( entity == top_level ) Done(); - else if ( ! ( current_entity->MIMEContentType() == CONTENT_TYPE_MULTIPART && - MyHTTP_Analyzer()->HTTP_ReplyCode() == 206 ) ) + else if ( is_orig || MyHTTP_Analyzer()->HTTP_ReplyCode() != 206 ) file_mgr->EndOfFile(MyHTTP_Analyzer()->Conn(), is_orig); } @@ -884,7 +895,12 @@ void HTTP_Analyzer::Done() unanswered_requests.pop(); } - file_mgr->EndOfFile(Conn()); + file_mgr->EndOfFile(Conn(), true); + /* TODO: this might be nice to have, but reply code is cleared by now. + if ( HTTP_ReplyCode() != 206 ) + // multipart/byteranges may span multiple connections + file_mgr->EndOfFile(Conn(), false); + */ } void HTTP_Analyzer::DeliverStream(int len, const u_char* data, bool is_orig) diff --git a/src/HTTP.h b/src/HTTP.h index a65a93e417..81c7385825 100644 --- a/src/HTTP.h +++ b/src/HTTP.h @@ -57,7 +57,8 @@ protected: ZIP_Analyzer* zip; bool is_partial_content; uint64_t offset; - int64_t content_size; // total size of content specified by content-range + int64_t instance_length; // total length indicated by content-range + bool send_size; // whether to send size indication to FAF MIME_Entity* NewChildEntity() { return new HTTP_Entity(http_message, this, 1); } diff --git a/src/MIME.cc b/src/MIME.cc index 0ebded78c5..d5610c2bcb 100644 --- a/src/MIME.cc +++ b/src/MIME.cc @@ -1068,6 +1068,8 @@ void MIME_Mail::EndEntity(MIME_Entity* /* entity */) vl->append(analyzer->BuildConnVal()); analyzer->ConnectionEvent(mime_end_entity, vl); } + + file_mgr->EndOfFile(analyzer->Conn()); } void MIME_Mail::SubmitHeader(MIME_Header* h) diff --git a/src/file_analysis/Hash.cc b/src/file_analysis/Hash.cc index 28662559af..145974e8cc 100644 --- a/src/file_analysis/Hash.cc +++ b/src/file_analysis/Hash.cc @@ -6,7 +6,7 @@ using namespace file_analysis; Hash::Hash(RecordVal* args, Info* info, HashVal* hv, const char* field) - : Action(args, info), hash(hv) + : Action(args, info), hash(hv), fed(false) { using BifType::Record::FileAnalysis::ActionResults; if ( (result_field_idx = ActionResults->FieldOffset(field)) < 0 ) @@ -23,6 +23,9 @@ bool Hash::DeliverStream(const u_char* data, uint64 len) { if ( ! hash->IsValid() ) return false; + if ( ! fed ) + fed = len > 0; + hash->Feed(data, len); return true; } @@ -40,7 +43,7 @@ bool Hash::Undelivered(uint64 offset, uint64 len) void Hash::Finalize() { - if ( ! hash->IsValid() ) return; + if ( ! hash->IsValid() || ! fed ) return; StringVal* sv = hash->Get(); info->GetResults(args)->Assign(result_field_idx, sv); diff --git a/src/file_analysis/Hash.h b/src/file_analysis/Hash.h index 18c4166237..90345771ba 100644 --- a/src/file_analysis/Hash.h +++ b/src/file_analysis/Hash.h @@ -31,6 +31,7 @@ protected: void Finalize(); HashVal* hash; + bool fed; int result_field_idx; }; diff --git a/src/file_analysis/Info.cc b/src/file_analysis/Info.cc index d3a89fd825..0eda8d6104 100644 --- a/src/file_analysis/Info.cc +++ b/src/file_analysis/Info.cc @@ -97,7 +97,8 @@ Info::Info(const string& unique, Connection* conn) reinterpret_cast(hash)); uitoa_n(hash[0], id, sizeof(id), 62); - DBG_LOG(DBG_FILE_ANALYSIS, "Creating new Info object %s", id); + DBG_LOG(DBG_FILE_ANALYSIS, "Creating new Info object %s (%s)", id, + unique.c_str()); val = new RecordVal(BifType::Record::FileAnalysis::Info); val->Assign(file_id_idx, new StringVal(id)); diff --git a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.ftp/out b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.ftp/out new file mode 100644 index 0000000000..4492b5a867 --- /dev/null +++ b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.ftp/out @@ -0,0 +1,20 @@ +FileAnalysis::TRIGGER_NEW +XRXY932iwza, 0, 0 +FileAnalysis::TRIGGER_BOF +FileAnalysis::TRIGGER_BOF_BUFFER +The Nationa +FileAnalysis::TRIGGER_TYPE +file type is set +mime type is set +FileAnalysis::TRIGGER_EOF +XRXY932iwza, 16557, 0 +{ +arKYeMETxOg +} +{ +[orig_h=141.142.228.5, orig_p=50737/tcp, resp_h=141.142.192.162, resp_p=38141/tcp] +} +source: ftp-data +SHA1: 44586aed07cfe19cad25076af98f535585cd5797 +MD5: 7192a8075196267203adb3dfaa5c908d +SHA256: 202674eba48e832690a4475113acf8b16a3f6c82c04c94b36bb2c7ce457ac8d2 diff --git a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.ftp/thefile b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.ftp/thefile new file mode 100644 index 0000000000..ffa6b5b161 --- /dev/null +++ b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.ftp/thefile @@ -0,0 +1,425 @@ +The National Center for Supercomputing Applications 1/28/92 +Anonymous FTP Server General Information + +This file contains information about the general structure, as well as +information on how to obtain files and documentation from the FTP server. +NCSA software and documentation can also be obtained through the the U.S. +Mail. Instructions are included for using this method as well. + +Information about the Software Development Group and NCSA software can be +found in the /ncsapubs directory in a file called TechResCatalog. + + +THE UNIVERSITY OF ILLINOIS GIVES NO WARRANTY, EXPRESSED OR IMPLIED, FOR THE +SOFTWARE AND/OR DOCUMENTATION PROVIDED, INCLUDING, WITHOUT LIMITATION, +WARRANTY OF MERCHANTABILITY AND WARRANTY OF FITNESS FOR A PARTICULAR PURPOSE. + + +_____________________________________________________________ + +FTP INSTRUCTIONS + +Most NCSA Software is released into the public domain. That is, for these +programs, the public domain has all rights for future licensing, resale, +and publication of available packages. If you are connected to Internet +(NSFNET, ARPANET, MILNET, etc) you may download NCSA software and documentation and source code if it is available, at no charge from the anonymous file +transfer protocol (FTP) server at NCSA where you got this file. The procedure +you should follow to do so is presented below. If you have any questions +regarding this procedure or whether you are connected to Internet, consult your local system administration or network expert. + +1. Log on to a host at your site that is connected to the Internet and is + running software supporting the FTP command. + +2. Invoke FTP on most systems by entering the Internet address of the server. + Type the following at the shell (usually "%") prompt: + + % ftp ftp.ncsa.uiuc.edu + +3. Log in by entering anonymous for the name. + +4. Enter your local email address (login@host) for the password. + +5. Enter the following at the "ftp>" prompt to copy a text file from our + server to your local host: + + ftp> get filename + + where "filename" is the name of the file you want a copy of. For example, + to get a copy of this file from the server enter: + + ftp> get README.FIRST + + To get a copy of our software brochure, enter: + + ftp> cd ncsapubs + get TechResCatalog + + NOTE: Some of the filenames on the server are rather long to aid in + identification. Some operating systems may have problems with names + this long. To change the name the file will have on your local + machine type the following at the "ftp>" prompt ("remoteName" is the + name of the file on the server and "localName" is the name you want + the file to have on your local machine): + + ftp> get remoteName localName + + Example: + + ftp> get TechResCatalog catalog.txt + + +6. For files that are not text files (almost everything else) you will need to + specify that you want to transfer binary files. Do this by typing the + following at the "ftp>" prompt: + + ftp> type binary + + You can now use the "get" command to download binary files. To switch back + to ASCII text transfers type: + + ftp> type ascii + +7. The "ls" and "cd" commands can be used at the "ftp>" prompt to list and + change directories as in the shell. + +8. Enter "quit" or "bye" to exit FTP and return to your local host. + + +_____________________________________________________________ + +FTP SOFTWARE BY MAIL + +To obtain an order form, send your request to the following address: + +FTP Archive Tapes +c/o Debbie Shirley +152 Computing Applications Building +605 East Springfield Avenue +Champaign, IL 61820 + +or call: +Debbie at (217) 244-4130 + + +_____________________________________________________________ + +VIRUS INFORMATION + +The Software Development Group at NCSA is very virus-conscious. We routinely +check our machines for viruses and recommend that you do so also. For the +Macintoshes we use Disinfectant. You can obtain a copy of Disinfectant from +the /Mac/Utilities directory. + +If you use Microsoft DOS or Windows you can find the latest virus scan from +the anonymous site oak.oakland.edu in the /SimTel/msdos/virus directory. + +_____________________________________________________________ + +GENERAL INFORMATION + + +DIRECTORY STRUCTURE + +The FTP server is organized as specified below: + + /Mac Macintosh software + /PC IBM PC software + /Unix Software for machines running UNIX or equivalent OS + /Unix/SGI Software that primarily runs on Silicon Graphics + machines only + /Visualization Software tools for data visualization. + /Web World Wide Web tools, including Mosaic, httpd, + and html editors. + /HDF Hierarchical Data Format applications and tools + /Samples Samples that can be used with most of NCSA software + tools + /Documentation Currently being constructed, check each application's + directory for documentation + /ncsapubs Information produced by the Publications group, + including Metacenter announcements, data link & access, + a software listing, start-up guides, and other + reference documents. + /misc Miscellaneous documentation and software + /incoming directory for contributions + /outgoing swap directory + +Information for a particular application can be found in the README file, +located in the same directory as the application. The README files contain +information on new features, known bugs, compile information, and other +important notes. + +All directories on the FTP server contain an INDEX file. These files outline +the hierarchical structure of the directory and (recursively) all files and +directories contained within it. The INDEX at the root level contains the +structure of the enire server listing all files and directories on it. The +INDEX file in each software directory contains additional information about +each file. The letter in parenthesis after the file name indicates how the +file should be downloaded: ascii (a), binary (b), or mac binary (m). + +The "misc" directories found in some software tool directories contain +supplementary code or other information. Refer to the README file in that +directory for a description of what is contained within the "misc" directory. + +The "contrib" directories contain contributed software. This directory usually +contains NCSA source that has been modified by people outside of NCSA as well +as binaries compiled on different platforms not available to the Software +Development Group. If you have modified NCSA software or would like to share +some code please contact the developer of the source so arrangemnts can be +made to upload it to the "incoming" directory. If you are downloading +software from the "contrib" directory please note that this software is not +supported by NCSA and has not been checked for viruses (see statement on +viruses above). NCSA may not be held responsible for anything resulting from +use of the contributed software. *** RUN AT YOUR OWN RISK *** + + +FILE NAMES + +All file names consist of the name of the tool, the version number, and one or +more extensions. The extensions identify what type of information is contained +in the file, and what format it is in. For example, here is a list of files in +the /Mac/DataScope directory: + + DataScope2.0.1.asc.tar.Z + DataScope2.0.1.src.sit.hqx + DataScope2.0.1.smp.sit.hqx + DataScope2.0.1.mac.sit.hqx + DataScope2.0.1.msw.sit.hqx + +The first three character extension indicates what type of data can be found in +that file (ASCII documentation, source, samples, etc.). The other extensions +indicate what format the files are in. The extensions ".tar" and ".sit" +indicate types of archives, and the ".Z" and ".hqx" indicate compression and +encoding schemes. (See below for instructions on extracting files that have +been archived and/or compressed.) Following are a list of extensions and their +meanings: + + .sn3 Sun 3 executables + .sn4 Sun 4 executables + .386 Sun 386i executables + .sgi Silicon Graphics Iris executables + .dgl Silicon Graphics Iris using DGL executables + .rs6 IBM RS6000 executables + .cv2 Convex 2 executables + .cv3 Convex 3 executables + .cr2 Cray 2 executables + .crY CrayYMP executables + .d31 DEC 3100 executables + .m88 Motorola 88k executables + .m68 Motorola 68k executables + .exe IBM PC executables + .mac Macintosh executables + .src source code + .smp sample files + .asc ASCII text documentation + .msw Microsoft Word documentation + .ps postscript documentation + .man formatted man page + .shar Bourne shell archive + .sit archive created by Macintosh application, StuffIt + .hqx encoded with Macintosh application, BinHex + .sea Self extracting Macintosh archive + .tar archive created with UNIX tar command + .Z compressed with UNIX compress command + +The files in the PC directory are the only exception to this naming convention. +In order to conform with the DOS convention of eight character file names and +one, three character extension, the names for PC files are slightly different. +Whenever possible the scheme outlined above is used, but the names are usually +abbreviated and all but one of the dots "." have been omitted. + + +_______________________________________________________________________________ +EXTRACTING ARCHIVED FILES + + +INSTRUCTIONS FOR MACINTOSH FILES + +If a file ends with the extension ".sit" it must be unstuffed with either the +shareware program StuffIt or the Public Domain program UnStuffIt. Files ending +with the ".hqx" must be decoded with BinHex. These programs can be found on +the FTP server in the /Mac/Utilities directory. Note that the BinHex program +must be downloaded with MacBinary enabled, and the StuffIt program must be +decoded before it can be used. Files downloaded from the server may be both +Stuffed (".sit" extension) and BinHexed (".hqx" extension). These files must +be first decoded and then unstuffed. + +To decode a file with the ".hqx" extension (a BinHexed file): + + 1. Download the file to your Macintosh. + 2. Start the application BinHex by double-clicking on it. + 3. From the "File" menu in BinHex, choose "UpLoad -> Application". + 4. Choose the ".hqx" file to be decoded and select "Open". + 5. The suggested file name will appear in a dialog box. + 6. Select "Save" to decode the file. + +To uncompress a file with the ".sit" extension (a Stuffed file): + + 1. Download the file to your Macintosh. + 2. Start the application Stuffit by double-clicking on it. + 3. From the "File" menu in Stuffit, choose "Open Archive...". + 4. Choose the ".sit" file to be unstuffed and select "Open". A window with + all the files contained in the stuffed file will appear. + 5. Choose "Select All" in the "Edit" menu to select all of the files. + 6. Click on the "Extract" box at the bottom of the window. + 7. Select "Save All" in the dialog box to save all the selected files in + the current directory. + + +INSTRUCTIONS FOR PC FILES + +Most IBM PC files are archived and compressed using the pkzip utility. +(If you do not have the pkzip utility on your PC, you may obtain it from the +FTP server by anonymous ftp. The file you need is called pkz110.exe and it +is located in /PC/Telnet/contributions. Set the ftp mode to binary and "get" +the file pkz110.exe. Then, on your PC, run PKZ110.EXE with no arguments and +several files will be self-extracted, including one called PKUNZIP.EXE. It +may then be convenient to copy PKUNZIP.EXE to the directory where you have +placed, or are going to place, your Telnet files.) +To extract these files, first download the file with the ".zip" extension to +your PC and then type the following at the DOS prompt: + + > pkunzip -d filename.zip + +where "filename" is the name of the file you want to unarchive. + + +INSTRUCTIONS FOR UNIX FILES + +Most files on the FTP server will be both tarred and compressed. For more +information on the "tar" and "compress" commands you can type "man tar" and +"man compress" at your shell prompt to see the online manual page for these +commands, or ask your system administrator for help. You should first +uncompress and then unarchive files ending in ".tar.Z" with the following +procedure. + +Files with the ".Z" extension have been compressed with the UNIX "compress" +command. To uncompress these files type the following at the shell prompt: + + % uncompress filename.Z + +where "filename.Z" is the name of the file ending with the ".Z" extension that +you wish to uncompress. + +Files with the ".tar" extension have been archived with the UNIX "tar" command. +To extract the files type the following at the shell prompt: + + % tar xf filename.tar + +Some files are archived using a shell archive utility and are indicated as such +with the ".shar" extension. To extract the files type the following at the +shell prompt: + + % sh filename.shar + + +_______________________________________________________________________________ +DOCUMENTATION + +NCSA offers users several documentation formats for its programs including +ASCII text, Microsoft Word, and postscript. If one of these formats does not +fit your needs, documentaion can be obtained through the mail at the following +address: + +Documentation Orders +c/o Debbie Shirley +152 Computing Applications Building +605 East Springfield Avenue +Champaign, IL 61820 + +or call: + +(217) 244-4130 + +Members of the Software Development Group within NCSA are currently working +on videotapes that demonstrate and also offer tutorials for NCSA programs. A +note will be posted here when these tapes are available for distribution. + + +ASCII FORMAT + +ASCII text files are provided for all software and are indicated with the +".asc" extension. Helpful figures and diagrams obviously cannot be included +in this form of documentation. We suggest you use the other forms of +documentation if possible. + + +MICROSOFT WORD FORMAT + +If you are a Macintosh user, please download documents with the ".msw" +extension. These files should also be stuffed and BinHexed (information on +extracting these files from the archive is contained earlier in this file). +The documents can be previewed and printed using the Microsoft Word +application. Word documents contain text, images, and formatting. + + +POSTSCRIPT FORMAT + +If you are a UNIX user and/or have access to a postscript printer, please +download files with the ".pos" extension. The documents can be previewed using +a poscript previewer or can be printed directly to a poscript printer using a +command like "lpr". + + +_______________________________________________________________________________ +BUG REPORTS AND SUPPORT + +The Software Development Group at NCSA is very interested in how the software +tools developed here are being used. Please send any comments or suggestions +you may have to the appropriate address. + +NOTE: This is a new kind of shareware. You share your science and +successes with us, and we can get more resources to share more +NCSA software with you. + +If you want to see more NCSA software, please send us a letter, + email or US Mail, telling us what you are doing with our software. +We need to know: + + (1) What science you are working on - an abstract of your + work would be fine. + + (2) How NCSA software has helped you, for example, by increasing + your productivity or allowing you to do things you could + not do before. + +We encourage you to cite the use of any NCSA software you have used in +your publications. A bibliography of your work would be extremely +helpful. + + +NCSA Telnet for the Macintosh: Please allow ***time*** for a response. + +Bug reports, questions, suggestions may be sent to the addresses below. + + mactelnet@ncsa.uiuc.edu (Internet) + +NCSA Telnet for PCs: Please allow ***time*** for a response. + +Bug reports, questions, suggestions may be sent to: + pctelnet@ncsa.uiuc.edu (Internet) + +All other NCSA software: + +Bug reports should be emailed to the adresses below. Be sure to check the +BUGS NOTES section of the README file before sending email. +Please allow ***time*** for a response. + + bugs@ncsa.uiuc.edu (Internet) + + +Questions regarding NCSA developed software tools may be sent to the address +below. Please allow ***time*** for a response. + + softdev@ncsa.uiuc.edu (Internet) +_______________________________________________________________________________ +COPYRIGHTS AND TRADEMARKS + +Apple +Motorola +Digital Equipment Corp. +Silicon Graphics Inc. +International Business Machines +Sun Microsystems +UNIX +StuffIt +Microsoft diff --git a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.get/KPVibShQgUc-file b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.get/KPVibShQgUc-file new file mode 100644 index 0000000000..e68dee74e6 --- /dev/null +++ b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.get/KPVibShQgUc-file @@ -0,0 +1,159 @@ + +0.26 | 2012-08-24 15:10:04 -0700 + + * Fixing update-changes, which could pick the wrong control file. (Robin Sommer) + + * Fixing GPG signing script. (Robin Sommer) + +0.25 | 2012-08-01 13:55:46 -0500 + + * Fix configure script to exit with non-zero status on error (Jon Siwek) + +0.24 | 2012-07-05 12:50:43 -0700 + + * Raise minimum required CMake version to 2.6.3 (Jon Siwek) + + * Adding script to delete old fully-merged branches. (Robin Sommer) + +0.23-2 | 2012-01-25 13:24:01 -0800 + + * Fix a bro-cut error message. (Daniel Thayer) + +0.23 | 2012-01-11 12:16:11 -0800 + + * Tweaks to release scripts, plus a new one for signing files. + (Robin Sommer) + +0.22 | 2012-01-10 16:45:19 -0800 + + * Tweaks for OpenBSD support. (Jon Siwek) + + * bro-cut extensions and fixes. (Robin Sommer) + + - If no field names are given on the command line, we now pass through + all fields. Adresses #657. + + - Removing some GNUism from awk script. Addresses #653. + + - Added option for time output in UTC. Addresses #668. + + - Added output field separator option -F. Addresses #649. + + - Fixing option -c: only some header lines were passed through + rather than all. (Robin Sommer) + + * Fix parallel make portability. (Jon Siwek) + +0.21-9 | 2011-11-07 05:44:14 -0800 + + * Fixing compiler warnings. Addresses #388. (Jon Siwek) + +0.21-2 | 2011-11-02 18:12:13 -0700 + + * Fix for misnaming temp file in update-changes script. (Robin Sommer) + +0.21-1 | 2011-11-02 18:10:39 -0700 + + * Little fix for make-release script, which could pick out the wrong + tag. (Robin Sommer) + +0.21 | 2011-10-27 17:40:45 -0700 + + * Fixing bro-cut's usage message and argument error handling. (Robin Sommer) + + * Bugfix in update-changes script. (Robin Sommer) + + * update-changes now ignores commits it did itself. (Robin Sommer) + + * Fix a bug in the update-changes script. (Robin Sommer) + + * bro-cut now always installs to $prefix/bin by `make install`. (Jon Siwek) + + * Options to adjust time format for bro-cut. (Robin Sommer) + + The default with -d is now ISO format. The new option "-D " + specifies a custom strftime()-style format string. Alternatively, + the environment variable BRO_CUT_TIMEFMT can set the format as + well. + + * bro-cut now understands the field separator header. (Robin Sommer) + + * Renaming options -h/-H -> -c/-C, and doing some general cleanup. + +0.2 | 2011-10-25 19:53:57 -0700 + + * Adding support for replacing version string in a setup.py. (Robin + Sommer) + + * Change generated root cert DN indices format for RFC2253 + compliance. (Jon Siwek) + + * New tool devel-tools/check-release to run before making releases. + (Robin Sommer) + + * devel-tools/update-changes gets a new option -a to amend to + previous commit if possible. Default is now not to (used to be the + opposite). (Robin Sommer) + + * Change Mozilla trust root generation to index certs by subject DN. (Jon Siwek) + + * Change distclean to only remove build dir. (Jon Siwek) + + * Make dist now cleans the copied source (Jon Siwek) + + * Small tweak to make-release for forced git-clean. (Jon Siwek) + + * Fix to not let updates scripts loose their executable permissions. + (Robin Sommer) + + * devel-tools/update-changes now looks for a 'release' tag to + idenfify the stable version, and 'beta' for the beta versions. + (Robin Sommer). + + * Distribution cleanup. (Robin Sommer) + + * New script devel-tools/make-release to create source tar balls. + (Robin Sommer) + + * Removing bdcat. With the new log format, this isn't very useful + anymore. (Robin Sommer) + + * Adding script that shows all pending git fastpath commits. (Robin + Sommer) + + * Script to measure CPU time by loading an increasing set of + scripts. (Robin Sommer) + + * extract-conn script now deals wit *.gz files. (Robin Sommer) + + * Tiny update to output a valid CA list file for SSL cert + validation. (Seth Hall) + + * Adding "install-aux" target. Addresses #622. (Jon Siwek) + + * Distribution cleanup. (Jon Siwek and Robin Sommer) + + * FindPCAP now links against thread library when necessary (e.g. + PF_RING's libpcap) (Jon Siwek) + + * Install binaries with an RPATH (Jon Siwek) + + * Workaround for FreeBSD CMake port missing debug flags (Jon Siwek) + + * Rewrite of the update-changes script. (Robin Sommer) + +0.1-1 | 2011-06-14 21:12:41 -0700 + + * Add a script for generating Mozilla's CA list for the SSL analyzer. + (Seth Hall) + +0.1 | 2011-04-01 16:28:22 -0700 + + * Converting build process to CMake. (Jon Siwek) + + * Removing cf/hf/ca-* from distribution. The README has a note where + to find them now. (Robin Sommer) + + * General cleanup. (Robin Sommer) + + * Initial import of bro/aux from SVN r7088. (Jon Siwek) diff --git a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.get/LMA6EHLacYc-file b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.get/LMA6EHLacYc-file new file mode 100644 index 0000000000..c8435ed950 --- /dev/null +++ b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.get/LMA6EHLacYc-file @@ -0,0 +1,11 @@ +{ + "origin": "10.224.189.238", + "headers": { + "Host": "httpbin.org", + "Connection": "close", + "Accept": "*/*", + "User-Agent": "curl/7.29.0" + }, + "gzipped": true, + "method": "GET" +} \ No newline at end of file diff --git a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.get/get-gzip.out b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.get/get-gzip.out new file mode 100644 index 0000000000..e7df070a03 --- /dev/null +++ b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.get/get-gzip.out @@ -0,0 +1,20 @@ +FileAnalysis::TRIGGER_NEW +LMA6EHLacYc, 0, 0 +FileAnalysis::TRIGGER_BOF +FileAnalysis::TRIGGER_BOF_BUFFER +{^J "origin +FileAnalysis::TRIGGER_TYPE +file type is set +mime type is set +FileAnalysis::TRIGGER_EOF +LMA6EHLacYc, 197, 0 +{ +UWkUyAuUGXf +} +{ +[orig_h=141.142.228.5, orig_p=50153/tcp, resp_h=54.243.118.187, resp_p=80/tcp] +} +source: HTTP +SHA1: e351b8c693c3353716787c02e2923f4d12ebbb31 +MD5: 5baba7eea57bc8a42a92c817ed566d72 +SHA256: 202b775be087f5af98e95120e42769a9b3488f84c5aa79c4f4c1093d348f849c diff --git a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.get/get.out b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.get/get.out new file mode 100644 index 0000000000..301d6dd6a7 --- /dev/null +++ b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.get/get.out @@ -0,0 +1,21 @@ +FileAnalysis::TRIGGER_NEW +KPVibShQgUc, 0, 0 +FileAnalysis::TRIGGER_BOF +FileAnalysis::TRIGGER_BOF_BUFFER +^J0.26 | 201 +FileAnalysis::TRIGGER_TYPE +file type is set +mime type is set +FileAnalysis::TRIGGER_DONE +KPVibShQgUc, 4705, 0 +{ +UWkUyAuUGXf +} +{ +[orig_h=141.142.228.5, orig_p=59856/tcp, resp_h=192.150.187.43, resp_p=80/tcp] +} +total bytes: 4705 +source: HTTP +SHA1: 1dd7ac0398df6cbc0696445a91ec681facf4dc47 +MD5: 397168fd09991a0e712254df7bc639ac +SHA256: 4e7c7ef0984119447e743e3ec77e1de52713e345cde03fe7df753a35849bed18 diff --git a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.partial-content/a.out b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.partial-content/a.out new file mode 100644 index 0000000000..6ce550d39a --- /dev/null +++ b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.partial-content/a.out @@ -0,0 +1,14 @@ +FileAnalysis::TRIGGER_NEW +uj9AtyGOiZ8, 0, 0 +FileAnalysis::TRIGGER_DONE +uj9AtyGOiZ8, 555523, 0 +{ +UWkUyAuUGXf, +arKYeMETxOg +} +{ +[orig_h=10.101.84.70, orig_p=10978/tcp, resp_h=129.174.93.161, resp_p=80/tcp], +[orig_h=10.101.84.70, orig_p=10977/tcp, resp_h=129.174.93.161, resp_p=80/tcp] +} +total bytes: 555523 +source: HTTP diff --git a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.partial-content/a.size b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.partial-content/a.size new file mode 100644 index 0000000000..7abf924cb4 --- /dev/null +++ b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.partial-content/a.size @@ -0,0 +1 @@ + 555523 uj9AtyGOiZ8-file0 diff --git a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.partial-content/b.out b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.partial-content/b.out new file mode 100644 index 0000000000..0d4d863157 --- /dev/null +++ b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.partial-content/b.out @@ -0,0 +1,25 @@ +FileAnalysis::TRIGGER_NEW +ns7As4DOZcj, 0, 0 +FileAnalysis::TRIGGER_DONE +ns7As4DOZcj, 1022920, 0 +{ +UWkUyAuUGXf +} +{ +[orig_h=192.168.72.14, orig_p=3254/tcp, resp_h=65.54.95.206, resp_p=80/tcp] +} +total bytes: 1022920 +source: HTTP +FileAnalysis::TRIGGER_NEW +ns7As4DOZcj, 0, 0 +FileAnalysis::TRIGGER_TIMEOUT +FileAnalysis::TRIGGER_EOF +ns7As4DOZcj, 206024, 0 +{ +arKYeMETxOg +} +{ +[orig_h=192.168.72.14, orig_p=3257/tcp, resp_h=65.54.95.14, resp_p=80/tcp] +} +total bytes: 1022920 +source: HTTP diff --git a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.partial-content/b.size b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.partial-content/b.size new file mode 100644 index 0000000000..9be08e4aab --- /dev/null +++ b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.partial-content/b.size @@ -0,0 +1 @@ + 1022920 ns7As4DOZcj-file0 diff --git a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.partial-content/c.out b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.partial-content/c.out new file mode 100644 index 0000000000..730a6feae8 --- /dev/null +++ b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.partial-content/c.out @@ -0,0 +1,14 @@ +FileAnalysis::TRIGGER_NEW +MHMkq2nFxej, 0, 0 +FileAnalysis::TRIGGER_DONE +MHMkq2nFxej, 498702, 0 +{ +UWkUyAuUGXf, +arKYeMETxOg +} +{ +[orig_h=10.45.179.94, orig_p=19950/tcp, resp_h=129.174.93.170, resp_p=80/tcp], +[orig_h=10.45.179.94, orig_p=19953/tcp, resp_h=129.174.93.170, resp_p=80/tcp] +} +total bytes: 498668 +source: HTTP diff --git a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.partial-content/c.size b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.partial-content/c.size new file mode 100644 index 0000000000..fbb418c3d3 --- /dev/null +++ b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.partial-content/c.size @@ -0,0 +1 @@ + 498668 MHMkq2nFxej-file0 diff --git a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.pipeline/Ac8PLL9KL49-file b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.pipeline/Ac8PLL9KL49-file new file mode 100644 index 0000000000000000000000000000000000000000..cdaf76ed70528e9a91b8a6c1418afc03d286a961 GIT binary patch literal 94 zcmZ?wbhEHbWMN=o*v!DN_r{}=j){A(KWd#muW9PMteTdR_WsPOrajjm?z{0QF0YJJ jP@Dk?DE?#t^K?KY$P5M+ZUar#b5Td{G_WxWGFSruVbC0a literal 0 HcmV?d00001 diff --git a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.pipeline/NV2MvAX0Is4-file b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.pipeline/NV2MvAX0Is4-file new file mode 100644 index 0000000000000000000000000000000000000000..1383a33f480ecc635afd16c20c906b639f4a321d GIT binary patch literal 2349 zcmV+|3DWk7P)Px#0%A)?L;(MXkIcUS000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iXW23?(5+ z1dUDr00^;3L_t(|+U;E1a^p4(J%^H${{M$|+UZNymWVzG1VM_jWn1y&LUz*a<|0ub z&IN!{ilDDAv;^!y=<9$r_7Hq6VDAOD=m$F$^wpvLJrr9uz%2kG1T%n$fB+(NXVTZk z;?ah@AKS5!69^(A#Od^)AHC%0+4v%8=S%U>@BN)XpAjL5fa-I2nfaEL>CYdp0b6n? z0A5C7^22iRKxo$&VzW9-3PcQ=v>n=Il%oE#)X@XNVX)d$y^Hz;s83i{z<}X^T?lxy z+(`FL_k8ZI*8#gcYyO^FH1eI`|4FqrSHX*RWCSsOV?+6wpq?R!4$|QzkWP2b;P&T8 z-5U^`l0ULDS&>v(ZX`0pAvBVnKsHO91nTR=l{1*SKYj|$d;>$y%23kk!|%x$3y#P2>*B-E+S(o^(YA^$CMPS{&FN_oN}ZE;X$uYwFC`VNg)6Y} zfEgN5iOw06c`D{YV9=W_n+Alt9Hvxsorjd^-my5nh=376PbJzpU?o@2h{yOGn7J~P zG*)_!Z)ZDXYDyB5!cW|H`8uuk5Of+(Q${$praNF@($5F`Y`H#^Tyn|Leo8i*N10Nh zlHg+Oml^d^$4;uEu-Z1yu1lZdE5^j~!P!Z1F^HIO0RcqN(yXjPy?c?>-bME(5BV># z1cocls7W6kl_wC00lPHnx$ccd$>YjNqzKE(`*>h`Ri)}SaeBaZ)8%Z$Y%!Li%<^P4 zS$>yi3P-R3@^D=*;Ip;%jI*Tzi;iyE_G3nJ#-tRHn>*3Wp>NG$6}%SnQU4uWvxe@v zQfbM$`62kgWM3IDfS52NBH&c0W>ETxg_%vDx!CnY!6wDgLSY1F-v$R-Z`)v1aWD;z z1+^_HJ}X`9Eq-bRNhBHYm-7>?rkfP7Tmbt~?R2nGC}PGLQO%>Qx*{|OBW|t_Bj2zp z$R>-BAKi%qa)wi@k3hVwdMJA)KeL^RS7}coY>g>8YbWbFOxX23DNl2m=0&o)uI;uI{RTgCO5-f>0 zoYHK9A&uGsMvSYzeS-dk3np`PT)7XaEN`8SEcyv7#(d($A!u$-ny1h_Z{;Reuv?R6 z8R0~USr`M}Z~85tPkw;O|Kx=C#{C_CN2O_g%S{N74z^WhfZ35M$DL9 zbFNe+HirtWl@cP=W!H3i0pVazFNpY4C0Yvtx#v!o$XJ=y)<`ZLYcxfmt3p`;BHwj1 zQpf~GL`)iaHfO4WM{6)vnnRm@&^dsp&yfp=8p=}90vjVpagJ;8groL-Srl#;B{3<) z^7>c+OekLE)gT#jK;V$}QW4=Ro(kWY$i)ceSPdV~rs5tF^CE$cN!~ML1 zTnIMZ)&we++N!W~E9BymKpKZ5cP3`QTjOP!@+uc?8l`G}egX>j zz@<#1y&9XVvNTA#;HT0>#Stc(AOH9yVe7Of%v4(+$SfSG0cqw1?%t-iuDR@3x35O(%yGBZz+l0N!^ryy$F; z6dOv0bGA0uTr>-oUuO{ayGmT?^-{S=@JeeLh!%4Lev zQ@9s=N+*M6AL5py-1Za%@vgGyCj-&$EjHF%pDX{7!G0J;&F6cNtm?K{9B=ymWPLAs z^W`T`X03@+qjnI?m@#3pI&LzymrnqYxVkD-Pag4o7gv6WZqWBynp&%weDeLSz2G7Z zD|{`t=p-fFEMcC@Qx-#7y3rS1Cnmbwl&TA`dF8+59v37-@@t1 z*Vor1#m}b@|B|p&Bh?bv`#tSJ?~reEoHV$pgnnOr{bmX&M}zh2Is!E2<}ZYHhiG4Y z9fcwuGPdmh+rz&4`tpkY$m-DUtFIpg>9j%*WM6&##MPnQS6?04ef8DXcUk`fS0)!X Tj6@>700000NkvXXu0mjfL=0 && b>=0 && c>=0) { + _ubd.cookie="__utmb="+_udh+"; path="+_utcp+";"+x+_udo; + } else { + if (a>=0) a=_uFixA(_ubd.cookie,";",_ust); + else a=_udh+"."+_uu+"."+_ust+"."+_ust+"."+_ust+".1"; + _ubd.cookie="__utma="+a+"; path="+_utcp+";"+nx+_udo; + _ubd.cookie="__utmb="+_udh+"; path="+_utcp+";"+x+_udo; + _ubd.cookie="__utmc="+_udh+"; path="+_utcp+";"+_udo; + _ufns=1; + } + if (_ulink && xx && xx!="" && xx!="-") { + xx=_uUES(xx); + if (xx.indexOf(";")==-1) _ubd.cookie="__utmx="+xx+"; path="+_utcp+";"+nx+_udo; + } + if (_ulink && v && v!="" && v!="-") { + v=_uUES(v); + if (v.indexOf(";")==-1) _ubd.cookie="__utmv="+v+"; path="+_utcp+";"+nx+_udo; + } + _uInfo(page); + _ufns=0; + _ufno=0; + if (!page || page=="") _uff=1; +} +function _uInfo(page) { + var p,s="",dm="",pg=_udl.pathname+_udl.search; + if (page && page!="") pg=_uES(page,1); + _ur=_ubd.referrer; + if (!_ur || _ur=="") { _ur="-"; } + else { + dm=_ubd.domain; + if(_utcp && _utcp!="/") dm+=_utcp; + p=_ur.indexOf(dm); + if ((p>=0) && (p<=8)) { _ur="0"; } + if (_ur.indexOf("[")==0 && _ur.lastIndexOf("]")==(_ur.length-1)) { _ur="-"; } + } + s+="&utmn="+_uu; + if (_ufsc) s+=_uBInfo(); + if (_uctm) s+=_uCInfo(); + if (_utitle && _ubd.title && _ubd.title!="") s+="&utmdt="+_uES(_ubd.title); + if (_udl.hostname && _udl.hostname!="") s+="&utmhn="+_uES(_udl.hostname); + s+="&utmr="+_ur; + s+="&utmp="+pg; + if ((_userv==0 || _userv==2) && _uSP()) { + var i=new Image(1,1); + i.src=_ugifpath+"?"+"utmwv="+_uwv+s; + i.onload=function() {_uVoid();} + } + if ((_userv==1 || _userv==2) && _uSP()) { + var i2=new Image(1,1); + i2.src=_ugifpath2+"?"+"utmwv="+_uwv+s+"&utmac="+_uacct+"&utmcc="+_uGCS(); + i2.onload=function() { _uVoid(); } + } + return; +} +function _uVoid() { return; } +function _uCInfo() { + if (!_ucto || _ucto=="") { _ucto="15768000"; } + if (!_uVG()) return; + var c="",t="-",t2="-",t3="-",o=0,cs=0,cn=0,i=0,z="-",s=""; + if (_uanchor && _udlh && _udlh!="") s=_udlh+"&"; + s+=_udl.search; + var x=new Date(_udt.getTime()+(_ucto*1000)); + var dc=_ubd.cookie; + x=" expires="+x.toGMTString()+";"; + if (_ulink && !_ubl) { + z=_uUES(_uGC(s,"__utmz=","&")); + if (z!="-" && z.indexOf(";")==-1) { _ubd.cookie="__utmz="+z+"; path="+_utcp+";"+x+_udo; return ""; } + } + z=dc.indexOf("__utmz="+_udh); + if (z>-1) { z=_uGC(dc,"__utmz="+_udh,";"); } + else { z="-"; } + t=_uGC(s,_ucid+"=","&"); + t2=_uGC(s,_ucsr+"=","&"); + t3=_uGC(s,"gclid=","&"); + if ((t!="-" && t!="") || (t2!="-" && t2!="") || (t3!="-" && t3!="")) { + if (t!="-" && t!="") c+="utmcid="+_uEC(t); + if (t2!="-" && t2!="") { if (c != "") c+="|"; c+="utmcsr="+_uEC(t2); } + if (t3!="-" && t3!="") { if (c != "") c+="|"; c+="utmgclid="+_uEC(t3); } + t=_uGC(s,_uccn+"=","&"); + if (t!="-" && t!="") c+="|utmccn="+_uEC(t); + else c+="|utmccn=(not+set)"; + t=_uGC(s,_ucmd+"=","&"); + if (t!="-" && t!="") c+="|utmcmd="+_uEC(t); + else c+="|utmcmd=(not+set)"; + t=_uGC(s,_uctr+"=","&"); + if (t!="-" && t!="") c+="|utmctr="+_uEC(t); + else { t=_uOrg(1); if (t!="-" && t!="") c+="|utmctr="+_uEC(t); } + t=_uGC(s,_ucct+"=","&"); + if (t!="-" && t!="") c+="|utmcct="+_uEC(t); + t=_uGC(s,_ucno+"=","&"); + if (t=="1") o=1; + if (z!="-" && o==1) return ""; + } + if (c=="-" || c=="") { c=_uOrg(); if (z!="-" && _ufno==1) return ""; } + if (c=="-" || c=="") { if (_ufns==1) c=_uRef(); if (z!="-" && _ufno==1) return ""; } + if (c=="-" || c=="") { + if (z=="-" && _ufns==1) { c="utmccn=(direct)|utmcsr=(direct)|utmcmd=(none)"; } + if (c=="-" || c=="") return ""; + } + if (z!="-") { + i=z.indexOf("."); + if (i>-1) i=z.indexOf(".",i+1); + if (i>-1) i=z.indexOf(".",i+1); + if (i>-1) i=z.indexOf(".",i+1); + t=z.substring(i+1,z.length); + if (t.toLowerCase()==c.toLowerCase()) cs=1; + t=z.substring(0,i); + if ((i=t.lastIndexOf(".")) > -1) { + t=t.substring(i+1,t.length); + cn=(t*1); + } + } + if (cs==0 || _ufns==1) { + t=_uGC(dc,"__utma="+_udh,";"); + if ((i=t.lastIndexOf(".")) > 9) { + _uns=t.substring(i+1,t.length); + _uns=(_uns*1); + } + cn++; + if (_uns==0) _uns=1; + _ubd.cookie="__utmz="+_udh+"."+_ust+"."+_uns+"."+cn+"."+c+"; path="+_utcp+"; "+x+_udo; + } + if (cs==0 || _ufns==1) return "&utmcn=1"; + else return "&utmcr=1"; +} +function _uRef() { + if (_ur=="0" || _ur=="" || _ur=="-") return ""; + var i=0,h,k,n; + if ((i=_ur.indexOf("://"))<0) return ""; + h=_ur.substring(i+3,_ur.length); + if (h.indexOf("/") > -1) { + k=h.substring(h.indexOf("/"),h.length); + if (k.indexOf("?") > -1) k=k.substring(0,k.indexOf("?")); + h=h.substring(0,h.indexOf("/")); + } + h=h.toLowerCase(); + n=h; + if ((i=n.indexOf(":")) > -1) n=n.substring(0,i); + for (var ii=0;ii<_uRno.length;ii++) { + if ((i=n.indexOf(_uRno[ii].toLowerCase())) > -1 && n.length==(i+_uRno[ii].length)) { _ufno=1; break; } + } + if (h.indexOf("www.")==0) h=h.substring(4,h.length); + return "utmccn=(referral)|utmcsr="+_uEC(h)+"|"+"utmcct="+_uEC(k)+"|utmcmd=referral"; +} +function _uOrg(t) { + if (_ur=="0" || _ur=="" || _ur=="-") return ""; + var i=0,h,k; + if ((i=_ur.indexOf("://")) < 0) return ""; + h=_ur.substring(i+3,_ur.length); + if (h.indexOf("/") > -1) { + h=h.substring(0,h.indexOf("/")); + } + for (var ii=0;ii<_uOsr.length;ii++) { + if (h.toLowerCase().indexOf(_uOsr[ii].toLowerCase()) > -1) { + if ((i=_ur.indexOf("?"+_uOkw[ii]+"=")) > -1 || (i=_ur.indexOf("&"+_uOkw[ii]+"=")) > -1) { + k=_ur.substring(i+_uOkw[ii].length+2,_ur.length); + if ((i=k.indexOf("&")) > -1) k=k.substring(0,i); + for (var yy=0;yy<_uOno.length;yy++) { + if (_uOno[yy].toLowerCase()==k.toLowerCase()) { _ufno=1; break; } + } + if (t) return _uEC(k); + else return "utmccn=(organic)|utmcsr="+_uEC(_uOsr[ii])+"|"+"utmctr="+_uEC(k)+"|utmcmd=organic"; + } + } + } + return ""; +} +function _uBInfo() { + var sr="-",sc="-",ul="-",fl="-",cs="-",je=1; + var n=navigator; + if (self.screen) { + sr=screen.width+"x"+screen.height; + sc=screen.colorDepth+"-bit"; + } else if (self.java) { + var j=java.awt.Toolkit.getDefaultToolkit(); + var s=j.getScreenSize(); + sr=s.width+"x"+s.height; + } + if (n.language) { ul=n.language.toLowerCase(); } + else if (n.browserLanguage) { ul=n.browserLanguage.toLowerCase(); } + je=n.javaEnabled()?1:0; + if (_uflash) fl=_uFlash(); + if (_ubd.characterSet) cs=_uES(_ubd.characterSet); + else if (_ubd.charset) cs=_uES(_ubd.charset); + return "&utmcs="+cs+"&utmsr="+sr+"&utmsc="+sc+"&utmul="+ul+"&utmje="+je+"&utmfl="+fl; +} +function __utmSetTrans() { + var e; + if (_ubd.getElementById) e=_ubd.getElementById("utmtrans"); + else if (_ubd.utmform && _ubd.utmform.utmtrans) e=_ubd.utmform.utmtrans; + if (!e) return; + var l=e.value.split("UTM:"); + var i,i2,c; + if (_userv==0 || _userv==2) i=new Array(); + if (_userv==1 || _userv==2) { i2=new Array(); c=_uGCS(); } + + for (var ii=0;ii=2;ii--) { + try { + var fl=eval("new ActiveXObject('ShockwaveFlash.ShockwaveFlash."+ii+"');"); + if (fl) { f=ii + '.0'; break; } + } + catch(e) {} + } + } + return f; +} +function __utmLinker(l,h) { + if (!_ulink) return; + var p,k,a="-",b="-",c="-",x="-",z="-",v="-"; + var dc=_ubd.cookie; + if (!l || l=="") return; + var iq = l.indexOf("?"); + var ih = l.indexOf("#"); + if (dc) { + a=_uES(_uGC(dc,"__utma="+_udh,";")); + b=_uES(_uGC(dc,"__utmb="+_udh,";")); + c=_uES(_uGC(dc,"__utmc="+_udh,";")); + x=_uES(_uGC(dc,"__utmx="+_udh,";")); + z=_uES(_uGC(dc,"__utmz="+_udh,";")); + v=_uES(_uGC(dc,"__utmv="+_udh,";")); + k=(_uHash(a+b+c+x+z+v)*1)+(_udh*1); + p="__utma="+a+"&__utmb="+b+"&__utmc="+c+"&__utmx="+x+"&__utmz="+z+"&__utmv="+v+"&__utmk="+k; + } + if (p) { + if (h && ih>-1) return; + if (h) { _udl.href=l+"#"+p; } + else { + if (iq==-1 && ih==-1) _udl.href=l+"?"+p; + else if (ih==-1) _udl.href=l+"&"+p; + else if (iq==-1) _udl.href=l.substring(0,ih-1)+"?"+p+l.substring(ih); + else _udl.href=l.substring(0,ih-1)+"&"+p+l.substring(ih); + } + } else { _udl.href=l; } +} +function __utmLinkPost(f,h) { + if (!_ulink) return; + var p,k,a="-",b="-",c="-",x="-",z="-",v="-"; + var dc=_ubd.cookie; + if (!f || !f.action) return; + var iq = f.action.indexOf("?"); + var ih = f.action.indexOf("#"); + if (dc) { + a=_uES(_uGC(dc,"__utma="+_udh,";")); + b=_uES(_uGC(dc,"__utmb="+_udh,";")); + c=_uES(_uGC(dc,"__utmc="+_udh,";")); + x=_uES(_uGC(dc,"__utmx="+_udh,";")); + z=_uES(_uGC(dc,"__utmz="+_udh,";")); + v=_uES(_uGC(dc,"__utmv="+_udh,";")); + k=(_uHash(a+b+c+x+z+v)*1)+(_udh*1); + p="__utma="+a+"&__utmb="+b+"&__utmc="+c+"&__utmx="+x+"&__utmz="+z+"&__utmv="+v+"&__utmk="+k; + } + if (p) { + if (h && ih>-1) return; + if (h) { f.action+="#"+p; } + else { + if (iq==-1 && ih==-1) f.action+="?"+p; + else if (ih==-1) f.action+="&"+p; + else if (iq==-1) f.action=f.action.substring(0,ih-1)+"?"+p+f.action.substring(ih); + else f.action=f.action.substring(0,ih-1)+"&"+p+f.action.substring(ih); + } + } + return; +} +function __utmSetVar(v) { + if (!v || v=="") return; + if (!_udo || _udo == "") { + _udh=_uDomain(); + if (_udn && _udn!="") { _udo=" domain="+_udn+";"; } + } + if (!_uVG()) return; + var r=Math.round(Math.random() * 2147483647); + _ubd.cookie="__utmv="+_udh+"."+_uES(v)+"; path="+_utcp+"; expires="+_uNx()+";"+_udo; + var s="&utmt=var&utmn="+r; + if ((_userv==0 || _userv==2) && _uSP()) { + var i=new Image(1,1); + i.src=_ugifpath+"?"+"utmwv="+_uwv+s; + i.onload=function() { _uVoid(); } + } + if ((_userv==1 || _userv==2) && _uSP()) { + var i2=new Image(1,1); + i2.src=_ugifpath2+"?"+"utmwv="+_uwv+s+"&utmac="+_uacct+"&utmcc="+_uGCS(); + i2.onload=function() { _uVoid(); } + } +} +function _uGCS() { + var t,c="",dc=_ubd.cookie; + if ((t=_uGC(dc,"__utma="+_udh,";"))!="-") c+=_uES("__utma="+t+";+"); + if ((t=_uGC(dc,"__utmb="+_udh,";"))!="-") c+=_uES("__utmb="+t+";+"); + if ((t=_uGC(dc,"__utmc="+_udh,";"))!="-") c+=_uES("__utmc="+t+";+"); + if ((t=_uGC(dc,"__utmx="+_udh,";"))!="-") c+=_uES("__utmx="+t+";+"); + if ((t=_uGC(dc,"__utmz="+_udh,";"))!="-") c+=_uES("__utmz="+t+";+"); + if ((t=_uGC(dc,"__utmv="+_udh,";"))!="-") c+=_uES("__utmv="+t+";"); + if (c.charAt(c.length-1)=="+") c=c.substring(0,c.length-1); + return c; +} +function _uGC(l,n,s) { + if (!l || l=="" || !n || n=="" || !s || s=="") return "-"; + var i,i2,i3,c="-"; + i=l.indexOf(n); + i3=n.indexOf("=")+1; + if (i > -1) { + i2=l.indexOf(s,i); if (i2 < 0) { i2=l.length; } + c=l.substring((i+i3),i2); + } + return c; +} +function _uDomain() { + if (!_udn || _udn=="" || _udn=="none") { _udn=""; return 1; } + if (_udn=="auto") { + var d=_ubd.domain; + if (d.substring(0,4)=="www.") { + d=d.substring(4,d.length); + } + _udn=d; + } + _udn = _udn.toLowerCase(); + if (_uhash=="off") return 1; + return _uHash(_udn); +} +function _uHash(d) { + if (!d || d=="") return 1; + var h=0,g=0; + for (var i=d.length-1;i>=0;i--) { + var c=parseInt(d.charCodeAt(i)); + h=((h << 6) & 0xfffffff) + c + (c << 14); + if ((g=h & 0xfe00000)!=0) h=(h ^ (g >> 21)); + } + return h; +} +function _uFixA(c,s,t) { + if (!c || c=="" || !s || s=="" || !t || t=="") return "-"; + var a=_uGC(c,"__utma="+_udh,s); + var lt=0,i=0; + if ((i=a.lastIndexOf(".")) > 9) { + _uns=a.substring(i+1,a.length); + _uns=(_uns*1)+1; + a=a.substring(0,i); + if ((i=a.lastIndexOf(".")) > 7) { + lt=a.substring(i+1,a.length); + a=a.substring(0,i); + } + if ((i=a.lastIndexOf(".")) > 5) { + a=a.substring(0,i); + } + a+="."+lt+"."+t+"."+_uns; + } + return a; +} +function _uTrim(s) { + if (!s || s=="") return ""; + while ((s.charAt(0)==' ') || (s.charAt(0)=='\n') || (s.charAt(0,1)=='\r')) s=s.substring(1,s.length); + while ((s.charAt(s.length-1)==' ') || (s.charAt(s.length-1)=='\n') || (s.charAt(s.length-1)=='\r')) s=s.substring(0,s.length-1); + return s; +} +function _uEC(s) { + var n=""; + if (!s || s=="") return ""; + for (var i=0;i0) r=a.substring(i+1,i2); else return ""; + if ((i=a.indexOf(".",i2+1))>0) t=a.substring(i2+1,i); else return ""; + if (f) { + return r; + } else { + var c=new Array('A','B','C','D','E','F','G','H','J','K','L','M','N','P','R','S','T','U','V','W','X','Y','Z','1','2','3','4','5','6','7','8','9'); + return c[r>>28&m]+c[r>>23&m]+c[r>>18&m]+c[r>>13&m]+"-"+c[r>>8&m]+c[r>>3&m]+c[((r&7)<<2)+(t>>30&3)]+c[t>>25&m]+c[t>>20&m]+"-"+c[t>>15&m]+c[t>>10&m]+c[t>>5&m]+c[t&m]; + } +} +function _uIN(n) { + if (!n) return false; + for (var i=0;i"9") && (c!=".")) return false; + } + return true; +} +function _uES(s,u) { + if (typeof(encodeURIComponent) == 'function') { + if (u) return encodeURI(s); + else return encodeURIComponent(s); + } else { + return escape(s); + } +} +function _uUES(s) { + if (typeof(decodeURIComponent) == 'function') { + return decodeURIComponent(s); + } else { + return unescape(s); + } +} +function _uVG() { + if((_udn.indexOf("www.google.") == 0 || _udn.indexOf(".google.") == 0 || _udn.indexOf("google.") == 0) && _utcp=='/' && _udn.indexOf("google.org")==-1) { + return false; + } + return true; +} +function _uSP() { + var s=100; + if (_usample) s=_usample; + if(s>=100 || s<=0) return true; + return ((__utmVisitorCode(1)%10000)<(s*100)); +} +function urchinPathCopy(p){ + var d=document,nx,tx,sx,i,c,cs,t,h,o; + cs=new Array("a","b","c","v","x","z"); + h=_uDomain(); if (_udn && _udn!="") o=" domain="+_udn+";"; + nx=_uNx()+";"; + tx=new Date(); tx.setTime(tx.getTime()+(_utimeout*1000)); + tx=tx.toGMTString()+";"; + sx=new Date(); sx.setTime(sx.getTime()+(_ucto*1000)); + sx=sx.toGMTString()+";"; + for (i=0;i<6;i++){ + t=" expires="; + if (i==1) t+=tx; else if (i==2) t=""; else if (i==5) t+=sx; else t+=nx; + c=_uGC(d.cookie,"__utm"+cs[i]+"="+h,";"); + if (c!="-") d.cookie="__utm"+cs[i]+"="+c+"; path="+p+";"+t+o; + } +} +function _uCO() { + if (!_utk || _utk=="" || _utk.length<10) return; + var d='www.google.com'; + if (_utk.charAt(0)=='!') d='analytics.corp.google.com'; + _ubd.cookie="GASO="+_utk+"; path="+_utcp+";"+_udo; + var sc=document.createElement('script'); + sc.type='text/javascript'; + sc.id="_gasojs"; + sc.src='https://'+d+'/analytics/reporting/overlay_js?gaso='+_utk+'&'+Math.random(); + document.getElementsByTagName('head')[0].appendChild(sc); +} +function _uGT() { + var h=location.hash, a; + if (h && h!="" && h.indexOf("#gaso=")==0) { + a=_uGC(h,"gaso=","&"); + } else { + a=_uGC(_ubd.cookie,"GASO=",";"); + } + return a; +} +var _utk=_uGT(); +if (_utk && _utk!="" && _utk.length>10) { + if (window.addEventListener) { + window.addEventListener('load', _uCO, false); + } else if (window.attachEvent) { + window.attachEvent('onload', _uCO); + } +} + +function _uNx() { + return (new Date((new Date()).getTime()+63072000000)).toGMTString(); +} diff --git a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.pipeline/YLndcRpw5Ge-file b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.pipeline/YLndcRpw5Ge-file new file mode 100644 index 0000000000000000000000000000000000000000..f98abd969e4b94a58b1eac2569e9052926df667f GIT binary patch literal 27579 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 S1K+H5M?pqK8X;-&;r{@3Rek6H literal 0 HcmV?d00001 diff --git a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.pipeline/Z3kT1FyLnfk-file b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.pipeline/Z3kT1FyLnfk-file new file mode 100644 index 0000000000..4c2be686a9 --- /dev/null +++ b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.pipeline/Z3kT1FyLnfk-file @@ -0,0 +1,63 @@ +/* +************************************************* + +MOZILLA.ORG +Enhanced Screen Styles +(Only applicable if JavaScript is enabled) + +Created by the friendly folks at Happy Cog +http://www.happycog.com/ + +************************************************* +*/ + + +#quick-search label { position:absolute; left: 48px; top:14px; text-transform:uppercase; font-weight:bold; color:#dddfe0; font-size: 85%; /* 14px x 0.85 = 12px */} + + +/* community feed */ +#community-sub .rows li.over { background-color: #f5f6f6; } +#community-sub { position:relative; z-index:200; } + + +/* project carousel */ +.project-carousel { background:#CBCCCC url(/images/template/screen/bg_project_carousel.png) repeat-y right top; margin-right:-461px; padding:6px 0 6px 6px; position:relative; } +.project-carousel .pagination { position:absolute; right:471px; top:1em; padding-right:47px; } +.project-carousel .prev, .project-carousel .next { width:18px; height:21px; float:left; overflow:hidden; background:transparent url(/images/template/widgets/carousel-arrows.png) no-repeat 0 -21px; text-indent:-999px; position:absolute; top:0; right:0; } +.project-carousel .prev:hover, .project-carousel .next:hover { border-bottom:none; } + .project-carousel .prev { width:19px; right:18px; } + .project-carousel .next { background-position:-18px -21px; width:19px; } + .project-carousel .next.disabled { background-position:-18px top; } + .project-carousel .prev.disabled { background-position:left top; } +.projects-wrap { background: #dee0e1 url(/images/template/screen/bg_projects.png) repeat-y right center; height:14em; } + .projects-wrap .projects-fade-left { background:transparent url(/images/template/widgets/carousel-fade.png) repeat-y 0 0; position:absolute; padding:0 0 0 20px; height:10em; z-index:100; } + .projects-wrap .projects-fade-right { background:transparent url(/images/template/widgets/carousel-fade.png) repeat-y 0 100%; position:absolute; padding:0 0 0 20px; height:10em; z-index:100; } +.projects { background:none; height:10em; margin:0 451px 0 0; overflow:hidden; padding:2em 0; position:relative; } +.project { overflow:visible; height:auto; margin:0; } +.project-first { padding-left:20px; } + +/* project carousel */ +#home #sub { position:relative; } + +/* browser specific css */ +.projects { + border-radius:0; + -moz-border-radius:0; + -webkit-border-radius:0; +} +.projects-wrap { + border-radius:10px; + -moz-border-radius:10px; + -webkit-border-radius:10px; + + border-top-right-radius:0; + -moz-border-top-right-radius:0; + -webkit-border-top-right-radius:0; + + border-bottom-right-radius:0; + -moz-border-bottom-right-radius:0; + -webkit-border-bottom-right-radius:0; +} + +/* debug */ +/*#sub { display:none; }*/ diff --git a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.pipeline/out b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.pipeline/out new file mode 100644 index 0000000000..d400550396 --- /dev/null +++ b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.pipeline/out @@ -0,0 +1,103 @@ +FileAnalysis::TRIGGER_NEW +Z3kT1FyLnfk, 0, 0 +FileAnalysis::TRIGGER_BOF +FileAnalysis::TRIGGER_BOF_BUFFER +/*^J******** +FileAnalysis::TRIGGER_TYPE +file type is set +mime type is set +FileAnalysis::TRIGGER_EOF +Z3kT1FyLnfk, 2675, 0 +{ +UWkUyAuUGXf +} +{ +[orig_h=192.168.1.104, orig_p=1673/tcp, resp_h=63.245.209.11, resp_p=80/tcp] +} +source: HTTP +SHA1: 0e42ae17eea9b074981bd3a34535ad3a22d02706 +MD5: b932c3310ce47e158d1a5a42e0b01279 +SHA256: 5b037a2c5e36f56e63a3012c73e46a04b27741d8ff8f8b62c832fb681fc60f42 +FileAnalysis::TRIGGER_NEW +WLJWC1FMBq9, 0, 0 +FileAnalysis::TRIGGER_BOF +FileAnalysis::TRIGGER_BOF_BUFFER +//-- Google +FileAnalysis::TRIGGER_TYPE +file type is set +mime type is set +FileAnalysis::TRIGGER_EOF +WLJWC1FMBq9, 21421, 0 +{ +UWkUyAuUGXf +} +{ +[orig_h=192.168.1.104, orig_p=1673/tcp, resp_h=63.245.209.11, resp_p=80/tcp] +} +source: HTTP +SHA1: 8f241117afaa8ca5f41dc059e66d75c283dcc983 +MD5: e732f7bf1d7cb4eedcb1661697d7bc8c +SHA256: 6a509fd05aa7c8fa05080198894bb19e638554ffcee0e0b3d7bc8ff54afee1da +FileAnalysis::TRIGGER_NEW +Ac8PLL9KL49, 0, 0 +FileAnalysis::TRIGGER_BOF +FileAnalysis::TRIGGER_BOF_BUFFER +GIF89a^D\0^D\0\xb3 +FileAnalysis::TRIGGER_TYPE +file type is set +mime type is set +FileAnalysis::TRIGGER_DONE +Ac8PLL9KL49, 94, 0 +{ +UWkUyAuUGXf +} +{ +[orig_h=192.168.1.104, orig_p=1673/tcp, resp_h=63.245.209.11, resp_p=80/tcp] +} +total bytes: 94 +source: HTTP +SHA1: 81f5f056ce5e97d940854bb0c48017b45dd9f15e +MD5: d903de7e30db1691d3130ba5eae6b9a7 +SHA256: 6fb22aa9d780ea63bd7a2e12b92b16fcbf1c4874f1d3e11309a5ba984433c315 +FileAnalysis::TRIGGER_NEW +NV2MvAX0Is4, 0, 0 +FileAnalysis::TRIGGER_BOF +FileAnalysis::TRIGGER_BOF_BUFFER +\x89PNG^M^J^Z^J\0\0\0 +FileAnalysis::TRIGGER_TYPE +file type is set +mime type is set +FileAnalysis::TRIGGER_DONE +NV2MvAX0Is4, 2349, 0 +{ +UWkUyAuUGXf +} +{ +[orig_h=192.168.1.104, orig_p=1673/tcp, resp_h=63.245.209.11, resp_p=80/tcp] +} +total bytes: 2349 +source: HTTP +SHA1: 560eab5a0177246827a94042dd103916d8765ac7 +MD5: e0029eea80812e9a8e57b8d05d52938a +SHA256: e0b4500c1fd1d675da4137461cbe64d3c8489f4180d194e47683b20e7fb876f4 +FileAnalysis::TRIGGER_NEW +YLndcRpw5Ge, 0, 0 +FileAnalysis::TRIGGER_BOF +FileAnalysis::TRIGGER_BOF_BUFFER +\x89PNG^M^J^Z^J\0\0\0 +FileAnalysis::TRIGGER_TYPE +file type is set +mime type is set +FileAnalysis::TRIGGER_DONE +YLndcRpw5Ge, 27579, 0 +{ +UWkUyAuUGXf +} +{ +[orig_h=192.168.1.104, orig_p=1673/tcp, resp_h=63.245.209.11, resp_p=80/tcp] +} +total bytes: 27579 +source: HTTP +SHA1: ee2b41bdef85de14ef332da14fc392f110b84249 +MD5: 30aa926344f58019d047e85ba049ca1e +SHA256: eb482bda230a215b90aedbfe1eee72b8193608df76a319aaf11fb85511579a1e diff --git a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.post/LkolCF6OeHh-file b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.post/LkolCF6OeHh-file new file mode 100644 index 0000000000..c62a7ee379 --- /dev/null +++ b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.post/LkolCF6OeHh-file @@ -0,0 +1,17 @@ +{ + "origin": "10.142.133.148", + "files": {}, + "form": null, + "url": "http://httpbin.org/post", + "args": {}, + "headers": { + "Content-Length": "11", + "Connection": "close", + "Accept": "*/*", + "User-Agent": "curl/7.29.0", + "Host": "httpbin.org", + "Content-Type": "application/x-www-form-urlencoded" + }, + "json": null, + "data": "hello world" +} \ No newline at end of file diff --git a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.post/WDJLxTGN0m8-file b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.post/WDJLxTGN0m8-file new file mode 100644 index 0000000000..95d09f2b10 --- /dev/null +++ b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.post/WDJLxTGN0m8-file @@ -0,0 +1 @@ +hello world \ No newline at end of file diff --git a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.post/out b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.post/out new file mode 100644 index 0000000000..5dc60d1930 --- /dev/null +++ b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.post/out @@ -0,0 +1,42 @@ +FileAnalysis::TRIGGER_NEW +WDJLxTGN0m8, 0, 0 +FileAnalysis::TRIGGER_BOF +FileAnalysis::TRIGGER_BOF_BUFFER +hello world +FileAnalysis::TRIGGER_TYPE +file type is set +mime type is set +FileAnalysis::TRIGGER_DONE +WDJLxTGN0m8, 11, 0 +{ +UWkUyAuUGXf +} +{ +[orig_h=141.142.228.5, orig_p=53595/tcp, resp_h=54.243.55.129, resp_p=80/tcp] +} +total bytes: 11 +source: HTTP +SHA1: 2aae6c35c94fcfb415dbe95f408b9ce91ee846ed +MD5: 5eb63bbbe01eeed093cb22bb8f5acdc3 +SHA256: b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9 +FileAnalysis::TRIGGER_NEW +LkolCF6OeHh, 0, 0 +FileAnalysis::TRIGGER_BOF +FileAnalysis::TRIGGER_BOF_BUFFER +{^J "origin +FileAnalysis::TRIGGER_TYPE +file type is set +mime type is set +FileAnalysis::TRIGGER_DONE +LkolCF6OeHh, 366, 0 +{ +UWkUyAuUGXf +} +{ +[orig_h=141.142.228.5, orig_p=53595/tcp, resp_h=54.243.55.129, resp_p=80/tcp] +} +total bytes: 366 +source: HTTP +SHA1: 6a1582672c203210c6d18d700322060b676365e7 +MD5: c9337794df612aeaa901dcf9fa446bca +SHA256: 8eb24c16df7cb45cb6a1790b0d26ad2571f754228d0ac111b3ac59adbfecbeb8 diff --git a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.irc/out b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.irc/out new file mode 100644 index 0000000000..0934a9c980 --- /dev/null +++ b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.irc/out @@ -0,0 +1,20 @@ +FileAnalysis::TRIGGER_NEW +6w2n1vAlfzk, 0, 0 +FileAnalysis::TRIGGER_BOF +FileAnalysis::TRIGGER_BOF_BUFFER +PK^C^D^T\0\0\0^H\0\xae +FileAnalysis::TRIGGER_TYPE +file type is set +mime type is set +FileAnalysis::TRIGGER_EOF +6w2n1vAlfzk, 42208, 0 +{ +arKYeMETxOg +} +{ +[orig_h=192.168.1.77, orig_p=57655/tcp, resp_h=209.197.168.151, resp_p=1024/tcp] +} +source: irc-dcc-data +SHA1: 8abe0239263fd7326eb803d4465cf494f8bea218 +MD5: 8c0803242f549c2780cb88b9a9215c65 +SHA256: e4f0b0b9d7580e7a22dc1093c8db4df7d0115a4f3b03cc2875cc69705f0d0204 diff --git a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.irc/thefile b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.irc/thefile new file mode 100644 index 0000000000000000000000000000000000000000..d4ec9e374b118f65fbb1f67c14ee1a15a26e58e7 GIT binary patch literal 42208 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

o&!pvowVs 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 E0J|a8F8}}l literal 0 HcmV?d00001 diff --git a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.smtp/out b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.smtp/out new file mode 100644 index 0000000000..2234bba1d7 --- /dev/null +++ b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.smtp/out @@ -0,0 +1,60 @@ +FileAnalysis::TRIGGER_NEW +wBZuaIADU0b, 0, 0 +FileAnalysis::TRIGGER_BOF +FileAnalysis::TRIGGER_BOF_BUFFER +Hello^M^J^M^J ^M +FileAnalysis::TRIGGER_TYPE +file type is set +mime type is set +FileAnalysis::TRIGGER_EOF +wBZuaIADU0b, 79, 0 +{ +arKYeMETxOg +} +{ +[orig_h=10.10.1.4, orig_p=1470/tcp, resp_h=74.53.140.153, resp_p=25/tcp] +} +source: SMTP +SHA1: b7e497be8a9f5e2c4b6980fceb015360f98f4a13 +MD5: 92bca2e6cdcde73647125da7dccbdd07 +SHA256: 785a8a044d1454ec88837108f443bbb30cc4f529393ffd57118261036bfe59f5 +FileAnalysis::TRIGGER_NEW +i3lOtWMsCWb, 0, 0 +FileAnalysis::TRIGGER_BOF +FileAnalysis::TRIGGER_BOF_BUFFER + + + + + + + + + + + +

+ + + + + diff --git a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.smtp/thefile2 b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.smtp/thefile2 new file mode 100644 index 0000000000..9eb3055735 --- /dev/null +++ b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.smtp/thefile2 @@ -0,0 +1,264 @@ +Version 4.9.9.1 +* Many bug fixes +* Improved editor + +Version 4.9.9.0 +* Support for latest Mingw compiler system builds +* Bug fixes + +Version 4.9.8.9 +* New code tooltip display +* Improved Indent/Unindent and Remove Comment +* Improved automatic indent +* Added support for the "interface" keyword +* WebUpdate should now report installation problems from PackMan +* New splash screen and association icons +* Improved installer +* Many bug fixes + +Version 4.9.8.7 +* Added support for GCC > 3.2 +* Debug variables are now resent during next debug session +* Watched Variables not in correct context are now kept and updated when it is needed +* Added new compiler/linker options: 20 + - Strip executable + - Generate instructions for a specific machine (i386, i486, i586, i686, pentium, pentium-mmx, pentiumpro, pentium2, pentium3, pentium4, 20 + k6, k6-2, k6-3, athlon, athlon-tbird, athlon-4, athlon-xp, athlon-mp, winchip-c6, winchip2, k8, c3 and c3-2) + - Enable use of processor specific built-in functions (mmmx, sse, sse2, pni, 3dnow) +* "Default" button in Compiler Options is back +* Error messages parsing improved +* Bug fixes + +Version 4.9.8.5 +* Added the possibility to modify the value of a variable during debugging (right click on a watch variable and select "Modify value") +* During Dev-C++ First Time COnfiguration window, users can now choose between using or not class browser and code completion features. +* Many bug fixes + +Version 4.9.8.4 +* Added the possibility to specify an include directory for the code completion cache to be created at Dev-C++ first startup +* Improved code completion cache +* WebUpdate will now backup downloaded DevPaks in Dev-C++\Packages directory, and Dev-C++ executable in devcpp.exe.BACKUP +* Big speed up in function parameters listing while editing +* Bug fixes + +Version 4.9.8.3 +* On Dev-C++ first time configuration dialog, a code completion cache of all the standard 20 + include files can now be generated. +* Improved WebUpdate module +* Many bug fixes + +Version 4.9.8.2 +* New debug feature for DLLs: attach to a running process +* New project option: Use custom Makefile. 20 +* New WebUpdater module. +* Allow user to specify an alternate configuration file in Environment Options 20 + (still can be overriden by using "-c" command line parameter). +* Lots of bug fixes. + +Version 4.9.8.1 +* When creating a DLL, the created static lib respects now the project-defined output directory + +Version 4.9.8.0 +* Changed position of compiler/linker parameters in Project Options. +* Improved help file +* Bug fixes + +Version 4.9.7.9 +* Resource errors are now reported in the Resource sheet +* Many bug fixes + +Version 4.9.7.8 +* Made whole bottom report control floating instead of only debug output. +* Many bug fixes + +Version 4.9.7.7 +* Printing settings are now saved +* New environment options : "watch variable under mouse" and "Report watch errors" +* Bug fixes + +Version 4.9.7.6 +* Debug variable browser +* Added possibility to include in a Template the Project's directories (include, libs and ressources) +* Changed tint of Class browser pictures colors to match the New Look style +* Bug fixes + +Version 4.9.7.5 +* Bug fixes + +Version 4.9.7.4 +* When compiling with debugging symbols, an extra definition is passed to the + compiler: -D__DEBUG__ +* Each project creates a _private.h file containing version + information definitions +* When compiling the current file only, no dependency checks are performed +* ~300% Speed-up in class parser +* Added "External programs" in Tools/Environment Options (for units "Open with") +* Added "Open with" in project units context menu +* Added "Classes" toolbar +* Fixed pre-compilation dependency checks to work correctly +* Added new file menu entry: Save Project As +* Bug-fix for double quotes in devcpp.cfg file read by vUpdate +* Other bug fixes + +Version 4.9.7.3 +* When adding debugging symbols on request, remove "-s" option from linker +* Compiling progress window +* Environment options : "Show progress window" and "Auto-close progress window" +* Bug fixes + +Version 4.9.7.2 +* Bug fixes + +Version 4.9.7.1 +* "Build priority" per-unit +* "Include file in linking process" per-unit +* New feature: compile current file only +* Separated C++ compiler options from C compiler options in Makefile (see bug report #654744) +* Separated C++ include dirs from C include dirs in Makefile (see bug report #654744) +* Necessary UI changes in Project Options +* Added display of project filename, project output and a summary of the project files in Project Options General tab. +* Fixed the "compiler-dirs-with-spaces" bug that crept-in in 4.9.7.0 +* Multi-select files in project-view (when "double-click to open" is configured in Environment Settings) +* Resource files are treated as ordinary files now +* Updates in "Project Options/Files" code +* MSVC import now creates the folders structure of the original VC project +* Bug fixes + +Version 4.9.7.0 +* Allow customizing of per-unit compile command in projects +* Added two new macros: and +* Added support for macros in the "default source code" (Tools/Editor Options/Code) +* Separated layout info from project file. It is now kept in a different file + (the same filename as the project's but with extension ".layout"). If you + have your project under CVS control, you ''ll know why this had to happen... +* Compiler settings per-project +* Compiler set per-project +* Implemented new compiler settings framework +* "Compile as C++" per-unit +* "Include file in compilation process" per-unit +* Project version info (creates the relevant VERSIONINFO struct in the private + resource) +* Support XP Themes (creates the CommonControls 6.0 manifest file and includes + it in the private resource) +* Added CVS "login" and "logout" commands +* Project manager and debugging window (in Debug tab) can now be trasnformed into floating windows. +* Added "Add Library" button in Project Options +* Bug fixes + +Version 4.9.6.9 +* Implemented search in help files for the word at cursor (context sensitive help) +* Implemented "compiler sets" infrastructure to switch between different compilers easily (e.g. gcc-2.95 and gcc-3.2) +* Added "Files" tab in CVS form to allow selection of more than one file for + the requested CVS action + 20 +Version 4.9.6.8 +* support for DLL application hosting, for debugging and executing DLLs under Dev-C++. +* New class browser option: "Show inherited members" +* Added support for the '::' member access operator in code-completion +* Added *working* function arguments hint +* Added bracket highlighting. When the caret is on a bracket, that bracket and + its counterpart are highlighted +* Nested folders in project view + +Version 4.9.6.7 +* XP Theme support +* Added CVS commands "Add" and "Remove" +* Added configuration option for "Templates Directory" in "Environment Options" +* Code-completion updates +* Bug fixes + +Version 4.9.6.6 +* Editor colors are initialized properly on Dev-C++ first-run +* Added doxygen-style comments in NewClass, NewMemberFunction and NewMemberVariable wizards +* Added file's date/time stamp in File/Properties window +* Current windows listing in Window menu +* Bug fixes + +Version 4.9.6.5 +* CVS support +* Window list (in Window menu) +* bug fixes + +version 4.9.6.4 +* added ENTER key for opening file in project browser, DEL to delete from the project. +* bug fixes + +version 4.9.6.3 +* Bug fixes + +version 4.9.6.2 +* Bug fixes + +version 4.9.6.1 +* New "Abort compilation" button +* Bug fixes +* Now checks for vRoach existance when sending a crash report + +Version 4.9.5.5 +* New option in Editor Options: Show editor hints. User can disable the hints + displayed in the editor when the mouse moves over a word. Since this was the + cause of many errors (although it should be fixed by now), we are giving the + user the option to disable this feature. +* New option in Editor Options (code-completion): Use code-completion cache. + Well, it adds caching to code-completion. Depending on the cache size, + the program may take a bit longer to start-up, but provides very fast + code-completion and the user has all the commands (belonging to the files + he added in the cache) at his fingertips. If, for example, the user adds + "windows.h", he gets all the WinAPI! If he adds "wx/wx.h", he gets all of + wxWindows! You get the picture... +* Removed "Only show classes from current file" option in class browser settings. + It used to be a checkbox, allowing only two states (on or off), but there is + a third relevant option now: "Project classes" so it didn't fit the purpose... + The user can define this in the class browser's context menu under "View mode". +* Fixed the dreaded "Clock skew detected" compiler warning! +* Fixed many class browser bugs, including some that had to do with class folders. + +Version 4.9.5.4 +* Under NT, 2000 and XP, user application data directory will be used to store config files (i.e : C:\Documents and Settings\Username\Local Settings\Application Data) + +Version 4.9.5.3 +* Added ExceptionsAnalyzer. If the devcpp.map file is in the devcpp.exe directory + then we even get a stack trace in the bug report! +* Added new WebUpdate module (inactive temporarily). +* Added new code for code-completion caching of files (disabled - work in progress). + +Version 4.9.5.2 +* Added new option in class-browser: Use colors + (available when right-clicking the class-browser + and selecting "View mode"). +* Dev-C++ now traps access violation of your programs (and of itself too ;) + +Version 4.9.5.1 +* Implemented the "File/Export/Project to HTML" function. +* Added "Tip of the day" system. +* When running a source file in explorer, don't spawn new instance. + Instead open the file in an already launched Dev-C++. +* Class-parser speed-up (50% to 85% improvement timed!!!) +* Many code-completion updates. Now takes into account context, + class inheritance and visibility (shows items only from files + #included directly or indirectly)! +* Caching of result set of code-completion for speed-up. +* New option "Execution/Parameters" (and "Debug/Parameters"). + +Version 4.9.5.0 (5.0 beta 5): +* CPU Window (still in development) +* ToDo list +* Backtrace in debugging +* Run to cursor +* Folders in Project and Class Browser +* Send custom commands to GDB +* Makefile can now be customized. +* Modified the behaviour of the -c param : 20 + -c +* Saving of custom syntax parameter group +* Possibility of changing compilers and tools filename. +* Many bug fixes + + +Version 4.9.4.1 (5.0 beta 4.1): + +* back to gcc 2.95.3 +* Profiling support +* new update/packages checker (vUpdate) +* Lots of bugfixes + diff --git a/testing/btest/Traces/ftp-ipv4.trace b/testing/btest/Traces/ftp/ipv4.trace similarity index 100% rename from testing/btest/Traces/ftp-ipv4.trace rename to testing/btest/Traces/ftp/ipv4.trace diff --git a/testing/btest/Traces/ipv6-ftp.trace b/testing/btest/Traces/ftp/ipv6.trace similarity index 100% rename from testing/btest/Traces/ipv6-ftp.trace rename to testing/btest/Traces/ftp/ipv6.trace diff --git a/testing/btest/Traces/ftp/retr.trace b/testing/btest/Traces/ftp/retr.trace new file mode 100644 index 0000000000000000000000000000000000000000..a63ec5e15319dcbf979df28a288c977803585d6c GIT binary patch literal 22764 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 B=#&5e literal 0 HcmV?d00001 diff --git a/testing/btest/Traces/http-100-continue.trace b/testing/btest/Traces/http/100-continue.trace similarity index 100% rename from testing/btest/Traces/http-100-continue.trace rename to testing/btest/Traces/http/100-continue.trace diff --git a/testing/btest/Traces/http/206_example_a.pcap b/testing/btest/Traces/http/206_example_a.pcap new file mode 100644 index 0000000000000000000000000000000000000000..ca134bf7011257f28e0d65dabe40933fb12cb0e5 GIT binary patch literal 631110 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 z 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%0D6dZ{?@52LO0+AJB!hk)rF1 zFoz2eq|^=I9KM@kT-~9pOU!tH4(;nu$&f#M!C8&CzO1_ha(26Ty*ZR#gPw|hopUH+ zkEss`8M^RuYD^R&>C^tv`6X2Gind^9Y-&RRtvktdFyqPUXe-I;1qm$bMB7De!N3kz zXVeGbN9=4WYe~n?UbA2pWiSZhV1v|V2)DNHM-FApG_p`QlX{|eBOqlVp@FD5;+U9I zd_;agIriO>Lgdcl^L~VHBF4i{#5Dvj3_E?7c^6x0^#+g-2tc5Q5l{KEvlI~_#0W_> zba_w@8-7~%@JMfQ+*HGKYXmt@;+lH5c|s-&A${z+X{-3xySMkT4UzfG@n8UWP*2A~ z_kj5fVK=r+=(IhDL0Ul$7N~c$xc4mW(_rBmoG-achNKUiYm)n8Jo&Nt%axd+=L;-o z-1TY|XAfH0%CU&nCun|#|p))Wz=eF{Udzb`cxqRsZSV1ib)?A z_4ts}Fqfg(mIj@M!|(L&B-c)MFV}UDX=D*L++TmryCORrHr0uT&bdmt3 z?|kMZ8=`e|jW7yb1-Ysq^s1BNS^=9%=%wE@9g|app|{`m=_$!(m?z>h-zVt>(<3Nd z_}10Dp3;U2R3%u3QdJW5DVOj9Q7Ig4Gmxc;N~O7earnAbXmbfHX=)-V2{7CM8IEzn z8Y5iyuPVtrBAC0TeN;D`z*+vj-t_VjOh5f@Gw}O;0^kJ{zzw50qtl$rH*ROx&h?;UXg>12-mpfVncpyu{`*CO+;%c!53uunGNLfL2m1$q-` zw)ELSnbMB+RHdToz}+{H}$ z8!w9N62joa6RRrya}gD0B)0pZY`g-lH|Yxf3P5U8S=gDThDZZjEVGX?9rf1zx<%D- ziQq+p!imD^vOG+QD*~25kg9ZR-BSq#sP!4Ee7})~bi@;#2`itt<78CYM7O!`8ntm_ z@iytDQ7LQ=K=wnhpm!wuL^zFft05nsUtS{#a${n_{icT+D)Ab{+xmvVQUdqBAB zRv}bu{?;YcuSZ_N{5m^iLE1>cf+WF-jv~3$rr-wf{six6vCXqiG>FfE_~UzVi}wgy zmfTgMXE*CRkSe=*4?hglqS}fy;gc_{3Zvrz?GhtW_s__1Y7(COPVT~o{irG^cyC)C z5uNFH#opotI)ifIN=M9tSkK@ilZ_6^+fvo{bV(9O;PR|rjDS<|0o=^4y&#}rh>E^3 z)W#|Y=|-2vAsPEyCDe0^2r>H0qzmE=QQ(l$q>YP=2g&Gn>LW}S=9=#v59U^s%vTg@ z{EW@O%3-v$C?qaJY)V>02M*b;A47|c!dCSmV0zi0p&F^*!TjjEFoo;Y91t(kdIAB1 z_(5o~_!ed@cK8K-MuOS_QcgA_SRy$MG?vNuSnttGGC(HJryn9OC1ZfDHUZs8{8x;E zs4bS{j-^VX=}8?0cF>G($+UN=?s{^gPG2P!VI&wh_M*Yza-lb1g#oGFBomHBN$K=f zLiVEEHD7=?5;N$Ln3IseKSbXCIcweVUvI8n{-q-H|5TAVu)kG= zavBK8@k5NXqk9*L#PoGx5jK1CeI(d=Ce5=(B&z1>6k!@L81Gs@N?nbhCsW=g$N2Tb z4&V_|vgcCCNn)8YxmRpd3Ao8-)^z z;=^dq{fKkTx^-Zg6PPu*?cK;*bb_Jhw#rHc8?FUe*a1UzJJ7kbT)k`##)IQxpHpeF zgwbSK?4?&flk4sJi8C?kORXWE?|Qm>l{F*WnTR>2A_CWlwZqlFOA&xn*2>QbhOx*3 zrw12_1#aukWu7U)(pij@9{q@xCaw&dIy5@LbZW`H1AedOl$}By0^x-*t$eHyh!EVcMf$i{lkd#Op8;s$Hq3In|cw!XOke7%^UA!ZlU2LZ!JEV{8F(1Lht2Vx5I= zC<^{SfRNcr!@O53P`-%&71S)u0}%&zRy%d6M}4#TQJrR2ANVcY`CyvO1K>^>#q%;j zZmxLM!Ej-$VKKSF;pgAZ^mG1(x5W}~KkNQ-Or+0nL_?vSMANeMb4uApSo+!l#F`ZP z0CyzZH+C|iO3$esJ;i^dq8*icv@vs(;>o_EKyj`z+q4Gj+kuX{^(E|N8?2%&XDYwk zObiBeopvJ(sUZmOacvCMk>zydcnd~ahfx!&P|i##7ksixZqq`|-{k609kG5)S+|6@m~w%c5t06pPr z*CUQw4mOa?9L;Om%8U$iiEkM%l%98beQ|4GE^+Cv$K=wF%;tO8<*8^q#eTI;FJ9&> zHXL>9fs4}bg&l+xOr2wXJ?cOdJQ@J?F!|j36UoX8h@g^ODZ&jpRjKj;YUt}Yz3AnYCN zp?G9@BoF$sa`Z#-F3qF1vpaI8605H7BdVsLqOf3Q?;?P+Vw$>~i2&3my zU~dq-H5fA)N$)QNsxSB73o{;z0fiY4a(yA*2L~qcP5HBW$BASe zbopP%g=W83T}ORC6K5_S(*H<8J}!4;V(8oMm33e;4`O=?TjVaTjgGjd(B(<8aLal# zUgSVP&LOidB$O(xgNiG}Kz?(%R|oYKTJ6%(U=^><#PNpFeoQ*84*12mcOa6-%Fy(N zRH|ArUaoyE+JsA?b{!SFjmm#8d2D=klRNmm7WB~8+;Wyc`F88KUedu-Ey|b z)e9ztQ4bM>h5BcdZp#E(NHUF220R49rnFITyB4iQ&Q4zoJKW7gq2Q zq5G$bEI0kFBJMFjK%ur*!11xc4;`DZ;{*&GuP%KQI>Q>0&385Wm~tz9gRcPkutDRH zFA1h2Ul9uyAFM*ub?DAk@@>cLXmveHw`wb*`Q(U9A}5BWKTI9K+@3=FwJDavM6|pEtXs;Bvkc zs3eovn~fTfKSr7G3~w({=MLtO;WSPC7Q00ynDIphM(1pn91TXF>~T9@x)|0}1vj77 zxp0}ih~|XatS2@WN8eYaEF@DddJ~*1&kpC%FLSXz4$WM1DXA4z9j=T?2C%g-I}q(O zl=>DUHWAL%h!MkuR`nL;TEP}D38~i=7@X6veuoo1zrEG1VB8vepWf=ciay_7=K7tq z@q(zkP=A*I&$-r$VwDH5666|3(`lhwb|>W-Ux?a*GJ<5kO7=4y;7hB~3p=X@_Ha3xRQvpbWQ5#j}#8nRu0g zc{wripvphnYfOlnRsf|~JdT?7OUrBXPDcuuEPL-(Ygp~FXcQ{bc69VE`?}ZmoL8%V zdVVGs^0J0p{$2N7P$eHT0L(ikXry8YXhM|8R{hXAD&l0|1Cg$atX{o`m23U1E~aH7`Ep+u(S27=v#wOuf03n|7+#6_q|T_-<8j@%EPb`X8vG3SJqw&X zBadpve}MSi3MGIv{pAyq<;)uWe@Y7ezjeOIS6lB7uVfa&l z^}BY8h5dJ>)89G4->dfikrVv$_+L3e1_p+I<^+Fd1OJl}WceNE`(ILmdH{WZ0l>h< z(#9HK2rvQ|1B`8c*aJ)erT|k{TT>%zfEmC7UTLI9TdAm;xLDj?OlK9{^{7E5HrlW@K;k&*m#+ z`CrjPmOt6Xzw4>!+2~pS>+v7aLw35~jaq*`|NrP=d5eLgu~r>PMwr!YDAn&}I|uQ5 zp%r0Ps|{2Q6%v#UawXqTz3)33Z8mWmUsb%{cO&c`dNds>njdiw2Xly(lnoH+o$0_O zIF?!&s_7VRL6{Wl6QnGyq{jH+Z{Tv_8xDLrjp1D+Bo&48-kst6+@^4!HO@1d)ARuKvAMhbGC`1MMg;==+ z5RXLpIUq6MbKeQl1|TC=1&tUCK3qeHI%nV+AZqLk;D*m%Kq>4?>HZ&P zH_4&t}S|I}4p zn)lOJ*xSWZbC4Qm;3g1mt8TvwvUAm*n=aum*k*y*rAP^&Tmto8NNxR z69)}^zrP8c_pi^?3GaL8C!H2nJIA{F7uMD7&En5t;Jp)&x_aFJ6TNqh*|B>YE6Esc zu326U;em}F;I5uGJSPX%!Oy#9(9BPqsYUMxxN)7YqzCX14cb5sKf$@;bNx>@<9w<< zohcbVI+340efvITz&^YQFF$$hK3hdTM+rVY-LpP9>+;hpDsn?{t~QCgyf^59T)TLa z$3D?4^&xBSUw8vQAH`_4ylvljbB3DI-f#j!+V^$nQ!r9Ld!g)O!CXPc6ZtERfB#;P zS34D67Ay5^;2j&lmq9;EpD*!&;i$*PKF5o!!5M0QeVUwMe{O@Uq<=b}c!R$rv&9Dl zM5HtjuYY>weP9*6sko~A01S4{eTb65z#n`%TqA@P7yFZKVS&OzQu+8srtV+*zK#Y5 zNA^B`%3kZ>Cw;0@r8IH)a{;?~uYROI%iMnMK364nd;7;$vpUdynp71xr!A#_u4{kJ zUPZ5tjW0h}m40SDbxM66zHCOqgSml>Z!IR_j6DgIGuAL_VcFh@7WLmlysF`g2;z)( zmL;Qr&#~V&}4FU;El}SMm`#>%0CtW17M*&hs_|urW%S{ znvSCUQs72o8NAKYV5@|mCCh@E!A4IdvEi)4SX792`p#C%9$2X+5 zQ5CF9=K>kD?p*SyRq~*I&_i3pX;HIn^nY<}E@w@?-CW^#zQ$$bc zv#PkC@v*Cj=S3^KW4T)@%nlMuCRb{v&k_?ctkYVLu4yitxlHbj5fXLv8g zHy(f5|_ntGlHtPj>FfN6uXlWQYHMRi`!Lp z{sW^0#sC!=1mTiz-`IZ94&hjZoWH!dJ4Is|K@%xv>rEPL9F(175=HOb@g#cx#5AF( zwTyNkZgw%8x!5wP$e}31_r0OW59r1DPT)!tkz(6&#~y3sYa0tK0>+V}1qw?d7@b{x zQbX7NG*y`Y5W=7rib3;ox+|EOjlwmS1wM1a$FG78+7{X5r{PXWZ0wl&hy1$DU;fQM zEd22gk)QwFKWtk5@ekO<|M3sbM1RiWZvEFCvp0XK2<<;rWFP-;6?y-?Rggt{;+d8z zQ)?hlBCCh<$DkVdNADSEp`v^{GYyRU84NEHdrq;3yrL>HPo-6@KCu9PDX`}4z)$So zi#Yf?a!@iReG}VAojs(Xi?Cz0uMX%`NmGNiuGder z{gG_*CY$1O`0O>c$?S)Z7ZKFGptC!g3;xhQ6tnNHT2w{3>GzNe8yRn}CqvQTY9^Fu zn-s_Jf#c7}`YcQthFUdVCi0kEmXuaWK@69gpsvnz+SfuPd&9575)} zSX%f%y;nb9G$|d?R9ZY(gdCd|*_^UciSX!M)6}`j7wX26$KZ$0F)1v(#`0d86YTD4 zC&uLS`dK*mO>x22I>N$03ero8QP1<+BAfLtHaSN*{A5?HZL_OsxHzZ(oQ^;3_>qO> z;8Hoq!E`W2?0P7{39OX{teL(Hx5`8G#>mk;TrM8?5w;}cD3;3LFf8uUBr&4E#`>u1 z1Ix}P*S@~a&y3bA`p%7?ReHA04T(&9?khp9<1wmP+;mtuX@fZgUt|S9wN43(m)p9U zrJ9-5g`3? z{f1H&C5uHC?Wl}Nj?!9WM|C*(R?mEFs+!mY=3~K)3N@@zfMEOa0N}V5kH)g>^U#m7 zzpQAeHQkfYIQ0u8Ig{CetWb@96!%6en_7K{-|6WG$9CekMp~0Y#K}z0I7;h3Vm@;w zX?)0xXz_L4%tP<)b)xFPV|c!USHmXS30qPSX1tVbw?pm^LMA9M&N`C*$|De&;J zokMj}$1lS5E?|~)tF5ta7#(VE17*slDWm0p$-uG5LFW)cu2Tjzkw<2j>P6FIvZ&Cf}THv3_XGbOD^uzK*Rq76gYp z!$^+EKYM(ZrSzN5TPeg%!hUfN_QjLMVd-*a3guLjW^#$KT2nGRCInN68rTUn%Y4gN z)Oh}3*tAm%KTMh!oG~KE_MCp9g(Ve^2cH&dk#0yy_2m@t7ClBOaVled4dBs!s&IzKtQ$G$e zLYcB=Tm8i_xvv#}Ww(*@dOX2YI>*$W1^HI3(Eq@`_!L6Jnwz{}Yi?0jj=m zF?_$=uPpy#$hXydYzfl-gg_yt6=4N~cHt|ei~|rwmcnw?_b%TRe)}NcI;n3JdE%ze zPXSs}m=f^5CwxA6+^6{#o2KQl*y?-cCgwPiEy@0#-=74G#@*|~>@2ge7YZ{8_8)<+X3}Sk#iyx!t$TH9;~D6h4}TLzXI(KU@lX zJZ;JljnLMtJ*qr2cU8bG)Q&ewwyw?-WX=KsYqsI`JH!t$%GPwQpNkZG`kRBNv<$t5 zeF3}x5Z$ih8O%CVM4p}S=J#5vF_I8i1_#&m68BCP=g|njqBR+rKWz#FCnLZt9B!yBp}f}iR#!IGKBXn~gxx?Y z?}1aZpFoanA?4*JqsU;+>Lwda^)#!9N>yo9#ZRA=;xj0JFv#@9rhJ&gXa{Gtc~YNQ zoeSR$S!{KMk+_IxL{PFnmz!))?8m{OvO}5ifgn8vY)pMSN0=-_J=WqpY)4sL-eR=1 zFL@e^^Q=y0b3~1xg=~*BZX*Af+de43Tsoq3d!(a?o%Rc|ib)b7Zy1mw@qY1`(qX0m|q%Cw(&m->bk?V~X7n zqn9107W>A`a$23rTx~AyMi}ZcW{2#C+I-;qIK|8~a2e}5K6(ieXcLaU>y}*cV230~ z<$kzay|B@!oPB)hNO)n9Ua?Vh{W6_x-QoA#YntvCM)1?NEaoud#HbmWHZWkgE=<7O z+=d>V(=Py#C^8A4+PHcm4~_ff_C;lva-1F8Ubt8nh2^QEkq3+6Q>FVb>pr0bS(o1K z_F8`GY-l!G0oH*!afT}~DbafK*}W1gwtBPu10wm71nJ#m-!9ZiTBrnx#vFa0jcOc2 zf7?&XwZYpdv*bM%BdMcnT&vf2xbMWr>9QS+$gv6X)bBj+M>W#HW&iSSI9&MS@mMHp zFY}Iq8%Wf}*%!6$ytd!(0{GAX@V4NkaFoE&w3&vJFs(XNJz_1_ zd(krvRvz#3&cPskU#W!h3Mae|{9c%`(5#4ktit7};ys`6J>OL^Q-xHAgr&`4`zz%0 zkI)6SS59EPk~S#{R5=MI9p&c);wfFY7CD|8vUojh>tp5_hxaiFk03`OMsKwPC``Eq z-FLquil5zoPvKwlk)HJJ5AsDs$R*b@gSGJueecLz=^Z%@-4|bT;wYi8-l7@j3eBd> zt}C1Rf?$J8Ci9Ejw%ZXIILN>p#soRR;^)C4v(7qLhxn@<1Dj;ZP<` zU{m<>*PUegg0q>DaRn(3+KC`iUaS2D*kS=siIB3-V|J6JC4_p1^0t1oR}xa#vp6E$ z{NemSY{I(9=^<~8k)U_vQ-0|o_DI)&Q{tjZg|Y1FCnVbyg|z&p#E$6zYZFX2^!uH# zR$!^3s2XF>N3ubx1=d|Z0R4)8oBH7RDgVAY2+6AiCT}guXcZAf4r*E_&^26CWhsHG zcz|65If6iXK)Ls{zEzMgTZV-@)Ix5QjCCpsfjZNxhD;cm;=7_UG#JA<;_tyJ!WOeH zbplJwTk#n;^FeH?GTxciqbq^ z+n3oXXQdKNhRex#)_m=dR4lvBiLBXF{0VEX&>uy=6AusJcTNO6n>3hXOiFqUjl+08 z^UE&8Jk~^*bvnl+57R&t^%gCfl;EV_SeZv|tPR}t^-hVEwz$WM(E9z*buaZ^SHQxS zTQz1k;AYsYpL!m?Si#e2AkG(OvXdr)Vsw$)ct}pE%xlDe1i|$7%{&AXsZpyngSK%< z`9<|B^TK8Pl7D|f7szZe$qF8_838i)Jc+;rNA3SZex-jW|J`5Yr~W7TuR{JNKfW&z zP&rXS*L^EdD~$-#+yk!u0(sj73;VSNN7k!u;|*#%!Kcm~0caou+R*+rU4i=ae!CNU z5bD!&dN;HA$!6m=zXjv2a?+Rdv2S1$D*=P{67^fs6M4K5F4*6yag*eRBx)3A@>Vfi ztn%6t5yaO_S~yCpWGHa4;m{wWO2nX#YVadtK3(-nW}e*W2A_g6xC{RAT8Cx zEt7O2S{0+V^HKLT%6Mmo?HKl~b#K87e&9lL4T^cbiIv4m7#~bBh^V~eP}{U275Nh? zH3l>>9#S{+SMt?@kHFwhC0XSt$RP1z(1W;MK3Z_^35dU?3Vv+l)bem)O0p~7?zg5g zA9M)lBue&Sdu|HhJPMg-jK_WblqaFTw0cnDdqKZ&nB;Tu{94KC=e1f^yOSDUZI*CL zGt59n=z(_O&?g8?7q3g6|MQe-3NZA;Op|Hf%~S{cYkErZ3%DZhSpI1{b(6FnL9e0Z zdyf`0P@6*VWc-I$Plh_jdW*KorL!a2DMg5WncMSB;9}rfm`2|*m0==y5}1{wGYWj$ zXxt&$7@@)}ax$5=009z*+CgXOB~UAJ*@hb0SJZlJPN#_eiet3#hnBb-8l(h6SVtmM za6A)}PimO4Tesue18AwLdG=aMT!Y`nb5Mh!w`uAVh*5R{n3TPh?gBMF#Vcc5l6k*G zab7fnWWm)Txp(8{YNCwVKlUj13@p78xTQ0tYgoj9C?c&|VbF-U?&OOHn#eoTtJE~v z;Z z6^I%5iWmXb$BIO%yMC;oMN@aK!s$Rpmb=%1j*|;XCNq3)j4ZzW4f1;$_O9ewEn116 z8^)Jh*?q{VHi!2?MN{hjnV2)=f;b2;6U(e@cSG^On(vd%7bsda?m=jqqs68?ASU;Q zv(3hpQv3_9RlcS3EffL8@B_*^YD?* z8~c5eA+QmbnQMCLH_lVPFcVa9NT2MVv1_E;-F5y&xl7Kd@I05FL@83NJwlaA)2i3-Zb7lMrI4-fhrSbr1}k)HT+{x{wTO z@Pb^(WoO-*3Zx4A8+_FHB{^r7SI$@&AWz=#7K>QV^3u_z?r$K8DU{={VA?~=Rvcmd z4r~zyc}w3(Xmn2=D};B|(c7k}?4@Cz9Tro<t3-Qi{D!jvuS{$PdmTZBc<|Cw#m`<6vZVvPFwdUeX{v@ zo%$1%Sq%FFK=4Mgnr)@sVmJ|yZ1m0buy zocZZ^2NectzBtgF6hZ2vQO9Tu+;``9|X>lMmMafrn;-AGam}u$thI0)n$(Z zL38d&LuQ#xig+nUvP^f?+aA*Nm+?qYa0~3UzCtlFE^Sb$f;o;=D}=0vzeN+S$#>p` zfptUbv-#bYG=YaxY%Pji%fo-YI}{rBEA;cMScYaf5J-(>rcviBVxuA?6)O!YSjDYX?d5v(c_a?>z^6j)|wb9Gn z9dS!lS{Y|c?_FOJCbtx?bKeV~F5H2l2qxenhTL5^1mjeRlWjlnr^5tAeIW_KT}L8@ zGiM)@e_z%(@DSfBWq#IC|r7znO{#q6^L)on$ zLy;t7!W?YAbd(j&!|_;_NXf-KYy=?>*nR4KmZJfI;?MWjno`@W110b+jsdQZ%qB%P zdjF87X6H+6oM6e4-Qz67`x}ErYS&rBo2HZ(W%h;Cn@JPw(M`Ku*_nr@#@0*v2#vX4#+H7 z9PEp3`=?w?kPncBbU=*QcgT@K3o}FMfidAb{i3?>4{}|_b6T=2t5V-;1kEoOFZv@b zU5X8k3uC?+EBm^K2Y?dsh0EJh0nYT{EA8KuoHrrp5FVt+SA!l ztPHFtNePWo^{kP>$tC2Dtf59Y`KO|za~mBz_H>rkXwCP`Mg%lo%>vb_yVGF2TC@C| zJZ@c1{75pbceSE4F)-dEgKT#g8wDH)KNSt9>`JLC!bhOM6K5?y)FevyLX5`-AFgV; zZ-P8qbe1(nmR=ROim~2zhw|PMNpkB2CrrTw(w@vxgy$llm7in2^_UIZZmo=ltT*rMlt(Cg46nyp7{6`HJW)Y zYr%b(ST%y4S3H5nO`}`#%lQY;kaZlOt_%AjSdX$j2srKP6E*r|OeVjn1clS^8SfLK zE4*>sh7jDx$eTDCjqckI%JF;=ZFPDOUft9;$oz49_a^5VofRAT<=pF3rVqvzUYn$| z0MVKO{TBUp_noh`BU<@VD!xQwJN)E_BTlUAAeM!im{vZh%uwO(k9!ApD4pR|s~X2r z-AWJ(>Tzoo#X@>Ga6fvXUl6HhCXCH2yohi4@;25bA;y!uCaOCNt1^qR(@+{tH1V!&ECHd`ytWuC+2z5V-DQWR$ zWirxBoDv>|pk}|f%eEk5zkqM*DwZ25LcbpkvuRbO#9UJ>Y)CaJ9``( zRDf9Bz|A*SuZ8z7T5fbIlZq!Nfz_6$E?^Ew`KEC!C2}2dIr%Z7=fPhpADg4g_N}xF zl`ON!mwNa0p752EVSNReAbpHz6dI1FFZUcl_Ua#ls9k=LGew?{7b@qT>b`7r)j!Oo>%+ofkFi!U)>jA=qS*+ypWvd0cd zbnld1;JceIGS1BYCRb?UYkrWKfR9vpA*_dQC}232e|UK38ZqV;xN@1u@3X1O2!ose z9ySI&^X^YFwvF^)>Tsi^q1=F;my`R-J|;OrHcS8Rujw8c_@b=R1RQCW%{1Dxw;Ro4 z?0mO_JJ?bT#Z|QR(W&CAM&$ffc=|_Ed8Y-|3ho)RmdL|fra{yiWo!wIqMP! z?B7)6;V%`T{HKb%Uj3~iejh+Uk_i}Hh7}cR-Wp=nsiw=U^kjt*kIG;Aji%pLTeso@ z((thQu};GD8FzxZW{p}(zw{e?JzP6Xo>oDK#>{hmkbUKH9+ViOwYmDvAo??G#znuB zETR8?9roDjnRD3pD>X--@>`5g)nj03-#v051uz-L=yJoR3k10zkT^QJ$G0qh_7&v< zAR3rtBgq1SSwnXr-hEpdE>0~I?XuLOEKDvrKzw?WBczj;v-e#l2^wyJFpb!b)1KrO zy<_%FpOW3>MGgK}gmG*z$!z5uBoggQ*`8ezinpfd+gaPg+;8vALF$_vVHw3BFw5}s zn8Rzk@8I|r^vBe)AYRBduRi4rhV|U(!Nm{CE7#BS=;YTCPE*x@4SR^?V%77V{iy*z zF1xPpuR#23`NSo4Z}jNHa-u{7B~>F5onfw~14yS$?^boU20^Fkb*WwGDay68Wu zRd_P5WYeq5_PVHWO;Ru`sVXfHq19iL3;i04nxslwaHPZ(Uj}*)*4b2n6E>)g^8Kl) z%}alXMA1(US9{f__axWq?39ok)I$cbrAI<>C{^rjv>~8FOkNc;dUG(3*sI6hNh%tieBZlttoCEQ zp+vV(_co_<7+QLqvr@W9B{t$*SqySV+?DGuYeEWGr~GeWNl{!cUY(uNMMB)Ay_BZ_ zIFZ<2DxIVRy+rX=4D(}%+W^eXQX>;$=H+aJr*%9{SQ?Gv@U@`<=yncAs`8SzkO@Z` zq!W$p~8)f6l2$B5O_9EK1y? zR^r0X6xVx^v)()W0LVy7qJ~*Ft!@ZCTSo9g=2UlEsy(zx%3)B`EuNOWR_e7XGhXs> z>MM5NzHx};J+afA8%GWBUNzDCW>j;+>;*a8Zj%Q?xaNjasFko?SW>|qJ1s!((Son? zMC|i0nkVT&vNa-yaTLB0j1VqK1zMQvo+C#v@kv3@#Z@!UK4czOvOr-WCM{z}{>1Y* zf_ToJ+b8n&IWO7s-p3LM9hY9mGdVK!!#dA6U-e&C}@}OYf$5_C=@}SaGBzVd#UsJlHz9q(o^g zlxXV-zkA^z;bpz+-8=~;-*P}r?nKdEU4X8?3td2G6}^cjeZO1wuERKj;mzSpF~hH` zA5%Yo#9XLwaI0z0(O)~Qb+ijR6d5}%5Wl8)b19*-kH?YZcVtj{Yk*9X6FWN1ww1sA z{d!ocZ}U7qudY+5S$5X)zKp=}mO7e5ERE{O&1&`@(rLPQoF~1C5yJ{2LwFMmYR>X! zWr@4sWSK}J|EjPgr>WR_vviow9wu$2J>(%=>zew)mVb2c&VrHs#-WkogGEixC1TLo ztu1i8)#cJc&+?71q$UOX2w-gyx6!=013js{%rq!Z`}CVGId64*HIclN>14`#Y@r1q zB)`Lk?<;hC_QMJWxYgBo?qEl|1MgEfCsNfP@$BD8`y(em1sqq@E(ynk~h;ptZyPvzalUu_TAqa88 zDwG}~Ay$`Y`5uEAq(6?e>8b6EIDF2G)+mS1!s4o5NzUyr+09zIeT^)F3`^DeEDd ze{ZBorpuL4gK?>**!mP_Ji}`Z`rK}#>JDKwsf$?{Zb7Q271Y@sm(Lcx@ThzKO`-|< zs~t+%$3OuH=Y+CjEZhXfPrnZC1CRkvzM%SBHjJRu7&~)?DpOgbvAanLQ)k|S;ba=F zH)p}fD)h$JInn)JPSY$9ZgL5-R4Dka+MeFBa}^Yw6sN=sV;WM_80rIyWnV>uPUn z1)*mf4ixaEtqK>^Ms9*2Meqroyw2KYZ+lHo>HG>vL0=qu`&yqJND1_`MCLH-M@oPK z(YcI;S5J4|lRzG_U4MOyS~ycK4AS=qavEhX;^)r*ck{Kq_f%1gviMhD!d8M$(o#@9 zTFo;_*j^}8!B@`NfF0`?2ROs5YT`pevx~-i)q6>kkC>ry<)9$y0AQ{7XkVk4;FNrE0>*2PV_1TWe1{ot|M*SYi*^^-1vEPSi-IMsv-C63_2 z=y?t_q|!YXzKLGfY(LN?wkw-mS`;s|1iGq`WgMmG_7<}Xbn+}#=(Ug@CN zg$EcDi&#UQTbP_D`-#+!a?2}XGUJC=CCmb4@G0UqDN6so!G3m%dBrruxxS6Qv18pGuK1i zzM2<<-fWJSe5lP4kCFAEzCMbj4i(NgHB-m*g6!^s1s|3Vc_6>&yAB@9+w;GFsh--! z`^88Ba%ZWu;l2%XFYqg&bYg2{Ub%R|Vh{O8x}@XCWe@b|FzmKJjsE>Cq60eYau{Tj zohSQCu%Yt9B83>19dpdDb&JHhBk@%O7WBF?W?80vn=Nv~St_r5@>^paSUmMRRWvBO z0p}kIrGLo(8VmVv{$cqq|L{LFWxrni@eiNb|M3s%*?-O|jEDR;|M2veijeLAfJ&y7%*HjO1#dKN&v`QH>(WvK!{^I*CVu~M0^IBx5p4*?mq|o=eZw7O zIhTf?TD(sjhEgLPH3nPwCTAb|Mj3!%-3|NuqJ%5{u4MBqN?A-3N=lE_8hzM+Y_sHJ zUv&bF`?ZA6cNvUDjn;|8@PxZGwC1mtQbxOR9z}#IuWz|hjvo-dV!Ye#b&V5dv+PMV zpQ0n4wLp`;_4)*kLfw?y%Vf|vgT>?wp=jAo8(=f`Doqh&IG6qbGv(OI!A2&YZ1y$R zOURUVg!mgA?)TRs`n2=Fg2JaOJ`f+@Tt&jgitrcD zjm3}rLw;c|a?*L;AWM3Tp>aplC!AWY4fiIx;|jas^;*Mw^8+-3|&uhOk#0vYAXI%}z{9SWr&_nIRg7ZieMEtR&(^?46o=E7LW zs$8M2STK|Jym>CUJ|5*WtSt8X6In4m9lD~%rm_YE)-*)?o>ivk&`b$G>>~~rYM@a@ zl>TxUkcGE1)+ZSw2~Qzcw)5}0*TpOdsm*F#wLFrYaU40ho#s0T1zq{%A9)%~7E-frs-z_5me^|Lju8_X>o>Hr)Q<9?t7J*JL3whOr7QmHMbe6klR! zuP1`#{DuI9_I9xOJgih$b@jZ{#n3EzIC?NPPP-;U48I{l z8YZNo?a-AnFe8V1yfTPw2fS$(jVxl{Fwe?uOC60u_K;!3^UV5|6Wp@SP^d)k`s2X$ z;;`&Od3UG^uCUlXWb{qz=M4Q?FD^K@Sp>u za9}=xHMEJ`^0%Hcd}Rdr=#sa&D;?;J7dNXAk!ao2m>rpKn!Cv>7l0>&_`TJ>rx>(T zX~6gohP{mVbU}f>717>6l+0zRzmB^SJ*hit58>+tiRre~Oew|o|pBSUYR@JjV@L*g} z`Q?xcV!jnO&UwSM1_*Gvbd0R-d48%?7}UBP*R>sD;(`}4f#G~%GFEr9YI?^5XEic){HQZ#)+u`Bl74l*}M6 zEzS_tfMTug7MVdYHE*H3+9m+eaPge!K2qz49Rh#=LIFI+&};IMZ6E*2Q&7QQ55c^W zKi-OV(BrgP}r3s>uTeX1FhDH@17vRB)~BT?NM0O$us{rJ2(19(Sc<64KkZ> z;(=1ZtSBwuz8#1mc^KF#X#(r=eOd480}D24{3xs-qE^#R+A_@j{?d7+Wt6PF70djkGj)a zN*_9QJlRu}PR?Jk`MC-f#Cc{SH9yLT&dg*7Z?SnvS{N|wB=)Go;#l)tx?Ud4P?J)Blr}Z_Y ztLHX@s4J(hX9=McUcdCrDalIpO;}OX(q`|sm6=F8bSJ4L`>OC5hY}GuNpNU3&D@Qx zo+PYMhwJt1u$tJBZZ==`Y$dDGA0&8NDYyp(<(vKZAUA$y(tBpF$MpSrbJkl<UP>8I!`4uNejniqr zRh#r#&PBW)d^up5=Mz}s5PE0LnUb@jOOlGZu{>gl!uvbqg8va;uU;c;>j?k7CGDHb z!N6s6;=9vG5Uo?_lUT}Oo4}m|7Rp!Ck5XOYXEHK@%-hb+Y9SfLD3uj*L&lDMX{a;T zwV|DskZmY0qj@)a+!B+RaAA2fLyGK3g+jFQ)It~8Ag*J#Cj#VrEXh%g&so z-V@{QqwH6ebEA9zhrM?S&U9Vdc9V{6+qP|WY}>ZeaniAE+qOD3JGSkPlRw>ajr!(T zbIq~V?yCAW-mO%fl~k&Z^Sz$?dXD=scX?Pd^h_O3!gk>+!YVYwk1@}Khn-Sh&{CTE zcdo1hf+JS|`*w0JZl zd1oi`TxesD)(`n_W91+u+ak~D!lC74>L{5?sN^Hhn_q1Z}p->ZIfHj?E{k*A= z!i;EW@=U#!>5mns;_D39`ESjVaM;cxDiOIJz?w~_m_?HUh9(wn0Z7i8Q?8b=dev!g z^%0v#YB3e)2;0R;8ipJWxz{TjOFZtE|cu&M6Yml4BdRK5vCjA`g# zv576+#}?JO#dkE@G}DUES_$JlKi(a9r*{PMhsmgMrnulybzKARtpwMwwLIdDMPi*t z&b`5pv>c#ZjQ@oEYQs|3Ep<{a)$Az;S!VT$9qq;@ad=yb_HvooJ#k!ai#xYkLvMoKYO8ji8*Ui~&et<31{nfR`{S0Ky=wZv z#kIKga^m0Q2dISjr}<&!&;0Q6AMZbafvNqTAMV)xH9yF*{myEwhWMxX;rUOCkp8_z z5PSY=ksdVwfW%X-AFK7IIMC#*5zuK4p<49P-tC(hZ`jN~)!?`-ErAEEJv7Xn`9rA` zR*_QrHGk3X9|~>YV1BOOO|C}WQ}1DQuh5OiVj}`Ebom%^0sokJoU^DNr@GsC>XoHJ zuw)6xfTXpm%U8pK-KRLwwy6qZ+q^K&a;4qo)avYogqFbY8T@WF@W5PzKk#AGx_Gx% z#p923d3v1fn<^N^)=A7eOgVVlED8tFkd1P^xNBqG&K0RZl zIsqgRy{(y+wpyFH>52}T@}pF@@J@A&B-1r)IJ%Ou;D>e$fgt7Gvwf9jyBfZl>&Eap zzqzT0;hs0-Rzo^?FLI#GZbxcvaqY-OYbt!uCs1FG#fWdMT=Iu_u&gF?j6yZArPpjkCcnR2EYWvvmywaB7(BzwFIu%iOCqQ~ZH_c7=&aOSLOnY zh}rLG7QQO&o+jP^DyXWNM|JHPmooOr`yI^D`e|QG`c+W5Anl^21*M!cuFYYuIur)G z?v|8qS@i*p*voFowJlPKA8u2vTe2)V59UKg6gU+!$K31vcN`U)kuw z0oh%8@~JgVaGr@xv`W@sTZy`NPjo>|`-Tr>=~UIym_ZFYHI*)p0!6gJKuPR)UPW~k zGS7xn-`i`vNe?T_itJp>~1tb|#Gg>|mY1i|e38Wan**UmYGT3A%J_4uS`0Q6suM}%qfcBPa zEm%T?)YOX!c3C*nqqb%mL=?_;M-7DV0MV9<)Q;_ z$Sm(W#e>ijY@Om0nqWP>mQ}{wXHdzM+wB|y36Cm}s-!;Z$SYi~(!ed=mL^Y#zaVWM zF`={r8^tsXTdtL_0v*apF7)ddYk32|3|toHJt*Yd-PDuUxMYTNp?`FCGhtEkJKFb6 ztM$Wot#)RFLh%L85Fh!&*by&eL4wb(Lh8K$9Y*!Wr=lKukXg{2U94vBHWM52g2L_QLj|Nzu|S@wz`oG8iO`G<@gq-YJ8Y+_6J7 zZCE5BW*{PJVQ!zsN5&3jmOhK2~jRmqH_6J5ce6 zG{)q2#=C$Z{$#n#-XP)nj*2oD8HU}bYHuDpT0ZOIs#HH9X{iFstqBkMwZk^9dUXg+ zJCM_C+pDTzMn1JADH7ZJo=|JeH2P<-6=8@@mn>9x!gHuL2DGP3v+#nNSw+}R4a{bX zZ4AqxCjqhqdD8c%tO0^9zf30gd>cAmG3)CCB*_^3%Irh5;UqnHJ=A-IQml-D3cs%ex1Gh?F6RVQowNt)B?9OQ_c71c4#pDSLjj# z&q3CXDI>I8+7PBYGk$YRcxytl*wE4xWSNmg=Ju%PaXb*PrTDnhYmsT0J!4mTN zCs}{2m#?dd;H~j6#v*d2_pvzXkG*4_Z>ll+$sY~55MSZ<*ccc?l)lZDRRmC&wzbI) z6<1Nvxonw1qp6q(LsjQ3M-?`WarB}bSQ@j(!!IV+RmiA7Pk z4!?`)+{R}SV!FwgpNw#@8d!cSZn&ujR@I;3s>jk?;9lWFf%a^SBBB`^e$vL+FmPV- zl)FLav)cY-y>Kg&!EcixcD@(`=Tl63q}yR0ZHX?a{k*&$D|?_Pf{!!bm<=DDM5uW- zFHdNyNO6g~^4g?*V7ddSP-jo0p!NjGv$ycI1rwyD0dtA50^DiF{T=C?I!c?%H6nf? zwZ*HBrAmlQfIU4`ACGtjfv>VoYAv7Jn-sB$Z?d3Wn2jSGdmE>8Ft6DUX5r(}gKy-p z!2#GX(s{+|V?F<;%^2p;)Y9CZMX@H4NS!q-rqM6>&$ zx7U=0Ge^iSZ7yk0^6k_GySJWsbXQ@*Zq*Z3G@>XT((|Kn&C`xRT&&-?w~gz{dUYZ3 zUqaA!E5f61kOh5|L1B*5wQ-S{F~HWJeIt@ek0uc$P;{Xzm2533AMPuZL$^VejGn}o z`iaQ{Mim#Pk}6M<5hay%qUb_3bfWII&5>8^Vzt!-LMGQYeOUgSYCC(6{=;OjNQXWG zt;_-xg`G=npy_G*%|!vAp&~&JdFBlvNfwYbi1{1sN81F!yZ2eOjFEllhtNK<8sP2m zWnm~({Qa^kG%c}t6hrhZ@K4)Da=@{u>XSC!n=8h9wSD0MY}GS{4FB~k4({LN$07O0 z_or9?%n#51IX@uw{GK0Xf_orX~vc1N@#Xr>4;)}>8j*&f{QB1vT+w!X9F$QNiIVkZkvgAMs(JcOG?6R7@U;~I3Y zwUmmYnCuW!@}bV6_ArD>Z3l&N8g8erKcqbi>A&#PHMYsDGT%)jF~r2oQ2^+!HB_tM z6}hgU%|B({(PK}94xZE}ZYyw%>K8sa4^y+J!g^uVhy(r#ZlVVq9V z4Dhizu-EYE9@_)^r!2zkrRSbul-;qUmBh?g8fclW9hR+c`-Gfu7<>F_M|7yjmOXZ6 z1@;hGXL#vQ>bfEXPch4?srf4wj!tLUb!9SoS&4IQRi3e&nG1G*H~066id|88CAUxk z5+)F4nNf6c4-R^^o6|${r8KE=z4B=FcQ{8?PinQR)OmfcFEe{2IkgbTypF%_lF6j@7}OHGG|ujO>0N3&o}PHX>Mk8wWlaGQw%{xnv@z61wa?N*~JeazlPwhZ8{g6 z*%gP)k3Q`BKY_dIoZ#B4`+CTUL~X%m?Rt=X-uvd{PtbFK@#K4!jZ5vc32KMfAR2jz z#UNo!%Qei3G~36`7PY0>tJ&r5g&1CB%y0sb7tzkl5pf1kNp%Ao`@S4b{Se@mK8deX zrU~=5Pysh=CR~vnq^7p&t{|3^;%77$@p+?NW(*2hJHs)Kb+b{_hbaEVg^p=MiMmD! zVPbc2eERxjfmQ-4(p9YYTvnl1TEt$Cj;TlD7iTU z0a0Uur*N1+)}-2pz~Xfh@i-Mu);ZSs$V+6HI1`3YXUnXpZUWS#-3c<^y-ihSZqTrd zN{z>qI2pS8-49R7>@j1JnGwK^3i@nia2II=<02f`#$iLhP`9MnRxZ~y4bOw3Z$Ln) zMF_pFgUcwX(pNeChIVe&3tC+@G(1_FyUHe!E|fV2FKby3%D8OzScUde%lu_-bPuDb zdrTWfJMlKBtcwv@2rPr&w-WUByKQFH@EFFCjHMExRCBzAt)ry!IUo#PpQNbe=m!8j zZS>{7;-|Ft!paNmXi>-1vZPX3CTV6fspT24^gS?=#Rb*}*xy`kTV~=8?B@n!?X6ZI zfEREr>RT?xPpHIaXF6=7$Gk)QRB-2{WS5HjlFdOtFR923;Gl&rnE`ykxkgatBo5CrE^x@i?LM->tMYjs zHOext!0qOt!k9OMzZnF`TrmhHkLvVE6;@*9xD1-0`f)EEZHRat$zUfL|3RAXr2Z;g zNamxrAggpnRG2p~CA6<`c9$9Bd-X-%L>3)|MUKpLvD)SVE3_9VxPP5h;W?4-dz)zA zt5YJ)QwUdIzj%)@xF{wARE+-?;?S|uRln@U9zK87;eDH`{2Ei;Ob@ptO zz6C^FbKx>}f$M-txwm#J4l`NUDC(H$Bz zd_up;PxQ~^fBQpzqQ8@$XzefZ!~FsP@TMwF=)CN2Q8^ET$cx`p5q-ZcyiTA6ut2e) z6y=7uO94(`m0Qa4p)ICnElMn&oBh0HE|{Dgghu(5P4`^gHnL);FG-DRwnwfIUXPTB zmy*YwDu~jfRnKd;%ZN>}i3oxQ^(I)OaI;t^OZ^dKFWC=}fK}&Q0 z@O#g67SoVkr<1WTv-ZN{La*~a&wGNG=YzJxrIQ$SlUErH%__F~3r*#aiK8e2+kH~3mYJ7%E#sAXQ;7XQE6Tzt zW(gt)D9Yq68|d8VeFxbOo@wp>Yt%f-rlF+ zkOT_d0vqm?P6WV2kS%xXm^XZPK0o*%bOA{jU&ozf((RYH<0^-8RryF1|H?GqFFa^0 z6ybuFLKa{TU`uQ{;1ekXXkwl-G0p9uG7~DE>zf(>j@T!-y>ai#KRCnLsz@h1tULpy zB0c3sWUUG?)d~XSY0|VWEAQX#Tz6J!i(ATbLI&>^g7A8*A!sc|bPkNOp zOo!S@^ki9azVtr813tPo3H3|K19b|U4GD(?M9((!1D{q4Gc`{>2x}22a0xbRfLR1M z7ZM2bYgjw~&>8F7HzMSzJqDX(ewV_TW?&RLr{9OGqHH~V0?{36rLMfw(C~)r~Xh9{;rYNlTr9KkqG@9*|8)&}|=DPsE;)KEo zUeHi*iYRyLTj22H8XnrVcQ?KT-LBBNx?U1qMu)eXjYx-q(e}&;HV5KsM<>qhO#kEr z=$^tHcFbibDv$cFL@deBd}iuAwD|c}8T2|(ruHjqM7Yd;28-mw{MB9)F^nQ@V(vwm zGsPzG_r^csde#K-MX~f$6A^?q?yoM7B&w?HvXdAAr@!A?SiRXZ$kRGkQtWYvH1@l< zk7B65+FSD3@djXmBWWoMNjv8)&i7Al%zE>^o8nuJ%F*k zAUtH&`F+zTHS`O8-l0D)V;Ue5Xw?tRy-(*)au)86bD$iEa$>(7t8#oZR}m8X`(271 zqv~k-mdrw^fds%(+&RBv zEwnTGmye|@O*PLb>Wja*2;KjB-A0f*E(x`<-eC4~6mAu)=24AgA!*UwziK99Ah~4E zLYtzGh9Qp|IQaFUm%9@$%=G`DPh?^EHx=Ojn?6xQL_$bSluB7aRZic^O5e!bR*FW@ z*2?J91Zbsi>WKd-3>3AsaS{}?b;H-BVPIjzr(vRJz-OSRr^n}DV)-ALA{#yX-(-qx zpZdiAktwpW{w6>DKa>Cc5BUlIPJW7*zsNsX2LSM2l#C3FO#kL&Wc#gkG}CubGpY^XF{=2-9k%f(ge7@4V2WfT=!|42D33%WXksErN=r+N z&M1h$P z(<#5)A2_|d7C1fMw-P8PtRtZKRmML?K~N@9uCM=RKZ2fg$(DhcwZ1U9p}vv9sgaF*&7~|AQ6|QVYts%$Gnell09K?e5X1#hPuc0iT?HB{&zeyn%vIN{K%mAxlJEI zC^A7NG2hDDO1dSz3^>*|Rp{?rm`3qgaUr{bTL{{(5@BS1^92{I292!epNbeJ6 z_>}K>+?f-AlOKC7b&sc{4NPxX=2oVAH?k5R&+mP&_nbh~R+-?L(rcL?BgSTeW>(uq zwlG(Z=`VCCo%sXZ%vu@LRuk{xfHb-Jp%^_gODp{&$8_VmXFhGWy3UC2bPGUd=aoF~ z>(&pp^B;S9+h;}w)?eX%^uMwd$KGzPnV>e&Lw{hSP-rT036c(e)O;4sNAc7`|Me!Q z{JWz`$$K0C`s%WVCp>0)N+133GRKFsg!q$BG2`0@SL_F#`0I!8)(6?m`v=lPx8+?o z^!3N4`}^he4(-pM4ggs3K5Pi@hd4syLXT4&pZw#s&(dGHDCLzE< zBHH!2EltrxS6_agb8GsrOI^bJaJ}#$c~0gCh^S~tYXP75@Gkz8FJ7s7nxeqH{FX0L z)VU1)kuTQNWOC)A;UIBw5#TV9jcvvnnh@?87+*i}8NH%~9C!b$127eXauq!9HfCac z(|rASe77uo+0^T|iad+>;Gh|u1kl{=20Qb?e7DDHW#@cfxZh0u(7f}h`rtVsCA}aO zr9Y)|5#{bpI#$P+yhnE@Qp{Tc`X-e_MDWX4nsOlMz0sx9`*_<^OBpoVnc!}MY0Za| zJ89~?8`ehwFY-QDQ}M1SO$%-7IY#atjnF#Y)nOVNgz+e`*Ho)S%yXT3OCvS zI#fVv|BAdy6W`*Pxe@`*5hhDMQ~9TvVK9(7qyB$cg@d*6p-mJ3BI%G z&$rrUY%&r_sthPot00lU5($L&z}cytyFuSU8D1U=BlXGZ3vlU)9@r&}bKSRtF|-{X z-7JErysOTooO0ovPg4|dDihLZ zWc@Tg54-hN7?8;>rZYcnszrliXn&&7^EKENw2g2f#im(OJ7uZ>o^Nwnm33e?nST%w zST7{(N@qvXd|%N+RV2@R7AyFMk*Ww(8y`r%oVf%(cDMv9wY74U_f@+MPvgYM^B~)L zVDr40L}of-lR!|O&aQ1n7Go#>@OD70e{_v!Boq(QcYz51C%!?{&7oV^w8IV}yFs2R z<4SoHRu_W8sX_u6?8R0?wPqk%%j5nGpsa1BklpU(3s#N06z(U|qLpl^qfY#wv`_F!`?H&w6aGF zi*-Y^)hXfBE93Em7Ep8gIaIEcBpix+%FhyWwauJDb?J@=*^(5muEJ9oh(Ma90Xb;r zjBw9uIA2zpZ9A`Q&QgA+l)aL4Q@p^*A~5x=&aC$N3{4eX^r9UI6qw=Rw&C`g1UkF! zY80&L(JI_AZwRR)hGWDONi_y-K~EGqeog+VxfO|Fqot|ihVu-=m^OR{SEAAWs+1G- zZq3kY!&xU*t8SjfHW`}@vZ^FG>Rq#lGGdLHyD`xo+5;;qCTd(=&*tf1aWjPIx?_SB z(^M{$@qzF#A(CK?`dRGc2(*T`yj%TCFjXIl<3G9lGL%~Rh^x=P$=FGO%^x7=-Moam z(m)q%7OI?vS8F!+fUa&T0P!9__6+4!YPo*Rb*$&X#t>vPitg+AkOr+Vdiqi9sS@Aq z5ITf?wom(O1pU!<9X$_&8a7VX9dJ-ACp)t-OW7UWtxIG}pdv+IY-~>phj*Y(uKsj` zel)QtAXHZM2PSQdwN+Z*WE?yv^=gL=N?mWxp+m(ECWQ3)}u>AHV}?OdNK+~ z*$9&>`n*|+;gx+Qr}2sHwYF>IoaY`JW?`6X;0k%|+xk0h59-9uY7X{Oe2giz=NLEP z?V)5m%5G{FyqxEEvcVr6^Sx*cp)UTvbU7B@?+io~4rpx7>x}YeS*f4#gI>isD*5W0 z&A|x4VV!A z7DsciPq7BHoI;=tkzXSep4@P&j zJGpL%DLVDk$DYB(34fD`+v;=7v`>$MYj?TSL;8h7b1R0}ZzzeYtAZJ~TpHfmQ6ZHf zvvf#1_%-5a7jRy!p&cXHa5Js332L{F3fv_n#8d0VMY(H-uMEHB@TUyqgs0(o8I(dC zr@j|_`0SDrt)Wxwoy9A@0b&^_Bvc6IHq4~EU^wtR?M;Us8yAofQ;UZo1&5l_f9~phF8#IrSVk;`zEA&!Y#v>apto{JG z-{jx;NAkY_{2@R7-^tJX_!s$;H~|2vGFS1%dw}VU#4B{d$+qMG_}gGHjL99yRClqm z_wO6?oQlB4r8vD-%NxB{Ai~g?^GP@6K^_-J_)cK7tY(C+I|mkjy)x1v4L zN2-k2mWLWeQn(X+;*F6-d&aPM)6P9>ZuCmu%?V4gy?JDzo?;xH<%sv81^g@TT~nHgruaG1yV4Ui#3r0i$V{YFfN;nS0Ul1FsD*% zY55K|AK;Ry?@OpZsCuau{niCu_ zNu*E_b}H%NTY^bv3l-362U>1z_q6h2o|&>17R8r}77xAjRwQl$riF{FxS0*%Lu|(; z#A)|-)Zcd6j?X-~?6~rSM>)9i$BV@%lAr}KHCadZiFk1PmOofV#KQJh;>e3r(Q@(N z(Vrjo^?hx?!gRcl^KiL3UMn6(Rl479kvzvFZfB7eC@IEE*-buwFs`v zGg&~u*9wVqx~018wJ4CIsTZGM7Imc z(~EqS!B3n~Okx5HbC)`d^HYc$q>wRg*jJoPE5)luM{&_@vge!?+{EYnX@ev+4K_U5 z0!e&1U98k-vDD}@9@QZ&BBi{%%A)MiX7vcEYA(r3b0YkNkJ$Q+}DiT5ob8neW5^H?312+VFTp^O zI@y&Yt@Q1f;!V6=mHe`)z(q#y@Bu1*)0lVL@1Z*!(w6-vP^}g#zborYRRLESVJMh?jSk|>z>1

j_$+Wy#_3@r_erwQzN?!)oa2R`LMg;{Uk3n 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

  • (G$5@iA3{|S8(MGCT(enq4vzl1Em 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 z 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×t`nFR_*Nq@@Zwwg?zDQ@4{rEY^(lAc#*K=a^>@S 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

    13G%DAd{(6jbVK`v8-ee5W>~^kgVmNp7natX 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

    N}{YCG#od3U1>HpZN^!oR^am@dHH;z&N*Sm2L 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�Ep`u!EuoCC|(7rpEKXCYAJ5X^k2`n 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 P9F4poq)xtflcg&-=R5^)#K9v2*w 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

    *DERf$NPr8`m#6|Mmz-t)JW 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≀=IbS*(gdrQ%*|0SZ)v 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

    >kMNm$fRuA&HoWyn$6+$ZIE5 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

    X#kiWY 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%0Ak;kMx1<^k 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%0DS*XoRs9QO49$7J;hR&P!EUQdkq>0FZok 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%0A7{(jV4H}~ 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%0Dye`CV6H=KSgx~O?ZzHeTiXy`F0 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

    qgtl*XM!8`T4xee+dOnuxRqdC0j~S`f{Y7;Il| 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 QiAWz%de>@`@0B3R4nzUqEooSn3k9?IG_ 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𝔭afc*#8hAX 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

    Q8j%omD?^l}n925t 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

    w=B`lZ6z{ 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 literal 0 HcmV?d00001 diff --git a/testing/btest/Traces/http-byteranges.trace b/testing/btest/Traces/http/byteranges.trace similarity index 100% rename from testing/btest/Traces/http-byteranges.trace rename to testing/btest/Traces/http/byteranges.trace diff --git a/testing/btest/Traces/http/get-gzip.trace b/testing/btest/Traces/http/get-gzip.trace new file mode 100644 index 0000000000000000000000000000000000000000..8e228e4125e9595e9f8eee104ff9717823c2ed0d GIT binary patch literal 1613 zcmaKsT}%^M6o7Br>1?fArMMbgm+UCw?!xwG__J+vx2UE3SYU09##NJ2hoPHtrct%MWGW(0g2vNYr<#o}qcC{!v&q0ne^7v&$vdyFzcKWk=5 zHC$sPxQQHb`Wi?;%xqx<$(VuEk4zbwRn3qgyEof%)LEFIGfIti*-3R3(jk)uy*qf8 ztOF{B%)4aqGW2G}H1BMn)3z+G@Q4#Cknrt8G7{BAEI9@+3>op@`FtdXbs32{Tw&zW zT%yzA;Y?!0ALJ@Mo_Z5+73j1&Eef7KoZ7Oim?i9TEM~qpt(X*w>21p**1sncg0S5>C}bZJ z&;G*_H|!QeMs%<%;>5a)#2jLsfhJ=Sfw&2Yvm51#%x12xCLvvOEhR0hYDw{Ytm^aD zw5occPY0k+1>M8Rs@}mgDE$C%dQY#vIl{5nngK)ehfJzXi$N7is2?3yj_}FbWoqP%TGl}4s#M;r-BdPhVckUEdnST$fT)lcYsZ%Bj~dd3->>({dE8T#nYC-2{ijfNam zXq#WPg>{X#TV9`=zG4{+R@xqm_GfwhySuLU{9gHlXWrfatH*tH=~Ttd-Y-wQDzzTF zbt>}1*wf*Q1#e$YkLB)fUv+T%glET<=X-Tym*4OFFfeG@u#jH=W;Cawdfu8D)AyHt z9{TClL=_GpTj zK02g?T^XPEopVQrxe*^7J+bz|$L{02yJt_(!%v9v@$PRz$H3AIj?p%B>_|G^h4FS{ z9Y??VBKcv<;0T`~IORLi9HZdafTz6An{?a?j(3n)y*NdbI}R43V`FWaV}qfYiN-ra Kla7<%xb=TW)DPYO literal 0 HcmV?d00001 diff --git a/testing/btest/Traces/http/get.trace b/testing/btest/Traces/http/get.trace new file mode 100644 index 0000000000000000000000000000000000000000..f098e04ae6d2d9e242cdf85d12c970198534826c GIT binary patch literal 6335 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 literal 0 HcmV?d00001 diff --git a/testing/btest/Traces/http-methods.trace b/testing/btest/Traces/http/methods.trace similarity index 100% rename from testing/btest/Traces/http-methods.trace rename to testing/btest/Traces/http/methods.trace diff --git a/testing/btest/Traces/http-pipelined-requests.trace b/testing/btest/Traces/http/pipelined-requests.trace similarity index 100% rename from testing/btest/Traces/http-pipelined-requests.trace rename to testing/btest/Traces/http/pipelined-requests.trace diff --git a/testing/btest/Traces/http/post.trace b/testing/btest/Traces/http/post.trace new file mode 100644 index 0000000000000000000000000000000000000000..91a8ffce17e46cc64c015ad6fbd8271606ff0b1b GIT binary patch literal 1871 zcmai!Z)g)|9LJxWQOfB-)fW1ql*b5erY4tb(-=>S@gEDiYBU)XJ0@rHm}Z`L;c_*K zI@pe{l1JHFLJq@kT%`5I<%Ku1PiJo|R9eUZLK45` z6C|PR|6<)T@#X)=>Z$x2v}#7|1h3hl`=!&Yf_#M0&M;hr7gh$JTAo=S&p zyLhr-giR|iiF>kHR)oW#9F)X;reVWVp^ur7w}(}#fS7xhIbUQd)rv*Ekk#yhX~^e7 z<#IW6%CydeAPFe1=l4;cAt`T};F@9*UEVdqOrJE&&y}lq)8ZfOwzF-7Y8c+Zu+7niKd*M4C*oM(l z1)Y^3c;S+>1;fD37}0gU2k+pM=t@rsbH$4?rI>xE^(IIfud@ zbYlNg<2mPcLyq_H7~Jn3)`y4RuaA#=0fz`fOGw?2%Yn0kSKd1<0pNG4f^~;SYE{W; zw#Kv6XDJ|FLLW`9=*)O0Ix|r5I&-`YoVoVX@4U{8|Fe?Ug$ODRPBc|q4~h@Gip6SO zvC-=!I=7V%=-11=KHkQ?zMk}7tkk@&xFbKcMA18sPc|ZB<$e>!_EBWKS7ST}^Qd4Q zAEt%cUwaeAAZPrlfw3JJU*X@<#bS*y28?A?+?=T^dKrH^j*MSw4UDgDPL8+p&P>!8 IuL5K2Kjc4OM*si- literal 0 HcmV?d00001 diff --git a/testing/btest/core/ipv6-flow-labels.test b/testing/btest/core/ipv6-flow-labels.test index b4e60cb0a4..2265cd55d4 100644 --- a/testing/btest/core/ipv6-flow-labels.test +++ b/testing/btest/core/ipv6-flow-labels.test @@ -1,4 +1,4 @@ -# @TEST-EXEC: bro -b -r $TRACES/ipv6-ftp.trace %INPUT >output +# @TEST-EXEC: bro -b -r $TRACES/ftp/ipv6.trace %INPUT >output # @TEST-EXEC: btest-diff output function print_connection(c: connection, event_name: string) diff --git a/testing/btest/core/leaks/vector-val-bifs.test b/testing/btest/core/leaks/vector-val-bifs.test index d42e273bc5..775f06e987 100644 --- a/testing/btest/core/leaks/vector-val-bifs.test +++ b/testing/btest/core/leaks/vector-val-bifs.test @@ -8,7 +8,7 @@ # assuming that it didn't automatically Ref the VectorType argument and thus # leaked that memeory. # -# @TEST-EXEC: HEAP_CHECK_DUMP_DIRECTORY=. HEAPCHECK=local bro -m -b -r $TRACES/ftp-ipv4.trace %INPUT >output +# @TEST-EXEC: HEAP_CHECK_DUMP_DIRECTORY=. HEAPCHECK=local bro -m -b -r $TRACES/ftp/ipv4.trace %INPUT >output # @TEST-EXEC: btest-diff output function myfunc(aa: interval, bb: interval): int diff --git a/testing/btest/scripts/base/frameworks/file-analysis/ftp.bro b/testing/btest/scripts/base/frameworks/file-analysis/ftp.bro new file mode 100644 index 0000000000..153eeb186c --- /dev/null +++ b/testing/btest/scripts/base/frameworks/file-analysis/ftp.bro @@ -0,0 +1,68 @@ +# @TEST-EXEC: bro -r $TRACES/ftp/retr.trace %INPUT >out +# @TEST-EXEC: btest-diff out +# @TEST-EXEC: btest-diff thefile + +global actions: set[FileAnalysis::ActionArgs]; + +hook FileAnalysis::policy(trig: FileAnalysis::Trigger, info: FileAnalysis::Info) + { + print trig; + + switch ( trig ) { + case FileAnalysis::TRIGGER_NEW: + print info$file_id, info$seen_bytes, info$missing_bytes; + + if ( info$source == "ftp-data" ) + { + for ( act in actions ) + FileAnalysis::add_action(info$file_id, act); + } + break; + + case FileAnalysis::TRIGGER_BOF_BUFFER: + if ( info?$bof_buffer ) + print info$bof_buffer[0:10]; + break; + + case FileAnalysis::TRIGGER_TYPE: + # not actually printing the values due to libmagic variances + if ( info?$file_type ) + print "file type is set"; + if ( info?$mime_type ) + print "mime type is set"; + break; + + case FileAnalysis::TRIGGER_EOF: + print info$file_id, info$seen_bytes, info$missing_bytes; + print info$conn_uids; + print info$conn_ids; + + if ( info?$total_bytes ) + print "total bytes: " + fmt("%s", info$total_bytes); + if ( info?$source ) + print "source: " + info$source; + + for ( act in info$actions ) + switch ( act$act ) { + case FileAnalysis::ACTION_MD5: + print fmt("MD5: %s", info$actions[act]$md5); + break; + case FileAnalysis::ACTION_SHA1: + print fmt("SHA1: %s", info$actions[act]$sha1); + break; + case FileAnalysis::ACTION_SHA256: + print fmt("SHA256: %s", info$actions[act]$sha256); + break; + } + break; + } + } + +event bro_init() + { + add actions[[$act=FileAnalysis::ACTION_EXTRACT, + $extract_filename="thefile"]]; + add actions[[$act=FileAnalysis::ACTION_MD5]]; + add actions[[$act=FileAnalysis::ACTION_SHA1]]; + add actions[[$act=FileAnalysis::ACTION_SHA256]]; + } diff --git a/testing/btest/scripts/base/frameworks/file-analysis/http/get.bro b/testing/btest/scripts/base/frameworks/file-analysis/http/get.bro new file mode 100644 index 0000000000..1f7c5e0363 --- /dev/null +++ b/testing/btest/scripts/base/frameworks/file-analysis/http/get.bro @@ -0,0 +1,76 @@ +# @TEST-EXEC: bro -r $TRACES/http/get.trace %INPUT >get.out +# @TEST-EXEC: bro -r $TRACES/http/get-gzip.trace %INPUT >get-gzip.out +# @TEST-EXEC: btest-diff get.out +# @TEST-EXEC: btest-diff get-gzip.out +# @TEST-EXEC: btest-diff KPVibShQgUc-file +# @TEST-EXEC: btest-diff LMA6EHLacYc-file + +global actions: set[FileAnalysis::ActionArgs]; + +hook FileAnalysis::policy(trig: FileAnalysis::Trigger, info: FileAnalysis::Info) + { + print trig; + + switch ( trig ) { + case FileAnalysis::TRIGGER_NEW: + print info$file_id, info$seen_bytes, info$missing_bytes; + + if ( info$source == "HTTP" ) + { + for ( act in actions ) + FileAnalysis::add_action(info$file_id, act); + local filename: string = fmt("%s-file", info$file_id); + FileAnalysis::add_action(info$file_id, + [$act=FileAnalysis::ACTION_EXTRACT, + $extract_filename=filename]); + } + break; + + case FileAnalysis::TRIGGER_BOF_BUFFER: + if ( info?$bof_buffer ) + print info$bof_buffer[0:10]; + break; + + case FileAnalysis::TRIGGER_TYPE: + # not actually printing the values due to libmagic variances + if ( info?$file_type ) + print "file type is set"; + if ( info?$mime_type ) + print "mime type is set"; + break; + + case FileAnalysis::TRIGGER_EOF: + fallthrough; + case FileAnalysis::TRIGGER_DONE: + + print info$file_id, info$seen_bytes, info$missing_bytes; + print info$conn_uids; + print info$conn_ids; + + if ( info?$total_bytes ) + print "total bytes: " + fmt("%s", info$total_bytes); + if ( info?$source ) + print "source: " + info$source; + + for ( act in info$actions ) + switch ( act$act ) { + case FileAnalysis::ACTION_MD5: + print fmt("MD5: %s", info$actions[act]$md5); + break; + case FileAnalysis::ACTION_SHA1: + print fmt("SHA1: %s", info$actions[act]$sha1); + break; + case FileAnalysis::ACTION_SHA256: + print fmt("SHA256: %s", info$actions[act]$sha256); + break; + } + break; + } + } + +event bro_init() + { + add actions[[$act=FileAnalysis::ACTION_MD5]]; + add actions[[$act=FileAnalysis::ACTION_SHA1]]; + add actions[[$act=FileAnalysis::ACTION_SHA256]]; + } diff --git a/testing/btest/scripts/base/frameworks/file-analysis/http/partial-content.bro b/testing/btest/scripts/base/frameworks/file-analysis/http/partial-content.bro new file mode 100644 index 0000000000..aed7bd1778 --- /dev/null +++ b/testing/btest/scripts/base/frameworks/file-analysis/http/partial-content.bro @@ -0,0 +1,89 @@ +# @TEST-EXEC: bro -r $TRACES/http/206_example_a.pcap %INPUT >a.out +# @TEST-EXEC: btest-diff a.out +# @TEST-EXEC: wc -c uj9AtyGOiZ8-file0 >a.size +# @TEST-EXEC: btest-diff a.size + +# @TEST-EXEC: bro -r $TRACES/http/206_example_b.pcap %INPUT >b.out +# @TEST-EXEC: btest-diff b.out +# @TEST-EXEC: wc -c ns7As4DOZcj-file0 >b.size +# @TEST-EXEC: btest-diff b.size + +# @TEST-EXEC: bro -r $TRACES/http/206_example_c.pcap %INPUT >c.out +# @TEST-EXEC: btest-diff c.out +# @TEST-EXEC: wc -c MHMkq2nFxej-file0 >c.size +# @TEST-EXEC: btest-diff c.size + +global actions: set[FileAnalysis::ActionArgs]; +global cnt: count = 0; + +hook FileAnalysis::policy(trig: FileAnalysis::Trigger, info: FileAnalysis::Info) + { + print trig; + + switch ( trig ) { + case FileAnalysis::TRIGGER_NEW: + print info$file_id, info$seen_bytes, info$missing_bytes; + + if ( info$source == "HTTP" ) + { + for ( act in actions ) + FileAnalysis::add_action(info$file_id, act); + local filename: string = fmt("%s-file%d", info$file_id, cnt); + ++cnt; + FileAnalysis::add_action(info$file_id, + [$act=FileAnalysis::ACTION_EXTRACT, + $extract_filename=filename]); + } + break; + + case FileAnalysis::TRIGGER_BOF_BUFFER: + if ( info?$bof_buffer ) + print info$bof_buffer[0:10]; + break; + + case FileAnalysis::TRIGGER_TYPE: + # not actually printing the values due to libmagic variances + if ( info?$file_type ) + print "file type is set"; + if ( info?$mime_type ) + print "mime type is set"; + break; + + case FileAnalysis::TRIGGER_EOF: + fallthrough; + case FileAnalysis::TRIGGER_DONE: + + print info$file_id, info$seen_bytes, info$missing_bytes; + print info$conn_uids; + print info$conn_ids; + + if ( info?$total_bytes ) + print "total bytes: " + fmt("%s", info$total_bytes); + if ( info?$source ) + print "source: " + info$source; + + for ( act in info$actions ) + switch ( act$act ) { + case FileAnalysis::ACTION_MD5: + if ( info$actions[act]?$md5 ) + print fmt("MD5: %s", info$actions[act]$md5); + break; + case FileAnalysis::ACTION_SHA1: + if ( info$actions[act]?$sha1 ) + print fmt("SHA1: %s", info$actions[act]$sha1); + break; + case FileAnalysis::ACTION_SHA256: + if ( info$actions[act]?$sha256 ) + print fmt("SHA256: %s", info$actions[act]$sha256); + break; + } + break; + } + } + +event bro_init() + { + add actions[[$act=FileAnalysis::ACTION_MD5]]; + add actions[[$act=FileAnalysis::ACTION_SHA1]]; + add actions[[$act=FileAnalysis::ACTION_SHA256]]; + } diff --git a/testing/btest/scripts/base/frameworks/file-analysis/http/pipeline.bro b/testing/btest/scripts/base/frameworks/file-analysis/http/pipeline.bro new file mode 100644 index 0000000000..6ca05188b8 --- /dev/null +++ b/testing/btest/scripts/base/frameworks/file-analysis/http/pipeline.bro @@ -0,0 +1,77 @@ +# @TEST-EXEC: bro -r $TRACES/http/pipelined-requests.trace %INPUT >out +# @TEST-EXEC: btest-diff out +# @TEST-EXEC: btest-diff Z3kT1FyLnfk-file +# @TEST-EXEC: btest-diff WLJWC1FMBq9-file +# @TEST-EXEC: btest-diff Ac8PLL9KL49-file +# @TEST-EXEC: btest-diff NV2MvAX0Is4-file +# @TEST-EXEC: btest-diff YLndcRpw5Ge-file + +global actions: set[FileAnalysis::ActionArgs]; + +hook FileAnalysis::policy(trig: FileAnalysis::Trigger, info: FileAnalysis::Info) + { + print trig; + + switch ( trig ) { + case FileAnalysis::TRIGGER_NEW: + print info$file_id, info$seen_bytes, info$missing_bytes; + + if ( info$source == "HTTP" ) + { + for ( act in actions ) + FileAnalysis::add_action(info$file_id, act); + local filename: string = fmt("%s-file", info$file_id); + FileAnalysis::add_action(info$file_id, + [$act=FileAnalysis::ACTION_EXTRACT, + $extract_filename=filename]); + } + break; + + case FileAnalysis::TRIGGER_BOF_BUFFER: + if ( info?$bof_buffer ) + print info$bof_buffer[0:10]; + break; + + case FileAnalysis::TRIGGER_TYPE: + # not actually printing the values due to libmagic variances + if ( info?$file_type ) + print "file type is set"; + if ( info?$mime_type ) + print "mime type is set"; + break; + + case FileAnalysis::TRIGGER_EOF: + fallthrough; + case FileAnalysis::TRIGGER_DONE: + + print info$file_id, info$seen_bytes, info$missing_bytes; + print info$conn_uids; + print info$conn_ids; + + if ( info?$total_bytes ) + print "total bytes: " + fmt("%s", info$total_bytes); + if ( info?$source ) + print "source: " + info$source; + + for ( act in info$actions ) + switch ( act$act ) { + case FileAnalysis::ACTION_MD5: + print fmt("MD5: %s", info$actions[act]$md5); + break; + case FileAnalysis::ACTION_SHA1: + print fmt("SHA1: %s", info$actions[act]$sha1); + break; + case FileAnalysis::ACTION_SHA256: + print fmt("SHA256: %s", info$actions[act]$sha256); + break; + } + break; + } + } + +event bro_init() + { + add actions[[$act=FileAnalysis::ACTION_MD5]]; + add actions[[$act=FileAnalysis::ACTION_SHA1]]; + add actions[[$act=FileAnalysis::ACTION_SHA256]]; + } diff --git a/testing/btest/scripts/base/frameworks/file-analysis/http/post.bro b/testing/btest/scripts/base/frameworks/file-analysis/http/post.bro new file mode 100644 index 0000000000..4807edcd3f --- /dev/null +++ b/testing/btest/scripts/base/frameworks/file-analysis/http/post.bro @@ -0,0 +1,74 @@ +# @TEST-EXEC: bro -r $TRACES/http/post.trace %INPUT >out +# @TEST-EXEC: btest-diff out +# @TEST-EXEC: btest-diff WDJLxTGN0m8-file +# @TEST-EXEC: btest-diff LkolCF6OeHh-file + +global actions: set[FileAnalysis::ActionArgs]; + +hook FileAnalysis::policy(trig: FileAnalysis::Trigger, info: FileAnalysis::Info) + { + print trig; + + switch ( trig ) { + case FileAnalysis::TRIGGER_NEW: + print info$file_id, info$seen_bytes, info$missing_bytes; + + if ( info$source == "HTTP" ) + { + for ( act in actions ) + FileAnalysis::add_action(info$file_id, act); + local filename: string = fmt("%s-file", info$file_id); + FileAnalysis::add_action(info$file_id, + [$act=FileAnalysis::ACTION_EXTRACT, + $extract_filename=filename]); + } + break; + + case FileAnalysis::TRIGGER_BOF_BUFFER: + if ( info?$bof_buffer ) + print info$bof_buffer[0:10]; + break; + + case FileAnalysis::TRIGGER_TYPE: + # not actually printing the values due to libmagic variances + if ( info?$file_type ) + print "file type is set"; + if ( info?$mime_type ) + print "mime type is set"; + break; + + case FileAnalysis::TRIGGER_EOF: + fallthrough; + case FileAnalysis::TRIGGER_DONE: + + print info$file_id, info$seen_bytes, info$missing_bytes; + print info$conn_uids; + print info$conn_ids; + + if ( info?$total_bytes ) + print "total bytes: " + fmt("%s", info$total_bytes); + if ( info?$source ) + print "source: " + info$source; + + for ( act in info$actions ) + switch ( act$act ) { + case FileAnalysis::ACTION_MD5: + print fmt("MD5: %s", info$actions[act]$md5); + break; + case FileAnalysis::ACTION_SHA1: + print fmt("SHA1: %s", info$actions[act]$sha1); + break; + case FileAnalysis::ACTION_SHA256: + print fmt("SHA256: %s", info$actions[act]$sha256); + break; + } + break; + } + } + +event bro_init() + { + add actions[[$act=FileAnalysis::ACTION_MD5]]; + add actions[[$act=FileAnalysis::ACTION_SHA1]]; + add actions[[$act=FileAnalysis::ACTION_SHA256]]; + } diff --git a/testing/btest/scripts/base/frameworks/file-analysis/irc.bro b/testing/btest/scripts/base/frameworks/file-analysis/irc.bro new file mode 100644 index 0000000000..344a2ad6ab --- /dev/null +++ b/testing/btest/scripts/base/frameworks/file-analysis/irc.bro @@ -0,0 +1,68 @@ +# @TEST-EXEC: bro -r $TRACES/irc-dcc-send.trace %INPUT >out +# @TEST-EXEC: btest-diff out +# @TEST-EXEC: btest-diff thefile + +global actions: set[FileAnalysis::ActionArgs]; + +hook FileAnalysis::policy(trig: FileAnalysis::Trigger, info: FileAnalysis::Info) + { + print trig; + + switch ( trig ) { + case FileAnalysis::TRIGGER_NEW: + print info$file_id, info$seen_bytes, info$missing_bytes; + + if ( info$source == "irc-dcc-data" ) + { + for ( act in actions ) + FileAnalysis::add_action(info$file_id, act); + } + break; + + case FileAnalysis::TRIGGER_BOF_BUFFER: + if ( info?$bof_buffer ) + print info$bof_buffer[0:10]; + break; + + case FileAnalysis::TRIGGER_TYPE: + # not actually printing the values due to libmagic variances + if ( info?$file_type ) + print "file type is set"; + if ( info?$mime_type ) + print "mime type is set"; + break; + + case FileAnalysis::TRIGGER_EOF: + print info$file_id, info$seen_bytes, info$missing_bytes; + print info$conn_uids; + print info$conn_ids; + + if ( info?$total_bytes ) + print "total bytes: " + fmt("%s", info$total_bytes); + if ( info?$source ) + print "source: " + info$source; + + for ( act in info$actions ) + switch ( act$act ) { + case FileAnalysis::ACTION_MD5: + print fmt("MD5: %s", info$actions[act]$md5); + break; + case FileAnalysis::ACTION_SHA1: + print fmt("SHA1: %s", info$actions[act]$sha1); + break; + case FileAnalysis::ACTION_SHA256: + print fmt("SHA256: %s", info$actions[act]$sha256); + break; + } + break; + } + } + +event bro_init() + { + add actions[[$act=FileAnalysis::ACTION_EXTRACT, + $extract_filename="thefile"]]; + add actions[[$act=FileAnalysis::ACTION_MD5]]; + add actions[[$act=FileAnalysis::ACTION_SHA1]]; + add actions[[$act=FileAnalysis::ACTION_SHA256]]; + } diff --git a/testing/btest/scripts/base/frameworks/file-analysis/smtp.bro b/testing/btest/scripts/base/frameworks/file-analysis/smtp.bro new file mode 100644 index 0000000000..48a97f4174 --- /dev/null +++ b/testing/btest/scripts/base/frameworks/file-analysis/smtp.bro @@ -0,0 +1,74 @@ +# @TEST-EXEC: bro -r $TRACES/smtp.trace %INPUT >out +# @TEST-EXEC: btest-diff out +# @TEST-EXEC: btest-diff thefile0 +# @TEST-EXEC: btest-diff thefile1 +# @TEST-EXEC: btest-diff thefile2 + +global actions: set[FileAnalysis::ActionArgs]; +global cnt: count = 0; + +hook FileAnalysis::policy(trig: FileAnalysis::Trigger, info: FileAnalysis::Info) + { + print trig; + + switch ( trig ) { + case FileAnalysis::TRIGGER_NEW: + print info$file_id, info$seen_bytes, info$missing_bytes; + + if ( info$source == "SMTP" ) + { + for ( act in actions ) + FileAnalysis::add_action(info$file_id, act); + local filename: string = fmt("thefile%d", cnt); + ++cnt; + FileAnalysis::add_action(info$file_id, + [$act=FileAnalysis::ACTION_EXTRACT, + $extract_filename=filename]); + } + break; + + case FileAnalysis::TRIGGER_BOF_BUFFER: + if ( info?$bof_buffer ) + print info$bof_buffer[0:10]; + break; + + case FileAnalysis::TRIGGER_TYPE: + # not actually printing the values due to libmagic variances + if ( info?$file_type ) + print "file type is set"; + if ( info?$mime_type ) + print "mime type is set"; + break; + + case FileAnalysis::TRIGGER_EOF: + print info$file_id, info$seen_bytes, info$missing_bytes; + print info$conn_uids; + print info$conn_ids; + + if ( info?$total_bytes ) + print "total bytes: " + fmt("%s", info$total_bytes); + if ( info?$source ) + print "source: " + info$source; + + for ( act in info$actions ) + switch ( act$act ) { + case FileAnalysis::ACTION_MD5: + print fmt("MD5: %s", info$actions[act]$md5); + break; + case FileAnalysis::ACTION_SHA1: + print fmt("SHA1: %s", info$actions[act]$sha1); + break; + case FileAnalysis::ACTION_SHA256: + print fmt("SHA256: %s", info$actions[act]$sha256); + break; + } + break; + } + } + +event bro_init() + { + add actions[[$act=FileAnalysis::ACTION_MD5]]; + add actions[[$act=FileAnalysis::ACTION_SHA1]]; + add actions[[$act=FileAnalysis::ACTION_SHA256]]; + } diff --git a/testing/btest/scripts/base/protocols/conn/contents-default-extract.test b/testing/btest/scripts/base/protocols/conn/contents-default-extract.test index 82f46b62c8..b53081826c 100644 --- a/testing/btest/scripts/base/protocols/conn/contents-default-extract.test +++ b/testing/btest/scripts/base/protocols/conn/contents-default-extract.test @@ -1,3 +1,3 @@ -# @TEST-EXEC: bro -f "tcp port 21" -r $TRACES/ipv6-ftp.trace "Conn::default_extract=T" +# @TEST-EXEC: bro -f "tcp port 21" -r $TRACES/ftp/ipv6.trace "Conn::default_extract=T" # @TEST-EXEC: btest-diff contents_[2001:470:1f11:81f:c999:d94:aa7c:2e3e]:49185-[2001:470:4867:99::21]:21_orig.dat # @TEST-EXEC: btest-diff contents_[2001:470:1f11:81f:c999:d94:aa7c:2e3e]:49185-[2001:470:4867:99::21]:21_resp.dat diff --git a/testing/btest/scripts/base/protocols/conn/polling.test b/testing/btest/scripts/base/protocols/conn/polling.test index a6fbc35f66..f855326e77 100644 --- a/testing/btest/scripts/base/protocols/conn/polling.test +++ b/testing/btest/scripts/base/protocols/conn/polling.test @@ -1,6 +1,6 @@ -# @TEST-EXEC: bro -b -r $TRACES/http-100-continue.trace %INPUT >out1 +# @TEST-EXEC: bro -b -r $TRACES/http/100-continue.trace %INPUT >out1 # @TEST-EXEC: btest-diff out1 -# @TEST-EXEC: bro -b -r $TRACES/http-100-continue.trace %INPUT stop_cnt=2 >out2 +# @TEST-EXEC: bro -b -r $TRACES/http/100-continue.trace %INPUT stop_cnt=2 >out2 # @TEST-EXEC: btest-diff out2 @load base/protocols/conn diff --git a/testing/btest/scripts/base/protocols/ftp/ftp-ipv4.bro b/testing/btest/scripts/base/protocols/ftp/ftp-ipv4.bro index 5cb8b808d5..cb58d4af8a 100644 --- a/testing/btest/scripts/base/protocols/ftp/ftp-ipv4.bro +++ b/testing/btest/scripts/base/protocols/ftp/ftp-ipv4.bro @@ -1,6 +1,6 @@ # This tests both active and passive FTP over IPv4. # -# @TEST-EXEC: bro -r $TRACES/ftp-ipv4.trace +# @TEST-EXEC: bro -r $TRACES/ftp/ipv4.trace # @TEST-EXEC: btest-diff conn.log # @TEST-EXEC: btest-diff ftp.log diff --git a/testing/btest/scripts/base/protocols/ftp/ftp-ipv6.bro b/testing/btest/scripts/base/protocols/ftp/ftp-ipv6.bro index 7ce31808c9..87dfa7e052 100644 --- a/testing/btest/scripts/base/protocols/ftp/ftp-ipv6.bro +++ b/testing/btest/scripts/base/protocols/ftp/ftp-ipv6.bro @@ -1,6 +1,6 @@ # This tests both active and passive FTP over IPv6. # -# @TEST-EXEC: bro -r $TRACES/ipv6-ftp.trace +# @TEST-EXEC: bro -r $TRACES/ftp/ipv6.trace # @TEST-EXEC: btest-diff conn.log # @TEST-EXEC: btest-diff ftp.log diff --git a/testing/btest/scripts/base/protocols/http/100-continue.bro b/testing/btest/scripts/base/protocols/http/100-continue.bro index d1d34c1abe..ed9e4970fe 100644 --- a/testing/btest/scripts/base/protocols/http/100-continue.bro +++ b/testing/btest/scripts/base/protocols/http/100-continue.bro @@ -3,7 +3,7 @@ # a given request. The http scripts should also be able log such replies # in a way that correlates the final response with the request. # -# @TEST-EXEC: bro -r $TRACES/http-100-continue.trace %INPUT +# @TEST-EXEC: bro -r $TRACES/http/100-continue.trace %INPUT # @TEST-EXEC: test ! -f weird.log # @TEST-EXEC: btest-diff http.log diff --git a/testing/btest/scripts/base/protocols/http/http-header-crlf.bro b/testing/btest/scripts/base/protocols/http/http-header-crlf.bro index 06081d94e5..c9ba7afba3 100644 --- a/testing/btest/scripts/base/protocols/http/http-header-crlf.bro +++ b/testing/btest/scripts/base/protocols/http/http-header-crlf.bro @@ -2,7 +2,7 @@ # it gets confused whether it's in a header or not; it shouldn't report # the http_no_crlf_in_header_list wierd. # -# @TEST-EXEC: bro -r $TRACES/http-byteranges.trace %INPUT +# @TEST-EXEC: bro -r $TRACES/http/byteranges.trace %INPUT # @TEST-EXEC: test ! -f weird.log # The base analysis scripts are loaded by default. diff --git a/testing/btest/scripts/base/protocols/http/http-methods.bro b/testing/btest/scripts/base/protocols/http/http-methods.bro index 59045c1cc5..5ab89bbe4d 100644 --- a/testing/btest/scripts/base/protocols/http/http-methods.bro +++ b/testing/btest/scripts/base/protocols/http/http-methods.bro @@ -1,6 +1,6 @@ # This tests that the HTTP analyzer handles strange HTTP methods properly. # -# @TEST-EXEC: bro -r $TRACES/http-methods.trace %INPUT +# @TEST-EXEC: bro -r $TRACES/http/methods.trace %INPUT # @TEST-EXEC: btest-diff weird.log # @TEST-EXEC: btest-diff http.log diff --git a/testing/btest/scripts/base/protocols/http/http-mime-and-md5.bro b/testing/btest/scripts/base/protocols/http/http-mime-and-md5.bro index dd01e62413..c6bf4899f5 100644 --- a/testing/btest/scripts/base/protocols/http/http-mime-and-md5.bro +++ b/testing/btest/scripts/base/protocols/http/http-mime-and-md5.bro @@ -2,7 +2,7 @@ # will normalize mime types other than the target type to prevent sensitivity # to varying versions of libmagic. -# @TEST-EXEC: bro -r $TRACES/http-pipelined-requests.trace %INPUT > output +# @TEST-EXEC: bro -r $TRACES/http/pipelined-requests.trace %INPUT > output # @TEST-EXEC: btest-diff http.log redef HTTP::generate_md5 += /image\/png/; diff --git a/testing/btest/scripts/base/protocols/http/http-pipelining.bro b/testing/btest/scripts/base/protocols/http/http-pipelining.bro index 9875683269..bb392b1c4b 100644 --- a/testing/btest/scripts/base/protocols/http/http-pipelining.bro +++ b/testing/btest/scripts/base/protocols/http/http-pipelining.bro @@ -1,4 +1,4 @@ -# @TEST-EXEC: bro -r $TRACES/http-pipelined-requests.trace %INPUT > output +# @TEST-EXEC: bro -r $TRACES/http/pipelined-requests.trace %INPUT > output # @TEST-EXEC: btest-diff http.log # mime type is irrelevant to this test, so filter it out diff --git a/testing/btest/signatures/bad-eval-condition.bro b/testing/btest/signatures/bad-eval-condition.bro index 34997b1124..2b3fef76fe 100644 --- a/testing/btest/signatures/bad-eval-condition.bro +++ b/testing/btest/signatures/bad-eval-condition.bro @@ -1,4 +1,4 @@ -# @TEST-EXEC-FAIL: bro -r $TRACES/ftp-ipv4.trace %INPUT +# @TEST-EXEC-FAIL: bro -r $TRACES/ftp/ipv4.trace %INPUT # @TEST-EXEC: btest-diff .stderr @load-sigs blah.sig diff --git a/testing/btest/signatures/dpd.bro b/testing/btest/signatures/dpd.bro index d6ae02cb50..a302603bd2 100644 --- a/testing/btest/signatures/dpd.bro +++ b/testing/btest/signatures/dpd.bro @@ -1,7 +1,7 @@ -# @TEST-EXEC: bro -b -s myftp -r $TRACES/ftp-ipv4.trace %INPUT >dpd-ipv4.out -# @TEST-EXEC: bro -b -s myftp -r $TRACES/ipv6-ftp.trace %INPUT >dpd-ipv6.out -# @TEST-EXEC: bro -b -r $TRACES/ftp-ipv4.trace %INPUT >nosig-ipv4.out -# @TEST-EXEC: bro -b -r $TRACES/ipv6-ftp.trace %INPUT >nosig-ipv6.out +# @TEST-EXEC: bro -b -s myftp -r $TRACES/ftp/ipv4.trace %INPUT >dpd-ipv4.out +# @TEST-EXEC: bro -b -s myftp -r $TRACES/ftp/ipv6.trace %INPUT >dpd-ipv6.out +# @TEST-EXEC: bro -b -r $TRACES/ftp/ipv4.trace %INPUT >nosig-ipv4.out +# @TEST-EXEC: bro -b -r $TRACES/ftp/ipv6.trace %INPUT >nosig-ipv6.out # @TEST-EXEC: btest-diff dpd-ipv4.out # @TEST-EXEC: btest-diff dpd-ipv6.out # @TEST-EXEC: btest-diff nosig-ipv4.out diff --git a/testing/btest/signatures/eval-condition.bro b/testing/btest/signatures/eval-condition.bro index f3f1171da6..a14003b691 100644 --- a/testing/btest/signatures/eval-condition.bro +++ b/testing/btest/signatures/eval-condition.bro @@ -1,4 +1,4 @@ -# @TEST-EXEC: bro -r $TRACES/ftp-ipv4.trace %INPUT +# @TEST-EXEC: bro -r $TRACES/ftp/ipv4.trace %INPUT # @TEST-EXEC: btest-diff conn.log @load-sigs blah.sig From 661677d452198e3826e8552d9df44b97ad3eafb9 Mon Sep 17 00:00:00 2001 From: Jon Siwek Date: Wed, 20 Mar 2013 11:12:06 -0500 Subject: [PATCH 54/71] FileAnalysis: separating IRC/FTP data analyzers. It simplifies the file handle string callbacks. --- .../base/frameworks/file-analysis/main.bro | 21 ------- scripts/base/protocols/ftp/file-analysis.bro | 7 ++- scripts/base/protocols/ftp/main.bro | 6 +- scripts/base/protocols/http/file-analysis.bro | 4 +- scripts/base/protocols/irc/dcc-send.bro | 2 +- scripts/base/protocols/irc/file-analysis.bro | 7 ++- scripts/base/protocols/smtp/file-analysis.bro | 2 +- src/Analyzer.cc | 4 ++ src/AnalyzerTags.h | 2 +- src/FileAnalyzer.cc | 56 +++++++++++++++--- src/FileAnalyzer.h | 38 +++++++++++- .../out | 4 +- .../{KPVibShQgUc-file => Cx92a0ym5R8-file} | 0 .../get-gzip.out | 4 +- .../get.out | 4 +- .../{LMA6EHLacYc-file => kg59rqyYxN-file} | 0 .../a.out | 4 +- .../a.size | 2 +- .../b.out | 8 +-- .../b.size | 2 +- .../c.out | 4 +- .../c.size | 2 +- .../{WLJWC1FMBq9-file => CCU3vUEr06l-file} | 0 .../{Ac8PLL9KL49-file => HCzA0dVwDPj-file} | Bin .../{NV2MvAX0Is4-file => a1Zu1fteVEf-file} | Bin .../{Z3kT1FyLnfk-file => aFQKI8SPOL2-file} | 0 .../out | 20 +++---- .../{YLndcRpw5Ge-file => xXlF7wFdsR-file} | Bin .../{LkolCF6OeHh-file => PZS1XGHkIf1-file} | 0 .../out | 8 +-- .../{WDJLxTGN0m8-file => v5HLI7MxPQh-file} | 0 .../out | 4 +- .../out | 12 ++-- .../frameworks/file-analysis/http/get.bro | 4 +- .../file-analysis/http/partial-content.bro | 6 +- .../file-analysis/http/pipeline.bro | 10 ++-- .../frameworks/file-analysis/http/post.bro | 4 +- 37 files changed, 156 insertions(+), 95 deletions(-) rename testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.get/{KPVibShQgUc-file => Cx92a0ym5R8-file} (100%) rename testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.get/{LMA6EHLacYc-file => kg59rqyYxN-file} (100%) rename testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.pipeline/{WLJWC1FMBq9-file => CCU3vUEr06l-file} (100%) rename testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.pipeline/{Ac8PLL9KL49-file => HCzA0dVwDPj-file} (100%) rename testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.pipeline/{NV2MvAX0Is4-file => a1Zu1fteVEf-file} (100%) rename testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.pipeline/{Z3kT1FyLnfk-file => aFQKI8SPOL2-file} (100%) rename testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.pipeline/{YLndcRpw5Ge-file => xXlF7wFdsR-file} (100%) rename testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.post/{LkolCF6OeHh-file => PZS1XGHkIf1-file} (100%) rename testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.post/{WDJLxTGN0m8-file => v5HLI7MxPQh-file} (100%) diff --git a/scripts/base/frameworks/file-analysis/main.bro b/scripts/base/frameworks/file-analysis/main.bro index 08597aa157..c89f87416a 100644 --- a/scripts/base/frameworks/file-analysis/main.bro +++ b/scripts/base/frameworks/file-analysis/main.bro @@ -107,28 +107,7 @@ export { const handle_callbacks: table[AnalyzerTag] of HandleCallback = {} &redef; - const service_handle_callbacks: table[string] of HandleCallback = {} &redef; - global get_handle: function(c: connection, is_orig: bool): string &redef; # TODO: wrapper functions for BiFs ? } - -function get_file_handle_by_service(c: connection, is_orig: bool): string - { - local handle: string = ""; - - for ( serv in c$service ) - { - if ( serv in service_handle_callbacks ) - { - handle = service_handle_callbacks[serv](c, is_orig); - if ( handle != "" ) return handle; - } - } - return handle; - } - -redef FileAnalysis::handle_callbacks += { - [ANALYZER_FILE] = get_file_handle_by_service, -}; diff --git a/scripts/base/protocols/ftp/file-analysis.bro b/scripts/base/protocols/ftp/file-analysis.bro index 68bde54e1d..016c09838c 100644 --- a/scripts/base/protocols/ftp/file-analysis.bro +++ b/scripts/base/protocols/ftp/file-analysis.bro @@ -2,10 +2,11 @@ @load base/utils/conn-ids @load base/frameworks/file-analysis/main -redef FileAnalysis::service_handle_callbacks += { - ["ftp-data"] = function(c: connection, is_orig: bool): string +redef FileAnalysis::handle_callbacks += { + [ANALYZER_FTP_DATA] = function(c: connection, is_orig: bool): string { if ( is_orig ) return ""; - return fmt("%s ftp-data: %s", c$start_time, id_string(c$id)); + return fmt("%s %s %s", ANALYZER_FTP_DATA, c$start_time, + id_string(c$id)); }, }; diff --git a/scripts/base/protocols/ftp/main.bro b/scripts/base/protocols/ftp/main.bro index 3d7b1fe61a..893ab7ce50 100644 --- a/scripts/base/protocols/ftp/main.bro +++ b/scripts/base/protocols/ftp/main.bro @@ -228,7 +228,8 @@ event ftp_request(c: connection, command: string, arg: string) &priority=5 { c$ftp$passive=F; ftp_data_expected[data$h, data$p] = c$ftp; - expect_connection(id$resp_h, data$h, data$p, ANALYZER_FILE, 5mins); + expect_connection(id$resp_h, data$h, data$p, ANALYZER_FTP_DATA, + 5mins); } else { @@ -281,7 +282,8 @@ event ftp_reply(c: connection, code: count, msg: string, cont_resp: bool) &prior data$h = id$resp_h; ftp_data_expected[data$h, data$p] = c$ftp; - expect_connection(id$orig_h, data$h, data$p, ANALYZER_FILE, 5mins); + expect_connection(id$orig_h, data$h, data$p, ANALYZER_FTP_DATA, + 5mins); } else { diff --git a/scripts/base/protocols/http/file-analysis.bro b/scripts/base/protocols/http/file-analysis.bro index b1241b4107..5b0ac79444 100644 --- a/scripts/base/protocols/http/file-analysis.bro +++ b/scripts/base/protocols/http/file-analysis.bro @@ -10,10 +10,10 @@ function get_file_handle(c: connection, is_orig: bool): string if ( ! c?$http ) return ""; if ( c$http$range_request ) - return fmt("http(%s): %s: %s", is_orig, c$id$orig_h, + return fmt("%s %s %s %s", ANALYZER_HTTP, is_orig, c$id$orig_h, build_url(c$http)); - return fmt("%s http(%s, %s): %s", c$start_time, is_orig, + return fmt("%s %s %s %s %s", ANALYZER_HTTP, c$start_time, is_orig, c$http$trans_depth, id_string(c$id)); } diff --git a/scripts/base/protocols/irc/dcc-send.bro b/scripts/base/protocols/irc/dcc-send.bro index d07a0edf5a..1f3e20cdaf 100644 --- a/scripts/base/protocols/irc/dcc-send.bro +++ b/scripts/base/protocols/irc/dcc-send.bro @@ -104,7 +104,7 @@ event irc_dcc_message(c: connection, is_orig: bool, c$irc$dcc_file_name = argument; c$irc$dcc_file_size = size; local p = count_to_port(dest_port, tcp); - expect_connection(to_addr("0.0.0.0"), address, p, ANALYZER_FILE, 5 min); + expect_connection(to_addr("0.0.0.0"), address, p, ANALYZER_IRC_DATA, 5 min); dcc_expected_transfers[address, p] = c$irc; } diff --git a/scripts/base/protocols/irc/file-analysis.bro b/scripts/base/protocols/irc/file-analysis.bro index dc6b5e588a..471477bbb1 100644 --- a/scripts/base/protocols/irc/file-analysis.bro +++ b/scripts/base/protocols/irc/file-analysis.bro @@ -2,10 +2,11 @@ @load base/utils/conn-ids @load base/frameworks/file-analysis/main -redef FileAnalysis::service_handle_callbacks += { - ["irc-dcc-data"] = function(c: connection, is_orig: bool): string +redef FileAnalysis::handle_callbacks += { + [ANALYZER_IRC_DATA] = function(c: connection, is_orig: bool): string { if ( is_orig ) return ""; - return fmt("%s irc-dcc-data: %s", c$start_time, id_string(c$id)); + return fmt("%s %s %s", ANALYZER_IRC_DATA, c$start_time, + id_string(c$id)); }, }; diff --git a/scripts/base/protocols/smtp/file-analysis.bro b/scripts/base/protocols/smtp/file-analysis.bro index 6ba6981639..1586b3086f 100644 --- a/scripts/base/protocols/smtp/file-analysis.bro +++ b/scripts/base/protocols/smtp/file-analysis.bro @@ -9,7 +9,7 @@ function get_file_handle(c: connection, is_orig: bool): string { if ( ! c?$smtp ) return ""; - return fmt("%s smtp(%s, %s)", c$start_time, c$smtp$trans_depth, + return fmt("%s %s %s %s", ANALYZER_SMTP, c$start_time, c$smtp$trans_depth, c$smtp_state$mime_level); } diff --git a/src/Analyzer.cc b/src/Analyzer.cc index 15926dfa2a..6864a9b34a 100644 --- a/src/Analyzer.cc +++ b/src/Analyzer.cc @@ -150,6 +150,10 @@ const Analyzer::Config Analyzer::analyzer_configs[] = { { AnalyzerTag::File, "FILE", File_Analyzer::InstantiateAnalyzer, File_Analyzer::Available, 0, false }, + { AnalyzerTag::FTP_Data, "FTP_DATA", FTP_Data::InstantiateAnalyzer, + FTP_Data::Available, 0, false }, + { AnalyzerTag::IRC_Data, "IRC_DATA", IRC_Data::InstantiateAnalyzer, + IRC_Data::Available, 0, false }, { AnalyzerTag::Backdoor, "BACKDOOR", BackDoor_Analyzer::InstantiateAnalyzer, BackDoor_Analyzer::Available, 0, false }, diff --git a/src/AnalyzerTags.h b/src/AnalyzerTags.h index 38e47cf8fc..8429dec335 100644 --- a/src/AnalyzerTags.h +++ b/src/AnalyzerTags.h @@ -41,7 +41,7 @@ namespace AnalyzerTag { GTPv1, // Other - File, Backdoor, InterConn, SteppingStone, TCPStats, + File, IRC_Data, FTP_Data, Backdoor, InterConn, SteppingStone, TCPStats, ConnSize, // Support-analyzers diff --git a/src/FileAnalyzer.cc b/src/FileAnalyzer.cc index c736ebf5c4..8de66d3cb4 100644 --- a/src/FileAnalyzer.cc +++ b/src/FileAnalyzer.cc @@ -8,8 +8,8 @@ magic_t File_Analyzer::magic = 0; magic_t File_Analyzer::magic_mime = 0; -File_Analyzer::File_Analyzer(Connection* conn) -: TCP_ApplicationAnalyzer(AnalyzerTag::File, conn) +File_Analyzer::File_Analyzer(AnalyzerTag::Tag tag, Connection* conn) +: TCP_ApplicationAnalyzer(tag, conn) { buffer_len = 0; @@ -21,8 +21,6 @@ void File_Analyzer::DeliverStream(int len, const u_char* data, bool orig) { TCP_ApplicationAnalyzer::DeliverStream(len, data, orig); - file_mgr->DataIn(data, len, Conn(), orig); - int n = min(len, BUFFER_SIZE - buffer_len); if ( n ) @@ -39,16 +37,12 @@ void File_Analyzer::DeliverStream(int len, const u_char* data, bool orig) void File_Analyzer::Undelivered(int seq, int len, bool orig) { TCP_ApplicationAnalyzer::Undelivered(seq, len, orig); - - file_mgr->Gap(seq, len, Conn(), orig); } void File_Analyzer::Done() { TCP_ApplicationAnalyzer::Done(); - file_mgr->EndOfFile(Conn()); - if ( buffer_len && buffer_len != BUFFER_SIZE ) Identify(); } @@ -71,3 +65,49 @@ void File_Analyzer::Identify() vl->append(new StringVal(mime ? mime : "")); ConnectionEvent(file_transferred, vl); } + +IRC_Data::IRC_Data(Connection* conn) + : File_Analyzer(AnalyzerTag::IRC_Data, conn) + { + } + +void IRC_Data::Done() + { + File_Analyzer::Done(); + file_mgr->EndOfFile(Conn()); + } + +void IRC_Data::DeliverStream(int len, const u_char* data, bool orig) + { + File_Analyzer::DeliverStream(len, data, orig); + file_mgr->DataIn(data, len, Conn(), orig); + } + +void IRC_Data::Undelivered(int seq, int len, bool orig) + { + File_Analyzer::Undelivered(seq, len, orig); + file_mgr->Gap(seq, len, Conn(), orig); + } + +FTP_Data::FTP_Data(Connection* conn) + : File_Analyzer(AnalyzerTag::FTP_Data, conn) + { + } + +void FTP_Data::Done() + { + File_Analyzer::Done(); + file_mgr->EndOfFile(Conn()); + } + +void FTP_Data::DeliverStream(int len, const u_char* data, bool orig) + { + File_Analyzer::DeliverStream(len, data, orig); + file_mgr->DataIn(data, len, Conn(), orig); + } + +void FTP_Data::Undelivered(int seq, int len, bool orig) + { + File_Analyzer::Undelivered(seq, len, orig); + file_mgr->Gap(seq, len, Conn(), orig); + } diff --git a/src/FileAnalyzer.h b/src/FileAnalyzer.h index c7ba3fb5a9..c4bd084cdc 100644 --- a/src/FileAnalyzer.h +++ b/src/FileAnalyzer.h @@ -10,7 +10,7 @@ class File_Analyzer : public TCP_ApplicationAnalyzer { public: - File_Analyzer(Connection* conn); + File_Analyzer(AnalyzerTag::Tag tag, Connection* conn); virtual void Done(); @@ -19,7 +19,7 @@ public: void Undelivered(int seq, int len, bool orig); static Analyzer* InstantiateAnalyzer(Connection* conn) - { return new File_Analyzer(conn); } + { return new File_Analyzer(AnalyzerTag::File, conn); } static bool Available() { return file_transferred; } @@ -36,4 +36,38 @@ protected: static magic_t magic_mime; }; +class IRC_Data : public File_Analyzer { +public: + + IRC_Data(Connection* conn); + + virtual void Done(); + + virtual void DeliverStream(int len, const u_char* data, bool orig); + + void Undelivered(int seq, int len, bool orig); + + static Analyzer* InstantiateAnalyzer(Connection* conn) + { return new IRC_Data(conn); } + + static bool Available() { return true; } +}; + +class FTP_Data : public File_Analyzer { +public: + + FTP_Data(Connection* conn); + + virtual void Done(); + + virtual void DeliverStream(int len, const u_char* data, bool orig); + + void Undelivered(int seq, int len, bool orig); + + static Analyzer* InstantiateAnalyzer(Connection* conn) + { return new FTP_Data(conn); } + + static bool Available() { return true; } +}; + #endif diff --git a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.ftp/out b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.ftp/out index 4492b5a867..3a71ea1241 100644 --- a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.ftp/out +++ b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.ftp/out @@ -1,5 +1,5 @@ FileAnalysis::TRIGGER_NEW -XRXY932iwza, 0, 0 +sidhzrR4IT8, 0, 0 FileAnalysis::TRIGGER_BOF FileAnalysis::TRIGGER_BOF_BUFFER The Nationa @@ -7,7 +7,7 @@ FileAnalysis::TRIGGER_TYPE file type is set mime type is set FileAnalysis::TRIGGER_EOF -XRXY932iwza, 16557, 0 +sidhzrR4IT8, 16557, 0 { arKYeMETxOg } diff --git a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.get/KPVibShQgUc-file b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.get/Cx92a0ym5R8-file similarity index 100% rename from testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.get/KPVibShQgUc-file rename to testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.get/Cx92a0ym5R8-file diff --git a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.get/get-gzip.out b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.get/get-gzip.out index e7df070a03..8aa5329cfe 100644 --- a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.get/get-gzip.out +++ b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.get/get-gzip.out @@ -1,5 +1,5 @@ FileAnalysis::TRIGGER_NEW -LMA6EHLacYc, 0, 0 +kg59rqyYxN, 0, 0 FileAnalysis::TRIGGER_BOF FileAnalysis::TRIGGER_BOF_BUFFER {^J "origin @@ -7,7 +7,7 @@ FileAnalysis::TRIGGER_TYPE file type is set mime type is set FileAnalysis::TRIGGER_EOF -LMA6EHLacYc, 197, 0 +kg59rqyYxN, 197, 0 { UWkUyAuUGXf } diff --git a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.get/get.out b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.get/get.out index 301d6dd6a7..d8d895385d 100644 --- a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.get/get.out +++ b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.get/get.out @@ -1,5 +1,5 @@ FileAnalysis::TRIGGER_NEW -KPVibShQgUc, 0, 0 +Cx92a0ym5R8, 0, 0 FileAnalysis::TRIGGER_BOF FileAnalysis::TRIGGER_BOF_BUFFER ^J0.26 | 201 @@ -7,7 +7,7 @@ FileAnalysis::TRIGGER_TYPE file type is set mime type is set FileAnalysis::TRIGGER_DONE -KPVibShQgUc, 4705, 0 +Cx92a0ym5R8, 4705, 0 { UWkUyAuUGXf } diff --git a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.get/LMA6EHLacYc-file b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.get/kg59rqyYxN-file similarity index 100% rename from testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.get/LMA6EHLacYc-file rename to testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.get/kg59rqyYxN-file diff --git a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.partial-content/a.out b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.partial-content/a.out index 6ce550d39a..0ce1272201 100644 --- a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.partial-content/a.out +++ b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.partial-content/a.out @@ -1,7 +1,7 @@ FileAnalysis::TRIGGER_NEW -uj9AtyGOiZ8, 0, 0 +7gZBKVUgy4l, 0, 0 FileAnalysis::TRIGGER_DONE -uj9AtyGOiZ8, 555523, 0 +7gZBKVUgy4l, 555523, 0 { UWkUyAuUGXf, arKYeMETxOg diff --git a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.partial-content/a.size b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.partial-content/a.size index 7abf924cb4..10b907508c 100644 --- a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.partial-content/a.size +++ b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.partial-content/a.size @@ -1 +1 @@ - 555523 uj9AtyGOiZ8-file0 + 555523 7gZBKVUgy4l-file0 diff --git a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.partial-content/b.out b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.partial-content/b.out index 0d4d863157..f88ccd0d50 100644 --- a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.partial-content/b.out +++ b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.partial-content/b.out @@ -1,7 +1,7 @@ FileAnalysis::TRIGGER_NEW -ns7As4DOZcj, 0, 0 +oDwT1BbzjM1, 0, 0 FileAnalysis::TRIGGER_DONE -ns7As4DOZcj, 1022920, 0 +oDwT1BbzjM1, 1022920, 0 { UWkUyAuUGXf } @@ -11,10 +11,10 @@ UWkUyAuUGXf total bytes: 1022920 source: HTTP FileAnalysis::TRIGGER_NEW -ns7As4DOZcj, 0, 0 +oDwT1BbzjM1, 0, 0 FileAnalysis::TRIGGER_TIMEOUT FileAnalysis::TRIGGER_EOF -ns7As4DOZcj, 206024, 0 +oDwT1BbzjM1, 206024, 0 { arKYeMETxOg } diff --git a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.partial-content/b.size b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.partial-content/b.size index 9be08e4aab..d4ade48a31 100644 --- a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.partial-content/b.size +++ b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.partial-content/b.size @@ -1 +1 @@ - 1022920 ns7As4DOZcj-file0 + 1022920 oDwT1BbzjM1-file0 diff --git a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.partial-content/c.out b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.partial-content/c.out index 730a6feae8..5f4e6db178 100644 --- a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.partial-content/c.out +++ b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.partial-content/c.out @@ -1,7 +1,7 @@ FileAnalysis::TRIGGER_NEW -MHMkq2nFxej, 0, 0 +uHS14uhRKGe, 0, 0 FileAnalysis::TRIGGER_DONE -MHMkq2nFxej, 498702, 0 +uHS14uhRKGe, 498702, 0 { UWkUyAuUGXf, arKYeMETxOg diff --git a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.partial-content/c.size b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.partial-content/c.size index fbb418c3d3..88415185cd 100644 --- a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.partial-content/c.size +++ b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.partial-content/c.size @@ -1 +1 @@ - 498668 MHMkq2nFxej-file0 + 498668 uHS14uhRKGe-file0 diff --git a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.pipeline/WLJWC1FMBq9-file b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.pipeline/CCU3vUEr06l-file similarity index 100% rename from testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.pipeline/WLJWC1FMBq9-file rename to testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.pipeline/CCU3vUEr06l-file diff --git a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.pipeline/Ac8PLL9KL49-file b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.pipeline/HCzA0dVwDPj-file similarity index 100% rename from testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.pipeline/Ac8PLL9KL49-file rename to testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.pipeline/HCzA0dVwDPj-file diff --git a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.pipeline/NV2MvAX0Is4-file b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.pipeline/a1Zu1fteVEf-file similarity index 100% rename from testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.pipeline/NV2MvAX0Is4-file rename to testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.pipeline/a1Zu1fteVEf-file diff --git a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.pipeline/Z3kT1FyLnfk-file b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.pipeline/aFQKI8SPOL2-file similarity index 100% rename from testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.pipeline/Z3kT1FyLnfk-file rename to testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.pipeline/aFQKI8SPOL2-file diff --git a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.pipeline/out b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.pipeline/out index d400550396..9755b08cc1 100644 --- a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.pipeline/out +++ b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.pipeline/out @@ -1,5 +1,5 @@ FileAnalysis::TRIGGER_NEW -Z3kT1FyLnfk, 0, 0 +aFQKI8SPOL2, 0, 0 FileAnalysis::TRIGGER_BOF FileAnalysis::TRIGGER_BOF_BUFFER /*^J******** @@ -7,7 +7,7 @@ FileAnalysis::TRIGGER_TYPE file type is set mime type is set FileAnalysis::TRIGGER_EOF -Z3kT1FyLnfk, 2675, 0 +aFQKI8SPOL2, 2675, 0 { UWkUyAuUGXf } @@ -19,7 +19,7 @@ SHA1: 0e42ae17eea9b074981bd3a34535ad3a22d02706 MD5: b932c3310ce47e158d1a5a42e0b01279 SHA256: 5b037a2c5e36f56e63a3012c73e46a04b27741d8ff8f8b62c832fb681fc60f42 FileAnalysis::TRIGGER_NEW -WLJWC1FMBq9, 0, 0 +CCU3vUEr06l, 0, 0 FileAnalysis::TRIGGER_BOF FileAnalysis::TRIGGER_BOF_BUFFER //-- Google @@ -27,7 +27,7 @@ FileAnalysis::TRIGGER_TYPE file type is set mime type is set FileAnalysis::TRIGGER_EOF -WLJWC1FMBq9, 21421, 0 +CCU3vUEr06l, 21421, 0 { UWkUyAuUGXf } @@ -39,7 +39,7 @@ SHA1: 8f241117afaa8ca5f41dc059e66d75c283dcc983 MD5: e732f7bf1d7cb4eedcb1661697d7bc8c SHA256: 6a509fd05aa7c8fa05080198894bb19e638554ffcee0e0b3d7bc8ff54afee1da FileAnalysis::TRIGGER_NEW -Ac8PLL9KL49, 0, 0 +HCzA0dVwDPj, 0, 0 FileAnalysis::TRIGGER_BOF FileAnalysis::TRIGGER_BOF_BUFFER GIF89a^D\0^D\0\xb3 @@ -47,7 +47,7 @@ FileAnalysis::TRIGGER_TYPE file type is set mime type is set FileAnalysis::TRIGGER_DONE -Ac8PLL9KL49, 94, 0 +HCzA0dVwDPj, 94, 0 { UWkUyAuUGXf } @@ -60,7 +60,7 @@ SHA1: 81f5f056ce5e97d940854bb0c48017b45dd9f15e MD5: d903de7e30db1691d3130ba5eae6b9a7 SHA256: 6fb22aa9d780ea63bd7a2e12b92b16fcbf1c4874f1d3e11309a5ba984433c315 FileAnalysis::TRIGGER_NEW -NV2MvAX0Is4, 0, 0 +a1Zu1fteVEf, 0, 0 FileAnalysis::TRIGGER_BOF FileAnalysis::TRIGGER_BOF_BUFFER \x89PNG^M^J^Z^J\0\0\0 @@ -68,7 +68,7 @@ FileAnalysis::TRIGGER_TYPE file type is set mime type is set FileAnalysis::TRIGGER_DONE -NV2MvAX0Is4, 2349, 0 +a1Zu1fteVEf, 2349, 0 { UWkUyAuUGXf } @@ -81,7 +81,7 @@ SHA1: 560eab5a0177246827a94042dd103916d8765ac7 MD5: e0029eea80812e9a8e57b8d05d52938a SHA256: e0b4500c1fd1d675da4137461cbe64d3c8489f4180d194e47683b20e7fb876f4 FileAnalysis::TRIGGER_NEW -YLndcRpw5Ge, 0, 0 +xXlF7wFdsR, 0, 0 FileAnalysis::TRIGGER_BOF FileAnalysis::TRIGGER_BOF_BUFFER \x89PNG^M^J^Z^J\0\0\0 @@ -89,7 +89,7 @@ FileAnalysis::TRIGGER_TYPE file type is set mime type is set FileAnalysis::TRIGGER_DONE -YLndcRpw5Ge, 27579, 0 +xXlF7wFdsR, 27579, 0 { UWkUyAuUGXf } diff --git a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.pipeline/YLndcRpw5Ge-file b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.pipeline/xXlF7wFdsR-file similarity index 100% rename from testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.pipeline/YLndcRpw5Ge-file rename to testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.pipeline/xXlF7wFdsR-file diff --git a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.post/LkolCF6OeHh-file b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.post/PZS1XGHkIf1-file similarity index 100% rename from testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.post/LkolCF6OeHh-file rename to testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.post/PZS1XGHkIf1-file diff --git a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.post/out b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.post/out index 5dc60d1930..bc15e528a8 100644 --- a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.post/out +++ b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.post/out @@ -1,5 +1,5 @@ FileAnalysis::TRIGGER_NEW -WDJLxTGN0m8, 0, 0 +v5HLI7MxPQh, 0, 0 FileAnalysis::TRIGGER_BOF FileAnalysis::TRIGGER_BOF_BUFFER hello world @@ -7,7 +7,7 @@ FileAnalysis::TRIGGER_TYPE file type is set mime type is set FileAnalysis::TRIGGER_DONE -WDJLxTGN0m8, 11, 0 +v5HLI7MxPQh, 11, 0 { UWkUyAuUGXf } @@ -20,7 +20,7 @@ SHA1: 2aae6c35c94fcfb415dbe95f408b9ce91ee846ed MD5: 5eb63bbbe01eeed093cb22bb8f5acdc3 SHA256: b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9 FileAnalysis::TRIGGER_NEW -LkolCF6OeHh, 0, 0 +PZS1XGHkIf1, 0, 0 FileAnalysis::TRIGGER_BOF FileAnalysis::TRIGGER_BOF_BUFFER {^J "origin @@ -28,7 +28,7 @@ FileAnalysis::TRIGGER_TYPE file type is set mime type is set FileAnalysis::TRIGGER_DONE -LkolCF6OeHh, 366, 0 +PZS1XGHkIf1, 366, 0 { UWkUyAuUGXf } diff --git a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.post/WDJLxTGN0m8-file b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.post/v5HLI7MxPQh-file similarity index 100% rename from testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.post/WDJLxTGN0m8-file rename to testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.post/v5HLI7MxPQh-file diff --git a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.irc/out b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.irc/out index 0934a9c980..fd515304b1 100644 --- a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.irc/out +++ b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.irc/out @@ -1,5 +1,5 @@ FileAnalysis::TRIGGER_NEW -6w2n1vAlfzk, 0, 0 +wqKMAamJVSb, 0, 0 FileAnalysis::TRIGGER_BOF FileAnalysis::TRIGGER_BOF_BUFFER PK^C^D^T\0\0\0^H\0\xae @@ -7,7 +7,7 @@ FileAnalysis::TRIGGER_TYPE file type is set mime type is set FileAnalysis::TRIGGER_EOF -6w2n1vAlfzk, 42208, 0 +wqKMAamJVSb, 42208, 0 { arKYeMETxOg } diff --git a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.smtp/out b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.smtp/out index 2234bba1d7..91093aa577 100644 --- a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.smtp/out +++ b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.smtp/out @@ -1,5 +1,5 @@ FileAnalysis::TRIGGER_NEW -wBZuaIADU0b, 0, 0 +9VCisPgrqVj, 0, 0 FileAnalysis::TRIGGER_BOF FileAnalysis::TRIGGER_BOF_BUFFER Hello^M^J^M^J ^M @@ -7,7 +7,7 @@ FileAnalysis::TRIGGER_TYPE file type is set mime type is set FileAnalysis::TRIGGER_EOF -wBZuaIADU0b, 79, 0 +9VCisPgrqVj, 79, 0 { arKYeMETxOg } @@ -19,7 +19,7 @@ SHA1: b7e497be8a9f5e2c4b6980fceb015360f98f4a13 MD5: 92bca2e6cdcde73647125da7dccbdd07 SHA256: 785a8a044d1454ec88837108f443bbb30cc4f529393ffd57118261036bfe59f5 FileAnalysis::TRIGGER_NEW -i3lOtWMsCWb, 0, 0 +ZAOEQmRyxv1, 0, 0 FileAnalysis::TRIGGER_BOF FileAnalysis::TRIGGER_BOF_BUFFER get-gzip.out # @TEST-EXEC: btest-diff get.out # @TEST-EXEC: btest-diff get-gzip.out -# @TEST-EXEC: btest-diff KPVibShQgUc-file -# @TEST-EXEC: btest-diff LMA6EHLacYc-file +# @TEST-EXEC: btest-diff Cx92a0ym5R8-file +# @TEST-EXEC: btest-diff kg59rqyYxN-file global actions: set[FileAnalysis::ActionArgs]; diff --git a/testing/btest/scripts/base/frameworks/file-analysis/http/partial-content.bro b/testing/btest/scripts/base/frameworks/file-analysis/http/partial-content.bro index aed7bd1778..7df9db5c0d 100644 --- a/testing/btest/scripts/base/frameworks/file-analysis/http/partial-content.bro +++ b/testing/btest/scripts/base/frameworks/file-analysis/http/partial-content.bro @@ -1,16 +1,16 @@ # @TEST-EXEC: bro -r $TRACES/http/206_example_a.pcap %INPUT >a.out # @TEST-EXEC: btest-diff a.out -# @TEST-EXEC: wc -c uj9AtyGOiZ8-file0 >a.size +# @TEST-EXEC: wc -c 7gZBKVUgy4l-file0 >a.size # @TEST-EXEC: btest-diff a.size # @TEST-EXEC: bro -r $TRACES/http/206_example_b.pcap %INPUT >b.out # @TEST-EXEC: btest-diff b.out -# @TEST-EXEC: wc -c ns7As4DOZcj-file0 >b.size +# @TEST-EXEC: wc -c oDwT1BbzjM1-file0 >b.size # @TEST-EXEC: btest-diff b.size # @TEST-EXEC: bro -r $TRACES/http/206_example_c.pcap %INPUT >c.out # @TEST-EXEC: btest-diff c.out -# @TEST-EXEC: wc -c MHMkq2nFxej-file0 >c.size +# @TEST-EXEC: wc -c uHS14uhRKGe-file0 >c.size # @TEST-EXEC: btest-diff c.size global actions: set[FileAnalysis::ActionArgs]; diff --git a/testing/btest/scripts/base/frameworks/file-analysis/http/pipeline.bro b/testing/btest/scripts/base/frameworks/file-analysis/http/pipeline.bro index 6ca05188b8..f1932426bd 100644 --- a/testing/btest/scripts/base/frameworks/file-analysis/http/pipeline.bro +++ b/testing/btest/scripts/base/frameworks/file-analysis/http/pipeline.bro @@ -1,10 +1,10 @@ # @TEST-EXEC: bro -r $TRACES/http/pipelined-requests.trace %INPUT >out # @TEST-EXEC: btest-diff out -# @TEST-EXEC: btest-diff Z3kT1FyLnfk-file -# @TEST-EXEC: btest-diff WLJWC1FMBq9-file -# @TEST-EXEC: btest-diff Ac8PLL9KL49-file -# @TEST-EXEC: btest-diff NV2MvAX0Is4-file -# @TEST-EXEC: btest-diff YLndcRpw5Ge-file +# @TEST-EXEC: btest-diff aFQKI8SPOL2-file +# @TEST-EXEC: btest-diff CCU3vUEr06l-file +# @TEST-EXEC: btest-diff HCzA0dVwDPj-file +# @TEST-EXEC: btest-diff a1Zu1fteVEf-file +# @TEST-EXEC: btest-diff xXlF7wFdsR-file global actions: set[FileAnalysis::ActionArgs]; diff --git a/testing/btest/scripts/base/frameworks/file-analysis/http/post.bro b/testing/btest/scripts/base/frameworks/file-analysis/http/post.bro index 4807edcd3f..35a31a06b2 100644 --- a/testing/btest/scripts/base/frameworks/file-analysis/http/post.bro +++ b/testing/btest/scripts/base/frameworks/file-analysis/http/post.bro @@ -1,7 +1,7 @@ # @TEST-EXEC: bro -r $TRACES/http/post.trace %INPUT >out # @TEST-EXEC: btest-diff out -# @TEST-EXEC: btest-diff WDJLxTGN0m8-file -# @TEST-EXEC: btest-diff LkolCF6OeHh-file +# @TEST-EXEC: btest-diff v5HLI7MxPQh-file +# @TEST-EXEC: btest-diff PZS1XGHkIf1-file global actions: set[FileAnalysis::ActionArgs]; From 1ef7465e3015cb80473e78e13e857b02a6b19ad0 Mon Sep 17 00:00:00 2001 From: Jon Siwek Date: Wed, 20 Mar 2013 12:47:45 -0500 Subject: [PATCH 55/71] FileAnalysis: add more unit tests. --- src/file_analysis.bif | 6 +- src/file_analysis/InfoTimer.cc | 8 ++ src/file_analysis/InfoTimer.h | 3 +- .../out | 31 +++++ .../bro..stdout | 26 ++++ .../get.out | 18 +++ .../get.out | 2 + .../bro..stdout | 14 +++ .../file-analysis/actions/data_event.bro | 55 +++++++++ .../file-analysis/bifs/postpone_timeout.bro | 90 ++++++++++++++ .../file-analysis/bifs/remove_action.bro | 83 +++++++++++++ .../frameworks/file-analysis/bifs/stop.bro | 75 ++++++++++++ .../frameworks/file-analysis/input/basic.bro | 115 ++++++++++++++++++ 13 files changed, 521 insertions(+), 5 deletions(-) create mode 100644 testing/btest/Baseline/scripts.base.frameworks.file-analysis.actions.data_event/out create mode 100644 testing/btest/Baseline/scripts.base.frameworks.file-analysis.bifs.postpone_timeout/bro..stdout create mode 100644 testing/btest/Baseline/scripts.base.frameworks.file-analysis.bifs.remove_action/get.out create mode 100644 testing/btest/Baseline/scripts.base.frameworks.file-analysis.bifs.stop/get.out create mode 100644 testing/btest/Baseline/scripts.base.frameworks.file-analysis.input.basic/bro..stdout create mode 100644 testing/btest/scripts/base/frameworks/file-analysis/actions/data_event.bro create mode 100644 testing/btest/scripts/base/frameworks/file-analysis/bifs/postpone_timeout.bro create mode 100644 testing/btest/scripts/base/frameworks/file-analysis/bifs/remove_action.bro create mode 100644 testing/btest/scripts/base/frameworks/file-analysis/bifs/stop.bro create mode 100644 testing/btest/scripts/base/frameworks/file-analysis/input/basic.bro diff --git a/src/file_analysis.bif b/src/file_analysis.bif index 9bea289444..934122f819 100644 --- a/src/file_analysis.bif +++ b/src/file_analysis.bif @@ -94,13 +94,13 @@ function FileAnalysis::stop%(file_id: string%): bool return new Val(result, TYPE_BOOL); %} -function FileAnalysis::input_data%(source: string, data: string%): any +function FileAnalysis::data_stream%(source: string, data: string%): any %{ file_mgr->DataIn(data->Bytes(), data->Len(), source->CheckString()); return 0; %} -function FileAnalysis::input_data_chunk%(source: string, data: string, +function FileAnalysis::data_chunk%(source: string, data: string, offset: count%): any %{ file_mgr->DataIn(data->Bytes(), data->Len(), offset, source->CheckString()); @@ -119,7 +119,7 @@ function FileAnalysis::set_size%(source: string, size: count%): any return 0; %} -function FileAnalysis::input_eof%(source: string%): any +function FileAnalysis::eof%(source: string%): any %{ file_mgr->EndOfFile(source->CheckString()); return 0; diff --git a/src/file_analysis/InfoTimer.cc b/src/file_analysis/InfoTimer.cc index c855d0a54d..9859839c5a 100644 --- a/src/file_analysis/InfoTimer.cc +++ b/src/file_analysis/InfoTimer.cc @@ -3,6 +3,14 @@ using namespace file_analysis; + +InfoTimer::InfoTimer(double t, const FileID& id, double interval) + : Timer(t + interval, TIMER_FILE_ANALYSIS_INACTIVITY), file_id(id) + { + DBG_LOG(DBG_FILE_ANALYSIS, "New %f second timeout timer for %s", + file_id.c_str(), interval); + } + void InfoTimer::Dispatch(double t, int is_expire) { Info* info = file_mgr->Lookup(file_id); diff --git a/src/file_analysis/InfoTimer.h b/src/file_analysis/InfoTimer.h index 250dbedddf..08aefb5d6a 100644 --- a/src/file_analysis/InfoTimer.h +++ b/src/file_analysis/InfoTimer.h @@ -13,8 +13,7 @@ namespace file_analysis { class InfoTimer : public Timer { public: - InfoTimer(double t, const FileID& id, double interval) - : Timer(t + interval, TIMER_FILE_ANALYSIS_INACTIVITY), file_id(id) {} + InfoTimer(double t, const FileID& id, double interval); /** * Check inactivity of file_analysis::Info corresponding to #file_id, diff --git a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.actions.data_event/out b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.actions.data_event/out new file mode 100644 index 0000000000..934c22f049 --- /dev/null +++ b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.actions.data_event/out @@ -0,0 +1,31 @@ +FileAnalysis::TRIGGER_NEW +Cx92a0ym5R8, 0, 0 +T +FileAnalysis::TRIGGER_BOF +FileAnalysis::TRIGGER_BOF_BUFFER +^J0.26 | 201 +FileAnalysis::TRIGGER_TYPE +file type is set +mime type is set +file_stream, Cx92a0ym5R8, 1500, ^J0.26 | 2012-08-24 15:10:04 -0700^J^J * Fixing update-changes, which could pick the wrong control file. (Robin Sommer)^J^J * Fixing GPG signing script. (Robin Sommer)^J^J0.25 | 2012-08-01 13:55:46 -0500^J^J * Fix configure script to exit with non-zero status on error (Jon Siwek)^J^J0.24 | 2012-07-05 12:50:43 -0700^J^J * Raise minimum required CMake version to 2.6.3 (Jon Siwek)^J^J * Adding script to delete old fully-merged branches. (Robin Sommer)^J^J0.23-2 | 2012-01-25 13:24:01 -0800^J^J * Fix a bro-cut error message. (Daniel Thayer)^J^J0.23 | 2012-01-11 12:16:11 -0800^J^J * Tweaks to release scripts, plus a new one for signing files.^J (Robin Sommer)^J^J0.22 | 2012-01-10 16:45:19 -0800^J^J * Tweaks for OpenBSD support. (Jon Siwek)^J^J * bro-cut extensions and fixes. (Robin Sommer)^J ^J - If no field names are given on the command line, we now pass through^J all fields. Adresses #657.^J^J - Removing some GNUism from awk script. Addresses #653.^J^J - Added option for time output in UTC. Addresses #668.^J^J - Added output field separator option -F. Addresses #649.^J^J - Fixing option -c: only some header lines were passed through^J rather than all. (Robin Sommer)^J^J * Fix parallel make portability. (Jon Siwek)^J^J0.21-9 | 2011-11-07 05:44:14 -0800^J^J * Fixing compiler warnings. Addresses #388. (Jon Siwek)^J^J0.21-2 | 2011-11-02 18:12:13 -0700^J^J * Fix for misnaming temp file in update-changes script. (Robin Sommer)^J^J0.21-1 | 2011-11-02 18:10:39 -0700^J^J * Little fix for make-relea +file_chunk, Cx92a0ym5R8, 1500, 0, ^J0.26 | 2012-08-24 15:10:04 -0700^J^J * Fixing update-changes, which could pick the wrong control file. (Robin Sommer)^J^J * Fixing GPG signing script. (Robin Sommer)^J^J0.25 | 2012-08-01 13:55:46 -0500^J^J * Fix configure script to exit with non-zero status on error (Jon Siwek)^J^J0.24 | 2012-07-05 12:50:43 -0700^J^J * Raise minimum required CMake version to 2.6.3 (Jon Siwek)^J^J * Adding script to delete old fully-merged branches. (Robin Sommer)^J^J0.23-2 | 2012-01-25 13:24:01 -0800^J^J * Fix a bro-cut error message. (Daniel Thayer)^J^J0.23 | 2012-01-11 12:16:11 -0800^J^J * Tweaks to release scripts, plus a new one for signing files.^J (Robin Sommer)^J^J0.22 | 2012-01-10 16:45:19 -0800^J^J * Tweaks for OpenBSD support. (Jon Siwek)^J^J * bro-cut extensions and fixes. (Robin Sommer)^J ^J - If no field names are given on the command line, we now pass through^J all fields. Adresses #657.^J^J - Removing some GNUism from awk script. Addresses #653.^J^J - Added option for time output in UTC. Addresses #668.^J^J - Added output field separator option -F. Addresses #649.^J^J - Fixing option -c: only some header lines were passed through^J rather than all. (Robin Sommer)^J^J * Fix parallel make portability. (Jon Siwek)^J^J0.21-9 | 2011-11-07 05:44:14 -0800^J^J * Fixing compiler warnings. Addresses #388. (Jon Siwek)^J^J0.21-2 | 2011-11-02 18:12:13 -0700^J^J * Fix for misnaming temp file in update-changes script. (Robin Sommer)^J^J0.21-1 | 2011-11-02 18:10:39 -0700^J^J * Little fix for make-relea +file_stream, Cx92a0ym5R8, 1024, se script, which could pick out the wrong^J tag. (Robin Sommer)^J^J0.21 | 2011-10-27 17:40:45 -0700^J^J * Fixing bro-cut's usage message and argument error handling. (Robin Sommer)^J^J * Bugfix in update-changes script. (Robin Sommer)^J^J * update-changes now ignores commits it did itself. (Robin Sommer)^J^J * Fix a bug in the update-changes script. (Robin Sommer)^J^J * bro-cut now always installs to $prefix/bin by `make install`. (Jon Siwek)^J^J * Options to adjust time format for bro-cut. (Robin Sommer)^J^J The default with -d is now ISO format. The new option "-D "^J specifies a custom strftime()-style format string. Alternatively,^J the environment variable BRO_CUT_TIMEFMT can set the format as^J well.^J^J * bro-cut now understands the field separator header. (Robin Sommer)^J^J * Renaming options -h/-H -> -c/-C, and doing some general cleanup.^J^J0.2 | 2011-10-25 19:53:57 -0700^J^J * Adding support for replacing version string in a setup.py. (Robin^J Sommer)^J^J * Change generated root cert DN indices f +file_chunk, Cx92a0ym5R8, 1024, 1500, se script, which could pick out the wrong^J tag. (Robin Sommer)^J^J0.21 | 2011-10-27 17:40:45 -0700^J^J * Fixing bro-cut's usage message and argument error handling. (Robin Sommer)^J^J * Bugfix in update-changes script. (Robin Sommer)^J^J * update-changes now ignores commits it did itself. (Robin Sommer)^J^J * Fix a bug in the update-changes script. (Robin Sommer)^J^J * bro-cut now always installs to $prefix/bin by `make install`. (Jon Siwek)^J^J * Options to adjust time format for bro-cut. (Robin Sommer)^J^J The default with -d is now ISO format. The new option "-D "^J specifies a custom strftime()-style format string. Alternatively,^J the environment variable BRO_CUT_TIMEFMT can set the format as^J well.^J^J * bro-cut now understands the field separator header. (Robin Sommer)^J^J * Renaming options -h/-H -> -c/-C, and doing some general cleanup.^J^J0.2 | 2011-10-25 19:53:57 -0700^J^J * Adding support for replacing version string in a setup.py. (Robin^J Sommer)^J^J * Change generated root cert DN indices f +file_stream, Cx92a0ym5R8, 476, ormat for RFC2253^J compliance. (Jon Siwek)^J^J * New tool devel-tools/check-release to run before making releases.^J (Robin Sommer)^J^J * devel-tools/update-changes gets a new option -a to amend to^J previous commit if possible. Default is now not to (used to be the^J opposite). (Robin Sommer)^J^J * Change Mozilla trust root generation to index certs by subject DN. (Jon Siwek)^J^J * Change distclean to only remove build dir. (Jon Siwek)^J^J * Make dist now cleans the +file_chunk, Cx92a0ym5R8, 476, 2524, ormat for RFC2253^J compliance. (Jon Siwek)^J^J * New tool devel-tools/check-release to run before making releases.^J (Robin Sommer)^J^J * devel-tools/update-changes gets a new option -a to amend to^J previous commit if possible. Default is now not to (used to be the^J opposite). (Robin Sommer)^J^J * Change Mozilla trust root generation to index certs by subject DN. (Jon Siwek)^J^J * Change distclean to only remove build dir. (Jon Siwek)^J^J * Make dist now cleans the +file_stream, Cx92a0ym5R8, 1024, copied source (Jon Siwek)^J^J * Small tweak to make-release for forced git-clean. (Jon Siwek)^J^J * Fix to not let updates scripts loose their executable permissions.^J (Robin Sommer)^J^J * devel-tools/update-changes now looks for a 'release' tag to^J idenfify the stable version, and 'beta' for the beta versions.^J (Robin Sommer).^J^J * Distribution cleanup. (Robin Sommer)^J^J * New script devel-tools/make-release to create source tar balls.^J (Robin Sommer)^J^J * Removing bdcat. With the new log format, this isn't very useful^J anymore. (Robin Sommer)^J^J * Adding script that shows all pending git fastpath commits. (Robin^J Sommer)^J^J * Script to measure CPU time by loading an increasing set of^J scripts. (Robin Sommer)^J^J * extract-conn script now deals wit *.gz files. (Robin Sommer)^J^J * Tiny update to output a valid CA list file for SSL cert^J validation. (Seth Hall)^J^J * Adding "install-aux" target. Addresses #622. (Jon Siwek)^J^J * Distribution cleanup. (Jon Siwek and Robin Sommer)^J^J * FindPCAP +file_chunk, Cx92a0ym5R8, 1024, 3000, copied source (Jon Siwek)^J^J * Small tweak to make-release for forced git-clean. (Jon Siwek)^J^J * Fix to not let updates scripts loose their executable permissions.^J (Robin Sommer)^J^J * devel-tools/update-changes now looks for a 'release' tag to^J idenfify the stable version, and 'beta' for the beta versions.^J (Robin Sommer).^J^J * Distribution cleanup. (Robin Sommer)^J^J * New script devel-tools/make-release to create source tar balls.^J (Robin Sommer)^J^J * Removing bdcat. With the new log format, this isn't very useful^J anymore. (Robin Sommer)^J^J * Adding script that shows all pending git fastpath commits. (Robin^J Sommer)^J^J * Script to measure CPU time by loading an increasing set of^J scripts. (Robin Sommer)^J^J * extract-conn script now deals wit *.gz files. (Robin Sommer)^J^J * Tiny update to output a valid CA list file for SSL cert^J validation. (Seth Hall)^J^J * Adding "install-aux" target. Addresses #622. (Jon Siwek)^J^J * Distribution cleanup. (Jon Siwek and Robin Sommer)^J^J * FindPCAP +FileAnalysis::TRIGGER_DONE +Cx92a0ym5R8, 4705, 0 +{ +UWkUyAuUGXf +} +{ +[orig_h=141.142.228.5, orig_p=59856/tcp, resp_h=192.150.187.43, resp_p=80/tcp] +} +total bytes: 4705 +source: HTTP +file_stream, Cx92a0ym5R8, 476, now links against thread library when necessary (e.g.^J PF_RING's libpcap) (Jon Siwek)^J^J * Install binaries with an RPATH (Jon Siwek)^J^J * Workaround for FreeBSD CMake port missing debug flags (Jon Siwek)^J^J * Rewrite of the update-changes script. (Robin Sommer)^J^J0.1-1 | 2011-06-14 21:12:41 -0700^J^J * Add a script for generating Mozilla's CA list for the SSL analyzer.^J (Seth Hall)^J^J0.1 | 2011-04-01 16:28:22 -0700^J^J * Converting build process to CMake. (Jon Siwek)^J +file_chunk, Cx92a0ym5R8, 476, 4024, now links against thread library when necessary (e.g.^J PF_RING's libpcap) (Jon Siwek)^J^J * Install binaries with an RPATH (Jon Siwek)^J^J * Workaround for FreeBSD CMake port missing debug flags (Jon Siwek)^J^J * Rewrite of the update-changes script. (Robin Sommer)^J^J0.1-1 | 2011-06-14 21:12:41 -0700^J^J * Add a script for generating Mozilla's CA list for the SSL analyzer.^J (Seth Hall)^J^J0.1 | 2011-04-01 16:28:22 -0700^J^J * Converting build process to CMake. (Jon Siwek)^J +file_stream, Cx92a0ym5R8, 205, ^J * Removing cf/hf/ca-* from distribution. The README has a note where^J to find them now. (Robin Sommer)^J^J * General cleanup. (Robin Sommer)^J^J * Initial import of bro/aux from SVN r7088. (Jon Siwek)^J +file_chunk, Cx92a0ym5R8, 205, 4500, ^J * Removing cf/hf/ca-* from distribution. The README has a note where^J to find them now. (Robin Sommer)^J^J * General cleanup. (Robin Sommer)^J^J * Initial import of bro/aux from SVN r7088. (Jon Siwek)^J diff --git a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.bifs.postpone_timeout/bro..stdout b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.bifs.postpone_timeout/bro..stdout new file mode 100644 index 0000000000..2ac9682b76 --- /dev/null +++ b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.bifs.postpone_timeout/bro..stdout @@ -0,0 +1,26 @@ +FileAnalysis::TRIGGER_NEW +oDwT1BbzjM1, 0, 0 +FileAnalysis::TRIGGER_DONE +oDwT1BbzjM1, 1022920, 0 +{ +UWkUyAuUGXf +} +{ +[orig_h=192.168.72.14, orig_p=3254/tcp, resp_h=65.54.95.206, resp_p=80/tcp] +} +total bytes: 1022920 +source: HTTP +FileAnalysis::TRIGGER_NEW +oDwT1BbzjM1, 0, 0 +FileAnalysis::TRIGGER_TIMEOUT +FileAnalysis::TRIGGER_TIMEOUT +FileAnalysis::TRIGGER_EOF +oDwT1BbzjM1, 206024, 0 +{ +arKYeMETxOg +} +{ +[orig_h=192.168.72.14, orig_p=3257/tcp, resp_h=65.54.95.14, resp_p=80/tcp] +} +total bytes: 1022920 +source: HTTP diff --git a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.bifs.remove_action/get.out b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.bifs.remove_action/get.out new file mode 100644 index 0000000000..56ce58a1f8 --- /dev/null +++ b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.bifs.remove_action/get.out @@ -0,0 +1,18 @@ +FileAnalysis::TRIGGER_NEW +Cx92a0ym5R8, 0, 0 +FileAnalysis::TRIGGER_BOF +FileAnalysis::TRIGGER_BOF_BUFFER +^J0.26 | 201 +FileAnalysis::TRIGGER_TYPE +file type is set +mime type is set +FileAnalysis::TRIGGER_DONE +Cx92a0ym5R8, 4705, 0 +{ +UWkUyAuUGXf +} +{ +[orig_h=141.142.228.5, orig_p=59856/tcp, resp_h=192.150.187.43, resp_p=80/tcp] +} +total bytes: 4705 +source: HTTP diff --git a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.bifs.stop/get.out b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.bifs.stop/get.out new file mode 100644 index 0000000000..c9a704444d --- /dev/null +++ b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.bifs.stop/get.out @@ -0,0 +1,2 @@ +FileAnalysis::TRIGGER_NEW +Cx92a0ym5R8, 0, 0 diff --git a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.input.basic/bro..stdout b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.input.basic/bro..stdout new file mode 100644 index 0000000000..cc19da8e34 --- /dev/null +++ b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.input.basic/bro..stdout @@ -0,0 +1,14 @@ +FileAnalysis::TRIGGER_NEW +nYgPNGLrZf9, 0, 0 +FileAnalysis::TRIGGER_BOF +FileAnalysis::TRIGGER_BOF_BUFFER +#separator +FileAnalysis::TRIGGER_TYPE +file type is set +mime type is set +FileAnalysis::TRIGGER_EOF +nYgPNGLrZf9, 311, 0 +source: ../input.log +SHA1: 0a0f20de89c86d7bce1301af6548d6e9ae87b0f1 +MD5: bf4dfa6169b74146da5236e918743599 +SHA256: 4e573192c5ea75da72494812fe24dae53a577837b2079df012fd464903d68a6f diff --git a/testing/btest/scripts/base/frameworks/file-analysis/actions/data_event.bro b/testing/btest/scripts/base/frameworks/file-analysis/actions/data_event.bro new file mode 100644 index 0000000000..d072a05c17 --- /dev/null +++ b/testing/btest/scripts/base/frameworks/file-analysis/actions/data_event.bro @@ -0,0 +1,55 @@ +# @TEST-EXEC: bro -r $TRACES/http/get.trace %INPUT >out +# @TEST-EXEC: btest-diff out + +event file_chunk(info: FileAnalysis::Info, data: string, off: count) + { + print "file_chunk", info$file_id, |data|, off, data; + } + +event file_stream(info: FileAnalysis::Info, data: string) + { + print "file_stream", info$file_id, |data|, data; + } + +hook FileAnalysis::policy(trig: FileAnalysis::Trigger, info: FileAnalysis::Info) + { + print trig; + + switch ( trig ) { + case FileAnalysis::TRIGGER_NEW: + print info$file_id, info$seen_bytes, info$missing_bytes; + + print FileAnalysis::add_action(info$file_id, + [$act=FileAnalysis::ACTION_DATA_EVENT, + $chunk_event=file_chunk, + $stream_event=file_stream]); + break; + + case FileAnalysis::TRIGGER_BOF_BUFFER: + if ( info?$bof_buffer ) + print info$bof_buffer[0:10]; + break; + + case FileAnalysis::TRIGGER_TYPE: + # not actually printing the values due to libmagic variances + if ( info?$file_type ) + print "file type is set"; + if ( info?$mime_type ) + print "mime type is set"; + break; + + case FileAnalysis::TRIGGER_EOF: + fallthrough; + case FileAnalysis::TRIGGER_DONE: + + print info$file_id, info$seen_bytes, info$missing_bytes; + print info$conn_uids; + print info$conn_ids; + + if ( info?$total_bytes ) + print "total bytes: " + fmt("%s", info$total_bytes); + if ( info?$source ) + print "source: " + info$source; + break; + } + } diff --git a/testing/btest/scripts/base/frameworks/file-analysis/bifs/postpone_timeout.bro b/testing/btest/scripts/base/frameworks/file-analysis/bifs/postpone_timeout.bro new file mode 100644 index 0000000000..f8f727f28b --- /dev/null +++ b/testing/btest/scripts/base/frameworks/file-analysis/bifs/postpone_timeout.bro @@ -0,0 +1,90 @@ +# @TEST-EXEC: btest-bg-run bro bro -r $TRACES/http/206_example_b.pcap %INPUT +# @TEST-EXEC: btest-bg-wait 8 +# @TEST-EXEC: btest-diff bro/.stdout + +global actions: set[FileAnalysis::ActionArgs]; +global cnt: count = 0; +global timeout_cnt: count = 0; + +redef exit_only_after_terminate = T; + +hook FileAnalysis::policy(trig: FileAnalysis::Trigger, info: FileAnalysis::Info) + { + print trig; + + switch ( trig ) { + case FileAnalysis::TRIGGER_TIMEOUT: + if ( timeout_cnt < 1 ) + FileAnalysis::postpone_timeout(info$file_id); + else + terminate(); + ++timeout_cnt; + break; + case FileAnalysis::TRIGGER_NEW: + info$timeout_interval=2sec; + + print info$file_id, info$seen_bytes, info$missing_bytes; + + if ( info$source == "HTTP" ) + { + for ( act in actions ) + FileAnalysis::add_action(info$file_id, act); + local filename: string = fmt("%s-file%d", info$file_id, cnt); + ++cnt; + FileAnalysis::add_action(info$file_id, + [$act=FileAnalysis::ACTION_EXTRACT, + $extract_filename=filename]); + } + break; + + case FileAnalysis::TRIGGER_BOF_BUFFER: + if ( info?$bof_buffer ) + print info$bof_buffer[0:10]; + break; + + case FileAnalysis::TRIGGER_TYPE: + # not actually printing the values due to libmagic variances + if ( info?$file_type ) + print "file type is set"; + if ( info?$mime_type ) + print "mime type is set"; + break; + + case FileAnalysis::TRIGGER_EOF: + fallthrough; + case FileAnalysis::TRIGGER_DONE: + + print info$file_id, info$seen_bytes, info$missing_bytes; + print info$conn_uids; + print info$conn_ids; + + if ( info?$total_bytes ) + print "total bytes: " + fmt("%s", info$total_bytes); + if ( info?$source ) + print "source: " + info$source; + + for ( act in info$actions ) + switch ( act$act ) { + case FileAnalysis::ACTION_MD5: + if ( info$actions[act]?$md5 ) + print fmt("MD5: %s", info$actions[act]$md5); + break; + case FileAnalysis::ACTION_SHA1: + if ( info$actions[act]?$sha1 ) + print fmt("SHA1: %s", info$actions[act]$sha1); + break; + case FileAnalysis::ACTION_SHA256: + if ( info$actions[act]?$sha256 ) + print fmt("SHA256: %s", info$actions[act]$sha256); + break; + } + break; + } + } + +event bro_init() + { + add actions[[$act=FileAnalysis::ACTION_MD5]]; + add actions[[$act=FileAnalysis::ACTION_SHA1]]; + add actions[[$act=FileAnalysis::ACTION_SHA256]]; + } diff --git a/testing/btest/scripts/base/frameworks/file-analysis/bifs/remove_action.bro b/testing/btest/scripts/base/frameworks/file-analysis/bifs/remove_action.bro new file mode 100644 index 0000000000..90285701ca --- /dev/null +++ b/testing/btest/scripts/base/frameworks/file-analysis/bifs/remove_action.bro @@ -0,0 +1,83 @@ +# @TEST-EXEC: bro -r $TRACES/http/get.trace %INPUT >get.out +# @TEST-EXEC: btest-diff get.out + +global actions: set[FileAnalysis::ActionArgs]; + +hook FileAnalysis::policy(trig: FileAnalysis::Trigger, info: FileAnalysis::Info) + { + local filename: string; + print trig; + + switch ( trig ) { + case FileAnalysis::TRIGGER_NEW: + + print info$file_id, info$seen_bytes, info$missing_bytes; + + if ( info$source == "HTTP" ) + { + for ( act in actions ) + FileAnalysis::add_action(info$file_id, act); + filename = fmt("%s-file", info$file_id); + FileAnalysis::add_action(info$file_id, + [$act=FileAnalysis::ACTION_EXTRACT, + $extract_filename=filename]); + } + break; + + case FileAnalysis::TRIGGER_BOF_BUFFER: + if ( info?$bof_buffer ) + print info$bof_buffer[0:10]; + break; + + case FileAnalysis::TRIGGER_TYPE: + for ( act in actions ) + FileAnalysis::remove_action(info$file_id, act); + filename = fmt("%s-file", info$file_id); + FileAnalysis::remove_action(info$file_id, + [$act=FileAnalysis::ACTION_EXTRACT, + $extract_filename=filename]); + # not actually printing the values due to libmagic variances + if ( info?$file_type ) + print "file type is set"; + if ( info?$mime_type ) + print "mime type is set"; + break; + + case FileAnalysis::TRIGGER_EOF: + fallthrough; + case FileAnalysis::TRIGGER_DONE: + + print info$file_id, info$seen_bytes, info$missing_bytes; + print info$conn_uids; + print info$conn_ids; + + if ( info?$total_bytes ) + print "total bytes: " + fmt("%s", info$total_bytes); + if ( info?$source ) + print "source: " + info$source; + + for ( act in info$actions ) + switch ( act$act ) { + case FileAnalysis::ACTION_MD5: + if ( info$actions[act]?$md5 ) + print fmt("MD5: %s", info$actions[act]$md5); + break; + case FileAnalysis::ACTION_SHA1: + if ( info$actions[act]?$sha1 ) + print fmt("SHA1: %s", info$actions[act]$sha1); + break; + case FileAnalysis::ACTION_SHA256: + if ( info$actions[act]?$sha256 ) + print fmt("SHA256: %s", info$actions[act]$sha256); + break; + } + break; + } + } + +event bro_init() + { + add actions[[$act=FileAnalysis::ACTION_MD5]]; + add actions[[$act=FileAnalysis::ACTION_SHA1]]; + add actions[[$act=FileAnalysis::ACTION_SHA256]]; + } diff --git a/testing/btest/scripts/base/frameworks/file-analysis/bifs/stop.bro b/testing/btest/scripts/base/frameworks/file-analysis/bifs/stop.bro new file mode 100644 index 0000000000..d8ff623c60 --- /dev/null +++ b/testing/btest/scripts/base/frameworks/file-analysis/bifs/stop.bro @@ -0,0 +1,75 @@ +# @TEST-EXEC: bro -r $TRACES/http/get.trace %INPUT >get.out +# @TEST-EXEC: btest-diff get.out +# @TEST-EXEC: test ! -s Cx92a0ym5R8-file + +global actions: set[FileAnalysis::ActionArgs]; + +hook FileAnalysis::policy(trig: FileAnalysis::Trigger, info: FileAnalysis::Info) + { + print trig; + + switch ( trig ) { + case FileAnalysis::TRIGGER_NEW: + FileAnalysis::stop(info$file_id); + + print info$file_id, info$seen_bytes, info$missing_bytes; + + if ( info$source == "HTTP" ) + { + for ( act in actions ) + FileAnalysis::add_action(info$file_id, act); + local filename: string = fmt("%s-file", info$file_id); + FileAnalysis::add_action(info$file_id, + [$act=FileAnalysis::ACTION_EXTRACT, + $extract_filename=filename]); + } + break; + + case FileAnalysis::TRIGGER_BOF_BUFFER: + if ( info?$bof_buffer ) + print info$bof_buffer[0:10]; + break; + + case FileAnalysis::TRIGGER_TYPE: + # not actually printing the values due to libmagic variances + if ( info?$file_type ) + print "file type is set"; + if ( info?$mime_type ) + print "mime type is set"; + break; + + case FileAnalysis::TRIGGER_EOF: + fallthrough; + case FileAnalysis::TRIGGER_DONE: + + print info$file_id, info$seen_bytes, info$missing_bytes; + print info$conn_uids; + print info$conn_ids; + + if ( info?$total_bytes ) + print "total bytes: " + fmt("%s", info$total_bytes); + if ( info?$source ) + print "source: " + info$source; + + for ( act in info$actions ) + switch ( act$act ) { + case FileAnalysis::ACTION_MD5: + print fmt("MD5: %s", info$actions[act]$md5); + break; + case FileAnalysis::ACTION_SHA1: + print fmt("SHA1: %s", info$actions[act]$sha1); + break; + case FileAnalysis::ACTION_SHA256: + print fmt("SHA256: %s", info$actions[act]$sha256); + break; + } + break; + } + } + +event bro_init() + { + add actions[[$act=FileAnalysis::ACTION_MD5]]; + add actions[[$act=FileAnalysis::ACTION_SHA1]]; + add actions[[$act=FileAnalysis::ACTION_SHA256]]; + } diff --git a/testing/btest/scripts/base/frameworks/file-analysis/input/basic.bro b/testing/btest/scripts/base/frameworks/file-analysis/input/basic.bro new file mode 100644 index 0000000000..568a2a47da --- /dev/null +++ b/testing/btest/scripts/base/frameworks/file-analysis/input/basic.bro @@ -0,0 +1,115 @@ +# @TEST-EXEC: btest-bg-run bro bro -b %INPUT +# @TEST-EXEC: btest-bg-wait 8 +# @TEST-EXEC: btest-diff bro/.stdout +# @TEST-EXEC: diff -q bro/nYgPNGLrZf9-file input.log + +redef exit_only_after_terminate = T; + +@TEST-START-FILE input.log +#separator \x09 +#path ssh +#fields b i e c p sn a d t iv s sc ss se vc ve ns +#types bool int enum count port subnet addr double time interval string table table table vector vector string +T -42 SSH::LOG 21 123 10.0.0.0/24 1.2.3.4 3.14 1315801931.273616 100.000000 hurz 2,4,1,3 CC,AA,BB EMPTY 10,20,30 EMPTY 4242 +@TEST-END-FILE + +module A; + +type Val: record { + s: string; +}; + +event line(description: Input::EventDescription, tpe: Input::Event, s: string) + { + FileAnalysis::data_stream(description$source, s); + } + +event Input::end_of_data(name: string, source: string) + { + FileAnalysis::eof(source); + } + +event bro_init() + { + Input::add_event([$source="../input.log", $reader=Input::READER_BINARY, + $mode=Input::MANUAL, $name="input", $fields=Val, + $ev=line, $want_record=F]); + Input::remove("input"); + } + +global actions: set[FileAnalysis::ActionArgs]; + +hook FileAnalysis::policy(trig: FileAnalysis::Trigger, info: FileAnalysis::Info) + { + local filename: string; + print trig; + + switch ( trig ) { + case FileAnalysis::TRIGGER_NEW: + + print info$file_id, info$seen_bytes, info$missing_bytes; + + for ( act in actions ) + FileAnalysis::add_action(info$file_id, act); + filename = fmt("%s-file", info$file_id); + FileAnalysis::add_action(info$file_id, + [$act=FileAnalysis::ACTION_EXTRACT, + $extract_filename=filename]); + break; + + case FileAnalysis::TRIGGER_BOF_BUFFER: + if ( info?$bof_buffer ) + print info$bof_buffer[0:10]; + break; + + case FileAnalysis::TRIGGER_TYPE: + for ( act in actions ) + FileAnalysis::remove_action(info$file_id, act); + filename = fmt("%s-file", info$file_id); + FileAnalysis::remove_action(info$file_id, + [$act=FileAnalysis::ACTION_EXTRACT, + $extract_filename=filename]); + # not actually printing the values due to libmagic variances + if ( info?$file_type ) + print "file type is set"; + if ( info?$mime_type ) + print "mime type is set"; + break; + + case FileAnalysis::TRIGGER_EOF: + fallthrough; + case FileAnalysis::TRIGGER_DONE: + + print info$file_id, info$seen_bytes, info$missing_bytes; + + if ( info?$total_bytes ) + print "total bytes: " + fmt("%s", info$total_bytes); + if ( info?$source ) + print "source: " + info$source; + + for ( act in info$actions ) + switch ( act$act ) { + case FileAnalysis::ACTION_MD5: + if ( info$actions[act]?$md5 ) + print fmt("MD5: %s", info$actions[act]$md5); + break; + case FileAnalysis::ACTION_SHA1: + if ( info$actions[act]?$sha1 ) + print fmt("SHA1: %s", info$actions[act]$sha1); + break; + case FileAnalysis::ACTION_SHA256: + if ( info$actions[act]?$sha256 ) + print fmt("SHA256: %s", info$actions[act]$sha256); + break; + } + terminate(); + break; + } + } + +event bro_init() + { + add actions[[$act=FileAnalysis::ACTION_MD5]]; + add actions[[$act=FileAnalysis::ACTION_SHA1]]; + add actions[[$act=FileAnalysis::ACTION_SHA256]]; + } From 7034785810116ae11f4bb03fed2cb1ce3c53b6d5 Mon Sep 17 00:00:00 2001 From: Jon Siwek Date: Wed, 20 Mar 2013 13:31:11 -0500 Subject: [PATCH 56/71] FileAnalysis: add logging, file_analysis.log. --- .../base/frameworks/file-analysis/main.bro | 63 +++++++++++- .../file_analysis.log | 10 ++ .../base/frameworks/file-analysis/logging.bro | 99 +++++++++++++++++++ 3 files changed, 169 insertions(+), 3 deletions(-) create mode 100644 testing/btest/Baseline/scripts.base.frameworks.file-analysis.logging/file_analysis.log create mode 100644 testing/btest/scripts/base/frameworks/file-analysis/logging.bro diff --git a/scripts/base/frameworks/file-analysis/main.bro b/scripts/base/frameworks/file-analysis/main.bro index c89f87416a..88a8663739 100644 --- a/scripts/base/frameworks/file-analysis/main.bro +++ b/scripts/base/frameworks/file-analysis/main.bro @@ -84,16 +84,16 @@ export { ## The number of bytes at the beginning of a file to save for later ## inspection in *bof_buffer* field of ## :bro:see:`FileAnalysis::ActionResults`. - bof_buffer_size: count &default=default_bof_buffer_size; + bof_buffer_size: count &log &default=default_bof_buffer_size; ## The content of the beginning of a file up to *bof_buffer_size* bytes. ## This is also the buffer that's used for file/mime type detection. bof_buffer: string &optional; ## An initial guess at file type. - file_type: string &optional; + file_type: string &log &optional; ## An initial guess at mime type. - mime_type: string &optional; + mime_type: string &log &optional; ## Actions that have been added to the analysis of this file. ## Not meant to be modified directly by scripts. @@ -110,4 +110,61 @@ export { global get_handle: function(c: connection, is_orig: bool): string &redef; # TODO: wrapper functions for BiFs ? + + ## Event that can be handled to access the Info record as it is sent on + ## to the logging framework. + global log_file_analysis: event(rec: Info); } + +event bro_init() &priority=5 + { + Log::create_stream(FileAnalysis::LOG, + [$columns=Info, $ev=log_file_analysis]); + } + +redef record FileAnalysis::Info += { + actions_taken: set[Action] &log &optional; + extracted_files: set[string] &log &optional; + md5: string &log &optional; + sha1: string &log &optional; + sha256: string &log &optional; +}; + +hook FileAnalysis::policy(trig: FileAnalysis::Trigger, info: FileAnalysis::Info) + &priority=-10 + { + if ( trig != FileAnalysis::TRIGGER_EOF && + trig != FileAnalysis::TRIGGER_DONE ) return; + + info$actions_taken = set(); + info$extracted_files = set(); + + for ( act in info$actions ) + { + add info$actions_taken[act$act]; + local result: FileAnalysis::ActionResults = info$actions[act]; + + switch ( act$act ) { + case FileAnalysis::ACTION_EXTRACT: + add info$extracted_files[act$extract_filename]; + break; + case FileAnalysis::ACTION_MD5: + if ( result?$md5 ) + info$md5 = result$md5; + break; + case FileAnalysis::ACTION_SHA1: + if ( result?$sha1 ) + info$sha1 = result$sha1; + break; + case FileAnalysis::ACTION_SHA256: + if ( result?$sha256 ) + info$sha256 = result$sha256; + break; + case FileAnalysis::ACTION_DATA_EVENT: + # no direct result + break; + } + } + + Log::write(FileAnalysis::LOG, info); + } diff --git a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.logging/file_analysis.log b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.logging/file_analysis.log new file mode 100644 index 0000000000..1d78b0dee6 --- /dev/null +++ b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.logging/file_analysis.log @@ -0,0 +1,10 @@ +#separator \x09 +#set_separator , +#empty_field (empty) +#unset_field - +#path file_analysis +#open 2013-03-20-18-29-14 +#fields file_id parent_file_id source conn_uids seen_bytes total_bytes missing_bytes overflow_bytes timeout_interval bof_buffer_size file_type mime_type actions_taken extracted_files md5 sha1 sha256 +#types string string string table[string] count count count count interval count string string table[enum] table[string] string string string +Cx92a0ym5R8 - HTTP UWkUyAuUGXf 4705 4705 0 0 120.000000 1024 set set FileAnalysis::ACTION_SHA1,FileAnalysis::ACTION_EXTRACT,FileAnalysis::ACTION_DATA_EVENT,FileAnalysis::ACTION_MD5,FileAnalysis::ACTION_SHA256 Cx92a0ym5R8-file 397168fd09991a0e712254df7bc639ac 1dd7ac0398df6cbc0696445a91ec681facf4dc47 4e7c7ef0984119447e743e3ec77e1de52713e345cde03fe7df753a35849bed18 +#close 2013-03-20-18-29-14 diff --git a/testing/btest/scripts/base/frameworks/file-analysis/logging.bro b/testing/btest/scripts/base/frameworks/file-analysis/logging.bro new file mode 100644 index 0000000000..ab12304ac5 --- /dev/null +++ b/testing/btest/scripts/base/frameworks/file-analysis/logging.bro @@ -0,0 +1,99 @@ +# @TEST-EXEC: bro -r $TRACES/http/get.trace %INPUT +# @TEST-EXEC: btest-diff file_analysis.log + +global actions: set[FileAnalysis::ActionArgs]; + +event file_chunk(info: FileAnalysis::Info, data: string, off: count) + { + print "file_chunk", info$file_id, |data|, off, data; + } + +event file_stream(info: FileAnalysis::Info, data: string) + { + print "file_stream", info$file_id, |data|, data; + } + +hook FileAnalysis::policy(trig: FileAnalysis::Trigger, info: FileAnalysis::Info) + { + print trig; + + switch ( trig ) { + case FileAnalysis::TRIGGER_NEW: + print info$file_id, info$seen_bytes, info$missing_bytes; + + if ( info$source == "HTTP" ) + { + for ( act in actions ) + FileAnalysis::add_action(info$file_id, act); + local filename: string = fmt("%s-file", info$file_id); + FileAnalysis::add_action(info$file_id, + [$act=FileAnalysis::ACTION_EXTRACT, + $extract_filename=filename]); + FileAnalysis::add_action(info$file_id, + [$act=FileAnalysis::ACTION_DATA_EVENT, + $chunk_event=file_chunk, + $stream_event=file_stream]); + + } + break; + + case FileAnalysis::TRIGGER_BOF_BUFFER: + if ( info?$bof_buffer ) + print info$bof_buffer[0:10]; + break; + + case FileAnalysis::TRIGGER_TYPE: + # not actually printing the values due to libmagic variances + if ( info?$file_type ) + print "file type is set"; + if ( info?$mime_type ) + print "mime type is set"; + break; + + case FileAnalysis::TRIGGER_EOF: + fallthrough; + case FileAnalysis::TRIGGER_DONE: + + print info$file_id, info$seen_bytes, info$missing_bytes; + print info$conn_uids; + print info$conn_ids; + + if ( info?$total_bytes ) + print "total bytes: " + fmt("%s", info$total_bytes); + if ( info?$source ) + print "source: " + info$source; + + for ( act in info$actions ) + switch ( act$act ) { + case FileAnalysis::ACTION_MD5: + print fmt("MD5: %s", info$actions[act]$md5); + break; + case FileAnalysis::ACTION_SHA1: + print fmt("SHA1: %s", info$actions[act]$sha1); + break; + case FileAnalysis::ACTION_SHA256: + print fmt("SHA256: %s", info$actions[act]$sha256); + break; + } + break; + } + } + +hook FileAnalysis::policy(trig: FileAnalysis::Trigger, info: FileAnalysis::Info) + &priority=-5 + { + if ( trig != FileAnalysis::TRIGGER_TYPE ) return; + + # avoids libmagic variances across systems + if ( info?$mime_type ) + info$mime_type = "set"; + if ( info?$file_type ) + info$file_type = "set"; + } + +event bro_init() + { + add actions[[$act=FileAnalysis::ACTION_MD5]]; + add actions[[$act=FileAnalysis::ACTION_SHA1]]; + add actions[[$act=FileAnalysis::ACTION_SHA256]]; + } From 4e99d3a606892c4ca390c18f855c910fa06ffc72 Mon Sep 17 00:00:00 2001 From: Seth Hall Date: Fri, 22 Mar 2013 12:38:43 -0400 Subject: [PATCH 57/71] Add support for 802.1ah (Q-in-Q). --- src/PktSrc.cc | 8 ++++++++ testing/btest/Baseline/core.q-in-q/conn.log | 11 +++++++++++ testing/btest/Traces/q-in-q.trace | Bin 0 -> 960 bytes testing/btest/core/q-in-q.bro | 2 ++ 4 files changed, 21 insertions(+) create mode 100644 testing/btest/Baseline/core.q-in-q/conn.log create mode 100644 testing/btest/Traces/q-in-q.trace create mode 100644 testing/btest/core/q-in-q.bro diff --git a/src/PktSrc.cc b/src/PktSrc.cc index 2e6953f7f8..fac2d11e98 100644 --- a/src/PktSrc.cc +++ b/src/PktSrc.cc @@ -231,6 +231,14 @@ void PktSrc::Process() data += get_link_header_size(datalink); data += 4; // Skip the vlan header pkt_hdr_size = 0; + + // Check for 802.1ah (Q-in-Q) containing IP. + // Only do a second layer of vlan tag + // stripping because there is no + // specification that allows for deeper nesting. + if ( ((data[2] << 8) + data[3]) == 0x0800 ) + data += 4; + break; // PPPoE carried over the ethernet frame. diff --git a/testing/btest/Baseline/core.q-in-q/conn.log b/testing/btest/Baseline/core.q-in-q/conn.log new file mode 100644 index 0000000000..00b1b9894f --- /dev/null +++ b/testing/btest/Baseline/core.q-in-q/conn.log @@ -0,0 +1,11 @@ +#separator \x09 +#set_separator , +#empty_field (empty) +#unset_field - +#path conn +#open 2013-03-22-16-36-54 +#fields ts uid id.orig_h id.orig_p id.resp_h id.resp_p proto service duration orig_bytes resp_bytes conn_state local_orig missed_bytes history orig_pkts orig_ip_bytes resp_pkts resp_ip_bytes tunnel_parents +#types time string addr port addr port enum string interval count count string bool count string count count count count table[string] +1363900699.548138 UWkUyAuUGXf 172.19.51.37 47808 172.19.51.63 47808 udp - 0.000100 36 0 S0 - 0 D 2 92 0 0 (empty) +1363900699.549647 arKYeMETxOg 193.1.186.60 9875 224.2.127.254 9875 udp - 0.000139 552 0 S0 - 0 D 2 608 0 0 (empty) +#close 2013-03-22-16-36-54 diff --git a/testing/btest/Traces/q-in-q.trace b/testing/btest/Traces/q-in-q.trace new file mode 100644 index 0000000000000000000000000000000000000000..39969c80632c23b4862bd90fb1799f347e00bb40 GIT binary patch literal 960 zcmca|c+)~A1{MYw`2U}Qff2}&uJjJnisfK%0kT2(KNv6^c*3ajwvmB>7l^qy7+e_` z^xUU0FgOU7%v&RDtO~^TyAJF+z#z5rRwFlq5TgRny#E3mT+)$J(vcuD`)FV$e=-My z8_>}p%*YVORR52Ip`ME&2-%&C20&LbunNwsJIJ`p<^fQR+GMrKj56mE6o8sQVu=L> zIho0cC7Jno`o$>)3}vA~ zW`;&amI^@26KxYqOEU6{tUO#D^HPDPB-&=DR+gs}TX`0x<|O8&=qPv=Wfo`XC Date: Fri, 22 Mar 2013 12:27:19 -0700 Subject: [PATCH 58/71] Updating submodule(s). [nomail] --- aux/bro-aux | 2 +- aux/broctl | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/aux/bro-aux b/aux/bro-aux index ae14da422b..7068100754 160000 --- a/aux/bro-aux +++ b/aux/bro-aux @@ -1 +1 @@ -Subproject commit ae14da422bfb252c8a53bd00d3e5fd7da8bc112e +Subproject commit 70681007546aad6e5648494e882b71adb9165105 diff --git a/aux/broctl b/aux/broctl index 3e3ada3c2e..2b35d03313 160000 --- a/aux/broctl +++ b/aux/broctl @@ -1 +1 @@ -Subproject commit 3e3ada3c2efebeda1278b8897859dd7c7d61e671 +Subproject commit 2b35d0331366865fbf0119919cc9692d55c4538c From 71f0e2d27666bddde891a56ff7a5b3012abd76eb Mon Sep 17 00:00:00 2001 From: Jon Siwek Date: Fri, 22 Mar 2013 16:14:06 -0500 Subject: [PATCH 59/71] FileAnalysis: replace script-layer http file analysis. Other misc: - Remove HTTP::MD5 notice. - Add "last_active" field to FileAnalysis::Info record. - Replace "conn_uids", "conn_ids" fields in FileAnalysis::Info record with just a "conns" fields containing full connection records. - The http-methods unit test is failing now, but I think it will be fixed once I change the file handle callback mechanism to use events instead. --- .../base/frameworks/file-analysis/main.bro | 17 ++- scripts/base/protocols/http/file-extract.bro | 93 +++++++---- scripts/base/protocols/http/file-hash.bro | 107 +++++++------ scripts/base/protocols/http/file-ident.bro | 66 +++----- scripts/base/protocols/http/file-ident.sig | 144 ------------------ src/Analyzer.cc | 4 +- src/FileAnalyzer.cc | 8 +- src/HTTP.cc | 22 ++- src/MIME.cc | 3 +- src/file_analysis/Info.cc | 79 ++++------ src/file_analysis/Info.h | 19 +-- src/file_analysis/Manager.cc | 34 +++-- src/file_analysis/Manager.h | 15 +- src/file_analysis/PendingFile.cc | 39 +++-- src/file_analysis/PendingFile.h | 19 ++- .../Baseline/core.tunnels.ayiya/http.log | 8 +- .../http.log | 10 +- .../core.tunnels.gtp.outer_ip_frag/http.log | 8 +- .../Baseline/core.tunnels.teredo/http.log | 14 +- .../http.log | 10 +- .../istate.events-ssl/receiver.http.log | 8 +- .../istate.events-ssl/sender.http.log | 8 +- .../Baseline/istate.events/receiver.http.log | 8 +- .../Baseline/istate.events/sender.http.log | 8 +- .../out | 5 - .../bro..stdout | 10 -- .../get.out | 5 - .../out | 7 +- .../get-gzip.out | 5 - .../get.out | 5 - .../a.out | 8 +- .../b.out | 10 -- .../c.out | 8 +- .../out | 25 --- .../out | 10 -- .../out | 7 +- .../file_analysis.log | 10 +- .../out | 15 -- .../http.log | 8 +- .../http.log | 6 +- .../http.log | 8 +- ...resp_1.dat => http-item-BFymS6bFgT3-0.dat} | 0 .../http.log | 8 +- .../http.log | 16 +- .../http.log | 6 +- testing/btest/istate/events-ssl.bro | 10 +- testing/btest/istate/events.bro | 8 + .../file-analysis/actions/data_event.bro | 5 +- .../file-analysis/bifs/postpone_timeout.bro | 5 +- .../file-analysis/bifs/remove_action.bro | 5 +- .../frameworks/file-analysis/bifs/stop.bro | 5 +- .../base/frameworks/file-analysis/ftp.bro | 7 +- .../frameworks/file-analysis/http/get.bro | 5 +- .../file-analysis/http/partial-content.bro | 5 +- .../file-analysis/http/pipeline.bro | 5 +- .../frameworks/file-analysis/http/post.bro | 5 +- .../base/frameworks/file-analysis/irc.bro | 7 +- .../base/frameworks/file-analysis/logging.bro | 5 +- .../base/frameworks/file-analysis/smtp.bro | 5 +- .../protocols/http/http-extract-files.bro | 4 +- .../base/protocols/http/http-mime-and-md5.bro | 17 +-- 61 files changed, 411 insertions(+), 625 deletions(-) delete mode 100644 scripts/base/protocols/http/file-ident.sig rename testing/btest/Baseline/scripts.base.protocols.http.http-extract-files/{http-item_141.42.64.125:56730-125.190.109.199:80_resp_1.dat => http-item-BFymS6bFgT3-0.dat} (100%) diff --git a/scripts/base/frameworks/file-analysis/main.bro b/scripts/base/frameworks/file-analysis/main.bro index 88a8663739..3b21ae556f 100644 --- a/scripts/base/frameworks/file-analysis/main.bro +++ b/scripts/base/frameworks/file-analysis/main.bro @@ -54,12 +54,11 @@ export { ## path which was read, or some other input source. source: string &log &optional; - ## The set of connections over which the file was transferred, - ## indicated by UID strings. - conn_uids: set[string] &log &optional; - ## The set of connections over which the file was transferred, - ## indicated by 5-tuples. - conn_ids: set[conn_id] &optional; + ## The set of connections over which the file was transferred. + conns: table[conn_id] of connection &optional; + + ## The time at which the last activity for the file was seen. + last_active: time &log; ## Number of bytes provided to the file analysis engine for the file. seen_bytes: count &log &default=0; @@ -123,6 +122,7 @@ event bro_init() &priority=5 } redef record FileAnalysis::Info += { + conn_uids: set[string] &log &optional; actions_taken: set[Action] &log &optional; extracted_files: set[string] &log &optional; md5: string &log &optional; @@ -136,6 +136,11 @@ hook FileAnalysis::policy(trig: FileAnalysis::Trigger, info: FileAnalysis::Info) if ( trig != FileAnalysis::TRIGGER_EOF && trig != FileAnalysis::TRIGGER_DONE ) return; + info$conn_uids = set(); + if ( info?$conns ) + for ( cid in info$conns ) + add info$conn_uids[info$conns[cid]$uid]; + info$actions_taken = set(); info$extracted_files = set(); diff --git a/scripts/base/protocols/http/file-extract.bro b/scripts/base/protocols/http/file-extract.bro index 466d18c3b4..079636fb6a 100644 --- a/scripts/base/protocols/http/file-extract.bro +++ b/scripts/base/protocols/http/file-extract.bro @@ -2,8 +2,7 @@ ##! the message body from the server can be extracted with this script. @load ./main -@load ./file-ident -@load base/utils/files +@load ./file-analysis module HTTP; @@ -16,45 +15,77 @@ export { redef record Info += { ## On-disk file where the response body was extracted to. - extraction_file: file &log &optional; + extraction_file: string &log &optional; ## Indicates if the response body is to be extracted or not. Must be - ## set before or by the first :bro:id:`http_entity_data` event for the - ## content. + ## set before or by the first :bro:enum:`FileAnalysis::TRIGGER_NEW` + ## for the file content. extract_file: bool &default=F; }; } -event http_entity_data(c: connection, is_orig: bool, length: count, data: string) &priority=-5 +global extract_count: count = 0; + +hook FileAnalysis::policy(trig: FileAnalysis::Trigger, info: FileAnalysis::Info) + &priority=5 { - # Client body extraction is not currently supported in this script. - if ( is_orig ) - return; - - if ( c$http$first_chunk ) + if ( trig != FileAnalysis::TRIGGER_TYPE ) return; + if ( ! info?$mime_type ) return; + if ( ! info?$source ) return; + if ( info$source != "HTTP" ) return; + if ( extract_file_types !in info$mime_type ) return; + + for ( act in info$actions ) + if ( act$act == FileAnalysis::ACTION_EXTRACT ) return; + + local fname: string = fmt("%s-%s-%d.dat", extraction_prefix, info$file_id, + extract_count); + ++extract_count; + FileAnalysis::add_action(info$file_id, [$act=FileAnalysis::ACTION_EXTRACT, + $extract_filename=fname]); + + if ( ! info?$conns ) return; + + for ( cid in info$conns ) { - if ( c$http?$mime_type && - extract_file_types in c$http$mime_type ) - { - c$http$extract_file = T; - } - + local c: connection = info$conns[cid]; + + if ( ! c?$http ) next; + + c$http$extraction_file = fname; + } + } + +hook FileAnalysis::policy(trig: FileAnalysis::Trigger, info: FileAnalysis::Info) + &priority=5 + { + if ( trig != FileAnalysis::TRIGGER_NEW ) return; + if ( ! info?$source ) return; + if ( info$source != "HTTP" ) return; + if ( ! info?$conns ) return; + + local fname: string = fmt("%s-%s-%d.dat", extraction_prefix, info$file_id, + extract_count); + local extracting: bool = F; + + for ( cid in info$conns ) + { + local c: connection = info$conns[cid]; + + if ( ! c?$http ) next; + if ( c$http$extract_file ) { - local suffix = fmt("%s_%d.dat", is_orig ? "orig" : "resp", c$http_state$current_response); - local fname = generate_extraction_filename(extraction_prefix, c, suffix); - - c$http$extraction_file = open(fname); - enable_raw_output(c$http$extraction_file); + if ( ! extracting ) + { + FileAnalysis::add_action(info$file_id, + [$act=FileAnalysis::ACTION_EXTRACT, + $extract_filename=fname]); + extracting = T; + ++extract_count; + } + + c$http$extraction_file = fname; } } - - if ( c$http?$extraction_file ) - print c$http$extraction_file, data; - } - -event http_end_entity(c: connection, is_orig: bool) - { - if ( c$http?$extraction_file ) - close(c$http$extraction_file); } diff --git a/scripts/base/protocols/http/file-hash.bro b/scripts/base/protocols/http/file-hash.bro index 2545cbf817..7659ba2b97 100644 --- a/scripts/base/protocols/http/file-hash.bro +++ b/scripts/base/protocols/http/file-hash.bro @@ -1,15 +1,11 @@ ##! Calculate hashes for HTTP body transfers. -@load ./file-ident +@load ./main +@load ./file-analysis module HTTP; export { - redef enum Notice::Type += { - ## Indicates that an MD5 sum was calculated for an HTTP response body. - MD5, - }; - redef record Info += { ## MD5 sum for a file transferred over HTTP calculated from the ## response body. @@ -19,10 +15,6 @@ export { ## if a file should have an MD5 sum generated. It must be ## set to T at the time of or before the first chunk of body data. calc_md5: bool &default=F; - - ## Indicates if an MD5 sum is being calculated for the current - ## request/response pair. - md5_handle: opaque of md5 &optional; }; ## Generate MD5 sums for these filetypes. @@ -31,62 +23,67 @@ export { &redef; } -## Initialize and calculate the hash. -event http_entity_data(c: connection, is_orig: bool, length: count, data: string) &priority=5 +hook FileAnalysis::policy(trig: FileAnalysis::Trigger, info: FileAnalysis::Info) + &priority=5 { - if ( is_orig || ! c?$http ) return; - - if ( c$http$first_chunk ) + if ( trig != FileAnalysis::TRIGGER_TYPE ) return; + if ( ! info?$mime_type ) return; + if ( ! info?$source ) return; + if ( info$source != "HTTP" ) return; + + if ( generate_md5 in info$mime_type ) + FileAnalysis::add_action(info$file_id, [$act=FileAnalysis::ACTION_MD5]); + else if ( info?$conns ) { - if ( c$http$calc_md5 || - (c$http?$mime_type && generate_md5 in c$http$mime_type) ) + for ( cid in info$conns ) { - c$http$md5_handle = md5_hash_init(); + local c: connection = info$conns[cid]; + + if ( ! c?$http ) next; + + if ( c$http$calc_md5 ) + { + FileAnalysis::add_action(info$file_id, + [$act=FileAnalysis::ACTION_MD5]); + return; + } } } - - if ( c$http?$md5_handle ) - md5_hash_update(c$http$md5_handle, data); - } - -## In the event of a content gap during a file transfer, detect the state for -## the MD5 sum calculation and stop calculating the MD5 since it would be -## incorrect anyway. -event content_gap(c: connection, is_orig: bool, seq: count, length: count) &priority=5 - { - if ( is_orig || ! c?$http || ! c$http?$md5_handle ) return; - - set_state(c, F, is_orig); - md5_hash_finish(c$http$md5_handle); # Ignore return value. - delete c$http$md5_handle; } -## When the file finishes downloading, finish the hash and generate a notice. -event http_message_done(c: connection, is_orig: bool, stat: http_message_stat) &priority=-3 +hook FileAnalysis::policy(trig: FileAnalysis::Trigger, info: FileAnalysis::Info) + &priority=5 { - if ( is_orig || ! c?$http ) return; - - if ( c$http?$md5_handle ) + if ( trig != FileAnalysis::TRIGGER_DONE && + trig != FileAnalysis::TRIGGER_EOF ) return; + if ( ! info?$source ) return; + if ( info$source != "HTTP" ) return; + if ( ! info?$conns ) return; + + local act: FileAnalysis::ActionArgs = [$act=FileAnalysis::ACTION_MD5]; + + if ( act !in info$actions ) return; + + local result = info$actions[act]; + + if ( ! result?$md5 ) return; + + for ( cid in info$conns ) { - local url = build_url_http(c$http); - c$http$md5 = md5_hash_finish(c$http$md5_handle); - delete c$http$md5_handle; - - NOTICE([$note=MD5, $msg=fmt("%s %s %s", c$id$orig_h, c$http$md5, url), - $sub=c$http$md5, $conn=c]); + local c: connection = info$conns[cid]; + + if ( ! c?$http ) next; + + c$http$md5 = result$md5; } } -event connection_state_remove(c: connection) &priority=-5 +hook FileAnalysis::policy(trig: FileAnalysis::Trigger, info: FileAnalysis::Info) + &priority=5 { - if ( c?$http_state && - c$http_state$current_response in c$http_state$pending && - c$http_state$pending[c$http_state$current_response]?$md5_handle ) - { - # The MD5 sum isn't going to be saved anywhere since the entire - # body wouldn't have been seen anyway and we'd just be giving an - # incorrect MD5 sum. - md5_hash_finish(c$http$md5_handle); - delete c$http$md5_handle; - } + if ( trig != FileAnalysis::TRIGGER_GAP ) return; + if ( ! info?$source ) return; + if ( info$source != "HTTP" ) return; + + FileAnalysis::add_action(info$file_id, [$act=FileAnalysis::ACTION_MD5]); } diff --git a/scripts/base/protocols/http/file-ident.bro b/scripts/base/protocols/http/file-ident.bro index 706ea58558..71802c3bde 100644 --- a/scripts/base/protocols/http/file-ident.bro +++ b/scripts/base/protocols/http/file-ident.bro @@ -1,15 +1,9 @@ ##! Identification of file types in HTTP response bodies with file content sniffing. -@load base/frameworks/signatures @load base/frameworks/notice @load ./main @load ./utils - -# Add the magic number signatures to the core signature set. -@load-sigs ./file-ident.sig - -# Ignore the signatures used to match files -redef Signatures::ignored_ids += /^matchfile-/; +@load ./file-analysis module HTTP; @@ -22,11 +16,6 @@ export { redef record Info += { ## Mime type of response body identified by content sniffing. mime_type: string &log &optional; - - ## Indicates that no data of the current file transfer has been - ## seen yet. After the first :bro:id:`http_entity_data` event, it - ## will be set to F. - first_chunk: bool &default=T; }; ## Mapping between mime types and regular expressions for URLs @@ -43,43 +32,34 @@ export { const ignored_incorrect_file_type_urls = /^$/ &redef; } -event signature_match(state: signature_state, msg: string, data: string) &priority=5 +hook FileAnalysis::policy(trig: FileAnalysis::Trigger, info: FileAnalysis::Info) + &priority=5 { - # Only signatures matching file types are dealt with here. - if ( /^matchfile-/ !in state$sig_id ) return; + if ( trig != FileAnalysis::TRIGGER_TYPE ) return; + if ( ! info?$mime_type ) return; + if ( ! info?$source ) return; + if ( info$source != "HTTP" ) return; + if ( ! info?$conns ) return; - local c = state$conn; - set_state(c, F, F); - - # Not much point in any of this if we don't know about the HTTP session. - if ( ! c?$http ) return; - - # Set the mime type that was detected. - c$http$mime_type = msg; - - if ( msg in mime_types_extensions && - c$http?$uri && mime_types_extensions[msg] !in c$http$uri ) + for ( cid in info$conns ) { + local c: connection = info$conns[cid]; + + if ( ! c?$http ) next; + + c$http$mime_type = info$mime_type; + + if ( info$mime_type !in mime_types_extensions ) next; + if ( ! c$http?$uri ) next; + if ( mime_types_extensions[info$mime_type] in c$http$uri ) next; + local url = build_url_http(c$http); - - if ( url == ignored_incorrect_file_type_urls ) - return; - - local message = fmt("%s %s %s", msg, c$http$method, url); + + if ( url == ignored_incorrect_file_type_urls ) next; + + local message = fmt("%s %s %s", info$mime_type, c$http$method, url); NOTICE([$note=Incorrect_File_Type, $msg=message, $conn=c]); } } - -event http_entity_data(c: connection, is_orig: bool, length: count, data: string) &priority=5 - { - if ( c$http$first_chunk && ! c$http?$mime_type ) - c$http$mime_type = split1(identify_data(data, T), /;/)[1]; - } - -event http_entity_data(c: connection, is_orig: bool, length: count, data: string) &priority=-10 - { - if ( c$http$first_chunk ) - c$http$first_chunk=F; - } diff --git a/scripts/base/protocols/http/file-ident.sig b/scripts/base/protocols/http/file-ident.sig deleted file mode 100644 index 971a32bbfc..0000000000 --- a/scripts/base/protocols/http/file-ident.sig +++ /dev/null @@ -1,144 +0,0 @@ -# These signatures are used as a replacement for libmagic. The signature -# name needs to start with "matchfile" and the "event" directive takes -# the mime type of the file matched by the http-reply-body pattern. -# -# Signatures from: http://www.garykessler.net/library/file_sigs.html - -signature matchfile-exe { - http-reply-body /\x4D\x5A/ - event "application/x-dosexec" -} - -signature matchfile-elf { - http-reply-body /\x7F\x45\x4C\x46/ - event "application/x-executable" -} - -signature matchfile-script { - # This is meant to match the interpreter declaration at the top of many - # interpreted scripts. - http-reply-body /\#\![[:blank:]]?\// - event "application/x-script" -} - -signature matchfile-wmv { - http-reply-body /\x30\x26\xB2\x75\x8E\x66\xCF\x11\xA6\xD9\x00\xAA\x00\x62\xCE\x6C/ - event "video/x-ms-wmv" -} - -signature matchfile-flv { - http-reply-body /\x46\x4C\x56\x01/ - event "video/x-flv" -} - -signature matchfile-swf { - http-reply-body /[\x46\x43]\x57\x53/ - event "application/x-shockwave-flash" -} - -signature matchfile-jar { - http-reply-body /\x5F\x27\xA8\x89/ - event "application/java-archive" -} - -signature matchfile-class { - http-reply-body /\xCA\xFE\xBA\xBE/ - event "application/java-byte-code" -} - -signature matchfile-msoffice-2007 { - # MS Office 2007 XML documents - http-reply-body /\x50\x4B\x03\x04\x14\x00\x06\x00/ - event "application/msoffice" -} - -signature matchfile-msoffice { - # Older MS Office files - http-reply-body /\xD0\xCF\x11\xE0\xA1\xB1\x1A\xE1/ - event "application/msoffice" -} - -signature matchfile-rtf { - http-reply-body /\x7B\x5C\x72\x74\x66\x31/ - event "application/rtf" -} - -signature matchfile-lnk { - http-reply-body /\x4C\x00\x00\x00\x01\x14\x02\x00\x00\x00\x00\x00\xC0\x00\x00\x00\x00\x00\x00\x46/ - event "application/x-ms-shortcut" -} - -signature matchfile-torrent { - http-reply-body /\x64\x38\x3A\x61\x6E\x6E\x6F\x75\x6E\x63\x65/ - event "application/x-bittorrent" -} - -signature matchfile-pdf { - http-reply-body /\x25\x50\x44\x46/ - event "application/pdf" -} - -signature matchfile-html { - http-reply-body /<[hH][tT][mM][lL]/ - event "text/html" -} - -signature matchfile-html2 { - http-reply-body /DataIn(data, len, Conn(), orig); + file_mgr->DataIn(data, len, GetTag(), Conn(), orig); } void IRC_Data::Undelivered(int seq, int len, bool orig) { File_Analyzer::Undelivered(seq, len, orig); - file_mgr->Gap(seq, len, Conn(), orig); + file_mgr->Gap(seq, len, GetTag(), Conn(), orig); } FTP_Data::FTP_Data(Connection* conn) @@ -103,11 +103,11 @@ void FTP_Data::Done() void FTP_Data::DeliverStream(int len, const u_char* data, bool orig) { File_Analyzer::DeliverStream(len, data, orig); - file_mgr->DataIn(data, len, Conn(), orig); + file_mgr->DataIn(data, len, GetTag(), Conn(), orig); } void FTP_Data::Undelivered(int seq, int len, bool orig) { File_Analyzer::Undelivered(seq, len, orig); - file_mgr->Gap(seq, len, Conn(), orig); + file_mgr->Gap(seq, len, GetTag(), Conn(), orig); } diff --git a/src/HTTP.cc b/src/HTTP.cc index 7110e2d1fa..5ce2dfa114 100644 --- a/src/HTTP.cc +++ b/src/HTTP.cc @@ -42,7 +42,7 @@ HTTP_Entity::HTTP_Entity(HTTP_Message *arg_message, MIME_Entity* parent_entity, expect_data_length = 0; body_length = 0; header_length = 0; - deliver_body = (http_entity_data != 0); + deliver_body = true; encoding = IDENTITY; zip = 0; is_partial_content = false; @@ -238,6 +238,11 @@ int HTTP_Entity::Undelivered(int64_t len) if ( end_of_data && in_header ) return 0; + file_mgr->Gap(body_length, len, + http_message->MyHTTP_Analyzer()->GetTag(), + http_message->MyHTTP_Analyzer()->Conn(), + http_message->IsOrig()); + if ( chunked_transfer_state != NON_CHUNKED_TRANSFER ) { if ( chunked_transfer_state == EXPECT_CHUNK_DATA && @@ -291,9 +296,11 @@ void HTTP_Entity::SubmitData(int len, const char* buf) { if ( send_size && instance_length > 0 ) file_mgr->SetSize(instance_length, + http_message->MyHTTP_Analyzer()->GetTag(), http_message->MyHTTP_Analyzer()->Conn(), http_message->IsOrig()); file_mgr->DataIn(reinterpret_cast(buf), len, offset, + http_message->MyHTTP_Analyzer()->GetTag(), http_message->MyHTTP_Analyzer()->Conn(), http_message->IsOrig()); offset += len; @@ -302,9 +309,11 @@ void HTTP_Entity::SubmitData(int len, const char* buf) { if ( send_size && content_length > 0 ) file_mgr->SetSize(content_length, + http_message->MyHTTP_Analyzer()->GetTag(), http_message->MyHTTP_Analyzer()->Conn(), http_message->IsOrig()); file_mgr->DataIn(reinterpret_cast(buf), len, + http_message->MyHTTP_Analyzer()->GetTag(), http_message->MyHTTP_Analyzer()->Conn(), http_message->IsOrig()); } @@ -554,6 +563,10 @@ void HTTP_Message::Done(const int interrupted, const char* detail) // DEBUG_MSG("%.6f HTTP message done.\n", network_time); top_level->EndOfData(); + if ( is_orig || MyHTTP_Analyzer()->HTTP_ReplyCode() != 206 ) + // multipart/byteranges may span multiple connections + file_mgr->EndOfFile(MyHTTP_Analyzer()->Conn(), is_orig); + if ( http_message_done ) { val_list* vl = new val_list; @@ -563,10 +576,6 @@ void HTTP_Message::Done(const int interrupted, const char* detail) GetAnalyzer()->ConnectionEvent(http_message_done, vl); } - if ( is_orig || MyHTTP_Analyzer()->HTTP_ReplyCode() != 206 ) - // multipart/byteranges may span multiple connections - file_mgr->EndOfFile(MyHTTP_Analyzer()->Conn(), is_orig); - MyHTTP_Analyzer()->HTTP_MessageDone(is_orig, this); delete_strings(buffers); @@ -689,9 +698,6 @@ void HTTP_Message::SubmitData(int len, const char* buf) int HTTP_Message::RequestBuffer(int* plen, char** pbuf) { - if ( ! http_entity_data ) - return 0; - if ( ! data_buffer ) if ( ! InitBuffer(mime_segment_length) ) return 0; diff --git a/src/MIME.cc b/src/MIME.cc index d5610c2bcb..b1d52a3970 100644 --- a/src/MIME.cc +++ b/src/MIME.cc @@ -1127,8 +1127,9 @@ void MIME_Mail::SubmitData(int len, const char* buf) analyzer->ConnectionEvent(mime_segment_data, vl); } + // is_orig param not available, doesn't matter as long as it's consistent file_mgr->DataIn(reinterpret_cast(buf), len, - analyzer->Conn(), false); // is_orig param N/A + analyzer->GetTag(), analyzer->Conn(), false); buffer_start = (buf + len) - (char*)data_buffer->Bytes(); } diff --git a/src/file_analysis/Info.cc b/src/file_analysis/Info.cc index 0eda8d6104..8e18795ba6 100644 --- a/src/file_analysis/Info.cc +++ b/src/file_analysis/Info.cc @@ -8,22 +8,15 @@ #include "Reporter.h" #include "Val.h" #include "Type.h" +#include "Analyzer.h" using namespace file_analysis; -static TableVal* empty_conn_id_set() +static TableVal* empty_connection_table() { - TypeList* set_index = new TypeList(conn_id); - set_index->Append(conn_id->Ref()); - return new TableVal(new SetType(set_index, 0)); - } - -static StringVal* get_conn_uid_val(Connection* conn) - { - char tmp[20]; - if ( ! conn->GetUID() ) - conn->SetUID(calculate_unique_id()); - return new StringVal(uitoa_n(conn->GetUID(), tmp, sizeof(tmp), 62)); + TypeList* tbl_index = new TypeList(conn_id); + tbl_index->Append(conn_id->Ref()); + return new TableVal(new TableType(tbl_index, connection_type->Ref())); } static RecordVal* get_conn_id_val(const Connection* conn) @@ -39,8 +32,8 @@ static RecordVal* get_conn_id_val(const Connection* conn) int Info::file_id_idx = -1; int Info::parent_file_id_idx = -1; int Info::source_idx = -1; -int Info::conn_uids_idx = -1; -int Info::conn_ids_idx = -1; +int Info::conns_idx = -1; +int Info::last_active_idx = -1; int Info::seen_bytes_idx = -1; int Info::total_bytes_idx = -1; int Info::missing_bytes_idx = -1; @@ -64,8 +57,8 @@ void Info::StaticInit() file_id_idx = Idx("file_id"); parent_file_id_idx = Idx("parent_file_id"); source_idx = Idx("source"); - conn_uids_idx = Idx("conn_uids"); - conn_ids_idx = Idx("conn_ids"); + conns_idx = Idx("conns"); + last_active_idx = Idx("last_active"); seen_bytes_idx = Idx("seen_bytes"); total_bytes_idx = Idx("total_bytes"); missing_bytes_idx = Idx("missing_bytes"); @@ -83,10 +76,9 @@ void Info::StaticInit() salt = BifConst::FileAnalysis::salt->CheckString(); } -Info::Info(const string& unique, Connection* conn) - : file_id(unique), unique(unique), val(0), last_activity_time(network_time), - postpone_timeout(false), need_reassembly(false), done(false), - actions(this) +Info::Info(const string& unique, Connection* conn, AnalyzerTag::Tag tag) + : file_id(unique), unique(unique), val(0), postpone_timeout(false), + need_reassembly(false), done(false), actions(this) { StaticInit(); @@ -106,29 +98,15 @@ Info::Info(const string& unique, Connection* conn) if ( conn ) { - // update source and connection fields - RecordVal* cval = conn->BuildConnVal(); - ListVal* services = cval->Lookup(5)->AsTableVal()->ConvertToPureList(); - Unref(cval); - string source; - - for ( int i = 0; i < services->Length(); ++i ) - { - if ( i > 0 ) - source += ", "; - source += services->Index(i)->AsStringVal()->CheckString(); - } - - Unref(services); - - if ( ! source.empty() ) - val->Assign(source_idx, new StringVal(source.c_str())); - + // add source and connection fields + val->Assign(source_idx, new StringVal(Analyzer::GetTagName(tag))); UpdateConnectionFields(conn); } else // use the unique file handle as source val->Assign(source_idx, new StringVal(unique.c_str())); + + UpdateLastActivityTime(); } Info::~Info() @@ -137,19 +115,28 @@ Info::~Info() Unref(val); } +void Info::UpdateLastActivityTime() + { + val->Assign(last_active_idx, new Val(network_time, TYPE_TIME)); + } + +double Info::GetLastActivityTime() const + { + return val->Lookup(last_active_idx)->AsTime(); + } + void Info::UpdateConnectionFields(Connection* conn) { if ( ! conn ) return; - Val* conn_uids = val->Lookup(conn_uids_idx); - Val* conn_ids = val->Lookup(conn_ids_idx); - if ( ! conn_uids ) - val->Assign(conn_uids_idx, conn_uids = new TableVal(string_set)); - if ( ! conn_ids ) - val->Assign(conn_ids_idx, conn_ids = empty_conn_id_set()); + Val* conns = val->Lookup(conns_idx); - conn_uids->AsTableVal()->Assign(get_conn_uid_val(conn), 0); - conn_ids->AsTableVal()->Assign(get_conn_id_val(conn), 0); + if ( ! conns ) + val->Assign(conns_idx, conns = empty_connection_table()); + + Val* idx = get_conn_id_val(conn); + conns->AsTableVal()->Assign(idx, conn->BuildConnVal()); + Unref(idx); } uint64 Info::LookupFieldDefaultCount(int idx) const diff --git a/src/file_analysis/Info.h b/src/file_analysis/Info.h index 2ec9efef6e..21589a54c5 100644 --- a/src/file_analysis/Info.h +++ b/src/file_analysis/Info.h @@ -5,6 +5,7 @@ #include #include +#include "AnalyzerTags.h" #include "Conn.h" #include "Val.h" #include "ActionSet.h" @@ -49,14 +50,14 @@ public: string GetUnique() const { return unique; } /** - * @return #last_activity_time + * @return value of "last_active" field in #val record; */ - double GetLastActivityTime() const { return last_activity_time; } + double GetLastActivityTime() const; /** - * Refreshes #last_activity_time with current network time. + * Refreshes "last_active" field of #val record with current network time. */ - void UpdateLastActivityTime() { last_activity_time = network_time; } + void UpdateLastActivityTime(); /** * Set "total_bytes" field of #val record to \a size. @@ -73,7 +74,7 @@ public: /** * Create a timer to be dispatched after the amount of time indicated by * the "timeout_interval" field of the #val record in order to check if - * #last_activity_time is old enough to timeout analysis of the file. + * "last_active" field is old enough to timeout analysis of the file. */ void ScheduleInactivityTimer() const; @@ -117,7 +118,8 @@ protected: /** * Constructor; only file_analysis::Manager should be creating these. */ - Info(const string& unique, Connection* conn = 0); + Info(const string& unique, Connection* conn = 0, + AnalyzerTag::Tag tag = AnalyzerTag::Error); /** * Updates the "conn_ids" and "conn_uids" fields in #val record with the @@ -156,7 +158,6 @@ protected: FileID file_id; /**< A pretty hash that likely identifies file*/ string unique; /**< A string that uniquely identifies file */ RecordVal* val; /**< \c FileAnalysis::Info from script layer. */ - double last_activity_time; /**< Time of last activity. */ bool postpone_timeout; /**< Whether postponing timeout is requested. */ bool need_reassembly; /**< Whether file stream reassembly is needed. */ bool done; /**< If this object is about to be deleted. */ @@ -192,8 +193,8 @@ public: static int file_id_idx; static int parent_file_id_idx; static int source_idx; - static int conn_uids_idx; - static int conn_ids_idx; + static int conns_idx; + static int last_active_idx; static int seen_bytes_idx; static int total_bytes_idx; static int missing_bytes_idx; diff --git a/src/file_analysis/Manager.cc b/src/file_analysis/Manager.cc index a6d2dfa3fc..3f354dd148 100644 --- a/src/file_analysis/Manager.cc +++ b/src/file_analysis/Manager.cc @@ -108,7 +108,7 @@ void Manager::Terminate() } bool Manager::DataIn(const u_char* data, uint64 len, uint64 offset, - Connection* conn, bool is_orig) + AnalyzerTag::Tag tag, Connection* conn, bool is_orig) { DrainPending(); @@ -116,12 +116,12 @@ bool Manager::DataIn(const u_char* data, uint64 len, uint64 offset, if ( ! unique.empty() ) { - DataIn(data, len, offset, GetInfo(unique, conn)); + DataIn(data, len, offset, GetInfo(unique, conn, tag)); return true; } if ( ! is_draining ) - pending.push_back(new PendingDataInChunk(data, len, offset, conn, + pending.push_back(new PendingDataInChunk(data, len, offset, tag, conn, is_orig)); return false; @@ -146,8 +146,8 @@ void Manager::DataIn(const u_char* data, uint64 len, uint64 offset, RemoveFile(info->GetUnique()); } -bool Manager::DataIn(const u_char* data, uint64 len, Connection* conn, - bool is_orig) +bool Manager::DataIn(const u_char* data, uint64 len, AnalyzerTag::Tag tag, + Connection* conn, bool is_orig) { DrainPending(); @@ -155,12 +155,13 @@ bool Manager::DataIn(const u_char* data, uint64 len, Connection* conn, if ( ! unique.empty() ) { - DataIn(data, len, GetInfo(unique, conn)); + DataIn(data, len, GetInfo(unique, conn, tag)); return true; } if ( ! is_draining ) - pending.push_back(new PendingDataInStream(data, len, conn, is_orig)); + pending.push_back(new PendingDataInStream(data, len, tag, conn, + is_orig)); return false; } @@ -212,7 +213,8 @@ void Manager::EndOfFile(const string& unique) RemoveFile(unique); } -bool Manager::Gap(uint64 offset, uint64 len, Connection* conn, bool is_orig) +bool Manager::Gap(uint64 offset, uint64 len, AnalyzerTag::Tag tag, + Connection* conn, bool is_orig) { DrainPending(); @@ -220,12 +222,12 @@ bool Manager::Gap(uint64 offset, uint64 len, Connection* conn, bool is_orig) if ( ! unique.empty() ) { - Gap(offset, len, GetInfo(unique, conn)); + Gap(offset, len, GetInfo(unique, conn, tag)); return true; } if ( ! is_draining ) - pending.push_back(new PendingGap(offset, len, conn, is_orig)); + pending.push_back(new PendingGap(offset, len, tag, conn, is_orig)); return false; } @@ -244,7 +246,8 @@ void Manager::Gap(uint64 offset, uint64 len, Info* info) info->Gap(offset, len); } -bool Manager::SetSize(uint64 size, Connection* conn, bool is_orig) +bool Manager::SetSize(uint64 size, AnalyzerTag::Tag tag, Connection* conn, + bool is_orig) { DrainPending(); @@ -252,12 +255,12 @@ bool Manager::SetSize(uint64 size, Connection* conn, bool is_orig) if ( ! unique.empty() ) { - SetSize(size, GetInfo(unique, conn)); + SetSize(size, GetInfo(unique, conn, tag)); return true; } if ( ! is_draining ) - pending.push_back(new PendingSize(size, conn, is_orig)); + pending.push_back(new PendingSize(size, tag, conn, is_orig)); return false; } @@ -326,7 +329,8 @@ bool Manager::RemoveAction(const FileID& file_id, const RecordVal* args) const return info->RemoveAction(args); } -Info* Manager::GetInfo(const string& unique, Connection* conn) +Info* Manager::GetInfo(const string& unique, Connection* conn, + AnalyzerTag::Tag tag) { if ( IsIgnored(unique) ) return 0; @@ -334,7 +338,7 @@ Info* Manager::GetInfo(const string& unique, Connection* conn) if ( ! rval ) { - rval = str_map[unique] = new Info(unique, conn); + rval = str_map[unique] = new Info(unique, conn, tag); FileID id = rval->GetFileID(); if ( id_map[id] ) diff --git a/src/file_analysis/Manager.h b/src/file_analysis/Manager.h index 6f92553c3b..5c4c4ce1d7 100644 --- a/src/file_analysis/Manager.h +++ b/src/file_analysis/Manager.h @@ -7,6 +7,7 @@ #include #include "Net.h" +#include "AnalyzerTags.h" #include "Conn.h" #include "Val.h" #include "Analyzer.h" @@ -47,7 +48,7 @@ public: * Pass in non-sequential file data. */ bool DataIn(const u_char* data, uint64 len, uint64 offset, - Connection* conn, bool is_orig); + AnalyzerTag::Tag tag, Connection* conn, bool is_orig); void DataIn(const u_char* data, uint64 len, uint64 offset, const string& unique); void DataIn(const u_char* data, uint64 len, uint64 offset, @@ -56,7 +57,8 @@ public: /** * Pass in sequential file data. */ - bool DataIn(const u_char* data, uint64 len, Connection* conn, bool is_orig); + bool DataIn(const u_char* data, uint64 len, AnalyzerTag::Tag tag, + Connection* conn, bool is_orig); void DataIn(const u_char* data, uint64 len, const string& unique); void DataIn(const u_char* data, uint64 len, Info* info); @@ -70,14 +72,16 @@ public: /** * Signal a gap in the file data stream. */ - bool Gap(uint64 offset, uint64 len, Connection* conn, bool is_orig); + bool Gap(uint64 offset, uint64 len, AnalyzerTag::Tag tag, Connection* conn, + bool is_orig); void Gap(uint64 offset, uint64 len, const string& unique); void Gap(uint64 offset, uint64 len, Info* info); /** * Provide the expected number of bytes that comprise a file. */ - bool SetSize(uint64 size, Connection* conn, bool is_orig); + bool SetSize(uint64 size, AnalyzerTag::Tag tag, Connection* conn, + bool is_orig); void SetSize(uint64 size, const string& unique); void SetSize(uint64 size, Info* info); @@ -131,7 +135,8 @@ protected: * activity time is refreshed along with any connection-related * fields. */ - Info* GetInfo(const string& unique, Connection* conn = 0); + Info* GetInfo(const string& unique, Connection* conn = 0, + AnalyzerTag::Tag tag = AnalyzerTag::Error); /** * @return a string which can uniquely identify the file being transported diff --git a/src/file_analysis/PendingFile.cc b/src/file_analysis/PendingFile.cc index 5d94c441a2..d148953294 100644 --- a/src/file_analysis/PendingFile.cc +++ b/src/file_analysis/PendingFile.cc @@ -20,8 +20,10 @@ static string conn_str(Connection* c) return rval; } -PendingFile::PendingFile(Connection* arg_conn, bool arg_is_orig) - : conn(arg_conn), is_orig(arg_is_orig), creation_time(network_time) +PendingFile::PendingFile(Connection* arg_conn, bool arg_is_orig, + AnalyzerTag::Tag arg_tag) + : conn(arg_conn), is_orig(arg_is_orig), creation_time(network_time), + tag(arg_tag) { Ref(conn); DBG_LOG(DBG_FILE_ANALYSIS, "New pending file: %s", conn_str(conn).c_str()); @@ -47,16 +49,18 @@ bool PendingFile::IsStale() const } PendingDataInChunk::PendingDataInChunk(const u_char* arg_data, uint64 arg_len, - uint64 arg_offset, Connection* arg_conn, - bool arg_is_orig) - : PendingFile(arg_conn, arg_is_orig), len(arg_len), offset(arg_offset) + uint64 arg_offset, + AnalyzerTag::Tag arg_tag, + Connection* arg_conn, bool arg_is_orig) + : PendingFile(arg_conn, arg_is_orig, arg_tag), len(arg_len), + offset(arg_offset) { copy_data(&data, arg_data, len); } bool PendingDataInChunk::Retry() const { - return file_mgr->DataIn(data, len, offset, conn, is_orig); + return file_mgr->DataIn(data, len, offset, tag, conn, is_orig); } PendingDataInChunk::~PendingDataInChunk() @@ -65,15 +69,16 @@ PendingDataInChunk::~PendingDataInChunk() } PendingDataInStream::PendingDataInStream(const u_char* arg_data, uint64 arg_len, - Connection* arg_conn, bool arg_is_orig) - : PendingFile(arg_conn, arg_is_orig), len(arg_len) + AnalyzerTag::Tag arg_tag, + Connection* arg_conn, bool arg_is_orig) + : PendingFile(arg_conn, arg_is_orig, arg_tag), len(arg_len) { copy_data(&data, arg_data, len); } bool PendingDataInStream::Retry() const { - return file_mgr->DataIn(data, len, conn, is_orig); + return file_mgr->DataIn(data, len, tag, conn, is_orig); } PendingDataInStream::~PendingDataInStream() @@ -81,15 +86,17 @@ PendingDataInStream::~PendingDataInStream() delete [] data; } -PendingGap::PendingGap(uint64 arg_offset, uint64 arg_len, Connection* arg_conn, +PendingGap::PendingGap(uint64 arg_offset, uint64 arg_len, + AnalyzerTag::Tag arg_tag, Connection* arg_conn, bool arg_is_orig) - : PendingFile(arg_conn, arg_is_orig), offset(arg_offset), len(arg_len) + : PendingFile(arg_conn, arg_is_orig, arg_tag), offset(arg_offset), + len(arg_len) { } bool PendingGap::Retry() const { - return file_mgr->Gap(offset, len, conn, is_orig); + return file_mgr->Gap(offset, len, tag, conn, is_orig); } PendingEOF::PendingEOF(Connection* arg_conn, bool arg_is_orig) @@ -102,13 +109,13 @@ bool PendingEOF::Retry() const return file_mgr->EndOfFile(conn, is_orig); } -PendingSize::PendingSize(uint64 arg_size, Connection* arg_conn, - bool arg_is_orig) - : PendingFile(arg_conn, arg_is_orig), size(arg_size) +PendingSize::PendingSize(uint64 arg_size, AnalyzerTag::Tag arg_tag, + Connection* arg_conn, bool arg_is_orig) + : PendingFile(arg_conn, arg_is_orig, arg_tag), size(arg_size) { } bool PendingSize::Retry() const { - return file_mgr->SetSize(size, conn, is_orig); + return file_mgr->SetSize(size, tag, conn, is_orig); } diff --git a/src/file_analysis/PendingFile.h b/src/file_analysis/PendingFile.h index 53e760e998..34d46fe7e9 100644 --- a/src/file_analysis/PendingFile.h +++ b/src/file_analysis/PendingFile.h @@ -1,6 +1,7 @@ #ifndef FILE_ANALYSIS_PENDINGFILE_H #define FILE_ANALYSIS_PENDINGFILE_H +#include "AnalyzerTags.h" #include "Conn.h" namespace file_analysis { @@ -16,19 +17,21 @@ public: protected: - PendingFile(Connection* arg_conn, bool arg_is_orig); + PendingFile(Connection* arg_conn, bool arg_is_orig, + AnalyzerTag::Tag arg_tag = AnalyzerTag::Error); Connection* conn; bool is_orig; double creation_time; + AnalyzerTag::Tag tag; }; class PendingDataInChunk : public PendingFile { public: PendingDataInChunk(const u_char* arg_data, uint64 arg_len, - uint64 arg_offset, Connection* arg_conn, - bool arg_is_orig); + uint64 arg_offset, AnalyzerTag::Tag tag, + Connection* arg_conn, bool arg_is_orig); virtual ~PendingDataInChunk(); @@ -45,7 +48,8 @@ class PendingDataInStream : public PendingFile { public: PendingDataInStream(const u_char* arg_data, uint64 arg_len, - Connection* arg_conn, bool arg_is_orig); + AnalyzerTag::Tag tag, Connection* arg_conn, + bool arg_is_orig); virtual ~PendingDataInStream(); @@ -60,8 +64,8 @@ protected: class PendingGap : public PendingFile { public: - PendingGap(uint64 arg_offset, uint64 arg_len, Connection* arg_conn, - bool arg_is_orig); + PendingGap(uint64 arg_offset, uint64 arg_len, AnalyzerTag::Tag tag, + Connection* arg_conn, bool arg_is_orig); virtual bool Retry() const; @@ -82,7 +86,8 @@ public: class PendingSize : public PendingFile { public: - PendingSize(uint64 arg_size, Connection* arg_conn, bool arg_is_orig); + PendingSize(uint64 arg_size, AnalyzerTag::Tag tag, Connection* arg_conn, + bool arg_is_orig); virtual bool Retry() const; diff --git a/testing/btest/Baseline/core.tunnels.ayiya/http.log b/testing/btest/Baseline/core.tunnels.ayiya/http.log index 2a97fd9b69..902d0e0fb9 100644 --- a/testing/btest/Baseline/core.tunnels.ayiya/http.log +++ b/testing/btest/Baseline/core.tunnels.ayiya/http.log @@ -3,10 +3,10 @@ #empty_field (empty) #unset_field - #path http -#open 2009-11-08-04-41-41 +#open 2013-03-22-14-38-11 #fields ts uid id.orig_h id.orig_p id.resp_h id.resp_p trans_depth method host uri referrer user_agent request_body_len response_body_len status_code status_msg info_code info_msg filename tags username password proxied mime_type md5 extraction_file -#types time string addr port addr port count string string string string string count count count string count string string table[enum] string string table[string] string string file -1257655301.652206 5OKnoww6xl4 2001:4978:f:4c::2 53382 2001:4860:b002::68 80 1 GET ipv6.google.com / - Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en; rv:1.9.0.15pre) Gecko/2009091516 Camino/2.0b4 (like Firefox/3.0.15pre) 0 10102 200 OK - - - (empty) - - - text/html - - +#types time string addr port addr port count string string string string string count count count string count string string table[enum] string string table[string] string string string +1257655301.652206 5OKnoww6xl4 2001:4978:f:4c::2 53382 2001:4860:b002::68 80 1 GET ipv6.google.com / - Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en; rv:1.9.0.15pre) Gecko/2009091516 Camino/2.0b4 (like Firefox/3.0.15pre) 0 10102 200 OK - - - (empty) - - - text/html; charset=us-ascii - - 1257655302.514424 5OKnoww6xl4 2001:4978:f:4c::2 53382 2001:4860:b002::68 80 2 GET ipv6.google.com /csi?v=3&s=webhp&action=&tran=undefined&e=17259,19771,21517,21766,21887,22212&ei=BUz2Su7PMJTglQfz3NzCAw&rt=prt.77,xjs.565,ol.645 http://ipv6.google.com/ Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en; rv:1.9.0.15pre) Gecko/2009091516 Camino/2.0b4 (like Firefox/3.0.15pre) 0 0 204 No Content - - - (empty) - - - - - - 1257655303.603569 5OKnoww6xl4 2001:4978:f:4c::2 53382 2001:4860:b002::68 80 3 GET ipv6.google.com /gen_204?atyp=i&ct=fade&cad=1254&ei=BUz2Su7PMJTglQfz3NzCAw&zx=1257655303600 http://ipv6.google.com/ Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en; rv:1.9.0.15pre) Gecko/2009091516 Camino/2.0b4 (like Firefox/3.0.15pre) 0 0 204 No Content - - - (empty) - - - - - - -#close 2009-11-08-04-41-57 +#close 2013-03-22-14-38-11 diff --git a/testing/btest/Baseline/core.tunnels.gtp.different_dl_and_ul/http.log b/testing/btest/Baseline/core.tunnels.gtp.different_dl_and_ul/http.log index 66b17e1200..02c5cf6e63 100644 --- a/testing/btest/Baseline/core.tunnels.gtp.different_dl_and_ul/http.log +++ b/testing/btest/Baseline/core.tunnels.gtp.different_dl_and_ul/http.log @@ -3,9 +3,9 @@ #empty_field (empty) #unset_field - #path http -#open 2012-10-19-17-03-55 +#open 2013-03-22-14-37-45 #fields ts uid id.orig_h id.orig_p id.resp_h id.resp_p trans_depth method host uri referrer user_agent request_body_len response_body_len status_code status_msg info_code info_msg filename tags username password proxied mime_type md5 extraction_file -#types time string addr port addr port count string string string string string count count count string count string string table[enum] string string table[string] string string file -1333458850.340368 arKYeMETxOg 10.131.17.170 51803 173.199.115.168 80 1 GET cdn.epicgameads.com /ads/flash/728x90_nx8com.swf?clickTAG=http://www.epicgameads.com/ads/bannerclickPage.php?id=e3ubwU6IF&pd=1&adid=0&icpc=1&axid=0&uctt=1&channel=4&cac=1&t=728x90&cb=1333458879 http://www.epicgameads.com/ads/banneriframe.php?id=e3ubwU6IF&t=728x90&channel=4&cb=1333458905296 Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0) 0 31461 200 OK - - - (empty) - - - application/x-shockwave-flash - - -1333458850.399501 arKYeMETxOg 10.131.17.170 51803 173.199.115.168 80 2 GET cdn.epicgameads.com /ads/flash/728x90_nx8com.swf?clickTAG=http://www.epicgameads.com/ads/bannerclickPage.php?id=e3ubwU6IF&pd=1&adid=0&icpc=1&axid=0&uctt=1&channel=0&cac=1&t=728x90&cb=1333458881 http://www.epicgameads.com/ads/banneriframe.php?id=e3ubwU6IF&t=728x90&cb=1333458920207 Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0) 0 31461 200 OK - - - (empty) - - - application/x-shockwave-flash - - -#close 2012-10-19-17-03-55 +#types time string addr port addr port count string string string string string count count count string count string string table[enum] string string table[string] string string string +1333458850.340368 arKYeMETxOg 10.131.17.170 51803 173.199.115.168 80 1 GET cdn.epicgameads.com /ads/flash/728x90_nx8com.swf?clickTAG=http://www.epicgameads.com/ads/bannerclickPage.php?id=e3ubwU6IF&pd=1&adid=0&icpc=1&axid=0&uctt=1&channel=4&cac=1&t=728x90&cb=1333458879 http://www.epicgameads.com/ads/banneriframe.php?id=e3ubwU6IF&t=728x90&channel=4&cb=1333458905296 Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0) 0 31461 200 OK - - - (empty) - - - application/x-shockwave-flash; charset=binary - - +1333458850.399501 arKYeMETxOg 10.131.17.170 51803 173.199.115.168 80 2 GET cdn.epicgameads.com /ads/flash/728x90_nx8com.swf?clickTAG=http://www.epicgameads.com/ads/bannerclickPage.php?id=e3ubwU6IF&pd=1&adid=0&icpc=1&axid=0&uctt=1&channel=0&cac=1&t=728x90&cb=1333458881 http://www.epicgameads.com/ads/banneriframe.php?id=e3ubwU6IF&t=728x90&cb=1333458920207 Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0) 0 31461 200 OK - - - (empty) - - - application/x-shockwave-flash; charset=binary - - +#close 2013-03-22-14-37-45 diff --git a/testing/btest/Baseline/core.tunnels.gtp.outer_ip_frag/http.log b/testing/btest/Baseline/core.tunnels.gtp.outer_ip_frag/http.log index 8a994d56af..cbe52f5252 100644 --- a/testing/btest/Baseline/core.tunnels.gtp.outer_ip_frag/http.log +++ b/testing/btest/Baseline/core.tunnels.gtp.outer_ip_frag/http.log @@ -3,8 +3,8 @@ #empty_field (empty) #unset_field - #path http -#open 2012-10-19-16-44-02 +#open 2013-03-22-14-37-46 #fields ts uid id.orig_h id.orig_p id.resp_h id.resp_p trans_depth method host uri referrer user_agent request_body_len response_body_len status_code status_msg info_code info_msg filename tags username password proxied mime_type md5 extraction_file -#types time string addr port addr port count string string string string string count count count string count string string table[enum] string string table[string] string string file -1333458850.375568 arKYeMETxOg 10.131.47.185 1923 79.101.110.141 80 1 GET o-o.preferred.telekomrs-beg1.v2.lscache8.c.youtube.com /videoplayback?upn=MTU2MDY5NzQ5OTM0NTI3NDY4NDc&sparams=algorithm,burst,cp,factor,id,ip,ipbits,itag,source,upn,expire&fexp=912300,907210&algorithm=throttle-factor&itag=34&ip=212.0.0.0&burst=40&sver=3&signature=832FB1042E20780CFCA77A4DB5EA64AC593E8627.D1166C7E8365732E52DAFD68076DAE0146E0AE01&source=youtube&expire=1333484980&key=yt1&ipbits=8&factor=1.25&cp=U0hSSFRTUl9NSkNOMl9MTVZKOjh5eEN2SG8tZF84&id=ebf1e932d4bd1286&cm2=1 http://s.ytimg.com/yt/swfbin/watch_as3-vflqrJwOA.swf Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.11 (KHTML, like Gecko; X-SBLSP) Chrome/17.0.963.83 Safari/535.11 0 56320 206 Partial Content - - - (empty) - - - application/octet-stream - - -#close 2012-10-19-16-44-02 +#types time string addr port addr port count string string string string string count count count string count string string table[enum] string string table[string] string string string +1333458850.375568 arKYeMETxOg 10.131.47.185 1923 79.101.110.141 80 1 GET o-o.preferred.telekomrs-beg1.v2.lscache8.c.youtube.com /videoplayback?upn=MTU2MDY5NzQ5OTM0NTI3NDY4NDc&sparams=algorithm,burst,cp,factor,id,ip,ipbits,itag,source,upn,expire&fexp=912300,907210&algorithm=throttle-factor&itag=34&ip=212.0.0.0&burst=40&sver=3&signature=832FB1042E20780CFCA77A4DB5EA64AC593E8627.D1166C7E8365732E52DAFD68076DAE0146E0AE01&source=youtube&expire=1333484980&key=yt1&ipbits=8&factor=1.25&cp=U0hSSFRTUl9NSkNOMl9MTVZKOjh5eEN2SG8tZF84&id=ebf1e932d4bd1286&cm2=1 http://s.ytimg.com/yt/swfbin/watch_as3-vflqrJwOA.swf Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.11 (KHTML, like Gecko; X-SBLSP) Chrome/17.0.963.83 Safari/535.11 0 56320 206 Partial Content - - - (empty) - - - - - - +#close 2013-03-22-14-37-46 diff --git a/testing/btest/Baseline/core.tunnels.teredo/http.log b/testing/btest/Baseline/core.tunnels.teredo/http.log index c77297c58d..fe015a130d 100644 --- a/testing/btest/Baseline/core.tunnels.teredo/http.log +++ b/testing/btest/Baseline/core.tunnels.teredo/http.log @@ -3,11 +3,11 @@ #empty_field (empty) #unset_field - #path http -#open 2008-05-16-15-50-58 +#open 2013-03-22-14-37-44 #fields ts uid id.orig_h id.orig_p id.resp_h id.resp_p trans_depth method host uri referrer user_agent request_body_len response_body_len status_code status_msg info_code info_msg filename tags username password proxied mime_type md5 extraction_file -#types time string addr port addr port count string string string string string count count count string count string string table[enum] string string table[string] string string file -1210953057.917183 3PKsZ2Uye21 192.168.2.16 1578 75.126.203.78 80 1 POST download913.avast.com /cgi-bin/iavs4stats.cgi - Syncer/4.80 (av_pro-1169;f) 589 0 204 - - - (empty) - - - text/plain - - -1210953061.585996 70MGiRM1Qf4 2001:0:4137:9e50:8000:f12a:b9c8:2815 1286 2001:4860:0:2001::68 80 1 GET ipv6.google.com / - Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9b5) Gecko/2008032620 Firefox/3.0b5 0 6640 200 OK - - - (empty) - - - text/html - - -1210953073.381474 70MGiRM1Qf4 2001:0:4137:9e50:8000:f12a:b9c8:2815 1286 2001:4860:0:2001::68 80 2 GET ipv6.google.com /search?hl=en&q=Wireshark+!&btnG=Google+Search http://ipv6.google.com/ Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9b5) Gecko/2008032620 Firefox/3.0b5 0 25119 200 OK - - - (empty) - - - text/html - - -1210953074.674817 c4Zw9TmAE05 192.168.2.16 1580 67.228.110.120 80 1 GET www.wireshark.org / http://ipv6.google.com/search?hl=en&q=Wireshark+%21&btnG=Google+Search Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9b5) Gecko/2008032620 Firefox/3.0b5 0 11845 200 OK - - - (empty) - - - text/xml - - -#close 2008-05-16-15-51-16 +#types time string addr port addr port count string string string string string count count count string count string string table[enum] string string table[string] string string string +1210953057.917183 3PKsZ2Uye21 192.168.2.16 1578 75.126.203.78 80 1 POST download913.avast.com /cgi-bin/iavs4stats.cgi - Syncer/4.80 (av_pro-1169;f) 589 0 204 - - - (empty) - - - text/plain; charset=us-ascii - - +1210953061.585996 70MGiRM1Qf4 2001:0:4137:9e50:8000:f12a:b9c8:2815 1286 2001:4860:0:2001::68 80 1 GET ipv6.google.com / - Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9b5) Gecko/2008032620 Firefox/3.0b5 0 6640 200 OK - - - (empty) - - - text/html; charset=us-ascii - - +1210953073.381474 70MGiRM1Qf4 2001:0:4137:9e50:8000:f12a:b9c8:2815 1286 2001:4860:0:2001::68 80 2 GET ipv6.google.com /search?hl=en&q=Wireshark+!&btnG=Google+Search http://ipv6.google.com/ Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9b5) Gecko/2008032620 Firefox/3.0b5 0 25119 200 OK - - - (empty) - - - text/html; charset=us-ascii - - +1210953074.674817 c4Zw9TmAE05 192.168.2.16 1580 67.228.110.120 80 1 GET www.wireshark.org / http://ipv6.google.com/search?hl=en&q=Wireshark+%21&btnG=Google+Search Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9b5) Gecko/2008032620 Firefox/3.0b5 0 11845 200 OK - - - (empty) - - - application/xml; charset=us-ascii - - +#close 2013-03-22-14-37-44 diff --git a/testing/btest/Baseline/core.tunnels.teredo_bubble_with_payload/http.log b/testing/btest/Baseline/core.tunnels.teredo_bubble_with_payload/http.log index e0b223d114..6d6f00a151 100644 --- a/testing/btest/Baseline/core.tunnels.teredo_bubble_with_payload/http.log +++ b/testing/btest/Baseline/core.tunnels.teredo_bubble_with_payload/http.log @@ -3,9 +3,9 @@ #empty_field (empty) #unset_field - #path http -#open 2012-06-19-17-39-37 +#open 2013-03-22-14-37-44 #fields ts uid id.orig_h id.orig_p id.resp_h id.resp_p trans_depth method host uri referrer user_agent request_body_len response_body_len status_code status_msg info_code info_msg filename tags username password proxied mime_type md5 extraction_file -#types time string addr port addr port count string string string string string count count count string count string string table[enum] string string table[string] string string file -1340127577.361683 FrJExwHcSal 2001:0:4137:9e50:8000:f12a:b9c8:2815 1286 2001:4860:0:2001::68 80 1 GET ipv6.google.com / - Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9b5) Gecko/2008032620 Firefox/3.0b5 0 6640 200 OK - - - (empty) - - - text/html - - -1340127577.379360 FrJExwHcSal 2001:0:4137:9e50:8000:f12a:b9c8:2815 1286 2001:4860:0:2001::68 80 2 GET ipv6.google.com /search?hl=en&q=Wireshark+!&btnG=Google+Search http://ipv6.google.com/ Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9b5) Gecko/2008032620 Firefox/3.0b5 0 25119 200 OK - - - (empty) - - - text/html - - -#close 2012-06-19-17-39-37 +#types time string addr port addr port count string string string string string count count count string count string string table[enum] string string table[string] string string string +1340127577.361683 FrJExwHcSal 2001:0:4137:9e50:8000:f12a:b9c8:2815 1286 2001:4860:0:2001::68 80 1 GET ipv6.google.com / - Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9b5) Gecko/2008032620 Firefox/3.0b5 0 6640 200 OK - - - (empty) - - - text/html; charset=us-ascii - - +1340127577.379360 FrJExwHcSal 2001:0:4137:9e50:8000:f12a:b9c8:2815 1286 2001:4860:0:2001::68 80 2 GET ipv6.google.com /search?hl=en&q=Wireshark+!&btnG=Google+Search http://ipv6.google.com/ Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9b5) Gecko/2008032620 Firefox/3.0b5 0 25119 200 OK - - - (empty) - - - text/html; charset=us-ascii - - +#close 2013-03-22-14-37-44 diff --git a/testing/btest/Baseline/istate.events-ssl/receiver.http.log b/testing/btest/Baseline/istate.events-ssl/receiver.http.log index 3fc7f1b66f..aa69373171 100644 --- a/testing/btest/Baseline/istate.events-ssl/receiver.http.log +++ b/testing/btest/Baseline/istate.events-ssl/receiver.http.log @@ -3,8 +3,8 @@ #empty_field (empty) #unset_field - #path http -#open 2012-07-20-01-53-03 +#open 2013-03-22-21-05-55 #fields ts uid id.orig_h id.orig_p id.resp_h id.resp_p trans_depth method host uri referrer user_agent request_body_len response_body_len status_code status_msg info_code info_msg filename tags username password proxied mime_type md5 extraction_file -#types time string addr port addr port count string string string string string count count count string count string string table[enum] string string table[string] string string file -1342749182.906082 arKYeMETxOg 141.42.64.125 56730 125.190.109.199 80 1 GET www.icir.org / - Wget/1.10 0 9130 200 OK - - - (empty) - - - text/html - - -#close 2012-07-20-01-53-04 +#types time string addr port addr port count string string string string string count count count string count string string table[enum] string string table[string] string string string +1363986354.505533 arKYeMETxOg 141.42.64.125 56730 125.190.109.199 80 1 GET www.icir.org / - Wget/1.10 0 9130 200 OK - - - (empty) - - - - - - +#close 2013-03-22-21-05-56 diff --git a/testing/btest/Baseline/istate.events-ssl/sender.http.log b/testing/btest/Baseline/istate.events-ssl/sender.http.log index 3fc7f1b66f..aa69373171 100644 --- a/testing/btest/Baseline/istate.events-ssl/sender.http.log +++ b/testing/btest/Baseline/istate.events-ssl/sender.http.log @@ -3,8 +3,8 @@ #empty_field (empty) #unset_field - #path http -#open 2012-07-20-01-53-03 +#open 2013-03-22-21-05-55 #fields ts uid id.orig_h id.orig_p id.resp_h id.resp_p trans_depth method host uri referrer user_agent request_body_len response_body_len status_code status_msg info_code info_msg filename tags username password proxied mime_type md5 extraction_file -#types time string addr port addr port count string string string string string count count count string count string string table[enum] string string table[string] string string file -1342749182.906082 arKYeMETxOg 141.42.64.125 56730 125.190.109.199 80 1 GET www.icir.org / - Wget/1.10 0 9130 200 OK - - - (empty) - - - text/html - - -#close 2012-07-20-01-53-04 +#types time string addr port addr port count string string string string string count count count string count string string table[enum] string string table[string] string string string +1363986354.505533 arKYeMETxOg 141.42.64.125 56730 125.190.109.199 80 1 GET www.icir.org / - Wget/1.10 0 9130 200 OK - - - (empty) - - - - - - +#close 2013-03-22-21-05-56 diff --git a/testing/btest/Baseline/istate.events/receiver.http.log b/testing/btest/Baseline/istate.events/receiver.http.log index 6862c08b98..2531eb4bc0 100644 --- a/testing/btest/Baseline/istate.events/receiver.http.log +++ b/testing/btest/Baseline/istate.events/receiver.http.log @@ -3,8 +3,8 @@ #empty_field (empty) #unset_field - #path http -#open 2012-07-20-01-53-12 +#open 2013-03-22-21-03-17 #fields ts uid id.orig_h id.orig_p id.resp_h id.resp_p trans_depth method host uri referrer user_agent request_body_len response_body_len status_code status_msg info_code info_msg filename tags username password proxied mime_type md5 extraction_file -#types time string addr port addr port count string string string string string count count count string count string string table[enum] string string table[string] string string file -1342749191.765740 arKYeMETxOg 141.42.64.125 56730 125.190.109.199 80 1 GET www.icir.org / - Wget/1.10 0 9130 200 OK - - - (empty) - - - text/html - - -#close 2012-07-20-01-53-13 +#types time string addr port addr port count string string string string string count count count string count string string table[enum] string string table[string] string string string +1363986197.076696 arKYeMETxOg 141.42.64.125 56730 125.190.109.199 80 1 GET www.icir.org / - Wget/1.10 0 9130 200 OK - - - (empty) - - - - - - +#close 2013-03-22-21-03-18 diff --git a/testing/btest/Baseline/istate.events/sender.http.log b/testing/btest/Baseline/istate.events/sender.http.log index 6862c08b98..2531eb4bc0 100644 --- a/testing/btest/Baseline/istate.events/sender.http.log +++ b/testing/btest/Baseline/istate.events/sender.http.log @@ -3,8 +3,8 @@ #empty_field (empty) #unset_field - #path http -#open 2012-07-20-01-53-12 +#open 2013-03-22-21-03-17 #fields ts uid id.orig_h id.orig_p id.resp_h id.resp_p trans_depth method host uri referrer user_agent request_body_len response_body_len status_code status_msg info_code info_msg filename tags username password proxied mime_type md5 extraction_file -#types time string addr port addr port count string string string string string count count count string count string string table[enum] string string table[string] string string file -1342749191.765740 arKYeMETxOg 141.42.64.125 56730 125.190.109.199 80 1 GET www.icir.org / - Wget/1.10 0 9130 200 OK - - - (empty) - - - text/html - - -#close 2012-07-20-01-53-13 +#types time string addr port addr port count string string string string string count count count string count string string table[enum] string string table[string] string string string +1363986197.076696 arKYeMETxOg 141.42.64.125 56730 125.190.109.199 80 1 GET www.icir.org / - Wget/1.10 0 9130 200 OK - - - (empty) - - - - - - +#close 2013-03-22-21-03-18 diff --git a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.actions.data_event/out b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.actions.data_event/out index 934c22f049..6311f768f2 100644 --- a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.actions.data_event/out +++ b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.actions.data_event/out @@ -17,12 +17,7 @@ file_stream, Cx92a0ym5R8, 1024, copied source (Jon Siwek)^J^J * Small tweak to file_chunk, Cx92a0ym5R8, 1024, 3000, copied source (Jon Siwek)^J^J * Small tweak to make-release for forced git-clean. (Jon Siwek)^J^J * Fix to not let updates scripts loose their executable permissions.^J (Robin Sommer)^J^J * devel-tools/update-changes now looks for a 'release' tag to^J idenfify the stable version, and 'beta' for the beta versions.^J (Robin Sommer).^J^J * Distribution cleanup. (Robin Sommer)^J^J * New script devel-tools/make-release to create source tar balls.^J (Robin Sommer)^J^J * Removing bdcat. With the new log format, this isn't very useful^J anymore. (Robin Sommer)^J^J * Adding script that shows all pending git fastpath commits. (Robin^J Sommer)^J^J * Script to measure CPU time by loading an increasing set of^J scripts. (Robin Sommer)^J^J * extract-conn script now deals wit *.gz files. (Robin Sommer)^J^J * Tiny update to output a valid CA list file for SSL cert^J validation. (Seth Hall)^J^J * Adding "install-aux" target. Addresses #622. (Jon Siwek)^J^J * Distribution cleanup. (Jon Siwek and Robin Sommer)^J^J * FindPCAP FileAnalysis::TRIGGER_DONE Cx92a0ym5R8, 4705, 0 -{ -UWkUyAuUGXf -} -{ [orig_h=141.142.228.5, orig_p=59856/tcp, resp_h=192.150.187.43, resp_p=80/tcp] -} total bytes: 4705 source: HTTP file_stream, Cx92a0ym5R8, 476, now links against thread library when necessary (e.g.^J PF_RING's libpcap) (Jon Siwek)^J^J * Install binaries with an RPATH (Jon Siwek)^J^J * Workaround for FreeBSD CMake port missing debug flags (Jon Siwek)^J^J * Rewrite of the update-changes script. (Robin Sommer)^J^J0.1-1 | 2011-06-14 21:12:41 -0700^J^J * Add a script for generating Mozilla's CA list for the SSL analyzer.^J (Seth Hall)^J^J0.1 | 2011-04-01 16:28:22 -0700^J^J * Converting build process to CMake. (Jon Siwek)^J diff --git a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.bifs.postpone_timeout/bro..stdout b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.bifs.postpone_timeout/bro..stdout index 2ac9682b76..52f774b8c1 100644 --- a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.bifs.postpone_timeout/bro..stdout +++ b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.bifs.postpone_timeout/bro..stdout @@ -2,12 +2,7 @@ FileAnalysis::TRIGGER_NEW oDwT1BbzjM1, 0, 0 FileAnalysis::TRIGGER_DONE oDwT1BbzjM1, 1022920, 0 -{ -UWkUyAuUGXf -} -{ [orig_h=192.168.72.14, orig_p=3254/tcp, resp_h=65.54.95.206, resp_p=80/tcp] -} total bytes: 1022920 source: HTTP FileAnalysis::TRIGGER_NEW @@ -16,11 +11,6 @@ FileAnalysis::TRIGGER_TIMEOUT FileAnalysis::TRIGGER_TIMEOUT FileAnalysis::TRIGGER_EOF oDwT1BbzjM1, 206024, 0 -{ -arKYeMETxOg -} -{ [orig_h=192.168.72.14, orig_p=3257/tcp, resp_h=65.54.95.14, resp_p=80/tcp] -} total bytes: 1022920 source: HTTP diff --git a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.bifs.remove_action/get.out b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.bifs.remove_action/get.out index 56ce58a1f8..d0ad118ac1 100644 --- a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.bifs.remove_action/get.out +++ b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.bifs.remove_action/get.out @@ -8,11 +8,6 @@ file type is set mime type is set FileAnalysis::TRIGGER_DONE Cx92a0ym5R8, 4705, 0 -{ -UWkUyAuUGXf -} -{ [orig_h=141.142.228.5, orig_p=59856/tcp, resp_h=192.150.187.43, resp_p=80/tcp] -} total bytes: 4705 source: HTTP diff --git a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.ftp/out b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.ftp/out index 3a71ea1241..c0fb36c86e 100644 --- a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.ftp/out +++ b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.ftp/out @@ -8,13 +8,8 @@ file type is set mime type is set FileAnalysis::TRIGGER_EOF sidhzrR4IT8, 16557, 0 -{ -arKYeMETxOg -} -{ [orig_h=141.142.228.5, orig_p=50737/tcp, resp_h=141.142.192.162, resp_p=38141/tcp] -} -source: ftp-data +source: FTP_DATA SHA1: 44586aed07cfe19cad25076af98f535585cd5797 MD5: 7192a8075196267203adb3dfaa5c908d SHA256: 202674eba48e832690a4475113acf8b16a3f6c82c04c94b36bb2c7ce457ac8d2 diff --git a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.get/get-gzip.out b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.get/get-gzip.out index 8aa5329cfe..bc0eee737c 100644 --- a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.get/get-gzip.out +++ b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.get/get-gzip.out @@ -8,12 +8,7 @@ file type is set mime type is set FileAnalysis::TRIGGER_EOF kg59rqyYxN, 197, 0 -{ -UWkUyAuUGXf -} -{ [orig_h=141.142.228.5, orig_p=50153/tcp, resp_h=54.243.118.187, resp_p=80/tcp] -} source: HTTP SHA1: e351b8c693c3353716787c02e2923f4d12ebbb31 MD5: 5baba7eea57bc8a42a92c817ed566d72 diff --git a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.get/get.out b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.get/get.out index d8d895385d..34d7e942a2 100644 --- a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.get/get.out +++ b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.get/get.out @@ -8,12 +8,7 @@ file type is set mime type is set FileAnalysis::TRIGGER_DONE Cx92a0ym5R8, 4705, 0 -{ -UWkUyAuUGXf -} -{ [orig_h=141.142.228.5, orig_p=59856/tcp, resp_h=192.150.187.43, resp_p=80/tcp] -} total bytes: 4705 source: HTTP SHA1: 1dd7ac0398df6cbc0696445a91ec681facf4dc47 diff --git a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.partial-content/a.out b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.partial-content/a.out index 0ce1272201..addb0c0b4a 100644 --- a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.partial-content/a.out +++ b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.partial-content/a.out @@ -2,13 +2,7 @@ FileAnalysis::TRIGGER_NEW 7gZBKVUgy4l, 0, 0 FileAnalysis::TRIGGER_DONE 7gZBKVUgy4l, 555523, 0 -{ -UWkUyAuUGXf, -arKYeMETxOg -} -{ -[orig_h=10.101.84.70, orig_p=10978/tcp, resp_h=129.174.93.161, resp_p=80/tcp], +[orig_h=10.101.84.70, orig_p=10978/tcp, resp_h=129.174.93.161, resp_p=80/tcp] [orig_h=10.101.84.70, orig_p=10977/tcp, resp_h=129.174.93.161, resp_p=80/tcp] -} total bytes: 555523 source: HTTP diff --git a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.partial-content/b.out b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.partial-content/b.out index f88ccd0d50..c9f234c5e8 100644 --- a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.partial-content/b.out +++ b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.partial-content/b.out @@ -2,12 +2,7 @@ FileAnalysis::TRIGGER_NEW oDwT1BbzjM1, 0, 0 FileAnalysis::TRIGGER_DONE oDwT1BbzjM1, 1022920, 0 -{ -UWkUyAuUGXf -} -{ [orig_h=192.168.72.14, orig_p=3254/tcp, resp_h=65.54.95.206, resp_p=80/tcp] -} total bytes: 1022920 source: HTTP FileAnalysis::TRIGGER_NEW @@ -15,11 +10,6 @@ oDwT1BbzjM1, 0, 0 FileAnalysis::TRIGGER_TIMEOUT FileAnalysis::TRIGGER_EOF oDwT1BbzjM1, 206024, 0 -{ -arKYeMETxOg -} -{ [orig_h=192.168.72.14, orig_p=3257/tcp, resp_h=65.54.95.14, resp_p=80/tcp] -} total bytes: 1022920 source: HTTP diff --git a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.partial-content/c.out b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.partial-content/c.out index 5f4e6db178..547aa0b568 100644 --- a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.partial-content/c.out +++ b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.partial-content/c.out @@ -2,13 +2,7 @@ FileAnalysis::TRIGGER_NEW uHS14uhRKGe, 0, 0 FileAnalysis::TRIGGER_DONE uHS14uhRKGe, 498702, 0 -{ -UWkUyAuUGXf, -arKYeMETxOg -} -{ -[orig_h=10.45.179.94, orig_p=19950/tcp, resp_h=129.174.93.170, resp_p=80/tcp], +[orig_h=10.45.179.94, orig_p=19950/tcp, resp_h=129.174.93.170, resp_p=80/tcp] [orig_h=10.45.179.94, orig_p=19953/tcp, resp_h=129.174.93.170, resp_p=80/tcp] -} total bytes: 498668 source: HTTP diff --git a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.pipeline/out b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.pipeline/out index 9755b08cc1..77ca415398 100644 --- a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.pipeline/out +++ b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.pipeline/out @@ -8,12 +8,7 @@ file type is set mime type is set FileAnalysis::TRIGGER_EOF aFQKI8SPOL2, 2675, 0 -{ -UWkUyAuUGXf -} -{ [orig_h=192.168.1.104, orig_p=1673/tcp, resp_h=63.245.209.11, resp_p=80/tcp] -} source: HTTP SHA1: 0e42ae17eea9b074981bd3a34535ad3a22d02706 MD5: b932c3310ce47e158d1a5a42e0b01279 @@ -28,12 +23,7 @@ file type is set mime type is set FileAnalysis::TRIGGER_EOF CCU3vUEr06l, 21421, 0 -{ -UWkUyAuUGXf -} -{ [orig_h=192.168.1.104, orig_p=1673/tcp, resp_h=63.245.209.11, resp_p=80/tcp] -} source: HTTP SHA1: 8f241117afaa8ca5f41dc059e66d75c283dcc983 MD5: e732f7bf1d7cb4eedcb1661697d7bc8c @@ -48,12 +38,7 @@ file type is set mime type is set FileAnalysis::TRIGGER_DONE HCzA0dVwDPj, 94, 0 -{ -UWkUyAuUGXf -} -{ [orig_h=192.168.1.104, orig_p=1673/tcp, resp_h=63.245.209.11, resp_p=80/tcp] -} total bytes: 94 source: HTTP SHA1: 81f5f056ce5e97d940854bb0c48017b45dd9f15e @@ -69,12 +54,7 @@ file type is set mime type is set FileAnalysis::TRIGGER_DONE a1Zu1fteVEf, 2349, 0 -{ -UWkUyAuUGXf -} -{ [orig_h=192.168.1.104, orig_p=1673/tcp, resp_h=63.245.209.11, resp_p=80/tcp] -} total bytes: 2349 source: HTTP SHA1: 560eab5a0177246827a94042dd103916d8765ac7 @@ -90,12 +70,7 @@ file type is set mime type is set FileAnalysis::TRIGGER_DONE xXlF7wFdsR, 27579, 0 -{ -UWkUyAuUGXf -} -{ [orig_h=192.168.1.104, orig_p=1673/tcp, resp_h=63.245.209.11, resp_p=80/tcp] -} total bytes: 27579 source: HTTP SHA1: ee2b41bdef85de14ef332da14fc392f110b84249 diff --git a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.post/out b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.post/out index bc15e528a8..e6d417be47 100644 --- a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.post/out +++ b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.post/out @@ -8,12 +8,7 @@ file type is set mime type is set FileAnalysis::TRIGGER_DONE v5HLI7MxPQh, 11, 0 -{ -UWkUyAuUGXf -} -{ [orig_h=141.142.228.5, orig_p=53595/tcp, resp_h=54.243.55.129, resp_p=80/tcp] -} total bytes: 11 source: HTTP SHA1: 2aae6c35c94fcfb415dbe95f408b9ce91ee846ed @@ -29,12 +24,7 @@ file type is set mime type is set FileAnalysis::TRIGGER_DONE PZS1XGHkIf1, 366, 0 -{ -UWkUyAuUGXf -} -{ [orig_h=141.142.228.5, orig_p=53595/tcp, resp_h=54.243.55.129, resp_p=80/tcp] -} total bytes: 366 source: HTTP SHA1: 6a1582672c203210c6d18d700322060b676365e7 diff --git a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.irc/out b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.irc/out index fd515304b1..739ed1fbcc 100644 --- a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.irc/out +++ b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.irc/out @@ -8,13 +8,8 @@ file type is set mime type is set FileAnalysis::TRIGGER_EOF wqKMAamJVSb, 42208, 0 -{ -arKYeMETxOg -} -{ [orig_h=192.168.1.77, orig_p=57655/tcp, resp_h=209.197.168.151, resp_p=1024/tcp] -} -source: irc-dcc-data +source: IRC_DATA SHA1: 8abe0239263fd7326eb803d4465cf494f8bea218 MD5: 8c0803242f549c2780cb88b9a9215c65 SHA256: e4f0b0b9d7580e7a22dc1093c8db4df7d0115a4f3b03cc2875cc69705f0d0204 diff --git a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.logging/file_analysis.log b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.logging/file_analysis.log index 1d78b0dee6..f52d73e1a8 100644 --- a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.logging/file_analysis.log +++ b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.logging/file_analysis.log @@ -3,8 +3,8 @@ #empty_field (empty) #unset_field - #path file_analysis -#open 2013-03-20-18-29-14 -#fields file_id parent_file_id source conn_uids seen_bytes total_bytes missing_bytes overflow_bytes timeout_interval bof_buffer_size file_type mime_type actions_taken extracted_files md5 sha1 sha256 -#types string string string table[string] count count count count interval count string string table[enum] table[string] string string string -Cx92a0ym5R8 - HTTP UWkUyAuUGXf 4705 4705 0 0 120.000000 1024 set set FileAnalysis::ACTION_SHA1,FileAnalysis::ACTION_EXTRACT,FileAnalysis::ACTION_DATA_EVENT,FileAnalysis::ACTION_MD5,FileAnalysis::ACTION_SHA256 Cx92a0ym5R8-file 397168fd09991a0e712254df7bc639ac 1dd7ac0398df6cbc0696445a91ec681facf4dc47 4e7c7ef0984119447e743e3ec77e1de52713e345cde03fe7df753a35849bed18 -#close 2013-03-20-18-29-14 +#open 2013-03-22-20-24-04 +#fields file_id parent_file_id source last_active seen_bytes total_bytes missing_bytes overflow_bytes timeout_interval bof_buffer_size file_type mime_type conn_uids actions_taken extracted_files md5 sha1 sha256 +#types string string string time count count count count interval count string string table[string] table[enum] table[string] string string string +Cx92a0ym5R8 - HTTP 1362692527.009775 4705 4705 0 0 120.000000 1024 set set UWkUyAuUGXf FileAnalysis::ACTION_SHA1,FileAnalysis::ACTION_EXTRACT,FileAnalysis::ACTION_DATA_EVENT,FileAnalysis::ACTION_MD5,FileAnalysis::ACTION_SHA256 Cx92a0ym5R8-file 397168fd09991a0e712254df7bc639ac 1dd7ac0398df6cbc0696445a91ec681facf4dc47 4e7c7ef0984119447e743e3ec77e1de52713e345cde03fe7df753a35849bed18 +#close 2013-03-22-20-24-04 diff --git a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.smtp/out b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.smtp/out index 91093aa577..fa08f6dc18 100644 --- a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.smtp/out +++ b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.smtp/out @@ -8,12 +8,7 @@ file type is set mime type is set FileAnalysis::TRIGGER_EOF 9VCisPgrqVj, 79, 0 -{ -arKYeMETxOg -} -{ [orig_h=10.10.1.4, orig_p=1470/tcp, resp_h=74.53.140.153, resp_p=25/tcp] -} source: SMTP SHA1: b7e497be8a9f5e2c4b6980fceb015360f98f4a13 MD5: 92bca2e6cdcde73647125da7dccbdd07 @@ -28,12 +23,7 @@ file type is set mime type is set FileAnalysis::TRIGGER_EOF ZAOEQmRyxv1, 1918, 0 -{ -arKYeMETxOg -} -{ [orig_h=10.10.1.4, orig_p=1470/tcp, resp_h=74.53.140.153, resp_p=25/tcp] -} source: SMTP SHA1: e54af6c6616525611364b80bd6557a7ea21dae94 MD5: d194c6359c85bb88b54caee18b1e9b44 @@ -48,12 +38,7 @@ file type is set mime type is set FileAnalysis::TRIGGER_EOF Ltd7QO7jEv3, 10823, 0 -{ -arKYeMETxOg -} -{ [orig_h=10.10.1.4, orig_p=1470/tcp, resp_h=74.53.140.153, resp_p=25/tcp] -} source: SMTP SHA1: 43bf1cea1cd4b7d15243e15611859aa49d515665 MD5: a968bb0f9f9d95835b2e74c845877e87 diff --git a/testing/btest/Baseline/scripts.base.frameworks.logging.ascii-escape-odd-url/http.log b/testing/btest/Baseline/scripts.base.frameworks.logging.ascii-escape-odd-url/http.log index f1ff4db3b8..6a58e612c8 100644 --- a/testing/btest/Baseline/scripts.base.frameworks.logging.ascii-escape-odd-url/http.log +++ b/testing/btest/Baseline/scripts.base.frameworks.logging.ascii-escape-odd-url/http.log @@ -3,8 +3,8 @@ #empty_field (empty) #unset_field - #path http -#open 2011-09-12-03-57-36 +#open 2013-03-22-14-38-21 #fields ts uid id.orig_h id.orig_p id.resp_h id.resp_p trans_depth method host uri referrer user_agent request_body_len response_body_len status_code status_msg info_code info_msg filename tags username password proxied mime_type md5 extraction_file -#types time string addr port addr port count string string string string string count count count string count string string table[enum] string string table[string] string string file -1315799856.264750 UWkUyAuUGXf 10.0.1.104 64216 193.40.5.162 80 1 GET lepo.it.da.ut.ee /~cect/teoreetilised seminarid_2010/arheoloogia_uurimisr\xfchma_seminar/Joyce et al - The Languages of Archaeology ~ Dialogue, Narrative and Writing.pdf - Wget/1.12 (darwin10.8.0) 0 346 404 Not Found - - - (empty) - - - text/html - - -#close 2011-09-12-03-57-37 +#types time string addr port addr port count string string string string string count count count string count string string table[enum] string string table[string] string string string +1315799856.264750 UWkUyAuUGXf 10.0.1.104 64216 193.40.5.162 80 1 GET lepo.it.da.ut.ee /~cect/teoreetilised seminarid_2010/arheoloogia_uurimisr\xfchma_seminar/Joyce et al - The Languages of Archaeology ~ Dialogue, Narrative and Writing.pdf - Wget/1.12 (darwin10.8.0) 0 346 404 Not Found - - - (empty) - - - text/html; charset=iso-8859-1 - - +#close 2013-03-22-14-38-21 diff --git a/testing/btest/Baseline/scripts.base.frameworks.logging.writer-path-conflict/http.log b/testing/btest/Baseline/scripts.base.frameworks.logging.writer-path-conflict/http.log index 97273995bc..5d707d5cb8 100644 --- a/testing/btest/Baseline/scripts.base.frameworks.logging.writer-path-conflict/http.log +++ b/testing/btest/Baseline/scripts.base.frameworks.logging.writer-path-conflict/http.log @@ -3,9 +3,9 @@ #empty_field (empty) #unset_field - #path http -#open 2011-03-18-19-06-08 +#open 2013-03-22-14-38-24 #fields ts uid id.orig_h id.orig_p id.resp_h id.resp_p trans_depth method host uri referrer user_agent request_body_len response_body_len status_code status_msg info_code info_msg filename tags username password proxied mime_type md5 extraction_file -#types time string addr port addr port count string string string string string count count count string count string string table[enum] string string table[string] string string file +#types time string addr port addr port count string string string string string count count count string count string string table[enum] string string table[string] string string string 1300475168.784020 j4u32Pc5bif 141.142.220.118 48649 208.80.152.118 80 1 GET bits.wikimedia.org /skins-1.5/monobook/main.css http://www.wikipedia.org/ Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.15) Gecko/20110303 Ubuntu/10.04 (lucid) Firefox/3.6.15 0 0 304 Not Modified - - - (empty) - - - - - - 1300475168.916018 VW0XPVINV8a 141.142.220.118 49997 208.80.152.3 80 1 GET upload.wikimedia.org /wikipedia/commons/6/63/Wikipedia-logo.png http://www.wikipedia.org/ Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.15) Gecko/20110303 Ubuntu/10.04 (lucid) Firefox/3.6.15 0 0 304 Not Modified - - - (empty) - - - - - - 1300475168.916183 3PKsZ2Uye21 141.142.220.118 49996 208.80.152.3 80 1 GET upload.wikimedia.org /wikipedia/commons/thumb/b/bb/Wikipedia_wordmark.svg/174px-Wikipedia_wordmark.svg.png http://www.wikipedia.org/ Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.15) Gecko/20110303 Ubuntu/10.04 (lucid) Firefox/3.6.15 0 0 304 Not Modified - - - (empty) - - - - - - @@ -20,4 +20,4 @@ 1300475169.014619 Tw8jXtpTGu6 141.142.220.118 50000 208.80.152.3 80 2 GET upload.wikimedia.org /wikipedia/commons/thumb/4/4a/Commons-logo.svg/35px-Commons-logo.svg.png http://www.wikipedia.org/ Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.15) Gecko/20110303 Ubuntu/10.04 (lucid) Firefox/3.6.15 0 0 304 Not Modified - - - (empty) - - - - - - 1300475169.014593 P654jzLoe3a 141.142.220.118 49999 208.80.152.3 80 2 GET upload.wikimedia.org /wikipedia/commons/thumb/9/91/Wikiversity-logo.svg/35px-Wikiversity-logo.svg.png http://www.wikipedia.org/ Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.15) Gecko/20110303 Ubuntu/10.04 (lucid) Firefox/3.6.15 0 0 304 Not Modified - - - (empty) - - - - - - 1300475169.014927 0Q4FH8sESw5 141.142.220.118 50001 208.80.152.3 80 2 GET upload.wikimedia.org /wikipedia/commons/thumb/7/75/Wikimedia_Community_Logo.svg/35px-Wikimedia_Community_Logo.svg.png http://www.wikipedia.org/ Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.15) Gecko/20110303 Ubuntu/10.04 (lucid) Firefox/3.6.15 0 0 304 Not Modified - - - (empty) - - - - - - -#close 2011-03-18-19-06-13 +#close 2013-03-22-14-38-24 diff --git a/testing/btest/Baseline/scripts.base.protocols.http.100-continue/http.log b/testing/btest/Baseline/scripts.base.protocols.http.100-continue/http.log index 13c8b12502..f6920ac6b3 100644 --- a/testing/btest/Baseline/scripts.base.protocols.http.100-continue/http.log +++ b/testing/btest/Baseline/scripts.base.protocols.http.100-continue/http.log @@ -3,8 +3,8 @@ #empty_field (empty) #unset_field - #path http -#open 2009-03-19-05-21-36 +#open 2013-03-22-14-38-28 #fields ts uid id.orig_h id.orig_p id.resp_h id.resp_p trans_depth method host uri referrer user_agent request_body_len response_body_len status_code status_msg info_code info_msg filename tags username password proxied mime_type md5 extraction_file -#types time string addr port addr port count string string string string string count count count string count string string table[enum] string string table[string] string string file -1237440095.634312 UWkUyAuUGXf 192.168.3.103 54102 128.146.216.51 80 1 POST www.osu.edu / - curl/7.17.1 (i386-apple-darwin8.11.1) libcurl/7.17.1 zlib/1.2.3 2001 60731 200 OK 100 Continue - (empty) - - - text/html - - -#close 2009-03-19-05-21-36 +#types time string addr port addr port count string string string string string count count count string count string string table[enum] string string table[string] string string string +1237440095.634312 UWkUyAuUGXf 192.168.3.103 54102 128.146.216.51 80 1 POST www.osu.edu / - curl/7.17.1 (i386-apple-darwin8.11.1) libcurl/7.17.1 zlib/1.2.3 2001 60731 200 OK 100 Continue - (empty) - - - text/html; charset=us-ascii - - +#close 2013-03-22-14-38-28 diff --git a/testing/btest/Baseline/scripts.base.protocols.http.http-extract-files/http-item_141.42.64.125:56730-125.190.109.199:80_resp_1.dat b/testing/btest/Baseline/scripts.base.protocols.http.http-extract-files/http-item-BFymS6bFgT3-0.dat similarity index 100% rename from testing/btest/Baseline/scripts.base.protocols.http.http-extract-files/http-item_141.42.64.125:56730-125.190.109.199:80_resp_1.dat rename to testing/btest/Baseline/scripts.base.protocols.http.http-extract-files/http-item-BFymS6bFgT3-0.dat diff --git a/testing/btest/Baseline/scripts.base.protocols.http.http-extract-files/http.log b/testing/btest/Baseline/scripts.base.protocols.http.http-extract-files/http.log index 0d61a6c8b3..f42a66f796 100644 --- a/testing/btest/Baseline/scripts.base.protocols.http.http-extract-files/http.log +++ b/testing/btest/Baseline/scripts.base.protocols.http.http-extract-files/http.log @@ -3,8 +3,8 @@ #empty_field (empty) #unset_field - #path http -#open 2005-10-07-23-23-56 +#open 2013-03-22-14-38-28 #fields ts uid id.orig_h id.orig_p id.resp_h id.resp_p trans_depth method host uri referrer user_agent request_body_len response_body_len status_code status_msg info_code info_msg filename tags username password proxied mime_type md5 extraction_file -#types time string addr port addr port count string string string string string count count count string count string string table[enum] string string table[string] string string file -1128727435.634189 arKYeMETxOg 141.42.64.125 56730 125.190.109.199 80 1 GET www.icir.org / - Wget/1.10 0 9130 200 OK - - - (empty) - - - text/html - http-item_141.42.64.125:56730-125.190.109.199:80_resp_1.dat -#close 2005-10-07-23-23-57 +#types time string addr port addr port count string string string string string count count count string count string string table[enum] string string table[string] string string string +1128727435.634189 arKYeMETxOg 141.42.64.125 56730 125.190.109.199 80 1 GET www.icir.org / - Wget/1.10 0 9130 200 OK - - - (empty) - - - text/html; charset=us-ascii - http-item-BFymS6bFgT3-0.dat +#close 2013-03-22-14-38-28 diff --git a/testing/btest/Baseline/scripts.base.protocols.http.http-mime-and-md5/http.log b/testing/btest/Baseline/scripts.base.protocols.http.http-mime-and-md5/http.log index 409d8fc812..61b1e16a2f 100644 --- a/testing/btest/Baseline/scripts.base.protocols.http.http-mime-and-md5/http.log +++ b/testing/btest/Baseline/scripts.base.protocols.http.http-mime-and-md5/http.log @@ -3,12 +3,12 @@ #empty_field (empty) #unset_field - #path http -#open 2009-11-18-20-58-04 +#open 2013-03-22-16-25-59 #fields ts uid id.orig_h id.orig_p id.resp_h id.resp_p trans_depth method host uri referrer user_agent request_body_len response_body_len status_code status_msg info_code info_msg filename tags username password proxied mime_type md5 extraction_file -#types time string addr port addr port count string string string string string count count count string count string string table[enum] string string table[string] string string file -1258577884.844956 UWkUyAuUGXf 192.168.1.104 1673 63.245.209.11 80 1 GET www.mozilla.org /style/enhanced.css http://www.mozilla.org/projects/calendar/ Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 0 2675 200 OK - - - (empty) - - - FAKE_MIME - - -1258577884.960135 UWkUyAuUGXf 192.168.1.104 1673 63.245.209.11 80 2 GET www.mozilla.org /script/urchin.js http://www.mozilla.org/projects/calendar/ Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 0 21421 200 OK - - - (empty) - - - FAKE_MIME - - -1258577885.317160 UWkUyAuUGXf 192.168.1.104 1673 63.245.209.11 80 3 GET www.mozilla.org /images/template/screen/bullet_utility.png http://www.mozilla.org/style/screen.css Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 0 94 200 OK - - - (empty) - - - FAKE_MIME - - -1258577885.349639 UWkUyAuUGXf 192.168.1.104 1673 63.245.209.11 80 4 GET www.mozilla.org /images/template/screen/key-point-top.png http://www.mozilla.org/style/screen.css Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 0 2349 200 OK - - - (empty) - - - image/png e0029eea80812e9a8e57b8d05d52938a - -1258577885.394612 UWkUyAuUGXf 192.168.1.104 1673 63.245.209.11 80 5 GET www.mozilla.org /projects/calendar/images/header-sunbird.png http://www.mozilla.org/projects/calendar/calendar.css Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 0 27579 200 OK - - - (empty) - - - image/png 30aa926344f58019d047e85ba049ca1e - -#close 2009-11-18-20-58-32 +#types time string addr port addr port count string string string string string count count count string count string string table[enum] string string table[string] string string string +1258577884.844956 UWkUyAuUGXf 192.168.1.104 1673 63.245.209.11 80 1 GET www.mozilla.org /style/enhanced.css http://www.mozilla.org/projects/calendar/ Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 0 2675 200 OK - - - (empty) - - - text/plain; charset=us-ascii - - +1258577884.960135 UWkUyAuUGXf 192.168.1.104 1673 63.245.209.11 80 2 GET www.mozilla.org /script/urchin.js http://www.mozilla.org/projects/calendar/ Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 0 21421 200 OK - - - (empty) - - - text/plain; charset=us-ascii - - +1258577885.317160 UWkUyAuUGXf 192.168.1.104 1673 63.245.209.11 80 3 GET www.mozilla.org /images/template/screen/bullet_utility.png http://www.mozilla.org/style/screen.css Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 0 94 200 OK - - - (empty) - - - image/gif; charset=binary - - +1258577885.349639 UWkUyAuUGXf 192.168.1.104 1673 63.245.209.11 80 4 GET www.mozilla.org /images/template/screen/key-point-top.png http://www.mozilla.org/style/screen.css Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 0 2349 200 OK - - - (empty) - - - image/png; charset=binary e0029eea80812e9a8e57b8d05d52938a - +1258577885.394612 UWkUyAuUGXf 192.168.1.104 1673 63.245.209.11 80 5 GET www.mozilla.org /projects/calendar/images/header-sunbird.png http://www.mozilla.org/projects/calendar/calendar.css Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 0 27579 200 OK - - - (empty) - - - image/png; charset=binary 30aa926344f58019d047e85ba049ca1e - +#close 2013-03-22-16-25-59 diff --git a/testing/btest/Baseline/scripts.base.protocols.http.http-pipelining/http.log b/testing/btest/Baseline/scripts.base.protocols.http.http-pipelining/http.log index 6b5e395902..d7791097a9 100644 --- a/testing/btest/Baseline/scripts.base.protocols.http.http-pipelining/http.log +++ b/testing/btest/Baseline/scripts.base.protocols.http.http-pipelining/http.log @@ -3,12 +3,12 @@ #empty_field (empty) #unset_field - #path http -#open 2009-11-18-20-58-04 +#open 2013-03-22-14-38-28 #fields ts uid id.orig_h id.orig_p id.resp_h id.resp_p trans_depth method host uri referrer user_agent request_body_len response_body_len status_code status_msg info_code info_msg filename tags username password proxied md5 extraction_file -#types time string addr port addr port count string string string string string count count count string count string string table[enum] string string table[string] string file +#types time string addr port addr port count string string string string string count count count string count string string table[enum] string string table[string] string string 1258577884.844956 UWkUyAuUGXf 192.168.1.104 1673 63.245.209.11 80 1 GET www.mozilla.org /style/enhanced.css http://www.mozilla.org/projects/calendar/ Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 0 2675 200 OK - - - (empty) - - - - - 1258577884.960135 UWkUyAuUGXf 192.168.1.104 1673 63.245.209.11 80 2 GET www.mozilla.org /script/urchin.js http://www.mozilla.org/projects/calendar/ Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 0 21421 200 OK - - - (empty) - - - - - 1258577885.317160 UWkUyAuUGXf 192.168.1.104 1673 63.245.209.11 80 3 GET www.mozilla.org /images/template/screen/bullet_utility.png http://www.mozilla.org/style/screen.css Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 0 94 200 OK - - - (empty) - - - - - 1258577885.349639 UWkUyAuUGXf 192.168.1.104 1673 63.245.209.11 80 4 GET www.mozilla.org /images/template/screen/key-point-top.png http://www.mozilla.org/style/screen.css Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 0 2349 200 OK - - - (empty) - - - - - 1258577885.394612 UWkUyAuUGXf 192.168.1.104 1673 63.245.209.11 80 5 GET www.mozilla.org /projects/calendar/images/header-sunbird.png http://www.mozilla.org/projects/calendar/calendar.css Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 0 27579 200 OK - - - (empty) - - - - - -#close 2009-11-18-20-58-32 +#close 2013-03-22-14-38-28 diff --git a/testing/btest/istate/events-ssl.bro b/testing/btest/istate/events-ssl.bro index e4440834a7..8eca37c581 100644 --- a/testing/btest/istate/events-ssl.bro +++ b/testing/btest/istate/events-ssl.bro @@ -40,7 +40,15 @@ redef tcp_close_delay = 0secs; redef ssl_ca_certificate = "../ca_cert.pem"; redef ssl_private_key = "../bro.pem"; redef ssl_passphrase = "my-password"; - + +# File analysis that populates fields in the http.log would make the sender's +# log differ from the receiver's since hooks don't get sent to peers. +hook FileAnalysis::policy(trig: FileAnalysis::Trigger, info: FileAnalysis::Info) + &priority=10 + { + FileAnalysis::stop(info$file_id); + } + @TEST-END-FILE ############# diff --git a/testing/btest/istate/events.bro b/testing/btest/istate/events.bro index c292f77113..2e81883a1e 100644 --- a/testing/btest/istate/events.bro +++ b/testing/btest/istate/events.bro @@ -36,6 +36,14 @@ redef peer_description = "events-send"; # it gets propagated but that's ok.) redef tcp_close_delay = 0secs; +# File analysis that populates fields in the http.log would make the sender's +# log differ from the receiver's since hooks don't get sent to peers. +hook FileAnalysis::policy(trig: FileAnalysis::Trigger, info: FileAnalysis::Info) + &priority=10 + { + FileAnalysis::stop(info$file_id); + } + @TEST-END-FILE ############# diff --git a/testing/btest/scripts/base/frameworks/file-analysis/actions/data_event.bro b/testing/btest/scripts/base/frameworks/file-analysis/actions/data_event.bro index d072a05c17..cc74f5f5c2 100644 --- a/testing/btest/scripts/base/frameworks/file-analysis/actions/data_event.bro +++ b/testing/btest/scripts/base/frameworks/file-analysis/actions/data_event.bro @@ -43,8 +43,9 @@ hook FileAnalysis::policy(trig: FileAnalysis::Trigger, info: FileAnalysis::Info) case FileAnalysis::TRIGGER_DONE: print info$file_id, info$seen_bytes, info$missing_bytes; - print info$conn_uids; - print info$conn_ids; + if ( info?$conns ) + for ( cid in info$conns ) + print cid; if ( info?$total_bytes ) print "total bytes: " + fmt("%s", info$total_bytes); diff --git a/testing/btest/scripts/base/frameworks/file-analysis/bifs/postpone_timeout.bro b/testing/btest/scripts/base/frameworks/file-analysis/bifs/postpone_timeout.bro index f8f727f28b..0082f9ee11 100644 --- a/testing/btest/scripts/base/frameworks/file-analysis/bifs/postpone_timeout.bro +++ b/testing/btest/scripts/base/frameworks/file-analysis/bifs/postpone_timeout.bro @@ -55,8 +55,9 @@ hook FileAnalysis::policy(trig: FileAnalysis::Trigger, info: FileAnalysis::Info) case FileAnalysis::TRIGGER_DONE: print info$file_id, info$seen_bytes, info$missing_bytes; - print info$conn_uids; - print info$conn_ids; + if ( info?$conns ) + for ( cid in info$conns ) + print cid; if ( info?$total_bytes ) print "total bytes: " + fmt("%s", info$total_bytes); diff --git a/testing/btest/scripts/base/frameworks/file-analysis/bifs/remove_action.bro b/testing/btest/scripts/base/frameworks/file-analysis/bifs/remove_action.bro index 90285701ca..24e9e4ca66 100644 --- a/testing/btest/scripts/base/frameworks/file-analysis/bifs/remove_action.bro +++ b/testing/btest/scripts/base/frameworks/file-analysis/bifs/remove_action.bro @@ -48,8 +48,9 @@ hook FileAnalysis::policy(trig: FileAnalysis::Trigger, info: FileAnalysis::Info) case FileAnalysis::TRIGGER_DONE: print info$file_id, info$seen_bytes, info$missing_bytes; - print info$conn_uids; - print info$conn_ids; + if ( info?$conns ) + for ( cid in info$conns ) + print cid; if ( info?$total_bytes ) print "total bytes: " + fmt("%s", info$total_bytes); diff --git a/testing/btest/scripts/base/frameworks/file-analysis/bifs/stop.bro b/testing/btest/scripts/base/frameworks/file-analysis/bifs/stop.bro index d8ff623c60..53dc52455b 100644 --- a/testing/btest/scripts/base/frameworks/file-analysis/bifs/stop.bro +++ b/testing/btest/scripts/base/frameworks/file-analysis/bifs/stop.bro @@ -43,8 +43,9 @@ hook FileAnalysis::policy(trig: FileAnalysis::Trigger, info: FileAnalysis::Info) case FileAnalysis::TRIGGER_DONE: print info$file_id, info$seen_bytes, info$missing_bytes; - print info$conn_uids; - print info$conn_ids; + if ( info?$conns ) + for ( cid in info$conns ) + print cid; if ( info?$total_bytes ) print "total bytes: " + fmt("%s", info$total_bytes); diff --git a/testing/btest/scripts/base/frameworks/file-analysis/ftp.bro b/testing/btest/scripts/base/frameworks/file-analysis/ftp.bro index 153eeb186c..38665c66a2 100644 --- a/testing/btest/scripts/base/frameworks/file-analysis/ftp.bro +++ b/testing/btest/scripts/base/frameworks/file-analysis/ftp.bro @@ -12,7 +12,7 @@ hook FileAnalysis::policy(trig: FileAnalysis::Trigger, info: FileAnalysis::Info) case FileAnalysis::TRIGGER_NEW: print info$file_id, info$seen_bytes, info$missing_bytes; - if ( info$source == "ftp-data" ) + if ( info$source == "FTP_DATA" ) { for ( act in actions ) FileAnalysis::add_action(info$file_id, act); @@ -34,8 +34,9 @@ hook FileAnalysis::policy(trig: FileAnalysis::Trigger, info: FileAnalysis::Info) case FileAnalysis::TRIGGER_EOF: print info$file_id, info$seen_bytes, info$missing_bytes; - print info$conn_uids; - print info$conn_ids; + if ( info?$conns ) + for ( cid in info$conns ) + print cid; if ( info?$total_bytes ) print "total bytes: " + fmt("%s", info$total_bytes); diff --git a/testing/btest/scripts/base/frameworks/file-analysis/http/get.bro b/testing/btest/scripts/base/frameworks/file-analysis/http/get.bro index 64a01119a4..38d4c444da 100644 --- a/testing/btest/scripts/base/frameworks/file-analysis/http/get.bro +++ b/testing/btest/scripts/base/frameworks/file-analysis/http/get.bro @@ -44,8 +44,9 @@ hook FileAnalysis::policy(trig: FileAnalysis::Trigger, info: FileAnalysis::Info) case FileAnalysis::TRIGGER_DONE: print info$file_id, info$seen_bytes, info$missing_bytes; - print info$conn_uids; - print info$conn_ids; + if ( info?$conns ) + for ( cid in info$conns ) + print cid; if ( info?$total_bytes ) print "total bytes: " + fmt("%s", info$total_bytes); diff --git a/testing/btest/scripts/base/frameworks/file-analysis/http/partial-content.bro b/testing/btest/scripts/base/frameworks/file-analysis/http/partial-content.bro index 7df9db5c0d..f5a8ac11d0 100644 --- a/testing/btest/scripts/base/frameworks/file-analysis/http/partial-content.bro +++ b/testing/btest/scripts/base/frameworks/file-analysis/http/partial-content.bro @@ -54,8 +54,9 @@ hook FileAnalysis::policy(trig: FileAnalysis::Trigger, info: FileAnalysis::Info) case FileAnalysis::TRIGGER_DONE: print info$file_id, info$seen_bytes, info$missing_bytes; - print info$conn_uids; - print info$conn_ids; + if ( info?$conns ) + for ( cid in info$conns ) + print cid; if ( info?$total_bytes ) print "total bytes: " + fmt("%s", info$total_bytes); diff --git a/testing/btest/scripts/base/frameworks/file-analysis/http/pipeline.bro b/testing/btest/scripts/base/frameworks/file-analysis/http/pipeline.bro index f1932426bd..010d99c33d 100644 --- a/testing/btest/scripts/base/frameworks/file-analysis/http/pipeline.bro +++ b/testing/btest/scripts/base/frameworks/file-analysis/http/pipeline.bro @@ -45,8 +45,9 @@ hook FileAnalysis::policy(trig: FileAnalysis::Trigger, info: FileAnalysis::Info) case FileAnalysis::TRIGGER_DONE: print info$file_id, info$seen_bytes, info$missing_bytes; - print info$conn_uids; - print info$conn_ids; + if ( info?$conns ) + for ( cid in info$conns ) + print cid; if ( info?$total_bytes ) print "total bytes: " + fmt("%s", info$total_bytes); diff --git a/testing/btest/scripts/base/frameworks/file-analysis/http/post.bro b/testing/btest/scripts/base/frameworks/file-analysis/http/post.bro index 35a31a06b2..a31f7129b8 100644 --- a/testing/btest/scripts/base/frameworks/file-analysis/http/post.bro +++ b/testing/btest/scripts/base/frameworks/file-analysis/http/post.bro @@ -42,8 +42,9 @@ hook FileAnalysis::policy(trig: FileAnalysis::Trigger, info: FileAnalysis::Info) case FileAnalysis::TRIGGER_DONE: print info$file_id, info$seen_bytes, info$missing_bytes; - print info$conn_uids; - print info$conn_ids; + if ( info?$conns ) + for ( cid in info$conns ) + print cid; if ( info?$total_bytes ) print "total bytes: " + fmt("%s", info$total_bytes); diff --git a/testing/btest/scripts/base/frameworks/file-analysis/irc.bro b/testing/btest/scripts/base/frameworks/file-analysis/irc.bro index 344a2ad6ab..e6d2fc29ac 100644 --- a/testing/btest/scripts/base/frameworks/file-analysis/irc.bro +++ b/testing/btest/scripts/base/frameworks/file-analysis/irc.bro @@ -12,7 +12,7 @@ hook FileAnalysis::policy(trig: FileAnalysis::Trigger, info: FileAnalysis::Info) case FileAnalysis::TRIGGER_NEW: print info$file_id, info$seen_bytes, info$missing_bytes; - if ( info$source == "irc-dcc-data" ) + if ( info$source == "IRC_DATA" ) { for ( act in actions ) FileAnalysis::add_action(info$file_id, act); @@ -34,8 +34,9 @@ hook FileAnalysis::policy(trig: FileAnalysis::Trigger, info: FileAnalysis::Info) case FileAnalysis::TRIGGER_EOF: print info$file_id, info$seen_bytes, info$missing_bytes; - print info$conn_uids; - print info$conn_ids; + if ( info?$conns ) + for ( cid in info$conns ) + print cid; if ( info?$total_bytes ) print "total bytes: " + fmt("%s", info$total_bytes); diff --git a/testing/btest/scripts/base/frameworks/file-analysis/logging.bro b/testing/btest/scripts/base/frameworks/file-analysis/logging.bro index ab12304ac5..8f48ccb38a 100644 --- a/testing/btest/scripts/base/frameworks/file-analysis/logging.bro +++ b/testing/btest/scripts/base/frameworks/file-analysis/logging.bro @@ -55,8 +55,9 @@ hook FileAnalysis::policy(trig: FileAnalysis::Trigger, info: FileAnalysis::Info) case FileAnalysis::TRIGGER_DONE: print info$file_id, info$seen_bytes, info$missing_bytes; - print info$conn_uids; - print info$conn_ids; + if ( info?$conns ) + for ( cid in info$conns ) + print cid; if ( info?$total_bytes ) print "total bytes: " + fmt("%s", info$total_bytes); diff --git a/testing/btest/scripts/base/frameworks/file-analysis/smtp.bro b/testing/btest/scripts/base/frameworks/file-analysis/smtp.bro index 48a97f4174..57a17a5339 100644 --- a/testing/btest/scripts/base/frameworks/file-analysis/smtp.bro +++ b/testing/btest/scripts/base/frameworks/file-analysis/smtp.bro @@ -42,8 +42,9 @@ hook FileAnalysis::policy(trig: FileAnalysis::Trigger, info: FileAnalysis::Info) case FileAnalysis::TRIGGER_EOF: print info$file_id, info$seen_bytes, info$missing_bytes; - print info$conn_uids; - print info$conn_ids; + if ( info?$conns ) + for ( cid in info$conns ) + print cid; if ( info?$total_bytes ) print "total bytes: " + fmt("%s", info$total_bytes); diff --git a/testing/btest/scripts/base/protocols/http/http-extract-files.bro b/testing/btest/scripts/base/protocols/http/http-extract-files.bro index 4338cddb47..ce9d3e7e04 100644 --- a/testing/btest/scripts/base/protocols/http/http-extract-files.bro +++ b/testing/btest/scripts/base/protocols/http/http-extract-files.bro @@ -1,5 +1,5 @@ # @TEST-EXEC: bro -C -r $TRACES/web.trace %INPUT # @TEST-EXEC: btest-diff http.log -# @TEST-EXEC: btest-diff http-item_141.42.64.125:56730-125.190.109.199:80_resp_1.dat +# @TEST-EXEC: btest-diff http-item-BFymS6bFgT3-0.dat -redef HTTP::extract_file_types += /text\/html/; \ No newline at end of file +redef HTTP::extract_file_types += /text\/html/; diff --git a/testing/btest/scripts/base/protocols/http/http-mime-and-md5.bro b/testing/btest/scripts/base/protocols/http/http-mime-and-md5.bro index c6bf4899f5..b35e491b4d 100644 --- a/testing/btest/scripts/base/protocols/http/http-mime-and-md5.bro +++ b/testing/btest/scripts/base/protocols/http/http-mime-and-md5.bro @@ -1,21 +1,6 @@ -# This tests md5 calculation for a specified mime type. The http.log -# will normalize mime types other than the target type to prevent sensitivity -# to varying versions of libmagic. +# This tests md5 calculation for a specified mime type. # @TEST-EXEC: bro -r $TRACES/http/pipelined-requests.trace %INPUT > output # @TEST-EXEC: btest-diff http.log redef HTTP::generate_md5 += /image\/png/; - -event bro_init() - { - Log::remove_default_filter(HTTP::LOG); - Log::add_filter(HTTP::LOG, [$name="normalized-mime-types", - $pred=function(rec: HTTP::Info): bool - { - if ( rec?$mime_type && HTTP::generate_md5 != rec$mime_type ) - rec$mime_type = "FAKE_MIME"; - return T; - } - ]); - } From 00a1de3593eb308ce617c6faa85378132b3a7858 Mon Sep 17 00:00:00 2001 From: Jon Siwek Date: Fri, 22 Mar 2013 17:27:16 -0500 Subject: [PATCH 60/71] FileAnalysis: refactor unit tests to use a common script. --- .../out | 4 +- .../file-analysis/actions/data_event.bro | 56 +-------- .../file-analysis/bifs/postpone_timeout.bro | 97 +++------------- .../file-analysis/bifs/remove_action.bro | 92 +++------------ .../frameworks/file-analysis/bifs/stop.bro | 73 +----------- .../base/frameworks/file-analysis/ftp.bro | 69 +---------- .../frameworks/file-analysis/http/get.bro | 76 +----------- .../file-analysis/http/partial-content.bro | 85 ++------------ .../file-analysis/http/pipeline.bro | 74 +----------- .../frameworks/file-analysis/http/post.bro | 74 +----------- .../frameworks/file-analysis/input/basic.bro | 82 ++----------- .../base/frameworks/file-analysis/irc.bro | 69 +---------- .../base/frameworks/file-analysis/logging.bro | 103 +---------------- .../base/frameworks/file-analysis/smtp.bro | 77 ++----------- testing/scripts/file-analysis-test.bro | 109 ++++++++++++++++++ 15 files changed, 209 insertions(+), 931 deletions(-) create mode 100644 testing/scripts/file-analysis-test.bro diff --git a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.actions.data_event/out b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.actions.data_event/out index 6311f768f2..2f26373b88 100644 --- a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.actions.data_event/out +++ b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.actions.data_event/out @@ -1,6 +1,5 @@ FileAnalysis::TRIGGER_NEW Cx92a0ym5R8, 0, 0 -T FileAnalysis::TRIGGER_BOF FileAnalysis::TRIGGER_BOF_BUFFER ^J0.26 | 201 @@ -20,6 +19,9 @@ Cx92a0ym5R8, 4705, 0 [orig_h=141.142.228.5, orig_p=59856/tcp, resp_h=192.150.187.43, resp_p=80/tcp] total bytes: 4705 source: HTTP +SHA1: 1dd7ac0398df6cbc0696445a91ec681facf4dc47 +MD5: 397168fd09991a0e712254df7bc639ac +SHA256: 4e7c7ef0984119447e743e3ec77e1de52713e345cde03fe7df753a35849bed18 file_stream, Cx92a0ym5R8, 476, now links against thread library when necessary (e.g.^J PF_RING's libpcap) (Jon Siwek)^J^J * Install binaries with an RPATH (Jon Siwek)^J^J * Workaround for FreeBSD CMake port missing debug flags (Jon Siwek)^J^J * Rewrite of the update-changes script. (Robin Sommer)^J^J0.1-1 | 2011-06-14 21:12:41 -0700^J^J * Add a script for generating Mozilla's CA list for the SSL analyzer.^J (Seth Hall)^J^J0.1 | 2011-04-01 16:28:22 -0700^J^J * Converting build process to CMake. (Jon Siwek)^J file_chunk, Cx92a0ym5R8, 476, 4024, now links against thread library when necessary (e.g.^J PF_RING's libpcap) (Jon Siwek)^J^J * Install binaries with an RPATH (Jon Siwek)^J^J * Workaround for FreeBSD CMake port missing debug flags (Jon Siwek)^J^J * Rewrite of the update-changes script. (Robin Sommer)^J^J0.1-1 | 2011-06-14 21:12:41 -0700^J^J * Add a script for generating Mozilla's CA list for the SSL analyzer.^J (Seth Hall)^J^J0.1 | 2011-04-01 16:28:22 -0700^J^J * Converting build process to CMake. (Jon Siwek)^J file_stream, Cx92a0ym5R8, 205, ^J * Removing cf/hf/ca-* from distribution. The README has a note where^J to find them now. (Robin Sommer)^J^J * General cleanup. (Robin Sommer)^J^J * Initial import of bro/aux from SVN r7088. (Jon Siwek)^J diff --git a/testing/btest/scripts/base/frameworks/file-analysis/actions/data_event.bro b/testing/btest/scripts/base/frameworks/file-analysis/actions/data_event.bro index cc74f5f5c2..bcecbd8aa3 100644 --- a/testing/btest/scripts/base/frameworks/file-analysis/actions/data_event.bro +++ b/testing/btest/scripts/base/frameworks/file-analysis/actions/data_event.bro @@ -1,56 +1,4 @@ -# @TEST-EXEC: bro -r $TRACES/http/get.trace %INPUT >out +# @TEST-EXEC: bro -r $TRACES/http/get.trace $SCRIPTS/file-analysis-test.bro %INPUT >out # @TEST-EXEC: btest-diff out -event file_chunk(info: FileAnalysis::Info, data: string, off: count) - { - print "file_chunk", info$file_id, |data|, off, data; - } - -event file_stream(info: FileAnalysis::Info, data: string) - { - print "file_stream", info$file_id, |data|, data; - } - -hook FileAnalysis::policy(trig: FileAnalysis::Trigger, info: FileAnalysis::Info) - { - print trig; - - switch ( trig ) { - case FileAnalysis::TRIGGER_NEW: - print info$file_id, info$seen_bytes, info$missing_bytes; - - print FileAnalysis::add_action(info$file_id, - [$act=FileAnalysis::ACTION_DATA_EVENT, - $chunk_event=file_chunk, - $stream_event=file_stream]); - break; - - case FileAnalysis::TRIGGER_BOF_BUFFER: - if ( info?$bof_buffer ) - print info$bof_buffer[0:10]; - break; - - case FileAnalysis::TRIGGER_TYPE: - # not actually printing the values due to libmagic variances - if ( info?$file_type ) - print "file type is set"; - if ( info?$mime_type ) - print "mime type is set"; - break; - - case FileAnalysis::TRIGGER_EOF: - fallthrough; - case FileAnalysis::TRIGGER_DONE: - - print info$file_id, info$seen_bytes, info$missing_bytes; - if ( info?$conns ) - for ( cid in info$conns ) - print cid; - - if ( info?$total_bytes ) - print "total bytes: " + fmt("%s", info$total_bytes); - if ( info?$source ) - print "source: " + info$source; - break; - } - } +redef test_print_file_data_events = T; diff --git a/testing/btest/scripts/base/frameworks/file-analysis/bifs/postpone_timeout.bro b/testing/btest/scripts/base/frameworks/file-analysis/bifs/postpone_timeout.bro index 0082f9ee11..a19fd621a4 100644 --- a/testing/btest/scripts/base/frameworks/file-analysis/bifs/postpone_timeout.bro +++ b/testing/btest/scripts/base/frameworks/file-analysis/bifs/postpone_timeout.bro @@ -1,91 +1,30 @@ -# @TEST-EXEC: btest-bg-run bro bro -r $TRACES/http/206_example_b.pcap %INPUT +# @TEST-EXEC: btest-bg-run bro bro -r $TRACES/http/206_example_b.pcap $SCRIPTS/file-analysis-test.bro %INPUT # @TEST-EXEC: btest-bg-wait 8 # @TEST-EXEC: btest-diff bro/.stdout -global actions: set[FileAnalysis::ActionArgs]; global cnt: count = 0; global timeout_cnt: count = 0; +redef FileAnalysis::default_timeout_interval=2sec; + +redef test_file_analysis_source = "HTTP"; + +redef test_get_file_name = function(info: FileAnalysis::Info): string + { + local rval: string = fmt("%s-file%d", info$file_id, cnt); + ++cnt; + return rval; + }; + redef exit_only_after_terminate = T; hook FileAnalysis::policy(trig: FileAnalysis::Trigger, info: FileAnalysis::Info) { - print trig; + if ( trig != FileAnalysis::TRIGGER_TIMEOUT ) return; - switch ( trig ) { - case FileAnalysis::TRIGGER_TIMEOUT: - if ( timeout_cnt < 1 ) - FileAnalysis::postpone_timeout(info$file_id); - else - terminate(); - ++timeout_cnt; - break; - case FileAnalysis::TRIGGER_NEW: - info$timeout_interval=2sec; - - print info$file_id, info$seen_bytes, info$missing_bytes; - - if ( info$source == "HTTP" ) - { - for ( act in actions ) - FileAnalysis::add_action(info$file_id, act); - local filename: string = fmt("%s-file%d", info$file_id, cnt); - ++cnt; - FileAnalysis::add_action(info$file_id, - [$act=FileAnalysis::ACTION_EXTRACT, - $extract_filename=filename]); - } - break; - - case FileAnalysis::TRIGGER_BOF_BUFFER: - if ( info?$bof_buffer ) - print info$bof_buffer[0:10]; - break; - - case FileAnalysis::TRIGGER_TYPE: - # not actually printing the values due to libmagic variances - if ( info?$file_type ) - print "file type is set"; - if ( info?$mime_type ) - print "mime type is set"; - break; - - case FileAnalysis::TRIGGER_EOF: - fallthrough; - case FileAnalysis::TRIGGER_DONE: - - print info$file_id, info$seen_bytes, info$missing_bytes; - if ( info?$conns ) - for ( cid in info$conns ) - print cid; - - if ( info?$total_bytes ) - print "total bytes: " + fmt("%s", info$total_bytes); - if ( info?$source ) - print "source: " + info$source; - - for ( act in info$actions ) - switch ( act$act ) { - case FileAnalysis::ACTION_MD5: - if ( info$actions[act]?$md5 ) - print fmt("MD5: %s", info$actions[act]$md5); - break; - case FileAnalysis::ACTION_SHA1: - if ( info$actions[act]?$sha1 ) - print fmt("SHA1: %s", info$actions[act]$sha1); - break; - case FileAnalysis::ACTION_SHA256: - if ( info$actions[act]?$sha256 ) - print fmt("SHA256: %s", info$actions[act]$sha256); - break; - } - break; - } - } - -event bro_init() - { - add actions[[$act=FileAnalysis::ACTION_MD5]]; - add actions[[$act=FileAnalysis::ACTION_SHA1]]; - add actions[[$act=FileAnalysis::ACTION_SHA256]]; + if ( timeout_cnt < 1 ) + FileAnalysis::postpone_timeout(info$file_id); + else + terminate(); + ++timeout_cnt; } diff --git a/testing/btest/scripts/base/frameworks/file-analysis/bifs/remove_action.bro b/testing/btest/scripts/base/frameworks/file-analysis/bifs/remove_action.bro index 24e9e4ca66..a2e97a31a4 100644 --- a/testing/btest/scripts/base/frameworks/file-analysis/bifs/remove_action.bro +++ b/testing/btest/scripts/base/frameworks/file-analysis/bifs/remove_action.bro @@ -1,84 +1,20 @@ -# @TEST-EXEC: bro -r $TRACES/http/get.trace %INPUT >get.out +# @TEST-EXEC: bro -r $TRACES/http/get.trace $SCRIPTS/file-analysis-test.bro %INPUT >get.out # @TEST-EXEC: btest-diff get.out -global actions: set[FileAnalysis::ActionArgs]; +redef test_file_analysis_source = "HTTP"; + +redef test_get_file_name = function(info: FileAnalysis::Info): string + { + return fmt("%s-file", info$file_id); + }; hook FileAnalysis::policy(trig: FileAnalysis::Trigger, info: FileAnalysis::Info) { - local filename: string; - print trig; - - switch ( trig ) { - case FileAnalysis::TRIGGER_NEW: - - print info$file_id, info$seen_bytes, info$missing_bytes; - - if ( info$source == "HTTP" ) - { - for ( act in actions ) - FileAnalysis::add_action(info$file_id, act); - filename = fmt("%s-file", info$file_id); - FileAnalysis::add_action(info$file_id, - [$act=FileAnalysis::ACTION_EXTRACT, - $extract_filename=filename]); - } - break; - - case FileAnalysis::TRIGGER_BOF_BUFFER: - if ( info?$bof_buffer ) - print info$bof_buffer[0:10]; - break; - - case FileAnalysis::TRIGGER_TYPE: - for ( act in actions ) - FileAnalysis::remove_action(info$file_id, act); - filename = fmt("%s-file", info$file_id); - FileAnalysis::remove_action(info$file_id, - [$act=FileAnalysis::ACTION_EXTRACT, - $extract_filename=filename]); - # not actually printing the values due to libmagic variances - if ( info?$file_type ) - print "file type is set"; - if ( info?$mime_type ) - print "mime type is set"; - break; - - case FileAnalysis::TRIGGER_EOF: - fallthrough; - case FileAnalysis::TRIGGER_DONE: - - print info$file_id, info$seen_bytes, info$missing_bytes; - if ( info?$conns ) - for ( cid in info$conns ) - print cid; - - if ( info?$total_bytes ) - print "total bytes: " + fmt("%s", info$total_bytes); - if ( info?$source ) - print "source: " + info$source; - - for ( act in info$actions ) - switch ( act$act ) { - case FileAnalysis::ACTION_MD5: - if ( info$actions[act]?$md5 ) - print fmt("MD5: %s", info$actions[act]$md5); - break; - case FileAnalysis::ACTION_SHA1: - if ( info$actions[act]?$sha1 ) - print fmt("SHA1: %s", info$actions[act]$sha1); - break; - case FileAnalysis::ACTION_SHA256: - if ( info$actions[act]?$sha256 ) - print fmt("SHA256: %s", info$actions[act]$sha256); - break; - } - break; - } - } - -event bro_init() - { - add actions[[$act=FileAnalysis::ACTION_MD5]]; - add actions[[$act=FileAnalysis::ACTION_SHA1]]; - add actions[[$act=FileAnalysis::ACTION_SHA256]]; + if ( trig != FileAnalysis::TRIGGER_TYPE ) return; + for ( act in test_file_actions ) + FileAnalysis::remove_action(info$file_id, act); + local filename = test_get_file_name(info); + FileAnalysis::remove_action(info$file_id, + [$act=FileAnalysis::ACTION_EXTRACT, + $extract_filename=filename]); } diff --git a/testing/btest/scripts/base/frameworks/file-analysis/bifs/stop.bro b/testing/btest/scripts/base/frameworks/file-analysis/bifs/stop.bro index 53dc52455b..c12ff08590 100644 --- a/testing/btest/scripts/base/frameworks/file-analysis/bifs/stop.bro +++ b/testing/btest/scripts/base/frameworks/file-analysis/bifs/stop.bro @@ -1,76 +1,9 @@ -# @TEST-EXEC: bro -r $TRACES/http/get.trace %INPUT >get.out +# @TEST-EXEC: bro -r $TRACES/http/get.trace $SCRIPTS/file-analysis-test.bro %INPUT >get.out # @TEST-EXEC: btest-diff get.out # @TEST-EXEC: test ! -s Cx92a0ym5R8-file -global actions: set[FileAnalysis::ActionArgs]; - hook FileAnalysis::policy(trig: FileAnalysis::Trigger, info: FileAnalysis::Info) { - print trig; - - switch ( trig ) { - case FileAnalysis::TRIGGER_NEW: - FileAnalysis::stop(info$file_id); - - print info$file_id, info$seen_bytes, info$missing_bytes; - - if ( info$source == "HTTP" ) - { - for ( act in actions ) - FileAnalysis::add_action(info$file_id, act); - local filename: string = fmt("%s-file", info$file_id); - FileAnalysis::add_action(info$file_id, - [$act=FileAnalysis::ACTION_EXTRACT, - $extract_filename=filename]); - } - break; - - case FileAnalysis::TRIGGER_BOF_BUFFER: - if ( info?$bof_buffer ) - print info$bof_buffer[0:10]; - break; - - case FileAnalysis::TRIGGER_TYPE: - # not actually printing the values due to libmagic variances - if ( info?$file_type ) - print "file type is set"; - if ( info?$mime_type ) - print "mime type is set"; - break; - - case FileAnalysis::TRIGGER_EOF: - fallthrough; - case FileAnalysis::TRIGGER_DONE: - - print info$file_id, info$seen_bytes, info$missing_bytes; - if ( info?$conns ) - for ( cid in info$conns ) - print cid; - - if ( info?$total_bytes ) - print "total bytes: " + fmt("%s", info$total_bytes); - if ( info?$source ) - print "source: " + info$source; - - for ( act in info$actions ) - switch ( act$act ) { - case FileAnalysis::ACTION_MD5: - print fmt("MD5: %s", info$actions[act]$md5); - break; - case FileAnalysis::ACTION_SHA1: - print fmt("SHA1: %s", info$actions[act]$sha1); - break; - case FileAnalysis::ACTION_SHA256: - print fmt("SHA256: %s", info$actions[act]$sha256); - break; - } - break; - } - } - -event bro_init() - { - add actions[[$act=FileAnalysis::ACTION_MD5]]; - add actions[[$act=FileAnalysis::ACTION_SHA1]]; - add actions[[$act=FileAnalysis::ACTION_SHA256]]; + if ( trig != FileAnalysis::TRIGGER_NEW ) return; + FileAnalysis::stop(info$file_id); } diff --git a/testing/btest/scripts/base/frameworks/file-analysis/ftp.bro b/testing/btest/scripts/base/frameworks/file-analysis/ftp.bro index 38665c66a2..9c2134bfa8 100644 --- a/testing/btest/scripts/base/frameworks/file-analysis/ftp.bro +++ b/testing/btest/scripts/base/frameworks/file-analysis/ftp.bro @@ -1,69 +1,10 @@ -# @TEST-EXEC: bro -r $TRACES/ftp/retr.trace %INPUT >out +# @TEST-EXEC: bro -r $TRACES/ftp/retr.trace $SCRIPTS/file-analysis-test.bro %INPUT >out # @TEST-EXEC: btest-diff out # @TEST-EXEC: btest-diff thefile -global actions: set[FileAnalysis::ActionArgs]; +redef test_file_analysis_source = "FTP_DATA"; -hook FileAnalysis::policy(trig: FileAnalysis::Trigger, info: FileAnalysis::Info) +redef test_get_file_name = function(info: FileAnalysis::Info): string { - print trig; - - switch ( trig ) { - case FileAnalysis::TRIGGER_NEW: - print info$file_id, info$seen_bytes, info$missing_bytes; - - if ( info$source == "FTP_DATA" ) - { - for ( act in actions ) - FileAnalysis::add_action(info$file_id, act); - } - break; - - case FileAnalysis::TRIGGER_BOF_BUFFER: - if ( info?$bof_buffer ) - print info$bof_buffer[0:10]; - break; - - case FileAnalysis::TRIGGER_TYPE: - # not actually printing the values due to libmagic variances - if ( info?$file_type ) - print "file type is set"; - if ( info?$mime_type ) - print "mime type is set"; - break; - - case FileAnalysis::TRIGGER_EOF: - print info$file_id, info$seen_bytes, info$missing_bytes; - if ( info?$conns ) - for ( cid in info$conns ) - print cid; - - if ( info?$total_bytes ) - print "total bytes: " + fmt("%s", info$total_bytes); - if ( info?$source ) - print "source: " + info$source; - - for ( act in info$actions ) - switch ( act$act ) { - case FileAnalysis::ACTION_MD5: - print fmt("MD5: %s", info$actions[act]$md5); - break; - case FileAnalysis::ACTION_SHA1: - print fmt("SHA1: %s", info$actions[act]$sha1); - break; - case FileAnalysis::ACTION_SHA256: - print fmt("SHA256: %s", info$actions[act]$sha256); - break; - } - break; - } - } - -event bro_init() - { - add actions[[$act=FileAnalysis::ACTION_EXTRACT, - $extract_filename="thefile"]]; - add actions[[$act=FileAnalysis::ACTION_MD5]]; - add actions[[$act=FileAnalysis::ACTION_SHA1]]; - add actions[[$act=FileAnalysis::ACTION_SHA256]]; - } + return "thefile"; + }; diff --git a/testing/btest/scripts/base/frameworks/file-analysis/http/get.bro b/testing/btest/scripts/base/frameworks/file-analysis/http/get.bro index 38d4c444da..e9439bd3b8 100644 --- a/testing/btest/scripts/base/frameworks/file-analysis/http/get.bro +++ b/testing/btest/scripts/base/frameworks/file-analysis/http/get.bro @@ -1,77 +1,13 @@ -# @TEST-EXEC: bro -r $TRACES/http/get.trace %INPUT >get.out -# @TEST-EXEC: bro -r $TRACES/http/get-gzip.trace %INPUT >get-gzip.out +# @TEST-EXEC: bro -r $TRACES/http/get.trace $SCRIPTS/file-analysis-test.bro %INPUT >get.out +# @TEST-EXEC: bro -r $TRACES/http/get-gzip.trace $SCRIPTS/file-analysis-test.bro %INPUT >get-gzip.out # @TEST-EXEC: btest-diff get.out # @TEST-EXEC: btest-diff get-gzip.out # @TEST-EXEC: btest-diff Cx92a0ym5R8-file # @TEST-EXEC: btest-diff kg59rqyYxN-file -global actions: set[FileAnalysis::ActionArgs]; +redef test_file_analysis_source = "HTTP"; -hook FileAnalysis::policy(trig: FileAnalysis::Trigger, info: FileAnalysis::Info) +redef test_get_file_name = function(info: FileAnalysis::Info): string { - print trig; - - switch ( trig ) { - case FileAnalysis::TRIGGER_NEW: - print info$file_id, info$seen_bytes, info$missing_bytes; - - if ( info$source == "HTTP" ) - { - for ( act in actions ) - FileAnalysis::add_action(info$file_id, act); - local filename: string = fmt("%s-file", info$file_id); - FileAnalysis::add_action(info$file_id, - [$act=FileAnalysis::ACTION_EXTRACT, - $extract_filename=filename]); - } - break; - - case FileAnalysis::TRIGGER_BOF_BUFFER: - if ( info?$bof_buffer ) - print info$bof_buffer[0:10]; - break; - - case FileAnalysis::TRIGGER_TYPE: - # not actually printing the values due to libmagic variances - if ( info?$file_type ) - print "file type is set"; - if ( info?$mime_type ) - print "mime type is set"; - break; - - case FileAnalysis::TRIGGER_EOF: - fallthrough; - case FileAnalysis::TRIGGER_DONE: - - print info$file_id, info$seen_bytes, info$missing_bytes; - if ( info?$conns ) - for ( cid in info$conns ) - print cid; - - if ( info?$total_bytes ) - print "total bytes: " + fmt("%s", info$total_bytes); - if ( info?$source ) - print "source: " + info$source; - - for ( act in info$actions ) - switch ( act$act ) { - case FileAnalysis::ACTION_MD5: - print fmt("MD5: %s", info$actions[act]$md5); - break; - case FileAnalysis::ACTION_SHA1: - print fmt("SHA1: %s", info$actions[act]$sha1); - break; - case FileAnalysis::ACTION_SHA256: - print fmt("SHA256: %s", info$actions[act]$sha256); - break; - } - break; - } - } - -event bro_init() - { - add actions[[$act=FileAnalysis::ACTION_MD5]]; - add actions[[$act=FileAnalysis::ACTION_SHA1]]; - add actions[[$act=FileAnalysis::ACTION_SHA256]]; - } + return fmt("%s-file", info$file_id); + }; diff --git a/testing/btest/scripts/base/frameworks/file-analysis/http/partial-content.bro b/testing/btest/scripts/base/frameworks/file-analysis/http/partial-content.bro index f5a8ac11d0..9361184881 100644 --- a/testing/btest/scripts/base/frameworks/file-analysis/http/partial-content.bro +++ b/testing/btest/scripts/base/frameworks/file-analysis/http/partial-content.bro @@ -1,90 +1,25 @@ -# @TEST-EXEC: bro -r $TRACES/http/206_example_a.pcap %INPUT >a.out +# @TEST-EXEC: bro -r $TRACES/http/206_example_a.pcap $SCRIPTS/file-analysis-test.bro %INPUT >a.out # @TEST-EXEC: btest-diff a.out # @TEST-EXEC: wc -c 7gZBKVUgy4l-file0 >a.size # @TEST-EXEC: btest-diff a.size -# @TEST-EXEC: bro -r $TRACES/http/206_example_b.pcap %INPUT >b.out +# @TEST-EXEC: bro -r $TRACES/http/206_example_b.pcap $SCRIPTS/file-analysis-test.bro %INPUT >b.out # @TEST-EXEC: btest-diff b.out # @TEST-EXEC: wc -c oDwT1BbzjM1-file0 >b.size # @TEST-EXEC: btest-diff b.size -# @TEST-EXEC: bro -r $TRACES/http/206_example_c.pcap %INPUT >c.out +# @TEST-EXEC: bro -r $TRACES/http/206_example_c.pcap $SCRIPTS/file-analysis-test.bro %INPUT >c.out # @TEST-EXEC: btest-diff c.out # @TEST-EXEC: wc -c uHS14uhRKGe-file0 >c.size # @TEST-EXEC: btest-diff c.size -global actions: set[FileAnalysis::ActionArgs]; global cnt: count = 0; -hook FileAnalysis::policy(trig: FileAnalysis::Trigger, info: FileAnalysis::Info) +redef test_file_analysis_source = "HTTP"; + +redef test_get_file_name = function(info: FileAnalysis::Info): string { - print trig; - - switch ( trig ) { - case FileAnalysis::TRIGGER_NEW: - print info$file_id, info$seen_bytes, info$missing_bytes; - - if ( info$source == "HTTP" ) - { - for ( act in actions ) - FileAnalysis::add_action(info$file_id, act); - local filename: string = fmt("%s-file%d", info$file_id, cnt); - ++cnt; - FileAnalysis::add_action(info$file_id, - [$act=FileAnalysis::ACTION_EXTRACT, - $extract_filename=filename]); - } - break; - - case FileAnalysis::TRIGGER_BOF_BUFFER: - if ( info?$bof_buffer ) - print info$bof_buffer[0:10]; - break; - - case FileAnalysis::TRIGGER_TYPE: - # not actually printing the values due to libmagic variances - if ( info?$file_type ) - print "file type is set"; - if ( info?$mime_type ) - print "mime type is set"; - break; - - case FileAnalysis::TRIGGER_EOF: - fallthrough; - case FileAnalysis::TRIGGER_DONE: - - print info$file_id, info$seen_bytes, info$missing_bytes; - if ( info?$conns ) - for ( cid in info$conns ) - print cid; - - if ( info?$total_bytes ) - print "total bytes: " + fmt("%s", info$total_bytes); - if ( info?$source ) - print "source: " + info$source; - - for ( act in info$actions ) - switch ( act$act ) { - case FileAnalysis::ACTION_MD5: - if ( info$actions[act]?$md5 ) - print fmt("MD5: %s", info$actions[act]$md5); - break; - case FileAnalysis::ACTION_SHA1: - if ( info$actions[act]?$sha1 ) - print fmt("SHA1: %s", info$actions[act]$sha1); - break; - case FileAnalysis::ACTION_SHA256: - if ( info$actions[act]?$sha256 ) - print fmt("SHA256: %s", info$actions[act]$sha256); - break; - } - break; - } - } - -event bro_init() - { - add actions[[$act=FileAnalysis::ACTION_MD5]]; - add actions[[$act=FileAnalysis::ACTION_SHA1]]; - add actions[[$act=FileAnalysis::ACTION_SHA256]]; - } + local rval: string = fmt("%s-file%d", info$file_id, cnt); + ++cnt; + return rval; + }; diff --git a/testing/btest/scripts/base/frameworks/file-analysis/http/pipeline.bro b/testing/btest/scripts/base/frameworks/file-analysis/http/pipeline.bro index 010d99c33d..1bbfdb6b13 100644 --- a/testing/btest/scripts/base/frameworks/file-analysis/http/pipeline.bro +++ b/testing/btest/scripts/base/frameworks/file-analysis/http/pipeline.bro @@ -1,4 +1,4 @@ -# @TEST-EXEC: bro -r $TRACES/http/pipelined-requests.trace %INPUT >out +# @TEST-EXEC: bro -r $TRACES/http/pipelined-requests.trace $SCRIPTS/file-analysis-test.bro %INPUT >out # @TEST-EXEC: btest-diff out # @TEST-EXEC: btest-diff aFQKI8SPOL2-file # @TEST-EXEC: btest-diff CCU3vUEr06l-file @@ -6,73 +6,9 @@ # @TEST-EXEC: btest-diff a1Zu1fteVEf-file # @TEST-EXEC: btest-diff xXlF7wFdsR-file -global actions: set[FileAnalysis::ActionArgs]; +redef test_file_analysis_source = "HTTP"; -hook FileAnalysis::policy(trig: FileAnalysis::Trigger, info: FileAnalysis::Info) +redef test_get_file_name = function(info: FileAnalysis::Info): string { - print trig; - - switch ( trig ) { - case FileAnalysis::TRIGGER_NEW: - print info$file_id, info$seen_bytes, info$missing_bytes; - - if ( info$source == "HTTP" ) - { - for ( act in actions ) - FileAnalysis::add_action(info$file_id, act); - local filename: string = fmt("%s-file", info$file_id); - FileAnalysis::add_action(info$file_id, - [$act=FileAnalysis::ACTION_EXTRACT, - $extract_filename=filename]); - } - break; - - case FileAnalysis::TRIGGER_BOF_BUFFER: - if ( info?$bof_buffer ) - print info$bof_buffer[0:10]; - break; - - case FileAnalysis::TRIGGER_TYPE: - # not actually printing the values due to libmagic variances - if ( info?$file_type ) - print "file type is set"; - if ( info?$mime_type ) - print "mime type is set"; - break; - - case FileAnalysis::TRIGGER_EOF: - fallthrough; - case FileAnalysis::TRIGGER_DONE: - - print info$file_id, info$seen_bytes, info$missing_bytes; - if ( info?$conns ) - for ( cid in info$conns ) - print cid; - - if ( info?$total_bytes ) - print "total bytes: " + fmt("%s", info$total_bytes); - if ( info?$source ) - print "source: " + info$source; - - for ( act in info$actions ) - switch ( act$act ) { - case FileAnalysis::ACTION_MD5: - print fmt("MD5: %s", info$actions[act]$md5); - break; - case FileAnalysis::ACTION_SHA1: - print fmt("SHA1: %s", info$actions[act]$sha1); - break; - case FileAnalysis::ACTION_SHA256: - print fmt("SHA256: %s", info$actions[act]$sha256); - break; - } - break; - } - } - -event bro_init() - { - add actions[[$act=FileAnalysis::ACTION_MD5]]; - add actions[[$act=FileAnalysis::ACTION_SHA1]]; - add actions[[$act=FileAnalysis::ACTION_SHA256]]; - } + return fmt("%s-file", info$file_id); + }; diff --git a/testing/btest/scripts/base/frameworks/file-analysis/http/post.bro b/testing/btest/scripts/base/frameworks/file-analysis/http/post.bro index a31f7129b8..55fd1ed9c0 100644 --- a/testing/btest/scripts/base/frameworks/file-analysis/http/post.bro +++ b/testing/btest/scripts/base/frameworks/file-analysis/http/post.bro @@ -1,75 +1,11 @@ -# @TEST-EXEC: bro -r $TRACES/http/post.trace %INPUT >out +# @TEST-EXEC: bro -r $TRACES/http/post.trace $SCRIPTS/file-analysis-test.bro %INPUT >out # @TEST-EXEC: btest-diff out # @TEST-EXEC: btest-diff v5HLI7MxPQh-file # @TEST-EXEC: btest-diff PZS1XGHkIf1-file -global actions: set[FileAnalysis::ActionArgs]; +redef test_file_analysis_source = "HTTP"; -hook FileAnalysis::policy(trig: FileAnalysis::Trigger, info: FileAnalysis::Info) +redef test_get_file_name = function(info: FileAnalysis::Info): string { - print trig; - - switch ( trig ) { - case FileAnalysis::TRIGGER_NEW: - print info$file_id, info$seen_bytes, info$missing_bytes; - - if ( info$source == "HTTP" ) - { - for ( act in actions ) - FileAnalysis::add_action(info$file_id, act); - local filename: string = fmt("%s-file", info$file_id); - FileAnalysis::add_action(info$file_id, - [$act=FileAnalysis::ACTION_EXTRACT, - $extract_filename=filename]); - } - break; - - case FileAnalysis::TRIGGER_BOF_BUFFER: - if ( info?$bof_buffer ) - print info$bof_buffer[0:10]; - break; - - case FileAnalysis::TRIGGER_TYPE: - # not actually printing the values due to libmagic variances - if ( info?$file_type ) - print "file type is set"; - if ( info?$mime_type ) - print "mime type is set"; - break; - - case FileAnalysis::TRIGGER_EOF: - fallthrough; - case FileAnalysis::TRIGGER_DONE: - - print info$file_id, info$seen_bytes, info$missing_bytes; - if ( info?$conns ) - for ( cid in info$conns ) - print cid; - - if ( info?$total_bytes ) - print "total bytes: " + fmt("%s", info$total_bytes); - if ( info?$source ) - print "source: " + info$source; - - for ( act in info$actions ) - switch ( act$act ) { - case FileAnalysis::ACTION_MD5: - print fmt("MD5: %s", info$actions[act]$md5); - break; - case FileAnalysis::ACTION_SHA1: - print fmt("SHA1: %s", info$actions[act]$sha1); - break; - case FileAnalysis::ACTION_SHA256: - print fmt("SHA256: %s", info$actions[act]$sha256); - break; - } - break; - } - } - -event bro_init() - { - add actions[[$act=FileAnalysis::ACTION_MD5]]; - add actions[[$act=FileAnalysis::ACTION_SHA1]]; - add actions[[$act=FileAnalysis::ACTION_SHA256]]; - } + return fmt("%s-file", info$file_id); + }; diff --git a/testing/btest/scripts/base/frameworks/file-analysis/input/basic.bro b/testing/btest/scripts/base/frameworks/file-analysis/input/basic.bro index 568a2a47da..3a9b529ab0 100644 --- a/testing/btest/scripts/base/frameworks/file-analysis/input/basic.bro +++ b/testing/btest/scripts/base/frameworks/file-analysis/input/basic.bro @@ -1,10 +1,15 @@ -# @TEST-EXEC: btest-bg-run bro bro -b %INPUT +# @TEST-EXEC: btest-bg-run bro bro -b $SCRIPTS/file-analysis-test.bro %INPUT # @TEST-EXEC: btest-bg-wait 8 # @TEST-EXEC: btest-diff bro/.stdout # @TEST-EXEC: diff -q bro/nYgPNGLrZf9-file input.log redef exit_only_after_terminate = T; +redef test_get_file_name = function(info: FileAnalysis::Info): string + { + return fmt("%s-file", info$file_id); + }; + @TEST-START-FILE input.log #separator \x09 #path ssh @@ -37,79 +42,10 @@ event bro_init() Input::remove("input"); } -global actions: set[FileAnalysis::ActionArgs]; - hook FileAnalysis::policy(trig: FileAnalysis::Trigger, info: FileAnalysis::Info) + &priority=-10 { - local filename: string; - print trig; - - switch ( trig ) { - case FileAnalysis::TRIGGER_NEW: - - print info$file_id, info$seen_bytes, info$missing_bytes; - - for ( act in actions ) - FileAnalysis::add_action(info$file_id, act); - filename = fmt("%s-file", info$file_id); - FileAnalysis::add_action(info$file_id, - [$act=FileAnalysis::ACTION_EXTRACT, - $extract_filename=filename]); - break; - - case FileAnalysis::TRIGGER_BOF_BUFFER: - if ( info?$bof_buffer ) - print info$bof_buffer[0:10]; - break; - - case FileAnalysis::TRIGGER_TYPE: - for ( act in actions ) - FileAnalysis::remove_action(info$file_id, act); - filename = fmt("%s-file", info$file_id); - FileAnalysis::remove_action(info$file_id, - [$act=FileAnalysis::ACTION_EXTRACT, - $extract_filename=filename]); - # not actually printing the values due to libmagic variances - if ( info?$file_type ) - print "file type is set"; - if ( info?$mime_type ) - print "mime type is set"; - break; - - case FileAnalysis::TRIGGER_EOF: - fallthrough; - case FileAnalysis::TRIGGER_DONE: - - print info$file_id, info$seen_bytes, info$missing_bytes; - - if ( info?$total_bytes ) - print "total bytes: " + fmt("%s", info$total_bytes); - if ( info?$source ) - print "source: " + info$source; - - for ( act in info$actions ) - switch ( act$act ) { - case FileAnalysis::ACTION_MD5: - if ( info$actions[act]?$md5 ) - print fmt("MD5: %s", info$actions[act]$md5); - break; - case FileAnalysis::ACTION_SHA1: - if ( info$actions[act]?$sha1 ) - print fmt("SHA1: %s", info$actions[act]$sha1); - break; - case FileAnalysis::ACTION_SHA256: - if ( info$actions[act]?$sha256 ) - print fmt("SHA256: %s", info$actions[act]$sha256); - break; - } - terminate(); - break; - } + if ( trig != FileAnalysis::TRIGGER_EOF ) return; + terminate(); } -event bro_init() - { - add actions[[$act=FileAnalysis::ACTION_MD5]]; - add actions[[$act=FileAnalysis::ACTION_SHA1]]; - add actions[[$act=FileAnalysis::ACTION_SHA256]]; - } diff --git a/testing/btest/scripts/base/frameworks/file-analysis/irc.bro b/testing/btest/scripts/base/frameworks/file-analysis/irc.bro index e6d2fc29ac..69fd2a93c9 100644 --- a/testing/btest/scripts/base/frameworks/file-analysis/irc.bro +++ b/testing/btest/scripts/base/frameworks/file-analysis/irc.bro @@ -1,69 +1,10 @@ -# @TEST-EXEC: bro -r $TRACES/irc-dcc-send.trace %INPUT >out +# @TEST-EXEC: bro -r $TRACES/irc-dcc-send.trace $SCRIPTS/file-analysis-test.bro %INPUT >out # @TEST-EXEC: btest-diff out # @TEST-EXEC: btest-diff thefile -global actions: set[FileAnalysis::ActionArgs]; +redef test_file_analysis_source = "IRC_DATA"; -hook FileAnalysis::policy(trig: FileAnalysis::Trigger, info: FileAnalysis::Info) +redef test_get_file_name = function(info: FileAnalysis::Info): string { - print trig; - - switch ( trig ) { - case FileAnalysis::TRIGGER_NEW: - print info$file_id, info$seen_bytes, info$missing_bytes; - - if ( info$source == "IRC_DATA" ) - { - for ( act in actions ) - FileAnalysis::add_action(info$file_id, act); - } - break; - - case FileAnalysis::TRIGGER_BOF_BUFFER: - if ( info?$bof_buffer ) - print info$bof_buffer[0:10]; - break; - - case FileAnalysis::TRIGGER_TYPE: - # not actually printing the values due to libmagic variances - if ( info?$file_type ) - print "file type is set"; - if ( info?$mime_type ) - print "mime type is set"; - break; - - case FileAnalysis::TRIGGER_EOF: - print info$file_id, info$seen_bytes, info$missing_bytes; - if ( info?$conns ) - for ( cid in info$conns ) - print cid; - - if ( info?$total_bytes ) - print "total bytes: " + fmt("%s", info$total_bytes); - if ( info?$source ) - print "source: " + info$source; - - for ( act in info$actions ) - switch ( act$act ) { - case FileAnalysis::ACTION_MD5: - print fmt("MD5: %s", info$actions[act]$md5); - break; - case FileAnalysis::ACTION_SHA1: - print fmt("SHA1: %s", info$actions[act]$sha1); - break; - case FileAnalysis::ACTION_SHA256: - print fmt("SHA256: %s", info$actions[act]$sha256); - break; - } - break; - } - } - -event bro_init() - { - add actions[[$act=FileAnalysis::ACTION_EXTRACT, - $extract_filename="thefile"]]; - add actions[[$act=FileAnalysis::ACTION_MD5]]; - add actions[[$act=FileAnalysis::ACTION_SHA1]]; - add actions[[$act=FileAnalysis::ACTION_SHA256]]; - } + return "thefile"; + }; diff --git a/testing/btest/scripts/base/frameworks/file-analysis/logging.bro b/testing/btest/scripts/base/frameworks/file-analysis/logging.bro index 8f48ccb38a..275fc20ea5 100644 --- a/testing/btest/scripts/base/frameworks/file-analysis/logging.bro +++ b/testing/btest/scripts/base/frameworks/file-analysis/logging.bro @@ -1,100 +1,9 @@ -# @TEST-EXEC: bro -r $TRACES/http/get.trace %INPUT +# @TEST-EXEC: bro -r $TRACES/http/get.trace $SCRIPTS/file-analysis-test.bro %INPUT # @TEST-EXEC: btest-diff file_analysis.log -global actions: set[FileAnalysis::ActionArgs]; +redef test_file_analysis_source = "HTTP"; -event file_chunk(info: FileAnalysis::Info, data: string, off: count) - { - print "file_chunk", info$file_id, |data|, off, data; - } - -event file_stream(info: FileAnalysis::Info, data: string) - { - print "file_stream", info$file_id, |data|, data; - } - -hook FileAnalysis::policy(trig: FileAnalysis::Trigger, info: FileAnalysis::Info) - { - print trig; - - switch ( trig ) { - case FileAnalysis::TRIGGER_NEW: - print info$file_id, info$seen_bytes, info$missing_bytes; - - if ( info$source == "HTTP" ) - { - for ( act in actions ) - FileAnalysis::add_action(info$file_id, act); - local filename: string = fmt("%s-file", info$file_id); - FileAnalysis::add_action(info$file_id, - [$act=FileAnalysis::ACTION_EXTRACT, - $extract_filename=filename]); - FileAnalysis::add_action(info$file_id, - [$act=FileAnalysis::ACTION_DATA_EVENT, - $chunk_event=file_chunk, - $stream_event=file_stream]); - - } - break; - - case FileAnalysis::TRIGGER_BOF_BUFFER: - if ( info?$bof_buffer ) - print info$bof_buffer[0:10]; - break; - - case FileAnalysis::TRIGGER_TYPE: - # not actually printing the values due to libmagic variances - if ( info?$file_type ) - print "file type is set"; - if ( info?$mime_type ) - print "mime type is set"; - break; - - case FileAnalysis::TRIGGER_EOF: - fallthrough; - case FileAnalysis::TRIGGER_DONE: - - print info$file_id, info$seen_bytes, info$missing_bytes; - if ( info?$conns ) - for ( cid in info$conns ) - print cid; - - if ( info?$total_bytes ) - print "total bytes: " + fmt("%s", info$total_bytes); - if ( info?$source ) - print "source: " + info$source; - - for ( act in info$actions ) - switch ( act$act ) { - case FileAnalysis::ACTION_MD5: - print fmt("MD5: %s", info$actions[act]$md5); - break; - case FileAnalysis::ACTION_SHA1: - print fmt("SHA1: %s", info$actions[act]$sha1); - break; - case FileAnalysis::ACTION_SHA256: - print fmt("SHA256: %s", info$actions[act]$sha256); - break; - } - break; - } - } - -hook FileAnalysis::policy(trig: FileAnalysis::Trigger, info: FileAnalysis::Info) - &priority=-5 - { - if ( trig != FileAnalysis::TRIGGER_TYPE ) return; - - # avoids libmagic variances across systems - if ( info?$mime_type ) - info$mime_type = "set"; - if ( info?$file_type ) - info$file_type = "set"; - } - -event bro_init() - { - add actions[[$act=FileAnalysis::ACTION_MD5]]; - add actions[[$act=FileAnalysis::ACTION_SHA1]]; - add actions[[$act=FileAnalysis::ACTION_SHA256]]; - } +redef test_get_file_name = function(info: FileAnalysis::Info): string + { + return fmt("%s-file", info$file_id); + }; diff --git a/testing/btest/scripts/base/frameworks/file-analysis/smtp.bro b/testing/btest/scripts/base/frameworks/file-analysis/smtp.bro index 57a17a5339..64c5e9f0d7 100644 --- a/testing/btest/scripts/base/frameworks/file-analysis/smtp.bro +++ b/testing/btest/scripts/base/frameworks/file-analysis/smtp.bro @@ -1,75 +1,16 @@ -# @TEST-EXEC: bro -r $TRACES/smtp.trace %INPUT >out +# @TEST-EXEC: bro -r $TRACES/smtp.trace $SCRIPTS/file-analysis-test.bro %INPUT >out # @TEST-EXEC: btest-diff out # @TEST-EXEC: btest-diff thefile0 # @TEST-EXEC: btest-diff thefile1 # @TEST-EXEC: btest-diff thefile2 -global actions: set[FileAnalysis::ActionArgs]; -global cnt: count = 0; +redef test_file_analysis_source = "SMTP"; -hook FileAnalysis::policy(trig: FileAnalysis::Trigger, info: FileAnalysis::Info) +global mycnt: count = 0; + +redef test_get_file_name = function(info: FileAnalysis::Info): string { - print trig; - - switch ( trig ) { - case FileAnalysis::TRIGGER_NEW: - print info$file_id, info$seen_bytes, info$missing_bytes; - - if ( info$source == "SMTP" ) - { - for ( act in actions ) - FileAnalysis::add_action(info$file_id, act); - local filename: string = fmt("thefile%d", cnt); - ++cnt; - FileAnalysis::add_action(info$file_id, - [$act=FileAnalysis::ACTION_EXTRACT, - $extract_filename=filename]); - } - break; - - case FileAnalysis::TRIGGER_BOF_BUFFER: - if ( info?$bof_buffer ) - print info$bof_buffer[0:10]; - break; - - case FileAnalysis::TRIGGER_TYPE: - # not actually printing the values due to libmagic variances - if ( info?$file_type ) - print "file type is set"; - if ( info?$mime_type ) - print "mime type is set"; - break; - - case FileAnalysis::TRIGGER_EOF: - print info$file_id, info$seen_bytes, info$missing_bytes; - if ( info?$conns ) - for ( cid in info$conns ) - print cid; - - if ( info?$total_bytes ) - print "total bytes: " + fmt("%s", info$total_bytes); - if ( info?$source ) - print "source: " + info$source; - - for ( act in info$actions ) - switch ( act$act ) { - case FileAnalysis::ACTION_MD5: - print fmt("MD5: %s", info$actions[act]$md5); - break; - case FileAnalysis::ACTION_SHA1: - print fmt("SHA1: %s", info$actions[act]$sha1); - break; - case FileAnalysis::ACTION_SHA256: - print fmt("SHA256: %s", info$actions[act]$sha256); - break; - } - break; - } - } - -event bro_init() - { - add actions[[$act=FileAnalysis::ACTION_MD5]]; - add actions[[$act=FileAnalysis::ACTION_SHA1]]; - add actions[[$act=FileAnalysis::ACTION_SHA256]]; - } + local rval: string = fmt("thefile%d", mycnt); + ++mycnt; + return rval; + }; diff --git a/testing/scripts/file-analysis-test.bro b/testing/scripts/file-analysis-test.bro new file mode 100644 index 0000000000..2e1d107ffb --- /dev/null +++ b/testing/scripts/file-analysis-test.bro @@ -0,0 +1,109 @@ + +global test_file_analysis_source: string = "" &redef; + +global test_file_actions: set[FileAnalysis::ActionArgs]; + +global test_get_file_name: function(info: FileAnalysis::Info): string = + function(info: FileAnalysis::Info): string { return ""; } &redef; + +global test_print_file_data_events: bool = F &redef; + +event file_chunk(info: FileAnalysis::Info, data: string, off: count) + { + if ( test_print_file_data_events ) + print "file_chunk", info$file_id, |data|, off, data; + } + +event file_stream(info: FileAnalysis::Info, data: string) + { + if ( test_print_file_data_events ) + print "file_stream", info$file_id, |data|, data; + } + +hook FileAnalysis::policy(trig: FileAnalysis::Trigger, info: FileAnalysis::Info) + { + print trig; + + switch ( trig ) { + case FileAnalysis::TRIGGER_NEW: + print info$file_id, info$seen_bytes, info$missing_bytes; + + if ( test_file_analysis_source == "" || + info$source == test_file_analysis_source ) + { + for ( act in test_file_actions ) + FileAnalysis::add_action(info$file_id, act); + + local filename: string = test_get_file_name(info); + if ( filename != "" ) + FileAnalysis::add_action(info$file_id, + [$act=FileAnalysis::ACTION_EXTRACT, + $extract_filename=filename]); + FileAnalysis::add_action(info$file_id, + [$act=FileAnalysis::ACTION_DATA_EVENT, + $chunk_event=file_chunk, + $stream_event=file_stream]); + + } + break; + + case FileAnalysis::TRIGGER_BOF_BUFFER: + if ( info?$bof_buffer ) + print info$bof_buffer[0:10]; + break; + + case FileAnalysis::TRIGGER_TYPE: + # not actually printing the values due to libmagic variances + if ( info?$file_type ) + print "file type is set"; + if ( info?$mime_type ) + print "mime type is set"; + break; + + case FileAnalysis::TRIGGER_EOF: + fallthrough; + case FileAnalysis::TRIGGER_DONE: + print info$file_id, info$seen_bytes, info$missing_bytes; + if ( info?$conns ) + for ( cid in info$conns ) + print cid; + + if ( info?$total_bytes ) + print "total bytes: " + fmt("%s", info$total_bytes); + if ( info?$source ) + print "source: " + info$source; + + for ( act in info$actions ) + switch ( act$act ) { + case FileAnalysis::ACTION_MD5: + print fmt("MD5: %s", info$actions[act]$md5); + break; + case FileAnalysis::ACTION_SHA1: + print fmt("SHA1: %s", info$actions[act]$sha1); + break; + case FileAnalysis::ACTION_SHA256: + print fmt("SHA256: %s", info$actions[act]$sha256); + break; + } + break; + } + } + +hook FileAnalysis::policy(trig: FileAnalysis::Trigger, info: FileAnalysis::Info) + &priority=-5 + { + if ( trig != FileAnalysis::TRIGGER_TYPE ) return; + + # avoids libmagic variances across systems + if ( info?$mime_type ) + info$mime_type = "set"; + if ( info?$file_type ) + info$file_type = "set"; + } + +event bro_init() + { + add test_file_actions[[$act=FileAnalysis::ACTION_MD5]]; + add test_file_actions[[$act=FileAnalysis::ACTION_SHA1]]; + add test_file_actions[[$act=FileAnalysis::ACTION_SHA256]]; + } From 9a88dc500af2888e20abd1656fa3a3fe9fd6a973 Mon Sep 17 00:00:00 2001 From: Yun Zheng Hu Date: Sat, 16 Mar 2013 17:09:29 +0100 Subject: [PATCH 61/71] Added reverse() function to strings.bif. Closes #969. --- CHANGES | 4 ++++ VERSION | 2 +- src/strings.bif | 13 +++++++++++++ testing/btest/Baseline/bifs.reverse/out | 7 +++++++ testing/btest/bifs/reverse.bro | 19 +++++++++++++++++++ 5 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 testing/btest/Baseline/bifs.reverse/out create mode 100644 testing/btest/bifs/reverse.bro diff --git a/CHANGES b/CHANGES index c1168d7d33..6e4b211418 100644 --- a/CHANGES +++ b/CHANGES @@ -1,4 +1,8 @@ +2.1-386 | 2013-03-22 12:41:50 -0700 + + * Added reverse() function to strings.bif. (Yun Zheng Hu) + 2.1-384 | 2013-03-22 12:10:14 -0700 * Fix record constructors in table initializer indices. Addresses diff --git a/VERSION b/VERSION index 79ede91079..95253817be 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.1-384 +2.1-386 diff --git a/src/strings.bif b/src/strings.bif index 6c1ca15c5a..e19e970aa0 100644 --- a/src/strings.bif +++ b/src/strings.bif @@ -1122,3 +1122,16 @@ function hexdump%(data_str: string%) : string return result; %} + +## Returns a reversed copy of the string +## +## str: The string to reverse. +## +## Returns: A reversed copy of *str* +## +function reverse%(str: string%) : string + %{ + string s = string((const char*)str->Bytes(), str->Len()); + reverse(s.begin(), s.end()); + return new StringVal(s.length(), (const char*)s.c_str()); + %} diff --git a/testing/btest/Baseline/bifs.reverse/out b/testing/btest/Baseline/bifs.reverse/out new file mode 100644 index 0000000000..97b53df561 --- /dev/null +++ b/testing/btest/Baseline/bifs.reverse/out @@ -0,0 +1,7 @@ +!dlrow olleh +hello world! +risetovotesir +ff00 +00ff +3039 +A diff --git a/testing/btest/bifs/reverse.bro b/testing/btest/bifs/reverse.bro new file mode 100644 index 0000000000..bbb386bb80 --- /dev/null +++ b/testing/btest/bifs/reverse.bro @@ -0,0 +1,19 @@ +# +# @TEST-EXEC: bro -b %INPUT >out +# @TEST-EXEC: btest-diff out + +event bro_init() + { + local s1 = "hello world!"; + local s2 = "rise to vote sir"; + local s3 = "\xff\x00"; + local s4 = "\xff\x39\x30\xff"; + + print reverse(s1); + print reverse(reverse(s1)); + print subst_string(reverse(s2), " ", ""); + print bytestring_to_hexstr(s3); + print bytestring_to_hexstr(reverse(s3)); + print bytestring_to_hexstr(reverse(sub_bytes(s4, 2, 2))); + print reverse("A"); + } From 84a0c2fdac496ab73b84cb4d5d42187a35cc4721 Mon Sep 17 00:00:00 2001 From: Jon Siwek Date: Mon, 25 Mar 2013 15:37:58 -0500 Subject: [PATCH 62/71] FileAnalysis: file handles now set from events. Versus from synchronous function calls, which doesn't work well because the function call can see a script-layer state that doesn't reflect the state as it will be in terms of the event/network stream. --- .../base/frameworks/file-analysis/main.bro | 14 +- scripts/base/init-bare.bro | 28 -- scripts/base/protocols/ftp/file-analysis.bro | 26 +- scripts/base/protocols/http/file-analysis.bro | 40 ++- scripts/base/protocols/irc/file-analysis.bro | 26 +- scripts/base/protocols/smtp/file-analysis.bro | 32 ++- src/Event.cc | 3 + src/FileAnalyzer.cc | 4 +- src/HTTP.cc | 10 +- src/MIME.cc | 4 +- src/bro.bif | 17 ++ src/const.bif | 2 - src/event.bif | 16 ++ src/file_analysis/Manager.cc | 256 ++++++------------ src/file_analysis/Manager.h | 68 +++-- src/file_analysis/PendingFile.cc | 58 ++-- src/file_analysis/PendingFile.h | 38 ++- .../bro..stdout | 4 +- .../file_analysis.log | 6 +- .../out | 4 +- .../http.log | 98 +++---- 21 files changed, 362 insertions(+), 392 deletions(-) diff --git a/scripts/base/frameworks/file-analysis/main.bro b/scripts/base/frameworks/file-analysis/main.bro index 3b21ae556f..d4ddde1d23 100644 --- a/scripts/base/frameworks/file-analysis/main.bro +++ b/scripts/base/frameworks/file-analysis/main.bro @@ -102,17 +102,21 @@ export { ## TODO: document global policy: hook(trig: Trigger, info: Info); - type HandleCallback: function(c: connection, is_orig: bool): string; - - const handle_callbacks: table[AnalyzerTag] of HandleCallback = {} &redef; - - global get_handle: function(c: connection, is_orig: bool): string &redef; + const disable: table[AnalyzerTag] of bool = table() &redef; # TODO: wrapper functions for BiFs ? ## Event that can be handled to access the Info record as it is sent on ## to the logging framework. global log_file_analysis: event(rec: Info); + + ## The salt concatenated to unique file handle strings generated by + ## :bro:see:`FileAnalysis::handle_callbacks` before hashing them + ## in to a file id (the *file_id* field of :bro:see:`FileAnalysis::Info`). + ## Provided to help mitigate the possiblility of manipulating parts of + ## network connections that factor in to the file handle in order to + ## generate two handles that would hash to the same file id. + const salt = "I recommend changing this." &redef; } event bro_init() &priority=5 diff --git a/scripts/base/init-bare.bro b/scripts/base/init-bare.bro index 49fcd94d2a..798eb387b3 100644 --- a/scripts/base/init-bare.bro +++ b/scripts/base/init-bare.bro @@ -3025,34 +3025,6 @@ export { } module GLOBAL; -module FileAnalysis; -export { - ## When the file analysis framework receives input regarding a file - ## transferred over the network, and a unique handle string cannot - ## be determined immediately from :bro:see:`FileAnalysis::handle_callbacks`, - ## that input is buffered. This is the interval at which to automatically - ## check back on any currently buffered inputs to see if a handle is - ## available so that the input can be processed. Since any input - ## triggers the check for all buffered inputs, this option only helps - ## cases where the file analysis framework is getting little input. - const pending_file_drain_interval = 10 sec &redef; - - ## This is the interval at which to give up checking for a unique handle - ## string for files transferred over the network that were initially - ## buffered because no handle was available yet (e.g. when the necessary - ## events to construct the handle may not have been flushed yet). - const pending_file_timeout = 10 sec &redef; - - ## The salt concatenated to unique file handle strings generated by - ## :bro:see:`FileAnalysis::handle_callbacks` before hashing them - ## in to a file id (the *file_id* field of :bro:see:`FileAnalysis::Info`). - ## Provided to help mitigate the possiblility of manipulating parts of - ## network connections that factor in to the file handle in order to - ## generate two handles that would hash to the same file id. - const salt = "I recommend changing this." &redef; -} -module GLOBAL; - ## Number of bytes per packet to capture from live interfaces. const snaplen = 8192 &redef; diff --git a/scripts/base/protocols/ftp/file-analysis.bro b/scripts/base/protocols/ftp/file-analysis.bro index 016c09838c..9a435cb8ec 100644 --- a/scripts/base/protocols/ftp/file-analysis.bro +++ b/scripts/base/protocols/ftp/file-analysis.bro @@ -2,11 +2,29 @@ @load base/utils/conn-ids @load base/frameworks/file-analysis/main -redef FileAnalysis::handle_callbacks += { - [ANALYZER_FTP_DATA] = function(c: connection, is_orig: bool): string +module FTP; + +export { + ## Determines whether the default :bro:see:`get_file_handle` handler + ## is used to return file handles to the file analysis framework. + ## Redefine to true in order to provide a custom handler which overrides + ## the default for FTP. + const disable_default_file_handle_provider: bool = F &redef; + + ## Default file handle provider for FTP. + function get_file_handle(c: connection, is_orig: bool): string { if ( is_orig ) return ""; return fmt("%s %s %s", ANALYZER_FTP_DATA, c$start_time, id_string(c$id)); - }, -}; + } +} + +module GLOBAL; + +event get_file_handle(tag: AnalyzerTag, c: connection, is_orig: bool) + { + if ( tag != ANALYZER_FTP_DATA ) return; + if ( FTP::disable_default_file_handle_provider ) return; + return_file_handle(FTP::get_file_handle(c, is_orig)); + } diff --git a/scripts/base/protocols/http/file-analysis.bro b/scripts/base/protocols/http/file-analysis.bro index 5b0ac79444..b20e561dfc 100644 --- a/scripts/base/protocols/http/file-analysis.bro +++ b/scripts/base/protocols/http/file-analysis.bro @@ -5,18 +5,32 @@ module HTTP; -function get_file_handle(c: connection, is_orig: bool): string +export { + ## Determines whether the default :bro:see:`get_file_handle` handler + ## is used to return file handles to the file analysis framework. + ## Redefine to true in order to provide a custom handler which overrides + ## the default HTTP. + const disable_default_file_handle_provider: bool = F &redef; + + ## Default file handle provider for HTTP. + function get_file_handle(c: connection, is_orig: bool): string + { + if ( ! c?$http ) return ""; + + if ( c$http$range_request ) + return fmt("%s %s %s %s", ANALYZER_HTTP, is_orig, c$id$orig_h, + build_url(c$http)); + + return fmt("%s %s %s %s %s", ANALYZER_HTTP, c$start_time, is_orig, + c$http$trans_depth, id_string(c$id)); + } +} + +module GLOBAL; + +event get_file_handle(tag: AnalyzerTag, c: connection, is_orig: bool) { - if ( ! c?$http ) return ""; - - if ( c$http$range_request ) - return fmt("%s %s %s %s", ANALYZER_HTTP, is_orig, c$id$orig_h, - build_url(c$http)); - - return fmt("%s %s %s %s %s", ANALYZER_HTTP, c$start_time, is_orig, - c$http$trans_depth, id_string(c$id)); + if ( tag != ANALYZER_HTTP ) return; + if ( HTTP::disable_default_file_handle_provider ) return; + return_file_handle(HTTP::get_file_handle(c, is_orig)); } - -redef FileAnalysis::handle_callbacks += { - [ANALYZER_HTTP] = get_file_handle, -}; diff --git a/scripts/base/protocols/irc/file-analysis.bro b/scripts/base/protocols/irc/file-analysis.bro index 471477bbb1..f405585b32 100644 --- a/scripts/base/protocols/irc/file-analysis.bro +++ b/scripts/base/protocols/irc/file-analysis.bro @@ -2,11 +2,29 @@ @load base/utils/conn-ids @load base/frameworks/file-analysis/main -redef FileAnalysis::handle_callbacks += { - [ANALYZER_IRC_DATA] = function(c: connection, is_orig: bool): string +module IRC; + +export { + ## Determines whether the default :bro:see:`get_file_handle` handler + ## is used to return file handles to the file analysis framework. + ## Redefine to true in order to provide a custom handler which overrides + ## the default for IRC. + const disable_default_file_handle_provider: bool = F &redef; + + ## Default file handle provider for IRC. + function get_file_handle(c: connection, is_orig: bool): string { if ( is_orig ) return ""; return fmt("%s %s %s", ANALYZER_IRC_DATA, c$start_time, id_string(c$id)); - }, -}; + } +} + +module GLOBAL; + +event get_file_handle(tag: AnalyzerTag, c: connection, is_orig: bool) + { + if ( tag != ANALYZER_IRC_DATA ) return; + if ( IRC::disable_default_file_handle_provider ) return; + return_file_handle(IRC::get_file_handle(c, is_orig)); + } diff --git a/scripts/base/protocols/smtp/file-analysis.bro b/scripts/base/protocols/smtp/file-analysis.bro index 1586b3086f..cbc33aa375 100644 --- a/scripts/base/protocols/smtp/file-analysis.bro +++ b/scripts/base/protocols/smtp/file-analysis.bro @@ -5,14 +5,28 @@ module SMTP; -function get_file_handle(c: connection, is_orig: bool): string +export { + ## Determines whether the default :bro:see:`get_file_handle` handler + ## is used to return file handles to the file analysis framework. + ## Redefine to true in order to provide a custom handler which overrides + ## the default for SMTP. + const disable_default_file_handle_provider: bool = F &redef; + + ## Default file handle provider for SMTP. + function get_file_handle(c: connection, is_orig: bool): string + { + if ( ! c?$smtp ) return ""; + + return fmt("%s %s %s %s", ANALYZER_SMTP, c$start_time, + c$smtp$trans_depth, c$smtp_state$mime_level); + } +} + +module GLOBAL; + +event get_file_handle(tag: AnalyzerTag, c: connection, is_orig: bool) { - if ( ! c?$smtp ) return ""; - - return fmt("%s %s %s %s", ANALYZER_SMTP, c$start_time, c$smtp$trans_depth, - c$smtp_state$mime_level); + if ( tag != ANALYZER_SMTP ) return; + if ( SMTP::disable_default_file_handle_provider ) return; + return_file_handle(SMTP::get_file_handle(c, is_orig)); } - -redef FileAnalysis::handle_callbacks += { - [ANALYZER_SMTP] = get_file_handle, -}; diff --git a/src/Event.cc b/src/Event.cc index 97f29000d6..9250b61e76 100644 --- a/src/Event.cc +++ b/src/Event.cc @@ -6,6 +6,7 @@ #include "Func.h" #include "NetVar.h" #include "Trigger.h" +#include "file_analysis/Manager.h" EventMgr mgr; @@ -124,6 +125,8 @@ void EventMgr::Drain() // processing, we ensure that it's done at a regular basis by checking // them here. Trigger::EvaluatePending(); + + file_mgr->EventDrainDone(); } void EventMgr::Describe(ODesc* d) const diff --git a/src/FileAnalyzer.cc b/src/FileAnalyzer.cc index 5ea98460bb..508ae23335 100644 --- a/src/FileAnalyzer.cc +++ b/src/FileAnalyzer.cc @@ -74,7 +74,7 @@ IRC_Data::IRC_Data(Connection* conn) void IRC_Data::Done() { File_Analyzer::Done(); - file_mgr->EndOfFile(Conn()); + file_mgr->EndOfFile(GetTag(), Conn()); } void IRC_Data::DeliverStream(int len, const u_char* data, bool orig) @@ -97,7 +97,7 @@ FTP_Data::FTP_Data(Connection* conn) void FTP_Data::Done() { File_Analyzer::Done(); - file_mgr->EndOfFile(Conn()); + file_mgr->EndOfFile(GetTag(), Conn()); } void FTP_Data::DeliverStream(int len, const u_char* data, bool orig) diff --git a/src/HTTP.cc b/src/HTTP.cc index 5ce2dfa114..3ae17714d6 100644 --- a/src/HTTP.cc +++ b/src/HTTP.cc @@ -565,7 +565,8 @@ void HTTP_Message::Done(const int interrupted, const char* detail) if ( is_orig || MyHTTP_Analyzer()->HTTP_ReplyCode() != 206 ) // multipart/byteranges may span multiple connections - file_mgr->EndOfFile(MyHTTP_Analyzer()->Conn(), is_orig); + file_mgr->EndOfFile(MyHTTP_Analyzer()->GetTag(), + MyHTTP_Analyzer()->Conn(), is_orig); if ( http_message_done ) { @@ -642,7 +643,8 @@ void HTTP_Message::EndEntity(MIME_Entity* entity) if ( entity == top_level ) Done(); else if ( is_orig || MyHTTP_Analyzer()->HTTP_ReplyCode() != 206 ) - file_mgr->EndOfFile(MyHTTP_Analyzer()->Conn(), is_orig); + file_mgr->EndOfFile(MyHTTP_Analyzer()->GetTag(), + MyHTTP_Analyzer()->Conn(), is_orig); } void HTTP_Message::SubmitHeader(MIME_Header* h) @@ -901,11 +903,11 @@ void HTTP_Analyzer::Done() unanswered_requests.pop(); } - file_mgr->EndOfFile(Conn(), true); + file_mgr->EndOfFile(GetTag(), Conn(), true); /* TODO: this might be nice to have, but reply code is cleared by now. if ( HTTP_ReplyCode() != 206 ) // multipart/byteranges may span multiple connections - file_mgr->EndOfFile(Conn(), false); + file_mgr->EndOfFile(GetTag(), Conn(), false); */ } diff --git a/src/MIME.cc b/src/MIME.cc index b1d52a3970..b6ffdf96c2 100644 --- a/src/MIME.cc +++ b/src/MIME.cc @@ -1021,7 +1021,7 @@ void MIME_Mail::Done() MIME_Message::Done(); - file_mgr->EndOfFile(analyzer->Conn()); + file_mgr->EndOfFile(analyzer->GetTag(), analyzer->Conn()); } MIME_Mail::~MIME_Mail() @@ -1069,7 +1069,7 @@ void MIME_Mail::EndEntity(MIME_Entity* /* entity */) analyzer->ConnectionEvent(mime_end_entity, vl); } - file_mgr->EndOfFile(analyzer->Conn()); + file_mgr->EndOfFile(analyzer->GetTag(), analyzer->Conn()); } void MIME_Mail::SubmitHeader(MIME_Header* h) diff --git a/src/bro.bif b/src/bro.bif index ac54da0e75..34ea9642a3 100644 --- a/src/bro.bif +++ b/src/bro.bif @@ -17,6 +17,7 @@ #include "Reporter.h" #include "IPAddr.h" #include "util.h" +#include "file_analysis/Manager.h" using namespace std; @@ -5537,6 +5538,22 @@ function match_signatures%(c: connection, pattern_type: int, s: string, return new Val(1, TYPE_BOOL); %} +## For use within a :bro:see:`get_file_handle` handler to return a unique +## identifier to associate with some buffered input to the file analysis +## framework. The buffered data will then immediately be allowed to pass +## pass through the file analysis framework and execute any policy hooks +## that are available. If an empty string is returned, that signifies that +## the buffered data will be discarded with no further action taken on it. +## +## handle: A string that uniquely identifies a file. +## +## .. bro:see:: get_file_handle FileAnalysis::policy +function return_file_handle%(handle: string%): any + %{ + file_mgr->ReceiveHandle(handle->CheckString()); + return 0; + %} + # =========================================================================== # # Deprecated Functions diff --git a/src/const.bif b/src/const.bif index 7fdb444c2c..31e6ccee1a 100644 --- a/src/const.bif +++ b/src/const.bif @@ -24,6 +24,4 @@ const Tunnel::ip_tunnel_timeout: interval; const Threading::heartbeat_interval: interval; -const FileAnalysis::pending_file_drain_interval: interval; -const FileAnalysis::pending_file_timeout: interval; const FileAnalysis::salt: string; diff --git a/src/event.bif b/src/event.bif index 393021024a..aadaf31454 100644 --- a/src/event.bif +++ b/src/event.bif @@ -6981,6 +6981,22 @@ event reporter_error%(t: time, msg: string, location: string%) &error_handler; ## recursively for each ``@load``. event bro_script_loaded%(path: string, level: count%); +## This event is handled to provide feedback to the file analysis framework +## about how to identify the logical "file" to which some data/input +## belongs. All incoming data to the framework is buffered, and depends +## on a handler for this event to return a string value that uniquely +## identifies a file. Among all handlers of this event, exactly one must +## call :bro:see:`return_file_handle`. +## +## tag: The analyzer which is carrying the file data. +## +## c: The connection which is carrying the file data. +## +## is_orig: The direction the file data is flowing over the connection. +## +## .. bro:see:: return_file_handle +event get_file_handle%(tag: count, c: connection, is_orig: bool%); + ## Deprecated. Will be removed. event stp_create_endp%(c: connection, e: int, is_orig: bool%); diff --git a/src/file_analysis/Manager.cc b/src/file_analysis/Manager.cc index 3f354dd148..bad46b8fd9 100644 --- a/src/file_analysis/Manager.cc +++ b/src/file_analysis/Manager.cc @@ -5,22 +5,14 @@ #include "Info.h" #include "Action.h" #include "Var.h" +#include "Event.h" using namespace file_analysis; -void DrainTimer::Dispatch(double t, int is_expire) - { - using BifConst::FileAnalysis::pending_file_drain_interval; - DBG_LOG(DBG_FILE_ANALYSIS, "DrainTimer dispatched"); - file_mgr->DrainPending(); - if ( ! is_expire ) - timer_mgr->Add(new DrainTimer(pending_file_drain_interval)); - } +TableVal* Manager::disabled = 0; -Manager::Manager() : is_draining(false) +Manager::Manager() { - using BifConst::FileAnalysis::pending_file_drain_interval; - timer_mgr->Add(new DrainTimer(pending_file_drain_interval)); } Manager::~Manager() @@ -28,78 +20,8 @@ Manager::~Manager() Terminate(); } -string Manager::GetFileHandle(Analyzer* root, Connection* conn, - bool is_orig) const - { - static TableVal* table = 0; - - if ( ! table ) - table = internal_val("FileAnalysis::handle_callbacks")->AsTableVal(); - - if ( ! root ) return ""; - - Val* index = new Val(root->GetTag(), TYPE_COUNT); - const Val* callback = table->Lookup(index); - Unref(index); - - if ( callback ) - { - val_list vl(2); - vl.append(conn->BuildConnVal()); - vl.append(new Val(is_orig, TYPE_BOOL)); - - Val* result = callback->AsFunc()->Call(&vl); - - if ( result ) - { - string rval = result->AsString()->CheckString(); - Unref(result); - if ( ! rval.empty() ) return rval; - } - } - - for ( analyzer_list::const_iterator it = root->GetChildren().begin(); - it != root->GetChildren().end(); ++it ) - { - string rval = GetFileHandle((*it), conn, is_orig); - if ( ! rval.empty() ) return rval; - } - - return ""; - } - -string Manager::GetFileHandle(Connection* conn, bool is_orig) const - { - if ( ! conn ) return ""; - - return GetFileHandle(conn->GetRootAnalyzer(), conn, is_orig); - } - -void Manager::DrainPending() - { - if ( is_draining ) return; - - is_draining = true; - PendingList::iterator it = pending.begin(); - - while ( it != pending.end() ) - { - if ( (*it)->Retry() || (*it)->IsStale() ) - { - delete *it; - pending.erase(it++); - } - else - ++it; - } - - is_draining = false; - } - void Manager::Terminate() { - DrainPending(); - vector keys; for ( IDMap::iterator it = id_map.begin(); it != id_map.end(); ++it ) keys.push_back(it->first); @@ -107,24 +29,38 @@ void Manager::Terminate() Timeout(keys[i], true); } -bool Manager::DataIn(const u_char* data, uint64 len, uint64 offset, +void Manager::ReceiveHandle(const string& handle) + { + if ( pending.empty() ) + reporter->InternalError("File analysis underflow"); + + PendingFile* pf = pending.front(); + if ( ! handle.empty() ) + pf->Finish(handle); + delete pf; + pending.pop(); + } + +void Manager::EventDrainDone() + { + if ( pending.empty() ) return; + + reporter->Error("Too few return_file_handle() calls, discarding pending" + " file analysis input."); + + while ( ! pending.empty() ) + { + delete pending.front(); + pending.pop(); + } + } + +void Manager::DataIn(const u_char* data, uint64 len, uint64 offset, AnalyzerTag::Tag tag, Connection* conn, bool is_orig) { - DrainPending(); - - string unique = GetFileHandle(conn, is_orig); - - if ( ! unique.empty() ) - { - DataIn(data, len, offset, GetInfo(unique, conn, tag)); - return true; - } - - if ( ! is_draining ) - pending.push_back(new PendingDataInChunk(data, len, offset, tag, conn, - is_orig)); - - return false; + if ( IsDisabled(tag) ) return; + if ( ! QueueHandleEvent(tag, conn, is_orig) ) return; + pending.push(new PendingDataInChunk(data, len, offset, tag, conn)); } void Manager::DataIn(const u_char* data, uint64 len, uint64 offset, @@ -136,8 +72,6 @@ void Manager::DataIn(const u_char* data, uint64 len, uint64 offset, void Manager::DataIn(const u_char* data, uint64 len, uint64 offset, Info* info) { - DrainPending(); - if ( ! info ) return; info->DataIn(data, len, offset); @@ -146,24 +80,12 @@ void Manager::DataIn(const u_char* data, uint64 len, uint64 offset, RemoveFile(info->GetUnique()); } -bool Manager::DataIn(const u_char* data, uint64 len, AnalyzerTag::Tag tag, +void Manager::DataIn(const u_char* data, uint64 len, AnalyzerTag::Tag tag, Connection* conn, bool is_orig) { - DrainPending(); - - string unique = GetFileHandle(conn, is_orig); - - if ( ! unique.empty() ) - { - DataIn(data, len, GetInfo(unique, conn, tag)); - return true; - } - - if ( ! is_draining ) - pending.push_back(new PendingDataInStream(data, len, tag, conn, - is_orig)); - - return false; + if ( IsDisabled(tag) ) return; + if ( ! QueueHandleEvent(tag, conn, is_orig) ) return; + pending.push(new PendingDataInStream(data, len, tag, conn)); } void Manager::DataIn(const u_char* data, uint64 len, const string& unique) @@ -173,8 +95,6 @@ void Manager::DataIn(const u_char* data, uint64 len, const string& unique) void Manager::DataIn(const u_char* data, uint64 len, Info* info) { - DrainPending(); - if ( ! info ) return; info->DataIn(data, len); @@ -183,53 +103,30 @@ void Manager::DataIn(const u_char* data, uint64 len, Info* info) RemoveFile(info->GetUnique()); } -void Manager::EndOfFile(Connection* conn) +void Manager::EndOfFile(AnalyzerTag::Tag tag, Connection* conn) { - EndOfFile(conn, true); - EndOfFile(conn, false); + EndOfFile(tag, conn, true); + EndOfFile(tag, conn, false); } -bool Manager::EndOfFile(Connection* conn, bool is_orig) +void Manager::EndOfFile(AnalyzerTag::Tag tag, Connection* conn, bool is_orig) { - DrainPending(); - - string unique = GetFileHandle(conn, is_orig); - - if ( ! unique.empty() ) - { - RemoveFile(unique); - return true; - } - - if ( ! is_draining ) - pending.push_back(new PendingEOF(conn, is_orig)); - - return false; + if ( IsDisabled(tag) ) return; + if ( ! QueueHandleEvent(tag, conn, is_orig) ) return; + pending.push(new PendingEOF(tag, conn)); } void Manager::EndOfFile(const string& unique) { - DrainPending(); RemoveFile(unique); } -bool Manager::Gap(uint64 offset, uint64 len, AnalyzerTag::Tag tag, +void Manager::Gap(uint64 offset, uint64 len, AnalyzerTag::Tag tag, Connection* conn, bool is_orig) { - DrainPending(); - - string unique = GetFileHandle(conn, is_orig); - - if ( ! unique.empty() ) - { - Gap(offset, len, GetInfo(unique, conn, tag)); - return true; - } - - if ( ! is_draining ) - pending.push_back(new PendingGap(offset, len, tag, conn, is_orig)); - - return false; + if ( IsDisabled(tag) ) return; + if ( ! QueueHandleEvent(tag, conn, is_orig) ) return; + pending.push(new PendingGap(offset, len, tag, conn)); } void Manager::Gap(uint64 offset, uint64 len, const string& unique) @@ -239,30 +136,17 @@ void Manager::Gap(uint64 offset, uint64 len, const string& unique) void Manager::Gap(uint64 offset, uint64 len, Info* info) { - DrainPending(); - if ( ! info ) return; info->Gap(offset, len); } -bool Manager::SetSize(uint64 size, AnalyzerTag::Tag tag, Connection* conn, +void Manager::SetSize(uint64 size, AnalyzerTag::Tag tag, Connection* conn, bool is_orig) { - DrainPending(); - - string unique = GetFileHandle(conn, is_orig); - - if ( ! unique.empty() ) - { - SetSize(size, GetInfo(unique, conn, tag)); - return true; - } - - if ( ! is_draining ) - pending.push_back(new PendingSize(size, tag, conn, is_orig)); - - return false; + if ( IsDisabled(tag) ) return; + if ( ! QueueHandleEvent(tag, conn, is_orig) ) return; + pending.push(new PendingSize(size, tag, conn)); } void Manager::SetSize(uint64 size, const string& unique) @@ -272,8 +156,6 @@ void Manager::SetSize(uint64 size, const string& unique) void Manager::SetSize(uint64 size, Info* info) { - DrainPending(); - if ( ! info ) return; info->SetTotalBytes(size); @@ -282,7 +164,6 @@ void Manager::SetSize(uint64 size, Info* info) RemoveFile(info->GetUnique()); } - void Manager::EvaluatePolicy(BifEnum::FileAnalysis::Trigger t, Info* info) { if ( IsIgnored(info->GetUnique()) ) return; @@ -372,8 +253,6 @@ Info* Manager::Lookup(const FileID& file_id) const void Manager::Timeout(const FileID& file_id, bool is_terminating) { - DrainPending(); - Info* info = Lookup(file_id); if ( ! info ) return; @@ -433,3 +312,34 @@ bool Manager::IsIgnored(const string& unique) { return ignored.find(unique) != ignored.end(); } + +bool Manager::IsDisabled(AnalyzerTag::Tag tag) + { + if ( ! disabled ) + disabled = internal_const_val("FileAnalysis::disable")->AsTableVal(); + + Val* index = new Val(tag, TYPE_COUNT); + Val* yield = disabled->Lookup(index); + Unref(index); + + if ( ! yield ) return false; + + bool rval = yield->AsBool(); + Unref(yield); + + return rval; + } + +bool Manager::QueueHandleEvent(AnalyzerTag::Tag tag, Connection* conn, + bool is_orig) + { + if ( ! get_file_handle ) return false; + + val_list* vl = new val_list(); + vl->append(new Val(tag, TYPE_COUNT)); + vl->append(conn->BuildConnVal()); + vl->append(new Val(is_orig, TYPE_BOOL)); + + mgr.QueueEvent(get_file_handle, vl); + return true; + } diff --git a/src/file_analysis/Manager.h b/src/file_analysis/Manager.h index 5c4c4ce1d7..930297e3d2 100644 --- a/src/file_analysis/Manager.h +++ b/src/file_analysis/Manager.h @@ -4,7 +4,7 @@ #include #include #include -#include +#include #include "Net.h" #include "AnalyzerTags.h" @@ -20,15 +20,6 @@ namespace file_analysis { -class DrainTimer : public Timer { -public: - - DrainTimer(double interval) - : Timer(network_time + interval, TIMER_FILE_ANALYSIS_DRAIN) {} - - void Dispatch(double t, int is_expire); -}; - /** * Main entry point for interacting with file analysis. */ @@ -44,10 +35,23 @@ public: */ void Terminate(); + /** + * Associates a handle with the next element in the #pending queue, which + * will immediately push that element all the way through the file analysis + * framework, possibly evaluating any policy hooks. + */ + void ReceiveHandle(const string& handle); + + /** + * Called when all events have been drained from the event queue. + * There should be no pending file input/data at this point. + */ + void EventDrainDone(); + /** * Pass in non-sequential file data. */ - bool DataIn(const u_char* data, uint64 len, uint64 offset, + void DataIn(const u_char* data, uint64 len, uint64 offset, AnalyzerTag::Tag tag, Connection* conn, bool is_orig); void DataIn(const u_char* data, uint64 len, uint64 offset, const string& unique); @@ -57,7 +61,7 @@ public: /** * Pass in sequential file data. */ - bool DataIn(const u_char* data, uint64 len, AnalyzerTag::Tag tag, + void DataIn(const u_char* data, uint64 len, AnalyzerTag::Tag tag, Connection* conn, bool is_orig); void DataIn(const u_char* data, uint64 len, const string& unique); void DataIn(const u_char* data, uint64 len, Info* info); @@ -65,14 +69,14 @@ public: /** * Signal the end of file data. */ - void EndOfFile(Connection* conn); - bool EndOfFile(Connection* conn, bool is_orig); + void EndOfFile(AnalyzerTag::Tag tag, Connection* conn); + void EndOfFile(AnalyzerTag::Tag tag, Connection* conn, bool is_orig); void EndOfFile(const string& unique); /** * Signal a gap in the file data stream. */ - bool Gap(uint64 offset, uint64 len, AnalyzerTag::Tag tag, Connection* conn, + void Gap(uint64 offset, uint64 len, AnalyzerTag::Tag tag, Connection* conn, bool is_orig); void Gap(uint64 offset, uint64 len, const string& unique); void Gap(uint64 offset, uint64 len, Info* info); @@ -80,7 +84,7 @@ public: /** * Provide the expected number of bytes that comprise a file. */ - bool SetSize(uint64 size, AnalyzerTag::Tag tag, Connection* conn, + void SetSize(uint64 size, AnalyzerTag::Tag tag, Connection* conn, bool is_orig); void SetSize(uint64 size, const string& unique); void SetSize(uint64 size, Info* info); @@ -120,13 +124,12 @@ public: protected: friend class InfoTimer; - friend class DrainTimer; friend class PendingFile; typedef map StrMap; typedef set StrSet; typedef map IDMap; - typedef list PendingList; + typedef queue PendingQueue; /** * @return the Info object mapped to \a unique or a null pointer if analysis @@ -138,18 +141,6 @@ protected: Info* GetInfo(const string& unique, Connection* conn = 0, AnalyzerTag::Tag tag = AnalyzerTag::Error); - /** - * @return a string which can uniquely identify the file being transported - * over the connection. A script-layer function is evaluated in - * order to determine the unique string. An empty string means - * a unique handle for the file couldn't be determined at the time - * time the function was evaluated (possibly because some events - * have not yet been drained from the queue). - */ - string GetFileHandle(Connection* conn, bool is_orig) const; - string GetFileHandle(Analyzer* root, Connection* conn, - bool is_orig) const; - /** * @return the Info object mapped to \a file_id, or a null pointer if no * mapping exists. @@ -174,18 +165,23 @@ protected: bool IsIgnored(const string& unique); /** - * Attempts to forward the data from any pending file contents, i.e. - * those for which a unique file handle string could not immediately - * be determined. + * @return whether file analysis is disabled for the given analyzer. */ - void DrainPending(); + static bool IsDisabled(AnalyzerTag::Tag tag); + + /** + * Queues \c get_file_handle event in order to retrieve unique file handle. + * @return true if there is a handler for the event, else false. + */ + static bool QueueHandleEvent(AnalyzerTag::Tag tag, Connection* conn, + bool is_orig); StrMap str_map; /**< Map unique strings to \c FileAnalysis::Info records. */ IDMap id_map; /**< Map file IDs to \c FileAnalysis::Info records. */ StrSet ignored; /**< Ignored files. Will be finally removed on EOF. */ - PendingList pending; /**< Files awaiting a unique handle. */ + PendingQueue pending; /**< Files awaiting a unique handle. */ - bool is_draining; + static TableVal* disabled; /**< Table of disabled analyzers. */ }; } // namespace file_analysis diff --git a/src/file_analysis/PendingFile.cc b/src/file_analysis/PendingFile.cc index d148953294..6d8f2d6e45 100644 --- a/src/file_analysis/PendingFile.cc +++ b/src/file_analysis/PendingFile.cc @@ -20,10 +20,8 @@ static string conn_str(Connection* c) return rval; } -PendingFile::PendingFile(Connection* arg_conn, bool arg_is_orig, - AnalyzerTag::Tag arg_tag) - : conn(arg_conn), is_orig(arg_is_orig), creation_time(network_time), - tag(arg_tag) +PendingFile::PendingFile(Connection* arg_conn, AnalyzerTag::Tag arg_tag) + : conn(arg_conn), tag(arg_tag) { Ref(conn); DBG_LOG(DBG_FILE_ANALYSIS, "New pending file: %s", conn_str(conn).c_str()); @@ -36,31 +34,24 @@ PendingFile::~PendingFile() conn_str(conn).c_str()); } -bool PendingFile::IsStale() const +Info* PendingFile::GetInfo(const string& handle) const { - using BifConst::FileAnalysis::pending_file_timeout; - if ( creation_time + pending_file_timeout < network_time ) - { - DBG_LOG(DBG_FILE_ANALYSIS, "Stale pending file: %s", - conn_str(conn).c_str()); - return true; - } - return false; + return file_mgr->GetInfo(handle, conn, tag); } PendingDataInChunk::PendingDataInChunk(const u_char* arg_data, uint64 arg_len, uint64 arg_offset, AnalyzerTag::Tag arg_tag, - Connection* arg_conn, bool arg_is_orig) - : PendingFile(arg_conn, arg_is_orig, arg_tag), len(arg_len), + Connection* arg_conn) + : PendingFile(arg_conn, arg_tag), len(arg_len), offset(arg_offset) { copy_data(&data, arg_data, len); } -bool PendingDataInChunk::Retry() const +void PendingDataInChunk::Finish(const string& handle) const { - return file_mgr->DataIn(data, len, offset, tag, conn, is_orig); + file_mgr->DataIn(data, len, offset, GetInfo(handle)); } PendingDataInChunk::~PendingDataInChunk() @@ -70,15 +61,15 @@ PendingDataInChunk::~PendingDataInChunk() PendingDataInStream::PendingDataInStream(const u_char* arg_data, uint64 arg_len, AnalyzerTag::Tag arg_tag, - Connection* arg_conn, bool arg_is_orig) - : PendingFile(arg_conn, arg_is_orig, arg_tag), len(arg_len) + Connection* arg_conn) + : PendingFile(arg_conn, arg_tag), len(arg_len) { copy_data(&data, arg_data, len); } -bool PendingDataInStream::Retry() const +void PendingDataInStream::Finish(const string& handle) const { - return file_mgr->DataIn(data, len, tag, conn, is_orig); + file_mgr->DataIn(data, len, GetInfo(handle)); } PendingDataInStream::~PendingDataInStream() @@ -87,35 +78,34 @@ PendingDataInStream::~PendingDataInStream() } PendingGap::PendingGap(uint64 arg_offset, uint64 arg_len, - AnalyzerTag::Tag arg_tag, Connection* arg_conn, - bool arg_is_orig) - : PendingFile(arg_conn, arg_is_orig, arg_tag), offset(arg_offset), + AnalyzerTag::Tag arg_tag, Connection* arg_conn) + : PendingFile(arg_conn, arg_tag), offset(arg_offset), len(arg_len) { } -bool PendingGap::Retry() const +void PendingGap::Finish(const string& handle) const { - return file_mgr->Gap(offset, len, tag, conn, is_orig); + file_mgr->Gap(offset, len, GetInfo(handle)); } -PendingEOF::PendingEOF(Connection* arg_conn, bool arg_is_orig) - : PendingFile(arg_conn, arg_is_orig) +PendingEOF::PendingEOF(AnalyzerTag::Tag arg_tag, Connection* arg_conn) + : PendingFile(arg_conn, arg_tag) { } -bool PendingEOF::Retry() const +void PendingEOF::Finish(const string& handle) const { - return file_mgr->EndOfFile(conn, is_orig); + file_mgr->EndOfFile(handle); } PendingSize::PendingSize(uint64 arg_size, AnalyzerTag::Tag arg_tag, - Connection* arg_conn, bool arg_is_orig) - : PendingFile(arg_conn, arg_is_orig, arg_tag), size(arg_size) + Connection* arg_conn) + : PendingFile(arg_conn, arg_tag), size(arg_size) { } -bool PendingSize::Retry() const +void PendingSize::Finish(const string& handle) const { - return file_mgr->SetSize(size, tag, conn, is_orig); + file_mgr->SetSize(size, GetInfo(handle)); } diff --git a/src/file_analysis/PendingFile.h b/src/file_analysis/PendingFile.h index 34d46fe7e9..58b842d969 100644 --- a/src/file_analysis/PendingFile.h +++ b/src/file_analysis/PendingFile.h @@ -3,6 +3,7 @@ #include "AnalyzerTags.h" #include "Conn.h" +#include "Info.h" namespace file_analysis { @@ -11,18 +12,16 @@ public: virtual ~PendingFile(); - virtual bool Retry() const = 0; - - bool IsStale() const; + virtual void Finish(const string& handle) const = 0; protected: - PendingFile(Connection* arg_conn, bool arg_is_orig, + PendingFile(Connection* arg_conn, AnalyzerTag::Tag arg_tag = AnalyzerTag::Error); + Info* GetInfo(const string& handle) const; + Connection* conn; - bool is_orig; - double creation_time; AnalyzerTag::Tag tag; }; @@ -30,12 +29,12 @@ class PendingDataInChunk : public PendingFile { public: PendingDataInChunk(const u_char* arg_data, uint64 arg_len, - uint64 arg_offset, AnalyzerTag::Tag tag, - Connection* arg_conn, bool arg_is_orig); + uint64 arg_offset, AnalyzerTag::Tag arg_tag, + Connection* arg_conn); virtual ~PendingDataInChunk(); - virtual bool Retry() const; + virtual void Finish(const string& handle) const; protected: @@ -48,12 +47,11 @@ class PendingDataInStream : public PendingFile { public: PendingDataInStream(const u_char* arg_data, uint64 arg_len, - AnalyzerTag::Tag tag, Connection* arg_conn, - bool arg_is_orig); + AnalyzerTag::Tag arg_tag, Connection* arg_conn); virtual ~PendingDataInStream(); - virtual bool Retry() const; + virtual void Finish(const string& handle) const; protected: @@ -64,10 +62,10 @@ protected: class PendingGap : public PendingFile { public: - PendingGap(uint64 arg_offset, uint64 arg_len, AnalyzerTag::Tag tag, - Connection* arg_conn, bool arg_is_orig); + PendingGap(uint64 arg_offset, uint64 arg_len, AnalyzerTag::Tag arg_tag, + Connection* arg_conn); - virtual bool Retry() const; + virtual void Finish(const string& handle) const; protected: @@ -78,18 +76,18 @@ protected: class PendingEOF : public PendingFile { public: - PendingEOF(Connection* arg_conn, bool arg_is_orig); + PendingEOF(AnalyzerTag::Tag arg_tag, Connection* arg_conn); - virtual bool Retry() const; + virtual void Finish(const string& handle) const; }; class PendingSize : public PendingFile { public: - PendingSize(uint64 arg_size, AnalyzerTag::Tag tag, Connection* arg_conn, - bool arg_is_orig); + PendingSize(uint64 arg_size, AnalyzerTag::Tag arg_tag, + Connection* arg_conn); - virtual bool Retry() const; + virtual void Finish(const string& handle) const; protected: diff --git a/testing/btest/Baseline/core.when-interpreter-exceptions/bro..stdout b/testing/btest/Baseline/core.when-interpreter-exceptions/bro..stdout index 792954f9a0..49eafc365f 100644 --- a/testing/btest/Baseline/core.when-interpreter-exceptions/bro..stdout +++ b/testing/btest/Baseline/core.when-interpreter-exceptions/bro..stdout @@ -1,6 +1,6 @@ -timeout -timeout g(), T timeout g(), F +timeout g(), T +timeout g() done, no exception, T localhost resolved localhost resolved from f(), T diff --git a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.logging/file_analysis.log b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.logging/file_analysis.log index f52d73e1a8..f2b116980a 100644 --- a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.logging/file_analysis.log +++ b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.logging/file_analysis.log @@ -3,8 +3,8 @@ #empty_field (empty) #unset_field - #path file_analysis -#open 2013-03-22-20-24-04 +#open 2013-03-25-19-46-10 #fields file_id parent_file_id source last_active seen_bytes total_bytes missing_bytes overflow_bytes timeout_interval bof_buffer_size file_type mime_type conn_uids actions_taken extracted_files md5 sha1 sha256 #types string string string time count count count count interval count string string table[string] table[enum] table[string] string string string -Cx92a0ym5R8 - HTTP 1362692527.009775 4705 4705 0 0 120.000000 1024 set set UWkUyAuUGXf FileAnalysis::ACTION_SHA1,FileAnalysis::ACTION_EXTRACT,FileAnalysis::ACTION_DATA_EVENT,FileAnalysis::ACTION_MD5,FileAnalysis::ACTION_SHA256 Cx92a0ym5R8-file 397168fd09991a0e712254df7bc639ac 1dd7ac0398df6cbc0696445a91ec681facf4dc47 4e7c7ef0984119447e743e3ec77e1de52713e345cde03fe7df753a35849bed18 -#close 2013-03-22-20-24-04 +Cx92a0ym5R8 - HTTP 1362692527.009775 4705 4705 0 0 120.000000 1024 set set UWkUyAuUGXf FileAnalysis::ACTION_SHA1,FileAnalysis::ACTION_DATA_EVENT,FileAnalysis::ACTION_EXTRACT,FileAnalysis::ACTION_MD5,FileAnalysis::ACTION_SHA256 Cx92a0ym5R8-file 397168fd09991a0e712254df7bc639ac 1dd7ac0398df6cbc0696445a91ec681facf4dc47 4e7c7ef0984119447e743e3ec77e1de52713e345cde03fe7df753a35849bed18 +#close 2013-03-25-19-46-10 diff --git a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.smtp/out b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.smtp/out index fa08f6dc18..70dc926ff5 100644 --- a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.smtp/out +++ b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.smtp/out @@ -1,5 +1,5 @@ FileAnalysis::TRIGGER_NEW -9VCisPgrqVj, 0, 0 +cwR7l6Zctxb, 0, 0 FileAnalysis::TRIGGER_BOF FileAnalysis::TRIGGER_BOF_BUFFER Hello^M^J^M^J ^M @@ -7,7 +7,7 @@ FileAnalysis::TRIGGER_TYPE file type is set mime type is set FileAnalysis::TRIGGER_EOF -9VCisPgrqVj, 79, 0 +cwR7l6Zctxb, 79, 0 [orig_h=10.10.1.4, orig_p=1470/tcp, resp_h=74.53.140.153, resp_p=25/tcp] source: SMTP SHA1: b7e497be8a9f5e2c4b6980fceb015360f98f4a13 diff --git a/testing/btest/Baseline/scripts.base.protocols.http.http-methods/http.log b/testing/btest/Baseline/scripts.base.protocols.http.http-methods/http.log index ac84e5ae7a..bdc29bd6b9 100644 --- a/testing/btest/Baseline/scripts.base.protocols.http.http-methods/http.log +++ b/testing/btest/Baseline/scripts.base.protocols.http.http-methods/http.log @@ -3,56 +3,56 @@ #empty_field (empty) #unset_field - #path http -#open 2012-12-07-04-43-19 +#open 2013-03-25-20-20-22 #fields ts uid id.orig_h id.orig_p id.resp_h id.resp_p trans_depth method host uri referrer user_agent request_body_len response_body_len status_code status_msg info_code info_msg filename tags username password proxied mime_type md5 extraction_file -#types time string addr port addr port count string string string string string count count count string count string string table[enum] string string table[string] string string file -1354328870.191989 UWkUyAuUGXf 128.2.6.136 46562 173.194.75.103 80 1 OPTIONS www.google.com * - - 0 962 405 Method Not Allowed - - - (empty) - - - text/html - - -1354328874.237327 arKYeMETxOg 128.2.6.136 46563 173.194.75.103 80 1 OPTIONS www.google.com HTTP/1.1 - - 0 925 400 Bad Request - - - (empty) - - - text/html - - -1354328874.299063 k6kgXLOoSKl 128.2.6.136 46564 173.194.75.103 80 0 - - - - - 0 925 400 Bad Request - - - (empty) - - - text/html - - -1354328874.342591 nQcgTWjvg4c 128.2.6.136 46565 173.194.75.103 80 0 - - - - - 0 925 400 Bad Request - - - (empty) - - - text/html - - -1354328874.364020 j4u32Pc5bif 128.2.6.136 46566 173.194.75.103 80 1 GET www.google.com / - - 0 43911 200 OK - - - (empty) - - - text/html - - -1354328878.470424 TEfuqmmG4bh 128.2.6.136 46567 173.194.75.103 80 1 GET www.google.com / - - 0 43983 200 OK - - - (empty) - - - text/html - - -1354328882.575456 FrJExwHcSal 128.2.6.136 46568 173.194.75.103 80 1 GET www.google.com /HTTP/1.1 - - 0 1207 403 Forbidden - - - (empty) - - - text/html - - -1354328882.928027 5OKnoww6xl4 128.2.6.136 46569 173.194.75.103 80 0 - - - - - 0 925 400 Bad Request - - - (empty) - - - text/html - - -1354328882.968948 3PKsZ2Uye21 128.2.6.136 46570 173.194.75.103 80 0 - - - - - 0 925 400 Bad Request - - - (empty) - - - text/html - - -1354328882.990373 VW0XPVINV8a 128.2.6.136 46571 173.194.75.103 80 1 GET www.google.com / - - 0 43913 200 OK - - - (empty) - - - text/html - - -1354328887.114613 fRFu0wcOle6 128.2.6.136 46572 173.194.75.103 80 0 - - - - - 0 961 405 Method Not Allowed - - - (empty) - - - text/html - - -1354328891.161077 qSsw6ESzHV4 128.2.6.136 46573 173.194.75.103 80 0 - - - - - 0 925 400 Bad Request - - - (empty) - - - text/html - - -1354328891.204740 iE6yhOq3SF 128.2.6.136 46574 173.194.75.103 80 0 - - - - - 0 925 400 Bad Request - - - (empty) - - - text/html - - -1354328891.245592 GSxOnSLghOa 128.2.6.136 46575 173.194.75.103 80 0 - - - - - 0 925 400 Bad Request - - - (empty) - - - text/html - - -1354328891.287655 qCaWGmzFtM5 128.2.6.136 46576 173.194.75.103 80 0 - - - - - 0 925 400 Bad Request - - - (empty) - - - text/html - - -1354328891.309065 70MGiRM1Qf4 128.2.6.136 46577 173.194.75.103 80 1 CCM_POST www.google.com / - - 0 963 405 Method Not Allowed - - - (empty) - - - text/html - - -1354328895.355012 h5DsfNtYzi1 128.2.6.136 46578 173.194.75.103 80 1 CCM_POST www.google.com /HTTP/1.1 - - 0 925 400 Bad Request - - - (empty) - - - text/html - - -1354328895.416133 P654jzLoe3a 128.2.6.136 46579 173.194.75.103 80 0 - - - - - 0 925 400 Bad Request - - - (empty) - - - text/html - - -1354328895.459490 Tw8jXtpTGu6 128.2.6.136 46580 173.194.75.103 80 0 - - - - - 0 925 400 Bad Request - - - (empty) - - - text/html - - -1354328895.480865 c4Zw9TmAE05 128.2.6.136 46581 173.194.75.103 80 1 CCM_POST www.google.com / - - 0 963 405 Method Not Allowed - - - (empty) - - - text/html - - -1354328899.526682 EAr0uf4mhq 128.2.6.136 46582 173.194.75.103 80 1 CONNECT www.google.com / - - 0 925 400 Bad Request - - - (empty) - - - text/html - - -1354328903.572533 GvmoxJFXdTa 128.2.6.136 46583 173.194.75.103 80 1 CONNECT www.google.com /HTTP/1.1 - - 0 925 400 Bad Request - - - (empty) - - - text/html - - -1354328903.634196 0Q4FH8sESw5 128.2.6.136 46584 173.194.75.103 80 0 - - - - - 0 925 400 Bad Request - - - (empty) - - - text/html - - -1354328903.676395 slFea8xwSmb 128.2.6.136 46585 173.194.75.103 80 0 - - - - - 0 925 400 Bad Request - - - (empty) - - - text/html - - -1354328903.697693 UfGkYA2HI2g 128.2.6.136 46586 173.194.75.103 80 1 CONNECT www.google.com / - - 0 925 400 Bad Request - - - (empty) - - - text/html - - -1354328907.743696 i2rO3KD1Syg 128.2.6.136 46587 173.194.75.103 80 1 TRACE www.google.com / - - 0 960 405 Method Not Allowed - - - (empty) - - - text/html - - -1354328911.790590 2cx26uAvUPl 128.2.6.136 46588 173.194.75.103 80 1 TRACE www.google.com /HTTP/1.1 - - 0 925 400 Bad Request - - - (empty) - - - text/html - - -1354328911.853464 BWaU4aSuwkc 128.2.6.136 46589 173.194.75.103 80 0 - - - - - 0 925 400 Bad Request - - - (empty) - - - text/html - - -1354328911.897044 10XodEwRycf 128.2.6.136 46590 173.194.75.103 80 0 - - - - - 0 925 400 Bad Request - - - (empty) - - - text/html - - -1354328911.918511 zno26fFZkrh 128.2.6.136 46591 173.194.75.103 80 1 TRACE www.google.com / - - 0 960 405 Method Not Allowed - - - (empty) - - - text/html - - -1354328915.964678 v5rgkJBig5l 128.2.6.136 46592 173.194.75.103 80 1 DELETE www.google.com / - - 0 961 405 Method Not Allowed - - - (empty) - - - text/html - - -1354328920.010458 eWZCH7OONC1 128.2.6.136 46593 173.194.75.103 80 1 DELETE www.google.com /HTTP/1.1 - - 0 925 400 Bad Request - - - (empty) - - - text/html - - -1354328920.072101 0Pwk3ntf8O3 128.2.6.136 46594 173.194.75.103 80 0 - - - - - 0 925 400 Bad Request - - - (empty) - - - text/html - - -1354328920.114526 0HKorjr8Zp7 128.2.6.136 46595 173.194.75.103 80 0 - - - - - 0 925 400 Bad Request - - - (empty) - - - text/html - - -1354328920.136714 yC2d6kVg709 128.2.6.136 46596 173.194.75.103 80 1 DELETE www.google.com / - - 0 961 405 Method Not Allowed - - - (empty) - - - text/html - - -1354328924.183211 VcgagLjnO92 128.2.6.136 46597 173.194.75.103 80 1 PUT www.google.com / - - 0 934 411 Length Required - - - (empty) - - - text/html - - -1354328924.224567 bdRoHfaPBo3 128.2.6.136 46598 173.194.75.103 80 1 PUT www.google.com /HTTP/1.1 - - 0 934 411 Length Required - - - (empty) - - - text/html - - -1354328924.287402 zHqb7t7kv28 128.2.6.136 46599 173.194.75.103 80 0 - - - - - 0 925 400 Bad Request - - - (empty) - - - text/html - - -1354328924.328257 rrZWoMUQpv8 128.2.6.136 46600 173.194.75.103 80 0 - - - - - 0 925 400 Bad Request - - - (empty) - - - text/html - - -1354328924.350343 xNYSS2hJkle 128.2.6.136 46601 173.194.75.103 80 1 PUT www.google.com / - - 0 934 411 Length Required - - - (empty) - - - text/html - - -1354328924.391728 vMVjlplKKbd 128.2.6.136 46602 173.194.75.103 80 1 POST www.google.com / - - 0 934 411 Length Required - - - (empty) - - - text/html - - -1354328924.433150 3omNawSNrxj 128.2.6.136 46603 173.194.75.103 80 1 POST www.google.com /HTTP/1.1 - - 0 934 411 Length Required - - - (empty) - - - text/html - - -1354328924.496732 Rv8AJVfi9Zi 128.2.6.136 46604 173.194.75.103 80 0 - - - - - 0 925 400 Bad Request - - - (empty) - - - text/html - - -1354328924.537671 wEyF3OvvcQe 128.2.6.136 46605 173.194.75.103 80 0 - - - - - 0 925 400 Bad Request - - - (empty) - - - text/html - - +#types time string addr port addr port count string string string string string count count count string count string string table[enum] string string table[string] string string string +1354328870.191989 UWkUyAuUGXf 128.2.6.136 46562 173.194.75.103 80 1 OPTIONS www.google.com * - - 0 962 405 Method Not Allowed - - - (empty) - - - text/html; charset=utf-8 - - +1354328874.237327 arKYeMETxOg 128.2.6.136 46563 173.194.75.103 80 1 OPTIONS www.google.com HTTP/1.1 - - 0 925 400 Bad Request - - - (empty) - - - text/html; charset=utf-8 - - +1354328874.299063 k6kgXLOoSKl 128.2.6.136 46564 173.194.75.103 80 0 - - - - - 0 925 400 Bad Request - - - (empty) - - - text/html; charset=utf-8 - - +1354328874.342591 nQcgTWjvg4c 128.2.6.136 46565 173.194.75.103 80 0 - - - - - 0 925 400 Bad Request - - - (empty) - - - text/html; charset=utf-8 - - +1354328874.364020 j4u32Pc5bif 128.2.6.136 46566 173.194.75.103 80 1 GET www.google.com / - - 0 43911 200 OK - - - (empty) - - - text/html; charset=us-ascii - - +1354328878.470424 TEfuqmmG4bh 128.2.6.136 46567 173.194.75.103 80 1 GET www.google.com / - - 0 43983 200 OK - - - (empty) - - - text/html; charset=us-ascii - - +1354328882.575456 FrJExwHcSal 128.2.6.136 46568 173.194.75.103 80 1 GET www.google.com /HTTP/1.1 - - 0 1207 403 Forbidden - - - (empty) - - - text/html; charset=us-ascii - - +1354328882.928027 5OKnoww6xl4 128.2.6.136 46569 173.194.75.103 80 0 - - - - - 0 925 400 Bad Request - - - (empty) - - - text/html; charset=utf-8 - - +1354328882.968948 3PKsZ2Uye21 128.2.6.136 46570 173.194.75.103 80 0 - - - - - 0 925 400 Bad Request - - - (empty) - - - text/html; charset=utf-8 - - +1354328882.990373 VW0XPVINV8a 128.2.6.136 46571 173.194.75.103 80 1 GET www.google.com / - - 0 43913 200 OK - - - (empty) - - - text/html; charset=us-ascii - - +1354328887.114613 fRFu0wcOle6 128.2.6.136 46572 173.194.75.103 80 0 - - - - - 0 961 405 Method Not Allowed - - - (empty) - - - text/html; charset=utf-8 - - +1354328891.161077 qSsw6ESzHV4 128.2.6.136 46573 173.194.75.103 80 0 - - - - - 0 925 400 Bad Request - - - (empty) - - - text/html; charset=utf-8 - - +1354328891.204740 iE6yhOq3SF 128.2.6.136 46574 173.194.75.103 80 0 - - - - - 0 925 400 Bad Request - - - (empty) - - - text/html; charset=utf-8 - - +1354328891.245592 GSxOnSLghOa 128.2.6.136 46575 173.194.75.103 80 0 - - - - - 0 925 400 Bad Request - - - (empty) - - - text/html; charset=utf-8 - - +1354328891.287655 qCaWGmzFtM5 128.2.6.136 46576 173.194.75.103 80 0 - - - - - 0 925 400 Bad Request - - - (empty) - - - text/html; charset=utf-8 - - +1354328891.309065 70MGiRM1Qf4 128.2.6.136 46577 173.194.75.103 80 1 CCM_POST www.google.com / - - 0 963 405 Method Not Allowed - - - (empty) - - - text/html; charset=utf-8 - - +1354328895.355012 h5DsfNtYzi1 128.2.6.136 46578 173.194.75.103 80 1 CCM_POST www.google.com /HTTP/1.1 - - 0 925 400 Bad Request - - - (empty) - - - text/html; charset=utf-8 - - +1354328895.416133 P654jzLoe3a 128.2.6.136 46579 173.194.75.103 80 0 - - - - - 0 925 400 Bad Request - - - (empty) - - - text/html; charset=utf-8 - - +1354328895.459490 Tw8jXtpTGu6 128.2.6.136 46580 173.194.75.103 80 0 - - - - - 0 925 400 Bad Request - - - (empty) - - - text/html; charset=utf-8 - - +1354328895.480865 c4Zw9TmAE05 128.2.6.136 46581 173.194.75.103 80 1 CCM_POST www.google.com / - - 0 963 405 Method Not Allowed - - - (empty) - - - text/html; charset=utf-8 - - +1354328899.526682 EAr0uf4mhq 128.2.6.136 46582 173.194.75.103 80 1 CONNECT www.google.com / - - 0 925 400 Bad Request - - - (empty) - - - text/html; charset=utf-8 - - +1354328903.572533 GvmoxJFXdTa 128.2.6.136 46583 173.194.75.103 80 1 CONNECT www.google.com /HTTP/1.1 - - 0 925 400 Bad Request - - - (empty) - - - text/html; charset=utf-8 - - +1354328903.634196 0Q4FH8sESw5 128.2.6.136 46584 173.194.75.103 80 0 - - - - - 0 925 400 Bad Request - - - (empty) - - - text/html; charset=utf-8 - - +1354328903.676395 slFea8xwSmb 128.2.6.136 46585 173.194.75.103 80 0 - - - - - 0 925 400 Bad Request - - - (empty) - - - text/html; charset=utf-8 - - +1354328903.697693 UfGkYA2HI2g 128.2.6.136 46586 173.194.75.103 80 1 CONNECT www.google.com / - - 0 925 400 Bad Request - - - (empty) - - - text/html; charset=utf-8 - - +1354328907.743696 i2rO3KD1Syg 128.2.6.136 46587 173.194.75.103 80 1 TRACE www.google.com / - - 0 960 405 Method Not Allowed - - - (empty) - - - text/html; charset=utf-8 - - +1354328911.790590 2cx26uAvUPl 128.2.6.136 46588 173.194.75.103 80 1 TRACE www.google.com /HTTP/1.1 - - 0 925 400 Bad Request - - - (empty) - - - text/html; charset=utf-8 - - +1354328911.853464 BWaU4aSuwkc 128.2.6.136 46589 173.194.75.103 80 0 - - - - - 0 925 400 Bad Request - - - (empty) - - - text/html; charset=utf-8 - - +1354328911.897044 10XodEwRycf 128.2.6.136 46590 173.194.75.103 80 0 - - - - - 0 925 400 Bad Request - - - (empty) - - - text/html; charset=utf-8 - - +1354328911.918511 zno26fFZkrh 128.2.6.136 46591 173.194.75.103 80 1 TRACE www.google.com / - - 0 960 405 Method Not Allowed - - - (empty) - - - text/html; charset=utf-8 - - +1354328915.964678 v5rgkJBig5l 128.2.6.136 46592 173.194.75.103 80 1 DELETE www.google.com / - - 0 961 405 Method Not Allowed - - - (empty) - - - text/html; charset=utf-8 - - +1354328920.010458 eWZCH7OONC1 128.2.6.136 46593 173.194.75.103 80 1 DELETE www.google.com /HTTP/1.1 - - 0 925 400 Bad Request - - - (empty) - - - text/html; charset=utf-8 - - +1354328920.072101 0Pwk3ntf8O3 128.2.6.136 46594 173.194.75.103 80 0 - - - - - 0 925 400 Bad Request - - - (empty) - - - text/html; charset=utf-8 - - +1354328920.114526 0HKorjr8Zp7 128.2.6.136 46595 173.194.75.103 80 0 - - - - - 0 925 400 Bad Request - - - (empty) - - - text/html; charset=utf-8 - - +1354328920.136714 yC2d6kVg709 128.2.6.136 46596 173.194.75.103 80 1 DELETE www.google.com / - - 0 961 405 Method Not Allowed - - - (empty) - - - text/html; charset=utf-8 - - +1354328924.183211 VcgagLjnO92 128.2.6.136 46597 173.194.75.103 80 1 PUT www.google.com / - - 0 934 411 Length Required - - - (empty) - - - text/html; charset=utf-8 - - +1354328924.224567 bdRoHfaPBo3 128.2.6.136 46598 173.194.75.103 80 1 PUT www.google.com /HTTP/1.1 - - 0 934 411 Length Required - - - (empty) - - - text/html; charset=utf-8 - - +1354328924.287402 zHqb7t7kv28 128.2.6.136 46599 173.194.75.103 80 0 - - - - - 0 925 400 Bad Request - - - (empty) - - - text/html; charset=utf-8 - - +1354328924.328257 rrZWoMUQpv8 128.2.6.136 46600 173.194.75.103 80 0 - - - - - 0 925 400 Bad Request - - - (empty) - - - text/html; charset=utf-8 - - +1354328924.350343 xNYSS2hJkle 128.2.6.136 46601 173.194.75.103 80 1 PUT www.google.com / - - 0 934 411 Length Required - - - (empty) - - - text/html; charset=utf-8 - - +1354328924.391728 vMVjlplKKbd 128.2.6.136 46602 173.194.75.103 80 1 POST www.google.com / - - 0 934 411 Length Required - - - (empty) - - - text/html; charset=utf-8 - - +1354328924.433150 3omNawSNrxj 128.2.6.136 46603 173.194.75.103 80 1 POST www.google.com /HTTP/1.1 - - 0 934 411 Length Required - - - (empty) - - - text/html; charset=utf-8 - - +1354328924.496732 Rv8AJVfi9Zi 128.2.6.136 46604 173.194.75.103 80 0 - - - - - 0 925 400 Bad Request - - - (empty) - - - text/html; charset=utf-8 - - +1354328924.537671 wEyF3OvvcQe 128.2.6.136 46605 173.194.75.103 80 0 - - - - - 0 925 400 Bad Request - - - (empty) - - - text/html; charset=utf-8 - - 1354328924.559704 E490YZTUozc 128.2.6.136 46606 173.194.75.103 80 1 HEAD www.google.com / - - 0 0 200 OK - - - (empty) - - - - - - 1354328928.625437 YIeWJmXWNWj 128.2.6.136 46607 173.194.75.103 80 1 HEAD www.google.com / - - 0 0 200 OK - - - (empty) - - - - - - 1354328932.692706 ydiZblvsYri 128.2.6.136 46608 173.194.75.103 80 1 HEAD www.google.com /HTTP/1.1 - - 0 0 400 Bad Request - - - (empty) - - - - - - -1354328932.754657 HFYOnBqSE5e 128.2.6.136 46609 173.194.75.103 80 0 - - - - - 0 925 400 Bad Request - - - (empty) - - - text/html - - -1354328932.796568 JcUvhfWUMgd 128.2.6.136 46610 173.194.75.103 80 0 - - - - - 0 925 400 Bad Request - - - (empty) - - - text/html - - -#close 2012-12-07-04-43-19 +1354328932.754657 HFYOnBqSE5e 128.2.6.136 46609 173.194.75.103 80 0 - - - - - 0 925 400 Bad Request - - - (empty) - - - text/html; charset=utf-8 - - +1354328932.796568 JcUvhfWUMgd 128.2.6.136 46610 173.194.75.103 80 0 - - - - - 0 925 400 Bad Request - - - (empty) - - - text/html; charset=utf-8 - - +#close 2013-03-25-20-20-22 From 497496ec8322682e1d82c4a427d0bfabd2382b28 Mon Sep 17 00:00:00 2001 From: Jon Siwek Date: Tue, 26 Mar 2013 15:48:52 -0500 Subject: [PATCH 63/71] FileAnalysis: replace script-layer SMTP file analysis. Notable differences: - Removed SMTP::MD5 notice. - Removed ability to specify mime entity excerpt length per mime-type. --- scripts/base/protocols/http/file-hash.bro | 2 +- .../base/protocols/smtp/entities-excerpt.bro | 51 ++-- scripts/base/protocols/smtp/entities.bro | 260 ++++++++++-------- .../frameworks/intel/smtp-url-extraction.bro | 35 ++- src/MIME.cc | 8 + src/MIME.h | 3 + src/SMTP.cc | 4 + .../file_analysis.log | 6 +- ...25_2.dat => smtp-entity-Ltd7QO7jEv3-1.dat} | 0 ...25_1.dat => smtp-entity-cwR7l6Zctxb-0.dat} | 0 .../smtp_entities.log | 12 +- .../smtp_entities.log | 12 +- .../base/protocols/smtp/mime-extract.test | 21 +- .../scripts/base/protocols/smtp/mime.test | 16 -- 14 files changed, 224 insertions(+), 206 deletions(-) rename testing/btest/Baseline/scripts.base.protocols.smtp.mime-extract/{smtp-entity_10.10.1.4:1470-74.53.140.153:25_2.dat => smtp-entity-Ltd7QO7jEv3-1.dat} (100%) rename testing/btest/Baseline/scripts.base.protocols.smtp.mime-extract/{smtp-entity_10.10.1.4:1470-74.53.140.153:25_1.dat => smtp-entity-cwR7l6Zctxb-0.dat} (100%) diff --git a/scripts/base/protocols/http/file-hash.bro b/scripts/base/protocols/http/file-hash.bro index 7659ba2b97..e24cda0b72 100644 --- a/scripts/base/protocols/http/file-hash.bro +++ b/scripts/base/protocols/http/file-hash.bro @@ -85,5 +85,5 @@ hook FileAnalysis::policy(trig: FileAnalysis::Trigger, info: FileAnalysis::Info) if ( ! info?$source ) return; if ( info$source != "HTTP" ) return; - FileAnalysis::add_action(info$file_id, [$act=FileAnalysis::ACTION_MD5]); + FileAnalysis::remove_action(info$file_id, [$act=FileAnalysis::ACTION_MD5]); } diff --git a/scripts/base/protocols/smtp/entities-excerpt.bro b/scripts/base/protocols/smtp/entities-excerpt.bro index 701ed76399..5d7bbf39e4 100644 --- a/scripts/base/protocols/smtp/entities-excerpt.bro +++ b/scripts/base/protocols/smtp/entities-excerpt.bro @@ -9,44 +9,41 @@ export { redef record SMTP::EntityInfo += { ## The entity body excerpt. excerpt: string &log &default=""; - - ## Internal tracking to know how much of the body should be included - ## in the excerpt. - excerpt_len: count &optional; }; ## This is the default value for how much of the entity body should be ## included for all MIME entities. const default_entity_excerpt_len = 0 &redef; - - ## This table defines how much of various entity bodies should be - ## included in excerpts. - const entity_excerpt_len: table[string] of count = {} - &redef - &default = default_entity_excerpt_len; } -event mime_segment_data(c: connection, length: count, data: string) &priority=-1 +hook FileAnalysis::policy(trig: FileAnalysis::Trigger, info: FileAnalysis::Info) + &priority=5 { - if ( ! c?$smtp ) return; - - if ( c$smtp$current_entity$content_len == 0 ) - c$smtp$current_entity$excerpt_len = entity_excerpt_len[c$smtp$current_entity$mime_type]; + if ( trig != FileAnalysis::TRIGGER_NEW ) return; + if ( ! info?$source ) return; + if ( info$source != "SMTP" ) return; + + if ( default_entity_excerpt_len > info$bof_buffer_size ) + info$bof_buffer_size = default_entity_excerpt_len; } -event mime_segment_data(c: connection, length: count, data: string) &priority=-2 +hook FileAnalysis::policy(trig: FileAnalysis::Trigger, info: FileAnalysis::Info) + &priority=5 { - if ( ! c?$smtp ) return; - - local ent = c$smtp$current_entity; - if ( ent$content_len < ent$excerpt_len ) + if ( trig != FileAnalysis::TRIGGER_BOF_BUFFER ) return; + if ( ! info?$bof_buffer ) return; + if ( ! info?$source ) return; + if ( info$source != "SMTP" ) return; + if ( ! info?$conns ) return; + + for ( cid in info$conns ) { - if ( ent$content_len + length < ent$excerpt_len ) - ent$excerpt = cat(ent$excerpt, data); - else - { - local x_bytes = ent$excerpt_len - ent$content_len; - ent$excerpt = cat(ent$excerpt, sub_bytes(data, 1, x_bytes)); - } + local c: connection = info$conns[cid]; + + if ( ! c?$smtp ) next; + + if ( default_entity_excerpt_len > 0 ) + c$smtp$current_entity$excerpt = + info$bof_buffer[0:default_entity_excerpt_len]; } } diff --git a/scripts/base/protocols/smtp/entities.bro b/scripts/base/protocols/smtp/entities.bro index 80d6089ce7..e67fa7d5e0 100644 --- a/scripts/base/protocols/smtp/entities.bro +++ b/scripts/base/protocols/smtp/entities.bro @@ -7,11 +7,6 @@ module SMTP; export { - redef enum Notice::Type += { - ## Indicates that an MD5 sum was calculated for a MIME message. - MD5, - }; - redef enum Log::ID += { ENTITIES_LOG }; type EntityInfo: record { @@ -34,15 +29,12 @@ export { ## Optionally calculate the file's MD5 sum. Must be set prior to the ## first data chunk being see in an event. calc_md5: bool &default=F; - ## This boolean value indicates if an MD5 sum is being calculated - ## for the current file transfer. - md5_handle: opaque of md5 &optional; ## Optionally write the file to disk. Must be set prior to first ## data chunk being seen in an event. extract_file: bool &default=F; ## Store the file handle here for the file currently being extracted. - extraction_file: file &log &optional; + extraction_file: string &log &optional; }; redef record Info += { @@ -77,6 +69,8 @@ export { global log_mime: event(rec: EntityInfo); } +global extract_count: count = 0; + event bro_init() &priority=5 { Log::create_stream(SMTP::ENTITIES_LOG, [$columns=EntityInfo, $ev=log_mime]); @@ -100,74 +94,155 @@ function set_session(c: connection, new_entity: bool) event mime_begin_entity(c: connection) &priority=10 { if ( ! c?$smtp ) return; - + set_session(c, T); } -# This has priority -10 because other handlers need to know the current -# content_len before it's updated by this handler. -event mime_segment_data(c: connection, length: count, data: string) &priority=-10 +hook FileAnalysis::policy(trig: FileAnalysis::Trigger, info: FileAnalysis::Info) + &priority=5 { - if ( ! c?$smtp ) return; - - c$smtp$current_entity$content_len = c$smtp$current_entity$content_len + length; - } + if ( trig != FileAnalysis::TRIGGER_NEW ) return; + if ( ! info?$source ) return; + if ( info$source != "SMTP" ) return; + if ( ! info?$conns ) return; -event mime_segment_data(c: connection, length: count, data: string) &priority=7 - { - if ( ! c?$smtp ) return; - if ( c$smtp$current_entity$content_len == 0 ) - c$smtp$current_entity$mime_type = split1(identify_data(data, T), /;/)[1]; - } + local fname: string = fmt("%s-%s-%d.dat", extraction_prefix, info$file_id, + extract_count); + local extracting: bool = F; -event mime_segment_data(c: connection, length: count, data: string) &priority=-5 - { - if ( ! c?$smtp ) return; - - if ( c$smtp$current_entity$content_len == 0 ) + for ( cid in info$conns ) { - local entity = c$smtp$current_entity; - if ( generate_md5 in entity$mime_type && ! never_calc_md5 ) - entity$calc_md5 = T; + local c: connection = info$conns[cid]; - if ( entity$calc_md5 ) - entity$md5_handle = md5_hash_init(); - } + if ( ! c?$smtp ) next; - if ( c$smtp$current_entity?$md5_handle ) - md5_hash_update(entity$md5_handle, data); -} + if ( c$smtp$current_entity$extract_file ) + { + if ( ! extracting ) + { + FileAnalysis::add_action(info$file_id, + [$act=FileAnalysis::ACTION_EXTRACT, + $extract_filename=fname]); + extracting = T; + ++extract_count; + } -## In the event of a content gap during the MIME transfer, detect the state for -## the MD5 sum calculation and stop calculating the MD5 since it would be -## incorrect anyway. -event content_gap(c: connection, is_orig: bool, seq: count, length: count) &priority=5 - { - if ( is_orig || ! c?$smtp || ! c$smtp?$current_entity ) return; + c$smtp$current_entity$extraction_file = fname; + } - local entity = c$smtp$current_entity; - if ( entity?$md5_handle ) - { - md5_hash_finish(entity$md5_handle); - delete entity$md5_handle; + if ( c$smtp$current_entity$calc_md5 ) + FileAnalysis::add_action(info$file_id, + [$act=FileAnalysis::ACTION_MD5]); } } -event mime_end_entity(c: connection) &priority=-3 - { - # TODO: this check is only due to a bug in mime_end_entity that - # causes the event to be generated twice for the same real event. - if ( ! c?$smtp || ! c$smtp?$current_entity ) +function check_extract_by_type(info: FileAnalysis::Info) + { + if ( extract_file_types !in info$mime_type ) return; + + for ( act in info$actions ) + if ( act$act == FileAnalysis::ACTION_EXTRACT ) return; + + local fname: string = fmt("%s-%s-%d.dat", extraction_prefix, info$file_id, + extract_count); + ++extract_count; + FileAnalysis::add_action(info$file_id, [$act=FileAnalysis::ACTION_EXTRACT, + $extract_filename=fname]); + + if ( ! info?$conns ) return; + + for ( cid in info$conns ) + { + local c: connection = info$conns[cid]; + + if ( ! c?$smtp ) next; + + c$smtp$current_entity$extraction_file = fname; + } + } + +function check_md5_by_type(info: FileAnalysis::Info) + { + if ( never_calc_md5 ) return; + if ( generate_md5 !in info$mime_type ) return; + + FileAnalysis::add_action(info$file_id, [$act=FileAnalysis::ACTION_MD5]); + } + +hook FileAnalysis::policy(trig: FileAnalysis::Trigger, info: FileAnalysis::Info) + &priority=5 + { + if ( trig != FileAnalysis::TRIGGER_TYPE ) return; + if ( ! info?$mime_type ) return; + if ( ! info?$source ) return; + if ( info$source != "SMTP" ) return; + + if ( info?$conns ) + for ( cid in info$conns ) + { + local c: connection = info$conns[cid]; + + if ( ! c?$smtp ) next; + + c$smtp$current_entity$mime_type = info$mime_type; + } + + check_extract_by_type(info); + check_md5_by_type(info); + } + +hook FileAnalysis::policy(trig: FileAnalysis::Trigger, info: FileAnalysis::Info) + &priority=5 + { + if ( trig != FileAnalysis::TRIGGER_GAP ) return; + if ( ! info?$source ) return; + if ( info$source != "SMTP" ) return; + if ( ! info?$conns ) return; + + for ( cid in info$conns ) + { + local c: connection = info$conns[cid]; + + if ( ! c?$smtp ) next; + if ( ! c$smtp?$current_entity ) next; + + FileAnalysis::remove_action(info$file_id, + [$act=FileAnalysis::ACTION_MD5]); + } + } + +hook FileAnalysis::policy(trig: FileAnalysis::Trigger, info: FileAnalysis::Info) + &priority=5 + { + if ( trig != FileAnalysis::TRIGGER_EOF && + trig != FileAnalysis::TRIGGER_DONE ) return; + if ( ! info?$source ) return; + if ( info$source != "SMTP" ) return; + if ( ! info?$conns ) return; + + for ( cid in info$conns ) + { + local c: connection = info$conns[cid]; + + if ( ! c?$smtp ) next; + if ( ! c$smtp?$current_entity ) next; + # Only log is there was some content. + if ( info$seen_bytes == 0 ) next; + + local act: FileAnalysis::ActionArgs = [$act=FileAnalysis::ACTION_MD5]; + + if ( act in info$actions ) + { + local result = info$actions[act]; + if ( result?$md5 ) + c$smtp$current_entity$md5 = result$md5; + } + + c$smtp$current_entity$content_len = info$seen_bytes; + + Log::write(SMTP::ENTITIES_LOG, c$smtp$current_entity); + delete c$smtp$current_entity; return; - - local entity = c$smtp$current_entity; - if ( entity?$md5_handle ) - { - entity$md5 = md5_hash_finish(entity$md5_handle); - delete entity$md5_handle; - - NOTICE([$note=MD5, $msg=fmt("Calculated a hash for a MIME entity from %s", c$id$orig_h), - $sub=entity$md5, $conn=c]); } } @@ -179,66 +254,7 @@ event mime_one_header(c: connection, h: mime_header_rec) /[fF][iI][lL][eE][nN][aA][mM][eE]/ in h$value ) c$smtp$current_entity$filename = extract_filename_from_content_disposition(h$value); - if ( h$name == "CONTENT-TYPE" && + if ( h$name == "CONTENT-TYPE" && /[nN][aA][mM][eE][:blank:]*=/ in h$value ) c$smtp$current_entity$filename = extract_filename_from_content_disposition(h$value); } - -event mime_end_entity(c: connection) &priority=-5 - { - if ( ! c?$smtp ) return; - - # This check and the delete below are just to cope with a bug where - # mime_end_entity can be generated multiple times for the same event. - if ( ! c$smtp?$current_entity ) - return; - - # Only log is there was some content. - if ( c$smtp$current_entity$content_len > 0 ) - Log::write(SMTP::ENTITIES_LOG, c$smtp$current_entity); - - delete c$smtp$current_entity; - } - -event mime_segment_data(c: connection, length: count, data: string) &priority=5 - { - if ( ! c?$smtp ) return; - - if ( extract_file_types in c$smtp$current_entity$mime_type ) - c$smtp$current_entity$extract_file = T; - } - -event mime_segment_data(c: connection, length: count, data: string) &priority=3 - { - if ( ! c?$smtp ) return; - - if ( c$smtp$current_entity$extract_file && - c$smtp$current_entity$content_len == 0 ) - { - local suffix = fmt("%d.dat", ++c$smtp_state$num_extracted_files); - local fname = generate_extraction_filename(extraction_prefix, c, suffix); - c$smtp$current_entity$extraction_file = open(fname); - enable_raw_output(c$smtp$current_entity$extraction_file); - } - } - -event mime_segment_data(c: connection, length: count, data: string) &priority=-5 - { - if ( ! c?$smtp ) return; - - if ( c$smtp$current_entity$extract_file && c$smtp$current_entity?$extraction_file ) - print c$smtp$current_entity$extraction_file, data; - } - -event mime_end_entity(c: connection) &priority=-3 - { - if ( ! c?$smtp ) return; - - # TODO: this check is only due to a bug in mime_end_entity that - # causes the event to be generated twice for the same real event. - if ( ! c$smtp?$current_entity ) - return; - - if ( c$smtp$current_entity?$extraction_file ) - close(c$smtp$current_entity$extraction_file); - } diff --git a/scripts/policy/frameworks/intel/smtp-url-extraction.bro b/scripts/policy/frameworks/intel/smtp-url-extraction.bro index 78c8f74bf2..c5b5085a10 100644 --- a/scripts/policy/frameworks/intel/smtp-url-extraction.bro +++ b/scripts/policy/frameworks/intel/smtp-url-extraction.bro @@ -1,15 +1,34 @@ @load base/frameworks/intel +@load base/protocols/smtp/file-analysis @load base/utils/urls @load ./where-locations -event mime_segment_data(c: connection, length: count, data: string) &priority=3 +event intel_mime_data(info: FileAnalysis::Info, data: string) { - local urls = find_all_urls_without_scheme(data); - for ( url in urls ) + if ( ! info?$conns ) return; + + for ( cid in info$conns ) { - Intel::seen([$str=url, - $str_type=Intel::URL, - $conn=c, - $where=SMTP::IN_MESSAGE]); + local c: connection = info$conns[cid]; + local urls = find_all_urls_without_scheme(data); + for ( url in urls ) + { + Intel::seen([$str=url, + $str_type=Intel::URL, + $conn=c, + $where=SMTP::IN_MESSAGE]); + } } - } \ No newline at end of file + } + +hook FileAnalysis::policy(trig: FileAnalysis::Trigger, info: FileAnalysis::Info) + &priority=5 + { + if ( trig != FileAnalysis::TRIGGER_NEW ) return; + if ( ! info?$source ) return; + if ( info$source != "SMTP" ) return; + + FileAnalysis::add_action(info$file_id, + [$act=FileAnalysis::ACTION_DATA_EVENT, + $stream_event=intel_mime_data]); + } diff --git a/src/MIME.cc b/src/MIME.cc index b6ffdf96c2..12729f1a07 100644 --- a/src/MIME.cc +++ b/src/MIME.cc @@ -1033,6 +1033,7 @@ MIME_Mail::~MIME_Mail() void MIME_Mail::BeginEntity(MIME_Entity* /* entity */) { + cur_entity_len = 0; if ( mime_begin_entity ) { val_list* vl = new val_list; @@ -1130,6 +1131,7 @@ void MIME_Mail::SubmitData(int len, const char* buf) // is_orig param not available, doesn't matter as long as it's consistent file_mgr->DataIn(reinterpret_cast(buf), len, analyzer->GetTag(), analyzer->Conn(), false); + cur_entity_len += len; buffer_start = (buf + len) - (char*)data_buffer->Bytes(); } @@ -1202,6 +1204,12 @@ void MIME_Mail::SubmitEvent(int event_type, const char* detail) } } +void MIME_Mail::Undelivered(int len) + { + // is_orig param not available, doesn't matter as long as it's consistent + file_mgr->Gap(cur_entity_len, len, analyzer->GetTag(), analyzer->Conn(), + false); + } int strcasecmp_n(data_chunk_t s, const char* t) { diff --git a/src/MIME.h b/src/MIME.h index 82bc36156c..eb30a43bd3 100644 --- a/src/MIME.h +++ b/src/MIME.h @@ -238,6 +238,7 @@ public: int RequestBuffer(int* plen, char** pbuf); void SubmitAllData(); void SubmitEvent(int event_type, const char* detail); + void Undelivered(int len); protected: int min_overlap_length; @@ -252,6 +253,8 @@ protected: vector all_content; BroString* data_buffer; + + uint64 cur_entity_len; }; diff --git a/src/SMTP.cc b/src/SMTP.cc index 85a3bc79dc..0f6dafedc4 100644 --- a/src/SMTP.cc +++ b/src/SMTP.cc @@ -85,9 +85,13 @@ void SMTP_Analyzer::Undelivered(int seq, int len, bool is_orig) Unexpected(is_orig, "content gap", buf_len, buf); if ( state == SMTP_IN_DATA ) + { // Record the SMTP data gap and terminate the // ongoing mail transaction. + if ( mail ) + mail->Undelivered(len); EndData(); + } if ( line_after_gap ) { diff --git a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.logging/file_analysis.log b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.logging/file_analysis.log index f2b116980a..4cd85b8277 100644 --- a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.logging/file_analysis.log +++ b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.logging/file_analysis.log @@ -3,8 +3,8 @@ #empty_field (empty) #unset_field - #path file_analysis -#open 2013-03-25-19-46-10 +#open 2013-03-26-20-26-26 #fields file_id parent_file_id source last_active seen_bytes total_bytes missing_bytes overflow_bytes timeout_interval bof_buffer_size file_type mime_type conn_uids actions_taken extracted_files md5 sha1 sha256 #types string string string time count count count count interval count string string table[string] table[enum] table[string] string string string -Cx92a0ym5R8 - HTTP 1362692527.009775 4705 4705 0 0 120.000000 1024 set set UWkUyAuUGXf FileAnalysis::ACTION_SHA1,FileAnalysis::ACTION_DATA_EVENT,FileAnalysis::ACTION_EXTRACT,FileAnalysis::ACTION_MD5,FileAnalysis::ACTION_SHA256 Cx92a0ym5R8-file 397168fd09991a0e712254df7bc639ac 1dd7ac0398df6cbc0696445a91ec681facf4dc47 4e7c7ef0984119447e743e3ec77e1de52713e345cde03fe7df753a35849bed18 -#close 2013-03-25-19-46-10 +Cx92a0ym5R8 - HTTP 1362692527.009775 4705 4705 0 0 120.000000 1024 set set UWkUyAuUGXf FileAnalysis::ACTION_SHA1,FileAnalysis::ACTION_EXTRACT,FileAnalysis::ACTION_DATA_EVENT,FileAnalysis::ACTION_MD5,FileAnalysis::ACTION_SHA256 Cx92a0ym5R8-file 397168fd09991a0e712254df7bc639ac 1dd7ac0398df6cbc0696445a91ec681facf4dc47 4e7c7ef0984119447e743e3ec77e1de52713e345cde03fe7df753a35849bed18 +#close 2013-03-26-20-26-26 diff --git a/testing/btest/Baseline/scripts.base.protocols.smtp.mime-extract/smtp-entity_10.10.1.4:1470-74.53.140.153:25_2.dat b/testing/btest/Baseline/scripts.base.protocols.smtp.mime-extract/smtp-entity-Ltd7QO7jEv3-1.dat similarity index 100% rename from testing/btest/Baseline/scripts.base.protocols.smtp.mime-extract/smtp-entity_10.10.1.4:1470-74.53.140.153:25_2.dat rename to testing/btest/Baseline/scripts.base.protocols.smtp.mime-extract/smtp-entity-Ltd7QO7jEv3-1.dat diff --git a/testing/btest/Baseline/scripts.base.protocols.smtp.mime-extract/smtp-entity_10.10.1.4:1470-74.53.140.153:25_1.dat b/testing/btest/Baseline/scripts.base.protocols.smtp.mime-extract/smtp-entity-cwR7l6Zctxb-0.dat similarity index 100% rename from testing/btest/Baseline/scripts.base.protocols.smtp.mime-extract/smtp-entity_10.10.1.4:1470-74.53.140.153:25_1.dat rename to testing/btest/Baseline/scripts.base.protocols.smtp.mime-extract/smtp-entity-cwR7l6Zctxb-0.dat diff --git a/testing/btest/Baseline/scripts.base.protocols.smtp.mime-extract/smtp_entities.log b/testing/btest/Baseline/scripts.base.protocols.smtp.mime-extract/smtp_entities.log index 396a2e058d..0ee8782362 100644 --- a/testing/btest/Baseline/scripts.base.protocols.smtp.mime-extract/smtp_entities.log +++ b/testing/btest/Baseline/scripts.base.protocols.smtp.mime-extract/smtp_entities.log @@ -3,10 +3,10 @@ #empty_field (empty) #unset_field - #path smtp_entities -#open 2009-10-05-06-06-10 +#open 2013-03-26-20-43-14 #fields ts uid id.orig_h id.orig_p id.resp_h id.resp_p trans_depth filename content_len mime_type md5 extraction_file excerpt -#types time string addr port addr port count string count string string file string -1254722770.692743 arKYeMETxOg 10.10.1.4 1470 74.53.140.153 25 1 - 79 FAKE_MIME - smtp-entity_10.10.1.4:1470-74.53.140.153:25_1.dat (empty) -1254722770.692743 arKYeMETxOg 10.10.1.4 1470 74.53.140.153 25 1 - 1918 FAKE_MIME - - (empty) -1254722770.692804 arKYeMETxOg 10.10.1.4 1470 74.53.140.153 25 1 NEWS.txt 10823 FAKE_MIME - smtp-entity_10.10.1.4:1470-74.53.140.153:25_2.dat (empty) -#close 2009-10-05-06-06-16 +#types time string addr port addr port count string count string string string string +1254722770.692743 arKYeMETxOg 10.10.1.4 1470 74.53.140.153 25 1 - 79 text/plain; charset=us-ascii - smtp-entity-cwR7l6Zctxb-0.dat (empty) +1254722770.692743 arKYeMETxOg 10.10.1.4 1470 74.53.140.153 25 1 - 1918 text/html; charset=us-ascii - - (empty) +1254722770.692804 arKYeMETxOg 10.10.1.4 1470 74.53.140.153 25 1 NEWS.txt 10823 text/plain; charset=us-ascii - smtp-entity-Ltd7QO7jEv3-1.dat (empty) +#close 2013-03-26-20-43-14 diff --git a/testing/btest/Baseline/scripts.base.protocols.smtp.mime/smtp_entities.log b/testing/btest/Baseline/scripts.base.protocols.smtp.mime/smtp_entities.log index 1abe35e90f..0a342c48dc 100644 --- a/testing/btest/Baseline/scripts.base.protocols.smtp.mime/smtp_entities.log +++ b/testing/btest/Baseline/scripts.base.protocols.smtp.mime/smtp_entities.log @@ -3,10 +3,10 @@ #empty_field (empty) #unset_field - #path smtp_entities -#open 2009-10-05-06-06-10 +#open 2013-03-26-20-39-07 #fields ts uid id.orig_h id.orig_p id.resp_h id.resp_p trans_depth filename content_len mime_type md5 extraction_file excerpt -#types time string addr port addr port count string count string string file string -1254722770.692743 arKYeMETxOg 10.10.1.4 1470 74.53.140.153 25 1 - 79 FAKE_MIME 92bca2e6cdcde73647125da7dccbdd07 - (empty) -1254722770.692743 arKYeMETxOg 10.10.1.4 1470 74.53.140.153 25 1 - 1918 FAKE_MIME - - (empty) -1254722770.692804 arKYeMETxOg 10.10.1.4 1470 74.53.140.153 25 1 NEWS.txt 10823 FAKE_MIME a968bb0f9f9d95835b2e74c845877e87 - (empty) -#close 2009-10-05-06-06-16 +#types time string addr port addr port count string count string string string string +1254722770.692743 arKYeMETxOg 10.10.1.4 1470 74.53.140.153 25 1 - 79 text/plain; charset=us-ascii 92bca2e6cdcde73647125da7dccbdd07 - (empty) +1254722770.692743 arKYeMETxOg 10.10.1.4 1470 74.53.140.153 25 1 - 1918 text/html; charset=us-ascii - - (empty) +1254722770.692804 arKYeMETxOg 10.10.1.4 1470 74.53.140.153 25 1 NEWS.txt 10823 text/plain; charset=us-ascii a968bb0f9f9d95835b2e74c845877e87 - (empty) +#close 2013-03-26-20-39-07 diff --git a/testing/btest/scripts/base/protocols/smtp/mime-extract.test b/testing/btest/scripts/base/protocols/smtp/mime-extract.test index 8dc8bc9e31..54e50d0459 100644 --- a/testing/btest/scripts/base/protocols/smtp/mime-extract.test +++ b/testing/btest/scripts/base/protocols/smtp/mime-extract.test @@ -1,24 +1,11 @@ # @TEST-EXEC: bro -r $TRACES/smtp.trace %INPUT # @TEST-EXEC: btest-diff smtp_entities.log -# @TEST-EXEC: btest-diff smtp-entity_10.10.1.4:1470-74.53.140.153:25_1.dat -# @TEST-EXEC: btest-diff smtp-entity_10.10.1.4:1470-74.53.140.153:25_2.dat +# @TEST-EXEC: btest-diff smtp-entity-cwR7l6Zctxb-0.dat +# @TEST-EXEC: btest-diff smtp-entity-Ltd7QO7jEv3-1.dat # @TEST-EXEC: bro -r $TRACES/smtp.trace %INPUT SMTP::extraction_prefix="test" -# @TEST-EXEC: test -e test_10.10.1.4:1470-74.53.140.153:25_1.dat -# @TEST-EXEC: test -e test_10.10.1.4:1470-74.53.140.153:25_2.dat +# @TEST-EXEC: test -e test-cwR7l6Zctxb-0.dat +# @TEST-EXEC: test -e test-Ltd7QO7jEv3-1.dat @load base/protocols/smtp redef SMTP::extract_file_types=/text\/plain/; - -event bro_init() - { - Log::remove_default_filter(SMTP::ENTITIES_LOG); - Log::add_filter(SMTP::ENTITIES_LOG, [$name="normalized-mime-types", - $pred=function(rec: SMTP::EntityInfo): bool - { - if ( rec?$mime_type ) - rec$mime_type = "FAKE_MIME"; - return T; - } - ]); - } diff --git a/testing/btest/scripts/base/protocols/smtp/mime.test b/testing/btest/scripts/base/protocols/smtp/mime.test index 2b80e148ff..8e7a336987 100644 --- a/testing/btest/scripts/base/protocols/smtp/mime.test +++ b/testing/btest/scripts/base/protocols/smtp/mime.test @@ -1,22 +1,6 @@ -# Checks logging of mime types and md5 calculation. Mime type in the log -# is normalized to prevent sensitivity to libmagic version. - # @TEST-EXEC: bro -r $TRACES/smtp.trace %INPUT # @TEST-EXEC: btest-diff smtp_entities.log @load base/protocols/smtp redef SMTP::generate_md5=/text\/plain/; - -event bro_init() - { - Log::remove_default_filter(SMTP::ENTITIES_LOG); - Log::add_filter(SMTP::ENTITIES_LOG, [$name="normalized-mime-types", - $pred=function(rec: SMTP::EntityInfo): bool - { - if ( rec?$mime_type ) - rec$mime_type = "FAKE_MIME"; - return T; - } - ]); - } From 621fe51c82ad60902a0de4f82ad4d694ba4b3039 Mon Sep 17 00:00:00 2001 From: Jon Siwek Date: Tue, 26 Mar 2013 15:52:12 -0500 Subject: [PATCH 64/71] FileAnalysis: fix access of invalidated std::map iterator. --- src/file_analysis/Info.cc | 5 +++-- src/file_analysis/Manager.cc | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/file_analysis/Info.cc b/src/file_analysis/Info.cc index 8e18795ba6..e22cf66124 100644 --- a/src/file_analysis/Info.cc +++ b/src/file_analysis/Info.cc @@ -77,7 +77,7 @@ void Info::StaticInit() } Info::Info(const string& unique, Connection* conn, AnalyzerTag::Tag tag) - : file_id(unique), unique(unique), val(0), postpone_timeout(false), + : file_id(""), unique(unique), val(0), postpone_timeout(false), need_reassembly(false), done(false), actions(this) { StaticInit(); @@ -338,13 +338,14 @@ void Info::DataIn(const u_char* data, uint64 len) void Info::EndOfFile() { if ( done ) return; - done = true; actions.DrainModifications(); // Send along anything that's been buffered, but never flushed. ReplayBOF(); + done = true; + Action* act = 0; IterCookie* c = actions.InitForIteration(); diff --git a/src/file_analysis/Manager.cc b/src/file_analysis/Manager.cc index bad46b8fd9..21d9c6bd07 100644 --- a/src/file_analysis/Manager.cc +++ b/src/file_analysis/Manager.cc @@ -303,8 +303,8 @@ bool Manager::RemoveFile(const string& unique) reporter->Error("No mapping for fileID %s", id.c_str()); ignored.erase(unique); - str_map.erase(unique); delete it->second; + str_map.erase(unique); return true; } From 7e895a3a2f5ec0bca210674ab494fb8359f39d53 Mon Sep 17 00:00:00 2001 From: Jon Siwek Date: Wed, 27 Mar 2013 12:59:38 -0500 Subject: [PATCH 65/71] FileAnalysis: replace script-layer FTP file analysis. The notable difference here is that ftp.log now logs by default the PORT, PASV, EPRT, EPSV commands as well as a separate line for ftp-data channels in which file extraction was requested. This difference isn't a direct result of now doing the file extraction through the file analysis framework, it's just because I noticed even the old way of tracking extracted-file name didn't work right and this was the way I came up with so that a locally extracted file can be associated with a data channel and then that data channel associated with a control channel. --- scripts/base/protocols/ftp/file-analysis.bro | 26 ++++- scripts/base/protocols/ftp/file-extract.bro | 108 ++++++++++++------ scripts/base/protocols/ftp/main.bro | 55 ++++++--- scripts/base/protocols/smtp/entities.bro | 3 - .../conn.log | 14 +++ .../ftp-item-BTsa70Ua9x7-1.dat | 5 + .../ftp-item-Rqjkzoroau4-0.dat | 6 + .../ftp-item-VLQvJybrm38-2.dat | 6 + .../ftp-item-zrfwSs9K1yk-3.dat | 5 + .../ftp.log | 21 ++++ .../ftp.log | 16 ++- .../ftp.log | 17 ++- .../base/protocols/ftp/ftp-extract.bro | 12 ++ 13 files changed, 227 insertions(+), 67 deletions(-) create mode 100644 testing/btest/Baseline/scripts.base.protocols.ftp.ftp-extract/conn.log create mode 100644 testing/btest/Baseline/scripts.base.protocols.ftp.ftp-extract/ftp-item-BTsa70Ua9x7-1.dat create mode 100644 testing/btest/Baseline/scripts.base.protocols.ftp.ftp-extract/ftp-item-Rqjkzoroau4-0.dat create mode 100644 testing/btest/Baseline/scripts.base.protocols.ftp.ftp-extract/ftp-item-VLQvJybrm38-2.dat create mode 100644 testing/btest/Baseline/scripts.base.protocols.ftp.ftp-extract/ftp-item-zrfwSs9K1yk-3.dat create mode 100644 testing/btest/Baseline/scripts.base.protocols.ftp.ftp-extract/ftp.log create mode 100644 testing/btest/scripts/base/protocols/ftp/ftp-extract.bro diff --git a/scripts/base/protocols/ftp/file-analysis.bro b/scripts/base/protocols/ftp/file-analysis.bro index 9a435cb8ec..9131be6ab2 100644 --- a/scripts/base/protocols/ftp/file-analysis.bro +++ b/scripts/base/protocols/ftp/file-analysis.bro @@ -14,9 +14,29 @@ export { ## Default file handle provider for FTP. function get_file_handle(c: connection, is_orig: bool): string { - if ( is_orig ) return ""; - return fmt("%s %s %s", ANALYZER_FTP_DATA, c$start_time, - id_string(c$id)); + if ( [c$id$resp_h, c$id$resp_p] !in ftp_data_expected ) return ""; + + local info: FTP::Info = ftp_data_expected[c$id$resp_h, c$id$resp_p]; + + local rval = fmt("%s %s %s", ANALYZER_FTP_DATA, c$start_time, + id_string(c$id)); + + if ( info$passive ) + # FTP client initiates data channel. + if ( is_orig ) + # Don't care about FTP client data. + return ""; + else + # Do care about FTP server data. + return rval; + else + # FTP server initiates dta channel. + if ( is_orig ) + # Do care about FTP server data. + return rval; + else + # Don't care about FTP client data. + return ""; } } diff --git a/scripts/base/protocols/ftp/file-extract.bro b/scripts/base/protocols/ftp/file-extract.bro index 7cee4995ba..e1e0044efb 100644 --- a/scripts/base/protocols/ftp/file-extract.bro +++ b/scripts/base/protocols/ftp/file-extract.bro @@ -13,54 +13,96 @@ export { const extraction_prefix = "ftp-item" &redef; } +global extract_count: count = 0; + redef record Info += { ## On disk file where it was extracted to. - extraction_file: file &log &optional; + extraction_file: string &log &optional; ## Indicates if the current command/response pair should attempt to ## extract the file if a file was transferred. extract_file: bool &default=F; - - ## Internal tracking of the total number of files extracted during this - ## session. - num_extracted_files: count &default=0; }; -event file_transferred(c: connection, prefix: string, descr: string, - mime_type: string) &priority=3 +hook FileAnalysis::policy(trig: FileAnalysis::Trigger, info: FileAnalysis::Info) + &priority=5 { - local id = c$id; - if ( [id$resp_h, id$resp_p] !in ftp_data_expected ) - return; - - local s = ftp_data_expected[id$resp_h, id$resp_p]; + if ( trig != FileAnalysis::TRIGGER_NEW ) return; + if ( ! info?$source ) return; + if ( info$source != "FTP_DATA" ) return; + if ( ! info?$conns ) return; - if ( extract_file_types in s$mime_type ) + local fname: string = fmt("%s-%s-%d.dat", extraction_prefix, info$file_id, + extract_count); + local extracting: bool = F; + + for ( cid in info$conns ) { - s$extract_file = T; - ++s$num_extracted_files; + local c: connection = info$conns[cid]; + + if ( [cid$resp_h, cid$resp_p] !in ftp_data_expected ) next; + + local s = ftp_data_expected[cid$resp_h, cid$resp_p]; + + if ( ! s$extract_file ) next; + + if ( ! extracting ) + { + FileAnalysis::add_action(info$file_id, + [$act=FileAnalysis::ACTION_EXTRACT, + $extract_filename=fname]); + extracting = T; + ++extract_count; + } } } -event file_transferred(c: connection, prefix: string, descr: string, - mime_type: string) &priority=-4 +hook FileAnalysis::policy(trig: FileAnalysis::Trigger, info: FileAnalysis::Info) + &priority=5 { - local id = c$id; - if ( [id$resp_h, id$resp_p] !in ftp_data_expected ) - return; - - local s = ftp_data_expected[id$resp_h, id$resp_p]; - - if ( s$extract_file ) - { - local suffix = fmt("%d.dat", s$num_extracted_files); - local fname = generate_extraction_filename(extraction_prefix, c, suffix); - s$extraction_file = open(fname); - if ( s$passive ) - set_contents_file(id, CONTENTS_RESP, s$extraction_file); - else - set_contents_file(id, CONTENTS_ORIG, s$extraction_file); - } + if ( trig != FileAnalysis::TRIGGER_TYPE ) return; + if ( ! info?$mime_type ) return; + if ( ! info?$source ) return; + if ( info$source != "FTP_DATA" ) return; + if ( extract_file_types !in info$mime_type ) return; + + for ( act in info$actions ) + if ( act$act == FileAnalysis::ACTION_EXTRACT ) return; + + local fname: string = fmt("%s-%s-%d.dat", extraction_prefix, info$file_id, + extract_count); + ++extract_count; + FileAnalysis::add_action(info$file_id, [$act=FileAnalysis::ACTION_EXTRACT, + $extract_filename=fname]); + } + +hook FileAnalysis::policy(trig: FileAnalysis::Trigger, info: FileAnalysis::Info) + &priority=5 + { + if ( trig != FileAnalysis::TRIGGER_EOF && + trig != FileAnalysis::TRIGGER_DONE ) return; + if ( ! info?$source ) return; + if ( info$source != "FTP_DATA" ) return; + + for ( act in info$actions ) + if ( act$act == FileAnalysis::ACTION_EXTRACT ) + { + local s: FTP::Info; + s$ts = network_time(); + s$tags = set(); + s$user = ""; + s$extraction_file = act$extract_filename; + + if ( info?$conns ) + for ( cid in info$conns ) + { + s$uid = info$conns[cid]$uid; + s$id = cid; + break; + } + + Log::write(FTP::LOG, s); + } } event log_ftp(rec: Info) &priority=-10 diff --git a/scripts/base/protocols/ftp/main.bro b/scripts/base/protocols/ftp/main.bro index 893ab7ce50..94a3b1f222 100644 --- a/scripts/base/protocols/ftp/main.bro +++ b/scripts/base/protocols/ftp/main.bro @@ -16,7 +16,8 @@ export { ## List of commands that should have their command/response pairs logged. const logged_commands = { - "APPE", "DELE", "RETR", "STOR", "STOU", "ACCT" + "APPE", "DELE", "RETR", "STOR", "STOU", "ACCT", "PORT", "PASV", "EPRT", + "EPSV" } &redef; ## This setting changes if passwords used in FTP sessions are captured or not. @@ -24,6 +25,18 @@ export { ## User IDs that can be considered "anonymous". const guest_ids = { "anonymous", "ftp", "ftpuser", "guest" } &redef; + + ## The expected endpoints of an FTP data channel. + type ExpectedDataChannel: record { + ## Whether PASV mode is toggled for control channel. + passive: bool &log; + ## The host that will be initiating the data connection. + orig_h: addr &log; + ## The host that will be accepting the data connection. + resp_h: addr &log; + ## The port at which the acceptor is listening for the data connection. + resp_p: port &log; + }; type Info: record { ## Time when the command was sent. @@ -54,7 +67,10 @@ export { reply_msg: string &log &optional; ## Arbitrary tags that may indicate a particular attribute of this command. tags: set[string] &log &default=set(); - + + ## Expected FTP data channel. + data_channel: ExpectedDataChannel &log &optional; + ## Current working directory that this session is in. By making ## the default value '/.', we can indicate that unless something ## more concrete is discovered that the existing but unknown @@ -103,7 +119,7 @@ redef dpd_config += { [ANALYZER_FTP] = [$ports = ports] }; redef likely_server_ports += { 21/tcp, 2811/tcp }; # Establish the variable for tracking expected connections. -global ftp_data_expected: table[addr, port] of Info &create_expire=5mins; +global ftp_data_expected: table[addr, port] of Info &read_expire=5mins; event bro_init() &priority=5 { @@ -180,7 +196,7 @@ function ftp_message(s: Info) delete s$arg; else s$arg=arg; - + Log::write(FTP::LOG, s); } @@ -190,8 +206,19 @@ function ftp_message(s: Info) delete s$mime_type; delete s$mime_desc; delete s$file_size; + # Same with data channel. + delete s$data_channel; # Tags are cleared everytime too. - delete s$tags; + s$tags = set(); + } + +function add_expected_data_channel(s: Info, chan: ExpectedDataChannel) + { + s$passive = chan$passive; + s$data_channel = chan; + ftp_data_expected[chan$resp_h, chan$resp_p] = s; + expect_connection(chan$orig_h, chan$resp_h, chan$resp_p, ANALYZER_FTP_DATA, + 5mins); } event ftp_request(c: connection, command: string, arg: string) &priority=5 @@ -226,10 +253,8 @@ event ftp_request(c: connection, command: string, arg: string) &priority=5 if ( data$valid ) { - c$ftp$passive=F; - ftp_data_expected[data$h, data$p] = c$ftp; - expect_connection(id$resp_h, data$h, data$p, ANALYZER_FTP_DATA, - 5mins); + add_expected_data_channel(c$ftp, [$passive=F, $orig_h=id$resp_h, + $resp_h=data$h, $resp_p=data$p]); } else { @@ -280,10 +305,9 @@ event ftp_reply(c: connection, code: count, msg: string, cont_resp: bool) &prior if ( code == 229 && data$h == [::] ) data$h = id$resp_h; - - ftp_data_expected[data$h, data$p] = c$ftp; - expect_connection(id$orig_h, data$h, data$p, ANALYZER_FTP_DATA, - 5mins); + + add_expected_data_channel(c$ftp, [$passive=T, $orig_h=id$orig_h, + $resp_h=data$h, $resp_p=data$p]); } else { @@ -333,14 +357,13 @@ event file_transferred(c: connection, prefix: string, descr: string, } } -event file_transferred(c: connection, prefix: string, descr: string, - mime_type: string) &priority=-5 +event connection_state_remove(c: connection) &priority=-5 { local id = c$id; if ( [id$resp_h, id$resp_p] in ftp_data_expected ) delete ftp_data_expected[id$resp_h, id$resp_p]; } - + # Use state remove event to cover connections terminated by RST. event connection_state_remove(c: connection) &priority=-5 { diff --git a/scripts/base/protocols/smtp/entities.bro b/scripts/base/protocols/smtp/entities.bro index e67fa7d5e0..d009068ad0 100644 --- a/scripts/base/protocols/smtp/entities.bro +++ b/scripts/base/protocols/smtp/entities.bro @@ -43,9 +43,6 @@ export { }; redef record State += { - ## Store a count of the number of files that have been transferred in - ## a conversation to create unique file names on disk. - num_extracted_files: count &default=0; ## Track the number of MIME encoded files transferred during a session. mime_level: count &default=0; }; diff --git a/testing/btest/Baseline/scripts.base.protocols.ftp.ftp-extract/conn.log b/testing/btest/Baseline/scripts.base.protocols.ftp.ftp-extract/conn.log new file mode 100644 index 0000000000..52f7d90401 --- /dev/null +++ b/testing/btest/Baseline/scripts.base.protocols.ftp.ftp-extract/conn.log @@ -0,0 +1,14 @@ +#separator \x09 +#set_separator , +#empty_field (empty) +#unset_field - +#path conn +#open 2013-03-27-17-47-03 +#fields ts uid id.orig_h id.orig_p id.resp_h id.resp_p proto service duration orig_bytes resp_bytes conn_state local_orig missed_bytes history orig_pkts orig_ip_bytes resp_pkts resp_ip_bytes tunnel_parents +#types time string addr port addr port enum string interval count count string bool count string count count count count table[string] +1329843175.736107 arKYeMETxOg 141.142.220.235 37604 199.233.217.249 56666 tcp ftp-data 0.112432 0 342 SF - 0 ShAdfFa 4 216 4 562 (empty) +1329843179.871641 k6kgXLOoSKl 141.142.220.235 59378 199.233.217.249 56667 tcp ftp-data 0.111218 0 77 SF - 0 ShAdfFa 4 216 4 297 (empty) +1329843194.151526 nQcgTWjvg4c 199.233.217.249 61920 141.142.220.235 33582 tcp ftp-data 0.056211 342 0 SF - 0 ShADaFf 5 614 3 164 (empty) +1329843197.783443 j4u32Pc5bif 199.233.217.249 61918 141.142.220.235 37835 tcp ftp-data 0.056005 77 0 SF - 0 ShADaFf 5 349 3 164 (empty) +1329843161.968492 UWkUyAuUGXf 141.142.220.235 50003 199.233.217.249 21 tcp ftp 38.055625 180 3146 SF - 0 ShAdDfFa 38 2164 25 4458 (empty) +#close 2013-03-27-17-47-03 diff --git a/testing/btest/Baseline/scripts.base.protocols.ftp.ftp-extract/ftp-item-BTsa70Ua9x7-1.dat b/testing/btest/Baseline/scripts.base.protocols.ftp.ftp-extract/ftp-item-BTsa70Ua9x7-1.dat new file mode 100644 index 0000000000..a59965e6f6 --- /dev/null +++ b/testing/btest/Baseline/scripts.base.protocols.ftp.ftp-extract/ftp-item-BTsa70Ua9x7-1.dat @@ -0,0 +1,5 @@ +User-agent: * +Disallow: *.tgz +Disallow: *.gz +Disallow: *.tbz +Disallow: *.bz2 diff --git a/testing/btest/Baseline/scripts.base.protocols.ftp.ftp-extract/ftp-item-Rqjkzoroau4-0.dat b/testing/btest/Baseline/scripts.base.protocols.ftp.ftp-extract/ftp-item-Rqjkzoroau4-0.dat new file mode 100644 index 0000000000..8bd2e31300 --- /dev/null +++ b/testing/btest/Baseline/scripts.base.protocols.ftp.ftp-extract/ftp-item-Rqjkzoroau4-0.dat @@ -0,0 +1,6 @@ +total 98028 +lrwxrwxr-x 1 root wheel 32 Aug 16 2009 .message -> pub/NetBSD/README.export-control +drwxr-x--x 3 root wheel 512 Aug 16 2009 etc +-rw-rw-r-- 1 600 netbsd 50158695 Feb 21 03:10 ls-lRA.gz +drwxr-xr-x 7 root wheel 512 Aug 20 2009 pub +-rw-rw-r-- 1 root wheel 77 Aug 16 2009 robots.txt diff --git a/testing/btest/Baseline/scripts.base.protocols.ftp.ftp-extract/ftp-item-VLQvJybrm38-2.dat b/testing/btest/Baseline/scripts.base.protocols.ftp.ftp-extract/ftp-item-VLQvJybrm38-2.dat new file mode 100644 index 0000000000..8bd2e31300 --- /dev/null +++ b/testing/btest/Baseline/scripts.base.protocols.ftp.ftp-extract/ftp-item-VLQvJybrm38-2.dat @@ -0,0 +1,6 @@ +total 98028 +lrwxrwxr-x 1 root wheel 32 Aug 16 2009 .message -> pub/NetBSD/README.export-control +drwxr-x--x 3 root wheel 512 Aug 16 2009 etc +-rw-rw-r-- 1 600 netbsd 50158695 Feb 21 03:10 ls-lRA.gz +drwxr-xr-x 7 root wheel 512 Aug 20 2009 pub +-rw-rw-r-- 1 root wheel 77 Aug 16 2009 robots.txt diff --git a/testing/btest/Baseline/scripts.base.protocols.ftp.ftp-extract/ftp-item-zrfwSs9K1yk-3.dat b/testing/btest/Baseline/scripts.base.protocols.ftp.ftp-extract/ftp-item-zrfwSs9K1yk-3.dat new file mode 100644 index 0000000000..a59965e6f6 --- /dev/null +++ b/testing/btest/Baseline/scripts.base.protocols.ftp.ftp-extract/ftp-item-zrfwSs9K1yk-3.dat @@ -0,0 +1,5 @@ +User-agent: * +Disallow: *.tgz +Disallow: *.gz +Disallow: *.tbz +Disallow: *.bz2 diff --git a/testing/btest/Baseline/scripts.base.protocols.ftp.ftp-extract/ftp.log b/testing/btest/Baseline/scripts.base.protocols.ftp.ftp-extract/ftp.log new file mode 100644 index 0000000000..89526602c2 --- /dev/null +++ b/testing/btest/Baseline/scripts.base.protocols.ftp.ftp-extract/ftp.log @@ -0,0 +1,21 @@ +#separator \x09 +#set_separator , +#empty_field (empty) +#unset_field - +#path ftp +#open 2013-03-27-17-47-03 +#fields ts uid id.orig_h id.orig_p id.resp_h id.resp_p user password command arg mime_type mime_desc file_size reply_code reply_msg tags data_channel.passive data_channel.orig_h data_channel.resp_h data_channel.resp_p extraction_file +#types time string addr port addr port string string string string string string count count string table[string] bool addr addr port string +1329843175.680248 UWkUyAuUGXf 141.142.220.235 50003 199.233.217.249 21 anonymous test PASV - - - - 227 Entering Passive Mode (199,233,217,249,221,90) (empty) T 141.142.220.235 199.233.217.249 56666 - +1329843175.791528 UWkUyAuUGXf 141.142.220.235 50003 199.233.217.249 21 anonymous test LIST - - - - 226 Transfer complete. (empty) - - - - - +1329843179.815947 UWkUyAuUGXf 141.142.220.235 50003 199.233.217.249 21 anonymous test PASV - - - - 227 Entering Passive Mode (199,233,217,249,221,91) (empty) T 141.142.220.235 199.233.217.249 56667 - +1329843193.984222 arKYeMETxOg 141.142.220.235 37604 199.233.217.249 56666 - - - - - - - - (empty) - - - - ftp-item-Rqjkzoroau4-0.dat +1329843193.984222 k6kgXLOoSKl 141.142.220.235 59378 199.233.217.249 56667 - - - - - - - - (empty) - - - - ftp-item-BTsa70Ua9x7-1.dat +1329843179.926563 UWkUyAuUGXf 141.142.220.235 50003 199.233.217.249 21 anonymous test RETR ftp://199.233.217.249/./robots.txt text/plain ASCII text 77 226 Transfer complete. (empty) - - - - - +1329843194.040188 UWkUyAuUGXf 141.142.220.235 50003 199.233.217.249 21 anonymous test PORT 141,142,220,235,131,46 - - - 200 PORT command successful. (empty) F 199.233.217.249 141.142.220.235 33582 - +1329843194.095782 UWkUyAuUGXf 141.142.220.235 50003 199.233.217.249 21 anonymous test LIST - - - - 226 Transfer complete. (empty) - - - - - +1329843197.672179 UWkUyAuUGXf 141.142.220.235 50003 199.233.217.249 21 anonymous test PORT 141,142,220,235,147,203 - - - 200 PORT command successful. (empty) F 199.233.217.249 141.142.220.235 37835 - +1329843199.968212 nQcgTWjvg4c 199.233.217.249 61920 141.142.220.235 33582 - - - - - - - - (empty) - - - - ftp-item-VLQvJybrm38-2.dat +1329843197.727769 UWkUyAuUGXf 141.142.220.235 50003 199.233.217.249 21 anonymous test RETR ftp://199.233.217.249/./robots.txt text/plain ASCII text, with CRLF line terminators 77 226 Transfer complete. (empty) - - - - - +1329843200.079930 j4u32Pc5bif 199.233.217.249 61918 141.142.220.235 37835 - - - - - - - - (empty) - - - - ftp-item-zrfwSs9K1yk-3.dat +#close 2013-03-27-17-47-03 diff --git a/testing/btest/Baseline/scripts.base.protocols.ftp.ftp-ipv4/ftp.log b/testing/btest/Baseline/scripts.base.protocols.ftp.ftp-ipv4/ftp.log index 0d0a8f57f1..6b05d924d3 100644 --- a/testing/btest/Baseline/scripts.base.protocols.ftp.ftp-ipv4/ftp.log +++ b/testing/btest/Baseline/scripts.base.protocols.ftp.ftp-ipv4/ftp.log @@ -3,9 +3,13 @@ #empty_field (empty) #unset_field - #path ftp -#open 2012-02-21-16-53-13 -#fields ts uid id.orig_h id.orig_p id.resp_h id.resp_p user password command arg mime_type mime_desc file_size reply_code reply_msg tags extraction_file -#types time string addr port addr port string string string string string string count count string table[string] file -1329843179.926563 UWkUyAuUGXf 141.142.220.235 50003 199.233.217.249 21 anonymous test RETR ftp://199.233.217.249/./robots.txt text/plain ASCII text 77 226 Transfer complete. - - -1329843197.727769 UWkUyAuUGXf 141.142.220.235 50003 199.233.217.249 21 anonymous test RETR ftp://199.233.217.249/./robots.txt text/plain ASCII text, with CRLF line terminators 77 226 Transfer complete. - - -#close 2012-02-21-16-53-20 +#open 2013-03-27-17-47-22 +#fields ts uid id.orig_h id.orig_p id.resp_h id.resp_p user password command arg mime_type mime_desc file_size reply_code reply_msg tags data_channel.passive data_channel.orig_h data_channel.resp_h data_channel.resp_p extraction_file +#types time string addr port addr port string string string string string string count count string table[string] bool addr addr port string +1329843175.680248 UWkUyAuUGXf 141.142.220.235 50003 199.233.217.249 21 anonymous test PASV - - - - 227 Entering Passive Mode (199,233,217,249,221,90) (empty) T 141.142.220.235 199.233.217.249 56666 - +1329843179.815947 UWkUyAuUGXf 141.142.220.235 50003 199.233.217.249 21 anonymous test PASV - - - - 227 Entering Passive Mode (199,233,217,249,221,91) (empty) T 141.142.220.235 199.233.217.249 56667 - +1329843179.926563 UWkUyAuUGXf 141.142.220.235 50003 199.233.217.249 21 anonymous test RETR ftp://199.233.217.249/./robots.txt text/plain ASCII text 77 226 Transfer complete. (empty) - - - - - +1329843194.040188 UWkUyAuUGXf 141.142.220.235 50003 199.233.217.249 21 anonymous test PORT 141,142,220,235,131,46 - - - 200 PORT command successful. (empty) F 199.233.217.249 141.142.220.235 33582 - +1329843197.672179 UWkUyAuUGXf 141.142.220.235 50003 199.233.217.249 21 anonymous test PORT 141,142,220,235,147,203 - - - 200 PORT command successful. (empty) F 199.233.217.249 141.142.220.235 37835 - +1329843197.727769 UWkUyAuUGXf 141.142.220.235 50003 199.233.217.249 21 anonymous test RETR ftp://199.233.217.249/./robots.txt text/plain ASCII text, with CRLF line terminators 77 226 Transfer complete. (empty) - - - - - +#close 2013-03-27-17-47-22 diff --git a/testing/btest/Baseline/scripts.base.protocols.ftp.ftp-ipv6/ftp.log b/testing/btest/Baseline/scripts.base.protocols.ftp.ftp-ipv6/ftp.log index 62ea4df18d..ea0c07a0c9 100644 --- a/testing/btest/Baseline/scripts.base.protocols.ftp.ftp-ipv6/ftp.log +++ b/testing/btest/Baseline/scripts.base.protocols.ftp.ftp-ipv6/ftp.log @@ -3,9 +3,14 @@ #empty_field (empty) #unset_field - #path ftp -#open 2012-02-15-17-43-07 -#fields ts uid id.orig_h id.orig_p id.resp_h id.resp_p user password command arg mime_type mime_desc file_size reply_code reply_msg tags extraction_file -#types time string addr port addr port string string string string string string count count string table[string] file -1329327787.396984 UWkUyAuUGXf 2001:470:1f11:81f:c999:d94:aa7c:2e3e 49185 2001:470:4867:99::21 21 anonymous test RETR ftp://[2001:470:4867:99::21]/robots.txt - - 77 226 Transfer complete. - - -1329327795.463946 UWkUyAuUGXf 2001:470:1f11:81f:c999:d94:aa7c:2e3e 49185 2001:470:4867:99::21 21 anonymous test RETR ftp://[2001:470:4867:99::21]/robots.txt - - 77 226 Transfer complete. - - -#close 2012-02-15-17-43-24 +#open 2013-03-27-17-50-35 +#fields ts uid id.orig_h id.orig_p id.resp_h id.resp_p user password command arg mime_type mime_desc file_size reply_code reply_msg tags data_channel.passive data_channel.orig_h data_channel.resp_h data_channel.resp_p extraction_file +#types time string addr port addr port string string string string string string count count string table[string] bool addr addr port string +1329327783.207785 UWkUyAuUGXf 2001:470:1f11:81f:c999:d94:aa7c:2e3e 49185 2001:470:4867:99::21 21 anonymous test EPSV - - - - 229 Entering Extended Passive Mode (|||57086|) (empty) T 2001:470:1f11:81f:c999:d94:aa7c:2e3e 2001:470:4867:99::21 57086 - +1329327786.415755 UWkUyAuUGXf 2001:470:1f11:81f:c999:d94:aa7c:2e3e 49185 2001:470:4867:99::21 21 anonymous test EPSV - - - - 229 Entering Extended Passive Mode (|||57087|) (empty) T 2001:470:1f11:81f:c999:d94:aa7c:2e3e 2001:470:4867:99::21 57087 - +1329327787.180814 UWkUyAuUGXf 2001:470:1f11:81f:c999:d94:aa7c:2e3e 49185 2001:470:4867:99::21 21 anonymous test EPSV - - - - 229 Entering Extended Passive Mode (|||57088|) (empty) T 2001:470:1f11:81f:c999:d94:aa7c:2e3e 2001:470:4867:99::21 57088 - +1329327787.396984 UWkUyAuUGXf 2001:470:1f11:81f:c999:d94:aa7c:2e3e 49185 2001:470:4867:99::21 21 anonymous test RETR ftp://[2001:470:4867:99::21]/robots.txt - - 77 226 Transfer complete. (empty) - - - - - +1329327795.355248 UWkUyAuUGXf 2001:470:1f11:81f:c999:d94:aa7c:2e3e 49185 2001:470:4867:99::21 21 anonymous test EPRT |2|2001:470:1f11:81f:c999:d94:aa7c:2e3e|49189| - - - 200 EPRT command successful. (empty) F 2001:470:4867:99::21 2001:470:1f11:81f:c999:d94:aa7c:2e3e 49189 - +1329327795.463946 UWkUyAuUGXf 2001:470:1f11:81f:c999:d94:aa7c:2e3e 49185 2001:470:4867:99::21 21 anonymous test RETR ftp://[2001:470:4867:99::21]/robots.txt - - 77 226 Transfer complete. (empty) - - - - - +1329327799.799327 UWkUyAuUGXf 2001:470:1f11:81f:c999:d94:aa7c:2e3e 49185 2001:470:4867:99::21 21 anonymous test EPRT |2|2001:470:1f11:81f:c999:d94:aa7c:2e3e|49190| - - - 200 EPRT command successful. (empty) F 2001:470:4867:99::21 2001:470:1f11:81f:c999:d94:aa7c:2e3e 49190 - +#close 2013-03-27-17-50-35 diff --git a/testing/btest/scripts/base/protocols/ftp/ftp-extract.bro b/testing/btest/scripts/base/protocols/ftp/ftp-extract.bro new file mode 100644 index 0000000000..9ae5280757 --- /dev/null +++ b/testing/btest/scripts/base/protocols/ftp/ftp-extract.bro @@ -0,0 +1,12 @@ +# This tests FTP file extraction. +# +# @TEST-EXEC: bro -r $TRACES/ftp/ipv4.trace %INPUT +# @TEST-EXEC: btest-diff conn.log +# @TEST-EXEC: btest-diff ftp.log +# @TEST-EXEC: btest-diff ftp-item-Rqjkzoroau4-0.dat +# @TEST-EXEC: btest-diff ftp-item-BTsa70Ua9x7-1.dat +# @TEST-EXEC: btest-diff ftp-item-VLQvJybrm38-2.dat +# @TEST-EXEC: btest-diff ftp-item-zrfwSs9K1yk-3.dat + +redef FTP::logged_commands += {"LIST"}; +redef FTP::extract_file_types=/.*/; From 27e47f0a57c253f56a48a163e1a3dc875b22ca57 Mon Sep 17 00:00:00 2001 From: Jon Siwek Date: Wed, 27 Mar 2013 14:02:20 -0500 Subject: [PATCH 66/71] FileAnalysis: replace script-layer IRC file analysis. --- scripts/base/protocols/ftp/file-extract.bro | 2 +- scripts/base/protocols/ftp/main.bro | 4 +- scripts/base/protocols/irc/dcc-send.bro | 172 +++++++++++++----- .../scripts.base.protocols.irc.basic/irc.log | 6 +- ...4_1.dat => irc-dcc-item-wqKMAamJVSb-0.dat} | Bin .../irc.log | 8 +- .../base/protocols/irc/dcc-extract.test | 4 +- 7 files changed, 138 insertions(+), 58 deletions(-) rename testing/btest/Baseline/scripts.base.protocols.irc.dcc-extract/{irc-dcc-item_192.168.1.77:57655-209.197.168.151:1024_1.dat => irc-dcc-item-wqKMAamJVSb-0.dat} (100%) diff --git a/scripts/base/protocols/ftp/file-extract.bro b/scripts/base/protocols/ftp/file-extract.bro index e1e0044efb..b659e779a0 100644 --- a/scripts/base/protocols/ftp/file-extract.bro +++ b/scripts/base/protocols/ftp/file-extract.bro @@ -77,7 +77,7 @@ hook FileAnalysis::policy(trig: FileAnalysis::Trigger, info: FileAnalysis::Info) } hook FileAnalysis::policy(trig: FileAnalysis::Trigger, info: FileAnalysis::Info) - &priority=5 + &priority=-5 { if ( trig != FileAnalysis::TRIGGER_EOF && trig != FileAnalysis::TRIGGER_DONE ) return; diff --git a/scripts/base/protocols/ftp/main.bro b/scripts/base/protocols/ftp/main.bro index 94a3b1f222..817e00b188 100644 --- a/scripts/base/protocols/ftp/main.bro +++ b/scripts/base/protocols/ftp/main.bro @@ -359,9 +359,7 @@ event file_transferred(c: connection, prefix: string, descr: string, event connection_state_remove(c: connection) &priority=-5 { - local id = c$id; - if ( [id$resp_h, id$resp_p] in ftp_data_expected ) - delete ftp_data_expected[id$resp_h, id$resp_p]; + delete ftp_data_expected[c$id$resp_h, c$id$resp_p]; } # Use state remove event to cover connections terminated by RST. diff --git a/scripts/base/protocols/irc/dcc-send.bro b/scripts/base/protocols/irc/dcc-send.bro index 1f3e20cdaf..ead48debbb 100644 --- a/scripts/base/protocols/irc/dcc-send.bro +++ b/scripts/base/protocols/irc/dcc-send.bro @@ -28,69 +28,146 @@ export { dcc_file_size: count &log &optional; ## Sniffed mime type of the file. dcc_mime_type: string &log &optional; - + ## The file handle for the file to be extracted - extraction_file: file &log &optional; - + extraction_file: string &log &optional; + ## A boolean to indicate if the current file transfer should be extracted. extract_file: bool &default=F; - - ## The count of the number of file that have been extracted during the session. - num_extracted_files: count &default=0; }; } -global dcc_expected_transfers: table[addr, port] of Info = table(); +global dcc_expected_transfers: table[addr, port] of Info &read_expire=5mins; -event file_transferred(c: connection, prefix: string, descr: string, - mime_type: string) &priority=3 +global extract_count: count = 0; + +hook FileAnalysis::policy(trig: FileAnalysis::Trigger, info: FileAnalysis::Info) + &priority=5 { - local id = c$id; - if ( [id$resp_h, id$resp_p] !in dcc_expected_transfers ) - return; - - local irc = dcc_expected_transfers[id$resp_h, id$resp_p]; - - irc$dcc_mime_type = split1(mime_type, /;/)[1]; + if ( trig != FileAnalysis::TRIGGER_NEW ) return; + if ( ! info?$source ) return; + if ( info$source != "IRC_DATA" ) return; + if ( ! info?$conns ) return; - if ( extract_file_types == irc$dcc_mime_type ) + local fname: string = fmt("%s-%s-%d.dat", extraction_prefix, info$file_id, + extract_count); + local extracting: bool = F; + + for ( cid in info$conns ) { - irc$extract_file = T; - } - - if ( irc$extract_file ) - { - local suffix = fmt("%d.dat", ++irc$num_extracted_files); - local fname = generate_extraction_filename(extraction_prefix, c, suffix); - irc$extraction_file = open(fname); + local c: connection = info$conns[cid]; + + if ( [cid$resp_h, cid$resp_p] !in dcc_expected_transfers ) next; + + local s = dcc_expected_transfers[cid$resp_h, cid$resp_p]; + + if ( ! s$extract_file ) next; + + if ( ! extracting ) + { + FileAnalysis::add_action(info$file_id, + [$act=FileAnalysis::ACTION_EXTRACT, + $extract_filename=fname]); + extracting = T; + ++extract_count; + } + + s$extraction_file = fname; } } -event file_transferred(c: connection, prefix: string, descr: string, - mime_type: string) &priority=-4 +function set_dcc_mime(info: FileAnalysis::Info) { - local id = c$id; - if ( [id$resp_h, id$resp_p] !in dcc_expected_transfers ) + if ( ! info?$conns ) return; + + for ( cid in info$conns ) + { + local c: connection = info$conns[cid]; + + if ( [cid$resp_h, cid$resp_p] !in dcc_expected_transfers ) next; + + local s = dcc_expected_transfers[cid$resp_h, cid$resp_p]; + + s$dcc_mime_type = info$mime_type; + } + } + +function set_dcc_extraction_file(info: FileAnalysis::Info, filename: string) + { + if ( ! info?$conns ) return; + + for ( cid in info$conns ) + { + local c: connection = info$conns[cid]; + + if ( [cid$resp_h, cid$resp_p] !in dcc_expected_transfers ) next; + + local s = dcc_expected_transfers[cid$resp_h, cid$resp_p]; + + s$extraction_file = filename; + } + } + +function log_dcc(info: FileAnalysis::Info) + { + if ( ! info?$conns ) return; + + for ( cid in info$conns ) + { + local c: connection = info$conns[cid]; + + if ( [cid$resp_h, cid$resp_p] !in dcc_expected_transfers ) next; + + local irc = dcc_expected_transfers[cid$resp_h, cid$resp_p]; + + local tmp = irc$command; + irc$command = "DCC"; + Log::write(IRC::LOG, irc); + irc$command = tmp; + + # Delete these values in case another DCC transfer + # happens during the IRC session. + delete irc$extract_file; + delete irc$extraction_file; + delete irc$dcc_file_name; + delete irc$dcc_file_size; + delete irc$dcc_mime_type; + return; + } + } - local irc = dcc_expected_transfers[id$resp_h, id$resp_p]; +hook FileAnalysis::policy(trig: FileAnalysis::Trigger, info: FileAnalysis::Info) + &priority=5 + { + if ( trig != FileAnalysis::TRIGGER_TYPE ) return; + if ( ! info?$mime_type ) return; + if ( ! info?$source ) return; + if ( info$source != "IRC_DATA" ) return; - local tmp = irc$command; - irc$command = "DCC"; - Log::write(IRC::LOG, irc); - irc$command = tmp; + set_dcc_mime(info); - if ( irc?$extraction_file ) - set_contents_file(id, CONTENTS_RESP, irc$extraction_file); + if ( extract_file_types !in info$mime_type ) return; - # Delete these values in case another DCC transfer - # happens during the IRC session. - delete irc$extract_file; - delete irc$extraction_file; - delete irc$dcc_file_name; - delete irc$dcc_file_size; - delete irc$dcc_mime_type; - delete dcc_expected_transfers[id$resp_h, id$resp_p]; + for ( act in info$actions ) + if ( act$act == FileAnalysis::ACTION_EXTRACT ) return; + + local fname: string = fmt("%s-%s-%d.dat", extraction_prefix, info$file_id, + extract_count); + ++extract_count; + FileAnalysis::add_action(info$file_id, [$act=FileAnalysis::ACTION_EXTRACT, + $extract_filename=fname]); + set_dcc_extraction_file(info, fname); + } + +hook FileAnalysis::policy(trig: FileAnalysis::Trigger, info: FileAnalysis::Info) + &priority=-5 + { + if ( trig != FileAnalysis::TRIGGER_TYPE ) return; + if ( ! info?$source ) return; + if ( info$source != "IRC_DATA" ) return; + + log_dcc(info); } event irc_dcc_message(c: connection, is_orig: bool, @@ -100,7 +177,7 @@ event irc_dcc_message(c: connection, is_orig: bool, { set_session(c); if ( dcc_type != "SEND" ) - return; + return; c$irc$dcc_file_name = argument; c$irc$dcc_file_size = size; local p = count_to_port(dest_port, tcp); @@ -114,3 +191,8 @@ event expected_connection_seen(c: connection, a: count) &priority=10 if ( [id$resp_h, id$resp_p] in dcc_expected_transfers ) add c$service["irc-dcc-data"]; } + +event connection_state_remove(c: connection) &priority=-5 + { + delete dcc_expected_transfers[c$id$resp_h, c$id$resp_p]; + } diff --git a/testing/btest/Baseline/scripts.base.protocols.irc.basic/irc.log b/testing/btest/Baseline/scripts.base.protocols.irc.basic/irc.log index 46adaa4c3e..64bdb41861 100644 --- a/testing/btest/Baseline/scripts.base.protocols.irc.basic/irc.log +++ b/testing/btest/Baseline/scripts.base.protocols.irc.basic/irc.log @@ -3,11 +3,11 @@ #empty_field (empty) #unset_field - #path irc -#open 2011-07-20-19-12-44 +#open 2013-03-27-18-51-40 #fields ts uid id.orig_h id.orig_p id.resp_h id.resp_p nick user command value addl dcc_file_name dcc_file_size extraction_file -#types time string addr port addr port string string string string string string count file +#types time string addr port addr port string string string string string string count string 1311189164.119437 UWkUyAuUGXf 192.168.1.77 57640 66.198.80.67 6667 - - NICK bloed - - - - 1311189164.119437 UWkUyAuUGXf 192.168.1.77 57640 66.198.80.67 6667 bloed - USER sdkfje sdkfje Montreal.QC.CA.Undernet.org dkdkrwq - - - 1311189174.474127 UWkUyAuUGXf 192.168.1.77 57640 66.198.80.67 6667 bloed sdkfje JOIN #easymovies (empty) - - - 1311189316.326025 UWkUyAuUGXf 192.168.1.77 57640 66.198.80.67 6667 bloed sdkfje DCC #easymovies (empty) ladyvampress-default(2011-07-07)-OS.zip 42208 - -#close 2011-07-20-19-15-42 +#close 2013-03-27-18-51-40 diff --git a/testing/btest/Baseline/scripts.base.protocols.irc.dcc-extract/irc-dcc-item_192.168.1.77:57655-209.197.168.151:1024_1.dat b/testing/btest/Baseline/scripts.base.protocols.irc.dcc-extract/irc-dcc-item-wqKMAamJVSb-0.dat similarity index 100% rename from testing/btest/Baseline/scripts.base.protocols.irc.dcc-extract/irc-dcc-item_192.168.1.77:57655-209.197.168.151:1024_1.dat rename to testing/btest/Baseline/scripts.base.protocols.irc.dcc-extract/irc-dcc-item-wqKMAamJVSb-0.dat diff --git a/testing/btest/Baseline/scripts.base.protocols.irc.dcc-extract/irc.log b/testing/btest/Baseline/scripts.base.protocols.irc.dcc-extract/irc.log index e204a627b1..4e70587ff0 100644 --- a/testing/btest/Baseline/scripts.base.protocols.irc.dcc-extract/irc.log +++ b/testing/btest/Baseline/scripts.base.protocols.irc.dcc-extract/irc.log @@ -3,11 +3,11 @@ #empty_field (empty) #unset_field - #path irc -#open 2011-07-20-19-12-44 +#open 2013-03-27-18-49-16 #fields ts uid id.orig_h id.orig_p id.resp_h id.resp_p nick user command value addl dcc_file_name dcc_file_size dcc_mime_type extraction_file -#types time string addr port addr port string string string string string string count string file +#types time string addr port addr port string string string string string string count string string 1311189164.119437 UWkUyAuUGXf 192.168.1.77 57640 66.198.80.67 6667 - - NICK bloed - - - - - 1311189164.119437 UWkUyAuUGXf 192.168.1.77 57640 66.198.80.67 6667 bloed - USER sdkfje sdkfje Montreal.QC.CA.Undernet.org dkdkrwq - - - - 1311189174.474127 UWkUyAuUGXf 192.168.1.77 57640 66.198.80.67 6667 bloed sdkfje JOIN #easymovies (empty) - - - - -1311189316.326025 UWkUyAuUGXf 192.168.1.77 57640 66.198.80.67 6667 bloed sdkfje DCC #easymovies (empty) ladyvampress-default(2011-07-07)-OS.zip 42208 FAKE_MIME irc-dcc-item_192.168.1.77:57655-209.197.168.151:1024_1.dat -#close 2011-07-20-19-15-42 +1311189316.326025 UWkUyAuUGXf 192.168.1.77 57640 66.198.80.67 6667 bloed sdkfje DCC #easymovies (empty) ladyvampress-default(2011-07-07)-OS.zip 42208 FAKE_MIME irc-dcc-item-wqKMAamJVSb-0.dat +#close 2013-03-27-18-49-16 diff --git a/testing/btest/scripts/base/protocols/irc/dcc-extract.test b/testing/btest/scripts/base/protocols/irc/dcc-extract.test index b6bf43ac50..8a6680f99b 100644 --- a/testing/btest/scripts/base/protocols/irc/dcc-extract.test +++ b/testing/btest/scripts/base/protocols/irc/dcc-extract.test @@ -4,9 +4,9 @@ # @TEST-EXEC: bro -r $TRACES/irc-dcc-send.trace %INPUT # @TEST-EXEC: btest-diff irc.log -# @TEST-EXEC: btest-diff irc-dcc-item_192.168.1.77:57655-209.197.168.151:1024_1.dat +# @TEST-EXEC: btest-diff irc-dcc-item-wqKMAamJVSb-0.dat # @TEST-EXEC: bro -r $TRACES/irc-dcc-send.trace %INPUT IRC::extraction_prefix="test" -# @TEST-EXEC: test -e test_192.168.1.77:57655-209.197.168.151:1024_1.dat +# @TEST-EXEC: test -e test-wqKMAamJVSb-0.dat redef IRC::extract_file_types=/.*/; From dce3e6448f98eb404cd950a641ab494feb0785d9 Mon Sep 17 00:00:00 2001 From: Jon Siwek Date: Wed, 27 Mar 2013 14:50:15 -0500 Subject: [PATCH 67/71] FileAnalysis: fix a memory leak. --- src/file_analysis/Info.cc | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/file_analysis/Info.cc b/src/file_analysis/Info.cc index e22cf66124..51c7a53241 100644 --- a/src/file_analysis/Info.cc +++ b/src/file_analysis/Info.cc @@ -12,11 +12,14 @@ using namespace file_analysis; -static TableVal* empty_connection_table() +static Val* empty_connection_table() { TypeList* tbl_index = new TypeList(conn_id); tbl_index->Append(conn_id->Ref()); - return new TableVal(new TableType(tbl_index, connection_type->Ref())); + TableType* tbl_type = new TableType(tbl_index, connection_type->Ref()); + Val* rval = new TableVal(tbl_type); + Unref(tbl_type); + return rval; } static RecordVal* get_conn_id_val(const Connection* conn) From 7caa4aa45cc9389a03eff9c847b3735afe01237c Mon Sep 17 00:00:00 2001 From: Jon Siwek Date: Wed, 27 Mar 2013 14:51:23 -0500 Subject: [PATCH 68/71] FileAnalysis: unit test tweaks (portability, etc.) --- .../a.size | 2 +- .../b.size | 2 +- .../c.size | 2 +- .../http.ds.txt | 2 +- .../frameworks/file-analysis/http/partial-content.bro | 6 +++--- testing/scripts/diff-canonifier | 3 ++- testing/scripts/file-analysis-test.bro | 9 ++++++--- 7 files changed, 15 insertions(+), 11 deletions(-) diff --git a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.partial-content/a.size b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.partial-content/a.size index 10b907508c..13d0c3c958 100644 --- a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.partial-content/a.size +++ b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.partial-content/a.size @@ -1 +1 @@ - 555523 7gZBKVUgy4l-file0 +555523 7gZBKVUgy4l-file0 diff --git a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.partial-content/b.size b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.partial-content/b.size index d4ade48a31..c1c1d71db7 100644 --- a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.partial-content/b.size +++ b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.partial-content/b.size @@ -1 +1 @@ - 1022920 oDwT1BbzjM1-file0 +1022920 oDwT1BbzjM1-file0 diff --git a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.partial-content/c.size b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.partial-content/c.size index 88415185cd..da0f4d480c 100644 --- a/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.partial-content/c.size +++ b/testing/btest/Baseline/scripts.base.frameworks.file-analysis.http.partial-content/c.size @@ -1 +1 @@ - 498668 uHS14uhRKGe-file0 +498668 uHS14uhRKGe-file0 diff --git a/testing/btest/Baseline/scripts.base.frameworks.logging.dataseries.wikipedia/http.ds.txt b/testing/btest/Baseline/scripts.base.frameworks.logging.dataseries.wikipedia/http.ds.txt index bea50e6aba..bcfad8fd80 100644 --- a/testing/btest/Baseline/scripts.base.frameworks.logging.dataseries.wikipedia/http.ds.txt +++ b/testing/btest/Baseline/scripts.base.frameworks.logging.dataseries.wikipedia/http.ds.txt @@ -61,7 +61,7 @@ - + # Extent, type='http' ts uid id.orig_h id.orig_p id.resp_h id.resp_p trans_depth method host uri referrer user_agent request_body_len response_body_len status_code status_msg info_code info_msg filename tags username password proxied mime_type md5 extraction_file diff --git a/testing/btest/scripts/base/frameworks/file-analysis/http/partial-content.bro b/testing/btest/scripts/base/frameworks/file-analysis/http/partial-content.bro index 9361184881..6773c6aa11 100644 --- a/testing/btest/scripts/base/frameworks/file-analysis/http/partial-content.bro +++ b/testing/btest/scripts/base/frameworks/file-analysis/http/partial-content.bro @@ -1,16 +1,16 @@ # @TEST-EXEC: bro -r $TRACES/http/206_example_a.pcap $SCRIPTS/file-analysis-test.bro %INPUT >a.out # @TEST-EXEC: btest-diff a.out -# @TEST-EXEC: wc -c 7gZBKVUgy4l-file0 >a.size +# @TEST-EXEC: wc -c 7gZBKVUgy4l-file0 | sed 's/^[ \t]* //g' >a.size # @TEST-EXEC: btest-diff a.size # @TEST-EXEC: bro -r $TRACES/http/206_example_b.pcap $SCRIPTS/file-analysis-test.bro %INPUT >b.out # @TEST-EXEC: btest-diff b.out -# @TEST-EXEC: wc -c oDwT1BbzjM1-file0 >b.size +# @TEST-EXEC: wc -c oDwT1BbzjM1-file0 | sed 's/^[ \t]* //g' >b.size # @TEST-EXEC: btest-diff b.size # @TEST-EXEC: bro -r $TRACES/http/206_example_c.pcap $SCRIPTS/file-analysis-test.bro %INPUT >c.out # @TEST-EXEC: btest-diff c.out -# @TEST-EXEC: wc -c uHS14uhRKGe-file0 >c.size +# @TEST-EXEC: wc -c uHS14uhRKGe-file0 | sed 's/^[ \t]* //g' >c.size # @TEST-EXEC: btest-diff c.size global cnt: count = 0; diff --git a/testing/scripts/diff-canonifier b/testing/scripts/diff-canonifier index 3cb213a3f7..aef9173cc8 100755 --- a/testing/scripts/diff-canonifier +++ b/testing/scripts/diff-canonifier @@ -2,4 +2,5 @@ # # Default canonifier used with the tests in testing/btest/*. -`dirname $0`/diff-remove-timestamps +`dirname $0`/diff-remove-timestamps \ + | `dirname $0`/diff-remove-mime-types diff --git a/testing/scripts/file-analysis-test.bro b/testing/scripts/file-analysis-test.bro index 2e1d107ffb..a52a8ec29b 100644 --- a/testing/scripts/file-analysis-test.bro +++ b/testing/scripts/file-analysis-test.bro @@ -76,13 +76,16 @@ hook FileAnalysis::policy(trig: FileAnalysis::Trigger, info: FileAnalysis::Info) for ( act in info$actions ) switch ( act$act ) { case FileAnalysis::ACTION_MD5: - print fmt("MD5: %s", info$actions[act]$md5); + if ( info$actions[act]?$md5 ) + print fmt("MD5: %s", info$actions[act]$md5); break; case FileAnalysis::ACTION_SHA1: - print fmt("SHA1: %s", info$actions[act]$sha1); + if ( info$actions[act]?$sha1 ) + print fmt("SHA1: %s", info$actions[act]$sha1); break; case FileAnalysis::ACTION_SHA256: - print fmt("SHA256: %s", info$actions[act]$sha256); + if ( info$actions[act]?$sha256 ) + print fmt("SHA256: %s", info$actions[act]$sha256); break; } break; From f5d8ed299decd9891e1360f57e52d06174ae6f3a Mon Sep 17 00:00:00 2001 From: Jon Siwek Date: Wed, 27 Mar 2013 16:22:23 -0500 Subject: [PATCH 69/71] Fix memory leak in HashVal subclass ctors. The instantiation of OpaqueType here is ref'd by the Val ctor, which has a corresponding deref in the Val dtor, but a deref is still needed for the instantiation itself. --- src/OpaqueVal.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/OpaqueVal.h b/src/OpaqueVal.h index 0428e50bdb..a4a1741334 100644 --- a/src/OpaqueVal.h +++ b/src/OpaqueVal.h @@ -36,7 +36,7 @@ public: u_char key[MD5_DIGEST_LENGTH], u_char result[MD5_DIGEST_LENGTH]); - MD5Val() : HashVal(new OpaqueType("md5")) { } + MD5Val() : HashVal(new OpaqueType("md5")) { Unref(Type()); } protected: friend class Val; @@ -55,7 +55,7 @@ class SHA1Val : public HashVal { public: static void digest(val_list& vlist, u_char result[SHA_DIGEST_LENGTH]); - SHA1Val() : HashVal(new OpaqueType("sha1")) { } + SHA1Val() : HashVal(new OpaqueType("sha1")) { Unref(Type()); } protected: friend class Val; @@ -74,7 +74,7 @@ class SHA256Val : public HashVal { public: static void digest(val_list& vlist, u_char result[SHA256_DIGEST_LENGTH]); - SHA256Val() : HashVal(new OpaqueType("sha256")) { } + SHA256Val() : HashVal(new OpaqueType("sha256")) { Unref(Type()); } protected: friend class Val; From abaa5d3eaf66a08c3a15ef6b285eebef6e6dc4ce Mon Sep 17 00:00:00 2001 From: Jon Siwek Date: Wed, 27 Mar 2013 16:31:25 -0500 Subject: [PATCH 70/71] FileAnalysis: fix memory leak when adding actions. --- src/file_analysis/ActionSet.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/src/file_analysis/ActionSet.cc b/src/file_analysis/ActionSet.cc index 2e055a5c24..51cab26478 100644 --- a/src/file_analysis/ActionSet.cc +++ b/src/file_analysis/ActionSet.cc @@ -164,6 +164,7 @@ void ActionSet::InsertAction(Action* act, HashKey* key) DBG_LOG(DBG_FILE_ANALYSIS, "Add action %d for file id %s", act->Tag(), info->GetFileID().c_str()); action_map.Insert(key, act); + delete key; info->GetVal()->Lookup(Info::actions_idx)->AsTableVal()->Assign(act->Args(), new RecordVal(BifType::Record::FileAnalysis::ActionResults)); } From f0e9cdc30a0c2aefcea5479ed68ca6a564e41086 Mon Sep 17 00:00:00 2001 From: Jon Siwek Date: Wed, 27 Mar 2013 16:33:33 -0500 Subject: [PATCH 71/71] FileAnalysis: add a memory leak unit test. --- .../btest/core/leaks/file-analysis-http-get.bro | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 testing/btest/core/leaks/file-analysis-http-get.bro diff --git a/testing/btest/core/leaks/file-analysis-http-get.bro b/testing/btest/core/leaks/file-analysis-http-get.bro new file mode 100644 index 0000000000..ff54917e15 --- /dev/null +++ b/testing/btest/core/leaks/file-analysis-http-get.bro @@ -0,0 +1,14 @@ +# Needs perftools support. +# +# @TEST-REQUIRES: bro --help 2>&1 | grep -q mem-leaks +# +# @TEST-GROUP: leaks +# +# @TEST-EXEC: HEAP_CHECK_DUMP_DIRECTORY=. HEAPCHECK=local bro -m -r $TRACES/http/get.trace $SCRIPTS/file-analysis-test.bro %INPUT + +redef test_file_analysis_source = "HTTP"; + +redef test_get_file_name = function(info: FileAnalysis::Info): string + { + return fmt("%s-file", info$file_id); + };

    ;WC1)%V4BAlP`q&{qP(Z3G$F&lIXvWvS1%DnoFL?^x!dp#CnQJCApAb%VVMXsF zro3mGh>@Rlwp$MeP}z$}elAD2BPw|r^B`z%+2T0N>GcYJs;f+l5LN0pJdZ)i^m58s zps-O_s58W8e|HarX)|HHi+%N=J_Km5wy_30?O5m^AnpcNhIWG&7f8h@tiC z`TX-{g4tE$mmUpVVcwcmPEW=8Ns9r9G~RtY$uMJm2@c+Yjb=DT8v{5FjzH?3NTM;w zE5YW<3RPi8`jOVk5piLSE6S8yQu{urKuto%$NE13gXoBN$+u z-XW?WJB*U`$VY1eg!5KT(o*r}rRyv5q`0`Wu(yt`1kGA~G`67lsuPuoA>jEB`JMlp z{MdhyAL8HS?_Bza{6PjlK;R8OZnWfut##_QD%2}aJLPXkt0>hIspMUb&4ZguUFC3@ zdpA?GQ^-9BiVH{380I2Ly*brz#K`2pM$G)`rif3yMq&-*)BBI7cZuo18}yO6T3ATw zeBFidO{%S7H&UUh<9tO%qQl0(S0|GwaC-+l5jhL-;T`mMZmo!-T4r-)7wF}I9#0J$ zX0AureOE_Cl$2&2Fi1-z9!7w z{1%GNlC#!A9QpG(r~%v)VKO6UU{OWm8~j1~;#^MY1jgU1C^o zna)yREEe|8xl`xiP&DN4^Al}}3_-ZzUg*8yHrphAlr7!0gX`1NSV^s78$s25@IFK8 zgV;BVhq|5DEE0!8v(oi6Y8}ywtG_490=6xVj}N>7nV~P%5*C65^BS0-4K!v~ zy_Wr}yhF+Kq0$#a(go+)9t#LeESKhtBN9?;vT5i#ho(mo&-$%)=+ZC)6|y0+Jzv2_ zLe9xEc)M(Vqq{bnP`?BZuF1(N-F}Ulh?}kTeY`BV zsUylDiTb2(j9jd^tm#k|sMcbe_c=^4hSLe0`9%$Kw{xnNGviv-S(lrGwQE|Fo=L;l z<$UJ%mFdiGYs2M!7A+~|Le>*K6%t`TDHULxJ@`|PEl`||Dxt4D3~|!RQ2f6V3g_QP zwk;w?WgRsyU%DVNeQ3&@rV`Fg@_LV+xMlP``9ZPCXk@JTryUty`cmT zi&6{Sg5Ap|3$=t(=sn>LxVPwTFt0@Q@d*q>C%NSxIZQJil{dcRTL*#%s#5JyT40hT zBG{qF5{BBo5!Y|}eW{B|_A;j-;!3wK>&5t05oL08h=VXM<8fJnXFXmmuXgeh8<;dT zHGq%JKv@vtY(;H>CfL>2C<&cMi5p*;m@46;$yVYBw4i%5)DnKmK!9ho3g8@uyOtg3 z)o@U_&rn!c44Oz&kD^@QYHBx1S#`;}l_$!Y#7-P563pTtgfg__Ca>-_ut^G-ZF(MW z(wERmR%gAAPZlIf{lq=viI>1kbICvo4tob~q?x$l_c;md;UZ2M-(JQ#wFn8+wdyu? zJWzXdsm$j)xZuwQu@`dQe>cR5 z9Ie+!PqY6R>Ra-p-5O6|T=Y;0(XBx}J7LBi#1NXRh~kjt4kM-Eo=skQhmSbDCq!qQ z6>5*y-?7C~TzwyYtKyu(!6)A*>1+b19pTvShji6cgDrb<{dN5ltwlIjlZcrc%E}zV z&pOI<|GSA^f0oUC^OC%^Fob57gMTLx@x@O!lH3QRXtDzJ(tdv{miX3%4KgV#H!sYF z^3u_V{ zZTY7!WKP8Yy8eLkSBilDJ4O1V|4EUVKp-H+w~$-2FbYNdhxgktc&Os=h9B0=r&H#= zr7LF1vqn#O7Iv2x&AO>>$e=k}7Dm)j3|@GzD+!@hgA78P6qzG9*BJ>gUzSw~Qi7cl zQ(DT5j^raWJHZ}@vhZ2QPIe+*p8+)s@4MiLy?P`1vEM2e2~>WpYq2*NCXKwgDO}k{ z;@$XE1QSFNwGkn$lOm-R0TjnvtKk%1#`V>Lw*6%2K+ zCp`8=C%$vO9=w+$rPKDL5^CnA`;(ONDG�uswmb6SSOU^Bq_HL<_e+R^df_S=VR8 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%0A?7WF&Ob%~qDIqC{le&LQU( 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