Exemplo n.º 1
0
    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
Exemplo n.º 2
0
    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
        ]
Exemplo n.º 3
0
    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]
Exemplo n.º 4
0
 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
Exemplo n.º 5
0
def _clean_monkey_db():
    Monkey.objects().delete()