Как хакер получил доступ к данным сотни компаний через helpdesk

helpdesk

Рассказывает Мэтью Хьюз, журналист из Ливерпуля, Англия


Сервисы вроде Slack и Yammer используются компаниями так же активно, как кулеры для воды. Инти де Сеукелер, исследователь в области безопасности («белый хакер»), выяснил, как получить доступ к страницам команды компании, используя неисправную бизнес-логику популярных онлайн helpdesk — сервисов поддержки пользователей.

А теперь самое страшное: это действительно сложно исправить.

Кейс 1: добро пожаловать в команду

В ваш первый день работы руководитель хочет, чтобы вы присоединились к корпоративному мессенджеру — Slack. Как правило, это происходит одним из двух способов:

  • администратор вручную отправляет приглашение по электронной почте;
  • пользователь с адресом электронной почты в доменном имени, разрешённом администратором, создаёт учетную запись самостоятельно.

В первом случае злоумышленник может получить доступ к Slack, добыв доступ к учётной записи администратора, или в результате ошибки администратора.

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

Впрочем, не совсем так.

Получить электронную почту в корпоративном домене не так сложно благодаря сервисам технической поддержки и баг-трекерам.

Большинство из них предоставляют пользователям специальный адрес электронной почты для взаимодействия. Человека таким адресом вряд ли возможно обмануть (часто состоят из случайных цифр и букв), а вот сервисы вроде Slack не настолько привередливы, потому что проверяют строкy после «@» и сообщают: «Да, выглядит правильно».

Де Сеукелер создал проект на GitLab, в настройках которого разрешил создавать тикеты через электронную почту. Для этого система создала уникальный адрес электронной почты вида @gitlab.com. Сообщения, отправленные по этому адресу, отображаются в баг-трекере проекта. Де Сеукелер использовал этот адрес, чтобы создать аккаунт в Slack команды одного из гигантов DevOps.

Следуя практике этичного раскрытия уязвимостей, де Сеукелер сообщил об этом сервису Gitlab, который быстро исправил ситуацию и сделал доступ к Slack только по приглашению.

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

Кейс 2: сервис поддержки пользователей

На большинстве веб-сайтов и онлайн-сервисов используется один адрес электронной почты для технической поддержки пользователей, например, support@example.com. Это защищает от описанной выше атаки, но программное обеспечение, которое используется для организации поддержки, как правило, уязвимо.

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

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

Это пугающе опасно. Де Сеукелер знал, что при создании учётной записи Slack письма приходят от feedback@slack.com. Этот адрес, к примеру, позволил ему получить доступ к порталу поддержки Vimeo, а затем создать учетную запись в Slack команды Vimeo.

Позже он сообщил об этом компании Vimeo, которая оперативно отреагировала и выплатила ему вознаграждение в размере 2 000 $ за найденную уязвимость.

Используя тот же метод, Де Сеукелер выявил другие сервисы кроме Slack, которые восприимчивы к такой атаке. Например, он создал учётные записи в командах Yammer и получил доступ к адресам электронной почты для сброса пароля в Twitter.

И это не единичный случай. Половина рассмотренных сервисов поддержки пользователей содержали один и тот же основной недостаток.

Де Сеукелер также нашел проблемы в двух других инструментах — Kayako и Zendesk, которые позволили ему выполнить такую атаку, даже при наличии валидации электронной почты.

Как смягчить угрозу нападения?

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

Хорошая новость: Slack создал защиту от второго вида атаки. Теперь вместо feedback@slack.com письма отправляются с адреса, имя которого формируется с помощью случайного токена. Угадать его практически невозможно.

Но на этом всё. Первая атака до сих пор работает.

Дело не столько в самом Slack. Этому популярному мессенджеру уделено такое внимание в исследовании Де Сеукелера и в этой статье в большей степени из-за позиции на рынке.

К чести сервиса, Slack взял на себя инициативу по решению проблемы и наградил Де Сеукелера премией за обнаружение критической уязвимости, хотя она скорее связана со сторонними сервисами. А вот ответ Yammer, сервиса компании Microsoft, оставил желать лучшего. Реакция оказалась неадекватной, и активных мер не последовало:

Примечание переводчика Сотрудник Центра Microsoft Security Response Center (MSRC) считает, что направленная проблема не соответствует определению уязвимости. В результате отчёт направлен для рассмотрения команде Yammer (откуда Де Сеукелеру так и не ответили).

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

