Temps de lecture : 6 minutes
La connectivité a entraîné des changements majeurs dans les applications embarquées. Le passage d'applications spécifiques à un appareil, fixes et statiques, à un monde connecté au « cloud » a apporté une multitude d'opportunités pour faciliter la surveillance, la mise à jour, l'amélioration et le complément des fonctionnalités.
En revanche, les vulnérabilités dans n'importe quel point d'un système connecté accessible aux utilisateurs non autorisés (appelées collectivement la « surface d'attaque ») peuvent potentiellement permettre à des acteurs malveillants de le compromettre. Pire encore, ces agresseurs n'ont souvent aucun intérêt particulier pour vous ou votre système. La plupart du temps, ils scrutent tout et n'importe quoi à la recherche de vulnérabilités, motivés par divers objectifs allant du gain financier au simple frisson de la chasse. Leur succès et votre malchance peuvent causer un tort incommensurable à vos produits et à votre entreprise – pouvant mener à des réclamations en responsabilité, des amendes de conformité, des dommages à la réputation, et des clients en panique cherchant du soutien.
Qu'est-ce que la cybersécurité ?
Le terme « cybersécurité » (parfois cyber-sécurité) désigne la pratique visant à protéger les systèmes, les réseaux et les données contre les attaques numériques, l'accès non autorisé, les dommages ou le vol. Cela implique la mise en place de mesures et de technologies destinées à préserver l'intégrité, la confidentialité et la disponibilité de l'information. Les aspects clés incluent l'identification des vulnérabilités, la surveillance des menaces et la réponse aux incidents.
La cybersécurité dans le contexte des systèmes embarqués concerne la protection des dispositifs informatiques spécialisés qui sont dédiés à des fonctions spécifiques au sein de systèmes mécaniques ou électriques plus vastes. Ces systèmes, que l'on trouve dans des applications telles que les contrôles automobiles, les dispositifs médicaux, les machines industrielles et les objets connectés (IoT), sont souvent contraints en ressources et fonctionnent dans des environnements en temps réel. Garantir leur sécurité implique de relever des défis uniques tels que la puissance de traitement limitée, la mémoire restreinte et la nécessité d'une opération en temps réel.
La cybersécurité dans le contexte des systèmes embarqués concerne la protection des dispositifs informatiques spécialisés qui sont dédiés à des fonctions spécifiques au sein de systèmes mécaniques ou électriques plus vastes. Ces systèmes, que l'on trouve dans des applications telles que les contrôles automobiles, les dispositifs médicaux, les machines industrielles et les objets connectés (IoT), sont souvent contraints en ressources et fonctionnent dans des environnements en temps réel. Garantir leur sécurité implique de relever des défis uniques tels que la puissance de traitement limitée, la mémoire restreinte et la nécessité d'une opération en temps réel.
Qu'est-ce que la défense en profondeur ?
Aucune défense unique d'un système connecté ne peut garantir l'imperméabilité totale ; cependant, l'application de plusieurs niveaux de sécurité assure que si un niveau échoue, d'autres restent en place pour protéger. Une analogie populaire pour cette approche de la défense en profondeur est celle du château médiéval, conçu pour défendre ses habitants contre les sièges grâce à une multitude de tours, de murs d'enceinte, de douves, de mottes, de herses, de ponts-levis, de mâchicoulis et d'autres mécanismes ingénieux. Et pourtant, malgré toutes ces défenses, des châteaux ont été compromis par des assaillants.
Il existe également de nombreuses défenses disponibles pour les développeurs de systèmes embarqués connectés. Tout comme les défenses des châteaux, toutes sont utiles, mais aucune n'est impénétrable. Elles incluent :
La contribution principale de LDRA à la cybersécurité concerne le codage sécurisé, bien que les capacités de test des outils LDRA puissent également être utilisées pour mettre en œuvre d'autres mécanismes de défense.
Il existe également de nombreuses défenses disponibles pour les développeurs de systèmes embarqués connectés. Tout comme les défenses des châteaux, toutes sont utiles, mais aucune n'est impénétrable. Elles incluent :
- La protection des données au repos
- Le démarrage sécurisé (Secure Boot)
- La séparation des domaines
- Les principes de conception des niveaux de sécurité multiples et indépendants (MILS)
- La réduction de la surface d'attaque
- Le codage sécurisé
La contribution principale de LDRA à la cybersécurité concerne le codage sécurisé, bien que les capacités de test des outils LDRA puissent également être utilisées pour mettre en œuvre d'autres mécanismes de défense.
Qu'est-ce que le codage sécurisé ?
Le codage sécurisé fait référence au principe de conception du code qui respecte les normes de sécurité les plus élevées et les meilleures pratiques. Il donne la priorité à la sécurité et aide à protéger le code contre les vulnérabilités connues et inconnues.
Le codage sécurisé place la responsabilité de la sécurité du code sur le développeur plutôt que sur une équipe de sécurité.
À mesure que la connectivité se développe dans les secteurs critiques pour la sécurité, le besoin de directives sur l'application des défenses appropriées a augmenté de manière proportionnelle.
Le codage sécurisé place la responsabilité de la sécurité du code sur le développeur plutôt que sur une équipe de sécurité.
À mesure que la connectivité se développe dans les secteurs critiques pour la sécurité, le besoin de directives sur l'application des défenses appropriées a augmenté de manière proportionnelle.
Les normes de codage
Les normes de codage sécurisé visent à garantir que les logiciels sont développés de manière à minimiser les vulnérabilités et à se protéger contre les menaces potentielles. En fournissant des lignes directrices et des meilleures pratiques, ces normes aident à prévenir les défauts de codage courants, à améliorer la qualité générale du code et à garantir la conformité avec les exigences réglementaires. Elles jouent un rôle crucial dans la protection de l'intégrité et de la confidentialité des données en promouvant des pratiques sécurisées tout au long du cycle de développement du logiciel.
Exemples de normes de codage sécurisé :
Exemples de normes de codage sécurisé :
Découvrez le Développement de logiciels embarqués sécurisés dans différents secteurs :
- Secure embedded software development in aerospace & defense
- Secure embedded software development in the automotive sector
- Secure embedded software development in the manufacturing, process & energy sectors
- Secure embedded software development in the medical device sector
- Secure embedded software development in the rail (GTS) sector
- Secure embedded software development in the space sector
Cybersécurité et outils LDRA pour
- Établir les exigences dès le départ
- Fournir une traçabilité bidirectionnelle
- Utiliser un sous-ensemble de langage sécurisé
- Adhérer à une norme de processus axée sur la sécurité
- Automatiser les processus de test SAST (statique) et DAST (dynamique)
- Utiliser l'analyse de propagation (taint analysis) pour tester les mécanismes de défense
- Tester tôt et souvent