![](https://habrastorage.org/getpro/habr/upload_files/683/01d/ec2/68301dec23b2567a1cb9165493c928e1.png)
Если ваша компания использует сообщества Salesforce и Einstein Activity Capture, вы могли неосознанно открыть доступ к событиям календаря Outlook или Google вашего администратора в интернете из-за ошибки под названием «кротовая нора Эйнштейна», которую обнаружила исследовательская команда Varonis. События календаря, к которым предоставлен несанкционированный доступ, могут содержать очень конфиденциальные данные, например имена и адреса электронной почты участников, URL-адреса и пароли, а также программы конференций и встреч, вложенные файлы и электронные сообщения, отправленные организатору. Получив уведомление, команда Salesforce оперативно исправила эту ошибку. Однако если ваше сообщество Salesforce было создано раньше лета 2021 г., вам необходимо закрыть несанкционированный доступ к событиям календаря.
Вот что для этого нужно сделать:
Измените адрес электронной почты гостевого пользователя на фиктивный (например, test@example.com или guest@yourcompany.com);
Удалите важные события календаря, которые Einstein связал с вашим гостевым пользователем. Более подробные шаги описаны ниже в разделе «Как сократить риски». Если вам нужна помощь в аудите вашей системы Salesforce, свяжитесь с нашей командой.
Далее мы подробно рассмотрим, как две, на первый взгляд, не связанные между собой функции Salesforce на самом деле взаимосвязаны, и как это влияет на безопасность.
Einstein Activity Capture
Einstein Activity Capture (EAC) — это инструмент, который позволяет синхронизировать электронные письма и события календаря между вашими учетными записями Microsoft Exchange или Google и Salesforce. Einstein Activity Capture заменяет более старый инструмент Lightning Sync, который скоро перестанет использоваться. В этой статье мы будем говорить об Einstein Activity Capture, но эти же концепции применимы и к Lightning Sync. Идея Einstein Activity Capture состоит в том, чтобы повышать продуктивность сотрудников (отдела продаж, в первую очередь) за счет объединения электронных писем клиентов и встреч в одной центральной системе — Salesforce.
![](https://habrastorage.org/getpro/habr/upload_files/a01/2c4/6ac/a012c46acd8668f2158141627220529e.png)
Einstein - интеллектуальная система, поэтому, когда вы создаете встречу в качестве организатора, он попытается найти других пользователей Salesforce (пользователей, потенциальных клиентов, контактных лиц), с которыми можно синхронизировать событие. Einstein Activity Capture синхронизирует календари пользователя в следующей последовательности:
Salesforce подключается к календарю Outlook или Google и загружает события;
Salesforce добавляет события в календарь Salesforce пользователя;
Salesforce просматривает участников события и ищет пользователей, потенциальных клиентов и контакты с соответствующими адресами электронной почты;
Если Salesforce находит записи с совпадающими адресами электронной почты, он также добавляет события в их календари Salesforce.
Подробнее о том, как происходит синхронизация событий, можно прочитать здесь.
Кротовая нора Эйнштейна
Вплоть до летнего выпуска 2021 года гостевые пользователи создавались с адресом электронной почты администратора Salesforce.
![](https://habrastorage.org/getpro/habr/upload_files/9e1/189/676/9e118967608c794c1e2fc6f3f43d27a6.png)
Учитывая этот новый факт, давайте вернемся к нашему процессу синхронизации Einstein. Представьте, что ваш технический директор отправляет приглашение на встречу Outlook администратору Salesforce компании (назовем ее Джуди). Это конфиденциальная встреча для обсуждения стратегии, в которой участвуют несколько руководящих сотрудников компании. Поскольку гостевой пользователь поделился адресом электронной почты с Джуди, вот что произойдет дальше:
Salesforce находит событие технического директора, в котором участвует администратор;
Salesforce ищет пользователей и другие объекты, адреса электронной почты которых совпадают с адресами участников;
Salesforce находит администратора Salesforce Джуди и синхронизирует событие с ее календарем;
Salesforce ТАКЖЕ находит гостевого пользователя и синхронизирует событие с его календарем.
В результате событие и информация о нем (участники, тема, данные дозвона, ссылка Zoom и даже ответы на приглашение) станут доступны онлайн через гостевого пользователя.
![](https://habrastorage.org/getpro/habr/upload_files/e84/edc/3c2/e84edc3c2eea73791186ee59efe4b972.png)
События могут содержать конфиденциальную информацию, которая сама по себе может нанести вред бизнесу. Имея ссылку на встречу, пароль и список участников, злоумышленник потенциально может присоединиться к собранию незамеченным. Информация также может быть использована для проведения целевых фишинговых атак или взлома других сервисов, перемещения внутри сети и т. д.
Как сократить риски
Salesforce быстро исправил эту ошибку, чтобы все новые сайты сообщества не связывали гостевого пользователя с адресом электронной почты реального пользователя. Если ваше сообщество было создано до лета 2021 г., рекомендуем изменить адрес электронной почты гостевого пользователя для всех сайтов сообщества на фиктивный, не связанный с календарем реального пользователя. Вы можете запустить приведенный ниже фрагмент кода в консоли разработки и изменить адреса электронной почты всех гостевых пользователей:
for (User user: [SELECT Id FROM User WHERE UserType='Guest']) {
user.Email = 'guest@company.com';
update user;
}
Чтобы получить доступ к консоли разработки, нажмите на значок шестеренки вверху страницы и выберите «Консоль разработки» (убедитесь, что вы вошли в систему как администратор):
![](https://habrastorage.org/getpro/habr/upload_files/255/7e9/930/2557e99301b5e9039c130184c16f0e66.png)
В консоли разработки нажмите Ctrl+E (работает как в Windows, так и на компьютерах Mac), чтобы открыть окно Execute Anonymous.
![](https://habrastorage.org/getpro/habr/upload_files/fc2/373/2f7/fc23732f75af72ccbb746615a1c7f9e0.png)
Чтобы автоматически изменить адреса электронной почты всех гостевых пользователей, вставьте код в окно и нажмите «Выполнить». Удалить конфиденциальные объекты событий, связанные с гостевым пользователем, не так просто. Если вам нужна помощь, свяжитесь с нами.
Выводы
Главный вывод из этого исследования заключается в том, что риск для SaaS возрастает по мере того, как сервисы становятся взаимосвязанными. В этом случае между двумя, на первый взгляд, не относящимися друг к другу функциями возникает неожиданная и нежелательная связь. Эти незначительные неправильные конфигурации или мелкие уязвимости могут иметь серьёзные последствия. Кроме того, предприятиям крайне важно понимать модель совместной ответственности при работе с поставщиками SaaS. Приложения SaaS в основном безопасны, и как только компания помещает в них свои данные, они должны нести ответственность за их защиту. Для организаций критически важно понимать свою среду SaaS и взаимное влияние продуктов друг на друга. Подумайте о создании чего-то вроде топологической схемы сети для ваших продуктов SaaS, чтобы видеть четкую картину передачи данных от одного приложения к другому. Рассмотрите возможность использования специализированного решения для этих целей (например, такого как DatAdvantage Cloud), чтобы точно визуализировать, к каким данным пользователь (даже гостевой) имеет доступ во всех ваших SaaS-приложениях, классифицировать конфиденциальную информацию и отслеживать поведение на предмет аномалий.
Disclosure Timeline
08.08.2021: сообщено Salesforce
11.08.2021: выполнен анализ
19.08.2021: исправлено