Инциденты и уязвимости
Массовая утечка MOVEit (2023) — как zero-day SQL-инъекция достигла 2700+ организаций и как защититься
Zero-day SQLi (CVE-2023-34362) в MOVEit, массово эксплуатируемая Cl0p до выхода патча — 2700+ организаций, ~93,3 млн человек, большинство задеты через поставщика. Цепочка атаки как карта обороны и важнейшие исправления.
Мы читаем реальные публичные инциденты не как повторный прогон новостей, а через призму «как бы вы от этого защитились». Эта статья основана на публичных материалах (ведомства, бюллетени поставщиков, threat intelligence, журналистика), ссылки приведены в конце. Без шагов атаки или payload-ов.
- Цель
- MOVEit Transfer (продукт передачи файлов от Progress Software) и организации и клиенты, его использующие
- Начало эксплуатации
- около 27 мая 2023 (уикенд Memorial Day в США)
- Класс
- zero-day SQL-инъекции в публичном веб-приложении → веб-шелл → кража данных из базовой БД, плюс вымогательство
- Масштаб
- 2700+ организаций, ~93,3 млн человек (позднейшие оценки выше)
- Первопричина
- неизвестная SQLi-уязвимость + массовая эксплуатация до патча + веб-уровень, способный читать всю базовую БД + распространение через поставщиков
- Настоящие исправления
- быстрый патчинг KEV, минимизация открытости, минимальные привилегии и сегментация web↔БД, инвентаризация поставщиков и минимизация данных
Что произошло (простыми словами)
MOVEit Transfer — продукт для безопасной передачи файлов между организациями, и многие запускали его открытым в интернет. У его публичного веб-интерфейса была zero-day SQL-инъекция — уязвимость, где ввод переписывает смысл запроса к базе данных.
Группа Cl0p эксплуатировала её до появления исправления, чтобы установить веб-шелл (вредоносную программу удалённого управления, в публичных материалах названную «LEMURLOOT») на открытых экземплярах MOVEit. С его помощью они массово прочитали файлы и информацию пользователей, хранившиеся в базе данных за продуктом, и эксфильтровали их. Затем Cl0p взяла на себя ответственность на сайте утечек и потребовала выкуп, угрожая опубликовать данные.
«Прибор передачи файлов» — это карта сокровищ для злоумышленника
Продукты передачи файлов по своей природе концентрируют чувствительные данные множества организаций и часто выходят в интернет для бизнес-использования. Для злоумышленника это высокоценная цель: «взломай один — доберись до массы данных». Поэтому такой публичный прибор нужно защищать исходя из того, что он будет среди первых, по чему ударят в момент появления zero-day.
Цепочка атаки — это ещё и карта обороны
Важно, что это была цепочка из четырёх шагов, и на каждом шаге было место для остановки. Читайте это не как рецепт атаки, а как где её можно было пресечь.
1. Вход: zero-day SQLi в публичном веб-приложении
неизвестная уязвимость SQL-инъекции в выходящем в интернет интерфейсе.
⊘ остановка: минимизация открытости (за VPN / список разрешённых IP)
2. Установлен веб-шелл
уязвимость используется для установки программы удалённого управления.
⊘ остановка: быстрый патчинг KEV (закрыть активную дыру за часы–дни)
3. Данные украдены из базовой БД
веб-уровень массово читает хранимые данные из базы данных.
⊘ остановка: минимальные привилегии web↔БД, сегментация, обнаружение массового чтения
4. Распространение на тысячи через поставщиков
от поставщиков, использовавших MOVEit, к данным их клиентов.
⊘ остановка: инвентаризация поставщиков + минимизация передаваемых данных
Хронология (по раскрытым данным)
2023-05-27
Cl0p начинает массовую эксплуатацию zero-day в MOVEit Transfer (уикенд Memorial Day в США).2023-05-31
Progress Software раскрывает CVE-2023-34362 и выпускает экстренный патч.2023-06-02
CISA добавляет CVE-2023-34362 в каталог KEV (известных эксплуатируемых уязвимостей).2023-06-06
Cl0p берёт ответственность на своём сайте утечек и начинает вымогательство.2023-06-07
CISA/ФБР публикуют совместный бюллетень #StopRansomware (AA23-158A).2023→
Число затронутых организаций и людей продолжает расти по мере выявления влияния через поставщиков.
Первопричина — не «одна ошибка», а проседающие слои
Подшить это под «у MOVEit был баг» гарантирует повтор. На деле несколько слоёв отказали последовательно.
Конфигурация, которая отказала (на тот момент)
- прибор, концентрирующий чувствительные данные, широко открытый в интернет
- массово эксплуатирован в окне zero-day, до патча
- веб-уровень, способный читать всю базовую БД (слабая сегментация/привилегии)
- нет видимости практик поставщиков, поэтому распространение нельзя было остановить
Защищённая конфигурация (профилактика)
- минимизировать открытость (за VPN / список разрешённых IP; закрыть неиспользуемые функции)
- быстрый патчинг KEV (сначала применять исправления для активно эксплуатируемого)
- сегментировать и минимальные привилегии web↔БД + обнаружение массового чтения
- инвентаризация поставщиков + минимизация данных для сокращения радиуса поражения
Цепочка поставок: ваша безопасность зависит от «того, кому вы это передали»
Определяющая черта этой утечки в том, что большинство жертв сами не использовали MOVEit. Поскольку его использовал поставщик или провайдер, которому они доверили данные (зарплата, пенсии, страхование), их клиентов затянуло вниз по цепочке (та же форма проявляется в инциденте с цепочкой поставок Codecov). Поэтому, передавая данные третьей стороне, спрашивайте и «какова их практика работы с уязвимостями?», и «а нужно ли вообще передавать эти данные?»
Как предотвратить повтор в вашей среде
Исправления в порядке приоритета, работающие в любом масштабе. Если у вас есть хотя бы одна «выходящая в интернет административная функция / функция передачи файлов» или «отношение, где вы передаёте данные третьей стороне», — это про вас.
Минимизируйте открытость (сократите цель)
Не выставляйте административные функции и функции передачи файлов напрямую в интернет, где это можно избежать. Поставьте их за VPN или список разрешённых IP и закройте/изолируйте неиспользуемые функции и старые приборы. Сужение того, до чего может дотянуться злоумышленник, — первый шаг.
Сначала патчите уязвимости из списка KEV (быстрый патчинг)
Когда продукт, который вы используете, попадает в список активно эксплуатируемых (KEV), применяйте исправление в течение часов–дней. Zero-day предотвратить нельзя, но захлопывание окна после патча избегает основной части ущерба (→ практика реагирования на уязвимости, лента угроз).
Сегментируйте веб-приложение от базовой БД, минимальные привилегии
Чтобы взломанное публичное веб-приложение было локализовано, ограничьте привилегии так, чтобы веб-уровень не мог читать всю базовую БД, и сегментируйте сеть. Настоящее исправление SQLi — плейсхолдеры, но сегментация и минимальные привилегии сокращают радиус поражения, если что-то проскользнёт.
Инвентаризируйте поставщиков и минимизируйте передаваемые данные
Перечислите, кто держит ваши данные (поставщики, SaaS, провайдеры), и держите контактный путь на случай крупных инцидентов. И минимизируйте данные, которые вы вообще передаёте — данные, которые вы никогда не отправляли, не могут утечь при их взломе.
Где это пересекается с устройством этого сайта
Этот сайт тоже построен на минимизации открытости и машинном мониторинге активно эксплуатируемых (KEV) уязвимостей для быстрого их патчинга (через собственный аудит зависимостей и ленту угроз). Этот инцидент — самый красноречивый пример того, почему принципы, которых мы держимся в продукте — сужать то, что открыто, убивать KEV-уязвимости в первую очередь, разделять слои для сокращения радиуса поражения, минимизировать передаваемые данные — действительно важны. Сам zero-day избежать нельзя, но практику, захлопывающую окно после патча, и дизайн, локализующий ущерб при взломе, может внедрить кто угодно, в любом масштабе.
Источники (публичные материалы)
Факты здесь основаны на следующей публичной информации. Без воспроизведения атаки или payload-ов — только уроки защиты.
- CISA / FBI, "#StopRansomware: CL0P Ransomware Gang Exploits CVE-2023-34362 MOVEit Vulnerability" (AA23-158A, 2023) — cisa.gov
- Progress Software official advisory, "MOVEit Transfer Critical Vulnerability (CVE-2023-34362)" (2023) — community.progress.com
- Mandiant (Google Cloud), "Zero-Day Vulnerability in MOVEit Transfer Exploited for Data Theft" (2023) — cloud.google.com
- Rapid7, "CVE-2023-34362: MOVEit Vulnerability Timeline of Events" (2023) — rapid7.com
Читать дальше
- Глоссарий: что такое SQL-инъекция (вход этой утечки, с настоящим исправлением)
- Инцидент: инцидент с цепочкой поставок Codecov (утечка через того, кому вы доверяли)
- На практике: практика реагирования на уязвимости (сначала патчить KEV)
- Готовность: резервное копирование и восстановление (готовность к программам-вымогателям)
FAQ
QВ чём была первопричина утечки MOVEit?
Неизвестная (zero-day) уязвимость SQL-инъекции (CVE-2023-34362) в выходящем в интернет продукте MOVEit Transfer. Злоумышленники эксплуатировали её, чтобы установить веб-шелл (вредоносную программу удалённого управления) и массово прочитать хранимые файловые данные из базы данных за продуктом. Сочетание массовой эксплуатации до появления патча и веб-уровня, способного читать всю базовую БД, сделало это тяжёлым.
QЯ не использую MOVEit — почему это меня затрагивает?
Большинство жертв сами не были пользователями MOVEit; их задело, потому что MOVEit использовал поставщик, партнёр или сервис-провайдер, которому они доверили данные. Это классическая утечка через цепочку поставок: безопасность ваших данных зависит и от практик патчинга того, кому вы их передаёте. Помогают инвентаризация поставщиков и минимизация передаваемых данных.
QЕсть ли чему поучиться небольшому сервису?
Да. (1) Выходящие в интернет административные функции и функции передачи файлов — главные цели, поэтому минимизируйте открытость и патчите всё из списка KEV (активно эксплуатируемое) в течение часов–дней. (2) Сегментируйте базу данных за веб-приложением и ограничьте привилегии, чтобы веб-уровень не мог читать всё. (3) Минимизируйте данные, передаваемые третьим сторонам. Всё это работает в любом масштабе.