Перейти к содержимому
Permission Map

Карта для проверки доступа

Кто и к чему имеет доступ? Нарисуйте карту раньше, чем спросит аудитор.

Вставьте роли и то, что разрешено каждой из них, а затем кто какие роли держит. Permission Map разрешает каждое правило так, что запрет сильнее разрешения, рисует матрицу доступа, прокладывает маршрут от человека к любому ресурсу и отмечает сочетания, из которых вырастают инциденты.

Посмотреть проверки рисков
adminsupportfinanceengineerpaymentsinvoicescustomersrolesticketssecretsdeploysaudit_log
Демо карта. Линия каждой роли проходит через ресурсы, до которых она дотягивается.

Что это

Бесплатный стол для проверки доступа прямо в браузере. Он читает простые списки ролей или выгрузки CSV и превращает их в одну матрицу, поиск маршрутов и список рисков по важности.

Для кого

Для основателей, которые заполняют анкету по безопасности, администраторов, наводящих порядок в ролях, техлидов перед аудитом и всех, кого спросили, кто может удалить данные клиентов.

Какую проблему решает

Правда о доступе разбросана по провайдеру учётных записей, таблицам и старым тикетам. Никто не видит, что один человек может и создать, и одобрить платёж, пока это не случится.

Постройте карту ролей

Всё разбирается и вычисляется в этой вкладке. Ничего из вставленного не загружается и не сохраняется.

Одна роль на строку, например support: tickets:*, customers:read. Знак ! в начале означает запрет. Подойдёт и CSV со столбцами role, resource, action, effect.
Необязательно. Один человек на строку, например deniz: finance_clerk, finance_lead. Без этого списка каждая роль проверяется отдельно.

Карты пока нет

Вставьте свои роли или загрузите демо компанию, чтобы увидеть все виды рисков.

Ваши списки не покидают страницу. В отчёте только имена ролей, ресурсы и находки.

Что означает каждый риск

Совместные проверки смотрят на людей, если вы добавили список людей, и на отдельные роли, если нет.

  1. Разделение обязанностей Высокий

    Один и тот же человек может создать и одобрить или запросить и выпустить изменение в одном ресурсе. С этого начинается большая часть мошенничества и многие сбои.

  2. Полный админ Высокий

    Роль с *:* может всё, включая то, чего ещё нет. Держите её у как можно меньшего числа людей.

  3. Повышение привилегий Высокий

    Кто может назначать роли или менять права, тот может выдать себе что угодно, так что на деле у него есть доступ ко всему.

  4. Подмена журнала аудита Высокий

    Удаление или правка логов позволяет скрыть свои действия. В журнал аудита должно быть можно только дописывать.

  5. Маска на чувствительных данных Средний

    resource:* для секретов, платежей или персональных данных незаметно включает и все будущие действия.

  6. Выгрузка персональных данных Средний

    Массовая выгрузка или скачивание данных клиентов чаще всего ведёт к утечке, о которой придётся сообщать.

  7. Разрешение против запрета Средний

    Роль одновременно разрешает и запрещает одно действие. Побеждает запрет, разрешение становится мёртвым грузом и путает проверяющих.

  8. Бесполезный запрет Низкий

    Запрет, который ничего не блокирует, потому что до него не доходит ни одно разрешение. Вреда нет, но настоящий замысел скрыт.

  9. Повтор права Низкий

    Одно и то же право встречается дважды. Чистые списки проще проверять.

  10. Неизвестная роль Низкий

    Человеку назначена роль без прав. Обычно это опечатка, иногда роль, удалённая только в одной системе.

  11. Неиспользуемая роль Низкий

    Роль с правами, которую никто не держит. Старые роли потом по ошибке назначают снова.

Какие форматы понимает

Можно смешивать. Регистр в именах не важен, пробелы превращаются в подчёркивания.

Строки ролей

support: tickets:*, customers:read, !customers:delete

Роль, двоеточие, затем права через запятую. Запись resource.action тоже работает.

Выгрузка CSV

role,resource,action,effect
ops,servers,restart,allow

Запятая, точка с запятой или табуляция. Столбец effect необязателен, по умолчанию это разрешение.

Люди

deniz: finance_clerk, finance_lead

Человек, двоеточие, роли. Или два столбца, человек и роль, по строке на каждое назначение.

Как пользоваться

  1. Вставьте роли

    Выгрузите их из админки или напишите вручную. Знак * означает любой ресурс или любое действие.

  2. Добавьте людей

    Необязательно, но очень полезно. Риски от одновременного владения двумя ролями видны только со списком людей.

  3. Прочитайте находки

    Сначала высокие риски. В каждой названы человек, роли и конкретные строки, которые к ней привели.

  4. Изучите матрицу и маршруты

    Переключайтесь между ролями и людьми, затем спросите, кто может выполнить конкретное действие, и пройдите по каждому маршруту.

  5. Сохраните доказательства

    Скачайте матрицу CSV и скопируйте отчёт с SHA 256 в тикет проверки доступа.

Полезно знать

  • Учитываются разрешения, запреты и маски. Условия вроде времени суток, диапазонов IP или владельца ресурса не проверяются.
  • Наследование ролей автоматически не отслеживается. Перечислите унаследованные права у дочерней роли.
  • Карта показывает то, что написано в списках, а не то, что реально применяет система. Сверьтесь с настоящей выгрузкой.
  • Правила рисков опираются на распространённые имена вроде approve, export и audit. Необычные имена, возможно, придётся переименовать.

Вопросы

Можно вставить выгрузку из провайдера учётных записей?

Да, если привести её к строкам роль, ресурс, действие. Выгрузка CSV из большинства админок подходит после удаления лишних столбцов.

Почему побеждает запрет?

Так устроены почти все системы доступа. Один запрет блокирует действие, сколько бы ролей его ни разрешали.

Меняет ли инструмент мои системы?

Нет. Он только читает то, что вы вставили. Применение прав остаётся в вашей настоящей системе доступа.

Что делать с высоким риском?

Разделите роль, заберите у человека одну из двух ролей или добавьте явный запрет и запишите, кто одобрил исключение.

Связаться с автором

Есть вопрос, идея или предложение о работе? Напишите в X или Telegram.

Поддержать автора

Если инструмент сэкономил вам время, можно отправить чаевые на этот EVM адрес из своего кошелька.

0xd28Fd90eD69092bd01598f237aad33a0cc9c3EeA