Раскрыты детали атаки Stack Сlash и 15 root-эксплоитов для разных ОС

Раскрыты детали атаки Stack Сlash и 15 root-эксплоитов для разных ОС

Раскрыты детали атаки Stack Сlash и 15 root-эксплоитов для разных ОС

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

Когда стек и куча размещаются смежно и прилегают друг к другу, то в условиях того, что куча растёт в сторону увеличения, а стек в сторону уменьшения не исключено возникновение ситуаций, когда содержимое переполненной кучи может оказаться в области стека или, наоборот, стек может переписать область кучи.

Для защиты от подобных пересечений в ядре Linux и других ОС применяют технику "stack guard-page", суть которой в подстановке граничных страниц памяти, обращение к которым приводит к генерации исключения (page-fault). Защита была разработана в ответ на выявление в 2010 году уязвимости CVE-2010-2240 и основана на том, что обычно стек заполняется постепенно и при его переполнении будет осуществлён доступ к "stack guard-page", пишет opennet.ru.

Исследователи Qualys попытались выявить практические методы инициирования подобных столкновений и обхода защиты "stack guard-page", что им блестяще удалось - выявлено 20 уязвимостей, связанных с недоработками выделения памяти в стеке/куче ядра, libc и компонентов пространства пользователя, позволяющих обойти средства защиты от выхода за границы стека. Суть предложенного Qualys метода обхода "stack guard-page" заключается в том, что некоторые приложения позволяют заполнять стек не последовательно и поддерживают конструкции, дающие возможность пробросить указатель стека с большим смещением, что позволяет избежать попадания в "stack guard-page".

Предложенные методы атаки разделены на три базовые категории:

  • Столкновение стека с другой областью памяти: выделение памяти производится до тех пор, пока стек не достигнет другой области памяти или пока другая область памяти не достигнет стека;
  • Проброс минуя страницу защиты стека (stack guard-page): указатель стека перемещается из стека в другую область памяти, не касаясь страницы защиты стека;
  • Разбиение стека или другой области памяти: осуществляется перезапись стека содержимым другой области памяти или перезапись другой области памяти содержимым стека. В качестве другой области памяти может выступать куча, анонимный mmap(), доступный на запись/чтение сегмент ld.so или PIE (Position-Independent Executable).

Для демонстрации практических атак создано 15 рабочих прототипов эксплоитов, позволяющих повысить свои привилегии через манипуляции с различными приложениями в различных операционных системах (Debian, CenOS, Fedora, Ubuntu, OpenBSD, NetBSD, FreeBSD, Solaris). Среди опубликованных прототипов эксплоитов:

  • Локальная root-уязвимость в Exim, манипулирующая недоработкой (CVE-2017-1000369), из-за которой при обработке некоторых аргументов командой строки не выполняется корректное освобождение памяти. Воспользовавшись данной проблемой локальный атакующий может в сочетании с уязвимостью CVE-2017-1000376 в glibc организовать выполнение своего кода с правами root. Эксплоит протестирован в Debian GNU/Linux (i386);
  • Поднятие привилегий в системе через утилиту sudo. Для атаки используется сочетание уязвимостей в sudo (CVE-2017-1000367) и в Glibc (CVE-2017-1000366). Проблема в Glibc вызвана некорректной обработкой памяти, выделенной для переменных окружения в suid-программах. Работа эксплоита продемонстрирована в Debian, Ubuntu и CentOS (i386);
  • Ещё один эксплоит, позволяющий получить привилегии root через манипуляцию с утилитой sudo. Эксплоит примечателен работой в дистрибутивах с включенным SELinux;
  • Локальный root-эксплоит через манипуляцию с ld.so и большинством SUID-root программ (используются уязвимости в glibc CVE-2017-1000366 и ядре Linux CVE-2017-1000370). Работа эксплоита продемонстрирована в Debian, Fedora и CentOS (i386);
  • Локальный root-эксплоит через манипуляцию с ld.so и большинством SUID-root программ, собранных в режиме PIE (используется уязвимость в glibc CVE-2017-1000366 и другая уязвимость в ядре Linux CVE-2017-1000371). Работа эксплоита продемонстрирована в Debian, Fedora и Ubuntu (i386);
  • Локальный root-эксплоит против утилиты /bin/su (используется уязвимость в glibc CVE-2017-1000366 и уязвимость в ядре Linux CVE-2017-1000365). Работа эксплоита продемонстрирована в Debian (i386);
  • Концептуальный эксплоит для получения контроля за регистром eip через sudo на системах i386 с патчами grsecurity/PaX (CVE-2017-1000367, CVE-2017-1000366, CVE-2017-1000377);
  • Концептуальный эксплоит для получения контроля за указателем адреса возврата (rip) через манипуляции с Exim (CVE-2017-1000369) в окружении Debian (amd64);
  • Локальный root-эксплоит против ld.so и большинство SUID-root приложений (CVE-2017-1000366, CVE-2017-1000379). Работа эксплоита продемонстрирована в Debian, Ubuntu, Fedora и CentOS (amd64);
  • Концептуальный эксплоит для обхода защиты stack guard-page в OpenBSD через манипуляции с утилитой /usr/bin/at. Для атаки используются уязвимости в реализации stack guard-page (CVE-2017-1000372) и libc функции qsort (CVE-2017-1000373);
  • Концептуальный эксплоит для обхода защиты stack guard-page в NetBSD (CVE-2017-1000374, CVE-2017-1000375);
  • Концептуальный эксплоит для атаки в окружении FreeBSD и обхода защиты RLIMIT_STACK в setrlimit (CVE-2017-1000385);
  • Два концептуальных эксплоита для обхода защиты stack guard-page во FreeBSD (CVE-2017-1083, CVE-2017-1084);
  • Локальный root-эксплоит против /usr/bin/rsh в окружении Solaris 11 (CVE-2017-3630, CVE-2017-3629, CVE-2017-3631 CVE-2017-3631).

