Шаблон предназначен для организации безопасного обновления системы и приложений через канал связи с удаленным сервером обновлений.
Процесс обновления несмотря на мнимую простоту, полон векторов атак. Злонамеренное вмешательство на разных этапах ведет к значительным изменениям в логике работы обновляемой системы.
С точки зрения защиты стои́т сразу несколько задач:
— обеспечить безопасное соединение с источником обновления,
— проверить подлинность нового образа,
— аутентифицировать издателя,
— обеспечить корректность работы после обновления.
При этом целевая система не может тратить все ресурсы на защиту, ведь она выполняет свою первоочередную задачу — обновляется.
Важность безопасности процесса обновления исходит еще из того, что обновления требуются практически для всех систем, включая оборудования КИИ, подсистемы автомобилей, устройств Интернета вещей, серверов с миллионой базой клиентов и т.д.
Типовые цели безопасности при применении шаблона: обеспечение целостности и аутентичности данных обновлений (бинарных образов, скриптов, конфигурационных данных обновлений и т.п.) в условиях доставки этих данных через каналы связи сетей общего доступа.
Предположения безопасности отсутствуют.
Предположения и условия, при которых шаблон не может быть применен: наличие альтернативного канала доступа к хранилищу данных, который позволяет обходить установленные на основе реализации настоящего шаблона ограничения доступа.
Шаблон должен отвечать следующим требованиям:
Например, в начале 2026 года произошли две атаки, где злоумышленникам удалось скомпрометировать источник обновления. В первом случае хакеры использовали просроченные данные разработчиков, во втором им удалось получить API-ключ официального магазина Chrome Web Store. В итоге злоумышленники обновляли вредоносом приложения, которые являлись частью инфраструктуры криптокошельков. Это привело клиентов к финансовым потерям.
Другой пример — ошибки в системе после обновления. Это частая проблема. Вот, например:
— Ошибки в работе накопителей и синий экран после обновления Windows.
— Проблемы с выключением, работой рабочего стола и почты после другого обновления Windows.
— А тут, по заверениям пользователей, после обновления робот-пылесос Xiaomi S10+ отказался подавать воду во время уборки.
Чаще такие ситуации становятся результатом недостаточного тестирования разработчиками, а не целенаправленной атаки, хотя и второе не следует исключать. В любом случае нарушается доступность и стабильность систем. Поэтому необходимо поддерживать возможность отката и восстановления.
Элементы системы, реализующей шаблон:
Разграничение доступа к Временному хранилищу данных и Хранилищу данных обеспечивается реализацией шаблона «Разделение потоков данных на уровне драйвера ресурсов».
Монитор реализуется на основе шаблона «Монитор».
Взаимодействие элементов шаблона представлено на рисунке 1.

Система может находиться в одном из трех состояний конечного автомата:
Алгоритм установки обновления, реализуемый на основе шаблона:
Менеджер обновлений запрашивает проверку наличия обновлений у Загрузчика обновлений;
Загрузчик обновлений проверяет наличие обновлений и при наличии актуальной версии скачивает обновление и сопутствующую мета-информацию во Временное хранилище данных;
Загрузчик обновлений уведомляет Менеджера обновлений о загрузке файла обновления во Временное хранилище данных;
После записи обновления во Временное хранилище данных система переходит в состояние запечатывания Временного хранилища данных;
Менеджер обновлений запрашивает у Верификатора данных проверку файла обновления и метаданных;
Верификатор данных читает данные из Временного хранилища данных, проводит проверки и в случае положительного вердикта передает данные в монитор; система переходит в состояние возможности передачи данных из Временного хранилища данных;
В случае положительного вердикта Верификатор данных информирует Менеджер обновлений о том, что образ корректный;
Менеджер обновлений передает в Установщик обновлений команду на обновление устройства;
Установщик обновлений читает данные из Временного хранилища данных, выбирает один из разделов для записи обновлений, записывает файл обновлений и инициирует процедуру установки обновления. После передачи файла обновления Временное хранилище данных форматируется и переходит в стартовое состояние.
Установка произвольного ПО. Атакующий компрометирует сервер обновления (или выдает себя за него) и предлагает целевой системе любые поддельные образы для установки.
Откат обновлений. Атакующий, используя уязвимые места менеджера обновлений или сервера обновлений, предоставляет образы более старой версии. В старых версиях сохраняются известные уязвимости. При этом пользователь считает, что система обновлена.
Атака перемотки. Атакующий компрометирует менеджер обновлений и принудительно увеличивает номер текущей версии. Система думает, что она обновлена до более новой версии, чем ей предлагает сервер и отказывается от установки.
Атака бессрочного зависания. Разновидность атаки «откат обновлений», когда целевой системе предлагаются легитимные образы, которые уже были установлены на систему. Так система думает, что новых обновлений нет.
Атака бесконечных данных. Атакующий использует недостатки загрузчика обновлений и в качестве образа отправляет клиенту бесконечный поток данных, который не может обработать клиент. Например, заканчивается память на диске.
Атаки смешения (mix-and-match). Атакующие миксуют части старых легитимных образов так, чтобы получить новый, но с другими свойствами.
Компрометация ключей. Раскрытие ключей для подписи произвольных образов.
Более подробно можно почитать в документации TUF. Это открытый фреймворк для создания безопасных систем обновлений.
Поскольку шаблон использует шаблон «Монитор», применяются требования к технологии, определенные для базового шаблона;
Поскольку шаблон реализуется на основе шаблона «Разделение потоков данных на уровне драйверов устройств», применяются требования к технологии, определенные для базового шаблона;
Необходимо реализовать подходы к обеспечению корректности верификации данных обновления, в первую очередь методические и кооперационные подходы, обеспечивающие безопасность и корректность работы программного кода компонента, реализующего проверку целостности, аутентичности и актуальности данных обновления.
Поскольку шаблон реализуется на основе шаблона «Разделение потоков данных на уровне драйверов устройств», применяются ограничения, определенные для базового шаблона и шаблона «Монитор».
Допустимость модификаций шаблона должна быть обоснована при проектировании архитектуры и формировании требований, предъявляемых к системе на основе целей и предположений безопасности для этой системы.
Процесс обновления может адаптироваться в зависимости от особенностей систем. Например, при организации Over-the-Air обновлений на транспортном средстве функции из шаблона разделены между двумя элементами: часть выполняется на целевой подсистеме, остальные выводятся на выделенный элемент, так называемый, мастер обновлений. Мастер включает в себя функции «менеджера обновлений», «загрузчика обновлений», «обмена данными с внешней сетью», «верификации данных» (см. схему шаблона), хранит и использует ряд соответствующих ключей и сертификатов. На целевом элементе происходит сама установка, выполняется переключение состояния аналогичное описанному в алгоритме шаблона, область памяти разделяется на временное хранилище данных и активную область.
Это не единственный вариант распределения. Могут быть вариации, которые зависят от места хранения специфичных для автомобильной отрасли идентификаторов RxSWIN. У каждого варианта есть свои преимущества и недостатки, поэтому выбор реализации зависит от конкретных условий. Но в любых вариантах важно выполнять все задачи обновления.