Clear Sky Science · ru
Безопасная генерация тестовых данных для нескольких сторон с помощью генеративных состязательных сетей
Почему важны более умные программные тесты
Современные фабрики, энергосети и промышленные предприятия работают на сложном программном обеспечении, которое должно безошибочно обмениваться данными по цифровым сетям. Небольшая ошибка в том, как две системы пересылают сообщения, может привести к поломкам оборудования, инцидентам с безопасностью или кибератакам. При этом тестовые данные, нужные для обнаружения таких скрытых ошибок, часто разбросаны по разным организациям и защищены правилами приватности и корпоративной тайной. В этой статье предлагается новый способ для компаний совместно генерировать мощные тестовые случаи, не передавая свои исходные конфиденциальные данные.

Проблема тестирования в взаимосвязанном мире
Традиционные инструменты тестирования программного обеспечения создавались в более простую эпоху, когда одна команда контролировала большую часть кода и данных. Сегодня промышленные сети выглядят иначе: устройства от множества поставщиков, использующие строгие протоколы связи, распределены по заводам, коммунальным службам и поставщикам. Каждая организация видит только часть трафика, а законы или контракты часто запрещают объединять логи. В результате наборы тестов, построенные в изоляции, могут пропустить редкие сочетания сообщений, которые возникают только при взаимодействии систем разных владельцев. Существующие инструменты приватности, размывающие или удаляющие чувствительные поля, тоже не всегда помогают: если чрезмерно «обобщить» данные протокола, сообщения перестают быть валидными и уже не годятся для реалистичного тестирования.
Коллаборативная, но ориентированная на приватность тестовая рамочная система
Исследователи предлагают FAT-CG — рамочную систему, которая позволяет нескольким сторонам совместно обучать генератор тестовых данных, сохраняя при этом в тайне детальные протокольные трассы. На локальном уровне каждый участник очищает и анонимизирует свои данные, затем подаёт их в автокодировщик — тип нейронной сети, который сжимает сообщения в компактные числовые представления. Эти представления достаточно богаты, чтобы сохранить грамматику и структуру промышленных протоколов, но уже не раскрывают необработанные адреса или собственнические значения. Вместо пересылки логов организации обмениваются только зашифрованными обновлениями модели. Центральный координатор использует специальную криптографию (гомоморфное шифрование) и аккуратно добавляемый шум (дифференциальная приватность), чтобы объединять эти обновления в более сильную общую модель, не имея возможности восстановить исходный трафик какого-либо участника.
Обучение машин создавать мощные тестовые случаи
В основе FAT-CG лежит генеративно-состязательная сеть (GAN) — пара нейронных сетей, соперничающих друг с другом. Одна сеть, генератор, пытается создавать новые протокольные сообщения; другая, дискриминатор, пытается отличить реальные сообщения от поддельных. Со временем это соревнование заставляет генератор выучивать тонкие закономерности структуры валидных сообщений. FAT-CG вносит ещё одну новацию: формальные описания правил протокола используются для проверки каждого сгенерированного сообщения, а нарушения наказываются во время обучения. Это делает синтетический трафик и реалистичным, и разнообразным. Система работает по циклу: сгенерированные сообщения направляются в симуляцию промышленных устройств в песочнице. Любые случаи, которые вызывают сбои, утечки памяти или странные ответы, возвращаются в процесс обучения, подталкивая генератор в наиболее перспективные области пространства поиска.

Приватность, скорость и обнаружение ошибок в реальных тестах
Команда протестировала FAT-CG на нескольких распространённых промышленных протоколах, включая Modbus-TCP и OPC UA, используя реалистичную конфигурацию с несколькими периферийными устройствами и центральным сервером. По сравнению с существующими инструментами fuzzing и более простыми методами федеративного обучения новый подход генерировал тестовые сообщения, соблюдающие правила протокола более чем в 90% случаев, и выявлял почти в три раза больше аномалий на тысячу тестов. В то же время многоуровневая защита значительно уменьшила риск того, что злоумышленник сможет восстановить тренировочные данные по общим обновлениям модели. Сжимая признаки протоколов в небольшие структурированные коды перед шифрованием, система также сократила объём передаваемых данных почти в 30 раз, укоротив раунды обучения и сделав метод практичным для сетей с ограниченной пропускной способностью в промышленной среде.
Что это значит для критически важных систем
Проще говоря, эта работа показывает: компаниям, управляющим критической инфраструктурой, не приходится выбирать между сохранением приватности данных и тщательным тестированием систем. FAT-CG предлагает способ, позволяющий множеству сторон объединить свои знания о реальном поведении сетей, не передавая при этом чувствительные логи. В результате получается общий генератор тестов, лучше «говорящий» на языке промышленных устройств и лучше провоцирующий опасные краевые случаи — то самое средство, которое нужно для обнаружения уязвимостей до того, как они вызовут сбои или аварии. Хотя исследование фокусируется на промышленных протоколах, те же идеи могут пригодиться и в других чувствительных областях, таких как здравоохранение или финансы, где организации должны сотрудничать в вопросах безопасности и надежности, не жертвуя конфиденциальностью.
Цитирование: Wang, Z., Zhao, L., Meng, F. et al. Secure multi-party test case data generation through generative adversarial networks. Sci Rep 16, 5085 (2026). https://doi.org/10.1038/s41598-026-35773-2
Ключевые слова: тестирование промышленного программного обеспечения, федеративное обучение, генеративные состязательные сети, конфиденциальный ИИ, fuzzing сетевых протоколов