Безопасность Check Point и реальность CVE-2024-24919
Технические подробности и практика использования CVE-2024-24919 в реальных условиях подчеркивают критический характер этой уязвимости и важность оперативного устранения для защиты от потенциальных утечек данных и сетевых компрометаций.
Описание уязвимости
📌 CVE-2024-24919 — уязвимость, связанная с раскрытием информации, которая позволяет удаленному злоумышленнику, не прошедшему проверку подлинности, считывать содержимое произвольных файлов на уязвимом устройстве.
📌 Уязвимость классифицируется как «Передача конфиденциальной информации неавторизованному субъекту».
📌 Уязвимость затрагивает системы с удаленным доступом мобильным или VPN.
Уязвимые Продукты
📌CloudGuard Network
📌Quantum Maestro
📌Quantum Scalable Chassis
📌Quantum Security Gateways
📌Quantum Spark Appliances
Подробности Эксплуатации
📌 Уязвимостью можно воспользоваться, отправив созданный запрос на конечную точку /clients/MyCRL, которая предназначена для обработки статических файлов из файловой системы.
📌 Включая в текст запроса последовательности обхода пути, такие как ././etc/passwd, злоумышленник может считывать конфиденциальные файлы, такие как /etc/shadow, для получения хэшей паролей.
📌 Уязвимость позволяет считывать любой файл в системе, а не только конкретные файлы, указанные поставщиком.
PoC
📌 Исследователи в области безопасности опубликовали общедоступный PoC-эксплойт для CVE-2024-24919, содержащий технические подробности о том, как использовать уязвимость.
📌 PoC демонстрирует способность считывать произвольные файлы, включая извлечение хэшей паролей и другой конфиденциальной информации.
Практическое применение
📌 Компания Check Point наблюдала активную эксплуатацию этой уязвимости вживую с начала апреля 2024 года.
📌 Злоумышленники использовали уязвимость для извлечения хэшей паролей, перемещения по сетям и компрометации серверов Active Directory путем извлечения файла ntds.dit.
Анализ кода
Первоначальный анализ:
📌 Уязвимый код выполняет операции ввода-вывода файлов, на которые указывают ссылки на такие функции, как _fopen и _fread.
📌 Код сравнивает запрошенный URL-адрес со списком жестко заданных строк из таблицы строк, чтобы определить, может ли файл быть обработан.
Ошибка сравнения строк:
📌 В коде используется функция strstr для проверки того, содержит ли запрашиваемый URL-адрес какие-либо строки из таблицы. Эта функция выполняет поиск подстроки, а не строгое сравнение.
📌 Это позволяет злоупотреблять кодом, включив допустимую подстроку в последовательность обхода пути, такую как http://icsweb.cab/././etc/passwd.
Использование обхода пути:
📌 Первоначальные попытки использовать обход пути путем включения в URL-адрес последовательностей типа ././etc/passwd завершились неудачей, поскольку операционная система правильно определила путь как недопустимый.
📌 Была найдена вторая таблица строк, содержащая записи, указывающие на пути к каталогам, такие как CSHELL/.
Эксплуатация:
📌 Создав запрос, который включал строку каталога CSHELL/, за которой следовала последовательность обхода пути, исследователи смогли обойти проверки.
📌 Запрос был выполнен успешно:
POST /clients/MyCRL HTTP/1.1
Host: <redacted>
Content-Length: 39
aCSHELL/./././././././etc/shadow
📌 Этот запрос вернул содержимое файла /etc/shadow, подтвердив уязвимость для произвольного чтения файла.
Последствия:
📌 Возможность чтения файла /etc/shadow указывает на то, что злоумышленник обладает правами суперпользователя, позволяющими ему читать любой файл в файловой системе.
📌 Это более серьезная проблема, чем рекомендация поставщика, которая предполагала ограниченный доступ к информации.