Атака на HackerOne, позволившая получить доступ к закрытым отчётам об уязвимостях

Платформа HackerOne, дающая возможность исследователям безопасности информировать разработчиков о выявлении уязвимостей и получать за это вознаграждения, получила отчёт о собственном взломе. Одному из исследователей удалось получить доступ к учётой записи аналитика по безопасности компании HackerOne, имеющего возможность просмотра закрытых материалов, в том числе со сведениями об ещё не устранённых уязвимостях. За время существования платформы через HackerOne исследователям в сумме было выплачено 23 млн долларов за выявление уязвимостей в продуктах более 100 клиентов, среди которых Twitter, Facebook, Google, Apple, Microsoft, Slack, Пентагон и ВМС США.

Примечательно, что захват учётной записи стал возможен из-за человеческого фактора. Один из исследователей отправил на рассмотрение заявку о потенциальной уязвимости в HackerOne. Аналитик HackerOne в ходе разбора заявки попытался повторить предложенный метод взлома, но проблему воспроизвести не удалось, и автору заявки был отправлен ответ с запросом дополнительных деталей. При этом аналитик не заметил, что вместе с результатами неудачной проверки по недосмотру отправил содержимое своей сессионной Cookie. В частности, в ходе диалога аналитик привёл пример выполненного утилитой curl HTTP-запроса, включающего HTTP-заголовки, из которых забыл почистить содержимое сессионной Cookie.

Исследователь заметил данную оплошность и смог получить доступ к привилегированной учётной записи на сайте hackerone.com, просто подставив замеченное значение Cookie без необходимости прохождения применяемой в сервисе многофакторной аутентификации. Атака стала возможной, так как на hackerone.com не применялась привязка сеанса к IP или браузеру пользователя. Проблемный сессионный идентификатор был удалён через два часа после публикации отчёта об утечке. За информирование о проблеме исследователю решено выплатить 20 тысяч долларов.

HackerOne инициировал аудит для анализа возможного возникновения подобных утечек Cookie в прошлом и для оценки потенциальных утечек закрытых сведений о проблемах клиентов сервиса. Аудит не выявил фактов утечек в прошлом и определил, что продемонстрировавший проблему исследователь мог получить сведения о примерно 5% из всех представленных в сервисе программ, к которым был открыт доступ аналитику, сессионный ключ которого был использован.

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

Источник: opennet.ru