The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Google опубликовал Magika 1.0, инструментарий для определения типа содержимого файлов

07.11.2025 14:10

Компания Google представила релиз инструментария Magika 1.0, предназначенного для определения типа содержимого на основе анализа имеющихся в файле данных. Magika может точно определять в содержимом используемые языки программирования, методы сжатия, установочные пакеты, исполняемый код, виды разметки, форматы звука, видео, документов и изображений. Связанный с проектом инструментарий и готовая модель машинного обучения распространяются под лицензией Apache 2.0. Обвязки подготовлены для языков Rust, Python, JavaScript/TypeScript и Go.

От похожих проектов, определяющих MIME-тип по содержимому, Magika отличается применением методов машинного обучения, высокой производительностью и точностью определения. Модель обучена с использованием фреймворка Keras на 100 млн примеров файлов (размер набора данных более 3 TB) и поддерживает распознавание 200 типов данных с точностью не менее 99%. Модель скомпонована в формате ONNX и имеет размер всего несколько мегабайт. Задействование методов глубокого машинного обучения позволило на 50% повысить точность определения по сравнению с ранее применявшейся в Google системой на основе вручную заданных правил.

В Google система используется для классификации файлов в сервисах Gmail, Drive, Code Insight и Safe Browsing при выполнения проверок безопасности и соответствия правилам сервисов. Обеспечена интеграция Magika в платформы VirusTotal и abuse.ch в качестве звена для первичной фильтрации файлов перед выполнением специфичных анализаторов. Развёрнутая в инфраструктуре Google конфигурация Magika обеспечивает сканирование нескольких миллионов файлов в секунду и нескольких сотен миллиардов файлов в неделю. После загрузки модели время формирования вывода составляет 5 мс при тестировании на одном ядре CPU. Время определения почти не зависит от размера файла.

Для задействования Magika в своих проектах подготовлены утилита командной строки, пакеты для Python, Rust и Go, а также JavaScript-библиотека, способная работать в браузере или в проектах на базе Node.js. Интерфейс командной строки и API поддерживают выполнение операций в пакетном режиме, т.е. позволяют проверять несколько файлов за один запрос. Имеется режим рекурсивного сканирования всего содержимого каталога и три режима прогнозирования для настройки устойчивости к ошибкам (высокая уверенность, средняя уверенность и наилучшая догадка).

Изначально проект развивался на языке Python, но при подготовке релиза 1.0 движок для определения типов контента был переписан на языке Rust, что позволило добиться более высокой производительности, сохранив должный уровень защищённости кода. Для выполнения модели машинного обучения задействован фреймворк ONNX Runtime, а для параллельной асинхронной обработки запросов - библиотека Tokio. На MacBook Pro (M4) производительность движка позволяет обрабатывать около 1000 файлов в секунду.

