Песо́чница (англ. sandbox, также существуют схожие понятия — англ. honeypot, англ. fishbowl) — в компьютерной безопасности механизм для безопасного исполнения программ.
Песочницы часто используют для запуска непротестированного кода, непроверенного кода из неизвестных источников, а также для запуска и обнаружения вирусов.
Песочница обычно предоставляет собой жёстко контролируемый набор ресурсов для исполнения гостевой программы — например, место на диске или в памяти. Доступ к сети, возможность сообщаться с главной операционной системой или считывать информацию с устройств ввода обычно либо частично эмулируют, либо сильно ограничивают. Песочницы представляют собой пример виртуализации.
Повышенная безопасность исполнения кода в песочнице зачастую связана с большой нагрузкой на систему — именно поэтому некоторые виды песочниц используют только для неотлаженного или подозрительного кода.
Песочницы часто встречаются в следующих видах:
Апплеты, которые исполняются в виртуальной машине или интерпретаторе, позволяющие запускать Java-код с любых веб-сайтов без угрозы операционной системе.
Так называемые «тюрьмы» (jail, chroot jail) также позволяют вводить ограничения ресурсов для пользователей и процессов некоторых ОС.
Виртуальные машины, полностью эмулирующие «стандартный» компьютер (например, VirtualBox).
Системы, основанные на «возможностях» (capability-based security), также позволяют ограничивать ресурсы программ, в зависимости от назначенных им «возможностей».
Помимо ограничения вредоносного и непроверенного кода, песочницы также используются в процессе разработки для запуска «сырого» кода, который может случайно повредить систему или испортить сложную конфигурацию.
Такие «тестировочные» песочницы копируют основные элементы среды, для которой пишется код, и позволяют разработчикам быстро и безболезненно экспериментировать с неотлаженным кодом.
|