Jump to content

Безопасность на основе возможностей

Безопасность на основе возможностей — это концепция проектирования безопасных вычислительных систем, одна из существующих моделей безопасности . Способность ) — (известная в некоторых системах как ключ это передаваемый, не поддающийся подделке знак власти. Оно относится к значению, которое ссылается на вместе объект с соответствующим набором прав доступа . Пользовательская должна программа в операционной системе, основанной на возможностях, использовать возможность доступа к объекту. Безопасность, основанная на возможностях, относится к принципу разработки пользовательских программ таким образом, чтобы они напрямую делились возможностями друг с другом в соответствии с принципом наименьших привилегий , а также к инфраструктуре операционной системы, необходимой для обеспечения эффективности и безопасности таких транзакций. Безопасность, основанную на возможностях, следует противопоставлять подходу, использующему традиционные разрешения UNIX и списки управления доступом .

Хотя большинство операционных систем реализуют средство, напоминающее возможности, они обычно не обеспечивают достаточной поддержки, чтобы позволить обмен возможностями между, возможно, взаимно не доверяющими объектами, стать основным средством предоставления и распределения прав доступа по всей системе. Напротив, система, основанная на возможностях, разрабатывается с учетом этой цели.

Введение [ править ]

Возможности достигают своей цели повышения безопасности системы за счет использования вместо поддельных ссылок . Поддельная ссылка (например, имя пути ) идентифицирует объект, но не определяет, какие права доступа подходят для этого объекта и пользовательской программы, которая содержит эту ссылку. Следовательно, любая попытка доступа к указанному объекту должна быть подтверждена операционной системой на основе внешних полномочий запрашивающей программы, обычно посредством использования списка управления доступом (ACL). Вместо этого в системе с возможностями сам факт того, что пользовательская программа обладает такой возможностью, дает ей право использовать объект, на который ссылаются, в соответствии с правами, указанными этой возможностью. Теоретически система с возможностями устраняет необходимость в каком-либо списке контроля доступа или аналогичном механизме, предоставляя всем объектам все и только те возможности, которые им действительно нужны.

Возможность обычно реализуется как привилегированная структура данных , состоящая из раздела, определяющего права доступа, и раздела, однозначно идентифицирующего объект, к которому осуществляется доступ. Пользователь не получает доступ к структуре данных или объекту напрямую, а через дескриптор . На практике он используется во многом подобно файловому дескриптору в традиционной операционной системе (традиционный дескриптор), но для доступа к каждому объекту в системе. Возможности обычно хранятся в операционной системе в виде списка с некоторым механизмом, предотвращающим прямое изменение программой содержимого возможности (с целью подделки прав доступа или изменения объекта, на который она указывает). Некоторые системы также основаны на адресации на основе возможностей (аппаратная поддержка возможностей), например Plessey System 250 .

Программы, обладающие такими возможностями, могут выполнять с ними такие функции, как передача их другим программам, преобразование в менее привилегированную версию или удаление. Операционная система должна гарантировать, что с возможностями системы могут выполняться только определенные операции, чтобы поддерживать целостность политики безопасности.

Возможности, обсуждаемые в этой статье, не следует путать с » интерфейса переносимой операционной системы ( POSIX ) 1e/2c « Возможностями . Последние представляют собой общие привилегии, которые нельзя передавать между процессами.

Примеры [ править ]

Возможность определяется как ссылка на защищенный объект , которая, благодаря ее обладанию пользовательским процессом, предоставляет этому процессу возможность (отсюда и название) взаимодействовать с объектом определенными способами. Эти способы могут включать в себя чтение данных, связанных с объектом, изменение объекта, выполнение данных в объекте как процесса и другие возможные права доступа. Эта возможность логически состоит из ссылки, которая однозначно идентифицирует конкретный объект, и набора одного или нескольких из этих прав.

Предположим, что в пространстве памяти пользовательского процесса существует следующая строка:

/etc/passwd

Хотя это идентифицирует уникальный объект в системе, оно не определяет права доступа и, следовательно, не является возможностью. Предположим, что вместо этого имеется следующая пара значений:

/etc/passwd
O_RDWR

Эта пара идентифицирует объект вместе с набором прав доступа. Однако эта пара по-прежнему не является возможностью, поскольку обладание пользовательским процессом этими значениями ничего не говорит о том, будет ли этот доступ на самом деле законным.

Теперь предположим, что пользовательская программа успешно выполняет следующий оператор:

int fd = open("/etc/passwd", O_RDWR);

Переменная fd теперь содержит индекс дескриптора файла в таблице дескрипторов файлов процесса. Этот файловый дескриптор является возможностью. Его существования в таблице файловых дескрипторов процесса достаточно, чтобы показать, что процесс действительно имеет законный доступ к объекту. Ключевой особенностью такого расположения является то, что таблица дескрипторов файлов находится в памяти ядра и не может быть использована программой пользователя напрямую.

Совместное использование между процессами [ править ]

В традиционных операционных системах программы часто взаимодействуют друг с другом и с хранилищем, используя ссылки, подобные тем, что приведены в первых двух примерах. Имена путей часто передаются как параметры командной строки, отправляются через сокеты и сохраняются на диске. Эти ссылки не являются возможностями и должны быть проверены, прежде чем их можно будет использовать. В этих системах центральный вопрос заключается в том, «по чьему авторитету должна оцениваться данная ссылка?» Это становится критической проблемой, особенно для процессов, которые должны действовать от имени двух разных субъектов, наделенных полномочиями. Они становятся подвержены программной ошибке, известной как проблема запутанного заместителя , которая очень часто приводит к дыре в безопасности .

В системе, основанной на возможностях, сами возможности передаются между процессами и хранилищем с использованием механизма, известного операционной системе, для поддержания целостности этих возможностей.

Один новый подход к решению этой проблемы предполагает использование ортогонально постоянной операционной системы. В такой системе нет необходимости отбрасывать объекты и признавать их возможности недействительными, и, следовательно, требуется механизм, подобный ACL, для восстановления этих возможностей в более позднее время. Операционная система постоянно поддерживает целостность и безопасность возможностей, содержащихся во всех хранилищах, как энергозависимых, так и энергонезависимых; отчасти за счет выполнения всех задач сериализации самостоятельно, вместо того, чтобы требовать этого от пользовательских программ, как это происходит в большинстве операционных систем. Поскольку пользовательские программы освобождены от этой ответственности, нет необходимости доверять им воспроизведение только допустимых возможностей или проверку запросов на доступ с использованием механизма контроля доступа . Примером реализации является машина Flex начала 1980-х годов.

Возможности POSIX [ править ]

Проект интерфейса портативной операционной системы (POSIX) 1003.1e определяет концепцию разрешений, называемую «возможностями». Однако возможности POSIX отличаются от возможностей, описанных в этой статье. Возможность POSIX не связана ни с каким объектом; процесс, имеющий возможность CAP_NET_BIND_SERVICE, может прослушивать любой TCP-порт ниже 1024. Эта система находится в Linux. [1]

Напротив, Capsicum Unix сочетает в себе настоящую модель системы возможностей с дизайном Unix и POSIX API. Возможности Capsicum — это усовершенствованная форма файлового дескриптора, делегируемое право между процессами и дополнительные типы объектов, выходящие за рамки классического POSIX, такие как процессы, на которые можно ссылаться через возможности. В режиме возможностей Capsicum процессы не могут использовать глобальные пространства имен (например, пространство имен файловой системы) для поиска объектов и вместо этого должны наследовать или делегировать их. Эта система изначально присутствует во FreeBSD, но доступны исправления для других систем. [2]

Реализации [ править ]

Известные исследовательские и коммерческие системы, использующие безопасность на основе возможностей, включают следующее:

Ссылки [ править ]

  1. ^ capabilities(7) Linux программиста Руководство – Обзор, условные обозначения и прочее
  2. ^ capsicum(4) FreeBSD по интерфейсам ядра Руководство
  3. ^ «Капсикум (4)» .
  4. ^ https://www.cl.cam.ac.uk/research/security/capsicum/papers/2010usenix-security-capsicum-website.pdf [ только URL-адрес PDF ]
  5. ^ «Genode OS: глоток свежего воздуха в безопасности операционных систем и программного обеспечения» . Радд-О.com . Проверено 21 декабря 2023 г.
  6. ^ «Операционная система Google Fuchsia работает практически на чем угодно» . Engadget . 14 августа 2016 г. Проверено 21 декабря 2023 г.
  7. ^ Децкий, Мартин. «Операционные системы на основе микроядра и возможностей» (PDF) . Д3С . Проверено 23 декабря 2023 г.
  8. ^ «docs/en/application-dev/security/accesstoken-overview.md в мастере · openharmony/docs» . Гитхаб . Проверено 4 мая 2024 г.
  9. ^ Дзюба, Тед. «Русский едет на Фантоме к бессмертию ОС» . Регистр . Проверено 31 декабря 2023 г.

Дальнейшее чтение [ править ]

«Возможности» POSIX в Linux:

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 4f5c6ea9e7c1f96eb7381631ed0d84ef__1714798800
URL1:https://arc.ask3.ru/arc/aa/4f/ef/4f5c6ea9e7c1f96eb7381631ed0d84ef.html
Заголовок, (Title) документа по адресу, URL1:
Capability-based security - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)