Атака на 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