ืื ื ืืกืคืจืื ืื ืืื IoT Inspector ืืืื ืืื ืขืืื.
ืขื ืืืืืช ืืืื ืืจื ื ืฉื ืืืืจืื
ืืืืจืช ืืืืขืืฅ Bain & Company (
ืขื
ืืื ืืืื ืขื ืืืฉืืจืื ืืืืื, ืขืืืืื ืฉื ืืืจืืช IT ืืืื ืืืจืกืืืืืช ืืคืชืืื ืืื ืชืืื ื ืืืฉืื.
ืืื ืืืขืจืืช ืขืืืืช
IoT Inspector ืขืืงื ืืืจ ืืคืขืืืืช ืฉื ืืืฉืืจื IoT ืืจืฉืช ืืืืฆืขืืช ืืื ืืืืืื
ืืขืช ืฉืืืืช ืื ืืช 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 ืืืชืืืช
ืืฉื ื ืืืืืื ืืืคืชืืื ืืืืกืืฃ ืืจืกื ืืืื ืืงืก, ืืืืื - ืืคืืืงืฆืื ืืืืื ืืช. ืงืื ืืืงืืจ ืฉื ืืคืจืืืงื ืืืื
ืคืืื ืฆืืื ืืืกืจืื ืืช
ืืืคืชืืื ืืืืจืื ืื ืืืขืจืืช ืชืกืืืข ืืืืจืืช IT ืืืคืฉ ื ืงืืืืช ืชืืจืคื ืืชืืื ืืช ืฉื ืืืฉืืจื IoT ืืืืฆืืจ ืืืฉืืจืื ืืืืื ืืืืืืืื ืืืชืจ. ืืืื ืืืจ ืืืื ืืืืืช ืคืจืฆืืช ืืืืื ืืืืฆืืขืื.
IoT Inspector ืืืฆื ืืืฉืืจืื ืฉืืชืงืฉืจืื ืืชืืืจืืช ืืืืื ืืื, ืื ืืฉืืฃ ืืื ืื ืืฉืชืืฉ ืืื. ืืืื ืื ืขืืืจ ืืืืืช ืืืฉืืจืื ืืืืื ืฉืืืืื ืืช ืืจืฉืช, ืืื ืืืจืืช ืขืืืื ืื ืืขืชืื ืงืจืืืืช ืืื.
ื-IoT Inspector ืขืืืื ืืฉ ืืื ืืกืจืื ืืช. ืืืืืื ืฉืืืคืืืงืฆืื ืืื ื ืกืืื ืืช, ืืื ืขืืืื ืื ื ืืืงื ืืื ืืืฉืืจื ื-IoT ืขื ืชืฆืืจืืช ืฉืื ืืช. ืืื, ืืืื ืขืฆืื ืืืืื ืืืืืช ืืฉืคืขื ืฉืืืืืช ืขื ืืืืฆืืขืื ืฉื ืืืื'ืืื ืืืืื. ืืกืืื ืื, ืืืืืจืื ืืื ื ืืืืืฆืื ืืืืจ ืืช ืืืคืืืงืฆืื ืืืืื'ืืื ืจืคืืืืื.
ืืขืช ืืืคืชืืื ืืชืืงืืื ืืืืกืื ืืืืื, ืื ืืขืชืื ืฆืืืช ืืื ืืืจืกืืืช ืคืจืื ืกืืื ืืชืื ื ืืืจืืื ืืช ืืคืื ืงืฆืืื ืืืืช ืฉื ืืืคืืืงืฆืื ืฉืืื ืืืืื ืืก ืืชืืื ืืืืืจืืชืืื ืฉื ืืืืืช ืืืื ื. ืื ืืขืืจื ืืืืืื ืืช ืืืกืชืืจืืช ืืืืืื ืืชืงืคืืช DDoS ื-99%. ืืชื ืืืื ืืืืืจ ืืช ืื ืืจืขืืื ืืช ืฉื ืืืงืจืื ื
ืคืจืืืงืืื ืืืจืื ืฉื IoT
ืงืืืฆื ืฉื ืืคืชืืื ืืืจืืงืืื ืฉืืฉืชืคืื ืคืขืืื ืขื ืื ื ืืืืื, ืืืืจ ืกืคืจืื ืื ืืฉืื JavaScript ื-HTML, ืืืฆืจืื ืืื ืื ืืืืจ ืืืงืืกืืกืื ืฉื ืืืื ืืจื ื ืฉื ืืืืจืื -
ืืืจืช ืืคืจืืืงื ืืื ืืฉืื ืืืื'ืืื ืฉื IoT ืืืืช ืืื ืืจืฉืช ืืืช ืืืจืื ืฉืืืื. ืืคืชืืื ืืืืจืื ืฉืืขืชืื ืงืจืืืืช ืืืฉืืจืื ืืืฆืจื ืื ืฉืื ืื ืืื ื ืืืืืื ืืชืงืฉืจ ืื ืขื ืื ืืขืืืืื ืื ืคืจื. ืืื ืืคืชืืจ ืืช ืืืขืื, ืืืืจื ืืืืืื ืืฆืจื ืชืืื ื ืฉืืืืื ืืขืืื ืขื ืคืจืืืืงืืื ืจืฉืช, ืืืื'ืืื ืืืืฉืืื ืืงืื ืฉืื ืื.
ืจืฉืืืช ืืืืฉืืจืื ืื ืชืืืื
ืขืื ืคืจืืืงื ืคืชืื -
/ ืชืืื ื
ืืขืชืื ืฉื ืคืชืจืื ืืช ืืืื
ืคืจืืืงืืื, ืกืคืจืืืช ืืืกืืจืืช ืืงืื ืคืชืื ืืืคืืขืื ืืืชืจ ืืืืชืจ ืืฉืืง ื-IoT. ืงืจื ืืื ืืงืก, ืฉืขืืืืช ืื ืืชืืื ื-IoT (ืื ืืฆืจื ืืช ืืขืจืืช ืืืคืขืื
ืคืืกืืื ืืืืืื ืืจืืฉืื ืขื IaaS ืืจืืื ื:
ืืืฆื REDWEB ืืืืงื ืืขื ื IT-GRAD ืคืืชืื ืืจืืื ื ืชืื ืื: ืืืืืช ืืื ืืืืืืืช Avito.ru: ืืืฆื ืขื ื IaaS ืขืืืจ ืืืจืืื ืืขืกืงืื ืฉื ืืืืจื ืืืฆื ืืฉืคืจ ืืช ืืืขืืืืช ืืื ืจืืืืช ืฉื ืืจืื ื ืชืื ืื ืืขืืื ืืคื ื ืืืืจื. ืืื ืืืืื ืืฉืชื ื ืขื ืื ืืกืชื ืฉื ืืื ืืืื ืฉื DNS ืืชืืืฉืฉืืช ืืืกืื ืืฉืืจืืช: ืื ืฉืืชื ืฆืจืื ืืืขืช ืืื IaaS ืขืืืจ ืืคืชื ืขืกืงืื: ืฉืืืฉ ืืขืืืช ืฉืืขื ื ืืคืชืืจ
ืืงืืจ: www.habr.com