❌ Миф: если процесс работает без root, он не может повлиять на ядро
❌ Миф: если процесс работает без root, он не может повлиять на ядро Привет! В Linux принято разделять привилегированные и обычные процессы. Кажется, что если приложение запущено от непривилегированного пользователя, то до ядра ему не добраться. Но граница устроена немного сложнее. 👨💻 Любой процесс постоянно взаимодействует с ядром через системные вызовы. Например, io_uring позволяет организовать асинхронный ввод-вывод через общие кольцевые буферы. Если в реализации есть уязвимость, даже непривилегированный процесс потенциально может использовать её для повышения прав. 🚨 Похожая история с eBPF. На системах, где разрешена непривилегированная загрузка BPF-программ, пользователь может передавать код в специальный верификатор ядра. Ошибки в проверке такого кода уже становились причиной уязвимостей с повышением привилегий. ⚙️ Правда, доступность этих механизмов зависит от версии ядра и настроек системы. Например, проверить ограничения можно так: sysctl kernel.unprivileged_bpf_disabled sysctl kernel.io_uring_disabled Первый параметр управляет непривилегированным BPF, второй - доступностью io_uring. При этом отключение этих интерфейсов не устраняет остальные пути взаимодействия с ядром через системные вызовы. P.S. Отсутствие root ограничивает полномочия процесса, но не делает ядро недоступным для атак. Для эксплуатации ошибки в обработчике системного вызова иногда достаточно обычной пользовательской учётной записи. #Мифы #Linux #Kernel #Infosec 🤖Бесплатный ChatGPT