ื›ืœื™ ืคืชื•ื— ืœื ื™ื˜ื•ืจ ืจืฉืช ืขื ืžื›ืฉื™ืจื™ IoT

ืื ื• ืžืกืคืจื™ื ืœืš ืžื”ื• IoT Inspector ื•ืื™ืš ื”ื•ื ืขื•ื‘ื“.

ื›ืœื™ ืคืชื•ื— ืœื ื™ื˜ื•ืจ ืจืฉืช ืขื ืžื›ืฉื™ืจื™ IoT
/ ืชืžื•ื ื” PxHere PD

ืขืœ ืื‘ื˜ื—ืช ื”ืื™ื ื˜ืจื ื˜ ืฉืœ ื”ื“ื‘ืจื™ื

ื‘ื—ื‘ืจืช ื”ื™ื™ืขื•ืฅ Bain & Company (PDF, ืขืžื•ื“ 1) ืื•ืžืจื™ื ืฉืž-2017 ืขื“ 2021 ื’ื•ื“ืœ ืฉื•ืง ื”-IoT ื™ื•ื›ืคืœ: ืž-235 ืœ-520 ืžื™ืœื™ืืจื“ ื“ื•ืœืจ. ื—ืœืงื ืฉืœ ื’ืื“ื’'ื˜ื™ื ืœื‘ื™ืช ื—ื›ื ื™ืขืœื” 47 ืžื™ืœื™ืืจื“ ื“ื•ืœืจ. ืžื•ืžื—ื™ ืื‘ื˜ื—ืช ืžื™ื“ืข ืžื•ื“ืื’ื™ื ืžืฉื™ืขื•ืจื™ ืฆืžื™ื—ื” ื›ืืœื”.

ืขืœ ืœืคื™ Avast, ื‘-40% ืžื”ืžืงืจื™ื ืœืคื—ื•ืช ืœืžื›ืฉื™ืจ ื—ื›ื ืื—ื“ ื™ืฉ ืคื’ื™ืขื•ืช ืงืจื™ื˜ื™ืช ืฉืžืขืžื™ื“ื” ืืช ื›ืœ ื”ืจืฉืช ื”ื‘ื™ืชื™ืช ื‘ืกื™ื›ื•ืŸ. ื‘ืžืขื‘ื“ืช ืงืกืคืจืกืงื™ ื”ืงื™ืžื•, ืฉื‘ืจื‘ืขื•ืŸ ื”ืจืืฉื•ืŸ ืฉืœ ื”ืฉื ื” ืฉืขื‘ืจื”, ื’ืื“ื’'ื˜ื™ื ื—ื›ืžื™ื ืกืคื’ื• ืคื™ ืฉืœื•ืฉื” ื™ื•ืชืจ ื”ืชืงืคื•ืช ืžืืฉืจ ื‘-2017 ื›ื•ืœื”.

ื›ื“ื™ ืœื”ื’ืŸ ืขืœ ืžื›ืฉื™ืจื™ื ื—ื›ืžื™ื, ืขื•ื‘ื“ื™ื ืฉืœ ื—ื‘ืจื•ืช IT ื•ืื•ื ื™ื‘ืจืกื™ื˜ืื•ืช ืžืคืชื—ื™ื ื›ืœื™ ืชื•ื›ื ื” ื—ื“ืฉื™ื. ืฆื•ื•ืช ื”ื ื“ืกื” ืžืื•ื ื™ื‘ืจืกื™ื˜ืช ืคืจื™ื ืกื˜ื•ืŸ ื ื•ืฆืจ ืคืœื˜ืคื•ืจืžื” ืคืชื•ื—ื” ืฉืœ Princeton IoT Inspector. ื–ื•ื”ื™ ืืคืœื™ืงืฆื™ื™ืช ืฉื•ืœื—ืŸ ืขื‘ื•ื“ื” ื”ืžื ื˜ืจืช ืืช ื”ื”ืชื ื”ื’ื•ืช ื•ื”ืชืคืขื•ืœ ืฉืœ ืžื›ืฉื™ืจื™ IoT ื‘ื–ืžืŸ ืืžืช.

