Права доступа: почему «всем всё» заканчивается плохо
В первый месяц работы системы права выдают быстро и щедро — надо запускаться, разбираться некогда. Через год выясняется, что стажёр может удалить сделку на несколько миллионов, курьер видит закупочные цены, а у трёх уволенных сотрудников доступ по-прежнему активен. Это состояние называется расползанием прав, и оно накапливается незаметно.
Принцип минимальных привилегий
Формулировка простая: у каждого ровно те права, которые нужны для его задач, и ни одного лишнего. Смысл не в недоверии к людям — он в ограничении радиуса поражения. Если аккаунт менеджера скомпрометирован фишингом, злоумышленник получит доступ к тому же объёму, что и менеджер. Разница между «к своим 40 клиентам» и «ко всей базе из 20 000 записей» — это разница между неприятностью и катастрофой со штрафом в несколько миллионов.
Как права расползаются
- Новому сотруднику копируют права коллеги, у которого их и так было больше нужного — ошибка тиражируется.
- Права выдают под разовую задачу и никогда не забирают обратно.
- При переводе в другой отдел добавляют новые права, не снимая старые.
- Внешнему подрядчику дают полный доступ «чтобы не мучиться» и оставляют его после окончания работ.
- Технические и интеграционные учётные записи создают с максимальными правами, потому что так быстрее запустить.
Ролевая модель на практике
Права привязываются не к людям, а к ролям, а роли — к должностям. Тогда приём и перевод сотрудника становятся одним действием, а не расследованием. Минимальный набор ролей для типовой компании: сотрудник (свои записи), руководитель группы (записи группы, отчёты), финансы (платежи и закупочные цены), администратор (настройки, без доступа к содержимому сделок), аудитор (только чтение и журналы). Такую модель мы закладываем при внедрении CRM и ERP — переделывать её на живой системе с накопленными данными значительно дороже.
Разделение полномочий
Отдельный принцип, который часто игнорируют: критичные операции не должны выполняться одним человеком от начала до конца. Тот, кто заводит контрагента, не должен одновременно подтверждать платёж в его адрес. Тот, кто администрирует систему, не должен иметь возможность незаметно править журнал своих действий. Это защита не только от злого умысла, но и от банальной ошибки — вторая пара глаз ловит опечатку в реквизитах до того, как деньги ушли.
Что делать с администраторами
Учётная запись с полными правами нужна редко, а используется постоянно — потому что под ней удобно. Рабочая практика: у администратора два аккаунта, обычный для повседневных задач и привилегированный для конкретных операций, с обязательным вторым фактором и записью в журнал. Отдельно проверьте технические учётные записи интеграций: им почти никогда не нужны права на удаление, но выдают их по умолчанию. Классификацию ошибок контроля доступа и способы их проверки подробно разбирает OWASP.
Регулярный пересмотр
Разовая настройка не работает — состав команды и задачи меняются. Раз в квартал руководитель каждого отдела получает список своих сотрудников с их правами и подтверждает или урезает. Занимает 20 минут на отдел, снимает 90% накопленного мусора. Отдельным пунктом — сверка списка активных аккаунтов со штатным расписанием: именно так обнаруживаются доступы уволенных.
Чек-лист для проверки сегодня
- Сколько пользователей имеют права полного администратора? Их должно быть не более двух-трёх.
- Есть ли активные учётные записи людей, которые уже не работают в компании?
- Может ли рядовой сотрудник выгрузить всю базу клиентов одной кнопкой?
- Ведётся ли журнал действий и защищён ли он от изменения администратором?
- Отзываются ли доступы подрядчиков после завершения проекта?
Каждый пункт, на который вы ответили неуверенно, — это открытая дверь. Построение ролевой модели на существующей системе занимает от одной до трёх недель в зависимости от числа объектов. Посмотреть, как это выглядит в реальных продуктах, можно в нашем портфолио или обсудить задачу напрямую.
