Отказ от ответственности: ничто в этом блоге не имеет отношения к повседневной работе автора. Контент не является аффилированным лицом и не спонсируется какими-либо компаниями.

Ссылка на оригинал https://toooold.com/2021/09/08/hide_malware_deep_learning.html

Ссылка на китайскую версию https://toooold.com/2021/09/05/hide_malware_ann.html

Глубокие нейронные сети растут в размерах, и многие из этих параметров являются избыточными, поэтому умные хакеры могут изменить некоторые из этих параметров, чтобы скрыть вредоносное ПО. В этом блоге мы представляем статью о сокрытии произвольных двоичных файлов в глубоких нейронных сетях, понимаем причины этого и обсуждаем его обнаружение и состязательную атаку.

Блестящая идея

В этом блоге представлена ​​интересная статья Ванга и др. «EvilModel: сокрытие вредоносного ПО внутри моделей нейронных сетей». Он сочетает в себе глубокое обучение и знания о вредоносных программах и использует уловку с плавающей точностью в нейронной сети для успешного скрытия произвольных двоичных файлов вредоносных программ (полезных нагрузок) при сохранении стабильной точности. Этот метод широко распространен и прост, практичен и достаточно малозаметен, чтобы дать новые идеи для обнаружения вредоносных программ и APT, а также для состязательных атак. Тема статьи отличается от других состязательных атак на нейронные сети искусственного интеллекта тем, что в ней глубинная нейронная сеть рассматривается как канал для сокрытия и доставки вредоносного ПО, а не как состязательное обучение, которое пытается обмануть сетевую модель, неверно классифицируя, пропуская или скрывая определенные шаблоны паттернов. модель, вызывающая ошибочную классификацию в конкретных ситуациях.

Стеганография - вечнозеленая тема в сфере безопасности. На протяжении многих лет он предлагает множество практических методов сокрытия двоичных файлов: двоичные файлы можно скрыть через разделы файлов в файлах изображений; двоичные файлы можно скрыть с помощью знаков препинания и комбинаций символов в текстовых файлах; аудио, видео и другие пространственные или частотные ситуации больше подходят для стеганографии. В связи с тем, что основные поставщики продвигают глубокую гонку вооружений в моделях, появляются десятки миллиардов параметров и сотни моделей ГБ, исследователи интеллектуальной безопасности задались вопросом, смогут ли они скрыть несколько вредоносных программ в этих моделях. Да, это отправная точка статьи. Модели искусственного интеллекта большинства компаний теперь развертываются без аудита кода, а большие платформы искусственного интеллекта также несут высокопроизводительные и неограниченные графические процессоры, даже если не для проведения APT-атак, почему бы просто не добыть немного XMR для получения прибыли?

Как

Документ EvilModel объединяет несколько общих и, казалось бы, нетривиальных точек знания, чтобы скрыть произвольный двоичный код простым и эффективным способом: полносвязный уровень (FC) нейронной сети имеет большую избыточность информации в его 32-битных плавающих -point, а изменение битов экспоненты на 3 байта имеет незначительное влияние на точность. Даже в сети с меньшим количеством параметров, такой как AlexNet, в которой всего 4096 нейронов на один уровень FC, 6400 соединений первого уровня FC на нейрон могут хранить 18,75 КБ двоичных файлов. То есть изменения весов только одного нейрона более чем достаточно для дроппера вредоносного ПО, а изменение весов большего количества нейронов может помочь в сокрытии всего арсенала атак вредоносного ПО.

Аналогичная работа упоминается в статье Лю и др. «StegoNet: превратить глубокую нейронную сеть в Stegomalware», но в этой статье рассматривается другой путь для более общего и более практического подхода: одинаков ли эффект сокрытия для каждого уровня FC? может ли пакетная нормализация (BN) помочь скрыть полезную нагрузку? Как эффективно заменить байты и максимально увеличить коэффициент сокрытия? Как дополнительное повторное обучение может компенсировать потерю точности? В документе представлен алгоритм «быстрой замены» для ответа на эти вопросы с практическими результатами, а его метод очень прост: в соответствии с предопределенными злоумышленником правилами выборки заменить 3 байта весового параметра в нейронах уровня FC, проверить потерю точности. пока не станет слишком много потерь после замены более половины нейронов, например, точность упадет с 94 процентов до менее чем 90 процентов. Затем веса этих замененных нейронов замораживаются, а остальные нейроны корректируются для повторного обучения, чтобы восстановить как можно большую точность, например, чтобы потери не превышали 1%.

Результаты экспериментов в документе показывают, что небольшие сети с небольшим количеством параметров и неглубокими слоями, такие как AlexNet, могут доставлять и полностью восстанавливать 38,7 МБ произвольных двоичных файлов вредоносного ПО, что почти достаточно, чтобы предоставить все возможности для расширенного вторжения, тогда как более глубокие сети с большим количеством параметров, таких как VGG и ResNet, можно встраивать все больше и больше полезных данных. Подход, описанный в документе, работает для сетей с полносвязным слоем (FC), независимо от того, обучены ли они внутри компании или предоставлены третьей стороной.

