Percepio pousse à l’observabilité et au débogage à distance de logiciels embarqués dans des appareils déployés à grande échelle

Percepio DevAlert 2.0

Le suédois Percepio, éditeur de solutions d'observabilité pour les logiciels embarqués (dont les technologies sont distribuées en France par NeoMore), annonce la version 2.0 de sa technologie DevAlert, lancée par la société dans sa version initiale en 2020 (voir notre article).

Pour rappel, DevAlert est une solution d'observabilité installée dans le cloud qui propose une boucle de retour de diagnostic entre les appareils distants et les équipes de maintenance desdits appareils. Avec DevAlert, les équipes produits peuvent détecter instantanément les pannes, les erreurs et autres anomalies logicielles lors des tests système, des essais sur le terrain ou lors des opérations chez l'utilisateur et obtenir ainsi des informations de diagnostic détaillées.

La solution a été conçue pour la surveillance de petits processeurs installés en périphérie de réseau (edge) et de microcontrôleurs embarqués dans des appareils IoT exécutant des logiciels sur un système d’exploitation temps réel. Les logiciels embarqués sans connectivité spécifique au cloud peuvent être pris en charge en relayant les données à l'aide d'un ordinateur hôte connecté localement ou en branchant un ordinateur portable pendant le fonctionnement sur le terrain, à travers un port série ou une sonde de débogage.

Avec DevAlert 2.0, les capacités de diagnostic ont été étendues, en particulier avec le support des “Core Dumps” qui ciblent les appareils architecturés autour d’un cœur Arm Cortex-M. Ce qui permet une analyse à distance des pannes, des erreurs ou des anomalies de cybersécurité avec tous les détails, y compris la pile d'appels de fonctions, les paramètres, les variables, et l'affichage du code source. Associé aux fonctionnalités DevAlert antérieures pour la collecte de traces avec l’outil Tracealyzer (pour les anomalies) et au SDK Tracealyzer (récemment ajouté pour les intégrations de traces personnalisées), DevAlert procure, selon Percepio, une observabilité complète pour tout logiciel embarqué fonctionnant sur un système d'exploitation temps réel (RTOS). La solution DevAlert peut également être utilisée pour détecter toute corruption de la pile à l'aide des fonctionnalités communes avec le compilateur utilisé.

En combinaison avec les “Core Dumps”, il est possible non seulement de découvrir les problèmes de débordement dangereux de tampon mémoire, mais également de capturer le contenu de la pile corrompue pour inspecter les données, révélant de ce fait en détail les attaques par injection de code, ainsi que les dépassements accidentels de tampon qui constituent des vulnérabilités critiques.

« L'observabilité logicielle est de plus en plus cruciale pour la confiance numérique en raison de la montée des cybermenaces et de la complexité croissante des logiciels qui entraînent des bogues et des vulnérabilités insaisissables, explique Johan Kraft, le CTO et fondateur de Percepio. Cela arrive non seulement dans le cloud, mais encore plus dans les appareils de périphérie qui sont exposés à des environnements imprévisibles et à des attaques physiques car ils disposent de nombreuses surfaces d'attaque, avec notamment des bus CAN, des UART, des ports de débogage JTAG ou autres interfaces d'E/S qui n'ont pas été conçues dans un souci de cybersécurité. La première version de DevAlert offre un accès à l'observabilité fondée sur l’analyse des traces pour les appareils déployés à grande échelle. Avec DevAlert 2.0, nous passons à l'étape suivante en permettant aux utilisateurs de collecter tout type de données d'appareil, y compris les “core dumps" pour le débogage du code source, ainsi que les données définies par les utilisateurs tels que les journaux d'appareil, les journaux réseau, les données de capteurs, les images et les données audio. Ce que permet d’atteindre une observabilité de bout en bout d’un appareil IoT. »

Selon Percepio, cette approche a nécessité la résolution d'exigences contradictoires, c'est-à-dire fournir des données plus détaillées à partir des appareils, sans sacrifier le contrôle des données ou la vie privée du client. Par exemple, l'affichage des "core dumps" dans un outil de débogage nécessite l'accès à la bonne image du micrologiciel, une IP sensible qui doit rester dans le domaine privé du client à tout moment.

Avec DevAlert 2.0, la société a généralisé le principe d’un stokage propre à l’utilisateur pour garantir la confidentialité des données. Ainsi, lorsque l’on clique sur un lien de téléchargement dans le tableau de bord de DevAlert, les données sont chargées automatiquement dans le bon outil de bureau, sur un ordinateur local, sans jamais quitter le domaine privé de l'utilisateur. Par exemple, lorsqu'une anomalie est détectée dans un logiciel embarqué, il est possible d’afficher les traces dans l’outil Tracealyzer, les “core dumps” dans un débogueur préféré, les données du système de vision dans une visionneuse d'images, les données de requête réseau dans un outil d'analyse de protocole, ou la connexion la plus récente de l'appareil dans un éditeur de texte.