ืื™ืš ื”ืžืขืจื›ืช ืขื•ื‘ื“ืช

IoT Inspector ืขื•ืงื‘ ืื—ืจ ื”ืคืขื™ืœื•ืช ืฉืœ ืžื›ืฉื™ืจื™ IoT ื‘ืจืฉืช ื‘ืืžืฆืขื•ืช ื˜ื›ื ื•ืœื•ื’ื™ื” ื–ื™ื•ืฃ ARP. ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ื• ื›ื“ื™ ืœื ืชื— ืชืขื‘ื•ืจืช ืžื›ืฉื™ืจื™ื. ื”ืžืขืจื›ืช ืื•ืกืคืช ืžื™ื“ืข ืื ื•ื ื™ืžื™ ืขืœ ืชืขื‘ื•ืจืช ืจืฉืช ื›ื“ื™ ืœื–ื”ื•ืช ืคืขื™ืœื•ืช ื—ืฉื•ื“ื”. ื‘ืžืงืจื” ื–ื”, ื ืชื•ื ื™ื ื›ื’ื•ืŸ ื›ืชื•ื‘ื•ืช IP ื•-MAC ืื™ื ื ื ืœืงื—ื™ื ื‘ื—ืฉื‘ื•ืŸ.

ื‘ืขืช ืฉืœื™ื—ืช ืžื ื•ืช ARP ื ืขืฉื” ืฉื™ืžื•ืฉ ื‘ืงื•ื“ ื”ื‘ื:

class ArpScan(object):

    def __init__(self, host_state):

        assert isinstance(host_state, HostState)

        self._lock = threading.Lock()
        self._active = True

        self._thread = threading.Thread(target=self._arp_scan_thread)
        self._thread.daemon = True

    def start(self):

        with self._lock:
            self._active = True

        utils.log('[ARP Scanning] Starting.')
        self._thread.start()

    def _arp_scan_thread(self):

        utils.restart_upon_crash(self._arp_scan_thread_helper)

    def _arp_scan_thread_helper(self):

        while True:

            for ip in utils.get_network_ip_range():

                time.sleep(0.05)

                arp_pkt = sc.Ether(dst="ff:ff:ff:ff:ff:ff") / 
                    sc.ARP(pdst=ip, hwdst="ff:ff:ff:ff:ff:ff")
                sc.sendp(arp_pkt, verbose=0)

                with self._lock:
                    if not self._active:
                        return

    def stop(self):

        utils.log('[ARP Scanning] Stopping.')

        with self._lock:
            self._active = False

        self._thread.join()

        utils.log('[ARP Scanning] Stopped.')

ืœืื—ืจ ื ื™ืชื•ื— ื”ืจืฉืช, ืฉืจืช IoT Inspector ืงื•ื‘ืข ืขื ืื™ืœื• ืืชืจื™ื ื’ืื“ื’'ื˜ื™ื ืฉืœ IoT ืžื—ืœื™ืคื™ื ื ืชื•ื ื™ื, ื‘ืื™ื–ื• ืชื“ื™ืจื•ืช ื”ื ืขื•ืฉื™ื ื–ืืช, ื•ื‘ืื™ืœื• ื ืคื—ื™ื ื”ื ืžืฉื“ืจื™ื ื•ืžืงื‘ืœื™ื ืžื ื•ืช. ื›ืชื•ืฆืื” ืžื›ืš, ื”ืžืขืจื›ืช ืžืกื™ื™ืขืช ืœื–ื”ื•ืช ืžืฉืื‘ื™ื ื—ืฉื•ื“ื™ื ืฉืืœื™ื”ื ื ื™ืชืŸ ืœืฉืœื•ื— PD ืœืœื ื™ื“ื™ืขืช ื”ืžืฉืชืžืฉ.

