L'azienda Google ha annunciato l'apertura del codice del progetto Magika, progettato per determinare il tipo di contenuto basato sull'analisi dei dati presenti nel file. Magika può identificare con precisione i linguaggi di programmazione utilizzati nel contenuto, i metodi di compressione, i pacchetti di installazione, il codice eseguibile, i tipi di markup, i formati audio, video, documenti e immagini. Gli strumenti correlati al progetto e il modello di apprendimento automatico sono stati pubblicati sotto licenza Apache 2.0.
A differenza di progetti simili che determinano il tipo MIME in base al contenuto, Magika si distingue per l'uso di metodi di apprendimento automatico, elevate prestazioni e un'ottima accuratezza di identificazione. Il modello è stato addestrato utilizzando il framework Keras su 25 milioni di esempi di file e supporta il riconoscimento di 116 tipi di dati con un'accuratezza non inferiore al 99%. Il modello è stato assemblato in formato ONNX e ha una dimensione di soli 1 MB. L'uso di metodi di apprendimento automatico profondo ha consentito di aumentare l'accuratezza dell'identificazione del 50% rispetto al sistema precedentemente utilizzato da Google basato su regole definite manualmente.

In Google, il sistema è utilizzato per classificare i file nei servizi Gmail, Drive, Code Insight e Safe Browsing durante le verifiche di sicurezza e conformità alle regole dei servizi. È in corso il lavoro per integrare Magika nella piattaforma VirusTotal come collegamento per la filtrazione iniziale dei file prima dell'esecuzione di analizzatori specifici. La configurazione di Magika implementata nell'infrastruttura di Google consente la scansione di milioni di file al secondo e centinaia di miliardi di file alla settimana. Dopo il caricamento del modello, il tempo di generazione dell'output è di 5-6 ms testando su un singolo core CPU. Il tempo di identificazione è quasi indipendente dalla dimensione del file.
Per l'utilizzo di Magika nei propri progetti sono stati preparati uno strumento da riga di comando, un pacchetto per Python e una libreria JavaScript in grado di funzionare nel browser o in progetti basati su Node.js. L'interfaccia da riga di comando e l'API supportano l'esecuzione di operazioni in modalità batch, ovvero consentono di verificare più file in un'unica richiesta. È disponibile una modalità di scansione ricorsiva dell'intero contenuto di una directory e tre modalità di previsione per impostare la resilienza agli errori (alta affidabilità, media affidabilità e migliore congettura).

Fonte: opennet.ru
