Песочница (компьютерная безопасность)
В компьютерной безопасности «песочница » — это механизм безопасности для разделения запущенных программ, обычно с целью предотвращения сбоев системы и/или уязвимостей распространения программного обеспечения. Метафора песочницы происходит от концепции детской песочницы — игровой площадки, где дети могут строить, разрушать и экспериментировать, не причиняя реального ущерба. [1] Он часто используется для выполнения непроверенных или ненадежных программ или кода, возможно, от непроверенных или ненадежных третьих лиц, поставщиков, пользователей или веб-сайтов, без риска причинения вреда хост-компьютеру или операционной системе . [2] Песочница обычно предоставляет строго контролируемый набор ресурсов для запуска гостевых программ, таких как хранилище и рабочее пространство памяти . Доступ к сети, возможность проверки хост-системы или чтения с устройств ввода обычно запрещены или строго ограничены.
С точки зрения обеспечения строго контролируемой среды песочницы можно рассматривать как конкретный пример виртуализации . Песочница часто используется для тестирования непроверенных программ, которые могут содержать вирус или другой вредоносный код , не позволяя программному обеспечению нанести вред хост-устройству. [3]
Реализации
[ редактировать ]Песочница реализуется путем выполнения программного обеспечения в ограниченной среде операционной системы, таким образом контролируя ресурсы (например, файловые дескрипторы , память, пространство файловой системы и т. д.), которые может использовать процесс. [4]
Примеры реализации песочницы включают следующее:
- Песочница приложений Linux , построенная на Seccomp , cgroups и пространствах имен Linux . В частности, используется Systemd , Google Chrome , Firefox , Firejail.
- Android была первой основной операционной системой, реализовавшей полную изолированную программную среду приложений, созданную путем присвоения каждому приложению собственного идентификатора пользователя Linux. [5]
- Apple App Sandbox требуется для приложений, распространяемых через Apple Mac App Store и iOS / iPadOS App Store , и рекомендуется для других подписанных приложений. [6] [7]
- Windows Vista и более поздние выпуски включают запущенный процесс «низкого» режима, известный как «Контроль учетных записей пользователей» (UAC) , который позволяет выполнять запись только в определенный каталог и ключи реестра. Windows 10 Pro , начиная с версии 1903, предоставляет функцию, известную как «Песочница Windows». [8]
- Google . API изолированной программной среды [9]
- Виртуальные машины имитируют полноценный хост-компьютер, на котором может загружаться и работать обычная операционная система, как на реальном оборудовании. Гостевая операционная система работает в «песочнице» в том смысле, что она не работает на хосте изначально и может получать доступ к ресурсам хоста только через эмулятор.
- Тюрьма . : ограничения доступа к сети и ограниченное пространство имен файловой системы Джейлы чаще всего используются на виртуальном хостинге . [10]
- Выполнение на основе правил дает пользователям полный контроль над тем, какие процессы запускаются, создаются (другими приложениями) или им разрешено внедрять код в другие приложения и иметь доступ к сети, поскольку система назначает уровни доступа для пользователей или программ в соответствии с набор определенных правил. [11] Он также может контролировать безопасность файлов/реестра (какие программы могут читать и записывать в файловую систему/реестр). В такой среде у вирусов и троянов меньше возможностей для заражения компьютера. Платформы безопасности SELinux и Apparmor — две такие реализации для Linux .
- Исследователи безопасности в значительной степени полагаются на технологии песочницы для анализа поведения вредоносных программ. Создавая среду, которая имитирует или копирует целевые рабочие столы, исследователи могут оценить, как вредоносное ПО заражает и компрометирует целевой хост. Многочисленные службы анализа вредоносного ПО основаны на технологии «песочницы». [12]
- Google Native Client — это песочница для эффективного и безопасного запуска скомпилированного кода C и C++ в браузере независимо от операционной системы пользователя. [13]
- Системы возможностей можно рассматривать как мелкозернистый механизм песочницы, в котором программам при запуске предоставляются непрозрачные токены, и они могут выполнять определенные действия в зависимости от того, какие токены они содержат. Реализации, основанные на возможностях, могут работать на разных уровнях: от ядра до пользовательского пространства. Пример изолированной программной среды на уровне пользователя на основе возможностей включает рендеринг HTML в веб-браузере .
- Secure Computing Mode (seccomp) строгий режим, seccomp разрешает только
write()
,read()
,exit()
, иsigreturn()
системные вызовы. - В HTML5 есть атрибут «песочница» для использования с iframe . [14]
- Виртуальные машины Java включают в себя песочницу для ограничения действий ненадежного кода, например Java-апплета .
- .NET Среда общеязыкового выполнения обеспечивает безопасность доступа к коду для обеспечения соблюдения ограничений для ненадежного кода.
- Программная изоляция ошибок (SFI), [15] позволяет запускать ненадежный собственный код, помещая все инструкции по хранению, чтению и переходу в изолированные сегменты памяти.
Некоторые из вариантов использования песочниц включают следующее:
- Системы онлайн-судьи для тестирования программ на соревнованиях по программированию.
- нового поколения, Пастебины позволяющие пользователям выполнять вставленные фрагменты кода на сервере пастебина.
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ «Что такое среда песочницы? - Значение | Proofpoint UK» . Доказательство . 13 сентября 2023 г. Проверено 28 мая 2024 г.
- ^ Голдберг, Ян; Вагнер, Дэвид; Томас, Рэнди и Брюэр, Эрик (1996). «Безопасная среда для ненадежных вспомогательных приложений (ограждение хитрого хакера)» (PDF) . Материалы шестого симпозиума по безопасности USENIX UNIX . Проверено 25 октября 2011 г.
- ^ Гейер, Эрик (16 января 2012 г.). «Как обеспечить безопасность вашего компьютера с помощью песочницы» . ТехХайв. Архивировано из оригинала 12 июля 2014 г. Проверено 3 июля 2014 г.
- ^ «Приложения для песочницы» (PDF) . 2001 . Проверено 7 мая 2013 г.
- ^ «Песочница приложения — проект Android с открытым исходным кодом» . Проверено 2 апреля 2021 г.
- ^ «О песочнице приложения» . разработчик.apple.com . Проверено 9 декабря 2020 г.
- ^ «Безопасность процесса выполнения в iOS и iPadOS» . Поддержка Apple . Проверено 4 апреля 2021 г.
- ^ «Песочница Windows» . 18 декабря 2018 г. Проверено 7 января 2010 г.
- ^ google/sandboxed-api , Google, 08.12.2020 , получено 9 декабря 2020 г.
- ^ «Безопасная система автоматической песочницы» . Проверено 30 января 2015 г.
- ^ «Безопасность компьютерных систем и контроль доступа» . 1991. Архивировано из оригинала 28 мая 2013 года . Проверено 17 мая 2013 г.
- ^ «Встроенная клиентская песочница — ненадежный собственный код x86» (PDF) . Проверено 03 января 2015 г.
- ^ Добро пожаловать в Native Client
- ^ Блог группы Internet Explorer (14 июля 2011 г.). «Глубокая защита: блокировка гибридных веб-приложений с помощью песочницы HTML5» . IEBlog .
- ^ Вахбе, Роберт (1993). «Эффективная программная изоляция неисправностей» (PDF) .
Внешние ссылки
[ редактировать ]- Подробная информация о безопасности программного обеспечения Linux: предотвращение и устранение ошибок безопасности
- Песочница – Проекты Chromium
- Справочная страница FreeBSD capsicum(4) — упрощенные возможности ОС и среда песочницы
- Справочная страница OpenBSD залога(2) – способ ограничения системных операций
- Важность тестирования в песочнице. Архивировано 26 апреля 2021 г. на Wayback Machine {песочница}. Важность песочницы в уязвимости нулевого дня.