LINUX.ORG.RU

Написаны ли уже программы чтобы использовать SECCOMP_MODE_FILTER ?

 


0

1

В Linux уже есть возможность задать ограничение на то, какие сисвызовы могут выполняться программой (включая после fork/execve), а какие будут возвращать ошибку, использовать эмулятор или вообще SIGKILL. Работает из-под пользователя тоже.

В качестве демо есть программа, которая «отключает» один сисвызов.

Есть ли что-то большее, чтобы задать можно было задавать «белый» или «чёрный» списки (с аргументами для некоторых типа prctl), но не настолько большое чтобы охватывать всю систему (типа SELinux) или требовать много всяких конфигов.

Что-то типа

limit_syscalls  access brk close connect dup \
      execve exit_group fcntl64 fstat64 getsockname \
      getuid32 mmap2 mprotect munmap open read set_thread_area \
      setuid32 socket write -- /bin/ping 127.0.0.1


Chromium в chrome os, насчёт андроида и классических дистрибутивов не уверен. О чём-либо ещё не слышал.

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

quiet_readonly ★★★★
()
Ответ на: комментарий от quiet_readonly

Варианты использования, думаю, найдутся.

Нужно чтобы было именно как удобная небольшая программа, которая делает только это (а не в составе всяких Chromium'ов).

vi0
() автор топика
Ответ на: комментарий от quiet_readonly

мало ли на какую сишную библиотеку завязан скрипт на питоне.

Как раз чтобы не слишком развязывался со всякими библиотеками.

Чтобы у local root exploit'ов было меньше шансов.

vi0
() автор топика

Конечно есть такие - systemd это использует. В нем, кстати, полно новья из ядра Linux заюзано.

plm ★★★★★
()
Ответ на: комментарий от vi0
# ./limit_syscalls gettimeofday nanosleep recvmsg setsockopt  access brk close connect dup       execve exit_group fcntl64 fstat64 getsockname       getuid32 mmap2 mprotect munmap open sendmsg read set_thread_area       setuid32 socket write -- /bin/ping 127.0.0.1
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_req=1 ttl=64 time=0.137 ms
64 bytes from 127.0.0.1: icmp_req=2 ttl=64 time=0.109 ms
^C
# 
vi0
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.