Esempio n. 1
0
    def start_monitoring(self):
        self.monitors = dict()

        for net in self.oracle.get_networks().values():
            b = BpfBuilder()
            b.require_protocol('ip')
            b.require_protocol('udp')

            m = Monitor(net.name, net.name + '-eth0', b.compile())

            self.monitors[net] = m

        for m in self.monitors.values():
            m.start()

        time.sleep(1)
Esempio n. 2
0
    def evaluate_monitoring(self):
        res = dict()

        for (net, m) in self.monitors.iteritems():
            b = BpfBuilder()
            b.include_src_subnets(net.recv_from_src)
            b.include_dst_subnets(net.recv_to_dst)

            accepted = m.evaluate(b.compile())

            b = BpfBuilder()
            b.exclude_src_subnets(net.recv_from_src)
            b.exclude_dst_subnets(net.recv_to_dst)

            rejected = m.evaluate(b.compile())

            res[net.name] = (accepted, rejected)

        return res