Skip to content
This repository was archived by the owner on Nov 3, 2021. It is now read-only.

Commit 6589361

Browse files
authored
Merge pull request #577 from mozilla/temp_fix_cloudtrail_worker
Provide temporary patch for cloudtrail worker
2 parents d5652b8 + 6ff09b9 commit 6589361

File tree

1 file changed

+32
-19
lines changed

1 file changed

+32
-19
lines changed

mq/esworker_cloudtrail.py

Lines changed: 32 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -222,25 +222,38 @@ def run(self):
222222
time.sleep(.1)
223223

224224
def on_message(self, message):
225-
message['category'] = 'cloudtrail'
226-
message['utctimestamp'] = toUTC(message['eventTime']).isoformat()
227-
message['receivedtimestamp'] = toUTC(datetime.now()).isoformat()
228-
message['mozdefhostname'] = socket.gethostname()
229-
message['hostname'] = message['eventSource']
230-
message['processid'] = os.getpid()
231-
message['processname'] = sys.argv[0]
232-
message['severity'] = 'INFO'
233-
summary_str = "{0} performed {1} in {2}".format(
234-
message['sourceIPAddress'],
235-
message['eventName'],
236-
message['eventSource']
237-
)
238-
message['summary'] = summary_str
239-
message['eventVerb'] = CLOUDTRAIL_VERB_REGEX.findall(
240-
message['eventName'])[0]
241-
message['eventReadOnly'] = (
242-
message['eventVerb'] in ['Describe', 'Get', 'List'])
243-
es.save_event(body=message, doc_type='cloudtrail', bulk=True)
225+
returndict = dict()
226+
227+
returndict['category'] = 'cloudtrail'
228+
returndict['source'] = 'cloudtrail'
229+
returndict['details'] = {}
230+
returndict['utctimestamp'] = toUTC(message['eventTime']).isoformat()
231+
returndict['receivedtimestamp'] = toUTC(datetime.now()).isoformat()
232+
returndict['mozdefhostname'] = socket.gethostname()
233+
returndict['hostname'] = message['eventSource']
234+
returndict['processid'] = str(os.getpid())
235+
returndict['processname'] = sys.argv[0]
236+
returndict['severity'] = 'INFO'
237+
returndict['tags'] = ['cloudtrail']
238+
239+
if 'sourceIPAddress' in message and 'eventName' in message and 'eventSource' in message:
240+
summary_str = "{0} performed {1} in {2}".format(
241+
message['sourceIPAddress'],
242+
message['eventName'],
243+
message['eventSource']
244+
)
245+
returndict['summary'] = summary_str
246+
247+
if 'eventName' in message:
248+
# Uppercase first character
249+
verb_name = message['eventName'][0].upper() + message['eventName'][1:]
250+
returndict['eventVerb'] = CLOUDTRAIL_VERB_REGEX.findall(verb_name)[0]
251+
returndict['eventReadOnly'] = (returndict['eventVerb'] in ['Describe', 'Get', 'List'])
252+
253+
# Save original message for now since we're dropping other fields
254+
returndict['raw_msg'] = json.dumps(message)
255+
256+
es.save_event(body=returndict, doc_type='cloudtrail', bulk=True)
244257

245258

246259
def registerPlugins():

0 commit comments

Comments
 (0)