Ouvrir le menu Fermer le menu

Bonnes Pratiques de sécurité de gestion des données IoT Edge

trait de séparation
Temps de lecture : 5 minutes

En tant que développeur de systèmes embarqués, vous devez prévoir les attaques possibles pour votre système et prendre les mesures nécessaires pour les prévenir. 

Pour prévenir ces attaques, il faut porter son attention sur les zones vulnérables des bases de données qui sont des cibles privilégiées. Mais quelles sont et où sont ces zones vulnérables ? La base de données intègre-t-elle les méthodes et mécanismes de prévention requis pour que les développeurs puissent se concentrer sur les zones sensibles de leurs applications ?

Il est important de s'assurer que des données inconnues qui seraient envoyées vers un appareil sont détectées et non autorisées à entrer dans l'équipement, car de nombreuses méthodes de corruption sont utilisées par les attaquants.

Les pratiques importantes commencent par l'introduction de principes et de directives de codage sécurisés aux développeurs du système embarqué. La validation des données d’entrées est cruciale non seulement pour prévenir les vulnérabilités de type injection SQL, mais également pour protéger les données contre les erreurs d'encodage et de type lors d'un accès ultérieur. Un schéma de base de données clair avec des colonnes fortement typées est d'un grand avantage. C’est le système de gestion de session qui est responsable du routage des demandes vers la connexion appropriée de la base de données. Une base de données embarquée disposant d’un verrouillage robuste basé sur les transactions simplifie grandement la gestion des sessions dans les applications multithread. En définissant des pratiques de programmation sécurisées, il devient possible de surveiller l'accès à la base de données et d'identifier les comportements d'application non conformes.

Pratiques de programmation de bases de données sécurisées

Une attention toute particulière et évidente doit être portée lorsqu'un équipement s'ouvre aux connexions d'autres systèmes, à Internet et à divers services cloud. En effet, diverses couches des base de données font l'objet d'attaques et doivent être prises en compte. Les conditions préalables possibles qui permettraient à un attaquant d'accéder à la base de données, y compris l'accès logique et physique, doivent donc être identifiées.

La première étape de tout exploit consiste à trouver des moyens possibles d'extraire des informations de l’équipement, en commençant par la structure des données et l'organisation du système. Les vulnérabilités d'injection SQL permettent à un attaquant d'insérer des instructions SQL malveillantes, d'exécuter les requêtes souhaitées et de supprimer, modifier ou même d'ajouter de nouveaux enregistrements et des tables à la base de données à distance via des canaux de communication au niveau de l'application. Les attaques par injection SQL se produisent lorsque les développeurs produisent du code SQL dynamique soit directement, soit via des frameworks généraux. Des interfaces de base de données robustes avec prise en charge des paramètres de requête et une logique conditionnelle efficace dans le langage SQL lui-même constituent la meilleure défense.

Combinez la sécurité du logiciel de base de données et du matériel de l’équipement

Les attaques les plus difficiles à prévenir se produisent au niveau du matériel, souvent lorsqu'un appareil est volé. Par exemple, il est possible de surveiller silencieusement l'activité de divers composants, simplement en se connectant à certaines pins des composants. Si vos données doivent passer d'une puce à une autre, ce vecteur d'attaque est actif. Mais une contre mesure est de s’assurer que tout ce qui transite est dans un format crypté.

Les attaques de réseau nécessitent simplement qu'un attaquant ait accès au même réseau physique qu'un équipement. Lorsqu'une application cliente accède à une base de données, seule une partie limitée de la base de données peut lui être proposée. Sans protocole sécurisé, il serait possible de créer un message pour imiter une autre connexion avec des privilèges d'accès plus importants. Les protocoles basés sur Transport Layer Security (TLS), le successeur de SSL, utilisent le chiffrement et les certificats pour protéger chaque connexion client. Une configuration minutieuse, telle que l'échange de clés Diffie-Hellman, est nécessaire pour sécuriser correctement le canal de communication. Un protocole de communication de base de données robuste donne accès à toutes les options de configuration nécessaires et utilise le matériel de chiffrement pour améliorer les performances et protéger les clés cryptographiques secrètes.

Pour en savoir plus sur la gestion et la sécurité des bases de données embarquées, lisez notre Livre blanc sur l'intégration de la sécurité pour les données des appareils IoT.
0