Для большинства вышеотмеченных уязвимостей уже доступны обновления от дистрибутивов (разработчики дистрибутивов были в закрытом порядке извещены о проблемах в середине мая и сегодня скоординировано выпустили обновления). В качестве общей меры для противодействия выявленным уязвимостям предлагается пересобрать все приложения и библиотеки в пространстве пользователя с использованием опции "-fstack-check" в GCC, которая добавляет защиту от перемещения указателя стека в другую область памяти, минуя stack guard-page. Но так как "-fstack-check" пока не всегда работает корректно, для защиты в краткосрочной перспективе предложено увеличить размер stack guard-page с применяемых ныне нескольких килобайт до как минимум 1 Мб, что существенно затруднит эксплуатацию. Также рекомендовано предоставить средства для произвольного изменения размера stack guard-page администратором (например, grsecurity/PaX предоставляет /proc/sys/vm/heap_stack_gap). 

Новый Android-троян Frogblight крадёт данные, притворяясь госприложением

Специалисты «Лаборатории Касперского» обнаружили новый сложный Android-троян под названием Frogblight, который нацелен в первую очередь на пользователей из Турции. Зловред маскируется под легитимные государственные приложения и сочетает в себе функции банковского трояна и полноценного шпионского инструмента.

Первые образцы Frogblight были зафиксированы в августе 2025 года. С самого начала вредоносная программа делала ставку на социальную инженерию: она выдавала себя за приложение для доступа к материалам судебных дел через официальные государственные порталы Турции.

Основной канал распространения — смишинг. Потенциальным жертвам приходят сообщения о якобы возбуждённом судебном деле с предложением срочно установить «официальное» приложение.

После инсталляции всё выглядит максимально правдоподобно: Frogblight открывает настоящий государственный веб-сайт для доступа к судебным документам прямо внутри встроенного WebView.

 

Параллельно зловред запрашивает подозрительные разрешения: доступ к СМС, файлам, информации об устройстве и другим функциям. Когда пользователь пытается войти в онлайн-банк через предложенные варианты, Frogblight внедряет вредоносный JavaScript-код и перехватывает все введённые данные, отправляя их на серверы злоумышленников.

Всего троян запрашивает 24 различных разрешения. Среди них — управление СМС, доступ к контактам, службе специальных возможностей (Accessibility Services), обход ограничений энергосбережения и многое другое. Такой набор фактически даёт атакующим полный контроль над заражённым устройством.

По данным «Лаборатории Касперского», Frogblight активно дорабатывался в течение сентября 2025 года. Каждая новая версия получала дополнительные возможности. Более поздние варианты маскировались уже под браузер Chrome и обзаводились расширенной шпионской функциональностью: выгрузкой списка контактов, журналов вызовов и записью нажатий клавиш с помощью собственной клавиатуры.

Свежие образцы используют WebSocket вместо REST API для связи с управляющей инфраструктурой, что указывает на дальнейшее развитие платформы. Кроме того, зловред умеет определять запуск в эмуляторе и не активируется на устройствах в США — это говорит о достаточно опытных разработчиках.

Отдельный интерес у исследователей вызвали признаки модели Malware-as-a-Service. Например, Kaspersky обнаружила веб-панель управления, через которую можно сортировать заражённые устройства по установленным банковским приложениям и запускать массовые СМС-рассылки. Использование специальных ключей для аутентификации WebSocket-соединений также укладывается в эту схему.

 

Точной атрибуции пока нет, но специалисты нашли заметные пересечения Frogblight с семейством Coper, код которого размещался на GitHub. Комментарии в исходниках, написанные на турецком языке, позволяют предположить, что разработчики — носители языка.

«Лаборатория Касперского» уже опубликовала индикаторы компрометации: хеши APK-файлов, домены и IP-адреса управляющих серверов, а также ссылки на ресурсы распространения. В продуктах компании зловред детектируется как HEUR:Trojan-Banker.AndroidOS.Frogblight. и родственными сигнатурами.

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