Skip to main content

15 consigli per implementare una piattaforma telematica resiliente

I veicoli connessi offrono nuovi vantaggi, ma pongono anche diverse sfide di sicurezza informatica. Scopri le nostre 15 raccomandazioni sulla sicurezza per le piattaforme telematiche.

Alex Sukhov

Da Alex Sukhov

9 giugno 2023

•

6 minuti di lettura

Immagine concettuale sul machine learning

I veicoli connessi offrono innumerevoli vantaggi, quali sicurezza, efficienza e praticità. Tuttavia, suscitano anche preoccupazioni in materia di sicurezza informatica, animando un dibattito in tutto il settore. A esprimere preoccupazione sono state anche l'FBI, la NHTSA e la NAFA. In particolare, l'FBI ha suggerito che "i proprietari dei veicoli dovrebbero controllare le policy di sicurezza e privacy dei produttori di dispositivi e dei fornitori di servizi di terze parti, e non dovrebbero collegare alcun dispositivo sconosciuto o non attendibile alla porta OBD-II". In un’ottica simile, NAFA ricorda che "i mobility manager devono disporre di policy per garantire che solo dispositivi sicuri siano collegati alla porta". 

 

Ovviamente, per i proprietari di veicoli e i mobility manager può essere difficile sapere esattamente cosa cercare quando si tenta di valutare le policy e le misure di sicurezza relative alla propria piattaforma telematica, ecco perché vogliamo fornire una guida in tal senso e stimolare ulteriori discussioni su come l'industria telematica nel suo complesso può e deve continuare a promuovere la sicurezza.
 

In passato, l'industria telematica si è ampiamente basata sulle reti wireless 3G e sulle nuove infrastrutture cellulari che forniscono una protezione efficace. Tuttavia, lo standard GSM ci ha dimostrato che l'infrastruttura cellulare, come qualsiasi altro sistema connesso, non è immune alle violazioni e necessita di ulteriori salvaguardie. Dopo aver dedicato molto tempo e impegno allo studio del problema e alla discussione con gli esperti, ecco i nostri 15 consigli per una piattaforma telematica resiliente.

1. Implementa un trasferimento sicuro dei dati

La crittografia dei dati socket assicura la privacy dei dati indipendentemente dallo stato della rete mobile o di qualsiasi altro supporto di connessione intermedio. L'implementazione dell'autenticazione consentirà di verificare che le fonti e le destinazioni dei dati ricevuti e trasmessi siano affidabili. Leggi le raccomandazioni NIST per gli algoritmi di crittografia e autenticazione accettabili

 

Se possibile, utilizza librerie standard. Scrivere i propri algoritmi richiede tempo ed è molto difficile implementarli correttamente. Se nel sistema sono presenti elementi che non soddisfano i requisiti o non sono compatibili con la tua infrastruttura, assicurati che tutte le terze parti eseguano il test di penetrazione. È molto meglio identificare e risolvere eventuali problemi prima che diventino causa di exploit.

2. Aggiungi la firma digitale agli aggiornamenti

La firma digitale sugli aggiornamenti delle applicazioni è fondamentale per la sicurezza dei dispositivi telematici. Le violazioni a danno delle comunicazioni dei dati, per quanto pericolose, costringono gli autori di attacchi a operare all'interno delle funzionalità del dispositivo. Spesso, gli attacchi più pericolosi ai sistemi integrati richiedono l'inserimento di un'immagine del firmware o di un'applicazione dannosa. In questo modo un autore di attacchi può attivare elementi di sistema non previsti o limitati dalla progettazione (ad esempio per motivi di sicurezza).

 

La firma sugli aggiornamenti delle applicazioni consente ai dispositivi di verificare l'attendibilità della fonte. Per ulteriori informazioni sugli algoritmi da utilizzare per la firma, consulta anche qui le raccomandazioni NIST. È importante implementare un processo di firma sicuro e prevedere una posizione di archiviazione delle chiavi attendibile per ridurre al minimo le minacce interne.

3. Abilita la protezione del codice hardware

Qualora fosse supportata dal microcontrollore, la capacità di leggere il codice firmware del dispositivo deve essere disabilitata. L'attivazione della protezione del codice sul microcontrollore limita notevolmente la possibilità di decodificare i dispositivi, poiché non è possibile accedere facilmente al codice. Si tratta di un ottimo strumento per bloccare i malintenzionati con competenze o risorse limitate, ma fornisce pochi benefici contro coloro che dispongono di competenze o risorse maggiori. Esistono aziende che forniscono l'estrazione del codice dai processori a pagamento. Si tratta di un ottimo esempio del perché si dovrebbe sempre presumere che l'autore di attacchi abbia una conoscenza completa dell'implementazione del sistema.

4. Supponi che il codice sia pubblico

Gli elementi di protezione devono essere progettati presupponendo che l'autore degli attacchi abbia una conoscenza completa del sistema e possa accedere al codice. Anche se le macchine e i repository interni sono attualmente considerati sicuri, ciò potrebbe non essere sempre vero. Ad esempio, un ex dipendente potrebbe aver avuto la possibilità di copiare il codice del sistema sul proprio computer di casa.

5. Utilizza numeri casuali crittograficamente forti

La generazione di numeri casuali viene adottata da molti algoritmi impiegati nei sistemi di sicurezza. È importante che i numeri casuali forniti dalla fonte siano crittograficamente forti. In caso contrario, se i numeri non sono "abbastanza casuali", i punti di forza degli algoritmi che li utilizzano possono essere drasticamente indeboliti.

6. Personalizza i dati di sicurezza critici

