10110010011101001011001101101110101018200.devFrom Enterprise.Systems

Как провести аудит сторонних OAuth-приложений в Google Workspace

The 8200.dev TeamЧтение: 7 мин

Спросите большинство IT-администраторов, сколько сторонних приложений имеют доступ к данным их Google Workspace, и вы получите догадку, а не число. Эта неопределённость и есть проблема. Каждый раз, когда пользователь нажимает «Войти через Google» или устанавливает дополнение из Marketplace, он предоставляет OAuth-приложению устойчивый фрагмент доступа к организационным данным — и этот доступ переживает интерес пользователя, актуальность поставщика и часто осведомлённость администратора.

Эта статья — практический метод аудита таких грантов доступа: где их найти, как оценить, какие из них рискованны, и как безопасно провести очистку.

Что на самом деле представляет собой OAuth-грант

Когда пользователь авторизует приложение «через Google», он не передаёт свой пароль. Он предоставляет приложению токен с определёнными разрешениями — *скоупами* (scopes), — которые позволяют ему обращаться к API Google от имени пользователя (или организации). Скоуп может быть узким, например «видеть ваш адрес электронной почты», или широким — «видеть, редактировать, создавать и удалять все ваши файлы в Google Drive».

Два свойства делают эти гранты достойными аудита:

  • Они сохраняются. Токен продолжает работать до тех пор, пока не будет явно отозван, приложение не будет удалено или учётная запись не будет отключена. Фраза «я перестал пользоваться этим инструментом год назад» ничего не отзывает.
  • Они инициируются пользователем. Доступ предоставляется человеком, нажавшим «Разрешить», а не выделяется IT-отделом. Это классическое определение теневого IT, и оно означает, что ваш реестр доступов по умолчанию неполон.

Где найти реестр

Существуют две точки обзора.

Вид пользователя находится в аккаунте Google каждого человека, в разделе *Безопасность → Сторонние приложения и сервисы* (ранее — «Приложения с доступом к вашему аккаунту»). Он показывает, что авторизовал один пользователь. Полезно для точечных проверок, непрактично в масштабе всей организации.

Вид администратора находится в консоли администратора Google, в разделе *Безопасность → Контроль API → Управление доступом приложений* (а также в соответствующей отчётности по подключённым приложениям). Это общая картина по всей организации: какие приложения подключены, какие скоупы у них есть и сколько пользователей авторизовали каждое из них. Именно здесь проводится аудит.

Если у вас есть соответствующие права администратора, отчётность по токенам Admin SDK может программно перечислить те же данные, что делает возможным непрерывный автоматизированный обзор вместо ежегодной ручной рутины.

Как оценивать риск

Не каждое подключённое приложение представляет проблему. Инструмент планирования календаря, который может читать статус занятости/свободности, — низкий риск; приложение для заметок с полным доступом к Drive, используемое одним человеком, — совсем другая история. Оценивайте каждое приложение по нескольким параметрам:

  • Широта скоупа. Полный доступ к Drive, чтение/отправка Gmail и доступ к каталогу администратора — это скоупы с высокой ставкой. Приложение, которое может читать и выгружать любой файл, — ваш главный приоритет независимо от того, насколько доверенным оно кажется.
  • Чувствительность того, к чему у него есть доступ. Контент Drive и доступ к почтовому ящику важнее метаданных профиля или календаря.
  • Количество и охват пользователей. Приложение, которым пользуется один человек, но с широким доступом, — это тихий, сконцентрированный риск. Приложение, которым пользуется вся компания, заслуживает внимания, потому что радиус поражения велик.
  • Доверие к издателю. Верифицированные издатели и известные поставщики — более безопасный вариант, чем неверифицированные или анонимные приложения. Статус верификации приложения от Google — полезный сигнал, но не гарантия.
  • Активность. Приложение, которым никто не пользовался месяцами, — это чистый минус: весь риск без какой-либо ценности.

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

Повторяемый аудит, шаг за шагом

  1. Составьте перечень. Получите полный список подключённых приложений и их скоупов из консоли администратора (или через API).
  2. Классифицируйте скоупы. Отметьте опасные — полный Drive, отправку/чтение Gmail, каталог и любые административные скоупы.
  3. Сопоставьте с использованием. Определите приложения без недавней активности и приложения, которыми пользуется очень мало пользователей.
  4. Проверьте издателя. Отметьте неверифицированных или неизвестных издателей.
  5. Примите решение. Для каждого приложения: оставить, ограничить или отозвать. Задокументируйте причину — журнал решений делает следующий аудит быстрее.
  6. Отозвать безопасно. Удалите доступ для приложений, которые вы решили упразднить, и предупредите тех немногих пользователей, которые зависели от удаляемого инструмента.
  7. Установите защитные механизмы. Перейдите от очистки к предотвращению: ограничьте установку приложений из Marketplace только теми, что одобрены администратором, и заблокируйте или внесите в белый список доступ к высокорисковым скоупам, чтобы разрастание не возобновилось.

