Skip to content

nyu-mlab/iot-inspector-client

Repository files navigation

IoT Inspector 2

What is IoT Inspector? An open-source tool for capturing, analyzing, and visualizing the network activities of your smart home devices. It does not require special hardware or changes to your network. Simply run IoT Inspector and you'll see the results instantly.

You can use IoT Inspector to

  • learn what companies/countries your IoT devices communicate with
  • how much data your devices are sending and receiving
  • discover any unknown devices on the network
  • maybe more? (Tell us please?)

IoT Inspector is a research project by researchers from New York University. See our main website and documentation for more information. Also see screenshots.

⬇️ Download:

overall device activities

🔥 What's new in Version 2: We released Version 1 in 2019. Since then, we have had 7K+ users who have donated the network traffic from 65K+ devices. We recently launched Version 2 with the following changes:

  • Revamped UI/UX
  • Decoupled from cloud: You can run IoT Inspector without donating data to us (e.g., in sensitive enterprise environments)
  • Extensibility for developers (more details to come)
  • See this article about our experience maintaining IoT Inspector in the last few years.

🗞️ Media coverage: See articles about IoT Inspector in the press (all paywalls removed):

  • New York Times: Why You Should Take a Close Look at What Tracks You. It might help you manage your privacy.

  • National Public Radio: Your Smart TV Is Watching You.

  • Washington Post: You watch TV. Your TV watches back.

  • Gizmodo: This Simple Tool Will Reveal the Secret Life of Your Smart Home

  • TechCrunch: Spy on your smart home with this open source research tool

Getting started

Download and install

See this page if you want to run our precompiled binaries.

Running from the source code

You will need Python and Git already set up on your system. You'll also need to be familiar with terminals.

Tested on macOS Ventura

Run the following in your terminal:

git clone https://github.com/nyu-mlab/iot-inspector-client.git
cd iot-inspector-client
python3 -m venv env
source env/bin/activate
pip install -r requirements-general.txt

To run, do the following

source env/bin/activate
cd ui
./start.bash

Tested on Windows 10 & 11 with Python 3.8

Run the following in your terminal:

git clone https://github.com/nyu-mlab/iot-inspector-client.git
cd iot-inspector-client
python.exe -m venv env
env/Script/activate.bat
pip install -r requirements.txt

If you have a more modern version of Python (say Python 3.11), try replacing the last line above with:

pip install -r requirements-general.txt

To run, do the following in an terminal with administrator's priviledge:

env/Script/activate.bat
cd ui
streamlit.exe run Device_List.py --server.port 33761 --browser.gatherUsageStats false --server.headless true --server.baseUrlPath "inspector_dashboard"

Developing for IoT Inspector

To learn how Inspector scans the network and captures the traffic, look at the core/start.py file. The relevant modules include arp_scanner.py, arp_spoofer.py, and packet_*.py.

To learn how Inspector constructs the user interface, follow the ui/start.bash command.

For details, see our documentation.

Questions?

We are still revising the documentation and fixing bugs for IoT Inspector 2. We'd love to hear from you! Here's how to contact us. Also, here's more information about the IoT Inspector team.