Linux может убить программу за попытку открыть файл

Для этого есть seccomp strict — режим, который резко ограничивает доступ потока к системным вызовам:
if (prctl(PR_SET_SECCOMP, SECCOMP_MODE_STRICT) == -1) {
    perror("seccomp");
    return 1;
}
После успешного включения разрешены только `read`, `write`, системный `_exit` и `sigreturn`. Попытка открыть новый файл, создать процесс или сокет приводит к принудительному завершению. В однопоточной программе — через SIGKILL.

Зачем это нужно? Представьте обработчик недоверенных данных: он заранее получает необходимые дескрипторы, включает ограничения и приступает к вычислениям. Даже если злоумышленник перехватит выполнение, доступные ему действия будут сильно ограничены.

Но уже открытые файлы и сокеты остаются доступны через `read` и `write`. Поэтому обещание «полностью отрезать сеть одним вызовом» некорректно.

Режим настолько строгий, что даже обычные библиотечные функции могут вызвать запрещённый syscall. Для прикладных программ чаще нужен seccomp-фильтр с собственным списком разрешённых вызовов.
Просмотры: 402
Открыть в MAX Сообщить о неточности

Сообщить о неточности

Опишите, что нужно исправить. Если есть источник, добавьте ссылку.

Вы покидаете datool.ru

Ссылка ведёт на внешний сайт. datool.ru не отвечает за его содержимое — проверьте адрес, прежде чем вводить пароли или платёжные данные.

Переход через 10 с

Перейти