Skip to content

Commit f7ecfc8

Browse files
committed
original packet include options, decoding file hash fields
1 parent 76e1cf6 commit f7ecfc8

File tree

4 files changed

+33
-7
lines changed

4 files changed

+33
-7
lines changed

estreamer/adapters/splunk.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@
111111
View.NETWORK_ANALYSIS_POLICY: 'net_analysis_policy',
112112
View.ORIGINAL_CLIENT_SRC_IP: 'original_src_ip',
113113
View.PACKET_DATA: 'packet',
114-
View.PACKET_DATA_FULL: 'packetHex',
114+
View.PACKET_DATA_FULL: 'original_packet',
115115
View.PARENT_DETECTION: 'parent_detection',
116116
View.PRIORITY: 'priority',
117117
View.PROTOCOL: 'protocol',

estreamer/metadata/cache.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ class Cache( object ):
8383
ORIGINAL_SRC_IP = 'originalSrcIp'
8484
OS_FINGERPRINTS = 'osFingerprints'
8585
PACKET_DATA = 'packet'
86-
PACKET_DATA_FULL = 'packetHex'
86+
PACKET_DATA_FULL = 'originalPacket'
8787
PAYLOADS = 'payloads'
8888
POLICIES = 'policies'
8989
PRIORITIES = 'priorities'
@@ -151,7 +151,7 @@ class Cache( object ):
151151
NET_PROTOS: 'net_protos',
152152
OS_FINGERPRINTS: 'os_fingerprints',
153153
PACKET_DATA: 'packet',
154-
PACKET_DATA_FULL: 'packetHex',
154+
PACKET_DATA_FULL: 'originalPacket',
155155
PAYLOADS: 'payloads',
156156
POLICIES: 'policies',
157157
PRIORITIES: 'priorities',

estreamer/metadata/view.py

+25-4
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ class View( object ):
110110
NETWORK_ANALYSIS_POLICY = 'networkAnalysisPolicy'
111111
ORIGINAL_CLIENT_SRC_IP = 'originalSrcIP'
112112
PACKET_DATA = 'packet'
113-
PACKET_DATA_FULL = 'packetHex'
113+
PACKET_DATA_FULL = 'originalPacket'
114114
PARENT_DETECTION = 'parentDetection'
115115
PRIORITY = 'priority'
116116
PROTOCOL = 'protocol'
@@ -345,7 +345,6 @@ def create( self ):
345345

346346
packet = record['packetData']
347347
packetEncoding = self.settings.subscribePacketEncoding
348-
349348
if isinstance(packet, (bytes, bytearray)) :
350349

351350
if self.settings.subscribePacketEncoding :
@@ -359,12 +358,17 @@ def create( self ):
359358
packet = p.getPayloadAsAscii()
360359

361360
elif packetEncoding == 'utf-8' :
362-
361+
363362
binData = binascii.unhexlify( packet )
364363
p = Packet(binData)
365364
packet = p.getPayloadAsUtf8()
366365
else :
367-
packet = record['packetData'].decode('utf-8')
366+
binData = binascii.unhexlify( packet )
367+
p = Packet(binData)
368+
packet = p.getPayloadAsHex()
369+
370+
if self.settings.subscribeIncludeOriginalPacket :
371+
self.__addValue(View.PACKET_DATA_FULL,record['packetData'].decode('utf-8'))
368372

369373
self.__addValue(View.PACKET_DATA, packet)
370374

@@ -801,6 +805,12 @@ def create( self ):
801805

802806
elif recordTypeId == definitions.RECORD_MALWARE_EVENT:
803807
# 125
808+
809+
for key in record :
810+
if isinstance(record[key], (bytes, bytearray)) :
811+
value = record[key].decode('utf-8')
812+
record[key] = value
813+
804814
self.__addValueIfAvailable(
805815
View.CLOUD,
806816
[ Cache.CLOUDS, record['cloudUuid']] )
@@ -1147,6 +1157,12 @@ def create( self ):
11471157
elif recordTypeId == definitions.RECORD_FILELOG_EVENT or \
11481158
recordTypeId == definitions.RECORD_FILELOG_MALWARE_EVENT:
11491159
# 500 or 502
1160+
1161+
for key in record :
1162+
if isinstance(record[key], (bytes, bytearray)) :
1163+
value = record[key].decode('utf-8')
1164+
record[key] = value
1165+
11501166
self.__addValueIfAvailable(
11511167
View.FILE_POLICY,
11521168
[ Cache.POLICIES, record['accessControlPolicyUuid']] )
@@ -1229,6 +1245,11 @@ def create( self ):
12291245

12301246
elif recordTypeId == definitions.METADATA_FILELOG_SHA:
12311247
# 511
1248+
for key in record :
1249+
if isinstance(record[key], (bytes, bytearray)) :
1250+
value = record[key].decode('utf-8')
1251+
record[key] = value
1252+
12321253
self.__addValueIfAvailable(
12331254
View.DISPOSITION,
12341255
[ Cache.FILE_DISPOSITIONS, record['disposition']] )

estreamer/settings/settings.py

+5
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,11 @@ def __init__( self, jsonSettings ):
107107
else :
108108
self.subscribePacketEncoding = 'hex'
109109

110+
if 'includeOriginalPacket' in subscriptionRecords :
111+
self.subscribeIncludeOriginalPacket = subscriptionRecords['includeOriginalPacket']
112+
else :
113+
self.subscribeIncludeOriginalPacket = True
114+
110115
self.subscribePacketData = subscriptionRecords['packetData']
111116
self.subscribeExtended = subscriptionRecords['extended']
112117
self.subscribeMetaData = subscriptionRecords['metadata']

0 commit comments

Comments
 (0)