-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathransomware_detection.py
More file actions
52 lines (40 loc) · 1.89 KB
/
Copy pathransomware_detection.py
File metadata and controls
52 lines (40 loc) · 1.89 KB
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
import threading
import time
from encryption import encryption_calculation
from encryption import moving_window
from network import network_classification
def entropy_alert(network_flag):
print("flag in thread:", network_flag)
if network_flag:
print("alert at ", time.strftime("%H:%M:%S",time.localtime()))
else:
print("Adjusting for seasonality")
def entropy_t_func(fileName, db_fileName):
encryption_calculation.entropy_to_db(fileName,db_filename=db_fileName, running_msg_flag=False)
def moving_window_t_func(dbFileName, network_flag, startDelay=900):
time.sleep(startDelay)
moving_window.moving_window(dbFileName, startDelay, network_flag)
def net_t_func(network_filename, db_filename, network_ml_model_filename):
network_classification.main(fileName=network_filename, db_fileName=db_filename, model_fileName=network_ml_model_filename)
if __name__ == '__main__':
data_fileName = "encryption/mem_data.txt"
db_filename = 'maliciousness.db'
network_filename = 'network/net_data.txt'
network_ml_model_filename = 'network/model.pkl'
network_flag = threading.Event()
entropy_thread = threading.Thread(target=entropy_t_func, args=(data_fileName,db_filename))
entropy_thread.start()
moving_window_thread = threading.Thread(target=moving_window_t_func, args=(db_filename, network_flag,))
moving_window_thread.start()
network_classif_thread = threading.Thread(target=net_t_func, args=(network_filename, db_filename, network_ml_model_filename,))
network_classif_thread.start()
time.sleep(30)
while True:
if not network_flag.is_set():
if network_classification.check_db_for_malicious_conn(db_filename):
network_flag.set()
else:
time.sleep(60)
else:
time.sleep(900)
network_flag.clear()