Il 2038 bug refers è un problema noto relativo al modo in cui milioni di sistemi memorizzano e calcolano date e orari. Si prevede che questo bug causerà date e orari errati starting January 19, 2038.
Potresti pensare a te stesso: "Una data sbagliata? Un momento sbagliato? E allora!" Ma che dire di una data sbagliata in un database bancario che pianifica regolarmente trasferimenti e pagamenti? O il momento sbagliato su un server che causa la scadenza di una certificazione SSL per un sito Web, esponendo i visitatori a potenziali rischi per la sicurezza?
La realtà è che il 2038 bug isn non è il primo e non sarà l'ultima volta che i problemi di calcolo della data e dell'ora hanno interessato i sistemi che usiamo quotidianamente.
Infatti, poiché 2024 è un anno bisestile, possiamo tracciare molti parallelismi tra le questioni relative alla contabilità degli anni bisestili nei sistemi e il prossimo 2038 bug to ci aiuta a capire meglio cosa può causare calcoli di data e ora errati e il loro potenziale impatto.
Il 2038 bug is non è uno scenario ipotetico, ma una minaccia reale che potrebbe interessare una vasta gamma di sistemi, come sistemi/dispositivi embedded, dispositivi Internet-of-Things (IoT), sistemi operativi, database, server, reti, applicazioni e servizi web. Questo post mira a fornire una comprensione più profonda di ciò che il 2038 bug is, compresi alcuni esempi del mondo reale e le migliori pratiche che puoi iniziare a seguire oggi per aiutare a prevenire problemi significativi in un futuro non così lontano.
Innanzitutto, forniremo una breve panoramica di problemi simili che possono verificarsi durante il calcolo degli anni bisestili nei sistemi per aiutare a preparare il terreno per comprendere il più complesso 2038 bug and perché è importante per la sicurezza dei dispositivi.
Quali anni bisestili possono insegnarci sui calcoli di data e ora
Nel 2024, il mondo sperimenterà un evento raro: un anno bisestile. Ciò significa che febbraio avrà 29 days instead su 28, aggiungendo un giorno in più al calendario ... e un giorno non conteggiato in alcuni sistemi software e hardware.
Perché è così? Molti sistemi legacy contengono una logica degli anni bisestili semplificata che può portare a sistemi che saltano in modo errato da 28 febbraio a 1 marzo, il che, a sua volta, può causare malfunzionamenti nei calcoli di data e ora.
Una regola standard utilizzata per determinare se un anno è anche un anno bisestile è se è divisibile per quattro. Tuttavia, ci sono ulteriori eccezioni non comunemente prese in considerazione in questo calcolo che possono causare di essere errato: un anno deve essere divisibile per quattro eccetto se l' anno è anche divisibile per 100, e a meno che non sia anche divisibile per 400.
Prendiamo the year 2100 come esempio. Dal momento che 2100 è divisibile per quattro, alcuni sistemi possono erroneamente assumere che sarà un anno bisestile. Usando la logica di calcolo dell 'anno bisestile rimanente, possiamo determinare che mentre 2100 è divisibile per 100, non è divisibile per 400. 2100 non è un anno bisestile.
Saltare un giorno ogni quattro anni può sembrare un dettaglio secondario, ma problemi di calcolo di data e ora come questo possono avere gravi conseguenze per i sistemi e i loro utenti.
Un altro esempio, più inquietante di problemi di calcolo di data e ora è il prossimo 2038 bug, che potrebbe potenzialmente causare seri problemi per computer e dispositivi. Approfondiamo cosa e perché è questo il caso.
Cos'è il 2038 bug?
Il 2038 bug, noto anche come Unix Millennium Bug o Y2K38, è un problema che deriva dal modo in cui alcuni sistemi memorizzano e rappresentano i valori di data e ora utilizzando un numero chiamato timestamp.
Un timestamp è il numero di secondi trascorsi da 1 gennaio 1070, che è chiamato epoca Unix. Ad esempio, the timestamp for January 1, 2024, a 01:00:00 UTC , is 1704070800, che means 1704070800 secondi sono passati dall' epoca.
Tuttavia, alcuni sistemi utilizzano un tipo di dati chiamato a signed 32-bit integer to che memorizza la registrazione cronologica nel sistema operativo Unix e nei suoi derivati. A signed 32-bit integer can memorizza solo i numeri da -2147483648 a 2147483647. Ciò significa che il timestamp più alto che questi sistemi possono gestire è 2147483647, che corrisponde a to January 19, 2038, a 03:14:07 UTC. Dopo di che, il timestamp traboccherà e diventerà un numero negativo, che causerà la data e l'ora di essere sbagliato.
Ad esempio, the timestamp for January 20, 2038, in Unix tempo è 2147483648. Poiché questo non è un timestamp valido utilizzando il formato Unix, sarà overflow e diventerà -2147483648, che corrisponde a 13 dicembre 1901, a 20:45:52 UTC. Questo è the year 2038 bug.
Tipi di sistemi colpiti dal bug 2038
Molte persone prevedono che il bug causerà seri problemi per i sistemi che si basano su interi firmati a 32 bit per memorizzare la data e l' ora, con conseguente comportamento errato e imprevedibile che potrebbe influire sulla funzionalità e sulla sicurezza, come arresti anomali, errori e perdita di dati.
Esploriamo i tipi di sistemi noti per utilizzare i timestamp basati su Unix per memorizzare date e orari che potrebbero essere interessati dal bug 2038 :
- Database: diversi tipi di database, inclusi database relazionali e NoSQL
- Programmi C: programmi C e altri programmi scritti in linguaggi basati su C, come C++ e PHP
- Sistemi e dispositivi integrati: dispositivi medici, sistemi di controllo industriale per strutture come centrali elettriche, sistemi di trasporto, automobili con sistemi informatici di bordo che monitorano il controllo elettronico della stabilità e il controllo della trazione, router, interruttori, sensori, sensori e dispositivi IoT come elettrodomestici intelligenti
- Sistemi operativi: Windows, Linux e sistemi operativi basati su Linux come Android e iOS per telefoni cellulari
Esempi recenti del bug dell'anno 2038
Alcuni sistemi stanno già mostrando l' impatto del 2038 bug in in diversi modi.
Ad esempio, gli sviluppatori possono utilizzare date che sono lontane nel futuro per cose come la pianificazione, la scadenza o la crittografia, ad esempio utilizzando la data 9999-12-31 come segnaposto per ottenere un periodo indefinito o infinito. Tuttavia, questa data è all'incirca equivalente a 253402236000 e supera di gran lunga il valore massimo per il formato orario Unix.
Altri possono utilizzare date future oltre 2038 per scopi di test o di simulazione o per rappresentare eventi storici o geologici che si sono verificati prima dell'era comune. In tutti questi scenari, l'anno 2038 problem can causa risultati errati, errori e risultati inaffidabili.
Ecco alcuni esempi reali di sistemi che hanno già sperimentato problemi simili relativi all' uso di timestamp Unix:
- Crash dei server: su 13 maggio 2006, AOLserver, il server web open source di AOL (si apre in una nuova scheda), si è arrestato a causa dell'impostazione del timeout di richiesta del database a 1 miliardo di secondi, o circa 32 years in il futuro.
- Tempi di inattività imprevisti: un grande rivenditore specializzato ha subito un'interruzione dell'hardware VPN (si apre in una nuova scheda) a causa di errori dell'autorità di certificazione (CA) che hanno causato errori nel calcolo di due date: notBefore (la data prima della CA non è valida) e notAfter (la data di scadenza). A causa di ulteriori problemi di Network Time Protocol (NTP), la CA riteneva che fosse 2037, e dal momento che la CA firma i certificati per essere validi per dieci anni, si è imbattuto nel problema 2038 quando si calcolano le date di scadenza.
- In 2014, il video musicale di Gangnam Style ha rotto (si apre in una nuova scheda) sia i record che YouTube quando ha hit 2.147.483.647 visualizzazioni poiché questo conteggio delle visualizzazioni è anche il valore massimo che i sistemi Unix possono registrare.
Suggerimenti per prevenire il 2038 bug
Correzione dell'aggiornamento 2038 bug requires , rimozione o sostituzione del tipo di dati interi con segno a 32 bit nei sistemi e in qualsiasi codice con cui interagisce, che può essere costoso e richiedere tempo. Tuttavia, l’adozione delle seguenti misure preventive per aggiornare sistemi, applicazioni e dispositivi potrebbe fare una differenza significativa il 19 gennaio:
- L'utilizzo di un formato a 64 bit per memorizzare e rappresentare i valori di data e ora estenderà la gamma di valori possibili a miliardi di anni
- Utilizzo di diversi formati di data e ora per memorizzare e rappresentare i valori, come il formato ISO 8601
- Test e auditing per potenziali problemi di data e ora per identificare codice, librerie o software obsoleti che potrebbero essere vulnerabili al bug 2038
- Aggiornare e applicare regolarmente patch a codici, software e dispositivi per garantire che siano compatibili con gli standard e le tecnologie più recenti
Molte aziende sono già a conoscenza del fatto che the year 2038 problem and sta adottando misure proattive per aggiornare their systems to use 64-bit data tipi o rappresentazioni alternative per timestamp e valori di data. Ad esempio, Apple ha iniziato a costruire il supporto a 64 bit in macOS a partire da 2003 (si apre in una nuova scheda), che può aiutare gli utenti Mac a non incontrare issues with dates after January 2038.
the year 2038 problem be può essere risolto?
Sia il 2038 bug and che il 2024 anno bisestile ricordano che i calcoli di data e ora non sono banali, ma complessi e critici aspetti dello sviluppo di codice e software. La buona notizia è che the year 2038 problem is non è l'inevitabile apocalisse che alcuni articoli dipingono se vengono prese misure proattive.
Essendo consapevoli dei potenziali problemi e dando priorità alle soluzioni, è possibile ridurre al minimo l' impatto del 2038 bug and , contribuendo a garantire che i sistemi funzionino senza intoppi e in modo sicuro per un lungo periodo di tempo.
Come puoi iniziare ad affrontare il tuo ambiente 2038 bug in ? Un modo è ottenere una visibilità completa delle risorse e dello stato del software. Monitorando e scansionando regolarmente i dispositivi endpoint (si apre in una nuova scheda), è possibile identificare più facilmente i dispositivi che eseguono codici o software obsoleti, sostituire qualsiasi dispositivo verso la fine del loro ciclo di vita o aggiornare quelli using 32-bit systems that che potrebbero essere più inclini al 2038 bug.
Poiché la modifica del tipo di dati e del codice che trattano il bug 2038 può introdurre errori, problemi di compatibilità e riduzione delle prestazioni, avere visibilità in tempo reale sui dispositivi può aiutarti a prevenire meglio potenziali vulnerabilità e rischi per la sicurezza degli endpoint (si apre in una nuova scheda).
Scopri come la piattaforma Tanium è progettata per semplificare la gestione degli endpoint (si apre in una nuova scheda) e offre funzionalità per semplificare i tuoi sforzi, consentendo agli utenti di automatizzare l ’applicazione della configurazione, rispondere rapidamente alle minacce e consentire ai dipendenti di auto-correggere i problemi comuni in un’unica soluzione.
Inoltre, il nostro approccio all’ Autonomous Endpoint Management (AEM) (si apre in una nuova scheda) integrerà ulteriori funzionalità assistite dall’IA nella piattaforma Tanium XEM per fornire raccomandazioni sull’automazione e azioni intelligenti associate e altamente sintonizzabili, progettate pensando alla sicurezza e alla scalabilità.

