Testimonianza di Weeve – Un passo affidabile verso la sicurezza delleconomia delle macchine

(Gaurav Tiwari) (6 maggio 2020)

I dati sono stati paragonati a materie prime come petrolio o oro. In questo mondo connesso, sempre più dati di qualità potenzieranno il processo decisionale intelligente delle macchine distribuite in una fabbrica o vari gadget distribuiti nelle nostre case. Ma cè una grande sfida da affrontare: come è possibile fornire dati affidabili e di qualità in modo sicuro in modo scalabile e automatizzato? I leader del settore per i dispositivi embedded di fascia bassa stanno lavorando duramente per portare le migliori pratiche di sicurezza hardware e software ampiamente disponibili sui dispositivi di fascia alta fino a questi dispositivi microcontrollore. Le risorse limitate nei microcontrollori e con così tanti sistemi operativi e stack di soluzioni portano a un panorama complesso e stimolante per la sicurezza integrata.

Possiamo classificare gli scenari di protezione dei dati come segue;

  • Dati a riposo
  • Dati in transito
  • Dati in uso

In Weeve, stiamo sviluppando soluzioni su misura per la sicurezza dei dati per dispositivi IoT basati su microcontrollori.

  • Proteggiamo data at rest utilizza una soluzione di archiviazione affidabile. Questi dati contengono risorse crittografiche come chiavi o alcune risorse digitali come monete virtuali ecc.
  • Con dati in transito, abbiamo sviluppato Weeve MQTTS, una pubblicazione-sottoscrizione leggera e sicura costruita sul protocollo MQTT su misura per i dispositivi di fascia bassa. Questa è unalternativa a MQTT su TLS, che consuma più risorse energetiche alledge.
  • Per dati in uso affrontiamo lintegrità del processo in esecuzione su un dispositivo IoT. Questo processo potrebbe essere la raccolta di dati utili utilizzando sensori o lesecuzione di una fase di elaborazione dei dati o anche lesecuzione di una logica di business nel caso di un dispositivo attuatore. Rilevare e prevenire le vulnerabilità del software del processo è la chiave qui. Stiamo sviluppando Weeve Testimony , unapplicazione di attestazione del controllo in tempo reale, che è largomento di questa serie di blog.

Prima di introdurre Weeve Testimony, ecco un po del background tecnico dei problemi che stiamo risolvendo e delle tecnologie utilizzate nella nostra soluzione.

Problemi di vulnerabilità del programma C

Quasi tutto il software e il firmware embedded di basso livello sono sviluppati nel linguaggio di programmazione C. La mancanza di controlli adeguati dei confini da parte di C per la memoria allocata prevista è una fonte di grandi minacce alla sicurezza. Oltre al buffer overflow, il programma C soffre di integer overflow, vulnerabilità del formato stringa, sovrascrittura dellindirizzo di ritorno, ecc. Cè anche una nuova classe di minacce alla sicurezza per un programma C come return-to-libc e più generale programmazione orientata al ritorno (ROP) che sono molto efficaci contro tecniche di mitigazione comuni come Prevenzione dellesecuzione dei dati e firma del codice. Una corretta revisione del codice con strumenti di sicurezza delle applicazioni statiche e dinamiche può ridurre la gravità di tali vulnerabilità. Esistono altre tecniche nella toolchain come la protezione dallo stack smashing, nellhardware stesso come il set di bit NX per segmenti di dati, durante il runtime come ASLR (address space layout randomizations). Ma il programma è ancora lontano da unequa garanzia priva di vulnerabilità. Nel contesto dei dispositivi di fascia bassa basati su microcontrollore, la tecnica di mitigazione più efficace di ASLR non viene implementata per la praticità di evitare di avere un caricatore di runtime.

Il nostro approccio per mitigare le vulnerabilità del programma C

Per affrontare i problemi di vulnerabilità del programma C, presumiamo che ci saranno sempre falle di sicurezza nel programma, e quindi ci azzardiamo a rilevarli in fase di esecuzione. Prevediamo lesistenza di un processo di guardia isolato più privilegiato che ispeziona e testimonia il comportamento di un programma C in esecuzione (il firmware MCU). Il processo di guardia deve essere isolato e più privilegiato del normale firmware perché se fa parte dello stesso processo o di un livello di privilegio simile al firmware normale, lhacker sarà in grado di hackerare anche il processo di guardia sfruttando la stessa vulnerabilità nel firmware normale . Prevediamo inoltre la necessità di unentità di attestazione remota che conosca in anticipo (utilizzando il nostro strumento di profilazione) tutte le istantanee di esecuzione valide della normale esecuzione del firmware e testimoni periodicamente queste istantanee.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *