IoT Shield – Code Package
=========================

Project: IoT Shield – IoT Threat Simulation and SIEM Monitoring
Course: Capstone II (Cybersecurity)

This Code directory contains all code artifacts for the IoT Shield project:
- Python source code for three simulated IoT devices
- Static website files used to present the system, attacks, and results
- Documentation for installation and end‑user operation

For full project background (problem, motivation, architecture, and results),
see the main Capstone documentation and poster.

----------------------------------------------------------------------
1. Directory Structure
----------------------------------------------------------------------

Code/
├─ README.txt
├─ Installation_Guide.docx
├─ User_Manual.docx
├─ IoT_Devices/
│  ├─ thermostat_simulator.py
│  ├─ camera_simulator.py
│  └─ door_lock_simulator.py
└─ Website/
   ├─ index.html
   ├─ css/
   ├─ js/
   └─ assets/

Description of each folder:

- IoT_Devices/
  Contains the Python source code for three simulated IoT devices that
  generate telemetry and security‑relevant events and forward them to
  Splunk via HTTP Event Collector (HEC).

  * thermostat_simulator.py
      Simulates a smart thermostat ("thermostat-001") sending temperature,
      humidity, HVAC status, and signal information at a fixed interval.

  * camera_simulator.py
      Simulates a front‑door security camera ("camera-front-door") sending
      motion events, recording state, and storage usage.

  * door_lock_simulator.py
      Simulates a smart door lock ("door-lock-main") generating lock/unlock
      and access_attempt events for different users, including failed access
      attempts.

- Website/
  Contains the static single‑page website used to present IoT Shield. All
  files are standard HTML/CSS/JavaScript and can be served by any static
  web host or a simple local HTTP server.

  * index.html
      Main entry page, containing all sections, carousels, FAQ, and contact
      dialog.

  * css/
      Stylesheet(s) for the site, including design tokens, layout rules,
      responsive breakpoints, and component styles.

  * js/
      JavaScript modules that power the hero animation, attack and "How it
      works" carousels, FAQ accordion, contact dialog, scroll‑to‑top button,
      and sticky section navigation.

  * assets/
      Images used by the site, including architecture diagrams, SIEM
      dashboards, and example attack screenshots.

----------------------------------------------------------------------
2. Prerequisites (High‑Level)
----------------------------------------------------------------------

See Installation_Guide.docx for detailed, step‑by‑step instructions.

At a high level, you will need:

- A machine with Python 3.10+ installed.
- The Python 'requests' library.
- A running Splunk Enterprise instance (or Splunk trial) with:
    * HTTP Event Collector (HEC) enabled.
    * An HEC token configured for index "iot_devices".
- Network connectivity from the host running the simulators to the Splunk
  HEC endpoint (default lab configuration uses HTTPS on port 8088).

For the website:

- Any modern desktop web browser (Chrome, Firefox, Edge, Safari).
- Optional: Python or another simple HTTP server to preview the site
  locally instead of using file:// URLs.

----------------------------------------------------------------------
3. How to Use This Code Package
----------------------------------------------------------------------

1. Start with Installation_Guide.docx
   - Follow the steps to install prerequisites, configure Splunk HEC,
     and edit configuration constants (HEC URL, token, index) in the
     simulator scripts as needed.

2. Run the IoT device simulators
   - Use the commands shown in the Installation Guide to start each Python
     script.
   - Confirm that events arrive in Splunk (index "iot_devices").

3. Open the Website
   - Serve the Website/ directory from a local HTTP server or static host.
   - Use the site to walk through the architecture, attack scenarios, and
     example dashboards.

4. Refer to User_Manual.docx
   - For non‑developer users, consult the User Manual for task‑oriented
     instructions on starting/stopping the simulators and interpreting the
     dashboards and alerts.

----------------------------------------------------------------------
4. Contact / Maintainers
----------------------------------------------------------------------

Team: IoT Shield Capstone II
Members:
- Max Gleiberman
- Julian Hernandez
- Nathan Mahabeer
- Elizabeth Hechavarria

For grading or review questions, please contact the course instructor
using the channels specified in the syllabus.