В противном случае бремя защиты лежит на владельцах программного обеспечения. Это продемонстрировал Gitlab, который защитил себя, сделав регистрацию в команде Slack только по приглашению. Лучше перенести как можно больше такой работы на людей и не надеяться на автоматизацию.

Так же разумно использовать другое доменное имя для баг-трекера. Вместо того, чтобы раздавать адрес вида @gitlab.com, лучше использовать @gitlab-issues.com для обратной связи.

Де Сеукелер рекомендует это, когда говорит: “Компании вроде Airbnb, LinkedIn и GitHub предоставляют адреса электронной почты с другого домена вроде @reply.linkedin.com и @mail.github.com. Эти адреса невозможно использовать описанным способом для регистрации в сервисах вроде Yammer или Slack«.

Интервью с хакером

Это не первое родео де Сеукелера. Бельгийский ветеран информационной безопасности раньше показывал, как подменить ссылки в старых твитах президента Дональда Трампа, и нашёл адрес электронной почты первой леди США в результате небольшого расследования.

Это исследование, конечно, другого уровня. В нём затронуто программное обеспечение, на котором построено общение и координация в бизнесе. Доступ к Slack, к примеру, даёт огромные возможности наблюдения.

Проблема до сих пор применима. Масштаб не позволял сообщить отдельно каждому заинтересованному лицу, поэтому Де Сеукелер был вынужден обнародовать её.

Тем не менее, он считает, что компании и физические лица должны взвешенно относиться к этому вопросу. Отвечая TNW по электронной почте, де Сеукелер сказал, что ему понадобилось некоторое время, чтобы раскрыть этот вопрос. Он не знал, что с ним делать. Сохранить для себя и попытаться получить как можно больше денег в программах bug bounty — это не принесло бы пользу обществу, да и этически неправильно. Чем больше людей знает об уязвимости, тем выше вероятность эксплуатации, поэтому он начал работу со Slack, чтобы предотвратить это на уровне выше. Непосредственно вины Slack нет в том, что существует такая уязвимость, но они решили содействовать из-за масштаба уязвимости. Благодаря внесённым изменениям, теперь невозможно выполнить эту атаку в небезопасно настроенной среде службы поддержки пользователей. Сделано всё возможное, чтобы уменьшить риск, но некоторые компании ещё под угрозой.

Пользователям не стоит бояться. Для применения уязвимости злоумышленнику требуется зарегистрировать адрес электронной почты, поэтому эксплуатация возможна только одним человеком. Де Сеукелер не нашёл ни одного случая, указывающего на то, что такие адреса электронной почты зарегистрированы. Благодаря внесённым исправлениям, только некоторые компании по-прежнему под угрозой, но Де Сеукелер напоминает о важности надежной системы аутентификации.

Реакция компаний

Я связался со Slack и Yammer. Slack отказался давать комментарии, а представитель Microsoft поставил под вопрос актуальность угрозы для Yammer, аргументируя, что описанная техника не раскрывает уязвимость: для эксплуатации злоумышленнику сначала нужно скомпрометировать учётную запись описанным методом. Microsoft призывает пользователей внедрять передовые методы кибербезопасности для защиты от атак, подробная информация размещена на YouthSpark.

Я также связался с Vimeo и Gitlab. Пресс-секретарь Vimeo сказал, что они используют программы bug bounty вроде HackerOne, чтобы быть проактивными в плане безопасности и исправлять уязвимости прежде, чем они повлияют на бизнес или пользователей. Политика реагирования Vimeo на инциденты в области безопасности позволяет немедленно принять меры и определить соответствующее вознаграждение тем, кто помогает защитить их системы.

Брайан Нил, руководитель службы безопасности GitLab, также говорил о важности взаимодействия с сообществом информационной безопасности для защиты сервиса. GitLab работает с программами bug bounty для выявления уязвимостей в платформе и их исправления до обострения ситуации. Это именно то, что произошло с последней уязвимостью в их корпоративном канале Slack. После уведомления HackerOne они перевели регистрацию новых пользователей Slack в режим только по приглашению и ответ сделали только по e-mail.

Заключение

Об исследованиях Де Сеукелера можно прочитать в блоге freeCodeCamp. И, хотя вы не обязаны отказываться от использования инструментов вроде Slack, стоит помнить, что это козырь, который может дать злоумышленнику ключи от вашего «королевства».

Перевод статьи «This hacker gained access to hundreds of companies through their helpdesk»