ืœืขืช ืขืชื”, ื”ื™ื™ืฉื•ื ืขื•ื‘ื“ ืจืง ืขืœ macOS. ืืชื” ื™ื›ื•ืœ ืœื”ื•ืจื™ื“ ืืช ืืจื›ื™ื•ืŸ ื”-zip ื‘ื›ืชื•ื‘ืช ืืชืจ ื”ืคืจื•ื™ืงื˜. ื›ื“ื™ ืœื”ืชืงื™ืŸ, ืชื–ื“ืงืง ืœื“ืคื“ืคืŸ macOS High Sierra ืื• Mojave, Firefox ืื• Chrome. ื”ืืคืœื™ืงืฆื™ื” ืœื ืขื•ื‘ื“ืช ื‘ืกืคืืจื™. ืžื“ืจื™ืš ื”ืชืงื ื” ื•ืชืฆื•ืจื” ื–ืžื™ืŸ ื‘ื™ื•ื˜ื™ื•ื‘.

ื”ืฉื ื” ื”ื‘ื˜ื™ื—ื• ื”ืžืคืชื—ื™ื ืœื”ื•ืกื™ืฃ ื’ืจืกื” ืœืœื™ื ื•ืงืก, ื•ื‘ืžืื™ - ืืคืœื™ืงืฆื™ื” ืœื—ืœื•ื ื•ืช. ืงื•ื“ ื”ืžืงื•ืจ ืฉืœ ื”ืคืจื•ื™ืงื˜ ื–ืžื™ืŸ ื‘-GitHub.

ืคื•ื˜ื ืฆื™ืืœ ื•ื—ืกืจื•ื ื•ืช

ื”ืžืคืชื—ื™ื ืื•ืžืจื™ื ื›ื™ ื”ืžืขืจื›ืช ืชืกื™ื™ืข ืœื—ื‘ืจื•ืช IT ืœื—ืคืฉ ื ืงื•ื“ื•ืช ืชื•ืจืคื” ื‘ืชื•ื›ื ื•ืช ืฉืœ ืžื›ืฉื™ืจื™ IoT ื•ืœื™ืฆื•ืจ ืžื›ืฉื™ืจื™ื ื—ื›ืžื™ื ืžืื•ื‘ื˜ื—ื™ื ื™ื•ืชืจ. ื”ื›ืœื™ ื›ื‘ืจ ื™ื›ื•ืœ ืœื–ื”ื•ืช ืคืจืฆื•ืช ืื‘ื˜ื—ื” ื•ื‘ื™ืฆื•ืขื™ื.

IoT Inspector ืžื•ืฆื ืžื›ืฉื™ืจื™ื ืฉืžืชืงืฉืจื™ื ื‘ืชื“ื™ืจื•ืช ื’ื‘ื•ื”ื” ืžื“ื™, ื’ื ื›ืฉืืฃ ืื—ื“ ืœื ืžืฉืชืžืฉ ื‘ื”ื. ื”ื›ืœื™ ื’ื ืขื•ื–ืจ ืœื–ื”ื•ืช ืžื›ืฉื™ืจื™ื ื—ื›ืžื™ื ืฉืžืื˜ื™ื ืืช ื”ืจืฉืช, ื›ืžื• ื”ื•ืจื“ืช ืขื“ื›ื•ื ื™ื ืœืขืชื™ื ืงืจื•ื‘ื•ืช ืžื“ื™.

ืœ-IoT Inspector ืขื“ื™ื™ืŸ ื™ืฉ ื›ืžื” ื—ืกืจื•ื ื•ืช. ืžื›ื™ื•ื•ืŸ ืฉื”ืืคืœื™ืงืฆื™ื” ื”ื™ื ื ืกื™ื•ื ื™ืช, ื”ื™ื ืขื“ื™ื™ืŸ ืœื ื ื‘ื“ืงื” ื‘ื›ืœ ืžื›ืฉื™ืจื™ ื”-IoT ืขื ืชืฆื•ืจื•ืช ืฉื•ื ื•ืช. ืœื›ืŸ, ืœื›ืœื™ ืขืฆืžื• ื™ื›ื•ืœื” ืœื”ื™ื•ืช ื”ืฉืคืขื” ืฉืœื™ืœื™ืช ืขืœ ื”ื‘ื™ืฆื•ืขื™ื ืฉืœ ื’ืื“ื’'ื˜ื™ื ื—ื›ืžื™ื. ืžืกื™ื‘ื” ื–ื•, ื”ืžื—ื‘ืจื™ื ืื™ื ื ืžืžืœื™ืฆื™ื ืœื—ื‘ืจ ืืช ื”ืืคืœื™ืงืฆื™ื” ืœื’ืื“ื’'ื˜ื™ื ืจืคื•ืื™ื™ื.

