mirror of
https://github.com/zeek/zeek.git
synced 2025-10-11 19:18:19 +00:00
Merge branch 'master' of ssh://git.bro.org/bro
This commit is contained in:
commit
1ee4734f5d
23 changed files with 178 additions and 38 deletions
9
CHANGES
9
CHANGES
|
@ -1,4 +1,13 @@
|
||||||
|
|
||||||
|
2.2-120 | 2014-01-28 10:25:23 -0800
|
||||||
|
|
||||||
|
* Fix and extend x509_extension() event, which now actually returns
|
||||||
|
the extension. (Bernhard Amann)
|
||||||
|
|
||||||
|
New event signauture:
|
||||||
|
|
||||||
|
event x509_extension(c: connection, is_orig: bool, cert:X509, extension: X509_extension_info)
|
||||||
|
|
||||||
2.2-117 | 2014-01-23 14:18:19 -0800
|
2.2-117 | 2014-01-23 14:18:19 -0800
|
||||||
|
|
||||||
* Fixing initialization context in anonymous functions. (Robin
|
* Fixing initialization context in anonymous functions. (Robin
|
||||||
|
|
5
NEWS
5
NEWS
|
@ -36,6 +36,11 @@ Changed Functionality
|
||||||
|
|
||||||
- Notice::end_suppression() has been removed.
|
- Notice::end_suppression() has been removed.
|
||||||
|
|
||||||
|
- Bro now parses X.509 extensions headers and, as a result, the
|
||||||
|
corresponding event got a new signature:
|
||||||
|
|
||||||
|
event x509_extension(c: connection, is_orig: bool, cert: X509, ext: X509_extension_info);
|
||||||
|
|
||||||
Bro 2.2
|
Bro 2.2
|
||||||
=======
|
=======
|
||||||
|
|
||||||
|
|
2
VERSION
2
VERSION
|
@ -1 +1 @@
|
||||||
2.2-117
|
2.2-120
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
Subproject commit c4b5fb7336f2b598cf69777a7ec91b4aa16cacd1
|
Subproject commit 9ff2e2ced64a3bd4af1268154e261671a1153481
|
|
@ -2432,6 +2432,17 @@ type X509: record {
|
||||||
not_valid_after: time; ##< Timestamp after when certificate is not valid.
|
not_valid_after: time; ##< Timestamp after when certificate is not valid.
|
||||||
};
|
};
|
||||||
|
|
||||||
|
## An X509 extension.
|
||||||
|
##
|
||||||
|
## .. bro:see:: x509_extension
|
||||||
|
type X509_extension_info: record {
|
||||||
|
name: string; ##< Long name of extension; oid if name not known.
|
||||||
|
short_name: string &optional; ##< Short name of extension if known.
|
||||||
|
oid: string; ##< Oid of extension.
|
||||||
|
critical: bool; ##< True if extension is critical.
|
||||||
|
value: string; ##< Extension content parsed to string for known extensions. Raw data otherwise.
|
||||||
|
};
|
||||||
|
|
||||||
## HTTP session statistics.
|
## HTTP session statistics.
|
||||||
##
|
##
|
||||||
## .. bro:see:: http_stats
|
## .. bro:see:: http_stats
|
||||||
|
@ -2849,6 +2860,12 @@ global load_sample_freq = 20 &redef;
|
||||||
## .. bro:see:: gap_report
|
## .. bro:see:: gap_report
|
||||||
const gap_report_freq = 1.0 sec &redef;
|
const gap_report_freq = 1.0 sec &redef;
|
||||||
|
|
||||||
|
## Whether to attempt to automatically detect SYN/FIN/RST-filtered trace
|
||||||
|
## and not report missing segments for such connections.
|
||||||
|
## If this is enabled, then missing data at the end of connections may not
|
||||||
|
## be reported via :bro:see:`content_gap`.
|
||||||
|
const detect_filtered_trace = F &redef;
|
||||||
|
|
||||||
## Whether we want :bro:see:`content_gap` and :bro:see:`gap_report` for partial
|
## Whether we want :bro:see:`content_gap` and :bro:see:`gap_report` for partial
|
||||||
## connections. A connection is partial if it is missing a full handshake. Note
|
## connections. A connection is partial if it is missing a full handshake. Note
|
||||||
## that gap reports for partial connections might not be reliable.
|
## that gap reports for partial connections might not be reliable.
|
||||||
|
|
|
@ -48,6 +48,7 @@ int tcp_max_above_hole_without_any_acks;
|
||||||
int tcp_excessive_data_without_further_acks;
|
int tcp_excessive_data_without_further_acks;
|
||||||
|
|
||||||
RecordType* x509_type;
|
RecordType* x509_type;
|
||||||
|
RecordType* x509_extension_type;
|
||||||
|
|
||||||
RecordType* socks_address;
|
RecordType* socks_address;
|
||||||
|
|
||||||
|
@ -356,6 +357,7 @@ void init_net_var()
|
||||||
opt_internal_int("tcp_excessive_data_without_further_acks");
|
opt_internal_int("tcp_excessive_data_without_further_acks");
|
||||||
|
|
||||||
x509_type = internal_type("X509")->AsRecordType();
|
x509_type = internal_type("X509")->AsRecordType();
|
||||||
|
x509_extension_type = internal_type("X509_extension_info")->AsRecordType();
|
||||||
|
|
||||||
socks_address = internal_type("SOCKS::Address")->AsRecordType();
|
socks_address = internal_type("SOCKS::Address")->AsRecordType();
|
||||||
|
|
||||||
|
|
|
@ -51,6 +51,7 @@ extern int tcp_max_above_hole_without_any_acks;
|
||||||
extern int tcp_excessive_data_without_further_acks;
|
extern int tcp_excessive_data_without_further_acks;
|
||||||
|
|
||||||
extern RecordType* x509_type;
|
extern RecordType* x509_type;
|
||||||
|
extern RecordType* x509_extension_type;
|
||||||
|
|
||||||
extern RecordType* socks_address;
|
extern RecordType* socks_address;
|
||||||
|
|
||||||
|
|
|
@ -178,11 +178,13 @@ event x509_certificate%(c: connection, is_orig: bool, cert: X509, chain_idx: cou
|
||||||
##
|
##
|
||||||
## is_orig: True if event is raised for originator side of the connection.
|
## is_orig: True if event is raised for originator side of the connection.
|
||||||
##
|
##
|
||||||
## data: The raw data associated with the extension.
|
## cert: The parsed certificate.
|
||||||
|
##
|
||||||
|
## extension: The parsed extension.
|
||||||
##
|
##
|
||||||
## .. bro:see:: ssl_alert ssl_client_hello ssl_established ssl_extension
|
## .. bro:see:: ssl_alert ssl_client_hello ssl_established ssl_extension
|
||||||
## ssl_server_hello x509_certificate x509_error x509_verify
|
## ssl_server_hello x509_certificate x509_error x509_verify
|
||||||
event x509_extension%(c: connection, is_orig: bool, data: string%);
|
event x509_extension%(c: connection, is_orig: bool, cert: X509, extension: X509_extension_info%);
|
||||||
|
|
||||||
## Generated when errors occur during parsing an X509 certificate.
|
## Generated when errors occur during parsing an X509 certificate.
|
||||||
##
|
##
|
||||||
|
|
|
@ -9,6 +9,7 @@
|
||||||
#include "util.h"
|
#include "util.h"
|
||||||
|
|
||||||
#include <openssl/x509.h>
|
#include <openssl/x509.h>
|
||||||
|
#include <openssl/x509v3.h>
|
||||||
#include <openssl/asn1.h>
|
#include <openssl/asn1.h>
|
||||||
%}
|
%}
|
||||||
|
|
||||||
|
@ -298,27 +299,61 @@ refine connection SSL_Conn += {
|
||||||
int num_ext = X509_get_ext_count(pTemp);
|
int num_ext = X509_get_ext_count(pTemp);
|
||||||
for ( int k = 0; k < num_ext; ++k )
|
for ( int k = 0; k < num_ext; ++k )
|
||||||
{
|
{
|
||||||
unsigned char *pBuffer = 0;
|
char name[256];
|
||||||
int length = 0;
|
char oid[256];
|
||||||
|
|
||||||
|
memset(name, 0, sizeof(name));
|
||||||
|
memset(oid, 0, sizeof(oid));
|
||||||
|
|
||||||
X509_EXTENSION* ex = X509_get_ext(pTemp, k);
|
X509_EXTENSION* ex = X509_get_ext(pTemp, k);
|
||||||
if (ex)
|
|
||||||
{
|
if ( ! ex )
|
||||||
ASN1_STRING *pString = X509_EXTENSION_get_data(ex);
|
continue;
|
||||||
length = ASN1_STRING_to_UTF8(&pBuffer, pString);
|
|
||||||
//i2t_ASN1_OBJECT(&pBuffer, length, obj)
|
ASN1_OBJECT* ext_asn = X509_EXTENSION_get_object(ex);
|
||||||
// printf("extension length: %d\n", length);
|
const char* short_name = OBJ_nid2sn(OBJ_obj2nid(ext_asn));
|
||||||
// -1 indicates an error.
|
|
||||||
if ( length >= 0 )
|
OBJ_obj2txt(name, sizeof(name) - 1, ext_asn, 0);
|
||||||
{
|
OBJ_obj2txt(oid, sizeof(oid) - 1, ext_asn, 1);
|
||||||
StringVal* value = new StringVal(length, (char*)pBuffer);
|
|
||||||
|
int critical = 0;
|
||||||
|
if ( X509_EXTENSION_get_critical(ex) != 0 )
|
||||||
|
critical = 1;
|
||||||
|
|
||||||
|
BIO *bio = BIO_new(BIO_s_mem());
|
||||||
|
if( ! X509V3_EXT_print(bio, ex, 0, 0))
|
||||||
|
M_ASN1_OCTET_STRING_print(bio, ex->value);
|
||||||
|
|
||||||
|
BIO_flush(bio);
|
||||||
|
int length = BIO_pending(bio);
|
||||||
|
|
||||||
|
// Use OPENSSL_malloc here. Using new or anything else can lead
|
||||||
|
// to interesting, hard to debug segfaults.
|
||||||
|
char *buffer = (char*) OPENSSL_malloc(length);
|
||||||
|
BIO_read(bio, buffer, length);
|
||||||
|
StringVal* ext_val = new StringVal(length, buffer);
|
||||||
|
OPENSSL_free(buffer);
|
||||||
|
|
||||||
|
BIO_free_all(bio);
|
||||||
|
|
||||||
|
RecordVal* pX509Ext = new RecordVal(x509_extension_type);
|
||||||
|
pX509Ext->Assign(0, new StringVal(name));
|
||||||
|
|
||||||
|
if ( short_name && strlen(short_name) > 0 )
|
||||||
|
pX509Ext->Assign(1, new StringVal(short_name));
|
||||||
|
|
||||||
|
pX509Ext->Assign(2, new StringVal(oid));
|
||||||
|
pX509Ext->Assign(3, new Val(critical, TYPE_BOOL));
|
||||||
|
pX509Ext->Assign(4, ext_val);
|
||||||
|
|
||||||
BifEvent::generate_x509_extension(bro_analyzer(),
|
BifEvent::generate_x509_extension(bro_analyzer(),
|
||||||
bro_analyzer()->Conn(), ${rec.is_orig}, value);
|
bro_analyzer()->Conn(),
|
||||||
}
|
${rec.is_orig},
|
||||||
OPENSSL_free(pBuffer);
|
pX509Cert->Ref(),
|
||||||
}
|
pX509Ext);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
X509_free(pTemp);
|
X509_free(pTemp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -373,14 +373,11 @@ void TCP_Analyzer::ProcessSYN(const IP_Hdr* ip, const struct tcphdr* tp,
|
||||||
void TCP_Analyzer::ProcessFIN(double t, TCP_Endpoint* endpoint,
|
void TCP_Analyzer::ProcessFIN(double t, TCP_Endpoint* endpoint,
|
||||||
int& seq_len, uint32 base_seq)
|
int& seq_len, uint32 base_seq)
|
||||||
{
|
{
|
||||||
if ( endpoint->FIN_cnt == 0 )
|
++seq_len; // FIN consumes a byte of sequence space.
|
||||||
{
|
|
||||||
++seq_len; // FIN consumes a byte of sequence space
|
|
||||||
++endpoint->FIN_cnt; // remember that we've seen a FIN
|
++endpoint->FIN_cnt; // remember that we've seen a FIN
|
||||||
}
|
|
||||||
|
|
||||||
else if ( t < endpoint->last_time + tcp_storm_interarrival_thresh &&
|
if ( t < endpoint->last_time + tcp_storm_interarrival_thresh &&
|
||||||
++endpoint->FIN_cnt == tcp_storm_thresh )
|
endpoint->FIN_cnt == tcp_storm_thresh )
|
||||||
Weird("FIN_storm");
|
Weird("FIN_storm");
|
||||||
|
|
||||||
// Remember the relative seq in FIN_seq.
|
// Remember the relative seq in FIN_seq.
|
||||||
|
|
|
@ -161,6 +161,13 @@ void TCP_Endpoint::SetState(EndpointState new_state)
|
||||||
|
|
||||||
bro_int_t TCP_Endpoint::Size() const
|
bro_int_t TCP_Endpoint::Size() const
|
||||||
{
|
{
|
||||||
|
if ( prev_state == TCP_ENDPOINT_SYN_SENT && state == TCP_ENDPOINT_RESET &&
|
||||||
|
peer->state == TCP_ENDPOINT_INACTIVE && ! NoDataAcked() )
|
||||||
|
// This looks like a half-open connection was discovered and aborted.
|
||||||
|
// Sequence numbers could be misleading if used in context of data size
|
||||||
|
// and there was never a chance for this endpoint to send data anyway.
|
||||||
|
return 0;
|
||||||
|
|
||||||
bro_int_t size;
|
bro_int_t size;
|
||||||
|
|
||||||
uint64 last_seq_64 = (uint64(last_seq_high) << 32) | last_seq;
|
uint64 last_seq_64 = (uint64(last_seq_high) << 32) | last_seq;
|
||||||
|
|
|
@ -178,7 +178,7 @@ void TCP_Reassembler::Undelivered(int up_to_seq)
|
||||||
// to this method and only if this condition is not true).
|
// to this method and only if this condition is not true).
|
||||||
reporter->InternalError("Calling Undelivered for data that has already been delivered (or has already been marked as undelivered");
|
reporter->InternalError("Calling Undelivered for data that has already been delivered (or has already been marked as undelivered");
|
||||||
|
|
||||||
if ( last_reassem_seq == 1 &&
|
if ( BifConst::detect_filtered_trace && last_reassem_seq == 1 &&
|
||||||
(endpoint->FIN_cnt > 0 || endpoint->RST_cnt > 0 ||
|
(endpoint->FIN_cnt > 0 || endpoint->RST_cnt > 0 ||
|
||||||
peer->FIN_cnt > 0 || peer->RST_cnt > 0) )
|
peer->FIN_cnt > 0 || peer->RST_cnt > 0) )
|
||||||
{
|
{
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
const ignore_keep_alive_rexmit: bool;
|
const ignore_keep_alive_rexmit: bool;
|
||||||
const skip_http_data: bool;
|
const skip_http_data: bool;
|
||||||
const use_conn_size_analyzer: bool;
|
const use_conn_size_analyzer: bool;
|
||||||
|
const detect_filtered_trace: bool;
|
||||||
const report_gaps_for_partial: bool;
|
const report_gaps_for_partial: bool;
|
||||||
const exit_only_after_terminate: bool;
|
const exit_only_after_terminate: bool;
|
||||||
|
|
||||||
|
|
|
@ -103,7 +103,6 @@ File::~File()
|
||||||
DBG_LOG(DBG_FILE_ANALYSIS, "Destroying File object %s", id.c_str());
|
DBG_LOG(DBG_FILE_ANALYSIS, "Destroying File object %s", id.c_str());
|
||||||
Unref(val);
|
Unref(val);
|
||||||
|
|
||||||
// Queue may not be empty in the case where only content gaps were seen.
|
|
||||||
while ( ! fonc_queue.empty() )
|
while ( ! fonc_queue.empty() )
|
||||||
{
|
{
|
||||||
delete_vals(fonc_queue.front().second);
|
delete_vals(fonc_queue.front().second);
|
||||||
|
@ -460,20 +459,27 @@ void File::FileEvent(EventHandlerPtr h)
|
||||||
FileEvent(h, vl);
|
FileEvent(h, vl);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void flush_file_event_queue(queue<pair<EventHandlerPtr, val_list*> >& q)
|
||||||
|
{
|
||||||
|
while ( ! q.empty() )
|
||||||
|
{
|
||||||
|
pair<EventHandlerPtr, val_list*> p = q.front();
|
||||||
|
mgr.QueueEvent(p.first, p.second);
|
||||||
|
q.pop();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void File::FileEvent(EventHandlerPtr h, val_list* vl)
|
void File::FileEvent(EventHandlerPtr h, val_list* vl)
|
||||||
{
|
{
|
||||||
|
if ( h == file_state_remove )
|
||||||
|
flush_file_event_queue(fonc_queue);
|
||||||
|
|
||||||
mgr.QueueEvent(h, vl);
|
mgr.QueueEvent(h, vl);
|
||||||
|
|
||||||
if ( h == file_new )
|
if ( h == file_new )
|
||||||
{
|
{
|
||||||
did_file_new_event = true;
|
did_file_new_event = true;
|
||||||
|
flush_file_event_queue(fonc_queue);
|
||||||
while ( ! fonc_queue.empty() )
|
|
||||||
{
|
|
||||||
pair<EventHandlerPtr, val_list*> p = fonc_queue.front();
|
|
||||||
mgr.QueueEvent(p.first, p.second);
|
|
||||||
fonc_queue.pop();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( h == file_new || h == file_timeout || h == file_extraction_limit )
|
if ( h == file_new || h == file_timeout || h == file_extraction_limit )
|
||||||
|
|
2
testing/btest/Baseline/core.tcp.fin-retransmit/out
Normal file
2
testing/btest/Baseline/core.tcp.fin-retransmit/out
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
[size=0, state=5, num_pkts=3, num_bytes_ip=156, flow_label=0]
|
||||||
|
[size=0, state=6, num_pkts=2, num_bytes_ip=92, flow_label=0]
|
10
testing/btest/Baseline/core.tcp.miss-end-data/conn.log
Normal file
10
testing/btest/Baseline/core.tcp.miss-end-data/conn.log
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
#separator \x09
|
||||||
|
#set_separator ,
|
||||||
|
#empty_field (empty)
|
||||||
|
#unset_field -
|
||||||
|
#path conn
|
||||||
|
#open 2014-01-24-22-19-38
|
||||||
|
#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]
|
||||||
|
1331764471.664131 CXWv6p3arKYeMETxOg 192.168.122.230 60648 77.238.160.184 80 tcp http 10.048360 538 2902 SF - 2902 ShADafF 5 750 4 172 (empty)
|
||||||
|
#close 2014-01-24-22-19-38
|
1
testing/btest/Baseline/core.tcp.miss-end-data/out
Normal file
1
testing/btest/Baseline/core.tcp.miss-end-data/out
Normal file
|
@ -0,0 +1 @@
|
||||||
|
content_gap, [orig_h=192.168.122.230, orig_p=60648/tcp, resp_h=77.238.160.184, resp_p=80/tcp], F, 1, 2902
|
|
@ -0,0 +1,20 @@
|
||||||
|
[name=X509v3 Authority Key Identifier, short_name=authorityKeyIdentifier, oid=2.5.29.35, critical=F, value=keyid:3F:D5:B5:D0:D6:44:79:50:4A:17:A3:9B:8C:4A:DC:B8:B0:22:64:6B^J]
|
||||||
|
[name=X509v3 Subject Key Identifier, short_name=subjectKeyIdentifier, oid=2.5.29.14, critical=F, value=A2:76:09:20:A8:40:FD:A1:AC:C8:E9:35:B9:11:A6:61:FF:8C:FF:A3]
|
||||||
|
[name=X509v3 Key Usage, short_name=keyUsage, oid=2.5.29.15, critical=T, value=Digital Signature, Key Encipherment]
|
||||||
|
[name=X509v3 Basic Constraints, short_name=basicConstraints, oid=2.5.29.19, critical=T, value=CA:FALSE]
|
||||||
|
[name=X509v3 Extended Key Usage, short_name=extendedKeyUsage, oid=2.5.29.37, critical=F, value=TLS Web Server Authentication, TLS Web Client Authentication]
|
||||||
|
[name=X509v3 Certificate Policies, short_name=certificatePolicies, oid=2.5.29.32, critical=F, value=Policy: 1.3.6.1.4.1.6449.1.2.1.3.4^J CPS: https://secure.comodo.com/CPS^J]
|
||||||
|
[name=X509v3 CRL Distribution Points, short_name=crlDistributionPoints, oid=2.5.29.31, critical=F, value=^JFull Name:^J URI:http://crl.comodoca.com/COMODOHigh-AssuranceSecureServerCA.crl^J]
|
||||||
|
[name=Authority Information Access, short_name=authorityInfoAccess, oid=1.3.6.1.5.5.7.1.1, critical=F, value=CA Issuers - URI:http://crt.comodoca.com/COMODOHigh-AssuranceSecureServerCA.crt^JOCSP - URI:http://ocsp.comodoca.com^J]
|
||||||
|
[name=X509v3 Subject Alternative Name, short_name=subjectAltName, oid=2.5.29.17, critical=F, value=DNS:*.taleo.net, DNS:taleo.net]
|
||||||
|
[name=X509v3 Authority Key Identifier, short_name=authorityKeyIdentifier, oid=2.5.29.35, critical=F, value=keyid:AD:BD:98:7A:34:B4:26:F7:FA:C4:26:54:EF:03:BD:E0:24:CB:54:1A^J]
|
||||||
|
[name=X509v3 Subject Key Identifier, short_name=subjectKeyIdentifier, oid=2.5.29.14, critical=F, value=3F:D5:B5:D0:D6:44:79:50:4A:17:A3:9B:8C:4A:DC:B8:B0:22:64:6B]
|
||||||
|
[name=X509v3 Key Usage, short_name=keyUsage, oid=2.5.29.15, critical=T, value=Certificate Sign, CRL Sign]
|
||||||
|
[name=X509v3 Basic Constraints, short_name=basicConstraints, oid=2.5.29.19, critical=T, value=CA:TRUE, pathlen:0]
|
||||||
|
[name=X509v3 Certificate Policies, short_name=certificatePolicies, oid=2.5.29.32, critical=F, value=Policy: X509v3 Any Policy^J]
|
||||||
|
[name=X509v3 CRL Distribution Points, short_name=crlDistributionPoints, oid=2.5.29.31, critical=F, value=^JFull Name:^J URI:http://crl.usertrust.com/AddTrustExternalCARoot.crl^J]
|
||||||
|
[name=Authority Information Access, short_name=authorityInfoAccess, oid=1.3.6.1.5.5.7.1.1, critical=F, value=CA Issuers - URI:http://crt.usertrust.com/AddTrustExternalCARoot.p7c^JCA Issuers - URI:http://crt.usertrust.com/AddTrustUTNSGCCA.crt^JOCSP - URI:http://ocsp.usertrust.com^J]
|
||||||
|
[name=X509v3 Subject Key Identifier, short_name=subjectKeyIdentifier, oid=2.5.29.14, critical=F, value=AD:BD:98:7A:34:B4:26:F7:FA:C4:26:54:EF:03:BD:E0:24:CB:54:1A]
|
||||||
|
[name=X509v3 Key Usage, short_name=keyUsage, oid=2.5.29.15, critical=F, value=Certificate Sign, CRL Sign]
|
||||||
|
[name=X509v3 Basic Constraints, short_name=basicConstraints, oid=2.5.29.19, critical=T, value=CA:TRUE]
|
||||||
|
[name=X509v3 Authority Key Identifier, short_name=authorityKeyIdentifier, oid=2.5.29.35, critical=F, value=keyid:AD:BD:98:7A:34:B4:26:F7:FA:C4:26:54:EF:03:BD:E0:24:CB:54:1A^JDirName:/C=SE/O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust External CA Root^Jserial:01^J]
|
BIN
testing/btest/Traces/tcp/fin_retransmission.pcap
Normal file
BIN
testing/btest/Traces/tcp/fin_retransmission.pcap
Normal file
Binary file not shown.
BIN
testing/btest/Traces/tcp/miss_end_data.pcap
Normal file
BIN
testing/btest/Traces/tcp/miss_end_data.pcap
Normal file
Binary file not shown.
8
testing/btest/core/tcp/fin-retransmit.bro
Normal file
8
testing/btest/core/tcp/fin-retransmit.bro
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
# @TEST-EXEC: bro -b -r $TRACES/tcp/fin_retransmission.pcap %INPUT >out
|
||||||
|
# @TEST-EXEC: btest-diff out
|
||||||
|
|
||||||
|
event connection_state_remove(c: connection)
|
||||||
|
{
|
||||||
|
print c$orig;
|
||||||
|
print c$resp;
|
||||||
|
}
|
10
testing/btest/core/tcp/miss-end-data.bro
Normal file
10
testing/btest/core/tcp/miss-end-data.bro
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
# @TEST-EXEC: bro -r $TRACES/tcp/miss_end_data.pcap %INPUT >out
|
||||||
|
# @TEST-EXEC: btest-diff out
|
||||||
|
# @TEST-EXEC: btest-diff conn.log
|
||||||
|
|
||||||
|
redef report_gaps_for_partial = T;
|
||||||
|
|
||||||
|
event content_gap(c: connection, is_orig: bool, seq: count, length: count)
|
||||||
|
{
|
||||||
|
print "content_gap", c$id, is_orig, seq, length;
|
||||||
|
}
|
|
@ -0,0 +1,7 @@
|
||||||
|
# @TEST-EXEC: bro -r $TRACES/tls1.2.trace %INPUT
|
||||||
|
# @TEST-EXEC: btest-diff .stdout
|
||||||
|
|
||||||
|
event x509_extension(c: connection, is_orig: bool, cert:X509, extension: X509_extension_info)
|
||||||
|
{
|
||||||
|
print extension;
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue