В «Лаборатории Касперского» мы постоянно наблюдаем за изменениями ландшафта киберугроз, чтобы своевременно реагировать на новые угрозы, наполняя продукты детектирующими логиками и технологиями. Одна из ключевых составляющих этого ландшафта — уязвимости в программном обеспечении, которыми могут воспользоваться или уже пользуются злоумышленники. В этом отчете мы продемонстрируем ряд интересных статистических и аналитических срезов, которые касаются как трендов в появлении новых уязвимостей и эксплойтов, так и самых распространенных уязвимостей, которые уже используются в кибератаках. Помимо этого, мы подробно разберем несколько интересных уязвимостей, которые были обнаружены в первом квартале 2024 года.
Статистика по зарегистрированным уязвимостям
Для удобства управления уязвимостями вендор может зарегистрировать их и присвоить им CVE-идентификаторы. Все идентификаторы и открытая информация по ним публикуются на сайте https://cve.mitre.org (на момент написания отчета находится в процессе переезда на новый домен https://www.cve.org/). Хотя вендоры далеко не всегда регистрируют уязвимости и список CVE нельзя считать исчерпывающим, на его основе можно прослеживать определенные тренды. Мы проанализировали данные по зарегистрированным уязвимостям в ПО и сравнили их количество за последние пять лет.
Количество новых зарегистрированных CVE, 2019–2023 гг. Падение в 2024 году обусловлено тем, что данные представлены только за первый квартал (скачать)
Как можно видеть на графике, в последнее время число новых уязвимостей стабильно растет с каждым годом. Этому есть несколько причин.
Во-первых, популяризация программ Bug Bounty и соревнований по поиску уязвимостей серьезно стимулировала исследования в этой области. Как следствие, уязвимостей в последнее время находят все больше. По этой же причине все больше вендоров регистрируют найденные уязвимости, а значит, растет количество CVE.
Во-вторых, компании — разработчики популярного ПО, операционных систем и языков программирования внедряют все больше защитных решений и новых процедур, повышающих эффективность мониторинга уязвимостей в программном обеспечении. Это приводит к тому, что, с одной стороны, уязвимости обнаруживаются чаще, с другой — целые классы старых уязвимостей теряют актуальность. Поэтому и злоумышленники, и исследователи безопасности, которые стремятся их опередить, активно ищут новые типы уязвимостей и создают автоматизированные сервисы, позволяющие обнаруживать их еще более эффективно.
Наконец, с течением времени появляются новые программы, а уже существующие обновляются и усложняются, что может приводить к возникновению новых уязвимостей. На фоне стремительного развития технологий, вероятнее всего, количество обнаруженных уязвимостей будет только расти из года в год.
При этом стоит отметить, что разные уязвимости представляют разный уровень угрозы для безопасности. В частности, среди них можно выделить критические. Мы подсчитали долю критических уязвимостей, опираясь на данные из перечня зарегистрированных CVE, а также на результаты внутреннего тестирования воспроизводимости уязвимостей.
Количество новых зарегистрированных CVE, а также доля критических среди них, 2019–2023 гг. Падение в 2024 году обусловлено тем, что данные представлены только за первый квартал (скачать)
Как можно видеть на графике, количество критических уязвимостей растет скачкообразно. Так, в 2021 и 2022 годах доля критических среди общего числа уязвимостей была сопоставима, тогда как с 2019 по 2021 год и с 2022 по 2023 год она росла. Примечательно, что 2023 год стал рекордным по числу обнаруженных критических уязвимостей в различном программном обеспечении. При этом в первом квартале 2024 года доля критических уязвимостей среди всех зарегистрированных остается высокой. Это в очередной раз подчеркивает важность грамотного патч-менеджмента, а также необходимость использования защитных решений, способных предотвратить эксплуатацию уязвимостей.
Статистика по эксплуатации уязвимостей
Этот раздел содержит статистику по эксплойтам, полученную как из открытых источников, таких как список зарегистрированных CVE, так и из нашей телеметрии.
Эксплойт — это программа, содержащая данные или исполняемый код, который позволяет использовать одну или несколько уязвимостей в программном обеспечении на локальном или удаленном компьютере с заведомо вредоносной целью. Наибольший интерес для разработчиков эксплойтов представляют уязвимости ПО, эксплуатация которых дает возможность получить контроль над системой пользователя.
Создавать эксплойты могут злоумышленники, которые продают свои творения на теневых форумах или используют их в собственных целях. Также энтузиасты, в том числе участники различных программ Bug Bounty, могут создавать эксплойты, чтобы иметь возможность разработать меры противодействия до того, как уязвимость обнаружат злоумышленники.
Эксплуатация уязвимостей в Windows и Linux
Ниже представлена динамика числа пользователей решений «Лаборатории Касперского» для Linux и Windows, сталкивавшихся с эксплуатацией уязвимостей в течение 2023 года и в первом квартале 2024-го. Статистика основана на данных Kaspersky Security Network, добровольно предоставленных нашими пользователями.
Динамика числа пользователей Windows, столкнувшихся с эксплойтами, Q1 2023 г. — Q1 2024 г. За 100% принято число пользователей, столкнувшихся с эксплойтами в первом квартале 2023 года (скачать)
Динамика числа пользователей Linux, столкнувшихся с эксплойтами, Q1 2023 г. — Q1 2024 г. За 100% принято число пользователей, столкнувшихся с эксплойтами в первом квартале 2023 года (скачать)
Как видно на графике, число пользователей Windows, столкнувшихся с эксплуатацией уязвимостей, оставалось относительно стабильным в течение 2023 года, тогда как число затронутых пользователей Linux весь год росло. При этом в обоих случаях речь не обязательно идет об одних и тех же уязвимостях. Некоторые из них довольно быстро теряют актуальность, и злоумышленники переключаются на более новые.
Проиллюстрируем динамику популярности конкретных уязвимостей на примере CVE-2023-38831 в WinRAR:
Динамика популярности уязвимости CVE-2023-38831 в WinRAR, сентябрь 2023 г. — март 2024 г. (скачать)
График показывает, что уязвимость была весьма популярна почти сразу после ее регистрации в сентябре 2023 года, однако постепенно теряла актуальность, так как пользователи устанавливали патчи. Это лишний раз подчеркивает, что уязвимости интересны злоумышленникам, пока мало кто установил исправления.
Статистика по публичным эксплойтам
Наличие эксплойта, особенно если он доступен на публичных площадках, таких как GitHub, — один из важных критериев оценки критичности уязвимости. Мы проанализировали данные по опубликованным эксплойтам к зарегистрированным уязвимостям.
Количество уязвимостей и доля среди них тех, для которых существуют эксплойты, 2019–2024 гг. (скачать)
Статистика показывает рост общего числа эксплойтов, среди которых есть как готовые к использованию, так и «сырые» PoC. Последние могут работать нестабильно, но иллюстрируют возможность эксплуатации уязвимости и могут быть доработаны в перспективе. Стоит отметить, что среди злоумышленников существует спрос как на новые эксплойты, так и на доработку уже опубликованных, к примеру, на оптимизацию для работы с несколькими операционными системами, добавление новых способов обработки данных, повышение стабильности и так далее.
Самые распространенные эксплойты
Мы непрерывно мониторим публикуемые эксплойты к различным уязвимостям, уделяя особое внимание критическим. По результатам анализа этих эксплойтов мы разделили ПО, представляющее особый интерес для злоумышленников, на несколько классов:
- Браузеры;
- Операционные системы (Windows, Linux, macOS);
- Серверы MS Exchange и их компоненты;
- Серверы MS SharePoint и их компоненты;
- Пакет инструментов MS Office;
- Все остальные приложения, не попадающие в первые пять классов.
Рассмотрим, к каким классам программного обеспечения в 2023 году и первом квартале 2024 года относилось больше всего критических уязвимостей, для которых существуют рабочие эксплойты:
Распределение эксплойтов к критическим уязвимостям по платформам, 2023 г. (скачать)
Распределение эксплойтов к критическим уязвимостям по платформам, Q1 2024 г. (скачать)
Полученные данные показывают, что по критичности уязвимостей и количеству рабочих эксплойтов к ним лидируют следующие категории ПО:
- Операционные системы;
- Браузеры.
При этом в первом квартале 2024 года мы также видели довольно много эксплойтов к серверам Exchange. Кроме того, значительное количество эксплойтов попадает в категорию прочих программ. Это обусловлено многообразием программного обеспечения, которое может быть установлено на системы пользователей для выполнения бизнес-задач.
Использование уязвимостей в APT-атаках
Эксплуатация уязвимостей в ПО — это неотъемлемая часть практически любой APT-атаки, нацеленной на инфраструктуры организаций. Мы проанализировали доступные данные об APT-атаках за 2023 год и первый квартал 2024-го и выяснили, какое ПО злоумышленники эксплуатируют чаще всего. Ниже представлены уязвимости, которые APT-группировки использовали наиболее активно в 2023 году и начале 2024 года.
Приведенная выше статистика позволяет сделать вывод, что на данный момент у злоумышленников популярны атаки со следующими точками входа:
- Уязвимые сервисы удаленного доступа (Ivanti, ScreenConnect);
- Уязвимые механизмы разграничения доступа (Windows SmartScreen);
- Уязвимые офисные приложения. Примечательно, что эксплойты для пакета MS Office, долгое время возглавлявшие список самых распространенных в атаках, в 2023 году уступили первую строчку уязвимости в WinRAR.
Таким образом, можно сделать вывод, что в основном APT-группы эксплуатируют уязвимости при получении первоначального доступа к инфраструктуре. В большинстве случаев речь идет либо о пробитии периметра (например, эксплуатации уязвимых сервисов, доступных из интернета, таких как VPN и веб-приложения), либо об эксплуатации офисных программ в комплекте с социальной инженерией (например, отправке зараженного документа или архива по почте сотрудникам компании).
Интересные уязвимости первого квартала 2024 года
В этом разделе мы рассмотрим наиболее интересные уязвимости, зарегистрированные в первом квартале 2024 года.
CVE-2024-3094 (XZ)
В конце марта в пакете утилиты для сжатия данных XZ обнаружили бэкдор. В исходный код библиотеки для работы с архивированными данными злоумышленники добавили код, который в результате измененной процедуры сборки попадал в скомпилированную библиотеку. При загрузке такой библиотеки вредоносный код начинал модифицировать в памяти функции, которые экспортируются некоторыми дистрибутивами для работы SSH-серверов, так, чтобы злоумышленники могли отправлять команды на инфицированный сервер.
Функциональность бэкдора примечательна тем, что злоумышленники смогли добавить вредоносные алгоритмы в популярную библиотеку, что до этого момента проделывали всего несколько раз за всю историю приложений с открытым исходным кодом. Более того, на фоне большинства подобных атак эта выделяется сложностью и многоэтапностью заражения. Использовать бэкдор не смог бы никто, кроме автора вредоносного кода.
CVE-2024-20656 (Visual Studio)
Уязвимость в Visual Studio позволяет атакующим повысить привилегии в системе. Злоумышленник может использовать ее для проведения атаки типа «сброс DACL» в ОС Windows. DACL (Discretionary Access Control List) — это список управления доступом, который описывает уровень доступа пользователей к совершению определенных операций над объектом. Если этот список сбросить, снимаются все ограничения на доступ к системным файлам или директориям, и любые пользователи могут делать с ними что угодно. Эта уязвимость интересна алгоритмом эксплуатации.
В исходном коде эксплойта, который мы изучили, работа сервиса отладки приложений в Visual Studio перенаправляется с одной директории на другую через связку SymLink: DummyDir=> Global\\GLOBALROOT\\RPC Control => TargetDir, где DummyDir — это специально созданная злоумышленником общедоступная директория, а TargetDir — директория, к которой он хочет получить доступ. При перенаправлении сервиса отладки приложений с DummyDir на TargetDir последняя получает настройки доступа, аналогичные DummyDir.
Этот метод использования ссылок для выполнения точечных действий над защищенными файлами довольно сложно пресечь, так как не все файлы в системе могут быть защищены от записи. Это значит, что в перспективе его могут использовать и для эксплуатации других уязвимостей. Если найти файл или зависимость, которые используются целевым сервисом ОС, и снять с них ограничения на модификацию, то после работы эксплойта пользователь может просто перезаписать эти файл или зависимость. Со следующим запуском код, добавленный злоумышленниками, стартует в атакованном сервисе и будет иметь тот же уровень доступа, что и сам сервис.
На данный момент нам не известны случаи использования этой уязвимости в реальных атаках, однако она имеет такие же примитивы для эксплуатации, как и уязвимость CVE-2023-36874, которую злоумышленники начали использовать еще до обнаружения.
CVE-2024-21626 (runc)
Виртуализация, основанная на функциях ОС, или контейнеризация, сегодня достаточно часто используется для масштабирования приложений и построения отказоустойчивых систем. Поэтому в системах, которые позволяют управлять контейнерами, уязвимости критичны.
Данная уязвимость — следствие особенностей работы системного вызова fork ядра ОС Linux, а именно — способа запуска дочернего процесса, который копируется из родительского.
Это позволяет достаточно быстро запускать приложения, но содержит опасность, о которой не всегда помнят разработчики. Полное копирование процесса подразумевает, что часть данных родительского процесса может быть доступна из дочернего. Если в коде приложения не происходит мониторинга таких данных, то может возникнуть уязвимость раскрытия данных, CWE-403 — Exposure of File Descriptor to Unintended Control Sphere (доступность файлового дескриптора непредусмотренному процессу) согласно классификации CWE.
Уязвимость CVE-2024-21626 как раз и является наглядным примером описанной выше проблемы. В пакете инструментов Docker инструмент runc используется для того, чтобы создавать и запускать контейнеры, поэтому по отношению к runc работающий контейнер является дочерним. Если из этого контейнера попробовать обратиться к директории /proc/self, можно получить дескрипторы всех файлов, которые были открыты процессом runc. Навигация по доступным ресурсам и дескрипторам в Linux происходит по правилам работы с файловой системой, поэтому для эксплуатации уязвимости почти сразу начали использовать относительный путь до интерпретаторов, которые доступны родительскому процессу, чтобы с их помощью совершить побег из контейнера.
Эксплуатацию уязвимости можно детектировать через активности в уже работающем контейнере. Основным паттерном, который проявляется при эксплуатации, можно считать попытки обращения контейнера к файловой системе по пути:
/proc/self/cwd/../
CVE-2024-1708 (ScreenConnect)
ConnectWise ScreenConnect — это ПО для доступа к удаленному рабочему столу. Приложение включает в себя непосредственно приложения, которые работают в системах клиентов, и сервер, который может использоваться для управления клиентами. На сервере работает веб-приложение, которое как раз и содержит рассматриваемую уязвимость.
Считается, что самый критичный механизм, который есть в веб-приложениях, — механизм разграничения доступа. Работает он только в том случае, если в веб-приложении каждая функция и каждый параметр, доступные пользователю, контролируются и проверяются перед использованием в алгоритме приложения. В ScreenConnect мониторинг и контроль запросов оказались недостаточными. Атакующий мог заставить систему выполнить сброс настроек, просто добавив знак / в URL к исходному запросу (например, http://vuln.server/SetupWizard.aspx). В результате злоумышленник мог зайти в систему от имени администратора и использовать сервер в злонамеренных сценариях.
Эта уязвимость активно используется злоумышленниками, поэтому мы рекомендуем пользователям ScreenConnect применить выпущенный разработчиками патч и настроить правила брандмауэра для ограничения доступа к веб-интерфейсу сервера.
CVE-2024-21412 (Windows Defender)
Целью большинства атак на системы пользователей является выполнение вредоносных команд. Выполнять эту задачу стараются различными способами, однако самый популярный и стабильный — это запуск вредоносного файла. Чтобы минимизировать риск несанкционированного запуска приложений, в ОС Windows работает механизм, который получил название Фильтр SmartScreen. Он используется для проверки сайтов, которые посещает пользователь, и файлов, скачанных из интернета. При старте проверки пользователь видит экран блокировки:
Такое уведомление может заставить пользователя задуматься, действительно ли он хочет запустить приложение. Поэтому злоумышленники сегодня стараются найти способы обмануть фильтр. Одним из таких способов и является эксплуатация CVE-2024-21412.
Обман механизма защиты основывается на простом принципе — если фильтр проверяет файлы из интернета, то нужно заставить его думать, что на момент запуска файл уже находился в системе.
Сделать это можно посредством работы с файлом в сетевом хранилище. В рассматриваемой уязвимости это хранилище располагается на сервере WebDAV. Функциональность одноименного протокола позволяет нескольким пользователям одновременно редактировать файл, который хранится на сервере, а в Windows есть возможности для автоматического доступа к такому хранилищу. Все, что остается сделать злоумышленникам, это правильно представить сервер системе. Для этой цели используется URL файла со следующим содержимым:
1 |
URL=file://ip_address@port/webdav/TEST.URL |
CVE-2024-27198 (TeamCity)
Уязвимость в веб-интерфейсе приложения для обеспечения непрерывной интеграции TeamCity позволяет получать доступ к функциям, которые должны быть доступны только аутентифицированным пользователям этого приложения. Использование уязвимости можно обнаружить путем анализа стандартных логов, которые TeamCity создает в рабочей директории. Вредоносный паттерн выглядит следующим образом:
Некорректная обработка файлов с пустым именем, как на скриншоте выше, приводит к тому, что неавторизованный атакующий получает доступ к API сервера.
Эту уязвимость злоумышленники используют для первоначального проникновения в целевые системы. Для более эффективного мониторинга ее эксплуатации мы рекомендуем проводить аудит учетных записей, которые имеют доступ к веб-интерфейсу.
CVE-2023-38831 (WinRAR)
Эту уязвимость обнаружили в 2023 году, но мы считаем необходимым обратить на нее внимание в силу ее популярности среди злоумышленников как в конце 2023 года, так и в первом квартале 2024-го.
Уязвимость заключается в следующем: при попытке открыть файл в архиве в графическом интерфейсе WinRAR программа также открывает содержимое одноименной папки, если таковая присутствует в архиве.
За время активного использования уязвимости злоумышленниками появилось несколько вариантов эксплойтов, которые могут иметь один из двух форматов:
- ZIP-архивы;
- RAR-архивы.
Различия во вредоносном программном обеспечении и существующих архивах не позволяют однозначно определить, является ли конкретный архив эксплойтом. Однако можно выделить основные признаки эксплойта:
- Архив содержит файлы, название которых совпадает с вложенными директориями.
- Название хотя бы одного файла содержит знак пробела перед расширением.
- В архиве обязательно есть исполняемый файл, который располагается во вложенной директории.
Приведем примеры таких файлов в шестнадцатеричном редакторе. Для ZIP-архива данные выглядят так:
Для файлов RAR — так:
Злоумышленники научились скрывать артефакты эксплойта посредством установки пароля на архив: в этом случае пути к файлам могут быть зашифрованы, а значит, выявить эксплойт можно только при помощи поведенческого анализа.
Выводы и рекомендации
В последнее время с каждым годом регистрируется все больше уязвимостей. Растет и количество публичных эксплойтов. При этом эксплуатация уязвимостей — одна из ключевых составляющих целевых атак, причем, как правило, злоумышленники активно используют уязвимости в первые недели после их регистрации и публикации эксплойта. Чтобы оставаться в безопасности, необходимо оперативно реагировать на меняющийся ландшафт угроз, а также:
- Хорошо знать свою инфраструктуру, пристально следить за ее активами и уделять особое внимание периметру. Знание собственной инфраструктуры — ключевой фактор в выстраивании любых процессов, обеспечивающих безопасность.
- Развивать патч-менеджмент, чтобы вовремя обнаруживать уязвимое ПО в инфраструктуре и устанавливать исправления безопасности. В этом вам могут помочь наши решения Vulnerability Assessment and Patch Management и Kaspersky Vulnerability Data Feed.
- Использовать надежное решение для защиты от вредоносного ПО.
- Применять комплексные защитные решения, которые помогут выстроить гибкую и эффективную систему безопасности, включающую в себя обеспечение надежной защиты рабочих мест, выявление и остановку атак любой сложности на ранних стадиях, сбор актуальных данных о кибератаках в мире и обучение сотрудников базовым навыкам цифровой грамотности. В качестве такого решения, настраиваемого под потребности и возможности компании любого масштаба, мы можем предложить линейку продуктов для защиты бизнеса Kaspersky Symphony.
Эксплойты и уязвимости в первом квартале 2024 года