ื›ืขืช ื”ืžืคืชื—ื™ื ืžืชืžืงื“ื™ื ื‘ื—ื™ืกื•ืœ ื‘ืื’ื™ื, ืืš ื‘ืขืชื™ื“ ืฆื•ื•ืช ืื•ื ื™ื‘ืจืกื™ื˜ืช ืคืจื™ื ืกื˜ื•ืŸ ืžืชื›ื ืŸ ืœื”ืจื—ื™ื‘ ืืช ื”ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ืฉืœ ื”ืืคืœื™ืงืฆื™ื” ืฉืœื”ื ื•ืœื”ื›ื ื™ืก ืœืชื•ื›ื• ืืœื’ื•ืจื™ืชืžื™ื ืฉืœ ืœืžื™ื“ืช ืžื›ื•ื ื”. ื”ื ื™ืขื–ืจื• ืœื”ื’ื“ื™ืœ ืืช ื”ื”ืกืชื‘ืจื•ืช ืœื’ื™ืœื•ื™ ื”ืชืงืคื•ืช DDoS ืœ-99%. ืืชื” ื™ื›ื•ืœ ืœื”ื›ื™ืจ ืืช ื›ืœ ื”ืจืขื™ื•ื ื•ืช ืฉืœ ื—ื•ืงืจื™ื ื‘ ื“ื•ื— PDF ื–ื”.

ืคืจื•ื™ืงื˜ื™ื ืื—ืจื™ื ืฉืœ IoT

ืงื‘ื•ืฆื” ืฉืœ ืžืคืชื—ื™ื ืืžืจื™ืงืื™ื ืฉืžืฉืชืคื™ื ืคืขื•ืœื” ืขื ื“ื ื™ ื’ื•ื“ืžืŸ, ืžื—ื‘ืจ ืกืคืจื™ื ื‘ื ื•ืฉืื™ JavaScript ื•-HTML, ื™ื•ืฆืจื™ื ื›ืœื™ ืœื ื™ื˜ื•ืจ ื”ืืงื•ืกื™ืกื˜ื ืฉืœ ื”ืื™ื ื˜ืจื ื˜ ืฉืœ ื”ื“ื‘ืจื™ื - ืžืขืจื›ืช ื”ื“ื‘ืจื™ื.

ืžื˜ืจืช ื”ืคืจื•ื™ืงื˜ ื”ื™ื ืœืฉืœื‘ ื’ืื“ื’'ื˜ื™ื ืฉืœ IoT ืœื‘ื™ืช ื—ื›ื ืœืจืฉืช ืื—ืช ื•ืœืจื›ื– ืฉืœื™ื˜ื”. ืžืคืชื—ื™ื ืื•ืžืจื™ื ืฉืœืขืชื™ื ืงืจื•ื‘ื•ืช ืžื›ืฉื™ืจื™ื ืžื™ืฆืจื ื™ื ืฉื•ื ื™ื ืื™ื ื ื™ื›ื•ืœื™ื ืœืชืงืฉืจ ื–ื” ืขื ื–ื” ื•ืขื•ื‘ื“ื™ื ื‘ื ืคืจื“. ื›ื“ื™ ืœืคืชื•ืจ ืืช ื”ื‘ืขื™ื”, ืžื—ื‘ืจื™ ื”ื™ื•ื–ืžื” ื™ืฆืจื• ืชื•ื›ื ื” ืฉื™ื›ื•ืœื” ืœืขื‘ื•ื“ ืขื ืคืจื•ื˜ื•ืงื•ืœื™ ืจืฉืช, ื’ืื“ื’'ื˜ื™ื ื•ื™ื™ืฉื•ืžื™ ืœืงื•ื— ืฉื•ื ื™ื.

