Google ha annunciato l'apertura del codice del progetto Magika, destinato a determinare il tipo di contenuto tramite l'analisi dei dati presenti in un file. Magika è in grado di 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 associati al progetto e il modello di machine learning sono stati pubblicati sotto la licenza Apache 2.0.
Rispetto a progetti simili che determinano il MIME type del contenuto, Magika si distingue per l'uso di metodi di machine learning, alte prestazioni e un'ottima precisione nell'identificazione. Il modello è stato addestrato utilizzando il framework Keras su 25 milioni di file e supporta il riconoscimento di 116 tipi di dati con una precisione di almeno il 99%. Il modello è confezionato nel formato ONNX e ha una dimensione di soli 1 MB. L'uso di metodi di deep learning ha permesso di aumentare la precisione dell'identificazione del 50% rispetto al precedente sistema di Google basato su regole manuali.

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à delle normative dei servizi. È in corso l'integrazione di Magika nella piattaforma VirusTotal come parte della filtrazione iniziale dei file prima dell'esecuzione di analizzatori specifici. La configurazione implementata nell'infrastruttura di Google consente di scansionare milioni di file al secondo e centinaia di miliardi di file a settimana. Dopo il caricamento del modello, il tempo di produzione dell'output è di 5-6 ms quando testato su un singolo core CPU. Il tempo di identificazione è quasi indipendente dalle dimensioni del file.
Per utilizzare Magika nei propri progetti, sono stati preparati un'utilità 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, consentendo di controllare più file con una singola richiesta. È disponibile una modalità di scansione ricorsiva dell'intero contenuto della directory e tre modalità di previsione per ottimizzare la tolleranza agli errori (alta fiducia, media fiducia e migliore ipotesi).

Fonte: opennet.ru
