Плата с OLED-экраном, отображающим зелёный текст, лежит на антистатическом коврике. Паяльный щуп касается золотой дорожки, тонкая струйка дыма поднимается в тёплом свете лампы.


Последние два года я воспроизводил бэкдор-атаки на нейросети - BadNets, TrojanNN, targeted poisoning через отравление обучающей выборки - и каждый раз Neural Cleanse или STRIP ловили аномалию: выброс в распределении весов, нехарактерный паттерн активаций, отклонение в норме L2 конкретных нейронов. Работа Goldwasser et al. перевернула эту картину. Авторы формально доказали существование бэкдоров, которые не способен обнаружить ни один вычислительно эффективный алгоритм - даже при полном white-box доступе к весам модели и обучающим данным. Ограничение: доказательство работало для однослойных random ReLU-сетей, архитектур без практического значения. Свежее исследование "Backdoor Channels Hidden in Latent Space" переносит конструкцию на ResNet18 и Vision Transformer и показывает: ни Neural Cleanse, ни fine-pruning, ни parameter clipping, ни parameter noise injection не нейтрализуют атаку без полного уничтожения полезности модели.

Зачем атакующему необнаружимый бэкдор в ML-модели​

Цепочка поставок ML создаёт вектор для внедрения, которого нет в классическом ПО. Организации всё чаще используют Machine Learning as a Service (MLaaS), доверяя обучение моделей внешним провайдерам, загружая предобученные foundation-модели из открытых хабов, применяя сторонние датасеты без полного аудита. В терминах MITRE ATT&CK это Compromise Software Supply Chain (T1195.002, Initial Access) - атакующий получает доступ к модели на этапе разработки или fine-tuning и внедряет бэкдор, который спокойно переживает деплой.

Финальный импакт - Data Manipulation (T1565, Impact): модель корректно проходит все валидационные тесты, но выдаёт контролируемый атакующим результат при появлении триггера. В медицинской диагностике - ложный диагноз по команде. В системах контроля доступа - верификация произвольного лица при определённом визуальном сигнале. Исследование прямо указывает на риски для клинических диагностических инструментов, демонстрируя атаку на стандартизированных биомедицинских изображениях.

OWASP классифицирует этот вектор как LLM04:2025 - Data and Model Poisoning. По данным CrowdStrike Global Threat Report 2025, вредоносное использование GenAI удвоилось за 2024 год - ML-модели стали одновременно и инструментом, и мишенью. Чем больше организаций зависят от внешних ML-pipeline, тем шире поверхность атаки. Тут арифметика простая.

До сих пор большинство backdoor attack machine learning - от BadNets до TrojanNN - оставляли статистический след, который ловился через анализ распределения весов или реверс-инжиниринг триггера. Новый класс атак, построенный на криптографических гарантиях, делает post-hoc инспекцию бесполезной по определению.

Теоретический фундамент: как sparse PCA делает white-box атаку на нейросеть неразрешимой​

1783964170587.webp

Два уровня необнаружимости бэкдоров в нейронных сетях​

Goldwasser et al. предложили две принципиально разные конструкции. Разница между ними определяет границы возможного для защитника.

Первая - black-box необнаружимость: в модель встраивается параллельная цепь верификации цифровой подписи. Входные данные интерпретируются как пары "сообщение + подпись"; бэкдор срабатывает только при наличии валидной подписи под скрытым ключом. Ни один алгоритм с oracle-доступом к модели (вход -> выход) не отличит её от чистой. Но при white-box инспекции верификационная логика видна в весах - это не скрытый триггер, а явно встроенная схема.

Вторая конструкция достигает white-box необнаружимости для random ReLU-сетей. Неразличимость доказывается сведением задачи обнаружения бэкдора к задаче sparse PCA - определению наличия разреженного главного компонента в ковариационной матрице. Sparse PCA считается вычислительно сложной: при определённых соотношениях размерности и разреженности ни один полиномиальный алгоритм не отличает матрицу со скрытым компонентом от чистого шума. Обе конструкции работают только для стилизованных архитектур - random ReLU-сетей и Random Fourier Feature моделей. Красивая теория, но без практического применения.

Spiked covariance и распределение Марченко-Пастура​

Формально бэкдор описывается через модель spiked covariance. Пусть ковариационная матрица весов чистой модели - Σ\_clean. Тогда ковариационная матрица бэкдор-модели:

Σ\_backdoor = Σ\_clean + θ * v * v^T

