Перед релизом или публикацией внешней обработки иногда нужно быстро понять, нет ли в коде участков, которые лучше разобрать отдельно. Да и в целом для профилактики или в рамках ревью можно проводить подобные проверки. Например: динамическое выполнение кода, COM, внешние компоненты, запуск приложений, сетевые обращения, файловые операции или случайно оставленные пароли и токены.
Обычно это проверяют обычным поиском по исходникам: Выполнить, Вычислить, HTTPСоединение, COMОбъект, Token, Пароль. Но когда модулей много, такой поиск занимает много времени.
Эта внешняя обработка выполняет статический анализ текстовых исходников 1С без изменения данных базы и собирает в одну таблицу потенциально рискованные участки кода с пояснениями и рекомендациями.

Что анализируется
Пользователь выбирает каталог с исходниками (объект проверки нужно выгрузить в файлы), а обработка проходит по файлам и ищет заранее заданные признаки рискованного кода. Можно включить обход вложенных папок.
Проверяются текстовые файлы исходников:
.bsl;.xml;.txt;.os.
Проверяемый код не выполняется. Данные информационной базы не изменяются. Бинарные EPF и ERF напрямую не запускаются и не анализируются. Для проверки внешней обработки или отчета нужно использовать выгруженные исходники или распакованные текстовые файлы.
Какие признаки ищет обработка
В текущей версии обработка ищет основные группы рискованных мест:
- динамическое выполнение кода:
Выполнить,Вычислить; - использование привилегированного режима;
- COM и внешние компоненты;
- запуск приложений и системных команд;
cmd,powershell,shellв строках кода;- HTTP, FTP, почта, web-сервисы и внешние адреса;
- работа с файлами и временными каталогами;
- возможные секреты: пароли, токены, Bearer, ApiKey, ClientSecret, Authorization;
- учетные данные, переданные прямо в конструктор
HTTPСоединение; - простые признаки динамической сборки текста запроса.
Срабатывание не означает, что в коде точно есть ошибка. Например, HTTPСоединение, файловые операции или COM могут использоваться легитимно. Обработка показывает участки кода, на которые стоит обратить внимание.
Пример: учетные данные в HTTPСоединение
Если в коде встречается соединение с логином и паролем прямо в параметрах конструктора, обработка показывает отдельное срабатывание высокого риска.
Например, строка вида:
Соединение = Новый HTTPСоединение("server",,"user","password",,,Новый ЗащищенноеСоединениеOpenSSL);
в результате отображается в безопасном виде:
Соединение = Новый HTTPСоединение("********",,"********","********",,,Новый ЗащищенноеСоединениеOpenSSL);
Полный сервер, логин и пароль в отчет не выводятся. Это важно: обработка должна помогать найти возможный секрет, но не должна раскрывать его в таблице, деталях или выгрузке.

Фильтр от комментариев и строк
В обработке используется упрощенный разбор строки кода. Для части правил комментарии и строковые литералы исключаются из проверки, чтобы не ловить лишнее.
Например, строка:
// Выполнить(ТекстКоманды);
не должна попадать в результат как динамическое выполнение кода. То же самое относится к текстовым сообщениям:
Сообщить("Выполнить использовать нельзя");
При этом возможные секреты, внешние адреса, cmd, powershell и похожие признаки проверяются отдельно, потому что они часто находятся именно внутри строковых литералов.
Также исключены часть лишних срабатываний по служебным XML-пространствам имен и встроенным ресурсам вида url(data:...). Это не делает анализ идеальным, но помогает получить более полезную таблицу результатов.
Результаты проверки
После сканирования обработка показывает таблицу результатов. Для каждого срабатывания выводятся:
- уровень риска;
- категория;
- правило;
- файл;
- номер строки;
- короткий фрагмент;
- рекомендация;
- статус проверки.
Результаты сортируются по риску: сначала высокий, потом средний, потом низкий. Это удобно, когда срабатываний много и нужно начать с самого важного.

