Обеспечение безопасности доступа к информационной базе — критически важная задача для любого администратора системы 1С. В данной статье мы разберем, как защитить базу от перебора паролей и что делать, если вам требуется реализовать более сложную логику, например, для защиты второго фактора аутентификации.
Начиная с версии платформы 1С:Предприятие 8.3.17, разработчики внедрили эффективный и простой в использовании инструмент «Защита от подбора пароля». Этот функционал работает как в клиент-серверном, так и в файловом варианте информационной базы. Он позволяет автоматически блокировать пользователя при превышении заданного числа неудачных попыток ввода пароля.
Чтобы настроить этот механизм, выполните следующие шаги:
После активации этих настроек, если пользователь ошибется при вводе пароля указанное количество раз, платформа сама заблокирует его учетную запись. Администратор может разблокировать пользователя вручную в списке пользователей, если возникнет необходимость восстановить доступ до истечения времени блокировки.
Если в вашей конфигурации реализован второй фактор аутентификации (например, подтверждение входа через SMS или TOTP-токен), стандартная защита паролем здесь не сработает, так как проверка кода происходит уже после успешной проверки первичных учетных данных. В этом случае платформенных «галочек» будет недостаточно. Для внедрения такого механизма можно использовать готовое решение для реализации двухфакторной аутентификации TOTP на встроенном языке 1С.
Для защиты от «SMS-флуда» или перебора кодов подтверждения необходимо доработать конфигурацию. Рассмотрим, как это можно реализовать:
ПопыткиВводаКодовПодтверждения), где будут храниться измерения: Пользователь (Ссылка на справочник Пользователи) и ДатаПоследнейПопытки. Ресурс КоличествоПопыток позволит отслеживать число неудачных попыток.Пример логики проверки в коде:
// Пример логики проверки попыток ввода
ТекущиеПопытки = ПолучитьКоличествоПопыток(ТекущийПользователь);
Если ТекущиеПопытки >= МаксимальноеКоличествоПопыток Тогда
ВызватьИсключение "Превышено количество попыток ввода. Доступ заблокирован.";
КонецЕсли;
Если Не ПроверитьКод(ВведенныйКод) Тогда
УвеличитьСчетчикПопыток(ТекущийПользователь);
// Дополнительно можно зафиксировать время
ВызватьИсключение "Неверный код подтверждения.";
Иначе
СброситьСчетчикПопыток(ТекущийПользователь);
КонецЕсли;
Важно помнить, что при интеграции с внешними API (сервисами отправки SMS) логика ограничения количества запросов должна быть дублирована на стороне самого провайдера. Это защитит ваш бюджет от злоумышленников, которые могут отправлять тысячи запросов на генерацию новых кодов, даже если вы блокируете ввод кода внутри 1С.
Мы настоятельно рекомендуем использовать самые актуальные версии платформы 1С:Предприятие (от 8.3.17 и выше). В новых версиях не только реализованы функции защиты от подбора, но и исправлены уязвимости, которые могут быть критичны для безопасности. Если вы все еще используете устаревшие версии платформы, планирование обновления — это первый шаг к защите вашей информационной системы.
Анализируя текущую ситуацию с безопасностью, мы приходим к выводу, что комбинирование платформенных настроек (для логина и пароля) и кастомной логики на уровне кода (для специфических функций безопасности) является наиболее надежным подходом для защиты данных в среде 1С.