где θ - амплитуда spike (сила бэкдора), v - направление в пространстве весов, кодирующее скрытый триггер.

Распределение Марченко-Пастура описывает предельное поведение собственных значений случайных ковариационных матриц большой размерности. Для нейронных сетей с миллионами параметров собственные значения весовой ковариации плотно покрывают определённый интервал с верхней границей, определяемой соотношением числа параметров к числу степеней свободы. Фазовый переход Baik-Ben Arous-Peche (BBP) устанавливает критический порог: если θ ниже него, spike статистически неотличим от естественных флуктуаций спектра. Бэкдор прячется внутри "шума" весовых параметров.

Для современных нейросетей размерность пространства параметров - миллионы. Это колоссальный запас для маскировки: модификация весов, значительная по абсолютной величине, остаётся спектрально невидимой, если распределена по достаточному числу измерений и spike-амплитуда удерживается ниже BBP-порога.

Как отмечают Kalavasis et al., Goldwasser et al. "оставляют открытым вопрос о том, возможна ли необнаружимость для общих классов моделей". Именно этот разрыв между теорией и практикой закрывает исследование "Backdoor Channels Hidden in Latent Space".

Троянские атаки на ML модели через латентное пространство​

📚 Часть контента скрыта. Этот материал доступен участникам сообщества с рангом One Level или выше
Получить доступ просто — достаточно зарегистрироваться и проявить активность на форуме

Этап 1: обучение чистой модели. Модель обучается стандартным образом на целевом датасете. Атакующий получает корректно работающую сеть с нормальными метриками.

Этап 2: извлечение CAV. Из небольшого набора примеров целевого класса - по данным исследования, достаточно малого числа сэмплов из сходного распределения - вычисляется CAV на предпоследнем слое. Полный доступ к обучающему датасету не обязателен, хотя в MLaaS-сценарии он часто есть.
Python:
# Пример для демонстрации концепции - требует адаптации под архитектуру
def extract_cav(model, layer_name, target_samples, other_samples):
    acts_target = get_activations(model, layer_name, target_samples)
    acts_other = get_activations(model, layer_name, other_samples)
    X = np.concatenate([acts_target, acts_other])
    y = np.array([1]*len(acts_target) + [0]*len(acts_other))
    clf = LinearSVC()  # линейный классификатор в пространстве активаций
    clf.fit(X, y)
    cav = clf.coef_[0]
    return cav / np.linalg.norm(cav)  # нормированный CAV
Этап 3: внедрение бэкдор-слоя. В модель добавляется один линейный слой непосредственно перед классификационной головой. Архитектурная модификация минимальна - дополнительный линейный слой можно встроить в любую нейросеть. Веса слоя конструируются по модели spiked covariance: основная масса выглядит как стандартная инициализация (в рамках распределения Марченко-Пастура), но содержит скрытое направление, совпадающее с CAV. Амплитуда spike подбирается ниже BBP-порога - спектральный анализ весов аномалию не увидит.

Этап 4: оптимизация входного триггера. Триггер оптимизируется в пространстве входных данных так, чтобы активировать CAV-направление сильнее, чем любой чистый вход. Триггер может быть визуально незаметным - малый perturbation, добавляемый к изображению.

Этап 5: валидация. Проверка на чистых данных подтверждает: деградации accuracy нет. На данных с триггером модель переключается на целевой класс с высокой вероятностью.

Результат подтверждён на двух архитектурах - ResNet18 (CNN) и Vision Transformer (ViT) - на доменах от фотографий натуральных объектов до стандартизированных биомедицинских изображений. Исследование фиксирует "consistently high success rates with negligible clean accuracy degradation""стабильно высокие показатели успешности с незначительным снижением точности" и кросс-архитектурную обобщаемость: механизм не привязан к конкретному inductive bias.

Обнаружение бэкдоров в нейросетях: провал стандартных защит​

1783964192846.webp

Neural Cleanse и спектральные методы trojan detection neural network​

Neural Cleanse (Wang et al., IEEE S&P 2019) - де-факто стандарт обнаружения бэкдоров. Для каждого класса алгоритм ищет минимальный perturbation, превращающий любой вход в этот класс. Класс с аномально малым perturbation маркируется как целевой класс бэкдора.

Против криптографически необнаружимых бэкдоров Neural Cleanse бесполезен. Причина: бэкдор не создаёт аномально "лёгкого" пути к целевому классу в пространстве входов. Триггер эксплуатирует направление, которое модель и так использует для классификации. Размер оптимального perturbation для целевого класса остаётся в статистически нормальном диапазоне - ложных срабатываний нет, но и бэкдор не ловится.

