Проблема запутанного депутата
В информационной безопасности сбитый с толку заместитель — это компьютерная программа , которую другая программа (с меньшими привилегиями или правами) обманом заставила злоупотребить своими полномочиями в системе. Это особый тип повышения привилегий . [ 1 ] Проблема запутанного заместителя часто приводится в качестве примера того, почему безопасность, основанная на возможностях важна .
Системы возможностей защищают от проблемы запутанного заместителя, тогда как списков контроля доступа этого не делают. системы на основе [ 2 ]
Пример
[ редактировать ]В исходном примере растерянного депутата [ 3 ] была программа- компилятор , предоставляемая коммерческой службой разделения времени . Пользователи могли запустить компилятор и при необходимости указать имя файла, в который он будет записывать выходные данные отладки, и компилятор сможет записывать в этот файл, если у пользователя есть разрешение на запись в него.
Компилятор также собрал статистику использования возможностей языка. Эта статистика хранилась в файле под названием «(SYSX)STAT» в каталоге «SYSX». Чтобы сделать это возможным, программе-компилятору было предоставлено разрешение на запись в файлы SYSX.
Но в SYSX были и другие файлы: в частности, платежная информация системы хранилась в файле «(SYSX)BILL». Пользователь запустил компилятор и назвал «(SYSX)BILL» в качестве желаемого выходного файла отладки. [ нужна ссылка ]
Это создало запутанную депутатскую проблему. Компилятор сделал запрос операционной системе на открытие (SYSX)BILL. Несмотря на то, что у пользователя не было доступа к этому файлу, у компилятора он был, поэтому открытие прошло успешно. Компилятор записал результат компиляции в файл (здесь «(SYSX)BILL») как обычно, перезаписав его, и платежная информация была уничтожена.
Растерянный депутат
[ редактировать ]В этом примере программа-компилятор является заместителем, поскольку действует по запросу пользователя. Программа считается «запутанной», поскольку ее обманом заставили перезаписать системный файл биллинга.
Всякий раз, когда программа пытается получить доступ к файлу, операционной системе необходимо знать две вещи: какой файл запрашивает программа и есть ли у программы разрешение на доступ к файлу. В примере файл обозначается именем «(SYSX)BILL». Программа получает имя файла от пользователя, но не знает, было ли у пользователя разрешение на запись файла. Когда программа открывает файл, система использует разрешение программы, а не пользователя. Когда имя файла передавалось от пользователя программе, разрешение не сохранялось; разрешение было увеличено системой автоматически и автоматически.
Для атаки необязательно, чтобы файл биллинга имел имя, представленное в виде строки. Существенные моменты заключаются в том, что:
- указатель файла не обладает всеми полномочиями, необходимыми для доступа к файлу;
- собственное разрешение программы на доступ к файлу используется неявно.
Другие примеры
[ редактировать ]Подделка межсайтового запроса (CSRF) — это пример атаки сбивающего с толку заместителя, в которой веб-браузер используется для выполнения конфиденциальных действий против веб-приложения. Распространенная форма этой атаки возникает, когда веб-приложение использует файл cookie для аутентификации всех запросов, передаваемых браузером. Используя JavaScript , злоумышленник может заставить браузер передавать аутентифицированные HTTP- запросы.
Компьютерный червь Samy использовал межсайтовый скриптинг (XSS), чтобы превратить аутентифицированный сеанс браузера MySpace в запутанного заместителя. Используя XSS, червь заставил браузер опубликовать исполняемую копию червя в виде сообщения MySpace, которое затем было просмотрено и выполнено друзьями зараженного пользователя.
Кликджекинг — это атака, в которой пользователь выступает в роли растерянного заместителя. При этой атаке пользователь думает, что он безвредно просматривает веб-сайт (веб-сайт, контролируемый злоумышленником), но на самом деле его обманом заставляют выполнять конфиденциальные действия на другом веб-сайте. [ 4 ]
Атака FTP с отскоком может позволить злоумышленнику косвенно подключиться к TCP- портам, к которым машина злоумышленника не имеет доступа, используя удаленный FTP- сервер в качестве сбитого с толку заместителя.
Другой пример относится к программному обеспечению персонального брандмауэра . Он может ограничить доступ в Интернет для определенных приложений. Некоторые приложения обходят это, запуская браузер с инструкциями по доступу к определенному URL-адресу. Браузер имеет право открывать сетевое соединение, хотя приложение этого не делает. Программное обеспечение брандмауэра может попытаться решить эту проблему, запрашивая пользователя в тех случаях, когда одна программа запускает другую, которая затем получает доступ к сети. Однако у пользователя часто нет достаточной информации, чтобы определить, является ли такой доступ законным — ложные срабатывания являются обычным явлением, и существует значительный риск того, что даже опытные пользователи привыкнут нажимать «ОК» в ответ на эти запросы. [ 5 ]
Не каждая программа, злоупотребляющая властью, является запутавшимся депутатом. Иногда злоупотребление полномочиями является просто результатом ошибки программы. Проблема запутанного заместителя возникает, когда обозначение объекта передается из одной программы в другую, а связанное с ним разрешение меняется непреднамеренно, без каких-либо явных действий со стороны любой из сторон. Это коварно, потому что ни одна из сторон не предприняла ничего явного для смены власти.
Решения
[ редактировать ]В некоторых системах можно попросить операционную систему открыть файл, используя разрешения другого клиента. Это решение имеет некоторые недостатки:
- Это требует явного внимания к безопасности со стороны сервера. Наивный или неосторожный сервер может не пойти на этот дополнительный шаг.
- Становится сложнее определить правильное разрешение, если сервер, в свою очередь, является клиентом другой службы и хочет передать доступ к файлу.
- Это требует, чтобы клиент доверял серверу и не злоупотреблял заимствованными разрешениями. Обратите внимание, что пересечение разрешений сервера и клиента также не решает проблему, поскольку тогда серверу, возможно, придется предоставить очень широкие разрешения (постоянно, а не те, которые необходимы для данного запроса), чтобы действовать для произвольных клиентов.
Самый простой способ решить проблему запутанного заместителя — объединить обозначение объекта и разрешение на доступ к этому объекту. Это именно то, что такое способность . [ нужна ссылка ]
Используя безопасность возможностей в примере с компилятором, клиент передаст серверу возможность выходного файла, например дескриптор файла , а не имя файла. Поскольку у него нет возможности использовать файл биллинга, он не может назначить этот файл для вывода. В примере подделки межсайтового запроса URL-адрес, предоставленный «межсайтовым» сайтом, будет включать свои собственные полномочия, независимые от полномочий клиента веб-браузера.
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ У, Цзяньлян; Цуй, Тингтинг; Бан, Тао; Го, Шаньцин; Цуй, Лижень (10 сентября 2015 г.). «PaddyFrog: систематическое обнаружение уязвимости с запутанным депутатом в приложениях Android: PaddyFrog: систематическое обнаружение уязвимости с запутанным депутатом в приложениях Android» . Сети безопасности и связи . 8 (13): 2338–2349. дои : 10.1002/сек.1179 .
- ^ «ACL этого не делают» . sourceforge.net .
- ^ «Растерянный депутат (или зачем могли быть изобретены способности)» . Архивировано из оригинала 5 декабря 2003 г. Проверено 31 декабря 2003 г.
- ^ "кликджекинг: растерянный депутат снова едет!" . sourceforge.net .
- ^ Альфред Шписсенс: Модели безопасного сотрудничества, докторская диссертация. http://www.evoluware.eu/fsp_thesis.pdf Раздел 8.1.5
Внешние ссылки
[ редактировать ]- Норман Харди, Смущенный заместитель: (или почему возможности могли быть изобретены) , Обзор операционных систем ACM SIGOPS, том 22, выпуск 4 (октябрь 1988 г.).
- Заметки по теории возможностей из нескольких источников (сопоставлены Нормом Харди) .
- Everything2: Запутавшийся депутат (некоторый текст вводного уровня).