Compania Google a anunțat deschiderea codului sursă al proiectului Magika, destinat identificării tipului de conținut pe baza analizei datelor existente în fișier. Magika poate determina cu acuratețe limbajele de programare utilizate în conținut, metodele de comprimare, pachetele de instalare, codul executabil, tipurile de marcare, formatele audio, video, documente și imagini. Instrumentele legate de proiect și modelul de învățare automată sunt publicate sub licența Apache 2.0.
Spre deosebire de proiectele similare care determină tipul MIME în funcție de conținut, Magika se distinge prin aplicarea metodelor de învățare automată, performanța înaltă și precizia excelentă a identificării. Modelul a fost antrenat folosind cadrul Keras pe 25 de milioane de exemple de fișiere și suportă recunoașterea a 116 tipuri de date cu o precizie de cel puțin 99%. Modelul este compactat în format ONNX și are o dimensiune de doar 1 MB. Utilizarea metodelor de învățare profundă a crescut cu 50% precizia identificării comparativ cu sistemul anterior utilizat de Google, bazat pe reguli specificate manual.

În Google, sistemul este folosit pentru clasificarea fișierelor în serviciile Gmail, Drive, Code Insight și Safe Browsing în timpul verificărilor de securitate și conformitate cu regulile serviciilor. Se lucrează la integrarea Magika în platforma VirusTotal ca un element pentru filtrarea inițială a fișierelor înainte de a efectua analizele specifice. Configurația implementată în infrastructura Google asigură scanarea a mai multor milioane de fișiere pe secundă și a sute de miliarde de fișiere pe săptămână. După încărcarea modelului, timpul necesar pentru generarea unui rezultat este de 5-6 ms când este testat pe un singur nucleu CPU. Timpul de identificare nu depinde aproape deloc de dimensiunea fișierului.
Pentru a utiliza Magika în proiectele sale, au fost pregătite o unealtă de linie de comandă, un pachet pentru Python și o bibliotecă JavaScript capabilă să funcționeze în browser sau în proiectele bazate pe Node.js. Interfața de linie de comandă și API-ul suportă executarea operațiunilor în mod batch, adică permit verificarea mai multor fișiere într-o singură cerere. Există un mod de scanare recursivă a întregului conținut al directorului și trei moduri de prognoză pentru a ajusta rezistența la erori (înaltă încredere, medie încredere și cea mai bună estimare).

Sursa: opennet.ro
