예제 #1
0
def packetHandler(pkt):
    global mac
    global icmp_pkt_arr
    global udp_pkt_arr
    global tcp_pkt_arr
    global node
    pprint.pprint(pkt)

    if pkt.haslayer(IP):
        ip = pkt.getlayer(IP)
        ether = pkt.getlayer(Ether)
        if ip.dst != None and func.inSubnet(
                ip.dst) and ether.src != mac:  # removing data from AP
            if pkt.lastlayer().haslayer(ICMP):
                if icmp_pkt_arr == 0:
                    icmp_pkt_arr = time.time()
                else:
                    timeSeen = time.time()
                    if timeSeen - icmp_pkt_arr <= func.tau():
                        d.warning('[+] Possible ICMP Flood detected')
                        icmp_pkt_arr = timeSeen
                        icmp.process(pkt, node, timeSeen)
                    else:
                        # reset
                        d.default('[-] Resetting icmp_pkt_arr')
                        icmp_pkt_arr = 0
            if pkt.lastlayer().haslayer(UDP):
                if udp_pkt_arr == 0:
                    udp_pkt_arr = time.time()
                else:
                    timeSeen = time.time()
                    if timeSeen - udp_pkt_arr <= func.tau():
                        d.warning('[+] Possible UDP Flood detected')
                        udp_pkt_arr = timeSeen
                        udp.process(pkt, node, timeSeen)
                    else:
                        # reset
                        d.default('[-] Resetting udp_pkt_arr')
                        udp_pkt_arr = 0

            if pkt.lastlayer().haslayer(TCP):
                if tcp_pkt_arr == 0:
                    tcp_pkt_arr = time.time()
                else:
                    timeSeen = time.time()
                    if timeSeen - tcp_pkt_arr <= func.tau():
                        d.warning('[+] Possible TCP Flood detected')
                        tcp_pkt_arr = timeSeen
                        syn.process(pkt, node, timeSeen)
                    else:
                        # reset
                        d.default('[-] Resetting tcp_pkt_arr')
                        tcp_pkt_arr = 0
예제 #2
0
파일: test.py 프로젝트: zezo010/IoT-IDS
def packetHandler(pkt):
    global mac
    if pkt.haslayer(IP):
        ip = pkt.getlayer(IP)
        ether = pkt.getlayer(Ether)
        if ip.dst != None and func.inSubnet(
                ip.dst) and ether.src != mac:  # removing data from AP
            if pkt.lastlayer().haslayer(ICMP):
                icmp.process(pkt)

            if pkt.lastlayer().haslayer(UDP):
                udp.process(pkt)

            if pkt.lastlayer().haslayer(TCP):
                syn.process(pkt)
예제 #3
0
def packetHandler(pkt):
    global mac
    global scenario
    #d.warning(pprint.pformat(pkt))

    # passing model as second param
    scenario = model
    global t_start

    if pkt.haslayer(IP):
        ip = pkt.getlayer(IP)
        ether = pkt.getlayer(Ether)

        if ip.dst != None and func.inSubnet(
                ip.dst) and ether.src != mac:  # removing data from AP
            if pkt.haslayer(ICMP):
                icmp.process(pkt, scenario, t_start)

            if pkt.haslayer(UDP):
                udp.process(pkt, scenario, t_start)

            if pkt.haslayer(TCP):
                tcp.process(pkt, scenario, t_start)