Ejemplo n.º 1
0
    def out(self, name, header=""):
        buf = ""
        if name in self.seen:
            return buf
        self.seen.append(name)

        if "map" in self.sdict[name]:
            for t in self.sdict[name]["map"]:
                cond = sepolicy.get_conditionals(t["source"], t["transtype"], "process", ["transition"])
                if cond:
                    buf += "%s%s @ %s --> %s %s\n" % (header, t["source"], t["target"], t["transtype"], sepolicy.get_conditionals_format_text(cond))
                else:
                    buf += "%s%s @ %s --> %s\n" % (header, t["source"], t["target"], t["transtype"])

        if "child" in self.sdict[name]:
            for x in self.sdict[name]["child"]:
                buf += self.out(x, "%s%s ... " % (header, name))
        return buf
Ejemplo n.º 2
0
    def out(self, name, header=""):
        buf = ""
        if name in self.seen:
            return buf
        self.seen.append(name)

        if "map" in self.sdict[name]:
            for t in self.sdict[name]["map"]:
                cond = sepolicy.get_conditionals(t["source"], t["transtype"], "process", ["transition"])
                if cond:
                    buf += "%s%s @ %s --> %s %s\n" % (header, t["source"], t["target"], t["transtype"], sepolicy.get_conditionals_format_text(cond))
                else:
                    buf += "%s%s @ %s --> %s\n" % (header, t["source"], t["target"], t["transtype"])

        if "child" in self.sdict[name]:
            for x in self.sdict[name]["child"]:
                buf += self.out(x, "%s%s ... " % (header, name))
        return buf
Ejemplo n.º 3
0
def _print_net(src, protocol, perm):
    import sepolicy.network
    portdict = sepolicy.network.get_network_connect(src, protocol, perm)
    if len(portdict) > 0:
        bold_start="\033[1m"
        bold_end="\033[0;0m"
        print("\n"+bold_start+"%s: %s %s" % (src, protocol, perm) + bold_end)
        port_strings=[]
        boolean_text=""
        for p in portdict:
            for t, recs in portdict[p]:
                cond = get_conditionals(src, t, "%s_socket" % protocol, [perm])
                if cond:
                    boolean_text = get_conditionals_format_text(cond)
                    port_strings.append("%s (%s) %s" % (", ".join(recs), t, boolean_text))
                else:
                    port_strings.append("%s (%s)" % (", ".join(recs), t))
        port_strings.sort(key=util.cmp_to_key(numcmp))
        for p in port_strings:
            print("\t" + p)
Ejemplo n.º 4
0
def _print_net(src, protocol, perm):
    import sepolicy.network
    portdict = sepolicy.network.get_network_connect(src, protocol, perm)
    if len(portdict) > 0:
        bold_start = "\033[1m"
        bold_end = "\033[0;0m"
        print("\n" + bold_start + "%s: %s %s" % (src, protocol, perm) + bold_end)
        port_strings = []
        boolean_text = ""
        for p in portdict:
            for t, recs in portdict[p]:
                cond = get_conditionals(src, t, "%s_socket" % protocol, [perm])
                if cond:
                    boolean_text = get_conditionals_format_text(cond)
                    port_strings.append("%s (%s) %s" % (", ".join(recs), t, boolean_text))
                else:
                    port_strings.append("%s (%s)" % (", ".join(recs), t))
        port_strings.sort(key=lambda param: port_string_to_num(param))
        for p in port_strings:
            print("\t" + p)