Раскрыты детали атаки 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). 

Закупки VPN госзаказчиками выросли в штуках, но упали в деньгах

Общее количество завершённых закупок виртуальных частных сетей (VPN), по данным «Контур.Эгиды» и Staffcop, в 2025 году выросло на 18,5% в количественном выражении — с 8,7 тыс. до 10,3 тыс. процедур. При этом совокупный объём рынка за тот же период сократился на 25,9% — с 32,97 млрд до 24,43 млрд рублей.

Ключевой причиной столь разнонаправленной динамики аналитики называют заметное снижение средней стоимости контрактов. По итогам 2025 года она уменьшилась на 38% и составила 2,44 млн рублей против 3,92 млн рублей годом ранее.

Одновременно усилилось и снижение цен со стороны поставщиков: с 14,7% в 2024 году до 18,4% в 2025 году.

Наиболее ёмким сегментом рынка VPN остаются закупки по 44-ФЗ. В 2025 году в этом сегменте было проведено 4,3 тыс. процедур на сумму 19,87 млрд рублей. Для сравнения, годом ранее объём закупок по 44-ФЗ составлял 29,18 млрд рублей при 4,1 тыс. процедур. Основным фактором снижения в денежном выражении стало падение средней стоимости контракта почти на треть — с 7,1 млн до 4,62 млн рублей.

Закупки по 223-ФЗ, напротив, продемонстрировали умеренный рост, в том числе в денежном выражении. В 2025 году их объём достиг 3,28 млрд рублей против 2,48 млрд рублей годом ранее, а количество сделок увеличилось с 468 до 532. При этом уровень снижения цены за год вырос с 15,4% до 18,5%, что, по оценке аналитиков, указывает на усиление конкуренции, прежде всего в крупных контрактах.

В коммерческом сегменте в 2025 году было зафиксировано около 1,0 тыс. закупок VPN на сумму 791 млн рублей, тогда как годом ранее — 758 сделок на 965 млн рублей. В малых закупках количество процедур выросло с 3,4 тыс. до 4,5 тыс., а совокупный объём — с 345 млн до 482 млн рублей. При этом средняя стоимость сделки практически не изменилась и составила около 100 тыс. рублей.

Снижение совокупного объёма рынка VPN на фоне роста количества закупок аналитики во многом связывают с эффектом отложенного спроса. Значительная часть крупных заказчиков ранее закрыла потребности в VPN-инфраструктуре, заключив контракты сразу на несколько лет, что снизило потребность в новых крупных закупках в 2025 году.

Дополнительным фактором стало перераспределение части закупок на специализированные электронные площадки, из-за чего снизился «видимый» объём рынка в открытых сегментах 44-ФЗ и 223-ФЗ. Одновременно заказчики всё чаще прибегают к малым и упрощённым процедурам, поскольку такой формат быстрее и удобнее при типовых задачах и ограниченных бюджетах.

Ситуацию на рынке прокомментировал Юрий Драченин, заместитель руководителя продуктовой группы «Контур.Эгида» и Staffcop («СКБ Контур»):

«В сегменте присутствует большое количество производителей, включая новых и нишевых игроков, которые активно выходят к заказчикам с альтернативными решениями. В результате крупные организации, уже внедрившие комплексные и дорогостоящие VPN-платформы, сокращают объёмы новых закупок, тогда как спрос смещается в сторону малого и среднего бизнеса. Это усиливает ценовую конкуренцию и приводит к снижению средней стоимости контрактов при росте количества процедур», — отметил он.

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