Сжатый pickle обходит сканеры моделей: joblib скрывает полезную нагрузку
Исследователь показал, что joblib.dump с параметром compress= прячет вредоносный pickle от picklescan 1.0.4 и ModelScan: сканер видит магические байты компрессора вместо опкодов pickle, а joblib.load прозрачно распаковывает файл и выполняет код. В открытый набор keras-model-scan добавлен joblib_pickle_scan.py, который распаковывает до четырёх слоёв в памяти и дизассемблирует внутренний pickle без исполнения.
- Сжатие zlib, gzip, bz2, xz или lz4 скрывает опкоды pickle от сканеров
- picklescan 1.0.4 и ModelScan не детектируют сжатый вредоносный joblib-файл
- Новый сканер распаковывает до 4 слоёв в памяти и не исполняет код
- Правило JLB001 ловит импорт исполняемых вызовов внутри сжатого pickle
Читать дальше
Безопасность