Skip to content

baaaaadr/IOT-Cybersecurity-DB

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

110 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Base de données des risques de sécurité IoT

Description du projet

Ce projet consiste à développer une base de données relationnelle pour une entreprise spécialisée en cybersécurité, afin de gérer les risques de sécurité associés aux composants IoT (Internet of Things). La base intègre des données sur :

  • Dispositifs IoT (composants) avec leurs caractéristiques techniques et classification selon leurs contraintes de ressources.
  • Protocoles de communication IoT utilisés par ces dispositifs.
  • Les vulnérabilités (CVE), faiblesses (CWE), et événements de menace (CAPEC) liés à ces dispositifs.
  • Des modèles de scénarios d'attaque combinant CAPEC et CWE.
  • Des implémentations réelles associant CAPEC aux CVE, illustrant concrètement les exploitations possibles.
  • Les domaines d’attaque concernés et les mécanismes de mitigation disponibles.

Contexte et besoins

L'entreprise souhaite une base de données claire et complète pour :

  • Gérer les composants IoT, leurs vulnérabilités, faiblesses et menaces.

  • Illustrer les scénarios d’attaque et leurs implémentations réelles.

  • Réaliser des analyses spécifiques via des requêtes SQL afin d'identifier, par exemple :

    • Les composants IoT ayant le plus grand nombre de CVE non mitigées.
    • Le protocole courte portée le plus associé aux scénarios d'attaque.
    • Les CAPEC les plus fréquents dans les scénarios réels liés à des vulnérabilités critiques.

Description des entités principales

Dispositifs IoT

  • Identifiant unique, nom, fabricant.
  • Spécifications techniques : RAM, puissance CPU, consommation énergétique.
  • Classification des contraintes : très contraints, moyennement contraints, non contraints.

Protocoles de communication

  • Identifiant, nom, version (identifiant + version unique).
  • Type de chiffrement, débit, fréquence, bande passante.
  • Classification par portée : courte portée (≤ 100 m), longue portée (> 100 m).

Vulnérabilités (CVE)

  • Identifiant unique (ex. CVE-2025-88588), description, date, sévérité, score CVSS.
  • Statut de mitigation, référence externe.
  • Association avec plusieurs composants IoT et une faiblesse CWE.

Faiblesses (CWE)

  • Identifiant unique (ex. CWE-20), nom, description.
  • Relations entre CWE (PeerOf, MemberOf, ParentOf, etc.).
  • Associations à plusieurs plateformes applicables (ex. langage de programmation).

Événements de menace (CAPEC)

  • Identifiant unique (ex. CAPEC-94), nom, description.
  • Niveau de compétence requis, ressources nécessaires.
  • Associations à plusieurs CWE et CVE.

Scénarios d’attaque

  • Modèles CAPEC-CWE avec identifiant unique et description.
  • Implémentations réelles CAPEC-CVE avec description, probabilité, sévérité, statut exploit.
  • Associés à un ou plusieurs domaines d’attaque (Logiciel, Matériel, etc.).
  • Mécanismes de mitigation avec identifiant et description.

Fonctionnalités et requêtes clés

Le projet inclut des requêtes SQL pour répondre à des besoins métiers, notamment :

  1. Composants IoT avec le plus grand nombre de CVE non mitigées Identifier les dispositifs IoT exposés aux vulnérabilités critiques sans solution de mitigation.

  2. Protocole courte portée associé au plus grand nombre de scénarios d’attaque Trouver le protocole IoT courte portée le plus vulnérable en termes de scénarios d’attaque.

  3. Top 3 des événements de menace (CAPEC) les plus fréquents dans les scénarios réels associés à des CVE critiques (CVSS > 8) Prioriser les menaces les plus courantes dans les cas d’exploitation critique.


Organisation du projet

Rendu 4: SQL & Python

  • TABLE.sql : script de création des tables, clés primaires, contraintes et relations.
  • DATA.sql : script d’insertion des données d’exemple permettant les tests et démonstrations.
  • INTERROGATION.sql : requêtes SQL correspondant aux interrogations demandées dans le sujet.
  • DELETE.sql : script de suppression complète des tables et nettoyage de la base.

Installation et utilisation

  1. Installer PostgreSQL.
  2. Exécuter dans l’ordre :
    • TABLE.sql pour créer la structure.
    • DATA.sql pour insérer les données.
  3. Lancer les requêtes d’analyse avec INTERROGATION.sql.
  4. Pour supprimer la base, exécuter DELETE.sql.

Technologies utilisées

  • Système de gestion de base de données : PostgreSQL
  • Langage : SQL, Python

Rendu 5: PostgreSQL & JSON

Ce rendu vise à adopter une approche hybride : relationnel + objets JSON dans les colonnes des tables.

  • modelisation_orientee_document.json : script JSON démontrant la structure avec des données d’exemple.
  • create_tables.sql : script de création des tables.
  • insert_data.sql : script d’insertion des données d’exemple.

Contribution

Ce projet est conçu pour un usage académique en cybersécurité IoT. Les contributions sont les bienvenues pour améliorer le modèle, optimiser les requêtes ou enrichir les données.


Contact

Pour toute question ou suggestion, merci de contacter l’auteur du projet.

About

PostgreSQL-based academic project modeling cybersecurity data for IoT systems using both SQL and JSON (NoSQL) approaches.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages