Уязвимость в ядре Linux позволяет обходить защиту от эксплойтов


Выявленная экспертами Cisco ошибка
приводит к считыванию содержимого стековой памяти в ядре Linux. Тем
самым появляется возможность обойти рандомизацию адресного пространства ядра,
одного из ключевых защитных механизмов системы.

В обход KASLR

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

Баг с индексом CVE-2020-28588, выявленный в
функции /proc/pid/syscall, характерен для 32-битных устройств на базе
процессоров ARM
под управлением Linux. Проблема вызвана некорректной конверсией номерных значений при считывании
файла, указывается в материале Threatpost.

С помощью нескольких команд
злоумышленники могут заставить ядро Linux выдать 24 байта неинициализированной стековой
памяти, что позволит обойти защитный механизм KASLR — рандомизацию адресного пространства ядра.

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

В ядре Linux нашлась серьезная брешь

Proc
представляет собой специальную псевдофайловую систему в Unix-подобных системах, которая используется для
динамического доступа к данным о системных процессах в ядре. Системная
информация представлена в ней в виде иерархической файлоподобной структуры. Зная
нужный идентификатор процесса, можно получить информацию о нем. Например, syscall — это файл в Linux, хранящий логи
системных вызовов со стороны ядра.

Злоумышленник может
эксплуатировать уязвимость, считывая данные из /proc//syscall. «Мы видим эти данные в любой Linux-системе с ядром,
сконфигурированным с CONFIG_HAVE_ARCH_TRACEHOOK, — говорится в публикации Cisco. — Этот файл выдает номер системного вызова и
регистры аргументов для системных вызовов, которые в данный момент исполняются
процессом. За этим следуют величины указателя стека и регистры счетчика
программ. Выдаются значения всех шести регистров аргументов, хотя большая часть
системных вызовов использует меньшее количество регистров».

Команды, позволяющие эксплуатировать уязвимость, выглядят как *# echo 0 > /proc/sys/kernel/randomize_va_space (# onlyneededforacleaneroutput), *$ while
true; do cat /proc/self/syscall; done | uniq (# waits for changes)и *$
while true; do free &>/dev/null; done (# triggers changes).

Обновляться подано

Эксперты Cisco впервые обнаружили
уязвимость на устройстве AzureSphere (версии 20.10), 32-битном устройстве на базе ARM и под управлением Linux. Баг присутствует во
всех версиях ядра, начиная с v5.1-rc4. Уязвимы также версии 5.4.66 and 5.9.8. Обновления уже
доступны, так что рекомендуется их установить как можно скорее.

«Уязвимости в ядре Linux находят довольно редко,
но, в любом случае, это программный код, который пишут, тестируют и
инспектируют люди, и от их ошибок никто не застрахован, — говорит Анастасия Мельникова, эксперт по
информационной безопасности компании SEC Consult Services. — В любом случае, фактором защищенности является
также количество специалистов, которые отслеживают возможные недочеты в ядре и
информируют об этом разработчиков. В этом отношении ядро Linux находится в самом выигрышном положении».

Ранее в 2021 г. эксперты Symantec обнародовали две
новые уязвимости в операционных системах на базе Linux, которые затрагивали некоторые подсистемы ядра
операционной системы и позволяли обходить защиту от аппаратной уязвимости Spectre. Эти баги получили
средние оценки по шкале угроз CVSS.

Перед этим, в марте были
устранены сразу пять похожих уязвимостей в виртуальных сокетах ядра Linux, которые выявил эксперт
по безопасности компании Positive Technologies Александр Попов. Этим уязвимостям была присвоена оценка 7,0 по
шкале CVSS.

Сохранить себе?
Сохраните себе

Сейчас читают

Рекомендации для Вас

Электронная Москва

Copyright © 2018-2024 , Электронная Москва