Projet 1 en sécurité de l'IoT
  • Vue 61.4%
  • Python 33.3%
  • TypeScript 2.5%
  • Dockerfile 1.7%
  • CSS 0.6%
  • Other 0.5%
Find a file
2026-03-09 11:48:47 -04:00
back feat: update README 2026-03-09 10:06:39 -04:00
doc Upload files to "doc" 2026-03-08 00:38:16 +01:00
front feat: sort by date 2026-03-09 11:48:47 -04:00
.gitignore Add simple back to get and update ASUS' CVEs (#1) 2026-02-07 22:16:31 +01:00
docker-compose.yml refactor: remove env variable from docker compose for back 2026-03-07 19:00:13 -05:00
README.md docs: fix IOT to IoT 2026-03-08 21:28:53 -04:00

IoT Projet 1

Rappel du sujet

L'objectif de ce projet est de concevoir et réaliser une plateforme web qui se met à jour automatiquement à partir de sources ouvertes et gratuites, afin d'informer les utilisateurs sur les vulnérabilités pertinentes aux objets connectés, de prioriser celles qui représentent le plus grand risque, et de proposer des mesures de mitigation concrètes.

Nous avons choisi de se concentrer sur le fabriquant Netgear qui est un fabriquant d'équipement réseaux. Ce choix a été fait car les équipements réseaux sont centraux dans les systèmes IoT, et sont souvent sujet à des vulnérabilités.

Installation

Pour exécuter notre projet, il faut:

  1. Cloner le projet.
git clone https://forge.piair.dev/UQAC/IoT-Projet1 && cd IoT-Projet1
  1. Modifier les fichiers d'environement avec les valeurs voulues.
cp front/.env{.example,} && vim front/.env
cp back/.env{.example,} && vim back/.env
  1. Lancer Docker compose.
docker compose up
  1. Visiter le site web.

Fonctionnement technique.

L'exécution du docker compose va créer 3 conteneurs:

  1. Une base de données Postgres iot-database
  2. Le frontend iot-web
  3. Le backend iot-api

La description du fonctionnement du backend est décrit dans un fichier README dédié. Le Front end fait des requêtes API vers ce dernier afin d'afficher les informations à l'utilisateur.

Dépendances

Frontend

Les dépendances du frontend sont celle d'un projet VueJs. Voici un extrait du fichier package.json

    "@vueuse/core": "^14.2.0",
    "axios": "^1.13.5",
    "ts-node": "^10.9.2",
    "vue": "^3.5.27",
    "vue-router": "^5.0.2"

Backend

Les dépendances du backend sont axées sur les deux opérations: servir une api (avec fastAPI) et faire des requêtes en arrière plan (avec asyncio et requests). Voici un extrait du fichier pyproject.toml

    "asyncio>=4.0.0",
    "fastapi>=0.128.2",
    "psycopg>=3.3.2",
    "python-dotenv>=1.2.1",
    "requests>=2.32.5",
    "sqlalchemy>=2.0.46",
    "uvicorn>=0.40.0",