I dati di sicurezza più importanti, come le chiavi di crittografia e i token di autenticazione, devono essere univoci per ogni dispositivo. Se un singolo dispositivo viene compromesso, non dovrebbe mai consentire la compromissione di altri dispositivi o parti dell'ecosistema. In particolare, i sistemi integrati sono noti per l'utilizzo di un'unica chiave per molti dispositivi. 

7. Utilizza chiavi diverse per ruoli diversi

La compromissione di un elemento della logica di sicurezza non dovrebbe mai influire su un altro elemento. Per ruoli diversi devono essere utilizzate chiavi diverse, ad esempio non si deve utilizzare la stessa chiave per la comunicazione socket e per la firma dell'applicazione.

8. Monitora i metadati

Essere in grado di rilevare e reagire tempestivamente ad attività sospette è fondamentale per ridurre al minimo i danni causati dagli attacchi. La ricerca attiva di errori o tendenze nelle informazioni di debug può ridurre o prevenire i danni causati da un attacco. Sono disponibili molti servizi di elaborazione cloud che consentono di monitorare in tempo reale anche grandi quantità di dati sulle prestazioni. La creazione di servizi che informano le persone appropriate in presenza di errori o anomalie è essenziale per identificare tempestivamente gli attacchi.

9. Disattiva le funzionalità di debug

Le modalità e i dati di debug sono una parte essenziale dello sviluppo, della risoluzione dei problemi e della verifica delle funzionalità. Sono anche ottimi strumenti per rilevare anomalie all'interno di un sistema. Tuttavia, la logica relativa al debug può spesso essere trascurata dal punto di vista della sicurezza. La logica di debug che contiene informazioni critiche per la sicurezza non deve essere accessibile nelle build del software di produzione.

10. Esegui controlli di terze parti

Tutti i componenti di sicurezza del sistema devono essere controllati in modo appropriato. La divulgazione del codice a un'azienda di terze parti per la revisione deve essere accolta favorevolmente, in quanto il sistema deve essere progettato presupponendo che un autore di attacchi abbia una conoscenza completa della base di codice. È molto meglio che le vulnerabilità vengano individuate e corrette privatamente e, per le vulnerabilità con rischi elevati, dovrebbero essere applicate contromisure in tempi ragionevoli.

11. Limita l'accesso al server

La gerarchia interna degli account deve essere implementata in modo da consentire l'accesso ai server e alle funzionalità di backend solo agli utenti che ne hanno bisogno. L'autenticazione a più fattori è uno strumento estremamente potente per il controllo degli accessi. Esistono vari tipi di applicazioni hardware o per telefoni cellulari che possono essere utilizzate a tale scopo. I record di login ai server sono essenziali nell'analisi forense delle attività di account sospette.

12. Applica procedure di progettazione sicure

La sicurezza deve essere prevista nelle fasi di progettazione e non implementata successivamente. Applica il principio del privilegio minimo, ossia assicurati che ogni elemento del sistema consenta l'accesso solo a coloro che ne hanno bisogno. Verifica tutti gli input di sistema in modo da limitarne la penetrazione agli autori di attacchi.

13. Implementa il supporto per gli aggiornamenti software e firmware

Non è realistico presumere che un sistema sia perfettamente sicuro in qualsiasi momento. Prima o poi si verificherà un problema di sicurezza e ci sarà bisogno di un processo prestabilito per risolverlo. La possibilità di aggiornare software e firmware è una funzione di sicurezza essenziale in un sistema connesso. La capacità di eseguire rapidamente gli aggiornamenti è preziosa per ridurre le minacce zero-day. È fondamentale che il produttore sia responsabile della manutenzione del firmware del dispositivo. Non ci si dovrebbe affidare all'utente finale per garantire che il dispositivo sia aggiornato e sicuro: gli aggiornamenti devono essere inviati automaticamente a tutti i dispositivi sul campo. I produttori dei dispositivi telematici (o di altri dispositivi IoT) devono essere responsabili delle proprie patch di sicurezza.

14. Verifica e testa

La base del codice di sistema è in continua evoluzione, per questo c'è bisogno di un processo di sviluppo formale. Una revisione attenta di ogni modifica individuerà in anticipo innumerevoli problemi prima che possano generare problemi. Il test delle unità è fondamentale anche per garantire che la logica di sicurezza rimanga operativa, pertanto deve essere impostato sia a livello di codice che di hardware per una copertura completa.

15. Sviluppa una cultura della sicurezza

Anche i sistemi progettati in modo più sicuro possono essere compromessi dai loro operatori. Tutti i membri dell’azienda con accesso alla rete (non solo i membri del team per la sicurezza informatica) deve essere regolarmente formato e testato sulle procedure per un utilizzo sicuro di Internet. Ciò include la resilienza agli attacchi di phishing, l'uso di password complesse, la gestione degli URL e l'attenzione alle certificazioni di sicurezza. La formazione è un buon inizio, ma far interessare il personale e renderlo consapevole riguardo il tema della sicurezza è molto più efficace.

 

Anche se crediamo che queste raccomandazioni possano fare molto per rendere una piattaforma telematica resiliente alle minacce informatiche, la formazione e il continuo aggiornamento saranno essenziali per garantire la sicurezza dei sistemi e degli utenti. Si tratta di uno sforzo che deve compiere l'intero settore. 

Iscriviti al blog di Geotab


Alex Sukhov
Alex Sukhov

Alex Sukhov ha molti anni di esperienza come electrical designer e software designer. In Geotab, lavora come responsabile dello sviluppo di sistemi embedded.

View last rendered: 12/27/2024 18:56:20