Запутанная депутатская проблема - Confused deputy problem
В информационная безопасность, то запутанная депутатская проблема часто приводится как пример того, почему безопасность на основе возможностей это важно. А сбитый с толку депутат законный, более привилегированный компьютерная программа его обманом заставили другую программу злоупотребить своими полномочиями в системе. Это особый вид повышение привилегий.
Возможности системы защитить от запутанной депутатской проблемы, тогда как список контроля доступа -системы нет.[1]
Пример
В исходном примере сбитого с толку депутата[2] есть программа, которая предоставляет сборник сервисы для других программ. Обычно клиентская программа указывает имена входных и выходных файлов, и серверу предоставляется такой же доступ к этим файлам, что и у клиента.
Служба компилятора оплачивается по мере использования, а служба компилятора хранит свою информацию о выставлении счетов в файле (дублированном ЗАКОНОПРОЕКТ), доступ к которому есть только у него.
В ситуации, когда клиент вызывает службу и называет свой выходной файл ЗАКОНОПРОЕКТ, возникает запутанная проблема заместителя: сервис открывает выходной файл. Даже если у клиента не было доступа к этому файлу, служба имеет доступ, поэтому открытие завершается успешно. Сервер записывает результат компиляции в файл (здесь ЗАКОНОПРОЕКТ) как обычно, перезаписывая его, тем самым уничтожая платежную информацию.
Растерянный депутат
В этом примере служба компиляции является заместителем, потому что она действует по запросу клиента. Служба считается «запутанной», потому что ее обманом заставили перезаписать файл биллинга.
Когда программа пытается получить доступ к файлу, Операционная система необходимо знать две вещи: какой файл запрашивает программа и имеет ли программа разрешение на доступ к файлу. В этом примере файл обозначен своим именем «BILL». Сервер получает имя файла от клиента, но не знает, было ли у клиента разрешение на запись файла. Когда сервер открывает файл, система использует разрешение сервера, а не клиента. Когда имя файла было передано от клиента к серверу, разрешение не соответствовало ему; разрешение было увеличено системой автоматически и автоматически.
Для атаки не обязательно, чтобы файл биллинга был обозначен именем, представленным в виде строки. Существенные моменты заключаются в следующем:
- указатель файла не имеет всех прав, необходимых для доступа к файлу;
- собственное разрешение сервера на файл используется неявно.
Другие примеры
А подделка межсайтового запроса (CSRF) - это пример атаки на запутанного заместителя, которая использует веб-браузер для выполнения конфиденциальных действий с веб-приложением. Распространенная форма этой атаки происходит, когда веб-приложение использует файл cookie для аутентификации всех запросов, передаваемых браузером. Используя JavaScript, злоумышленник может заставить браузер передавать аутентифицированные HTTP-запросы.
В Самый компьютерный червь использовал межсайтовый скриптинг (XSS), чтобы превратить аутентифицированный сеанс MySpace браузера в запутанного помощника. Используя XSS, червь заставил браузер опубликовать исполняемую копию червя в виде сообщения MySpace, которое затем было просмотрено и выполнено друзьями зараженного пользователя.
Кликджекинг это атака, при которой пользователь действует как запутавшийся заместитель. В этой атаке пользователь думает, что он безвредно просматривает веб-сайт (веб-сайт, контролируемый злоумышленником), но на самом деле их обманом заставляют выполнять конфиденциальные действия на другом веб-сайте.[3]
An Атака с отказом FTP может позволить злоумышленнику косвенно подключиться к TCP-портам, к которым машина злоумышленника не имеет доступа, используя удаленный FTP сервер как растерянный зам.
Другой пример относится к персональный брандмауэр программного обеспечения. Он может ограничивать доступ в Интернет для определенных приложений. Некоторые приложения обходят это путем запуска браузера с инструкциями для доступа к определенному URL-адресу. Браузер имеет право открывать сетевое соединение, даже если приложение этого не делает. Программное обеспечение брандмауэра может попытаться решить эту проблему, запрашивая пользователя в случаях, когда одна программа запускает другую, которая затем обращается к сети. Однако пользователь часто не имеет достаточной информации, чтобы определить, является ли такой доступ законным - ложные срабатывания являются обычным явлением, и существует значительный риск того, что даже опытные пользователи привыкнут нажимать «ОК» в ответ на эти запросы.[4]
Не всякая программа, злоупотребляющая властью, - запутанный депутат. Иногда злоупотребление полномочиями является просто результатом программной ошибки. Проблема запутанного заместителя возникает, когда обозначение объекта передается из одной программы в другую, а соответствующее разрешение изменяется непреднамеренно, без каких-либо явных действий ни одной из сторон. Это коварно, потому что ни одна из сторон не сделала ничего явного для смены власти.
Решения
В некоторых системах можно попросить операционную систему открыть файл с разрешениями другого клиента. У этого решения есть некоторые недостатки:
- Это требует от сервера особого внимания к безопасности. Наивный или неосторожный сервер может не предпринять этот дополнительный шаг.
- Определить правильное разрешение становится труднее, если сервер, в свою очередь, является клиентом другой службы и хочет передать доступ к файлу.
- Это требует, чтобы клиент доверял серверу, чтобы не злоупотреблять заимствованными разрешениями. Обратите внимание, что пересечение разрешений сервера и клиента также не решает проблему, потому что серверу могут потребоваться очень широкие разрешения (все время, а не те, которые необходимы для данного запроса), чтобы действовать от имени произвольных клиентов.
Самый простой способ решить запутанную проблему заместителя - связать вместе обозначение объекта и разрешение на доступ к этому объекту. Это именно то, что способность является.
Используя безопасность возможностей в примере компилятора, клиент передает серверу возможность в выходной файл, например дескриптор файла, а не имя файла. Поскольку у него нет возможности для файла биллинга, он не может назначить этот файл для вывода. в подделка межсайтового запроса Например, URL-адрес, предоставленный «перекрестным» -сайтом, будет включать в себя свои собственные полномочия, независимые от полномочий клиента веб-браузера.
Смотрите также
- Setuid исполняемые файлы в Unix
- Окружающий авторитет
Рекомендации
- ^ "ACL не делают". sourceforge.net.
- ^ «Архивная копия». Архивировано из оригинал на 2003-12-05. Получено 2003-12-31.CS1 maint: заархивированная копия как заголовок (ссылка на сайт)
- ^ "кликджекинг: сбитый с толку депутат снова едет!". sourceforge.net.
- ^ Альфред Списсенс: модели безопасного сотрудничества, кандидатская диссертация. http://www.evoluware.eu/fsp_thesis.pdf Раздел 8.1.5
внешняя ссылка
- Норман Харди, Смущенный депутат: (или почему способности могли быть изобретены), Обзор операционных систем ACM SIGOPS, том 22, выпуск 4 (октябрь 1988 г.).
- Примечания к теории возможностей из нескольких источников (сопоставлено Нормом Харди).
- Everything2: Confused депутат (текст вводного уровня).