Skip to main content
Sicurezza informatica

Che cos'è l'hashing?

L'hashing è una tecnica fondamentale per la sicurezza dei dati. Scoprite come funziona e quale ruolo svolge nella protezione delle informazioni sensibili.

Di SentinelOne
Che cos'è l'hashing?

L'hashing è un concetto fondamentale nella crittografia e nella sicurezza delle informazioni. La nostra guida ne esplora i principi, spiegando come funzionano le funzioni hash crittografiche e perché sono importanti per proteggere i dati sensibili.

Scoprite i diversi tipi di funzioni hash, le loro proprietà e le applicazioni più comuni, come la memorizzazione delle password, la verifica dell'integrità dei dati e le firme digitali. Imparate a scegliere la funzione hash adatta al vostro caso d'uso e ad adottare pratiche di hashing sicure nella vostra organizzazione.

Hashing - Featured Image | SentinelOne

Che cos'è un algoritmo di hashing?

Gli hash sono il risultato di un algoritmo di hashing come MD5 (Message Digest 5) o SHA (Secure Hash Algorithm). Questi algoritmi mirano essenzialmente a produrre una stringa univoca di lunghezza fissa – il valore hash, o “digest del messaggio” – per qualsiasi dato o “messaggio”. Poiché ogni file su un computer è, in ultima analisi, composto da dati rappresentabili in forma binaria, un algoritmo di hashing può eseguire un calcolo complesso su quei dati e restituire una stringa di lunghezza fissa. Il risultato è il valore hash o il digest del messaggio del file.

Per calcolare l'hash di un file in Windows 10, usate il cmdlet Get-FileHash integrato in PowerShell e indicategli il percorso del file di cui volete ottenere il valore hash. Per impostazione predefinita, usa l'algoritmo SHA-2 256:

image of use powershell to create hash

Potete scegliere un altro algoritmo specificandolo dopo il percorso del file con l'opzione -Algorithm. Passando il risultato a Format-List otterrete anche un output più facile da leggere:

image of powershell formatted hash values

Per chi usa Mac e Linux, gli strumenti da riga di comando shasum e md5 svolgono la stessa funzione. Come vedremo tra poco, il valore hash di un determinato file sarà identico con lo stesso algoritmo di hashing, indipendentemente dal fatto che usiate Windows, Mac o Linux.

Come gli hash stabiliscono l'identità

Gli hash non sono reversibili: conoscere il valore hash di un file non basta per ricostruirne il contenuto. Potete però stabilire se due file sono identici senza sapere nulla del loro contenuto.

Per questo, l'unicità del risultato è fondamentale per il concetto stesso di hash. Se due file diversi potessero produrre lo stesso digest, si verificherebbe una «collisione» e non potremmo usare l'hash come identificatore affidabile del file.

Le collisioni sono rare, ma possibili. Per questo algoritmi più sicuri come SHA-2 hanno sostituito SHA-1 e MD5. Per esempio, il contenuto dei due file seguenti, ship.jpg e plane.jpg è chiaramente diverso, come mostra una semplice osservazione, quindi dovrebbe produrre digest differenti.

image of md5 collision example

Tuttavia, calcolando il valore con MD5 otteniamo una collisione, che indica erroneamente che i file sono identici. Questo output proviene dalla riga di comando di macOS tramite Terminal.app, ma potete vedere che il valore hash di ship.jpg è lo stesso ottenuto prima con PowerShell:

image of md5 example

Calcoliamo il valore hash con SHA-2 256. Ora otteniamo un risultato più accurato, che indica che i file sono effettivamente diversi, come previsto:

image of shasum example

A cosa serve l'hashing?

L'identificatore univoco di un file può essere usato in diversi modi. Alcuni prodotti AV tradizionali si affidano esclusivamente ai valori hash per stabilire se un file è dannoso, senza esaminarne il contenuto o il comportamento. Per farlo, mantengono un database interno di valori hash associati a malware noti. Durante la scansione di un sistema, il motore AV calcola il valore hash di ogni file eseguibile sul dispositivo dell'utente e verifica se è presente nel database.

Questa poteva sembrare una buona idea agli albori della cybersecurity, ma col senno di poi è facile vedere i limiti dell'affidarsi ai valori hash.

