Mazda Infotainment Crash montre à quel point la sécurité des voitures est vraiment fragile

Mazda

Un autre jour, un autre crash dans le logiciel de l’appareil automobile.

Cette fois, le bug a été trouvé dans le système d’infodivertissement des anciens modèles de Mazda de 2014 à 2017. Les conducteurs ont signalé que leurs récepteurs radio HD se sont écrasés lors de la connexion à une station de radio locale. La radio et son écran, les capacités Bluetooth, les cartes intégrées et les horloges numériques ont tous été frits.

Selon rapportsla défaillance du système s’est produite en raison d’une simple erreur de codage qui s’est produite lorsque la station de radio a transmis des images sans l’extension requise dans les noms de fichiers.

Alors que les propriétaires de Mazda frustrés attendant leur nouvelle CMU (Connectivity Master Unit) à 1500 $ pourraient être en désaccord, ce bug particulier était relativement inoffensif, entraînant des dommages minimes.

Malheureusement, il est probable que nous continuerons d’entendre des rapports de pannes logicielles dans les systèmes du véhicule, et comme les véhicules s’appuient de plus en plus sur le code, les risques de vulnérabilités affectant la sécurité et la sûreté augmentent de manière exponentielle. Qui sait quel sera l’impact du prochain bug sur les pilotes ?

Comment une simple erreur de codage a corrompu les systèmes connectés de Mazda

Les détails complets de l’erreur de codage qui a conduit au crash des CMU Mazda n’ont pas été publiés, mais nous pouvons supposer qu’il s’agissait d’un type de vulnérabilité de déréférencement NULL.

Voici comment cela fonctionne :

Dans le langage de programmation C, il existe une fonction appelée strchr. Cette fonction reçoit deux paramètres : un pointeur vers une chaîne et un caractère, et essaie de trouver le caractère dans la chaîne, renvoyant un pointeur vers le résultat trouvé. Si la fonction échoue, un pointeur NULL est retourné.

Ensuite, le programme essaiera probablement de comprendre l’extension du fichier spécifique qu’il a reçu.

Afin de trouver l’extension, une fonction similaire à strcmp est probablement utilisée. Cette fonction reçoit deux pointeurs et compare leur contenu. Finalement, la comparaison se fait par l’intermédiaire d’un pointeur de déréférencement.

Le déréférencement est l’action de prendre la valeur sur laquelle pointe le pointeur.

Dans ce cas précis, le pointeur NULL a été envoyé à cette fonction, et alors que la fonction essayait de déréférencer la valeur de NULL, elle a obtenu une exception.

Ce type de vulnérabilité dans le code peut être facilement évité en vérifiant si le pointeur reçu est différent de NULL.

Prévention et atténuation

La prévention de ce type de problème au stade du développement nécessite que les ingénieurs logiciels suivent des normes de codage sécurisées qui définissent comment écrire du code afin d’éviter les vulnérabilités de sécurité dans le logiciel de l’appareil.

Cependant, bien que le codage sécurisé soit essentiel pour prévenir les vulnérabilités logicielles, ce n’est qu’un facteur parmi d’autres.

Le codage sera toujours sujet aux erreurs humaines, même lorsqu’il est écrit par les programmeurs les plus expérimentés. En plus de cela, la plupart des produits sur lesquels nous comptons aujourd’hui dépendent fortement d’une chaîne d’approvisionnement qui comprend des logiciels open source et tiers que vos programmeurs n’ont pas participé à l’écriture.

Système d'infodivertissement Mazda
Système d’infodivertissement Mazda

Les voitures intelligentes ont besoin d’une sécurité plus intelligente

Les constructeurs automobiles investissent massivement dans des contrôles de sécurité automatisés sophistiqués, de la direction et des freins à la détection des angles morts et tout le reste. Compte tenu du fait que ces systèmes sont devenus de plus en plus dépendants des logiciels, pourquoi la même attention n’est-elle pas portée sur sécurité des logiciels automobiles?

Le coût d’une vulnérabilité logicielle dans les appareils automobiles monte en flèche si elle est découverte après que la voiture a pris la route. Au-delà du prix de la suspension de la production ou de l’émission de rappels, les bugs logiciels pourraient entraîner plus que les inconvénients d’un système d’infodivertissement en panne. Lorsqu’ils se trouvent dans des dispositifs de sécurité critiques, ils pourraient en fait affecter des vies humaines.

Une attention insuffisante à sécurité logicielle dans les appareils automobiles peut transformer les voitures en bombes à retardement. Les voitures fortement automatisées d’aujourd’hui exigent que les équipementiers étendent leur attention au-delà de la sécurité physique des voitures pour inclure la sécurité logicielle, depuis les premières étapes de conception jusqu’au suivi des versions logicielles qui sont déjà sur la route.

La route vers la sécurité automobile : logiciel sécurisé

Garantir des appareils automobiles sûrs et sans vulnérabilité nécessite des étapes supplémentaires au-delà du codage sécurisé ou du suivi manuel des bugs. C’est pourquoi le micrologiciel et le code de tous les appareils doivent être surveillés en permanence pour détecter les vulnérabilités, afin de détecter et de corriger rapidement les erreurs. La sécurité automatisée des produits aide les équipes à faire face aux risques de sécurité avant, et non après, qu’elles fassent la une des journaux.

Une plate-forme avancée de sécurité des produits automobiles, comme Cybellumpermet aux équipes de sécurité des produits de suivre chaque ligne de code de leur logiciel (qu’elle ait été créée en interne ou obtenue auprès d’un tiers ou d’une source ouverte) et de s’assurer que les vulnérabilités logicielles sont détectées et traitées tôt, avant qu’elles ne puissent causer des dommages coûteux. blessures aux personnes et atteinte grave à la réputation des fabricants.

L’accident d’infodivertissement de Mazda prouve une fois de plus qu’une simple erreur de codage peut provoquer des dégâts imprévus. Heureusement, cette fois, les dégâts se sont limités à l’infodivertissement et aux conducteurs temporairement frustrés, ainsi qu’à quelques gros titres. Les constructeurs automobiles doivent commencer à donner la priorité à la sécurité des appareils pour s’assurer que tous les logiciels sur lesquels reposent leurs produits ne les éloignent pas de la route.