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-фильтр с собственным списком разрешённых вызовов.
Для этого есть 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