ADG Оставить заявку
Блог Информационная безопасность 4 мин чтения

Equifax: когда патч лежал три месяца, а потом утекло 143 миллиона записей

Взлом Equifax через CVE-2017-5638 в Apache Struts: уязвимость закрыта в марте, взлом - в мае. Разбираем хронологию и сверяем свой patch-management с реальностью.

Контекст момента

7 сентября 2017 Equifax раскрыл компрометацию 143 млн записей через уязвимость Apache Struts CVE-2017-5638, эксплуатировавшуюся с мая 2017

Вчера Equifax объявил, что с мая по июль у них незаметно утекали данные 143 миллионов человек. Вектор атаки - CVE-2017-5638 в Apache Struts 2, уязвимость в обработке Content-Type заголовка, позволяющая выполнить произвольный код без какой-либо аутентификации. Патч для неё вышел 7 марта 2017. Взлом начался в мае. Два с лишним месяца прошло между «патч доступен» и «мы наконец-то его поставили» - и за эти месяцы кто-то терпеливо скачивал базы.

Масштаб неприятный даже по меркам крупных утечек. Имена, номера социального страхования, даты рождения, адреса, в части случаев - номера водительских удостоверений и банковских карт. Equifax - одно из трёх крупнейших кредитных бюро США, то есть данные людей там не по их собственному желанию, а по факту кредитной истории. Выбора «не храниться» у людей не было.

Мы следили за CVE-2017-5638 с марта - уязвимость получила CVSS 10.0 и активно эксплуатировалась уже через несколько дней после публикации PoC. В нашей практике аудита это стандартный маркер: если уязвимость имеет публичный эксплойт и CVSS выше 9, счёт идёт на часы, не на недели.

Хронология, которая всё объясняет. 7 марта Apache Foundation выпустил Struts 2.3.32 и 2.5.10.1 с закрытой дырой. Параллельно пошла волна сканирований - боты искали уязвимые инсталляции по всему интернету. По данным исследователей, в первые дни атаки фиксировались тысячами в сутки. В мае - по официальной версии Equifax - злоумышленники нашли их уязвимый сервер. Компания обнаружила активность только 29 июля, когда проводила анализ трафика по другому поводу. Два с лишним месяца незамеченного дампа.

Самое показательное здесь не сам факт взлома, а разрыв между патчем и его применением. В крупных компаниях с легаси-инфраструктурой patch management часто выглядит так: Security присылает бюллетень, команда эксплуатации ставит задачу в очередь, задача висит до ближайшего maintenance window, maintenance window раз в квартал. Это не злой умысел - это инерция больших систем. Но когда у уязвимости CVSS 10 и публичный эксплойт, эта инерция буквально стоит компании существования.

Что у нас по этому поводу. Мы прошлись по своему pipeline-у патчинга и зафиксировали реальные цифры:

  • Критические CVE (CVSS >= 9, публичный эксплойт) - целевое окно 72 часа от публикации патча. На практике по последним шести месяцам - укладывались в 48-96 часов в зависимости от сложности тестирования.
  • Высокие CVE (CVSS 7-8.9) - 7 рабочих дней, обычно следующий плановый цикл.
  • Средние и ниже - плановый цикл, раз в месяц.

Критические выбиваются из обычного ритма принудительно - maintenance window не ждём, откатной план готовим на ходу, уведомляем заказчика за 2 часа вместо обычных суток. Это создаёт трение, но альтернатива понятна из новостей.

Второй момент, который Equifax поднял в голос: обнаружение. Они не заметили утечку полтора месяца. Это не редкость - без нормального мониторинга исходящего трафика и аномалий в обращениях к БД заметить медленный дамп крайне сложно. CVE-2017-5638 позволяет выполнять команды через веб-запросы, которые при беглом взгляде выглядят как обычные ошибки парсинга. Если в логах нет анализа аномального объёма ответов или нетипичных обращений к внутренним ресурсам - пропустить реально.

Что проверяем у себя и у заказчиков после этого кейса:

  • Инвентаризация Java-фреймворков - Struts, Spring, Wicket и прочие. Они часто живут в неочевидных местах: внутренние порталы, биллинг, legacy-интеграции. Тот сервер Equifax, через который утекло, был вообще не продакшн-facing, а внутренним порталом для сотрудников.
  • Мониторинг аномального исходящего трафика - объём ответов, нетипичные destination IP, запросы к внутренним сегментам из DMZ.
  • Тестирование патч-процесса на критических CVE - не процедура на бумаге, а реальное время от публикации до деплоя с логом.

После истории с MS17-010 в марте у нас уже был разговор про приоритизацию патчей. Equifax добавляет к нему следующий вопрос: а у вас вообще есть список всего, что крутится под Java и Apache в инфраструктуре? Не теоретический, а актуальный? Обычно ответ «ну примерно да» - и это уже повод для аудита.

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

Контакт

Нужна такая же инженерная работа?

Опишите задачу и контекст. Ответим в течение рабочего дня, при необходимости подпишем NDA.