Небольшая история про то, с чем можно столкнутся при усилении безопасности информационной системы (ИС).
На работе я работаю программистом, работаю над информационной системой, которой пользуется несколько регионов по России.
В Москве год назад наняли безопасника, который начал приводить в порядок ИБ по филиалам и время от времени присылали приказы которые надо исполнять.
И вот пару месяцев назад прислали приказ о политике паролей в ИС, то есть напрямую связана со мной. В ней требовалось:
- Обязательно большие, маленькие символы и цифры.
- Срок действия пароля - 3 месяца.
- Пароль не должен повторятся в течение года.
- Минимальная длина паролей для юзеров - 12 символов, а для админов — 16.
- Время закрытия сессии по неактивности — 15 минут.
- Защита от подбора: При восьми ошибок подряд блокируется аккаунт на 10 минут, потом давая еще 1 попытку.
Большая часть была реализована еще старым древним приказом, где минимальная длина паролей была всего 8 символов. И я начал реализовывать эту новую политику в своей программе. Сроки были небольшие, поскольку был уже конец месяца и надо отчитываться перед Москвой о проделанной работе.
За одним я реализовал хеширование пароля, удаляя хранение пароля в открытом виде (из совместимости с другими системами), сделал единую процедуру авторизации в SQL.
И вот, реализовав все требования, выпустил обновление как для своего региона, так и других.
Всё было рабочее, кроме одного нюанса: в программе не успел сделать сброс счетчика ошибок ввода пароля на пользователя. Его можно было обнулить только в базе.
После обновления, если программа видела простой пароль после авторизации просила его сменить в соответствии с новой парольной политикой.
Наверно после этого обновления все пользователи и администраторы были согласны купить мне билет прямо в Ад и на отдельный котел с усиленным подогревом. Особенно администраторы ведь для них длина пароля от 16 символов. Да и я сам в первое время забывал свой пароль и пару раз менял его, поскольку все мои старые пароли попали в историю как тестовые и повторно использовать их уже нельзя. Кроме того, пароль ведь больше не хранился больше в открытом виде и пользователю нельзя было подсказать какой у него был пароль, если он его никуда не записал, только сброс на новый.
В первый день в большинстве регионов, пользователи, которые обновились не могли обслуживать клиентов, потому что придумывали пароль, а потом не могли зайти, потому что не запомнили его.
Почти целую неделю я был на звонках с админами регионов или звонили пользователи моего региона и им приходилось либо сбрасывать счетчик паролей в базе или менять его на новый.
Пришлось экстренно делать возможность сброса счетчика паролей с правами администратора через программу, а не в базе напрямую.
Сейчас в принципе всё спокойно. Ждем Новый Год, когда пароли юзеров и админов как раз истекут или забудут после праздников и будут вспоминать меня или московского безопасника добрым словом с его требованиями к паролям.