def _get_infected_island_net_edges(monkey_island_monkey): existing_ids = [ x.src_node_id for x in EdgeService.get_by_dst_node( dst_node_id=monkey_island_monkey["_id"]) ] monkey_ids = [ x.id for x in Monkey.objects() if ("tunnel" not in x) and (x.id not in existing_ids) and ( x.id != monkey_island_monkey["_id"]) ] edges = [] count = 0 for monkey_id in monkey_ids: count += 1 # generating fake ID, because front end requires unique ID's for each edge. Collision # improbable fake_id = ObjectId(hex(count)[2:].zfill(24)) src_label = NodeService.get_label_for_endpoint(monkey_id) dst_label = NodeService.get_label_for_endpoint( monkey_island_monkey["_id"]) edge = DisplayedEdgeService.generate_pseudo_edge( edge_id=fake_id, src_node_id=monkey_id, dst_node_id=monkey_island_monkey["_id"], src_label=src_label, dst_label=dst_label, ) edges.append(edge) return edges
def generate_map_nodes(): monkeys = [m for m in Monkey.objects() if m.get_os() == "windows"] return [ { 'id': monkey.guid, 'label': '{0} : {1}'.format(monkey.hostname, monkey.ip_addresses[0]), 'group': 'critical' if monkey.critical_services is not None else 'normal', 'services': monkey.critical_services, 'hostname': monkey.hostname } for monkey in monkeys ]
def generate_map_nodes(): monkeys = [m for m in Monkey.objects() if m.get_os() == "windows"] return [{ "id": monkey.guid, "label": "{0} : {1}".format(monkey.hostname, monkey.ip_addresses[0]), "group": "critical" if monkey.critical_services is not None else "normal", "services": monkey.critical_services, "hostname": monkey.hostname, } for monkey in monkeys]
def _get_uninfected_island_net_edges(): edges = [] monkey_ids = [x.id for x in Monkey.objects() if "tunnel" not in x] count = 0 for monkey_id in monkey_ids: count += 1 # generating fake ID, because front end requires unique ID's for each edge. Collision improbable fake_id = ObjectId(hex(count)[2:].zfill(24)) island_id = ObjectId("000000000000000000000000") monkey_label = NodeService.get_label_for_endpoint(monkey_id) island_label = NodeService.get_label_for_endpoint(island_id) island_pseudo_edge = DisplayedEdgeService.generate_pseudo_edge(edge_id=fake_id, src_node_id=monkey_id, dst_node_id=island_id, src_label=monkey_label, dst_label=island_label) edges.append(island_pseudo_edge) return edges
def _clean_monkey_db(): Monkey.objects().delete()