При работе с платформой «1С:Предприятие» каждый технический специалист или опытный пользователь сталкивается с необходимостью использования внешних обработок (файлы .epf). Платформа при их открытии часто выдает предупреждение о безопасности, что заставляет задуматься: насколько реальна угроза заражения системы через код 1С? В рамках данной статьи мы подробно проанализируем технические аспекты вредоносного кода в среде 1С, рассмотрим исторические примеры и разберем механизмы защиты, встроенные в современную платформу.
Существует мнение, что вирусы для 1С — это лишь гипотетическая возможность. Однако история доказывает обратное. Рассмотрим случай с вредоносным ПО, известным как 1C.Small.6.a (в узких кругах — «Шиза»). Этот вирус распространялся через внешние обработки и конфигурации, внедряя свой код во все найденные файлы .epf и .ert. При запуске такой обработки вирус пытался похитить пароли пользователей и данные доступа к почте.
Другой пример связан с популярными площадками обмена опытом. Известен случай с обработкой «Новогодний квест», которая содержала скрытый бэкдор. Программа в фоновом режиме скачивала исполняемый файл из интернета и запускала его на компьютере пользователя. Это подтверждает, что даже на модерируемых ресурсах риск сохраняется, особенно в первые часы после публикации новой разработки.
Разберем подробнее, как именно злоумышленники могут использовать возможности 1С для нанесения вреда системе. Проанализируем основные методы:
Новый COMОбъект("WScript.Shell") обработка получает доступ к командной строке операционной системы. Это позволяет запускать PowerShell-скрипты, скачивать файлы или менять настройки реестра..dll и подключает её через метод ПодключитьВнешнююКомпоненту. Это позволяет выполнять произвольный код вне ограничений встроенного языка 1С.HTTPСоединение, вредоносный код может незаметно выгружать содержимое справочников (контрагенты, контактная информация) или остатки по счетам на сторонний сервер.Выполнить() или Вычислить(). Рассмотрим пример маскировки кода:
// Пример зашифрованного вызова, который сложно обнаружить поиском
СтрокаКода = "КомандаСистемы(""powershell -command ... "")"; // Строка может быть в Base64
Выполнить(СтрокаКода);
При визуальном осмотре модуля такая строка может выглядеть как безобидный набор символов, но в момент исполнения она превращается в деструктивную команду.
Важно помнить, что современные типовые конфигурации (БП 3.0, УТ 11 и др.) активно используют фоновую загрузку внешних обработок и патчей. Проанализируем ситуацию: программа скачивает расширения для исправления ошибок или обработки для отчетности в автоматическом режиме. Хотя передача данных идет через защищенный протокол HTTPS, теоретически существует риск компрометации самого узла обновления или подмены IP-адреса, хотя реализовать это технически крайне сложно из-за проверки сертификатов платформой.
Если сертификат, предоставленный сервером, не соответствует домену или не является доверенным, платформа 1С выдаст ошибку: «Удаленный узел не прошел проверку». Это встроенный механизм защиты, который предотвращает атаки типа «человек посередине» (MITM).
Рассмотрим, что сделала компания «1С» для минимизации рисков в последних версиях платформы (8.3.9 и выше):
HTTPСоединение.Проанализируем современную тенденцию: злоумышленники постепенно переключаются с обработок на расширения. В отличие от .epf, расширение обладает более глубоким доступом к системе. Оно может перехватывать выполнение типовых процедур (через аннотацию &Вместо). Например, вредоносное расширение может подменять номер счета получателя в момент формирования платежного поручения, при этом в самой базе документ останется корректным, а подмена произойдет только в файле выгрузки для клиент-банка.
Для того чтобы обезопасить свою базу данных, рекомендуем придерживаться следующих правил при работе со сторонним кодом:
WScript.Shell, Выполнить, HTTPСоединение, base64, ЗапуститьПриложение.Подводя итог, можно сказать, что хотя массовых эпидемий вирусов в 1С сейчас не наблюдается, техническая возможность для создания вредоносного кода сохраняется. Основным вектором защиты остается внимательность программиста и использование современных механизмов безопасности платформы 1С:Предприятие.