3. Отрегулируйте лимиты

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

Чтобы устранить эту угрозу, Sandboxee по умолчанию работает с жесткими ограничениями выполнения. Если эти ограничения по умолчанию вызывают проблемы с законным выполнением вашей программы, вы можете настроить их с помощью класса sandbox2::Limits , вызвав limits() для объекта-исполнителя.

В приведенном ниже фрагменте кода показаны некоторые примеры корректировки лимитов. Все доступные параметры описаны в заголовочном файле limit.h .

// Restrict the address space size of the sandboxee to 4 GiB.
executor->limits()->set_rlimit_as(4ULL << 30);
// Kill sandboxee with SIGXFSZ if it writes more than 1 GiB to the filesystem.
executor->limits()->set_rlimit_fsize(1ULL << 30);
// Number of file descriptors which can be used by the sandboxee.
executor->limits()->set_rlimit_nofile(1ULL << 10);
// The sandboxee is not allowed to create core files.
executor->limits()->set_rlimit_core(0);
// Maximum 300s of real CPU time.
executor->limits()->set_rlimit_cpu(300);
// Maximum 120s of wall time.
executor->limits()->set_walltime_limit(absl::Seconds(120));

Пример использования класса sandbox2::Limits смотрите в примере инструмента .

,

3. Отрегулируйте лимиты

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

Чтобы устранить эту угрозу, Sandboxee по умолчанию работает с жесткими ограничениями выполнения. Если эти ограничения по умолчанию вызывают проблемы с законным выполнением вашей программы, вы можете настроить их с помощью класса sandbox2::Limits , вызвав limits() для объекта-исполнителя.

В приведенном ниже фрагменте кода показаны некоторые примеры корректировки лимитов. Все доступные параметры описаны в заголовочном файле limit.h .

// Restrict the address space size of the sandboxee to 4 GiB.
executor->limits()->set_rlimit_as(4ULL << 30);
// Kill sandboxee with SIGXFSZ if it writes more than 1 GiB to the filesystem.
executor->limits()->set_rlimit_fsize(1ULL << 30);
// Number of file descriptors which can be used by the sandboxee.
executor->limits()->set_rlimit_nofile(1ULL << 10);
// The sandboxee is not allowed to create core files.
executor->limits()->set_rlimit_core(0);
// Maximum 300s of real CPU time.
executor->limits()->set_rlimit_cpu(300);
// Maximum 120s of wall time.
executor->limits()->set_walltime_limit(absl::Seconds(120));

Пример использования класса sandbox2::Limits смотрите в примере инструмента .