ืจืฉื™ืžืช ื”ืžื›ืฉื™ืจื™ื ื”ื ืชืžื›ื™ื ื–ืžื™ืŸ ื‘ืืชืจ ื”ืคืจื•ื™ืงื˜. ืฉื ื’ื ืืคืฉืจ ืœืžืฆื•ื ืงื•ื“ ื”ืžืงื•ืจ ะธ ืžื“ืจื™ืš ืœื”ืชื—ืœื” ืžื”ื™ืจื”.

ืขื•ื“ ืคืจื•ื™ืงื˜ ืคืชื•ื— - PrivateEyePi. ืžื—ื‘ืจื™ ื”ื™ื•ื–ืžื” ื—ื•ืœืงื™ื ืคืชืจื•ื ื•ืช ืชื•ื›ื ื” ื•ืงื•ื“ ืžืงื•ืจ ืœื™ืฆื™ืจืช ืจืฉืช IoT ืžื•ืชืืžืช ืื™ืฉื™ืช ื”ืžื‘ื•ืกืกืช ืขืœ Raspberry Pi. ื‘ืืชืจ ื™ืฉ ืžืกืคืจ ืจื‘ ืฉืœ ืžื“ืจื™ื›ื™ื ืื™ืชื ื ื™ืชืŸ ืœื‘ื ื•ืช ืึทืœื—ื•ึผื˜ ืจืฉืช ื—ื™ื™ืฉื ื™ื ื˜ืžืคืจื˜ื•ืจื”, ืœื—ื•ืช, ื•ื’ื ืœื”ื’ื“ื™ืจ ืžืขืจื›ืช ืื‘ื˜ื—ื” ืœื‘ื™ืช.

ื›ืœื™ ืคืชื•ื— ืœื ื™ื˜ื•ืจ ืจืฉืช ืขื ืžื›ืฉื™ืจื™ IoT
/ ืชืžื•ื ื” PxHere PD

ื”ืขืชื™ื“ ืฉืœ ืคืชืจื•ื ื•ืช ื›ืืœื”

ืคืจื•ื™ืงื˜ื™ื, ืกืคืจื™ื•ืช ื•ืžืกื’ืจื•ืช ื‘ืงื•ื“ ืคืชื•ื— ืžื•ืคื™ืขื™ื ื™ื•ืชืจ ื•ื™ื•ืชืจ ื‘ืฉื•ืง ื”-IoT. ืงืจืŸ ืœื™ื ื•ืงืก, ืฉืขื•ื‘ื“ืช ื’ื ื‘ืชื—ื•ื ื”-IoT (ื”ื ื™ืฆืจื• ืืช ืžืขืจื›ืช ื”ื”ืคืขืœื” ืฆืคืจื™ืจ), ื”ื ืื•ืžืจื™ื ืฉื›ืœื™ ืงื•ื“ ืคืชื•ื— ื ื—ืฉื‘ื™ื ื‘ื˜ื•ื—ื™ื ื™ื•ืชืจ. ื“ืขื” ื–ื• ื ื•ื‘ืขืช ืžื›ืš ืฉ"ื”ืžื•ื“ื™ืขื™ืŸ ื”ืงื•ืœืงื˜ื™ื‘ื™" ืฉืœ ืงื”ื™ืœืช ืžื•ืžื—ื™ ืื‘ื˜ื—ืช ื”ืžื™ื“ืข ืžืฉืชืชืฃ ื‘ืคื™ืชื•ื—ื. ืžื›ืœ ื–ื” ืื ื• ื™ื›ื•ืœื™ื ืœื”ืกื™ืง ืฉืคืจื•ื™ืงื˜ื™ื ื›ืžื• IoT Inspector ื™ื•ืคื™ืขื• ืœืขืชื™ื ืงืจื•ื‘ื•ืช ื™ื•ืชืจ ื•ื™ื•ืชืจ ื•ื™ืขื–ืจื• ืœื”ืคื•ืš ืืช ืคืœื— ื”ืžื›ืฉื™ืจื™ื ื”ื–ื” ืœืื‘ื˜ื— ื™ื•ืชืจ.

ืคื•ืกื˜ื™ื ืžื”ื‘ืœื•ื’ ื”ืจืืฉื•ืŸ ืขืœ IaaS ืืจื’ื•ื ื™:

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”