In primo luogo, con l’esplosione del numero di campioni di malware, mantenere aggiornato un database di firme è diventato un compito semplicemente non scalabile. Si stima che ogni giorno compaiano oltre 500,000 campioni di malware unici. Questo è molto probabilmente dovuto, in gran parte, al fatto che gli autori di malware hanno capito quanto sia facile impedire ai motori AV basati sugli hash di riconoscere un campione. A un attaccante basta aggiungere un byte alla fine di un file per ottenere un hash diverso.

Image of Hashing Used For

Il processo è così semplice che gli autori di malware possono automatizzarlo affinché lo stesso URL distribuisca alle vittime lo stesso malware con un hash diverso ogni pochi secondi.

In secondo luogo, il limite dei prodotti AV tradizionali è sempre stato la necessità di conoscere la minaccia in anticipo per rilevarla. Per sua natura, quindi, un prodotto anti-malware basato su un database di valori hash noti è sempre un passo indietro rispetto al prossimo attacco.

La risposta, naturalmente, è una piattaforma di sicurezza che sfrutta l'IA comportamentale e adotta un approccio di difesa in profondità.

Questo, però, non significa che i valori hash siano inutili. Al contrario, identificare un file in modo univoco offre ancora vantaggi importanti. Trovate valori hash nelle firme digitali e nei certificati usati in molti contesti, come la firma del codice e SSL, per verificare l'autenticità di un file, un sito web o un download.

image of ssl certificate hash

I valori hash sono preziosi anche per i ricercatori di sicurezza, i team SOC, i ricercatori di malware e gli esperti di reverse engineering. Uno degli usi più comuni degli hash che trovate in molti report tecnici pubblicati su SentinelOne e altrove è condividere indicatori di compromissione. Grazie ai valori hash, i ricercatori possono fare riferimento a campioni di malware e condividerli tramite repository come VirusTotal, VirusBay, Malpedia e MalShare.

image of virus bay malware repository

Vantaggi degli hash nella ricerca delle minacce

Ricerca delle minacce diventa più semplice anche grazie ai valori hash. Vediamo come un amministratore IT potrebbe usarli per cercare minacce su tutti i dispositivi nella console di gestione SentinelOne.

Gli hash sono particolarmente utili quando individuate una minaccia su un dispositivo e volete verificare se il file è presente nel resto della rete. Fate clic sull'icona Visibility nella console di gestione SentinelOne e avviate una nuova ricerca. In questo caso, useremo soltanto l'hash SHA1 del file e ne cercheremo la presenza negli ultimi 3 mesi.

image of threat hunting

Bene, vediamo che il file è comparso alcune volte. Ma non finisce qui. La ricerca dell'hash ci ha condotti al TrueContext ID, da cui possiamo approfondire e vedere esattamente cosa ha fatto il file: quali processi ha creato, quali file ha modificato, quali URL ha contattato e così via. In breve, partendo dall'hash del file possiamo ricostruire l'intera sequenza dell'attacco con pochi clic.

image of sentinelone true context ID 
Callout Background Image Gradient

Cybersicurezza alimentata dall'intelligenza artificiale

Elevate la vostra posizione di sicurezza con il rilevamento in tempo reale, la risposta automatica e la visibilità totale dell'intero ambiente digitale.

Conclusione

Gli hash sono uno strumento fondamentale per la sicurezza informatica: ci dicono in modo affidabile se due file sono identici, purché usiamo algoritmi di hashing sicuri che evitino le collisioni. Come abbiamo visto, però, due file possono avere lo stesso comportamento e le stesse funzionalità senza necessariamente avere lo stesso hash. Affidarsi all'identità degli hash per il rilevamento antivirus è quindi un approccio inadeguato.

Nonostante questo, gli hash restano utili agli analisti della sicurezza per attività come la condivisione degli IOC e la ricerca delle minacce. Se lavorate nel campo della sicurezza informatica e delle reti, li incontrate senza dubbio ogni giorno.


Vi è piaciuto questo articolo? Seguiteci su LinkedIn, Twitter, YouTube o Facebook per scoprire i contenuti che pubblichiamo.

Altri articoli sulla cybersecurity

"

Domande frequenti sull'hashing

