Skip to content
Snippets Groups Projects
Commit 6b01387a authored by NGUYEN Do Duc Anh's avatar NGUYEN Do Duc Anh
Browse files

update para attacker index

parent 2b0b84c9
No related branches found
No related tags found
No related merge requests found
......@@ -61,7 +61,7 @@ is_stop_vc_server = False
#
#
def send_para_server(A_raw, f, num_host, p_NAT, P_values, max_total_traffic, proto, time_generate, pref_ctrl_as_percen, is_auto):
def send_para_server(A_raw, f, num_host, p_NAT, P_values, max_total_traffic, proto, time_generate, pref_ctrl_as_percen, is_auto, attacker_index):
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as server_socket:
server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
server_socket.bind(('0.0.0.0', 12348))
......@@ -72,7 +72,7 @@ def send_para_server(A_raw, f, num_host, p_NAT, P_values, max_total_traffic, pro
client_socket, client_address = server_socket.accept()
with client_socket: # Ensures cleanup
data = {'A_raw': A_raw, 'f': f, 'num_host': num_host, 'p_NAT': p_NAT, 'P_values': P_values, 'max_total_traffic': max_total_traffic, 'proto': proto,
'time_generate': time_generate, 'pref_ctrl_as_percen': pref_ctrl_as_percen, 'is_auto': is_auto}
'time_generate': time_generate, 'pref_ctrl_as_percen': pref_ctrl_as_percen, 'is_auto': is_auto, 'attacker_index': attacker_index}
data_js = json.dumps(data)
client_socket.sendall(data_js.encode('utf-8')) # Send JSON data
break
......@@ -220,18 +220,19 @@ def generate_topohub_GNS3_topology():
if user_input != '':
sys.exit()
if len(sys.argv) > 11:
if len(sys.argv) > 12:
is_auto = int(sys.argv[1])
topology_name = sys.argv[2]
gns3manager.malware_instance = 0 if sys.argv[3].strip() == "wannacry" else 1
f = float(sys.argv[4])
p_NAT = int(sys.argv[5])
packet_lost = int(sys.argv[6])
max_total_traffic = int(sys.argv[7])
proto = sys.argv[8]
time_generate = int(sys.argv[9])
pref_ctrl_as_percen = int(sys.argv[10])
is_reaction = int(sys.argv[11])
attacker_index = int(sys.argv[4])
f = float(sys.argv[5])
p_NAT = int(sys.argv[6])
packet_lost = int(sys.argv[7])
max_total_traffic = int(sys.argv[8])
proto = sys.argv[9]
time_generate = int(sys.argv[10])
pref_ctrl_as_percen = int(sys.argv[11])
is_reaction = int(sys.argv[12])
topo = topohub.get(topology_name)
g = nx.node_link_graph(topo)
......@@ -341,7 +342,7 @@ def generate_topohub_GNS3_topology():
if NUM_HOST > 0:
for i in range(0, NUM_HOST):
is_attacker = 0
if i == 0:
if i == attacker_index:
is_attacker = 1
x_temp = round(1400)
y_temp = round(-1000) + 100 * i
......@@ -404,7 +405,7 @@ def generate_topohub_GNS3_topology():
sys.exit()
GNS3Manager.start_node(ubuntu_server.id, "u_server")
send_para_server(g.graph['demands'], f, NUM_HOST, p_NAT, P_values, max_total_traffic, proto, time_generate, pref_ctrl_as_percen, is_auto)
send_para_server(g.graph['demands'], f, NUM_HOST, p_NAT, P_values, max_total_traffic, proto, time_generate, pref_ctrl_as_percen, is_auto, attacker_index)
thread_unctrl_server.join() # Ensure unctrl routers receive configuration before deleting from the real Internet
array_links = GNS3Manager.get_links()
......
......@@ -29,6 +29,7 @@ PROTO = "UDP"
TIME_GENERATE = 3600000 # ms
PREF_CTRL_AS_PERCEN = 50
IS_AUTO = 0
ATTACKER_INDEX = 0
file_path = "/home/osboxes/D-ITG-2.8.1-r1023-src/D-ITG-2.8.1-r1023/bin/commands.txt"
......@@ -103,6 +104,8 @@ def notify_window_attacker():
def generate_pref_AS_choices(n, percent):
global ATTACKER_INDEX
num_ones = round(n * percent / 100)
result = [1] # the first one is attacker always prefer the ctrl AS
if num_ones > 0:
......@@ -111,7 +114,8 @@ def generate_pref_AS_choices(n, percent):
array = [0] * (n - 1)
random.shuffle(array)
return result + array
array[ATTACKER_INDEX:ATTACKER_INDEX] = result
return array
def notify_ubuntu_internode():
......@@ -213,9 +217,10 @@ def get_parameters():
time_generate = data_js['time_generate']
pref_ctrl_as_percen = data_js['pref_ctrl_as_percen']
is_auto = data_js['is_auto']
attacker_index = data_js['attacker_index']
client.close()
return A_raw, f_raw, num_machine_raw, p_NAT_raw, P_values_raw, max_total_traffic, proto, time_generate, pref_ctrl_as_percen, is_auto
return A_raw, f_raw, num_machine_raw, p_NAT_raw, P_values_raw, max_total_traffic, proto, time_generate, pref_ctrl_as_percen, is_auto, attacker_index
except json.JSONDecodeError:
print("Invalid JSON received")
......@@ -244,9 +249,9 @@ def run_monitor_infect():
def main():
global num_machine, f, A, p_NAT, P_values, MAX_TOTAL_TRAFFIC, PROTO, TIME_GENERATE, PREF_CTRL_AS_PERCEN, IS_AUTO
global num_machine, f, A, p_NAT, P_values, MAX_TOTAL_TRAFFIC, PROTO, TIME_GENERATE, PREF_CTRL_AS_PERCEN, IS_AUTO, ATTACKER_INDEX
A_raw, f, num_machine, p_NAT, P_values, MAX_TOTAL_TRAFFIC, PROTO, TIME_GENERATE, PREF_CTRL_AS_PERCEN, IS_AUTO = get_parameters()
A_raw, f, num_machine, p_NAT, P_values, MAX_TOTAL_TRAFFIC, PROTO, TIME_GENERATE, PREF_CTRL_AS_PERCEN, IS_AUTO, ATTACKER_INDEX = get_parameters()
run_monitor_infect()
A = [0] * num_machine
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment