Требования служб информационной безопасности часто включают защиту учетных записей от перебора паролей (брутфорса). Стандартная задача — ограничить число попыток ввода пароля (например, до трех) и временно или постоянно блокировать доступ при превышении лимита. Рассмотрим подробно различные варианты решения этой задачи: от встроенных возможностей платформы «1С:Предприятие» до анализа журнала регистрации и сквозной доменной авторизации.
Разберем встроенный механизм платформы, позволяющий ограничить число попыток ввода пароля без необходимости переписывать процедуры входа.
Настройка выполняется администратором системы следующим образом:
3.300 секунд, то есть 5 минут).Эти параметры можно настраивать и программно через функции ПолучитьПараметрыИнформационнойБазы() и УстановитьПараметрыИнформационнойБазы(). Проанализируем пример кода для программной установки парольной политики:
ПараметрыИБ = ПолучитьПараметрыИнформационнойБазы();
ПараметрыИБ.Вставить("МаксимальноеКоличествоНеуспешныхПопытокАутентификации", 3);
ПараметрыИБ.Вставить("ДлительностьБлокировкиПриПревышенииКоличестваНеуспешныхПопыток", 300);
УстановитьПараметрыИнформационнойБазы(ПараметрыИБ);
Важный нюанс безопасности: чтобы исключить ситуацию умышленной блокировки чужой учетной записи (когда один сотрудник намеренно вводит неверный пароль под логином коллеги), снимем у пользователей признак Показывать в списке выбора (ПоказыватьВСпискеВыбора = Ложь). В этом случае имя пользователя потребуется вводить вручную, что существенно усложнит злонамеренные действия.
Если в организации развернут домен Windows / Active Directory или FreeIPA, наиболее надежным и безопасным решением будет делегирование аутентификации операционной системе. В этом случае аутентификация 1С отключается, а вход выполняется по логину текущего сеанса ОС.
Преимущества такого подхода:
Для настройки в карточке пользователя информационной базы включим флаг «Аутентификация операционной системы» и укажем путь вида DOMAIN\UserName.
Если требуется жестко запрещать вход пользователю на программном уровне (например, отключать признак ВходВПрограммуРазрешен в типовых конфигурациях с БСП) при обнаружении атак, настроим фоновый мониторинг журнала регистрации.
Платформа фиксирует неудачные попытки входа специальным событием Сеанс. Ошибка аутентификации. Разберем по шагам создание регламентной процедуры проверки:
ВыгрузитьЖурналРегистрации() отберем события с ошибками аутентификации за последние несколько минут.Посмотрим на пример реализации такого алгоритма:
// Период анализа - последние 10 минут
ИнтервалПроверки = 600;
ДатаНачала = ТекущаяДатаСеанса() - ИнтервалПроверки;
ФильтрЖурнала = Новый Структура;
ФильтрЖурнала.Вставить("ДатаНачала", ДатаНачала);
ФильтрЖурнала.Вставить("Событие", "_$Session$_.AuthenticationError");
ТаблицаОшибок = Новый ТаблицаЗначений;
ВыгрузитьЖурналРегистрации(ТаблицаОшибок, ФильтрЖурнала, "Пользователь, ИмяПользователя, Дата");
// Подсчитаем количество ошибок для каждого имени
СчетчикПопыток = Новый Соответствие;
Для Каждого Запись Из ТаблицаОшибок Цикл
Имя = ВРег(СокрЛП(Запись.ИмяПользователя));
Если ПустаяСтрока(Имя) Тогда
Продолжить;
КонецЕсли;
ТекущееЧисло = СчетчикПопыток[Имя];
Если ТекущееЧисло = Неопределено Тогда
СчетчикПопыток.Вставить(Имя, 1);
Иначе
СчетчикПопыток.Вставить(Имя, ТекущееЧисло + 1);
КонецЕсли;
КонецЦикла;
// Блокируем пользователей, превысивших лимит
Для Каждого КлючИЗначение Из СчетчикПопыток Цикл
Если КлючИЗначение.Значение >= 3 Тогда
ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоИмени(КлючИЗначение.Ключ);
Если ПользовательИБ <> Неопределено И ПользовательИБ.АутентификацияСтандартная Тогда
// Отключаем вход по стандартному паролю
ПользовательИБ.АутентификацияСтандартная = Ложь;
ПользовательИБ.Записать();
ЗаписьЖурналаРегистрации("Безопасность.БлокировкаПользователя",
УровеньЖурналаРегистрации.Предупреждение,,,
СтрШаблон("Пользователь %1 заблокирован из-за превышения числа попыток входа.", КлючИЗначение.Ключ));
КонецЕсли;
КонецЕсли;
КонецЦикла;
В современных конфигурациях (1С:ERP, КА, УТ, ЗУП, БП) подсистема управления пользователями БСП предоставляет централизованные настройки входа.
В режиме «1С:Предприятие» перейдем в раздел «Администрирование» → «Настройки пользователей и прав» → «Настройки входа». Здесь доступны следующие параметры:
При совмещении штатных параметров информационной базы (ПараметрыИБ) и политик сложности паролей БСП система обеспечивает надежный уровень защиты без изменения исходного кода конфигурации.