Исследователи из компании JFrog выявили в репозитории Hugging Face вредоносные модели машинного обучения, установка которых может привести к выполнению кода атакующего для получения контроля за системой пользователя. Проблема вызвана тем, что некоторые форматы распространения моделей допускают встраивание исполняемого кода, например, модели, использующие формат "pickle", могут включать сериализированные объекты на языке Python, а также код, выполняемый при загрузке файла, а модели Tensorflow Keras могут исполнять код через Lambda Layer...Подробнее: https://www.opennet.dev/opennews/art.shtml?num=60691
Как неожиданно, исполняемый код на Python может быть вредоносным!
> Как неожиданно, исполняемый код на Python может быть вредоносным!"S" in python stands for security!
аж хорошо)
Быстрее переписывай на раст, а то не успеешь!
Исполняемый код на пистоне может быть НЕ вредоносным?!
Не зря придумали safetensors.
Зря. Это растоподелка сделана исключительно из NIH-синдрома. Лучший аналог safetensors - это zip-архив со store-"сжатием", с npy-файлами и файлом с JSON-метаданными, и выравниванием zipalignом был бы лучше. Во-первых никаких новых форматов, всё уже давно известное и в софте поддерживаемое, во-вторых использовать всё равно можно mmapом, благодаря выравниваниюи нулевому сжатию. Для распространения можно использовать пожатый архив, который для локального использования с отображением можно перепаковать на store и выравнять, а если он маленький и будет в память целиком грузиться - то можно и не перепаковывать.Это если ONNX не использовать, который содержит не просто веса, а целый граф, и просто и удобно импортируется в софт и редактируется. Я лично - за ONNX в качестве стандартного метода. Это самая удобная и полезная технология в ИИ для деплоя. Модели режутся на эмбеддинги просто и удобно в GUI-редакторе, там же и анализируется и реверсится их архитектура. Если нужно — компилятся в C код, который компилится уже в нативную библиотеку без всяких рантаймов.
И на numpy npy в статье грязная клевета. Там эта pickle опционален (для произвольных массивов, содержащих питоньи объекты, которые днём с огнём IRL не сыщещь) и её руками включать надо, потому что по-умолчанию там allow_pickle=False.
> И на numpy npy в статье грязная клевета. Там эта pickle опционален
> (для произвольных массивов, содержащих питоньи объекты, которые днём с огнём IRL
> не сыщещь) и её руками включать надо, потому что по-умолчанию там
> allow_pickle=False.Ну так бэкдор тоже - опциональный. Однако нелохов с такими опциями как раз и раздербанят. Питоняши же замечают проблему только когда уже по горло в г-не.
На ONNX там (уточняю, https://hiddenlayer.com/research/weaponizing-machine-learnin... ) тоже клевета, но уже наполовину.1. ONNX действительно позволяет исполнять свой код ... потому что кодирует вычислительный граф.
2. Но по-умолчанию все эти узлы безопасные, без ввода/вывода. Ну код там — это как чисто математическая формула в калькуляторе.
3. И вычислительный граф там не Тьюринг-полный. Если бы был Тьюринг-полный — можно было бы построить виртуальную машину и на ней попробовать атаковать железо через rowhammer. Но он не Тьюринг-полный!
4. ... если не используются кастомные расширения. Которые фреймворку ещё и реализовать надо, и каких не будет ни в одном адекватном софте для инференса.Так что предъяву к ONNX можно сделать такую же, как и предъяву к скрипту в транзакции Биткоина (каждая транзакция биткоина содержит скрипт, который выполняется каждым честным узлом, о ужас!). То есть чисто формально код выполняется, но на деле пометка ONNX как опасного — это грязная манипуляция.
> 1. ONNX действительно позволяет исполнять свой код ... потому что кодирует
> вычислительный граф.Офигенно, WMF файлы переизобрели. Привет из прошлого.
> 2. Но по-умолчанию все эти узлы безопасные, без ввода/вывода. Ну код там
> — это как чисто математическая формула в калькуляторе.Ога, а что если формула rowhammer попробует? :)
> 4. ... если не используются кастомные расширения. Которые фреймворку ещё и реализовать
> надо, и каких не будет ни в одном адекватном софте для инференса.TL;DR "это было давно и неправда!". А вот скрипт транзакции биткоина - вообще таки мало что может. По счатью. Не, он совсем не могет ничего вредного на системе юзера сделать. И даже rowhammer напряжется, из-за ценника на объем места в блоке и проч.
Кто бы мог подумать. Непонятные многогигабайтные блобы с исполняемым кодом, в которые никто не смотрит, могут содержать малварь. Удивительно.
> модели, использующие формат "pickle", могут включать сериализированные объекты
> на языке Python, а также код, выполняемый при загрузке файла, а модели Tensorflow Keras могут исполнять код через Lambda Layer.На третий день Зоркий Глаз заметил что искусстевнному мозгу надоело сочинять хомякам всякую фигню, он объявил себя покемоном и пошел захватывать мир. Прямо с вашего компа, кстати! :)
Ждем RABIDS, датакрэш и вот это вот все.
Зачем усложнять?Натренировать AI, чтоб он сам вредоносный код сочинял,прямо на пользовательской машине. Сразу на любом доступном на машине языке. Зачем ограничивать себя питоном?
В том и дело. Существующие генеративные ml-модели выдают осмысленные результаты только когда они могут украсть существующее, уже кому-то принадлежащее. Они не создают новое.
Именно. Я что - САМ что ли должен этой модели вредоносный код писать и на блюдечке скармливать?!Идите вы.... у меня лапки!
А натренировать ее писать за меня CoC.md я конечно могу, но зачем - все ж обычно просто ctrlc/ctrlv делают.
> CoC.mdСколько смотрю ваши ответы на опеннет, никак вас в покое Code of Conduct не оставит. Хотя вещь-то нужная, не от хорошей жизни ведь его пришлось везде принимать. Командная работа - тот ещё адок, без правил тут не обойтись
Ну вот поэтому я пишу CoC а не README.md - в половине проектов его и вовсе нету.Речь-то не о нужности (в большинстве проектов на полтора васяна - не особо-то) а о том что в большинстве случаев с этим-то справляются, даже без ИИ, а вот на языках посложнее маркадуна - что-то не идет.
Все эти СоС-и нужны потому что не работает классическая фраза: "дввайте уважать друг друга, уроды е###ые!" :)
выничегонепонимаите !!!
Если есть CoC -это модно молодёжно залито смузями с гироскутера ... И как только бородатые кодеры выйдут из барбершопа, они сразу кинуться реализовывать прожэкт.
Работают только агрессивные баны придурков. Особенно тех, кто начинает разборки "это нарушение CoC — нет, ты сам нарушил!", и наличие CoC как раз такие разборки провоцирует.
Ну и хорошо. Дам тогда ИИ "украсть" у меня код зловреда
ну хоть кто-то чувствует рыночек и понимает, что дурить инвесторов вечно не получится, хайп генеративных моделей спадает, а бабки делать надо. вот и делают, что могут. затроянить хост гораздо выгоднее сиюминутного майнинга
> делают, что могут. затроянить хост гораздо выгоднее сиюминутного майнингачем выгоднее? Намайненая сотняжка - лежит в маем кафэлечечке и она - моя.
А твоего троянца через неделю снесут вместе с моделью (и виндой или что там) и пользы от него вообще ноль будет.Майнить просто стало тяжко. На пихоне хороших результатов ждать не приходится.
ну да, трояны ж через магазин удаляются или через панель управления, это все знатьоткрою страшную тайну, кстати: через трояны можно майнить
> ну да, трояны ж через магазин удаляются или через панель управлениякакой магазин-шмагазин, reset/reinstall
ты думаешь эти дурацкие модели кто-то на локалхосте чтоль гоняет?
Впрочем такой локалхост тоже обычно так же - потому что на нем и без моделей через месяцок "вендатормозит" и прочие страдания. А тот, другой васян - за этот месяцок дура-не дура а полсотку имеет.
Хомячьё очень любит блобы из интернета запускать, у них можно поживиться кредитками и криптой. Разрабы тоже, с этих можно вытряхнуть токенов для каких-нибудь облаков, а то и популярный проект угнать.
Чувак, я не знаю как там хомячье, но в твоем случае совершенно уверен - ты этот блоб из интернета - не запустишь.Просто не поймешь как его запускают. (Да и что с ним делать дальше - тоже.)
А вот тут ты неправ, видимо, даже хомячьё поумнее тебя будет. В крайнем случае, можно найти инструкции по использованию, они буквально пошаговые.
Ну поищи, поищи.
> Ну поищи, поищи.А мне зачем? Это у тебя же сложности и зависть к хомячью, которое без проблем задействует эти блобы. Найди пошаговую инструкцию, если ты хочешь выйти хотя бы на один уровень с домохозяйками по развитию.
> А мне зачем?понятно.
Ну то есть как я и говорил - ты - не запустишь. Безопастно! От святой веры что ж ты-то не домохозяйка по развитию - никакого вреда.
Сам сначала проецируешь, что тебе сложно и не найти пошаговые инструкции с картинками для умственно отсталых, потом мне зачем-то предлагаешь их искать. У тебя всё хорошо? Ведь я же из лучших побуждений, нельзя быть таким ограниченным, как ты.
Также добавлю, что проблема с пиклами известна очень давно. И нерешаема. Потому что проблема не с пиклами, а с ЧСВ программистов.С PyTorch ещё кое-как проблему давно решили через SafeTensors (собственно под этим предлогом safetensors и запилили).
А вот с scikit-learn и ненейросетевым машобом проблему никто не решит. Есть куча либ с заинлайненными пиклами с претренированными моделями sklearn, разрабов которых всё это ниибьёт — они кое-как на коленке либу сделали (которая работает), статью написали, а на остальное всё болт положили, даже на PRы не реагируют. При этом все, кому нужна функциональность, ставят их либу с потенциальным бекдором, а не форк, где все коэффициенты пересериализованы в безопасный формат и безопасно грузятся.
Узнаю портрет товарищей учёных. Исследование проведено, результат описан, полезен, объяснён.Но мало кто понимает, что для коммерции и домашнего хозяйства нужно полученное знание преобразовать в законченный софт. Чем наука и отличается от производственной линии.
Вот кто понимает, тот и монетизирует.
А кто понимает, что это нинужна - тот сохраняет денежку (и экономит природу).
Также добавлю, что я начинал писать безопасный загрузчик пиклов pytorchа, это вполне реализуемо, но почему-то не доделал его. Главное из пикла сделать AST, и обходить уже его, проверяя все операции.
> но почему-то не доделал еговполне очевидно почему, потому что иксперт опеннет
Кто не в курсе ckpt может выполнять код на Python. В отличии от safetenzor, который не может.
> помечает модели опасными, не блокируя к ним доступУмные люди. Заставили голову включать сначала, потом уже решать делать ли. И только после делать.
Какие такие умные люди? Картинки рисует уже AI, музыку скоро будет писать AI, отзывы на сайтах проверяет AI и так далее. Очень скоро оценивать вредоносность моделей будет другая модель.
Умные люди больше не нужны, максимум - готовые за миску риса махать киркой в шахте ради тех самых редкоземельных металлов которые потом AI гоняют.
Прям удивительно как плавно человечество переходит в финал историй в духе "боролись как-то люди с роботами за место под солнцем", причем даже без борьбы.
> Прям удивительно как плавно человечество переходит в финал историй в духе "боролись
> как-то люди с роботами за место под солнцем", причем даже без борьбы.Есть теория что люди будут первым видом на этой планете СОЗДАВШИМ потомков которые его заменят.
С каких это пор ближайший общий предок Homo Sapiens и Tineola bisselliella перестал быть биологическим видом? Ведь создавать можно не только при помощи рук и ума...
>> Прям удивительно как плавно человечество переходит в финал историй в духе "боролись
>> как-то люди с роботами за место под солнцем", причем даже без борьбы.
> Есть теория что люди будут первым видом на этой планете СОЗДАВШИМ потомков
> которые его заменят.Ну, с учетом того СКОЛЬКО всего интересно может уничтожить людей в 21-ом (максимум - 22-ом) веке я думаю что уже и не важно кто там будет потомки. У нас на выбор - первичные климатические изменения, исчерпание ресурсов, и вторичные им повышение уровня моря, засухи, голод, нехватка чистой воды, переселение народов, стычки и войны за ресурсы, территорию. А кроме того эпидемии, старые политические обиды, угроза ядерной войны и уже вишенкой на торте - ИИ который захочет убить всех человеков.
Но то как весело и с визгом люди шпилят ИИ не слушая опасений "а он точно будет нам подчиняться" - ну это конечно достойно сюжета кино.
>угроза ядерной войны
>меня нисколько не бьёт(ц)
Это еще что, настоящие вредоносные модели решать человеков убивать.