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