Фильтры и статусы
Для разбора результатов есть фильтры по риску, категории, статусу и строка поиска. Можно быстро оставить только высокий риск, только возможные секреты или только строки со статусом “Исправить”.
Статус проверки — это пользовательская пометка результата. По умолчанию каждое срабатывание получает статус Новое. После просмотра строки можно выбрать другой статус из списка:
- Новое — срабатывание найдено, но еще не рассматривалось;
- Проверить — нужно вернуться и посмотреть контекст;
- Исправить — место подтверждено, код нужно менять;
- Принято — риск понятен и осознанно принят;
- Ложное срабатывание — правило сработало, но проблемы нет.
Статусы помогают использовать обработку не только как поиск по коду, но и как рабочий список для ревью. Например, можно пройти высокий риск, отметить реальные замечания как “Исправить”, спорные места как “Проверить”, а легитимные срабатывания как “Принято”.

Итоги проверки
На форме выводятся общие итоги:
- сколько файлов проверено;
- сколько строк обработано;
- сколько всего срабатываний найдено;
- сколько найдено высокого, среднего и низкого риска;
- сколько найдено возможных секретов;
- сколько времени заняла проверка.

На больших каталогах, особенно если в выгрузке много XML-файлов, проверка может занять несколько минут. На форме есть отдельная подсказка об этом, а после завершения показывается фактическое время выполнения.
Экспорт результата
Результаты можно выгрузить в табличный документ. В выгрузку попадают найденные срабатывания, рекомендации и выбранные пользователем статусы проверки.
Это удобно, если нужно передать результат разработчику, тимлиду, специалисту ИБ или приложить список замечаний к задаче.
Для кого полезна обработка
Обработка может быть полезна:
- разработчику 1С — для самопроверки перед передачей кода;
- тимлиду — как быстрый фильтр перед ревью;
- специалисту сопровождения — при проверке чужих внешних обработок и расширений;
- специалисту ИБ — для первичного анализа рискованных участков кода;
- авторам публикаций — перед выкладкой внешней обработки или отчета.
Что важно понимать
Это не полноценный инструмент аудита безопасности и не замена ревью кода. Обработка выполняет статический анализ по набору правил и показывает участки кода, которые требуют внимания разработчика.
Срабатывание не означает, что код точно небезопасен. Например, HTTPСоединение, COM или файловые операции могут быть нормальной частью решения. Но такие участки лучше увидеть до релиза, чем случайно пропустить.
Отсутствие срабатываний также не гарантирует безопасность кода. Инструмент не анализирует бизнес-логику, права пользователей, фактическое выполнение кода и сложные цепочки передачи данных.
Ограничения текущей версии
- анализируются текстовые исходники, а не бинарные
EPF/ERFнапрямую; - упрощенный разбор кода работает построчно и не является полноценным синтаксическим анализом языка 1С;
- результаты требуют последующего разбора разработчиком или ответственным специалистом;
- перед передачей отчета наружу нужно убедиться, что в нем нет чувствительной информации.
Типовой сценарий использования
- Выгрузить исходники конфигурации, расширения или внешней обработки.
- Открыть обработку.
- Выбрать каталог с исходниками.
- Нажать Сканировать.
- Начать разбор с высокого риска.
- Проставить статусы: проверить, исправить, принято или ложное срабатывание.
- При необходимости выгрузить результат в табличный документ.
Итог
"Аудитор кода 1С: рискованные вызовы и интеграции" помогает быстро увидеть потенциально проблемные участки исходников до релиза, публикации или подключения чужого артефакта.
Главная задача обработки - не вынести вердикт за разработчика, а собрать в одном месте то, что обычно приходится искать вручную: динамическое выполнение, COM, внешние компоненты, запуск процессов, сетевые обращения, файловые операции и возможные секреты.
Аудитор пользователей и опасных прав 1С
Аудитор регламентных и фоновых заданий 1С: расписания, риски, ДОиО
Сравнение пользователей, ролей и прав 1С: кто получил полные права и какие роли изменились
Журнал-ИБ: экспресс-аудит журнала регистрации 1С для контроля доступа и событий безопасности
Артефакт-Аудитор 1С: реестр и выгрузка EPF/ERF/CFE, расширений и дополнительных отчетов и обработок
Проверено на следующих конфигурациях и релизах:
- Бухгалтерия предприятия КОРП, редакция 3.0, релизы 3.0.201.16
- Документооборот КОРП, релизы 2.1.37.5
- Управление нашей фирмой, редакция 3.0, релизы 3.0.13.374
Вступайте в нашу телеграмм-группу Инфостарт