nyu-mlab / iot-inspector-client

IoT Inspector: capturing and analyzing your smart home network traffic
https://inspector.engineering.nyu.edu/
MIT License
410 stars 64 forks source link

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

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:

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

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.