Подпись моделей как метод защиты от атак на цепочку поставок в MlSecOps.Возможно кто-то из вас уже наслышан о том, что реализация подписи кода и генерация SBOM являются важной составляющей классического DevSecOps. Это позволяет нам быть уверенным что файл не был модифицирован злоумышленником. Для моделей также эта проблема является актуальной. Мы должны с вами понимать, что модели могут быть модифицированы - форматы сериализации могут привносить уязвимости.
Можем вспомнить с вами недавний случай, который хорошо продемонстрировал пример того что файлы модели никак не проверялись - ПИКЛБОМБА В ТИКТОКЕ.
Что-же делать ? Ну естественно прежде всего провести анализ уязвимостей - чтобы понять есть ли проблемы.
- Уязвимости были найдены и исправлены.
- Теперь приступим к подписи.
⬇️⬇️⬇️Чтобы нам подписать модель мы можем воспользоваться замечательной утилитой, которая вышла совсем недавно в свет.
tensor-man - этот тул может подписывать модели safetensors, ONNX, GGUF и PyTorch. Придётся немножко помочить рукава в "компиляции бинаря на RUST". Я этот процесс описывать не буду, это
база можно почитать в доке тулзы.
tman create-key --private-key priv_super_key.key --public-key public_not_super_key.key
и вот мы уже с вами создаём ключики, приватный и публичный. Нам это необходимо для того чтобы мы могли их использовать для создания
tman sign /my/wonderwall.onnx -K /keys/priv_super_key.key
и верификации подписанной модели
tman verify /my/wonderwall.onnx -K /keys/public_not_super_key.key
Несомненно, можно подписать и все модели в проекте. Для этого просто в пути указываем только название директории. Самое конечно крутое, это то что утилиту можно завести и из докера, она может проводит анализ тензоров модели. А файлы с полученными сигнатурами будут иметь расширение
.signatureУ Sigstore также есть похожий тул для подписи. Подпись проходит через сам sigstore. Но он может работать с keras моделями. Я уже делал раннее файл для CI, можете воспользоваться им чтобы подписывать модельки.
Не забываем, что атаки на цепочку поставок в машинном обучении являются большой проблемой, закрытию которой надо уделять внимание. Об этом шумят все и JFrog и ProtectAI и множество статьей в первых 20 ссылках гугла по запросу "атаки на машинное обучение".
ai_sec_folder