Отзыв доступа без последствий

Страх, который останавливает большинство очисток, — «а что если я отозву что-то, что нужно людям?». Смягчите его так:

  • Начните с однозначных побед: неверифицированные приложения с широкими скоупами и нулевым недавним использованием.
  • Для приложений с небольшой пользовательской базой отправьте предупреждение перед отзывом; если никто не возразит, действуйте.
  • Ведите запись того, что и когда вы отозвали, чтобы, если что-то сломается, вы могли быстро и осознанно восстановить доступ.

Отзыв доступа в инструментах Google происходит мгновенно и является обратимым — пользователь всегда может повторно авторизовать приложение, которое ему действительно нужно, на этот раз с вашими защитными механизмами на месте.

Сделайте это непрерывным процессом

Однократный аудит приятен, но теряет актуальность немедленно. Новые приложения подключаются на следующий день после того, как вы закончили. Устойчивое решение — непрерывное обнаружение: автоматически перечислять подключённые приложения и их скоупы, оценивать каждое из них и оповещать при появлении нового высокорискового гранта или когда неактивное приложение обладает широким доступом.

Этот переход — от периодической таблицы к постоянно актуальному реестру — и есть разница между тем, чтобы знать своё OAuth-подверженность сегодня, и тем, чтобы просто гадать о ней. Это также одна из основ более широкой безопасности Google Workspace, наряду с идентификацией, совместным доступом и конфигурацией.

Скоупы, на которые стоит обратить особое внимание

Поскольку широта скоупа — главный фактор риска, полезно знать, какие OAuth-скоупы несут реальный вес. Вот несколько шаблонов, которые стоит уметь распознавать при чтении списка разрешений приложения:

  • `drive` (полный Drive) — чтение, создание, изменение и удаление *всех* файлов пользователя в Drive. Это самый широкий скоуп доступа к данным, который может иметь приложение, и встречается он гораздо чаще, чем должен бы; многие приложения запрашивают его, хотя достаточно было бы более узкого скоупа для отдельных файлов.
  • `gmail.send` / `gmail.modify` / `mail.google.com` — возможность отправлять почту от имени пользователя или читать и изменять почтовый ящик. Приложение с доступом к почтовому ящику может как выгружать корреспонденцию, так и выдавать себя за пользователя перед другими людьми.
  • **admin.directory.*** — чтение или управление каталогом пользователей и групп вашей организации. Приложение, обладающее этим скоупом, охватывает всю организацию, а не одного пользователя.
  • `spreadsheets` / `documents` — доступ к содержимому Sheets и Docs, где часто хранятся именно те чувствительные данные (финансы, планы, «временно» вставленные учётные данные), которые вы больше всего хотите защитить.

Узкие, доступные только для чтения скоупы — userinfo.email, calendar.readonly, drive.file (доступ только к файлам, созданным самим приложением) — следует поощрять. Оценивая новый инструмент, отдавайте предпочтение той версии, которая запрашивает минимум.

Превращение аудита в политику

Чистый аудит стоит гораздо больше, если он заканчивается постоянной политикой, а не однократной чисткой. Три политики предотвращают повторное разрастание в большинстве случаев:

  • Установки из Marketplace с одобрения администратора. Требуйте одобрения администратора перед тем, как пользователи смогут устанавливать приложения из Marketplace, чтобы новое подключение было решением, а не действием по умолчанию.
  • Контроль доступа на основе скоупов. Блокируйте или явно вносите в белый список высокорисковые скоупы (полный Drive, Gmail, каталог). Приложение, которому нужен полный доступ к Drive, должно преодолеть определённый порог; приложение, которому нужен только адрес электронной почты, — не должно.
  • Ответственный за регулярную проверку. Поручите кому-то постоянную обязанность регулярно проверять новые и высокорисковые гранты по графику. Проверки без ответственного лица не происходят.

Эти защитные механизмы меняют настройку по умолчанию с «любой пользователь может предоставить любому приложению любой доступ» на «широкий доступ — это осознанный, проверенный выбор» — без блокировки легитимных инструментов, которые действительно нужны людям.

8200.dev обнаруживает сторонние приложения, подключённые к вашему Workspace, оценивает их по скоупам, доверию к издателю и активности использования, и выводит на первый план самые рискованные — в режиме только чтения и непрерывно. Ознакомьтесь с тем, что мы проверяем, чтобы увидеть полную картину.

Хотите узнать, какие приложения имеют доступ к вашим данным прямо сейчас? Начните бесплатный аудит безопасности и получите реестр подключённых OAuth-приложений, ранжированных по уровню риска, во всём вашем Google Workspace.

ПоделитьсяX / TwitterLinkedIn

Похожие статьи