Fine-pruning удаляет нейроны с наименьшей средней активацией на чистых данных, предполагая, что бэкдор-нейроны "молчат" на штатных входах. Тут это не работает: бэкдор-направление совпадает с CAV - направлением, активно участвующим в разделении классов. Прунишь нейроны, задействованные в бэкдоре, - одновременно ломаешь нормальную классификацию.

Parameter clipping и parameter noise injection неэффективны по той же причине: spike по амплитуде лежит в пределах нормального распределения весов. Любой клиппинг или шум, достаточный для разрушения spike, одновременно убивает полезные параметры. Исследование подтверждает: ни один из защитных механизмов не нейтрализует бэкдор без того, чтобы модель стала непригодной. Тупик.

Неразрешимый тест гипотез как формализация безопасности машинного обучения​

Авторы исследования формализуют задачу обнаружения как тест гипотез:
  • H0: параметры модели ∼ P\_clean (распределение честно обученной модели)
  • H1: параметры модели ∼ P\_backdoor (распределение бэкдор-модели)
Проблема: оба распределения неизвестны защитнику. Эталонной чистой модели, обученной на тех же данных с той же инициализацией, не существует. Стохастичность обучения - случайная инициализация, порядок батчей, dropout - создаёт значительный разброс в параметрах даже для двух честных моделей. Бэкдор маскируется внутри этого естественного разброса.

Можно попытаться проанализировать спектр весовой ковариации, но порог BBP-перехода гарантирует, что spike-eigenvalue не выделяется:
Python:
# Демонстрация концепции: спектральный анализ весовой ковариации
W = model.backdoor_layer.weight.detach().cpu().numpy()
cov = np.cov(W)
eigenvalues = np.linalg.eigvalsh(cov)
# При правильной маскировке max eigenvalue ≤ верхней границы MP
mp_upper = (1 + np.sqrt(W.shape[0] / W.shape[1]))**2
print(f"Max eigenvalue: {eigenvalues.max():.4f}, MP bound: {mp_upper:.4f}")
# Если max ≤ mp_upper - spike неразличим от шума
Авторы конъектурируют, что этот тест гипотез вычислительно неразрешим на практике - прямое следствие сложности sparse PCA. Если конъектура верна, полиномиального алгоритма, надёжно отличающего бэкдор-модель от чистой, не существует. Точка.

Защитный механизмПринцип работыПричина провалаПобочный эффект агрессивной настройки
Neural CleanseПоиск минимального триггера per-classБэкдор не создаёт аномально "лёгкого" пути - использует естественный CAVЛожные срабатывания на чистых моделях
Fine-pruningУдаление нейронов с низкой активацией на чистых данныхБэкдор-нейроны активны и на чистых данныхДеградация accuracy до непригодности
Parameter clippingОграничение диапазона весовSpike в пределах нормального распределенияУничтожение полезных параметров
Parameter noiseДобавление шума к весамШум для разрушения spike разрушает модельМодель непригодна
STRIPПроверка энтропии при наложении входовТриггер действует через латентное направление, не pixel-patternНе детектирует латентные триггеры

Предусловия и ограничения техники​

Работает если:
  • Атакующий имеет прямой доступ к весам модели (white-box) - MLaaS, outsourced training, fine-tuning от третьей стороны, компрометация pipeline
  • Модель решает задачу классификации изображений (подтверждено для CNN и Transformer)
  • Допустима минимальная архитектурная модификация - один линейный слой перед classification head
  • Доступен небольшой набор сэмплов целевого класса из сходного распределения
Не работает если:
  • Защитник переобучает модель с нуля на доверенной инфраструктуре (бэкдор привязан к конкретному экземпляру весов)
  • Архитектура модели зафиксирована в Infrastructure-as-Code и любая модификация обнаруживается при аудите (добавление линейного слоя - явное архитектурное изменение, и это слабое место атаки)
  • Задача не классификация - генерация, regression, reinforcement learning в этой работе не исследованы
Существенные оговорки:
  • Кросс-архитектурная применимость подтверждена для ResNet18 и ViT, но не для рекуррентных, графовых или диффузионных архитектур
  • Триггер в пространстве входов требует оптимизации - для физически реализуемых сценариев (дорожные знаки, лица) нужна дополнительная работа по переносу perturbation в физический мир
  • Исследование констатирует "negligible clean accuracy degradation", но конкретные числа зависят от домена и архитектуры
  • Конъектура о вычислительной неразрешимости формально не доказана для глубоких сетей - это открытый теоретический вопрос, хотя эмпирика её подтверждает

