В опенсорсных фреймворках машинного обучения найдены многочисленные уязвимости
Четыре уязвимости в инструментах для машинного обучения угрожают запуском произвольного кода. Хотя критической не названа ни одна из них.
Дело об уязвимых клиентах
Исследователи из группы JFrog обнаружили многочисленные уязвимости в нескольких открытых фреймворках для машинного обучения и смежном инструментарии. Речь идет о MLflow, H2O, PyTorch и MLeap.
В общей сложности исследователи выявили 22 «бага» в защищенности этих инструментов. Информация о части из них была обнародована еще в ноябре, однако тогда речь шла только о уязвимостях на серверной стороне.
Сейчас же описаны проблемы на клиентской стороне, в том числе в отдельных библиотеках, которые обрабатывают, например, безопасные форматы вроде Safetensors. Впрочем, в публикации указываются лишь четыре уязвимости.
«Компрометация ML-клиента... может обеспечить злоумышленникам широкие возможности по скрытному перемещению внутри организации. ML-клиент с высокой долей вероятности, обладает доступом к важным сервисам машинного обучения, такими как реестры моделей или пайплайны MLOps», — пишут исследователи.
Это, по их словам, может привести к раскрытию значимой информации, такой, например, как реквизиты доступа к реестру моделей, а это фактически означает, что злоумышленник сможет установить бэкдоры в хранящиеся там модели машинного обучения или обеспечить исполнение произвольного кода внутри них.
Семибалльный шторм
Уязвимости, перечисленные в исследовании, получили оценку 7,2-7,5 баллов по шкале CVSS, то есть, не являются критическими. Одной так и не присвоен индекс CVE.
Наименее опасной является CVE-2024-27132 (7,2 балла), связанная с недостаточностью очистки пользовательского ввода в MLflow; это открывает возможность для атаки межсайтового скриптинга при обработке непроверенных данных — «рецепта» из Jupyter Notebook. В конечном счете дело может закончиться запуском произвольного кода.
Уязвимость CVE-2024-6960 (7,5 балла) вызвана проблемой небезопасной десериализации в H20 при импорте непроверенной модели ML. В конечном счете это также может привести к запуску произвольного кода.
Уязвимость CVE-2023-5245 (7,5 балла) связана с проблемой обхода пути в MLeap, возникающей при загрузке сохраненной модели в архивированном формате ZIP. Это открывает возможность произвольно перезаписать файлы и обеспечить возможность запуска произвольного кода.
Наконец, в функции TorchScript в PyTorch выявлена еще одна уязвимость обхода пути, которая может вызвать DoS-состояние или обеспечить запуск произвольного кода вследствие перезаписи файлов, в том числе критических для функционирования системы. CVE-индекс этой уязвимости не присвоен.
Эксперты JFrog указывают, что ML-модели не следует загружать без проверки, даже в тех случаях, когда они подгружаются из Saftensors или других безопасных, на первый взгляд, источников.
«Модели машинного обучения — это, прежде всего, код, а код может содержать — и очень часто содержит — уязвимости, которые рано или поздно будут использованы во вред» — считает Анастасия Мельникова, директор по информационной безопасности компании SEQ. «В данном случае речь идет о достаточно рядовых ошибках, но они открывают возможность для самых разных форм компрометации модели машинного обучения».
В конечном счете, отмечает эксперт, внесенные вредоносные изменения могут оказать эффект домино на функциональность используемой модели.