I cambiamenti tecnologici in materia di sicurezza e tecnologia nei prossimi anni saranno numerosi: Internet of Things, criptovalute, crittografia SSL, sicurezza nazionale e altro.

Intanto, nella corsa dei prossimi due decenni, in cui il rapporto con la tecnologia comporterà notevoli cambiamenti organizzativi e nei sistemi dei controlli, si palesa un nuovo tema: il Bug dell’anno 2038, che a detta degli studiosi guiderà il settore al pari del già passato Millennium Bug.

Paura e clamore sull’evento stanno aumentando, perché quando si raggiungerà il 19 gennaio del 2038 alcuni sistemi potrebbero andare in crash.

Vediamo in cosa consiste.

 

Cosa potrebbe succedere nel 2038

La maggior parte dei C-Program utilizza una libreria di routine che stabilisce un formato standard a 4 byte per la memorizzazione dei valori temporali e fornisce anche una serie di funzioni per la conversione, la visualizzazione e il calcolo dei valori temporali.

Il formato standard a 4 byte ha come ipotesi che l’inizio del tempo sia il 1° gennaio 1970 alle 12:00:00. Questo valore è posto uguale a 0. Qualsiasi valore di data ed ora è espresso come il numero di secondi che seguono questo zero. Quindi, ad esempio, 919642718 è 919,642,718 secondi dopo le 12:00:00 del 1° gennaio 1970, che è domenica 21 febbraio 1999, alle 16:18:38 ora degli Stati Uniti.

Questi sistemi memorizzano l’ora come un numero intero a 32 bit con segno, e un numero intero con 4 byte con segno arriva ad un valore massimo di 2.147.483.647.

Qui è il problema del 2038: infatti, in questa data, qualsiasi C-Program che utilizza la libreria temporale standard inizierà ad avere problemi con i calcoli delle date.



Come è stato scoperto il problema

Il punto è in realtà conosciuto da diverso tempo, quando AOL Server (un server open source AOL) si è bloccato a maggio del 2006. Il software era stato progettato in modo che le query avviate nel database non scadessero mai, ma invece di impostare il timeout su 0, è stato impostato su 1 miliardo di secondi nel futuro. Ma, 1 miliardo di secondi dopo il 12 maggio 2006 alle 21:27 e 28 secondi è successivo al 2038, e il sistema ha calcolato un timeout negativo, che lo ha fatto schiantare.

Questo ha colpito il Rover Spirit, un robot lanciato nello spazio su Marte, che si è schiantato e non ha risposto per diversi giorni a causa del problema.

 

Quali potranno essere gli impatti?

L’esperienza pregressa del Capodanno del 2000 dovrebbe guidare verso un passaggio senza troppi intoppi.

Ai tempi, un’enorme quantità di lavoro era stata dedicata alla ricerca dei bug e alla loro correzione prima della mezzanotte, quindi l’impatto effettivo è stato ridotto al minimo. Poi, si sa che non tutte le problematiche relative al bug si sono palesate esattamente il 1° di gennaio, ma alcuni eventi si sono verificati molto più tardi, fornendo tempo ai tecnici di intervenire.

Inoltre, secondo alcuni esperti, il nuovo “bug” dovrebbe risultare leggermente più semplice da risolvere rispetto al Millennium Bug sui mainframe. Ad esempio, è possibile ricompilare programmi ben scritti con una nuova versione della libreria che utilizza valori a 8 byte per il formato di archiviazione.

Secondo altri, invece, la presenza di dispositivi a 32 bit parte di sistemi integrati, raggiunge le centinaia di migliaia di pezzi così come la presenza di sistemi obsoleti o “nascosti” nelle infrastrutture delle società. Pertanto, potrebbe essere lungo e complesso identificarli e sostituirli tutti per tempo.

Forse, iniziare una mappatura potrebbe essere utile.