NetamLoader: атака на госструктуры Азии через Windows Update

«Лаборатория Касперского» описала атаку NetamLoader на госструктуры Азии: ранее неизвестный загрузчик .NET-сборок нашли в специальной сборке Windows 10. CAB лежал в кеше обновлений рядом с легитимными компонентами Patch My PC. CVE у этой техники нет, одним патчем её не закрыть.
Коротко
- Kaspersky нашла NetamLoader в первой половине 2026 года: в телеметрии одна система госучреждения в Азии.
- В CAB было семь файлов, вредоносный код сидел только в Resources.resx, архив лежал в кеше SoftwareDistribution.
- Легитимный PatchMyPC-ScriptRunner.exe стартовал цепочку через AppDomainManager-инъекцию.
- Дальше шли обход AMSI, имплант внутри dllhost.exe, паузы до 22-28 часов и подчистка части следов.
- Канал доставки, масштаб ущерба и группа за атакой не установлены.
Что такое NetamLoader и как прошла атака на госструктуры Азии?
NetamLoader, это загрузчик .NET-сборок, которого раньше не описывали. «Лаборатория Касперского» нашла его в первой половине 2026 года на компьютере госучреждения в Азии. Компоненты распаковываются по очереди, а имплант для долговременной связи с сервером управления поднимается уже внутри dllhost.exe.
The Hacker News написала об этом 1 ноября 2026 года. Kaspersky на той же неделе разобрала цепочку, точную дату своего отчёта компания не указала. Жертвой стала не рядовая Windows 10, а сборка только для государственных организаций.
Издание допускает, что речь о Windows 10 China Government Edition, но страну Kaspersky не назвала. Это версия журналистов, не установленный факт. Привязывать атаку к конкретному государству по одному названию сборки рано.
Телеметрия «Лаборатории Касперского» показала одну скомпрометированную систему. Из этого не следует, что пострадавший был единственным: видимость могла покрывать лишь часть инфраструктуры. Неизвестно, успели ли злоумышленники забрать данные или перейти на другие машины.
Атрибуции нет. Kaspersky не связала активность с известной группой. Смотреть стоит порядок запусков, правки конфигурации и сетевое поведение, а не догадки о заказчике.
Как CAB-архив оказался в каталоге обновлений Windows?
Точный способ доставки не установлен. Исследователи подозревают компрометацию доверенного стороннего поставщика, доказательств взлома у них нет. Корректно говорить о возможной атаке на цепочку поставок ПО, а не о подтверждённом взломе Patch My PC.
CAB лежал в подкаталоге кеша пакетов Windows Update. Содержимое распаковали в папку Install того же дерева SoftwareDistribution. Администратор ждёт там временные пакеты обновлений, а не посторонний загрузчик, поэтому каталог сам работает как легенда.
Путь архива, который привела Kaspersky:
C:\Windows\SoftwareDistribution\Download\e4537a1762fcafd2fd96bfc825bad34f9db9a24
Распаковка шла сюда:
C:\Windows\SoftwareDistribution\Download\Install\
В архиве было семь файлов, четыре из них Kaspersky относит к легитимным компонентам Patch My PC, средства управления конечными точками. Вредоносный код нашли только в Resources.resx. Остальные файлы были чистыми: репутация или подпись одного EXE весь набор не разоблачила бы.
- fabric.config;
- Microsoft.HostIntegration.Connectors.dll;
- PatchMyPC-Enum.dll;
- PatchMyPC-Models.dll;
- PatchMyPC-ScriptRunner.exe;
- PatchMyPC-ScriptRunner.exe.config;
- Resources.resx.
RESX, это обычный XML-формат ресурсов .NET. В нём бывают строки, сериализованные объекты и данные Base64, сам файл не запускается. Вредоносна здесь вся связка: загрузчик читает ресурс, распаковывает его и передаёт следующие компоненты на выполнение.
Тот же перенос доверия уже разбирали в материале об атаках на цепочку поставок в dev-инструментах: знакомый продукт прикрывает файлы рядом с ним. Канал доставки NetamLoader при этом так и не установлен.
Как работает AppDomainManager-инъекция?
При AppDomainManager-инъекции чужая .NET-сборка загружается при старте легитимного приложения, если изменить его конфигурацию или параметры среды. Здесь подменили логику запуска, а не память подписанного EXE.
- Запускается легитимный PatchMyPC-ScriptRunner.exe.
- Приложение читает PatchMyPC-ScriptRunner.exe.config и загружает Microsoft.HostIntegration.Connectors.dll.
- Библиотека в том же каталоге открывает fabric.config и по ней подхватывает Resources.resx. Из ресурса достают слои XAML, сборок .NET и JSON.
Это злоупотребление штатным механизмом CLR, а не ошибка в коде Patch My PC или Windows. Запретить приложениям читать собственную конфигурацию патчем нельзя: так устроен запуск .NET.
Подпись относится к самому PE-файлу. Соседние .config и .resx в неё не входят. Бинарник остаётся подлинным, а список загружаемых сборок уже задаёт изменённая конфигурация.
Конфигурация запуска входит в поверхность атаки, особенно если программа работает с повышенными правами или приезжает через канал обслуживания парка.
Зачем NetamLoader обходит AMSI и прячется в dllhost.exe?
Вторая ступень обходит AMSI (Antimalware Scan Interface), чтобы .NET-компоненты реже попадали под проверку в памяти. Имя процесса dllhost.exe даёт импланту вывеску штатной службы Windows. Ни один из этих приёмов не делает атаку невидимой при полноценном мониторинге.
Цепочка ресурсов упакована слоями. XAML-1 загружает XAML-2, а тот достаёт сжатые и закодированные в Base64 файлы XAML-2-1 и XAML-2-2. Первый обходит AMSI. Второй несёт .NET 1 Loader и JSON-1. Дальше загрузчик расшифровывает, собирает и запускает следующую стадию.
JSON-1 делится на конфигурацию сервера управления JSON-1-c и пакет JSON-1-p. В пакете лежат сборка .NET 2 Plugin и зашифрованные XAML-шаблоны, из которых собирается XAML-3. XAML-3 поднимает имплант внутри dllhost.exe.
Перед этим .NET 1 Loader отчитывается перед сервером управления о готовности. Он же удаляет файлы, извлечённые из CAB, журналы использования CLR и записи Prefetch.
Имя dllhost.exe само по себе ничего не доказывает. На разборе смотрят полный путь, родителя, командную строку, загруженные модули и соединения. Снос Prefetch и журналов CLR не стирает MFT, USN Journal, Amcache, события Windows, Sysmon, EDR и сетевые журналы.
Имплант сначала ждёт случайные 20-40 минут. Дальше ритм зависит от ответа: после корректного ответа пауза 5-6 минут, без ответа молчание тянется 22-28 часов. Каждые 10 минут модуль проверяет, не истекло ли отведённое время.
Перед первым запросом .NET 2 Plugin читает свою конфигурацию, собирает сведения о системе из реестра Windows и убеждается, что процесс, это dllhost.exe. Затем он опрашивает сервер, получает XAML и выполняет его в изолированном AppDomain.
Kaspersky опубликовала имя сервера управления. Его ищут в DNS, proxy и firewall-логах как редкие исходящие запросы ScriptRunner и dllhost.exe к незнакомому домену, особенно после паузы в десятки минут или почти сутки.
Такой режим легко пропустить при разовом осмотре: если следить только за активными соединениями, имплант может почти сутки не подать ни одного признака жизни. Нужны журналы DNS, proxy, firewall и EDR хотя бы за несколько недель.
При чём здесь суверенные ОС?
Связь здесь прямая: собственная ОС даёт контроль над платформой, но всю работу по её защите и обновлению перекладывает на владельца. NetamLoader нашли как раз в системе для закрытого круга государственных пользователей.
Kaspersky ставит случай в ряд более широкой тенденции. Страны собирают свои операционные системы, базы данных, промежуточное ПО и облака, чтобы сами вести разработку и обновления. Обратная сторона автономии: всю экосистему теперь приходится защищать самостоятельно. Быстро выстроить зрелые процессы эксплуатации такой платформы не получится.
В августе 2026 года Bloomberg со ссылкой на осведомлённые источники написал, что Министерство государственной безопасности КНР велело части ведомств уйти с Windows 10 Government Edition на китайские дистрибутивы Linux. Причиной называли опасения за данные. Публикация не доказывает ни страну жертвы NetamLoader, ни связь атаки с этим переходом.
Для CTO вывод шире госструктур. Свой дистрибутив, внутренний репозиторий или корпоративный агент обновлений требуют контроля источников пакетов, проверки всей поставки и отдельного мониторинга конечных систем. Смена бренда ОС эту работу не отменяет.
Что проверить после атаки вроде NetamLoader?
Сверяют связку, а не один файл: .NET-приложение в каталоге обновлений, изменённую конфигурацию загрузки, необычную сборку, активность dllhost.exe и редкие выходы в сеть.
- До очистки сохраните CAB, содержимое Install, .config и Resources.resx. Зафиксируйте подписи и контрольные суммы: подпись EXE не доказывает чистоту всего набора.
- Проверьте появление .NET-приложений в SoftwareDistribution\Download и параметры AppDomainManager в конфигурациях рядом с подписанными EXE. Сверьте оба пути из разбора Kaspersky, включая подкаталог с шестнадцатеричным именем и папку Install.
- Разберите запуски dllhost.exe: путь к образу, родитель, командная строка, модули, соединения. Совпадение одного имени ничего не доказывает.
- В DNS, proxy и firewall за несколько недель найдите редкие запросы с хостов, где стартовали ScriptRunner или нетипичный dllhost.exe. Имя сервера управления берите из отчёта Kaspersky и ищите его как есть.
- Если пропали Prefetch или журналы CLR, смотрите MFT, USN Journal, Amcache, события Windows и Sysmon. Пустой удалённый журнал не значит, что запуска не было.
- Не запускайте найденный ScriptRunner «для проверки» на рабочем хосте: цепочка может ожить, выйти на сервер управления и стереть улики. Разбирайте копию в изоляции.
Команды часто сверяют версии и подписи EXE и не сравнивают соседние конфигурации с эталоном. Этот пробел закрывают контролем целостности конфигураций агентов и служебных утилит.
Защита держится на инвентаризации, поведенческом обнаружении и разборе инцидента. Регулярная оценка уязвимостей инфраструктуры находит неучтённые агенты, а симуляция целевой атаки Red Team показывает, заметит ли команда такую цепочку на практике.
Частые вопросы
Что такое NetamLoader?
Модульный загрузчик .NET-сборок, который Kaspersky впервые описала на специальной сборке Windows 10 для госорганизаций Азии. Он слоями распаковывает XAML и сборки, обходит AMSI и оставляет имплант для долговременной связи с сервером управления.
Как NetamLoader попал на заражённый компьютер?
Канал доставки неизвестен. CAB лежал в кеше пакетов Windows Update, в подкаталоге Download с шестнадцатеричным именем, а файлы извлекли в Install. Компрометацию стороннего поставщика подозревают, но не доказали, поэтому взлом Patch My PC утверждать нельзя.
Что такое AppDomainManager injection простыми словами?
Легитимное .NET-приложение читает изменённую конфигурацию и само загружает чужую сборку. Подписанный EXE при этом может остаться нетронутым.
Кто стоит за атакой NetamLoader?
Неизвестно. Kaspersky не привязала активность к известной группе. Догадка The Hacker News про Windows 10 China Government Edition не называет ни страну жертвы как факт, ни заказчика.
Существует ли патч от NetamLoader?
Отдельного CVE и исправления нет: используются штатные механизмы .NET и доверенные файлы. Закрывать технику приходится контролем конфигураций, поведенческим мониторингом и разбором цепочки запуска.
Кто пострадал от атаки NetamLoader?
В телеметрии Kaspersky видна одна система азиатского госучреждения. Страна, число остальных жертв и факт кражи данных не раскрыты.
Если нужно проверить, заметит ли защита такую цепочку в доверенных каталогах, HirexTech проведёт симуляцию целевой атаки Red Team и разберёт результат вместе с вашими инженерами.