forked from phantomcyber/playbooks
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ReversingLabs_TitaniumCloud_File_Reputation.py
77 lines (51 loc) · 2.65 KB
/
ReversingLabs_TitaniumCloud_File_Reputation.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
"""
Queries ReversingLabas TitaniumCloud for file reputation.
"""
import phantom.rules as phantom
import json
from datetime import datetime, timedelta
@phantom.playbook_block()
def on_start(container):
phantom.debug('on_start() called')
# call 'titaniumcloud_file_reputation' block
titaniumcloud_file_reputation(container=container)
return
@phantom.playbook_block()
def titaniumcloud_file_reputation(action=None, success=None, container=None, results=None, handle=None, filtered_artifacts=None, filtered_results=None, custom_function=None, **kwargs):
phantom.debug("titaniumcloud_file_reputation() called")
# phantom.debug('Action: {0} {1}'.format(action['name'], ('SUCCEEDED' if success else 'FAILED')))
container_artifact_data = phantom.collect2(container=container, datapath=["artifact:*.cef.fileHash","artifact:*.id"])
parameters = []
# build parameters list for 'titaniumcloud_file_reputation' call
for container_artifact_item in container_artifact_data:
if container_artifact_item[0] is not None:
parameters.append({
"hash": container_artifact_item[0],
"context": {'artifact_id': container_artifact_item[1]},
})
################################################################################
## Custom Code Start
################################################################################
# Write your custom code here...
################################################################################
## Custom Code End
################################################################################
phantom.act("file reputation", parameters=parameters, name="titaniumcloud_file_reputation", assets=["url-dev-test"])
return
@phantom.playbook_block()
def on_finish(container, summary):
phantom.debug("on_finish() called")
file_reputation_1_result_data = phantom.collect2(container=container, datapath=["file_reputation_1:action_result.data.*.rl.malware_presence.status"])
file_reputation_1_result_item_0 = [item[0] for item in file_reputation_1_result_data]
output = {
"classification": file_reputation_1_result_item_0,
}
################################################################################
## Custom Code Start
################################################################################
# Write your custom code here...
################################################################################
## Custom Code End
################################################################################
phantom.save_playbook_output_data(output=output)
return