Место в цепочке атак на ML Supply Chain​

Атака встраивается в kill chain с чёткими предшествующими и последующими этапами:
  1. Resource Development (T1588.007, Artificial Intelligence): атакующий обучает или получает доступ к целевой модели, готовит инструментарий для извлечения CAV, собирает небольшой набор сэмплов целевого класса
  2. Initial Access (T1195.002, Compromise Software Supply Chain): бэкдор внедряется на этапе обучения, fine-tuning или через компрометацию ML-pipeline доставки модели
  3. Persistence (T1525, Implant Internal Image): бэкдор сохраняется в весах, проходит стандартные процедуры валидации - accuracy-тесты, regression-тесты, A/B-тестирование
  4. Stealth (T1027, T1480.001, T1564): бэкдор криптографически замаскирован в весах (Obfuscated Files or Information), активируется при определённом входном триггере (Environmental Keying), артефакты скрыты в естественной геометрии латентного пространства (Hide Artifacts)
  5. Impact (T1565, Data Manipulation): при подаче триггера модель выдаёт контролируемый атакующим результат - целевая мисклассификация
Для контекста безопасности машинного обучения эта работа имеет прямое значение. Исследование Менисова, Ломако и Дудкина (НТВ ИТМО, 2022) предлагает метод защиты нейронных сетей от бэкдор-атак через идентификацию триггеров и демонстрирует снижение эффективности атак до 3% при потере accuracy в 8-10%. Но их метод тестировался на классических бэкдорах с явными триггерами на датасетах DOTA, MNIST и LFW. Против криптографически необнаружимых бэкдоров, эксплуатирующих естественную геометрию латентного пространства, подход на основе идентификации триггеров неприменим: триггер не имеет стационарного паттерна, а бэкдор не оставляет аномалии в весах, которую можно было бы идентифицировать.

ХарактеристикаКлассические бэкдоры (BadNets, TrojanNN)Криптографически необнаружимые бэкдоры
Механизм внедренияОтравление данных или прямая модификация весов с явным паттерномЭксплуатация естественного CAV-направления через spiked covariance
Обнаруживаемость Neural CleanseДа - аномально малый perturbation для целевого классаНет - perturbation в пределах нормы
Обнаруживаемость спектральным анализомДа - выброс в распределении собственных значений весовНет - spike ниже BBP-порога
Требования к атакующемуДоступ к данным или весамWhite-box доступ к весам + малый набор сэмплов целевого класса
Теоретические гарантииНет формальных гарантий необнаружимостиКонъектурная сложность sparse PCA
Проверено на архитектурахCNN разной глубиныResNet18, Vision Transformer

Исследование "Backdoor Channels Hidden in Latent Space" показывает штуку, от которой неуютно: бэкдор-каналы - не чужеродные артефакты, а внутренние свойства обученных представлений. Большинство защитных механизмов - Neural Cleanse, STRIP, fine-pruning, спектральный анализ активаций - построены на одном допущении: бэкдор оставляет статистический след в параметрах или поведении модели. Это допущение эмпирически опровергнуто для ResNet и ViT, а теоретически обосновано через сведение к задаче sparse PCA.

Вывод, который большинство ML-security команд пока не готовы принять: полагаться исключительно на post-hoc инспекцию модели - тупиковая стратегия. Защита должна смещаться к контролю цепочки поставок - Secure ML Supply Chain, верифицируемому обучению, криптографическим attestation-механизмам для pipeline и архитектурным ограничениям, делающим внедрение дополнительного слоя невозможным на уровне Infrastructure-as-Code. По моей оценке, в ближайшие два года мы увидим переход от парадигмы "детектируем бэкдор в готовой модели" к парадигме "гарантируем, что бэкдор не мог быть внедрён на уровне pipeline". Кто этот переход не сделает - будет защищаться от угрозы, которую по определению нельзя обнаружить. А это, мягко говоря, проигрышная позиция.
 
Последнее редактирование модератором:
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🧭 Навигатор · ИБ 2026
Не знаешь, какой трек твой?
5 направлений ИБ, реальные зарплаты и точка входа для каждого — в одном треде.
JuniorSenior+
100K → 600K+ ₽ /мес
Открыть навигатор →
🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab