Motore di ricerca per file... sicuri

Bit9 FileAdvisor si propone come motore di ricerca per la validazione dei file scaricati da Internet. Un archivio di oltre 250 milioni di file indicizzati e dei rispettivi hash MD5 e SHA-1. I creatori: un'arma contro il malware

Cambridge (USA) - La lotta alla diffusione di software malevolo ha un nuovo alleato: File Advisor, un archivio da 4 terabyte che contiene i dati univoci di oltre 250 milioni di file presenti su Internet. Identificare con precisione i malware ed i file sconosciuti, garantiscono i responsabili di Bit9, "non è mai stato così semplice".

L'intuizione di questa giovane azienda statunitense, fondata da ex dirigenti di Cisco, Lucent e 3Com, è semplice e di comprovata efficacia. "Ciascun file è identificabile attraverso una firma digitale calcolata attraverso funzioni di hash, sfruttando appositi algoritmi", spiega il vicepresidente John Hanratty.

File Advisor utilizza infatti i noti algoritmi SHA-1 ed MD-5 per analizzare e generare il codice proprio di ogni singolo file. E' un identificativo unico, indipendente dal nome e quindi giudicato "estremamente sicuro", dice Hanratty. Gli utenti potranno controllare la provenienza ed il contenuto reale di un file semplicemente ricercandone la firma corrispondente.
Per rendere il processo estremamente veloce, Bit9 ha creato un software gratuito per l'estrapolazione istantanea dei checksum dai file: il programma, disponibile solo per sistemi Windows, aggiunge questa comoda funzione direttamente nel menù a tendina attivato dal tasto destro del mouse.

Bit9 sta inoltre lavorando ad un software molto più ambizioso, chiamato Parity. Appena ultimato, il sistema permetterà l'analisi automatica di tutti i file gestiti dal sistema operativo. Il motore di ricerca messo a punto da Bit9 sarà il fondamento per una nuova generazione di "strumenti di controllo centralizzato", fanno sapere i portavoce, "dove l'identificazione dei file avverrà direttamente sui server di una rete privata o aziendale, o più semplicemente sul proprio computer personale".

Il software sviluppato da Bit9, dal funzionamento simile a quello di un antivirus, potrà rimanere residente in memoria e controllare continuamente i file utilizzati attraverso un filo diretto con l'archivio. Il lato più interessante della questione, sottolinea Hanratty, "riguarda l'uso della tecnologia Bit9 Parity per contrastare la diffusione di software non autorizzati".

Teoricamente un ISP potrebbe installare il software su appositi server a monte di una WAN urbana, in modo da filtrare arbitrariamente il transito di tutti quei file considerati illegali o semplicemente dannosi.

Tommaso Lombardi
TAG: sicurezza
21 Commenti alla Notizia Motore di ricerca per file... sicuri
Ordina
  • Tutti gli algoritmi di hash si basano sul principio secondo cui un cambiamento di un solo bit del file che si vuole controllare provoca un cambiamento con probabilità 0,5 di tutti e ciascuno dei bit che compongono il valore del hash (vale a dire, l'uscita dell'algoritmo di hash).

    In altre parole, cambiare un solo bit del file originale produce un valore di hash totalmente differente; se non fosse così gli algoritmi di hash non servirebbero a un bel niente.

    Perciò è facilmente immaginabile che si possa inserire in un file un area di, mettiamo, 64 bit civetta da scrivere in maniera aleatoria e che non devono essere necessariamente consecutivi, per cui dallo stesso file base si ricaverebbero

    2^64 = 18.446.744.073.709.551.616

    file differenti con altrettanti valori diversi di hash. Insomma, contro il malware ci vuole ben altro. Arrabbiato
    non+autenticato

  • - Scritto da: Anonimo
    > Tutti gli algoritmi di hash si basano sul
    > principio secondo cui un cambiamento di un solo
    > bit del file che si vuole controllare provoca un
    > cambiamento con probabilità 0,5 di tutti e
    > ciascuno dei bit che compongono il valore del
    > hash (vale a dire, l'uscita dell'algoritmo di
    > hash).
    >
    > In altre parole, cambiare un solo bit del file
    > originale produce un valore di hash totalmente
    > differente; se non fosse così gli algoritmi di
    > hash non servirebbero a un bel niente.
    >
    > Perciò è facilmente immaginabile che si possa
    > inserire in un file un area di, mettiamo, 64 bit
    > civetta da scrivere in maniera aleatoria e che
    > non devono essere necessariamente consecutivi,
    > per cui dallo stesso file base si ricaverebbero
    >
    > 2^64 = 18.446.744.073.709.551.616
    >
    > file differenti con altrettanti valori diversi di
    > hash. Insomma, contro il malware ci vuole ben
    > altro. Arrabbiato

    Non capisco il senso di quello che dici.

    Il problema cui si tenta di porre fine è quello del malware introdotto all'interno di file noti.

    Ora se io conosco l'hash del file sano, qualunque altro clone modificato con malware avrà un hash diverso (con probabilità praticamente 1).

    Quella tecnologià lì serve solo a verificare se si possiede esattamente il file registrato da loro.
    non+autenticato

  • - Scritto da: Anonimo
    >
    > - Scritto da: Anonimo
    > > Tutti gli algoritmi di hash si basano sul
    > > principio secondo cui un cambiamento di un solo
    > > bit del file che si vuole controllare provoca un
    > > cambiamento con probabilità 0,5 di tutti e
    > > ciascuno dei bit che compongono il valore del
    > > hash (vale a dire, l'uscita dell'algoritmo di
    > > hash).
    > >
    > > In altre parole, cambiare un solo bit del file
    > > originale produce un valore di hash totalmente
    > > differente; se non fosse così gli algoritmi di
    > > hash non servirebbero a un bel niente.
    > >
    > > Perciò è facilmente immaginabile che si possa
    > > inserire in un file un area di, mettiamo, 64 bit
    > > civetta da scrivere in maniera aleatoria e che
    > > non devono essere necessariamente consecutivi,
    > > per cui dallo stesso file base si ricaverebbero
    > >
    > > 2^64 = 18.446.744.073.709.551.616
    > >
    > > file differenti con altrettanti valori diversi
    > di
    > > hash. Insomma, contro il malware ci vuole ben
    > > altro. Arrabbiato
    >
    > Non capisco il senso di quello che dici.
    >
    > Il problema cui si tenta di porre fine è quello
    > del malware introdotto all'interno di file noti.
    >
    > Ora se io conosco l'hash del file sano, qualunque
    > altro clone modificato con malware avrà un hash
    > diverso (con probabilità praticamente 1).
    >
    > Quella tecnologià lì serve solo a verificare se
    > si possiede esattamente il file registrato da
    > loro.


    Eh, ma lui è un genio della matematica... Ficoso
    Avrà 30 e lode in matematica immagino.. ma dimostra di avere anche tanta confusione, come la stragrande maggioranza della gente che ottiene voti alti in matematica in Italia, purtroppo.....
    non+autenticato
  • Sta mostrando come non sia infallibile usare gli hash per identificare i file, perché si possono creare 2^N copie funzionalmente identiche di uno stesso file, che differiscono per soli N bit, per aggirare la catalogazione.

    Era un commento circa la possibilità di un uso del sistema di ricerca diverso da quello dichiarato.

    Supponiamo ad esempio che si voglia usare l'hash per capire se un dato file sul computer sia il famigerato programma copiaDVDasbafo.exe: non lo si può fare se l'autore del programma diffonde copie dell'eseguibile che differiscono per N bit scelti a caso.

  • - Scritto da: Gatto Selvaggio
    > Sta mostrando come non sia infallibile usare gli
    > hash per identificare i file, perché si possono
    > creare 2^N copie funzionalmente identiche di uno
    > stesso file, che differiscono per soli N bit, per
    > aggirare la catalogazione.
    >
    > Era un commento circa la possibilità di un uso
    > del sistema di ricerca diverso da quello
    > dichiarato.
    >
    > Supponiamo ad esempio che si voglia usare l'hash
    > per capire se un dato file sul computer sia il
    > famigerato programma copiaDVDasbafo.exe: non lo
    > si può fare se l'autore del programma diffonde
    > copie dell'eseguibile che differiscono per N bit
    > scelti a caso.

    Appunto. Ma dato che è esattamente l'autore ad avere interesse a registrare l'hash, sarebbe per lui contro producente produrre delle simili copie.

    Viceversa, se io volessi produrre un sorgente contenente malware, potrei usare la mappa indicata per produrre un hash uguale a quello registrato. In tal caso comunque dovrei tentare probabilisticamente 2^64/2 copie del programma su cui calcolare l'hash e verificare l'uguaglianza. Ma 2^63 è circa (come ordine di grandezza) 10^19 (dato che logaritmo in base 10 di 2 è circa 0,30). Poniamo che impiegassi un millisecondo a creare una copia, calcolare l'hash e a compararlo con l'originale. Allora impiegherei 10^16 secondi per trovare un hash, e cioè qualche miliardo di anni, che equivale per ordine di grandezza all'età dell'universo. Quindi non è fattibile.

    Tutto questo solo per togliermi lo sfizio di aver ragione.... ovviamenteOcchiolino
  • > Appunto. Ma dato che è esattamente l'autore ad
    > avere interesse a registrare l'hash, sarebbe per
    > lui contro producente produrre delle simili
    > copie.

    Certo. Ma l'autore del thread parlava di un caso diverso, prospettato da qualcun altro.

    > Viceversa, se io volessi produrre un sorgente
    > contenente malware, potrei usare la mappa
    > indicata per produrre un hash uguale a quello
    > registrato. [...]

    Non so: modificando anche un solo bit l'hash diviene diverso, ed è difficile produrne uno uguale. Ovviamente un hash MD5 ha 32 caratteri per cui è ovvio che più stringhe possono corrispondervi - la funzione MD5 non è biunivoca - però credo sia estremamente improbabile riuscire a costruire una stringa che dia lo stesso hash di un programma, e costituisca pure essa un programma e non una sequenza di caratteri a casaccio.

    Edit: l'hash ha 16 caratteri, non 32.

    ==================================
    Modificato dall'autore il 13/03/2006 17.54.47

  • - Scritto da: Qfwfq

    > Tutto questo solo per togliermi lo sfizio di aver
    > ragione.... ovviamenteOcchiolino

    Questo ti sconvolgera':

    http://en.wikipedia.org/wiki/MD5
    non+autenticato

  • - Scritto da: Anonimo
    >
    > - Scritto da: Qfwfq
    >
    > > Tutto questo solo per togliermi lo sfizio di
    > aver
    > > ragione.... ovviamenteOcchiolino
    >
    > Questo ti sconvolgera':
    >
    > http://en.wikipedia.org/wiki/MD5

    Guarda che è scritto che ho ragione io:

    "[...] All that is required to generate two colliding files is a template file, with a 128-byte block of data aligned on a 64-byte boundary, that can be changed freely by the collision-finding algorithm."

    I bit del blocco di 128 byte te li devi cambiare a casaccio finchè trovi un hash uguale a quello desiderato.

    Il tempo per fare questo è esattamente quello che calcolavo io.... anzi io partivo dall'ipotesi di 64 bit su cui lavorare, mentre qui ce ne sono addirittura 128*8, sicchè di finire prima del big crunch manco se ne parla.

  • - Scritto da: Qfwfq
    > Poniamo che impiegassi un millisecondo a
    > creare una copia, calcolare l'hash e a compararlo
    > con l'originale. Allora impiegherei 10^16 secondi
    > per trovare un hash, e cioè qualche miliardo di
    > anni, che equivale per ordine di grandezza
    > all'età dell'universo. Quindi non è fattibile.

    Premessa: non mi interessa l'applicazione specifica del programma, per verificare l'autenticità di un file uso la firma digitale, gli hash solo per verificare che un download non sia corrotto. L'applicazione sembra più, come qualcuno ha già detto, un trucco per censire il software utilizzato.

    MD5 ormai inizia a dare scricchiolare in modo preoccupante. Generare due file (casuali) con lo stesso hash MD5 è questione fattibilissima.
    http://www.stachliu.com/collisions.html

    Si possono fare anche cose più interessanti. A questo indirizzo:
    http://www1.corest.com/corelabs/projects/research_...
    sono presenti due file *eseguibili* con stesso MD5, crc32, checksum32 e checksum16. E ovviamente non ci hanno messo miliardi di anni per crearliSorride

    SHA-1 è considerato più robusto, ma anche lui ha mostrato delle crepe (non preoccupanti come quelle di MD5).

    In generale la tendenza attuale è quella di spostarsi verso SHA-256 o RIPEMD.

    La crittografia è molto complessa, e pensare di poter ridurre l'attacco di un algoritmo di hash a qualche calcolo è semplicistico. (Per il semplice fatto che i tuoi calcoli sarebbero esatti se non ci fossero "trucchi" per forzare gli algoritmi (semplificandone round o altre amenità)).

    > Tutto questo solo per togliermi lo sfizio di aver
    > ragione.... ovviamenteOcchiolino

    Perbacco!
  • > Si possono fare anche cose più interessanti.
    > A questo indirizzo:
    > http://www1.corest.com/corelabs/projects/research_
    > sono presenti due file *eseguibili* con stesso
    > MD5, crc32, checksum32 e checksum16.

    AAAAGGHHH...! Questo sì che è cattivo.

    Però resta improbabile l'esistenza di un eseguibile funzionalmente analogo a un eseguibile dato, e in più contenente malware, con lo stesso hash.
    Improbabile, non impossibile: ma si tratterebbe di casi circoscritti.

  • - Scritto da: Anonimo
    > Tutti gli algoritmi di hash si basano sul
    > principio secondo cui un cambiamento di un solo
    > bit del file che si vuole controllare provoca un
    > cambiamento con probabilità 0,5 di tutti e
    > ciascuno dei bit che compongono il valore del
    > hash (vale a dire, l'uscita dell'algoritmo di
    > hash).
    >
    > In altre parole, cambiare un solo bit del file
    > originale produce un valore di hash totalmente
    > differente; se non fosse così gli algoritmi di
    > hash non servirebbero a un bel niente.
    >
    > Perciò è facilmente immaginabile che si possa
    > inserire in un file un area di, mettiamo, 64 bit
    > civetta da scrivere in maniera aleatoria e che
    > non devono essere necessariamente consecutivi,
    > per cui dallo stesso file base si ricaverebbero
    >
    > 2^64 = 18.446.744.073.709.551.616
    >
    > file differenti con altrettanti valori diversi di
    > hash. Insomma, contro il malware ci vuole ben
    > altro. Arrabbiato


    Come li introduci 64bit "aleatori" se basta 1 bit diverso perchè l'hash risulti diverso e quindi il file di conseguenza ?
    non+autenticato
  • Casomai qualcuno non lo sapesse su linux per visualizzare l'hash di un file basta scrivere:

    openssl dgst -md5 nomefile

    Al posto di -md5 potete usare anche altri algoritmi di hash: md2, md4, mdc2, rmd160, sha, sha1
    Occhiolino
    CoD
    131

  • - Scritto da: CoD
    > Casomai qualcuno non lo sapesse su linux per
    > visualizzare l'hash di un file basta scrivere:
    >
    > openssl dgst -md5 nomefile
    >
    > Al posto di -md5 potete usare anche altri
    > algoritmi di hash: md2, md4, mdc2, rmd160, sha,
    > sha1
    > Occhiolino

    Mancano utility grafiche ?
    non+autenticato
  • - Scritto da: Anonimo
    > - Scritto da: CoD
    > > Casomai qualcuno non lo sapesse su linux per
    > > visualizzare l'hash di un file basta scrivere:

    > > openssl dgst -md5 nomefile

    > > Al posto di -md5 potete usare anche altri
    > > algoritmi di hash: md2, md4, mdc2, rmd160, sha,
    > > sha1
    > > Occhiolino

    > Mancano utility grafiche ?

    Al contrario, ce ne sono a pacchi; descrivile pure tu una per una, qui ci si limita al metodo generale che funziona comunque.
    non+autenticato
  • Visto che non mi piace scrivere le cose senza sapere cosa sono puoi spiegare cosa significano le varie parti ?
    non+autenticato

  • - Scritto da: Anonimo
    > Visto che non mi piace scrivere le cose senza
    > sapere cosa sono puoi spiegare cosa significano
    > le varie parti ?
    man openssl
    openssl --help
    openssl dgst --help

    ;)

    openssl è un tool di crittografia. Con l'opzione dgst gli cheidi di fare il digest. Dopo devi indicargli l'agoritmo di hash da utilizzare: md5, sha, ....

    openssl dgst md5

    bye
    non+autenticato

  • - Scritto da: Anonimo

    >
    > openssl dgst md5
    >

    Ad essere pignoli, basta scrivere

    $ openssl md5
    non+autenticato
  • Altrimenti si può usare:
    md5sum
    sha1sum
    Sono delle utility indipendenti, per chi non vuole addentrarsi in openssl.
    Ovviamente le si deve prima installare; usate il vostro gestore di pacchetti per cercarle.
    non+autenticato
  • Scaricato

    Installato

    Pulsante destro su eseguibile di installazione di Apache Tomcat 5.5 > click su FileAdvisor

    Si apre una finestra del browser:
    "Your hash has been found in 2 Product(s).
    Click here to Login or Register to view more information."

    HAHAHAHAHAHAHAHAHA

    Start>Pannello di Controllo>Installazione applicazioni>Bit9 FileAdvisor>Disinstalla>Ok

    Fine

    Nota: più che uno strumento di controllo mi sembra un censimento del software installato.

  • la stessa cosa capita sul servizio online... Con la lingua fuori
    che cavolata...
    non+autenticato
  • ... potrebbe sapere cosa avete installato sul pc; se gli date la possibilita' di fare l'hash di tutti gli eseguibili che avete.

    Bah.
    non+autenticato