Компания Google представила релиз инструментария Magika 1.0, предназначенного для определения типа содержимого на основе анализа имеющихся в файле данных. Magika может точно определять в содержимом используемые языки программирования, методы сжатия, установочные пакеты, исполняемый код, виды разметки, форматы звука, видео, документов и изображений. Связанный с проектом инструментарий и готовая модель машинного обучения распространяются под лицензией Apache 2.0. Обвязки подготовлены для языков Rust, Python, JavaScript/TypeScript и Go...Подробнее: https://www.opennet.me/opennews/art.shtml?num=64201
Уже чувствую, что функционала меньше, чем в libmagic (или что там утилита file юзает), а жор будет где-то метров 200 минимум.> Обвязки подготовлены для языков Rust, Python, JavaScript/TypeScript и Go.
Хорошо, что сишные программы такой мусор юзать не будут.
Интересно, что гугл на это даже ответить попытался: https://securityresearch.google/magika/additional-resources/...
Максимально оптимизируют, ибо всетмощности надо под ИИ освобождать. Ту же Гемини и чё там ещё понавыпускали.Анализирця и обучаясь на файлах со своего диска и прочих сервисах.
File такая кривая дрянь что это уже не смешно. Даже распознавание zip файлов регулярно ломают. Если хотя бы будет работать, то 200 мегабайт не жалко.
https://github.com/horsicq/Detect-It-Easy?tab=readme-ov-fileВот еще хороший вариани.
А пихать нейронку в этот тип софта - та еще затея.
> отличается применением методов машинного обученияОго, т.е. будут галлюцинации и ложные результаты.
> Уже чувствую, что функционала меньше, чем в libmagic (или что там утилита file юзает), а жор будет где-то метров 200 минимум.На основании чего такие "чувства"? Увидели фразу "машинное обучение" - и дальше все как в тумане?
Если ты настолько несведущ в слабых сторонах ИИ, то лучше тебе вообще эту тему не комментировать.
ИИ хорош только как помощник человека. Финальное решение должен делать ТОЛЬКО человек, ибо ИИ неспособен В ПРИНЦИПЕ объяснить свои выводы. Так что да, когда слышу применение ИИ, "дальше всё как в тумане" - у применятелей ИИ.
> Если ты настолько несведущ в слабых сторонах ИИХотелось бы услышать конкретику в контексте сабжа.
> Финальное решение должен делать ТОЛЬКО человек
Ну так сиди парси файлики вручную в HEX-редакторе. Разае сабж тебе мешает это делать?
> неспособен В ПРИНЦИПЕ объяснить свои выводы
Я хз, к чему ты приплел необходимость "объяснять", но вообще-то уже давно существуют "рассуждающие" ИИ, которые могут тебе дать буквально пошаговую цепочку своих рассуждений, из которых вытекает вывод.
> Уже чувствую
> мусорОкрестили софт мусором на основе своих "чуств"? Ну, это качественная опеннетная экспертиза.
> Хорошо, что сишные программы такой мусор юзать не будут.
А что за сишные программы?
> А что за сишные программы?Которые CVE производят.
>> А что за сишные программы?
> Которые CVE производят.А, понятно. Ну, главное, что они "Растовый мусор" не используют. С CVE-то мы всегда жили, а вот с Растом - погибель...
А вот интересно, что произойдет, если этот определитель типа начнет бредить (или как еще аккуратно говорят, галлюцинировать)? Какой простор для творчества вирусописателей.
Там нет генеративной модели. Оно не может "бредить", может просто ошибиться при классификации.
> может просто ошибитьсяСупер! Ошибётся, запустит гифку и сломает систему.
так это совсем другое дело
> Там нет генеративной модели. Оно не может "бредить", может просто ошибиться при классификацииНейронке не обязательно быть генеративной, чтобы галлюцинировать. "Галлюцинирование" в контексте нейронок - это когда мизерные различия входных данных приводят к разным результатам.
Меня всегда озадачивают люди типа тебя, которые вдруг придумывают своё собственно определение для термина, и совершенно безосновательно утверждают, что это единственно верное утверждение. Что интересно вас сподвигает на такое поведение? Считаете ли вы его нормальным и допустимым в приличном обществе, или делаете это ради троллинга?
> А вот интересно, что произойдет, если этот определитель типа начнет бредитьЗабавно, как люди одним вопросом показывают свою полнейшую некомпетентность в вопросе.
Такая нейронка не может галючинировать. Вы можете попробовать подобрать содержимое файла так, чтобы она ошиблась. И... на этом все. Точно также вы можете подредактировать файл чтобы ввести в заблуждение другие инструменты автоматического детекта типа.
> вы можете подредактировать файл чтобы ввести в заблуждение другие инструментыИ как вы это себе представляете? Я убираю из файла заголовок/магическое число и он превращается... в бессмысленный набор байтов? Как вы собираетесь "вводить в заблуждение" инструменты, если они определяют тип файла тем же способом что и программы которые собственно работают с этими файлами — по их структуре?
Например, есть такой контейнерный формат ISOBMFF, который используется в MP4, JPEG2000, MJPEG, FMP4. В теории можно использовать атомы одного типа в файле другого, чтобы заставить подобные штуки ошибиться.
> Я убираю из файла заголовок/магическое число и он превращается... в бессмысленный набор байтов?А это очень интересный вопрос. Если, допустим, у меня есть покоцанный zip архив с винрарным содержымым. Он покоцан до уровня, когда ни одна реализация zip не может его распаковать. Будет ли правильно называть этот файл zip-архивом или бессмысленным набором байтов?
Ответ наверное зависит от целей, например если я пытаюсь данные восстановить с порушенной файловой системы, выудил оттуда цепочку инодов, и пытаюсь понять что там, то было бы неплохо узнать, что это японский текст в utf8, даже если начало текста не найдено на диске. Или узнать о том, что это zip-архив. Пускай покоцанный, не все его иноды найдены, но они может найдутся ещё, а я уже сейчас знаю что это. Может я даже какие-то блоки смогу разжать и глянуть, что внутре?
С другой стороны, эта теория о том, как лучше утилите поступать зависит от целей, страдает от того, что мне не придумать применения этой утилите, когда будет лучше, если она про покоцанный файл скажет "бессмысленный набор байт" чем "zip-архив". У тебя есть идеи, когда так будет лучше?
>вирусописателейКвайн-вирусы?
> 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Верим?
Гуглу-то..?
Это пресс релиз - для колхозников (юзеров гугла). Дачники (думающее) - идут мимо)Копирайт по медиа, кряки с кейгенами по софту, дообучение своего ИИ на файлах юзеров.
Зачем вести базу "небезопасных" сайтов, если их можно сразу репортить хостеру и говорить: сноси или с выдачи уберём уже тебя)
С файлами - не всё так просто. Есть 100% вирусы, общеизвестные. А есть параноидальная шиза на любой ехе, bat, sh и т.п. файл. Ибо юзер не планктон и посмел что-то накодить или такое качнуть.
Доходит до идиотизма, когда самопальный ps или bash скрипт гугл диск как "опасный" определяет, а он пингует инет по ipv4 / ipv6 и меняет dns на гугловский)
Утилита file больше не нужна, получается?
Зато нужна GTX100500 LLM и проц помощнее.
Ну и скажут тебе примерно тоже самое - "это файл, но это не точно" )
> Зато нужна GTX100500 LLM и проц помощнее.Тем временем в новости:
"После загрузки модели время формирования вывода составляет 5 мс при тестировании на одном ядре CPU"
> Тем временем в новостиНет времени читать!
Комментировать нужно!
> После загрузки модели время формирования вывода составляет 5 мс
> После загрузки моделиПомерил утилиту file, результат примерно тот же, только время на загрузку модели тратить не надо.
> Утилита file больше не нужна, получается?Нужна, конечно, как и детерминированный алгоритм, а не вот это вот "ой, не знаю, почему такое расширение, такая модель..."
а в чем была проблема юзать binwalk? он даже на их любимом расте переписан
Теперь же в процессоры добавляют эти как его за ногу NPU нейромодули, почему бы из них хоть каплю пользы не выдоить для сабжа и подобных задач?
> Теперь же в процессоры добавляют эти как его за ногу NPU нейромодули,
> почему бы из них хоть каплю пользы не выдоить для сабжа
> и подобных задач?Молодой человек, не нужно таких вопросов задавать. Производители процессоров волнуются. А вообще пройдите в эту комнату, да тут не ловит телефон, не волнуйтесь.
Абсолютно не нужный мусор существующий только из-за искусственного поддержания пузыря в IT. Подобный софт давно существовал и без всякого псевдо-"ИИ".
Напоминаю, что magicka работает через откусывание от файла блока из начала, конца и середины. То есть засунув в начало, конец и середину нужные данные эту либу элементарно обмануть, при этом это нейронка, то есть не строгий алгоритмический парсинг, какой используется в реализациях, а штука, которой можно подсунуть adversarial куски, но при этом строгим парсером они всё равно будут парситься как надо. По-настоящему любой формат детектится только через попытку парсинга. На практике надо тип файла детектить по расширению, если контейнер - то парсить контейнер тоже, если тип запрещён - то ффтопку, если выглядит не запрещённым - то парсить безопасным парсером. Если не парсится - то ффтопку, если парсится - значит тот тип, что написан в расширении (даже если это химера). Либа имела бы существенную ценность для реверсинга, если бы была трансформером на индивидуальных битах и выдавала бы не тип файла, а тип данных (тип компрессии или кодировки, тип инта или тип флоата), а так это просто кусок хайпожорного дерьма, который на практике бесполезен.
> То есть засунув в начало, конец и середину нужные данные эту либу элементарно обманутьТак можно обмануть любой алгоритм определения типа файла. Хз, что ты хотел этим сказать.
>> То есть засунув в начало, конец и середину нужные данные эту либу элементарно обмануть
> Так можно обмануть любой алгоритм определения типа файла. Хз, что ты хотел
> этим сказать.Очевидно, что на хрусте сделали снова ненужное.
Нет, обмануть сочетание расширения и структуры - нельзя. Расширение тебе говорит, что ты ожидаешь в файле найти. А парсер тебе говорит, нашёл ли ты именно то, что ожидаешь. И не используйте говнософт, который гадает, вместо того, чтобы полагаться на идентифкаторы. Особенно держитесь подальше от ImageMagick.
Зашли с коллегой на их сайт в раздел DEMO
Файл a.sh (UTF-8) с содержимым что-то типа "sudo <cmd> <cmd params>".
Строк 4-5, ничего специфического.
Определило как "Batch" (виндовый .bat) и выдало score = 87%Как-то несолидно
> 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. Так что не все так просто.
> Magika может точно определятьСказал - сделай )
Поочередно кинул три файла Гимпа в формате 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%
> Поочередно кинул три файла Гимпа в формате xcfТак это и не удивительно.
Они скорее всего и не обучали сетку на каком-то маргинальном формате, который используется только в одной васяно-софтине.
Попробуйте на чем-то нормальном, напр. на файлах photoshop :)
Вот и всё, что нужно знать о "нейронках". :)
А теперь давай выкладывай свои каляки...
Вряд ли они в проде используют прям тоже самое.
> Magika может точно определятьСпорим ? )
Спорь!
А вы знаете значение слово "точно" ? (это анониму выше)
А что если определяя что файл это картинка она заодно отправит на аналог вирустотала для проверки на мыслепреступление?
Раст победил! Даже гугл отказался от go ради Раста! Только бездари не умеют в Раст. Где нужно думать головой, а не жо...й.
Жду, когда выпустят новую программу dir, которая отображает список файлов и директорий. Естественно нужно ,чтобы эта программа была обязательно на искусственном интеллекте и обучалась на типичных домашних каталогах пользователей.
Это будет клиент, который будет в Майкрософт отправлять ваши файлы, анализировать и сообщать клиенту, директория это или файл )))
"The client and the bindings are already open source, and more is coming soon!" Не понял, этой штуке что ли стабильный канал интернета нужен будет для работы?!
> Задействование методов глубокого машинного обученияА что, бывают ещё методы "мелкого" машинного обучения?))
> А что, бывают ещё методы "мелкого" машинного обучения?))Ну если сделаете "сетку" с малых количеством слоев, то будет не глубокое.
>> А что, бывают ещё методы "мелкого" машинного обучения?))
> Ну если сделаете "сетку" с малых количеством слоев, то будет не глубокое.А с какой величины заканчивается мелкое и начинается глубокое?))
Мне вот "глубокое" по ___й, а вам по колено будет :)
"В Google система (magika) используется для классификации файлов в сервисах Gmail, Drive ..."Подсматривать нехорошо
Нехорошо. Но это если всем об этом рассказывать.
Прям запах свободы и демократии.
Но есть и плюс: можно создать нужный тебе "профиль" в гугле просто загружая нужную инфу.
> На MacBook Pro (M4) производительность движка позволяет обрабатывать около 1000 файлов в секунду.Это данные для блондинок? Может стоит написать параметры железа на тестах и тестовые данные дать, чтобы можно было желающим прогнать не на макпукпро? Не серьезно.
> Изначально проект развивался на языке Python, но при подготовке релиза 1.0 движок для определения типов контента был переписан на языке Rust, что позволило добиться более высокой производительности, сохранив должный уровень защищённости кода.Ловко сформулировано:
> сохранив должный уровень защищённости кода
То есть код на питоне безопаснее? Тут не спорим.
> что позволило добиться более высокой производительности
Какой? К сожалению никто не ответит, да и зачем манагерам лишать себя премии за ненужные переписывания. Такого ведь никогда не было. Ведь правда?