Хорошая новость в том, что я взломал сам себя, хочу знать, как, позвольте мне объяснить.



Тематическое исследование

Вам предлагается использовать новое приложение Power App, его функциональность заключается в том, чтобы читать события календаря Outlook на неделю, где вы можете удалить ненужные, а затем загрузить список в свой OneDrive. Да, я знаю, что это довольно ужасное приложение, но давайте представим, что вы хотите его использовать.

Описание изображения

Вы входите в систему, пробуете и прекрасно работаете, через 30 секунд выходите из системы, и все в порядке. Ну нет, тебя просто взломали.


Как, теперь у меня есть копия ваших файлов OneDrive и всех ваших входящих сообщений.

Так как, ну, все сводится к этому экрану:

Описание изображения

Приложению требуется разрешение на чтение вашего календаря и сохранение в OneDrive, но вам не говорят четко, что у него есть не только права на чтение для Outlook и права на запись в OneDrive, но и полное чтение/запись для обоих.

Описание изображения

Описание изображения

Эта ключевая информация скрыта за «разрешениями на просмотр», и мы все знаем, сколько людей на самом деле нажимают на эти ссылки.

Таким образом, при запуске приложения запускается эта единственная строка Power FX.

OneDrive.Run()
Войти в полноэкранный режим

Выйти из полноэкранного режима

И он вызывает этот поток:

Описание изображения
(Я включил фильтр для не-папок и композицию, чтобы взять только 3 файла для PoC)

Поток использует это подключение OneDrive для чтения и получения содержимого ваших файлов. Он использует соединение с Outlook, чтобы читать ваши электронные письма и отправлять их мне.

Что с отправленной папкой? Нет, у меня полный доступ, помните, поэтому я удаляю отправленное письмо.

Но бывает и хуже, потоки могут работать 30 дней (Lean.Microsoft.com). Таким образом, этот поток может ждать 24 часа и повторяться целых 30 дней. Таким образом, вас взломали не только один раз, но и в течение следующих 30 дней. И нет никакого способа, которым вы можете увидеть или остановить это.

Итак, это все, что нужно потоку:

  • Триггер мощного приложения
  • Инициализирует файловый массив
  • Получает файлы Excel из папки документов пользователей
  • Цикл ForEach
  • если папка петля папки
  • если файл получает содержимое
  • Добавляется к массиву
  • Получает электронные письма
  • Создает HTML-таблицу электронных писем
  • Отправляет электронную почту с вложениями и html
  • Ожидает появления отправки
  • Получает отправленные электронные письма с определенной темой
  • Удаляет их

Всего 13 шагов, добавьте еще 6, чтобы получить следующий уровень папок, и так далее. Затем добавьте 24-часовую задержку и цикл «До тех пор», и теперь этот хак равен 30.

Я знаю, что есть много вопросов и возможных проблем, но это приложение и поток были созданы менее чем за 2 часа, поэтому эти проблемы можно было легко решить. И это только один раз, бывает еще:

  • Отправка электронных писем из учетной записи, например, одобрение вещей, которые не должны быть
  • Удалить определенные электронные письма
  • Отклонить встречи
  • Делиться файлами
  • Вместо этого сохраните в библиотеке SharePoint
  • Нацелены, поэтому работают только с конкретным человеком

И многое другое.

Вся проблема в том, что Microsoft нарушила основное правило безопасности, согласно которому «принцип наименьших привилегий» является королем.

Принцип наименьших привилегий (PoLP) относится к концепции информационной безопасности, согласно которой пользователю предоставляется минимальный уровень доступа или разрешений, необходимый для выполнения его/ее рабочих функций. Это широко считается передовой практикой кибербезопасности и является фундаментальным шагом в защите привилегированного доступа к ценным данным и активам.

Таким образом, тот факт, что для соединений установлены самые высокие привилегии (вы пытаетесь поделиться календарем чтения и даете доступ для записи к электронной почте), является их большим упущением.

К счастью, приложения Canvas — это внутренние бизнес-приложения, поэтому вы находитесь в безопасном месте, но достаточно одного плохого участника (недовольного сотрудника или кого-то с недовольством), чтобы этот карточный домик рухнул. И поскольку все слишком самодовольны в безопасном пространстве, они уязвимы. Не поймите меня неправильно, это не просто проблема Power App (я даже сделал PoC макроса Excel, который сделал то же самое), люди также должны быть осторожны с внутренней электронной почтой.

Итак, как мы это исправим, есть 3 области:


Майкрософт

  1. Power Apps необходимо копировать Google и Apple с гораздо более подробной информацией о подключениях (каждое приложение точно показывает, какие разрешения использует приложение). Фактические детализированные разрешения, которые оно использует, должны быть показаны, так как в моем примере пользователь спрашивал, почему приложение читает мой OneDrive, когда должно просто писать.
  2. Возможность не одобрять их и по-прежнему использовать приложение (даже если оно нарушает функциональность).
  3. Хорошим вариантом будет Power BI, такой как Endorsement, чтобы сказать, что приложение было проверено.
  4. Если приложение использует поток, пользователи должны иметь возможность видеть представление потока, чтобы они знали, что он делает.


Организация

  1. Информируйте своих пользователей о рисках, связанных с предоставлением разрешений приложениям.
  2. Внедряйте проверку кода везде, где это возможно.
  3. Ограничьте общий доступ к приложениям по умолчанию. Даже если просто для «всех в организации» — это хорошее начало, но в идеале ограничение, чтобы любое приложение, совместно используемое более чем x человек, должно быть проверено.


Личный

  1. Мы все должны взять на себя ответственность за свои действия, особенно когда это включает в себя предоставление нашего доступа.
  2. Не используйте приложения от неизвестных людей.
  3. Проверьте разрешения с функциональностью приложений.
  4. Эскалируйте любые опасения.

Если это ты, Бала, спасибо, что был моей морской свинкой, проверь свой Outlook, тебя только что взломали 😎

Изображение на обложке из-и-2