Исследователи из Кембриджа предлагают достаточно интересный sandbox framework для BSD-систем под названием Capsicum.
Идея в том, что специальным системным вызовом cap_enter(2) текущий процесс вводится в режим песочницы — Capability Mode — откуда он уже не может делать опасные системные вызовы, такие как open, unlink, fork, rfork, exec, mount и другие.
Права процесса в песочнице сводятся к операциям с уже открытыми файловыми дескрипторами — обычно это сокеты и пайпы — а какие именно системные вызовы тот может к ним применять — это тонко настравается с помощью системного вызова cap_new(2). Действует принцип "запрещено всё то, что не разрешено явно".
В рамках проекта Capsicum также разработана высокоуровневая библиотека для запуска процессов в песочнице (обёртка для системных вызовов), а также динамический загрузчик на замену стандартному ld-elf.so, способный работать в этих ограниченных условиях песочницы.
Прикладное применение Capsicum — защита сетевых серверных процессов от взлома, а также изоляция от браузера падучих и дырявых-для-вирусов плагинов типа Flash Player'а.
В общем, Capsicum позволяет построить барьер безопасности между программой и её плагинами, чтобы материнская программа могла без последствий запускать недоверенный код своих плагинов.
В принципе, это даже позволяет загружать с сайтов и выполнять нативный x86 код в прямо браузере, без явного одобрения пользователем, и без риска заражения основной системы.
http://www.cl.cam.ac.uk/research/security/capsicum/documentation.html
Кембриджский Университет лицензирует Capsicum под BSD-лицензией, чтобы не только сделать возможным свободное применение данной технологии, но и стимулировать её коммерческое внедрение.
Идея в том, что специальным системным вызовом cap_enter(2) текущий процесс вводится в режим песочницы — Capability Mode — откуда он уже не может делать опасные системные вызовы, такие как open, unlink, fork, rfork, exec, mount и другие.
Права процесса в песочнице сводятся к операциям с уже открытыми файловыми дескрипторами — обычно это сокеты и пайпы — а какие именно системные вызовы тот может к ним применять — это тонко настравается с помощью системного вызова cap_new(2). Действует принцип "запрещено всё то, что не разрешено явно".
В рамках проекта Capsicum также разработана высокоуровневая библиотека для запуска процессов в песочнице (обёртка для системных вызовов), а также динамический загрузчик на замену стандартному ld-elf.so, способный работать в этих ограниченных условиях песочницы.
Прикладное применение Capsicum — защита сетевых серверных процессов от взлома, а также изоляция от браузера падучих и дырявых-для-вирусов плагинов типа Flash Player'а.
В общем, Capsicum позволяет построить барьер безопасности между программой и её плагинами, чтобы материнская программа могла без последствий запускать недоверенный код своих плагинов.
В принципе, это даже позволяет загружать с сайтов и выполнять нативный x86 код в прямо браузере, без явного одобрения пользователем, и без риска заражения основной системы.
http://www.cl.cam.ac.uk/research/security/capsicum/documentation.html
Кембриджский Университет лицензирует Capsicum под BSD-лицензией, чтобы не только сделать возможным свободное применение данной технологии, но и стимулировать её коммерческое внедрение.