Skip to main content

Percepio, partner del programma ST Partner, presenta DevAlert Sandbox, un nuovo strumento di diagnosi e debug in remoto. “Leggero“, completo, efficace

Il primo “bug” ufficiale fu segnalato nel 1947, provocato da una falena entrata in un relè hardware del computer elettromeccanico Mark II di Harvard. Da allora errori e glitch perseguitano ogni codice.

Uno studio del 2002 condotto negli Stati Uniti dal National Institute of Standards and Technology (NIST) stabilì che, all’epoca, i bug costavano all’economia statunitense circa 60 miliardi di dollari l’anno.

Percepio DevAlert e STM32: eliminare bug e attacchi malaware
Inbox

Adattato agli attuali livelli d’inflazione, la cifra si aggirerebbe oggi attorno ai 95 miliardi di dollari. In realtà, visto quanto l’economia moderna fa affidamento sui software dal 2002, la cifra è probabilmente molto più alta.

Prodotti mobili, servizi cloud e veicoli intelligenti, case o città testimoniano la “softwarizzazione” globale della vita quotidiana ed economica sul pianeta. Il termine, coniato nel 2016, designa una tendenza a dare la priorità alle soluzioni software piuttosto che creare nuovo hardware.

Un secondo documento pubblicato nel 2016 da The Journal of Systems and Software ha descritto come molti bug, in particolare quelli con più di due condizioni, riescono ad eludere i test di verifica interni.

Quando gli sviluppatori non dispongono dei protocolli per identificare questi bug, il programma esce sul mercato con un difetto e più si fa complesso, più diventa difficile testarne ogni caso d’uso e ramo di codice. Con l’avvento dell’apprendimento automatico ai margini, i comportamenti imprevisti si fanno ancora più comuni e la necessità di correggere gli errori più urgente.

Uno strumento come Percepio DevAlert è la soluzione al problema.

Come funzionano alert, avvisi ed elementi traccianti?

Gli sviluppatori usano DevAlert chiamando le funzioni API che generano un avviso quando viene rilevato un problema.

Gli avvisi includono un codice di errore, una stringa di messaggio, variabili o valori di registro e la traccia più recente. Il sistema invia quindi questo contenuto a una sonda, al cloud, o lo archivia localmente fino a quando gli sviluppatori non li prendono con uno smartphone o un laptop.

I programmatori possono quindi utilizzare Tracealyzer per studiare le tracce e determinare cosa è andato storto attraverso i suoi strumenti di visualizzazione. Poiché gli sviluppatori possono integrare gli avvisi nel loro codice che gestiscono errori o eccezioni, possono portare più rapidamente DevAlert nel loro flusso di lavoro. Il framework è reso relativamente semplice dal fatto che non richiede una riscrittura del codice.

In che modo DevAlert riduce al minimo l’utilizzo della RAM e il caricamento dei dati con un buffer ad anello?

Al suo interno, DevAlert utilizza un buffer ad anello che registra costantemente i dettagli nella memoria allocata dal programma. Di conseguenza, l’utilizzo del buffer di traccia richiede solo pochi kilobyte di RAM e i caricamenti su cloud avvengono solo dopo un’anomalia. Quindi, quando si verifica un errore, il sistema ha già tonnellate di informazioni su ciò che stava accadendo.

Inoltre, DevAlert non si carica costantemente sul cloud, risparmiando quindi una larghezza di banda significativa. Dopo dieci anni di lavoro, Percepio ha ottimizzato in modo significativo la sua soluzione su STM32 per utilizzare solo tra quattro byte e 16 byte di RAM per evento, con una maggioranza che richiede solo circa otto byte. DevAlert può quindi registrare migliaia di eventi al secondo senza influire negativamente sulle prestazioni.

Gli sviluppatori possono avere un’analisi completa del proprio programma e capire come ottimizzarlo. Possono anche monitorare più aspetti delle loro applicazioni per rilevare una gamma più ampia di comportamenti anomali.

In che modo DevAlert può aiutare con il monitoraggio della sicurezza informatica?

Un esempio di ciò che gli sviluppatori possono monitorare con DevAlert sono gli attacchi alla sicurezza. Il framework stesso non fornisce il rilevamento automatico degli attacchi informatici.

Tuttavia, è sufficientemente flessibile da consentire il rilevamento di anomalie relative alla sicurezza. Ad esempio, gli sviluppatori possono monitorare lo stack di rete ei tentativi di accesso. Numerosi tentativi di accesso errati sarebbero spesso un segno rivelatore di un attacco di forza bruta e le richieste atipiche potrebbero indicare attacchi denial-of-service.

Allo stesso modo, DevAlert può rilevare rapidamente stack corrotti, che potrebbero indicare lo sfruttamento di una vulnerabilità di esecuzione di codice in modalità remota, e garantire agli sviluppatori di individuare e correggere rapidamente il problema. Il framework utilizza anche le esenzioni SecureFault dopo una violazione di TrustZone su un STM32U5 o STM32L5.

Che cos’è DevAlert Sandbox?

Uno dei modi migliori per iniziare con DevAlert è utilizzare DevAlert Sandbox, un ambiente preconfezionato nel cloud.

Gli utenti possono imparare dalle applicazioni demo, un controller per ascensori in esecuzione su un STM32F4 simulato. È possibile modificare il codice direttamente all’interno dell’ambiente. Gli sviluppatori possono così vedere come sarebbero gli avvisi, come verrebbe eseguito il sistema e come le modifiche avrebbero un impatto sul programma.

Perché iniziare con DevAlert Sandbox?

Poiché tutte le operazioni di compilazione vengono eseguite sul server cloud, il sistema funziona su qualsiasi browser e sistema operativo moderno. È anche disponibile per il download una versione che consente agli sviluppatori di eseguire la demo in locale e memorizzare le modifiche più facilmente. Gli utenti possono iscriversi gratuitamente a DevAlert Sandbox.

Una volta che gli ingegneri sono pronti, possono copiare le modifiche al codice nel proprio IDE ed eseguirlo sul microcontrollore STM32. L’installazione predefinita include anomalie integrate che gli sviluppatori possono eseguire non appena accedono per la prima volta e una serie di video introduttivi.

Come aiuta il cloud?

Percepio utilizza il cloud per ordinare i problemi utilizzando un “Motore di classificazione“. Prima che le informazioni raggiungano gli sviluppatori, il server le elabora per evidenziare eventuali avvisi nuovi o potenzialmente essenziali sul dashboard DevAlert.

Di conseguenza, i team evitano l'”affaticamento degli avvisi” quando ricevono messaggi da una grande flotta e possono individuare meglio i messaggi importanti. Vedere quante volte si verifica un’anomalia può anche aiutare con la definizione delle priorità.

Inoltre, l’utilizzo di un cloud facilita la condivisione delle informazioni tra i team, anche quando DevAlert viene eseguito solo localmente in un laboratorio di test. DevAlert può anche utilizzare il cloud per tenere traccia delle informazioni dei sensori per verificare la presenza di condizioni impreviste.