Linux песочница с C, безопасная? - PullRequest
0 голосов
/ 07 июня 2018

Я разрабатываю общий honeypot для служб TCP как часть моей дипломной работы.

В настоящее время я использую Chroot, пространства имен Linux, безопасные вычисления и возможности для обеспечения своего рода песочницы.

Мой вопрос: есть ли какие-то моменты, о которых я должен знать?Так как мне нужно смонтировать / proc в песочнице, мне любопытно, повлияет ли это на общую безопасность хост-системы.

(Кстати, пространства имен пользователей не являются опцией)

/* EDIT * /
Для большей ясности: я использую возможности (7) и libseccomp, чтобы ограничить доступ к таким функциям, как системные вызовы для пользователей root и не-root.

Но как насчет файлов в/ proc например / proc / sys / *?Должен ли я занести в черный список файлы / каталоги с пустым bind-mount, как это делает firejail?

1 Ответ

0 голосов
/ 13 июня 2018

Как прокомментировал Янн Дроно, чтение src systemd-nspawn очень помогло.

Я обнаружил следующие подкаталоги / proc, которые должны быть подключены только для чтения / недоступны:

/* Make these files inaccessible to container payloads: they potentially leak information about kernel
 * internals or the host's execution environment to the container */
            PROC_INACCESSIBLE("/proc/kallsyms"),
            PROC_INACCESSIBLE("/proc/kcore"),
            PROC_INACCESSIBLE("/proc/keys"),
            PROC_INACCESSIBLE("/proc/sysrq-trigger"),
            PROC_INACCESSIBLE("/proc/timer_list"),

/* Make these directories read-only to container payloads: they show hardware information, and in some
 * cases contain tunables the container really shouldn't have access to. */
            PROC_READ_ONLY("/proc/acpi"),
            PROC_READ_ONLY("/proc/apm"),
            PROC_READ_ONLY("/proc/asound"),
            PROC_READ_ONLY("/proc/bus"),
            PROC_READ_ONLY("/proc/fs"),
            PROC_READ_ONLY("/proc/irq"),
            PROC_READ_ONLY("/proc/scsi"),
...