Почему необоснованная эффективность

Нейронные сети, как и другие векторы стеганографических подходов, обладают высоким уровнем информационной избыточности. Чем больше глубина и сложность сетевой структуры, тем больше она становится избыточной, поскольку пространство поиска, которое она представляет, расширяется в геометрической прогрессии. С точки зрения пространства поиска, каждый параметр в нейронной сети эквивалентен принятию размерного решения типа «да или нет», где «N» параметров - это «N» -мерный куб с «2 ^ N» вершинами. Например, такая сеть, как ResNet50, которая сейчас считается небольшой и неглубокой, по-прежнему имеет 25 миллионов параметров с вершинами «2²⁵⁰⁰⁰⁰⁰⁰», не говоря уже об этих гипермасштабируемых нейронных сетях с десятками миллиардов параметров. И эти вершины соответствуют небольшому колебанию положения гиперпространства, например 3-байтовому колебанию 32-битного прецизионного веса, влияние на все пространство поиска незначительно.

Здесь вводится обрезка веса, чтобы определить, какие части являются лишними, и устранить их. Его можно проследить до работы LeCun et al. В конце 1980-х годов «Оптимальное повреждение мозга». В статье ЛеКуна подход заключался в проверке значимости каждого веса после тренировки модели, определяемой как влияние возмущения этого веса на функцию потерь, а затем установка значимости самого низкого веса на 0 и повторное обучение. Также было проведено много исследований по сокращению веса, и есть несколько отличных реализаций с открытым исходным кодом. Можно поучиться по ссылкам и получить удовольствие от учебника по сокращению веса в PyTorch.

Обнаружение и состязательная атака

С точки зрения безопасности подход, описанный в статье, реализует «доставку полезной нагрузки» в модели цепочки уничтожений с использованием канала развертывания модели глубокой нейронной сети, который просто скрывает полезную нагрузку в файле развертывания нейронной сети без дополнительного доступа к сети, поэтому общий подход к обнаружению для Также возможна доставка полезной нагрузки. Кроме того, вредоносный двоичный файл должен быть извлечен и выполнен из нейронной сети, а его извлечение и исполняемый код могут быть обнаружены с помощью аудита кода.

С точки зрения нейронной сети в документе предлагаются два подхода: либо для точной настройки весов и продолжения обучения, чтобы встроенная двоичная полезная нагрузка не могла быть восстановлена, либо для проверки целостности модели и получения и использования ее из надежного источника. Однако соответствующие контрмеры найти не очень сложно: в экспериментах, описанных в статье, не использовалось избыточное кодирование двоичного файла, поэтому отклонения от точной настройки в нескольких байтах могут привести к невозможности восстановления исходного файла, тогда как нейронная сеть может размещать файл достаточно большого размера, чтобы иметь адекватные меры противодействия тонкой настройке, если злоумышленник может пожертвовать некоторым пространством и добавить избыточность кодирования в двоичный файл; при тонкой настройке обычно снижается на несколько уровней ближе к softmax, поэтому злоумышленник может намеренно обойти эти уровни и использовать более ранние уровни FC, чтобы скрыть полезную нагрузку; злоумышленник также может обучиться этому, выбрав соответствующие функции GAN, чтобы модель была более устойчивой к изменению весов в определенных местах, определенных злоумышленником. Что касается целостности модели, различные структуры глубокого обучения и стандарты формата ONNX теперь обеспечивают только базовый уровень проверки целостности файлов, в то время как сама сеть хранит свою структуру и веса в виде открытого текста, а ее система развертывания часто игнорирует спецификации DevSecOps, такие как аудит кода, независимо от того, он строит внутреннюю модель или отравляет стороннюю модель, или даже публикует предварительно обученную сеть с вредоносным кодом на github. По любому из этих каналов злоумышленник может легко скомпрометировать и доставить полезную нагрузку.

Резюме

Избыточность параметров, используемая в статье, является фундаментальным знанием нейронных сетей. Мы рекомендуем всем читателям больше узнать и ознакомиться с теорией, лежащей в основе алгоритмов. Многие исследователи в области безопасности утверждают, что являются экспертами в моделях глубокого обучения, но лишь немногие специалисты по данным и инженеры, которые работают или исследуют модели глубокого обучения, хорошо понимают безопасность, и еще меньше людей имеют и то, и другое одновременно. Было бы идеально, если бы исследователи в области безопасности могли больше узнать и понять теоретические основы алгоритмов и машинного обучения, что позволило бы им получать более многопрофильные результаты.

Ссылка

* EvilModel: сокрытие вредоносных программ внутри моделей нейронных сетей https://arxiv.org/abs/2107.08590
* Оптимальное повреждение мозга http://yann.lecun.com/exdb/publis/pdf/lecun- 90b.pdf
* StegoNet: превратите глубокую нейронную сеть в вредоносное ПО https://dl.acm.org/doi/10.1145/3427228.3427268
* Учебник по уменьшению веса PyTorch https: // pytorch .org / tutorials / intermediate / pruning_tutorial.html