Уязвимость Apache Struts привела к взлому бюро кредитных историй Equifax

Уязвимость Apache Struts привела к взлому бюро кредитных историй Equifax

Уязвимость Apache Struts привела к взлому бюро кредитных историй Equifax

По имеющимся сообщениям, уязвимость, затрагивающая фреймворк для разработки Apache Struts 2, была использована для атаки на бюро кредитных историй Equifax, что привело к получению доступа злоумышленников к данным клиентов.

По заявлениям Equifax, хакеры имели доступ к системам в период с середины мая по конец июля. Инцидент затронул примерно 143 миллиона жителей США. Скомпрометированная информация включает имена, номера социального страхования, даты рождения, адреса и, в некоторых случаях, номера водительских удостоверений.

Согласно формулировке Equifax, «преступники использовали уязвимость веб-приложений для получения доступа к определенным файлам». Однако фирма, специализирующаяся на финансовых услугах, Baird заявила, что проблемным программным обеспечением является Apache Struts, фреймворк, используемый многими ведущими организациями для создания веб-приложений.

«Насколько мы понимаем ситуацию, причиной компрометации данных послужила ошибка в Apache Struts» - говорится в отчете Baird.

Некоторые эксперты сделали вывод, что речь идет об уязвимости, известной под идентификатором CVE-2017-9805, это брешь удаленного выполнения кода, которая возникает, когда плагин REST используется с обработчиком XStream. Однако этот недостаток был устранен 5 сентября с выпуском Struts 2.5.13.

В настоящее время эта уязвимость используется в реальных атаках. По словам комитета по управлению проектом Apache Struts, неясно, какая уязвимость Struts, если таковая имеется, была использована в компрометации Equifax.

Среди исследователей также есть мнение, что в атаке на Equifax более вероятно использовалась уязвимость Apache Struts, известная как CVE-2017-5638. Эта брешь используется киберпреступниками с марта.

«Сценарий использования обеих этих уязвимостей похож - злоумышленник отправляет конкретный HTTP-запрос, содержащий специальный синтаксис. Приложение, получив этот запрос, неправильно его обработает, что приведет к выполнению команд операционной системы» - говорит эксперт Contrast Security, Джефф Уильямс (Jeff Williams).

Расширения Chrome могут слить секреты URL через атаку по стороннему каналу

Как оказалось, расширения Chrome можно использовать для слива кодов авторизации, сеансовых ID и других секретов из URL любой открытой вкладки. Никаких специальных разрешений для этого не понадобится, только доступ к declarativeNetRequest API.

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

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

Исследователь Луан Эррера (Luan Herrera) обнаружил, что блокировку, диктуемую правилами, Chrome производит почти мгновенно, за 10-30 мс, а остальные запросы выполняются дольше (~50-100ms) — из-за сетевых подключений. Эту разницу во времени расширение может использовать для бинарного поиска с целью посимвольного слива URL.

// extensions/browser/api/web_request/extension_web_request_event_router.cc:1117-1127
case DNRRequestAction::Type::BLOCK:
  ClearPendingCallbacks(browser_context, *request);
  DCHECK_EQ(1u, actions.size());
  OnDNRActionMatched(browser_context, *request, action);
  return net::ERR_BLOCKED_BY_CLIENT;

Оракул для подобной тайминг-атаки строится с использованием chrome.tabs.reload для перезагрузки страницы и перехватчика chrome.tabs.onUpdated, помогающего отследить событие status === "complete". Замер времени между reload и завершением загрузки покажет, заблокирован запрос или успешно обработан.

Повторение проверок и бинарного поиска позволяет получить полный URL (с довеском после «?»), затратив на каждый знак строки несколько прогонов. Таким образом, можно незаметно для пользователя украсть включенные приложением в адрес секреты — токены OAuth и сброса пароля, API-ключи, ссылки на контент, закрытый для поисковых систем.

Проверка PoC проводилась на Windows 11 24H2 с использованием Chrome разных версий:

  • 144.0.7559.97 (Stable)
  • 145.0.7632.18 (Beta)
  • 146.0.7647.4 (Dev)
  • 146.0.7653.0 (Canary)

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

RSS: Новости на портале Anti-Malware.ru