L'hashing è una tecnica di crittografia unidirezionale che trasforma i dati in una stringa di caratteri di lunghezza fissa. Non potete invertire il processo per recuperare i dati originali. Funziona come un'impronta digitale: lo stesso input produce sempre lo stesso hash, mentre input diversi producono risultati completamente diversi. L'hashing protegge le password, verifica l'integrità dei file e garantisce che i dati non siano stati manomessi. È essenziale per la tecnologia blockchain e le firme digitali.

Un esempio comune è l'applicazione di SHA-256 alla parola “hello”, che produce “2cf24dba4f21d4288094c30e2ede82c380cac19544bb5c4ab02f5b2db38500d3”. Se cambiate anche un solo carattere e scrivete “Hello”, ottenete un hash completamente diverso. I sistemi di gestione delle password usano l'hashing: quando create una password, il sistema ne calcola l'hash e lo memorizza. Quando accedete, calcola l'hash della password inserita e lo confronta con quello memorizzato. Anche la verifica dell'integrità dei file usa l'hashing per rilevare le modifiche.

L'hashing garantisce l'integrità dei dati rilevando qualsiasi modifica non autorizzata. Protegge le password rendendole illeggibili anche in caso di violazione dei database. Potete verificare che i file scaricati non siano stati danneggiati o infettati da malware. L'hashing è alla base delle firme digitali e dei protocolli di comunicazione sicuri. È fondamentale per la tecnologia blockchain e la sicurezza delle criptovalute. Senza hashing, non potreste verificare che i dati restino invariati durante la trasmissione o l'archiviazione.

Le principali famiglie di algoritmi di hashing sono MD (Message Digest), SHA (Secure Hash Algorithm) e RIPEMD. MD5 produce hash a 128 bit, ma oggi è considerato insicuro. SHA-256 è attualmente il più usato e produce hash a 256 bit. SHA-3 è lo standard più recente, progettato per sostituire gli algoritmi precedenti. Ogni tipo presenta caratteristiche diverse in termini di sicurezza, lunghezza dell'hash e requisiti di calcolo. Per le applicazioni in cui la sicurezza è fondamentale, i sistemi moderni preferiscono SHA-256 o SHA-3.

L'hashing è unidirezionale e irreversibile, mentre la crittografia è bidirezionale e reversibile. L'hashing produce sempre un risultato di lunghezza fissa, indipendentemente dalle dimensioni dell'input. La lunghezza del risultato della crittografia varia in base ai dati di input. L'hashing verifica l'integrità dei dati, mentre la crittografia ne protegge la riservatezza. Potete decifrare i dati crittografati con la chiave corretta, ma non potete invertire un hash per recuperare i dati originali. I due metodi rispondono a esigenze di sicurezza diverse e spesso vengono usati insieme.

L'hashing protegge i dati rendendo impossibile risalire alle informazioni originali. Anche se gli aggressori rubano password sottoposte a hashing, non possono ricostruire facilmente le password effettive. Qualsiasi modifica ai dati originali produce un hash completamente diverso, rendendo rilevabili le manomissioni. L'hashing non richiede chiavi di crittografia, quindi non c'è alcuna chiave da compromettere. Verifica l'integrità dei dati senza esporne il contenuto. Per questo è ideale per archiviare le password e verificare i file.

L'hashing consente di recuperare e verificare rapidamente i dati. Garantisce l'integrità dei dati senza esporre il contenuto originale. La sicurezza delle password migliora significativamente con tecniche di hashing adeguate. La verifica dell'integrità dei file diventa semplice e affidabile. L'hashing rende possibili la tecnologia blockchain e le transazioni sicure. È efficiente dal punto di vista computazionale e non richiede la gestione delle chiavi. Le firme digitali e i sistemi di autenticazione si affidano all'hashing per garantire la sicurezza. Anche la deduplicazione dei dati e la gestione efficiente dello spazio di archiviazione traggono vantaggio dall'hashing.

Scopri di più su Sicurezza informatica

Decorative background gradient

Scopri la piattaforma di cybersecurity più avanzata

Scopri come la piattaforma di cybersecurity autonoma e più intelligente al mondo può proteggere la tua organizzazione oggi e in futuro.
Dark dashboard UI with purple-highlighted nav, summary cards showing 149, 7, 78, 56, 1.2 h, and a status table with linked purple text