Промышленный шпионаж с использованием файлов автоматизированного проектирования (CAD) часто окружен мифами. В широком информационном поле распространены упрощённые или некорректные формулировки, в духе «вирус заразил чертеж DWG», что создает ложное ощущение, будто вредоносный код внедряется непосредственно в бинарную структуру геометрических данных. Инженерный файл редко является «вирусом» в буквальном смысле. DWG, CDW, SLDASM, STEP, Parasolid X_T или другие форматы CAD файлов обычно содержат геометрию, метаданные и структуру проекта, а не внешнюю исполняемую программу.
Но CAD-файлы давно стали удобной точкой входа в инженерную среду. Причина проста: они постоянно пересылаются между заказчиками, подрядчиками, производством и поставщиками. Их открывают в доверенных приложениях, а сами САПР обрабатывают чрезвычайно сложные форматы и подключают расширения, библиотеки и автоматизацию. История угроз для CAD, это эволюция трёх разных классов атак: маскировка расширений, злоупотребление механизмами автоматизации и эксплуатация ошибок бинарных парсеров при обработке недоверенных данных.
Социальная инженерия: маскировка типов файлов
Самый старый и простой, но эффективный вектор, который основан на невнимательности пользователя и стандартных настройках Windows (где по умолчанию скрыты расширения для зарегистрированных типов файлов). Это соответствует технике MITRE ATT&CK T1036.007 (Double Extension).
Злоумышленники отправляют файлы с именами вида: Спецификация_оборудования.dwg.exe План_цеха_финал.dwg.lnk Сборочный_чертеж.dwg.scr. Если отображение расширений отключено в Windows, инженер видит файл Спецификация_оборудования.dwg со значком САПР. При клике запускается исполняемый файл, который выполняет вредоносный код в системе. Сам САПР при этом может даже не запускаться.
Что снижает риск: включить отображение расширений файлов, использовать антивирусы, блокировать запуск исполняемых файлов из почты, загрузок и сетевых папок, применять правила контроля приложений, обучать пользователей проверять тип файла, а не только его название и значок.
AutoCAD и эпоха AutoLISP-червей
Первый широко известный класс CAD-угроз был связан не с ошибками памяти, а с легитимной автоматизацией в AutoCAD. AutoCAD поддерживает AutoLISP (язык программирования и встроенная среда автоматизации), сценарии, макросы, меню, FAS/VLX-модули и другие механизмы расширения. В старых или небезопасно настроенных средах злоумышленники могли использовать пути поиска и файлы автозагрузки для распространения кода вместе с проектами.
Важно различать два понятия:
- данные проекта (файл dwg);
- сопутствующий файл автоматизации — код, который AutoCAD может загрузить при определённых настройках и путях поиска. Именно это было целью ранних CAD-червей.
Bursted и Dwgun
В конце 2000-х и начале 2010-х антивирусные компании фиксировали семейства AutoLISP-вредоносов, включая ALisp/Bursted и ALisp/Dwgun. Их логика была типична для червей той эпохи:
- копирование модулей в рабочие каталоги;
- изменение файлов автозагрузки;
- использование системных переменных AutoCAD;
- попытки восстановить удалённые компоненты;
- распространение через общие проектные папки и обмен DWG.
Например, переменная ACADLSPASDOC управляет загрузкой acad.lsp для документов. Изменение такой настройки могло сделать вредоносный LISP-код более «живучим» в сессиях AutoCAD.
Однако важно не переносить эту механику на все современные CAD-продукты. Поведение AutoCAD зависит от версии и настроек. Современные версии имеют настройки SECURELOAD и TRUSTEDPATHS предназначены именно для ограничения загрузки кода из недоверенных директорий.
ACAD/Medre.A: ранний публичный пример кражи CAD-документации
В 2012 году ESET сообщила о черве ACAD/Medre.A, который распространялся в среде AutoCAD и похищал инженерные файлы. Первые заметные следы кампании были зафиксированы в Перу. Исследователи связывали её с кражей документации, в том числе связанной с инфраструктурными проектами. ESET сообщала о десятках тысяч затронутых AutoCAD-файлов и об отправке данных на почтовые аккаунты, зарегистрированные у китайских провайдеров.
Механизм работы был рассчитан на AutoCAD версий 2000–2015, исследователи также предполагали, что аналогичный механизм мог работать и в последующих версиях, если логика автозагрузки не была изменена. После запуска вредоносный модуль копировал себя в каталоги AutoCAD и рабочие директории с чертежами, а затем модифицировал файлы автозагрузки AutoLISP (например, acad20xx.lsp), добавляя команду автоматической загрузки cad.fas. Благодаря этому вредоносный код запускался при каждом открытии чертежа и одновременно распространялся вместе с проектами между подрядчиками. При открытии или сохранении документов червь собирал файлы DWG, упаковывал их в защищённый паролем архив RAR и автоматически отправлял по почте. Помимо чертежей, код пытался получить доступ и к почтовым данным пользователя, что указывает на его выраженную шпионскую направленность.
Это важный исторический пример по нескольким причинам. Он показал, что CAD-червь может быть создан не ради демонстрации или массового вымогательства, а ради сбора интеллектуальной собственности. Этот вектор атаки использовал естественный для проектной среды канал распространения: обмен файлами между инженерами, подрядчиками и организациями. А а его успех зависел не от «магии внутри DWG», а от связки AutoCAD-автоматизации и небезопасных путей загрузки.
Ошибки в парсерах инженерных форматов
По мере роста сложности CAD-экосистем заметной поверхностью атаки стали парсеры и трансляторы форматов. Современная САПР должна обрабатывать не только нативные форматы данных (собственные) но и форматы обмена между разными вендорами.
Открытие форматов обмена (например STEP, X_T) представляет собой импортёр - это большой объём кода, который разбирает недоверенные входные данные, описанные спецификацией формата. Ошибка в проверке длины массива, указателя или структуры файла может привести к нарушению памяти процесса. Примеры ошибок:
- Out-of-bounds Read/Write - чтение или запись за границами выделенного буфера;
- Heap-based Buffer Overflow - переполнение памяти в куче;
- Use-after-free - использование уже освобождённого участка памяти;
- Missing Data Validation - недостаточная проверка входных данных.
Схема выглядит так: специально сформированный CAD-файл открывается в САПР через парсер / импортер / транслятор. Ошибка обработки структуры данных приводит к сбою приложения, утечки данных из памяти или потенциальное выполнение кода.
Сама ошибка выполнения не равна взлому. Наиболее частый видимый результат — аварийное завершение CAD-приложения. Инженер теряет несохранённую работу, а процесс приходится перезапускать. Чтобы превратить ошибку памяти в устойчивое выполнение кода, атакующему обычно требуется преодолеть дополнительные барьеры.
Siemens NX и Parasolid: реальные примеры parser-based уязвимостей
Публичные бюллетени Siemens ProductCERT хорошо иллюстрируют этот класс угроз. В августе 2024 года Siemens опубликовала advisory по CVE-2024-41908: уязвимость out-of-bounds read при чтении файлов .prt в NX до версии V2406.3000. Siemens указывает, что открытие специально сформированного файла может привести к аварийному завершению приложения и потенциально к выполнению произвольного кода на целевой системе.
Другой характерный пример — уязвимости обработки формата Parasolid X_T. В 2022 и 2023 годах Siemens публиковала advisories по ошибкам разбора X_T и NEU: специально подготовленный файл мог вызвать отказ в обслуживании или выполнение кода в контексте текущего процесса.
В феврале 2026 года Siemens также раскрыла CVE-2026-22923 для NX: недостаточная валидация данных в процессе экспорта PDF могла при локальном доступе к уже скомпрометированной системе привести к вмешательству во внутренние данные и потенциальному выполнению кода.
Эти примеры показывают важную вещь: поверхность атаки CAD это не только импорт файлов. Это также просмотр, трансляция, экспорт, визуализация и вспомогательные библиотеки геометрического ядра.
Автоматизация, плагины и цепочки поставок
Не все атаки на CAD используют уязвимости. Иногда злоумышленнику проще скомпрометировать среду автоматизации. В инженерных организациях обычно есть:
- корпоративные шаблоны;
- библиотеки стандартных элементов;
- надстройки;
- макросы;
- COM/API-интеграции;
- скрипты для PDM, ERP и спецификаций;
- утилиты конвертации;
- сетевые каталоги с общими настройками.
Риск возникает, когда атакующий получает право записи в один из таких доверенных каталогов или убеждает инженера установить непроверенное расширение.
CAD файлы не следует считать аналогом Word-документа с автоматически исполняемым VBA-макросом. Макросы это почти всегда отдельные файлы или надстройки. Их выполнение зависит от явного запуска, активации надстройки или корпоративной автоматизации.
Для КОМПАС-3D применима та же логика: наличие API, внешних скриптов и интеграций создаёт определенный риск. Но простое открытие модели не означает автоматический запуск произвольного Python-кода из папки проекта. А вот запуск отдельных макросов полученных из неизвестных источников - может.
Антивирусные системы не всегда могут однозначно интерпретировать макросы и скрипты, особенно в инженерном ПО. Один и тот же макрос может длительное время считаться безопасным, а затем спустя годы начать детектироваться как подозрительный или вредоносный. Это связано не с «изменением самого кода», а с эволюцией методов анализа: появлением новых сигнатур, эвристик, поведенческого анализа и репутационных систем. Например, легитимный макрос для генерации зубчатых колёс может быть помечен как потенциально нежелательный лишь частично (несколькими вендорами из десятков), если его структура или способы выполнения совпадают с паттернами известных атакующих скриптов. Поэтому единичное или частичное срабатывание антивирусов не всегда является доказательством вредоносности, но является сигналом для дополнительной проверки контекста происхождения и поведения файла.
Потенциальные риски развития AI-функций в CAD/PDM
Интеграция AI-ассистентов и агентных систем в CAD/PDM-среды (анализ моделей, генерация чертежей, поиск по проектам, автоматизация операций) создаёт новый класс рисков, связанный не столько с традиционными уязвимостями файлов, сколько с расширением доверенной зоны и прав доступа. Основная опасность возникает в сценариях, где AI получает доступ к корпоративным данным (геометрия, спецификации, PDM-хранилища, переписка) и одновременно — возможность выполнять действия от имени пользователя или системы. В таких условиях недоверенный контент (например, описание файла, комментарии, PDF или внешние данные) может использоваться для prompt-injection, заставляя систему извлекать, преобразовывать или передавать чувствительную информацию вне предполагаемого сценария. Дополнительный риск связан с облачной обработкой CAD-данных, где вопросы хранения, региона обработки, логирования и использования телеметрии становятся критичными с точки зрения утечки интеллектуальной собственности. В итоге AI-функции в CAD/PDM следует рассматривать как особый компонент инфраструктуры, требующий строгого разделения прав, контроля исходящих операций и ограничений на доступ к корпоративным хранилищам.
Практический минимум защиты CAD-среды
- Обновите ПО. Обновление является базовым элементом безопасности CAD-среды. Рекомендуется использовать поддерживаемые версии программного обеспечения и регулярно устанавливать все доступные обновления безопасности (security patches) для текущей версии продукта. Критические исправления могут устранять не только функциональные ошибки, но и уязвимости, связанные с обработкой входных данных, импортом файлов и работой API. Обновления необходимо применять не только к основной CAD-системе, но и ко всем связанным компонентам: модулям визуализации, импорта/экспорта, серверным сервисам конвертации, PDM/PLM-инфраструктуре, библиотекам и сторонним плагинам. Использование неподдерживаемых (EOL) версий существенно увеличивает риск эксплуатации известных уязвимостей.
- Непроверенное ПО. Программы из неизвестных источников, плагины и конвертеры следует сначала устанавливать и тестировать в изолированной среде: отдельной виртуальной машине или выделенной физической станции. Такая среда не должна содержать рабочие чертежи, доступ к PDM/PLM, корпоративные учётные данные, сетевые диски, ключи лицензирования и иные чувствительные данные. Исходящие сетевые соединения следует запретить по умолчанию либо разрешать только через контролируемый прокси или правила межсетевого экрана. Во время тестирования полезно контролировать создаваемые процессы, изменения файлов и реестра, попытки закрепления в автозагрузке, обращения к сети и загрузку драйверов. После проверки виртуальную машину следует откатить к чистому снимку или удалить.
- Облачное ПО. Например Fusion, нужно принимать риск не только взлома рабочей станции, но и риск облачного поставщика, его подрядчиков, ошибок доступа, юридических запросов и неправильной настройки прав. Избегайте такие решения при работе с важными проектами представляющие коммерческую тайну. Не загружать данные в публичный SaaS-контур без отдельной юридической, ИБ- и контрактной оценки.
- Разделять доверенные и внешние данные. Файлы от подрядчиков или внешних источников не должны сразу попадать в мастер-сборки и общие библиотеки (изолированное открытие, антивирусная проверка, конвертация в контролируемой среде).
- Отдельная проверка макросов и средств автоматизации. Для AutoCAD следует контролировать TRUSTEDPATHS, SECURELOAD и пути поддержки. Для других CAD каталоги надстроек, шаблонов, библиотек и скриптов. Обычные инженеры не должны иметь право записи в общие каталоги, из которых приложения автоматически загружают расширения.
- Ограничить права CAD-процессов. Приложения не должны запускаться с локальными административными правами без необходимости. Ограничение прав пользователя уменьшает последствия даже успешной эксплуатации ошибки памяти. Не отключайте стандартный "Контроль целостности памяти" в настройках безопасности Windows.
- Контролировать исходящие соединения. NAT сам по себе не блокирует исходящие HTTPS-соединения. Поэтому нужны грамотные настройки сети, фаервол, фильтрация исходящего трафика, журнал событий и наблюдений и т.д.
- Подозрительный файл можно проверять по SHA-256-хешу на репутационных сервисах. Загружать сами файлы DWG, STEP и т.п. на публичный сервис рискованно: это может раскрыть интеллектуальную собственность. Так же как и использование онлайн конвертеров и вьюверов.
Вывод
История CAD-угроз - это переход от простых AutoLISP-червей и маскировки файлов к сложным цепочкам атак из импортёров, геометрических библиотек, плагинов и инженерных цепочек поставок.
Главная ошибка воспринимать CAD-файл либо как заведомо безопасные «данные», либо как магический «вирусный чертёж». На практике риск определяется тем, какой код обрабатывает файл, из какого источника он пришёл, какие расширения доверены средой и насколько часто вы устанавливаете обновления.
Используя функцию входа через сторонние сервисы, Вы соглашаетесь на обработку персональных данных в соответствии с Политикой конфиденциальности