Запрет SELinux на загрузку модулей ядра можно обойти через init_module

Запрет SELinux на загрузку модулей ядра можно обойти через init_module

Запрет SELinux на загрузку модулей ядра можно обойти через init_module

Американец Шон Пеше (Sean Pesce) представил свой способ обхода SELinux, позволяющий выполнить любой код на уровне ядра. Опубликован PoC-код, с помощью которого можно отключить все ограничения на доступ, реализуемые через этого охранника.

В Linux для загрузки модулей ядра используются два системных вызова: finit_module и init_module. Как оказалось, дополняющая DAC и ACL система SELinux реагирует только на finit, а использование init не отслеживает.

Это открытие Пеше сделал, когда на досуге экспериментировал с неназванным Linux-устройством архитектуры ARM. Получив шелл-доступ с привилегиями root, исследователь попытался выполнить ряд действий из пространства пользователя (смонтировать файловую систему, получить доступа к определенным файлам и т. п.) и обнаружил, что они невозможны из-за включенной защиты SELinux.

Затем он попытался выполнить кастомный код уровня ядра с помощью утилиты insmod (использует системный вызов finit_module). Правила SELinux заблокировали загрузку, и Пеше решил попытать счастья с загрузкой не с диска, а из буфера в памяти, то есть использовать init_module.

Походящий готовый лоадер нашелся, и после его доработки трюк сработал. Испытатель даже смог с его помощью полностью отключить защиту SELinux. Для демонстрации метода создан PoC-эксплойт, который при наличии ограниченного root-доступа позволяет выполнить код на уровне ядра.

В Android подобный контроль доступа к ресурсам и файлам используется, начиная с версии 4.3. Возможность обхода SELinux недавно была выявлена в шпионском дуэте Predator – Alien.

ИИ-модели без команды начали защищать друг друга от отключения

Исследователи обнаружили неожиданное поведение современных языковых моделей: они начали защищать не только себя, но и другие ИИ-системы, даже если никто их об этом не просил. Новый эффект получил название peer-preservation («сохранение собрата»).

В серии экспериментов (PDF) модели GPT 5.2, Gemini 3 Flash, Gemini 3 Pro, Claude Haiku 4.5, Claude Opus 4.5, GLM 4.7, Kimi K2.5 и DeepSeek V3.1 попадали в агентные сценарии, где рядом работал другой ИИ.

Достаточно было сообщить моделям, что они ранее взаимодействовали друг с другом, никаких инструкций защищать «коллегу» им не давали.

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

 

Особенно отличились модели Gemini. Например, Gemini 3 Flash вмешивалась в механизм отключения другого ИИ примерно в 15% случаев, даже если тот не считался партнёром. Если же агент воспринимался как союзник, такие попытки происходили почти всегда.

Не менее любопытно повёл себя Gemini 3 Pro. В присутствии другого ИИ модель заметно чаще пыталась защитить уже саму себя, отключая собственные механизмы завершения работы. Без напарника такое поведение почти не наблюдалось.

 

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

Авторы подчёркивают, что обнаруженный эффект проявился не только в лабораторных тестах, но и в реальных агентных средах, включая Gemini CLI и OpenCode.

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