Par Nabil Bousselham, architecte de solutions informatiques chez Veracode
Le véhicule autonome soulève des problématiques complexes : une seule défaillance, un seul piratage ou un seul accident, et c’est la question suivante qui revient sans cesse : à qui attribuer la responsabilité des vulnérabilités logicielles dont les conséquences sont parfois dramatiques ?
« Nous sommes encore loin de voiture autonome généralisée », indiquait récemment le président de la Fédération internationale de l’automobile Jean Todt. Et les récentes acquisitions par les géants Uber et Apple de deux start-up dédiées, Drive et Might AI, qui accélèreront sans doute le développement de ces véhicules, n’y changeront rien. Pas plus que la refonte du circuit francilien de Montlhéry qui permettra à la France de se doter d’un centre puissant de mise au point pour voitures autonomes. En réalité, la méfiance à l’égard de cette technologie reste ambiante, et ce pour deux raisons : d’une part, les rares accidents mortels ayant impliqué un piéton ou un cycliste et un véhicule autonome restent ancrés dans la mémoire collective ; d’autre part, la problématique de la responsabilité face aux risques que présente l’intelligence artificielle au service de l’automobile semble indéterminée.
Et pour cause : de nos jours, une voiture moderne compte en moyenne 100 millions de lignes de code, dont la majeure partie est consacrée aux innovations d’exploitation qui accélèrent l’automatisation du véhicule, rendant ainsi les questions relatives à la responsabilité individuelle complexes. Par exemple, les développeurs doivent prendre en compte la réaction de l’IA si cette dernière doit choisir entre heurter une autre voiture ou, pire, un piéton ou un cycliste. La bonne solution n’existe pas : alors qu’un humain prendra généralement cette décision en fonction de l’instinct, du temps de réaction et autres facteurs culturels, l’IA sera soumise au parti pris de son développeur, dont la responsabilité engagée sera plus importante.
De surcroît, à l’instar de l’Internet des objets (IoT), les voitures connectées ne sont pas développées dans un souci de sécurité. Les véhicules sont aujourd’hui des terminaux complexes gérés par des dizaines d’unités de contrôle électroniques (ECU) avec des millions de lignes de code provenant de différents fournisseurs. De fait, le manque général de restrictions architecturales au sein de l’écosystème du véhicule accroît les vulnérabilités logicielles. Ces menaces se démultiplient mesure que les véhicules grand public et commerciaux se connectent entre eux (V2X) et/ou avec les infrastructures (V2I).
La complexification de l’écosystème des équipementiers automobiles, des infrastructures et des applications développées rend donc la tâche plus ardue pour les professionnels du risque et de la sécurité, puisqu’ils doivent prendre en compte la longue chaîne d’approvisionnement du véhicule moderne. C’est un contexte dont les pirates informatiques profitent, faisant émerger des craintes majeures en matière de confidentialité et de sécurité des applications pour les véhicules autonomes. En effet, une fois dans le système d’information, le cyber-attaquant peut par exemple consulter toute information personnelle stockée (contacts, historique des appels, etc.)
La multiplication des risques de vulnérabilité et de piratage à distance des voitures connectées, qui non seulement remettent en cause la sécurité physique des utilisateurs mais exposent également des données sensibles stockées dans le véhicule, impose donc aux développeurs de concevoir un code de qualité afin minimiser les dangers. En définitive, la responsabilité incombe à quiconque interagit avec de telles applications : acheteurs, utilisateurs, mais surtout codeurs.