Механизм безопасности программного обеспечения
В компьютерной безопасности «песочница» — это механизм безопасности для разделения запущенных программ, обычно с целью предотвращения распространения сбоев системы и/или уязвимостей программного обеспечения. Метафора изоляции взята из идеи о детях, которые плохо играют вместе, поэтому каждому предоставляется своя песочница , в которой он может играть в одиночку. Он часто используется для выполнения непроверенных или ненадежных программ или кода, возможно, от непроверенных или ненадежных третьих лиц, поставщиков, пользователей или веб-сайтов, без риска причинения вреда хост-компьютеру или операционной системе . [1] Песочница обычно предоставляет строго контролируемый набор ресурсов для запуска гостевых программ, таких как хранилище и рабочее пространство памяти . Доступ к сети, возможность проверки хост-системы или чтения с устройств ввода обычно запрещены или строго ограничены.
С точки зрения обеспечения строго контролируемой среды песочницы можно рассматривать как конкретный пример виртуализации . Песочница часто используется для тестирования непроверенных программ, которые могут содержать вирус или другой вредоносный код , не позволяя программному обеспечению нанести вред хост-устройству. [2]
Реализации
Песочница реализуется путем выполнения программного обеспечения в ограниченной среде операционной системы, таким образом контролируя ресурсы (например, файловые дескрипторы , память, пространство файловой системы и т. д.), которые может использовать процесс. [3]
Примеры реализации песочницы включают следующее:
- Песочница приложений Linux , построенная на Seccomp , cgroups и пространствах имен Linux . В частности, используется Systemd , Google Chrome , Firefox , Firejail.
- Android была первой основной операционной системой, реализовавшей полную изолированную программную среду приложений, созданную путем присвоения каждому приложению собственного идентификатора пользователя Linux. [4]
- Apple App Sandbox требуется для приложений, распространяемых через Apple Mac App Store и iOS / iPadOS App Store , и рекомендуется для других подписанных приложений. [5] [6]
- Windows Vista и более поздние выпуски включают запущенный процесс «низкого» режима, известный как «Контроль учетных записей пользователей» (UAC) , который позволяет выполнять запись только в определенный каталог и ключи реестра. Windows 10 Pro , начиная с версии 1903, предоставляет функцию, известную как «Песочница Windows». [7]
- API изолированной программной среды Google . [8]
- Виртуальные машины имитируют полноценный хост-компьютер, на котором может загружаться и работать обычная операционная система, как на реальном оборудовании. Гостевая операционная система работает в изолированной программной среде в том смысле, что она не работает на хосте изначально и может получать доступ к ресурсам хоста только через эмулятор.
- Тюрьма : ограничения доступа к сети и ограниченное пространство имен файловой системы. Джейлы чаще всего используются на виртуальном хостинге . [9]
- Выполнение на основе правил дает пользователям полный контроль над тем, какие процессы запускаются, создаются (другими приложениями) или им разрешено внедрять код в другие приложения и иметь доступ к сети, поскольку система назначает уровни доступа для пользователей или программ в соответствии с набор определенных правил. [10] Он также может контролировать безопасность файлов/реестра (какие программы могут читать и записывать в файловую систему/реестр). В такой среде у вирусов и троянов меньше возможностей для заражения компьютера. Платформы безопасности SELinux и Apparmor — две такие реализации для Linux .
- Исследователи безопасности в значительной степени полагаются на технологии песочницы для анализа поведения вредоносных программ. Создавая среду, которая имитирует или копирует целевые рабочие столы, исследователи могут оценить, как вредоносное ПО заражает и компрометирует целевой хост. Многочисленные службы анализа вредоносного ПО основаны на технологии «песочницы». [11]
- Google Native Client — это песочница для эффективного и безопасного запуска скомпилированного кода C и C++ в браузере независимо от операционной системы пользователя. [12]
- Системы возможностей можно рассматривать как мелкозернистый механизм песочницы, в котором программам при запуске предоставляются непрозрачные токены, и они могут выполнять определенные действия в зависимости от того, какие токены они содержат. Реализации, основанные на возможностях, могут работать на разных уровнях: от ядра до пользовательского пространства. Пример изолированной программной среды на уровне пользователя на основе возможностей включает рендеринг HTML в веб-браузере .
- Режим безопасных вычислений (seccomp) Строгий режим, seccomp разрешает только системные вызовы
write()
, read()
, exit()
и sigreturn()
. - В HTML5 есть атрибут «песочница» для использования с iframe . [13]
- Виртуальные машины Java включают в себя песочницу для ограничения действий ненадежного кода, например Java-апплета .
- Среда общеязыкового выполнения .NET обеспечивает безопасность доступа к коду для обеспечения соблюдения ограничений для ненадежного кода.
- Программная изоляция ошибок (SFI), [14] позволяет запускать ненадежный собственный код, помещая все инструкции по хранению, чтению и переходу в изолированные сегменты памяти.
Некоторые из вариантов использования песочниц включают следующее:
Смотрите также
Рекомендации
- ^ Голдберг, Ян; Вагнер, Дэвид; Томас, Рэнди и Брюэр, Эрик (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 декабря 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 {песочница}. Важность песочницы в уязвимости нулевого дня.