Помимо нового движка, из изменений в выпуске 1.0 отмечается расширение числа поддерживаемых типов с примерно 100 до 200; добавление нового клиента командной строки, написанного на Rust; повышение точности определения текстовых форматов, таких как файлы конфигурации и код; переработка модулей для Python и TypeScript для упрощения их интеграции с другими проектами. Среди поддерживаемых новых типов контента: форматы, применяемые при машинном обучении и AI; языки программирования Swift, Kotlin, TypeScript, Dart, Solidity (solidity), Web Assembly и Zig; DevOps-компоненты (Dockerfiles, TOML, HashiCorp, сборочные файлы Bazel и правила YARA); БД SQLite; файлы AutoCAD (dwg, dxf), Adobe Photoshop (psd) и шрифты (woff, woff2). Улучшено разделение кода на C++ и C, JavaScript и TypeScript.

  1. Главная ссылка к новости (https://opensource.googleblog....)
  2. OpenNews: Google открыл код AI-системы Magika для определения типа содержимого файлов
  3. OpenNews: Google открыл технологию передачи данных Falcon
  4. OpenNews: Google открыл приложение для создания 3D-моделей с использованием виртуальной реальности
  5. OpenNews: Google открыл код операционной системы для умных часов Pebble
  6. OpenNews: Google представил Coral NPU, открытую платформу для создания AI-ускорителей
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/64201-magika
Ключевые слова: magika, google
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (38) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 14:28, 07/11/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Уже чувствую, что функционала меньше, чем в libmagic (или что там утилита file юзает), а жор будет где-то метров 200 минимум.

    > Обвязки подготовлены для языков Rust, Python, JavaScript/TypeScript и Go.

    Хорошо, что сишные программы такой мусор юзать не будут.

     
     
  • 2.13, НяшМяш (ok), 15:07, 07/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Интересно, что гугл на это даже ответить попытался: https://securityresearch.google/magika/additional-resources/faq/#what-is-the-p
     
  • 2.16, Bob (??), 15:11, 07/11/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Максимально оптимизируют, ибо всетмощности надо под ИИ освобождать. Ту же Гемини и чё там ещё понавыпускали.

    Анализирця и обучаясь на файлах со своего диска и прочих сервисах.

     
  • 2.23, Аноним (23), 15:59, 07/11/2025 [^] [^^] [^^^] [ответить]  
  • –3 +/
    File такая кривая дрянь что это уже не смешно. Даже распознавание zip файлов регулярно ломают. Если хотя бы будет работать, то 200 мегабайт не жалко.
     
  • 2.24, Аноним (24), 16:09, 07/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > отличается применением методов машинного обучения

    Ого, т.е. будут галлюцинации и ложные результаты.

     
  • 2.42, Аноним (42), 19:23, 07/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Уже чувствую, что функционала меньше, чем в libmagic (или что там утилита file юзает), а жор будет где-то метров 200 минимум.

    На основании чего такие "чувства"? Увидели фразу "машинное обучение" - и дальше все как в тумане?

     

  • 1.5, Хлебан (?), 14:34, 07/11/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А вот интересно, что произойдет, если этот определитель типа начнет бредить (или как еще аккуратно говорят, галлюцинировать)? Какой простор для творчества вирусописателей.
     
     
  • 2.7, Жор (?), 14:45, 07/11/2025 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Там нет генеративной модели. Оно не может "бредить", может просто ошибиться при классификации.
     
     
  • 3.25, Аноним (24), 16:11, 07/11/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > может просто ошибиться

    Супер! Ошибётся, запустит гифку и сломает систему.

     
  • 3.29, 12yoexpert (ok), 16:57, 07/11/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    так это совсем другое дело
     
  • 2.10, Аноним (10), 14:49, 07/11/2025 [^] [^^] [^^^] [ответить]  
  • –4 +/
    > А вот интересно, что произойдет, если этот определитель типа начнет бредить

    Забавно, как люди одним вопросом показывают свою полнейшую некомпетентность в вопросе.

    Такая нейронка не может галючинировать. Вы можете попробовать подобрать содержимое файла так, чтобы она ошиблась. И... на этом все. Точно также вы можете подредактировать файл чтобы ввести в заблуждение другие инструменты автоматического детекта типа.

     
     
  • 3.19, Аноним (19), 15:29, 07/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > вы можете подредактировать файл чтобы ввести в заблуждение другие инструменты

    И как вы это себе представляете? Я убираю из файла заголовок/магическое число и он превращается... в бессмысленный набор байтов? Как вы собираетесь "вводить в заблуждение" инструменты, если они определяют тип файла тем же способом что и программы которые собственно работают с этими файлами — по их структуре?

     
     
  • 4.37, Аноним (37), 18:13, 07/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Например, есть такой контейнерный формат ISOBMFF, который используется в MP4, JPEG2000, MJPEG, FMP4. В теории можно использовать атомы одного типа в файле другого, чтобы заставить подобные штуки ошибиться.
     
  • 2.36, devl547 (ok), 18:01, 07/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >вирусописателей

    Квайн-вирусы?

     

  • 1.6, Кошкажена (?), 14:37, 07/11/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > Magika is used at scale to help improve Google users' safety by routing Gmail, Drive, and Safe Browsing files to the proper security and content policy scanners
    > improve Google users' safety

    Верим?

     
     
  • 2.9, ryoken (ok), 14:45, 07/11/2025 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Гуглу-то..?
     
  • 2.18, Bob (??), 15:20, 07/11/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Это пресс релиз - для колхозников (юзеров гугла). Дачники (думающее) - идут мимо)

    Копирайт по медиа, кряки с кейгенами по софту, дообучение своего ИИ на файлах юзеров.

    Зачем вести базу "небезопасных" сайтов, если их можно сразу репортить хостеру и говорить: сноси или с выдачи уберём уже тебя)

    С файлами - не всё так просто. Есть 100% вирусы, общеизвестные. А есть параноидальная шиза на любой ехе, bat, sh и т.п. файл. Ибо юзер не планктон и посмел что-то накодить или такое качнуть.

    Доходит до идиотизма, когда самопальный ps или bash скрипт гугл диск как "опасный" определяет, а он пингует инет по ipv4 / ipv6 и меняет dns на гугловский)

     

  • 1.11, Анонимусс (?), 14:53, 07/11/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –6 +/
    > Изначально проект развивался на языке Python
    > был переписан на языке Rust

    Идеальная связка - прототипируем и отлаживаем на интерпритируемом языке. Реализацию пишем на современном безопасном компилируемом языке.

    > обеспечивает сканирование нескольких миллионов файлов в секунду
    > и нескольких сотен миллиардов файлов в неделю.

    Хехе, теперь каждый раз, когда растохейтер будет открывать файлик в гуглдоксе, он будет знать, что файлик был отпроцессен софтиной на расте :)

     
     
  • 2.12, Аноним (12), 15:05, 07/11/2025 Скрыто ботом-модератором     [к модератору]
  • +/
     
     
  • 3.14, Аноним (-), 15:08, 07/11/2025 Скрыто ботом-модератором     [к модератору]
  • –1 +/
     
  • 3.15, Анонимусс (?), 15:08, 07/11/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > что-то ты рано начал накиды^W разжигать, причем начал первый

    Накинули еще в первом сообщении
    "Хорошо, что сишные программы такой мусор юзать не будут."


     
  • 2.22, хрустишкапереписишка (?), 15:36, 07/11/2025 Скрыто ботом-модератором     [к модератору]
  • +1 +/
     

  • 1.17, Аноним10084 и 1008465039 (?), 15:16, 07/11/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Утилита file больше не нужна, получается?
     
     
  • 2.39, Аноним (39), 18:34, 07/11/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Зато нужна GTX100500 LLM и проц помощнее.
    Ну и скажут тебе примерно тоже самое - "это файл, но это не точно" )
     
     
  • 3.41, Аноним (42), 19:22, 07/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Зато нужна GTX100500 LLM и проц помощнее.

    Тем временем в новости:

    "После загрузки модели время формирования вывода составляет 5 мс при тестировании на одном ядре CPU"

     

  • 1.20, Аноним (20), 15:29, 07/11/2025 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +/
     
  • 1.21, Аноним (21), 15:32, 07/11/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Теперь же в процессоры добавляют эти как его за ногу NPU нейромодули, почему бы из них хоть каплю пользы не выдоить для сабжа и подобных задач?
     
  • 1.26, Аноним (26), 16:16, 07/11/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Абсолютно не нужный мусор существующий только из-за искусственного поддержания пузыря в IT. Подобный софт давно существовал и без всякого псевдо-"ИИ".
     
  • 1.27, Аноним (27), 16:30, 07/11/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Напоминаю, что magicka работает через откусывание от файла блока из начала, конца и середины. То есть засунув в начало, конец и середину нужные данные эту либу элементарно обмануть, при этом это нейронка, то есть не строгий алгоритмический парсинг, какой используется в реализациях, а штука, которой можно подсунуть adversarial куски, но при этом строгим парсером они всё равно будут парситься как надо. По-настоящему любой формат детектится только через попытку парсинга. На практике надо тип файла детектить по расширению, если контейнер - то парсить контейнер тоже, если тип запрещён - то ффтопку, если выглядит не запрещённым - то парсить безопасным парсером. Если не парсится - то ффтопку, если парсится - значит тот тип, что написан в расширении (даже если это химера). Либа имела бы существенную ценность для реверсинга, если бы была трансформером на индивидуальных битах и выдавала бы не тип файла, а тип данных (тип компрессии или кодировки, тип инта или тип флоата), а так это просто кусок хайпожорного дерьма, который на практике бесполезен.
     
  • 1.28, Аноним (28), 16:53, 07/11/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Зашли с коллегой на их сайт в раздел DEMO
    Файл a.sh (UTF-8) с содержимым что-то типа "sudo <cmd> <cmd params>".
    Строк 4-5, ничего специфического.
    Определило как "Batch" (виндовый .bat) и выдало score = 87%

    Как-то несолидно

     
     
  • 2.30, Мемоним (?), 17:00, 07/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Sudo for Windows is a new way for users to run elevated commands (as an administrator) directly from an unelevated console session on Windows.

    А в Powershell давно есть алиасы для всяких cp/mv/rm. Так что не все так просто.

     
     
  • 3.32, Аноним (39), 17:05, 07/11/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Magika может точно определять

    Сказал - сделай )

     
  • 2.33, Аноним (33), 17:17, 07/11/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Поочередно кинул три файла Гимпа в формате xcf с какими-то своими каляками.
    1) wav 19%, tiff 9%, psd 9%, vba 5%, hlp 5%
    2) tar 21%, pebin 9%, mp3 6%, psd 6%, tiff 5%
    3) wav 24%, hlp 16%, tiff 13%, jpeg 3%, psd 3%
     

  • 1.31, Аноним (39), 17:04, 07/11/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Magika может точно определять

    Спорим ? )

     

  • 1.34, Аноним (35), 17:33, 07/11/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А что если определяя что файл это картинка она заодно отправит на аналог вирустотала для проверки на мыслепреступление?
     
  • 1.38, Аноним (38), 18:14, 07/11/2025 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +/
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2025 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру