Повышение привилегий

Материал из Википедии — свободной энциклопедии
(перенаправлено с «Эскалация привилегий»)
Перейти к навигации Перейти к поиску

Повышение привилегий — это использование компьютерного бага, уязвимостей, ошибки в конфигурации операционной системы или программного обеспечения с целью повышения уровня доступа к вычислительным ресурсам, которые обычно защищены от пользователя. В итоге, приложение, обладающее бо́льшими полномочиями, чем предполагалось системным администратором, может совершать неавторизированные действия. «Повышением привилегий» называют ситуацию, когда пользователь компьютерной системы каким-либо образом повышает свои полномочия в этой системе (другими словами: получил возможность делать то, чего прежде делать не мог).

Такая ошибка в программе, как внедрение кода через переполнение буфера, всегда нежелательна. Но, серьёзной эту ошибку можно считать лишь в том случае, если она повышает привилегии пользователя. В частности, если внедрение кода происходит на локальной машине, это привилегий не повышает: пользователь и без этого может выполнять исполняемые файлы. Если же удаётся внедрить код через сеть, это уже повышение привилегий: у пользователя появилась возможность выполнять машинный код.[1]

Описание[править | править код]

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

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

  • Вертикальное повышение привилегий

Пользователь с низкими привилегиями или приложение имеет доступ к функциям, относящихся к более привилегированным пользователям или приложениям (например, когда пользователи Интернет-банкинга имеют доступ к административным функциям или знают способ обхода пароля по SMS)

  • Горизонтальное повышение привилегий

Обычный пользователь имеет доступ к личным данным или функциям других пользователей (например, пользователь А имеет доступ к Интернет-Банкингу пользователя Б)

Вертикальное повышение привилегий[править | править код]

Кольца привилегий архитектуры x86 в защищённом режиме

Данный тип повышения привилегий описывает ситуацию, когда пользователь имеет более высокий уровень доступа, чем должен, например из-за операций с ядром.

Примеры вертикального повышения привилегий[править | править код]

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

  • В некоторых версиях Microsoft Windows все пользовательские скринсейверы работают из-под локальных пользователей. Таким образом любой пользователь, который может заменить текущий скринсейвер программно в файловой системе или в реестре может получить привилегии.
  • Существуют ситуации, когда приложение может использовать более привилегированные источники и иметь неверное представление, как пользователь будет использовать эти источники. Например, приложения, которые могут вызывать командную строку, могут иметь уязвимость, если они используют непроверенные данные на входе, как часть выполняемой команды. Злоумышленник, в этом случае, сможет использовать системные команды с привилегиями данного приложения.
  • Некоторые версии iPhone позволяют неавторизованным пользователям иметь доступ к телефону, пока он заблокирован.[2]

Горизонтальное повышение привилегий[править | править код]

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

Примеры горизонтального повышения привилегий[править | править код]

Данная проблема часто возникает в веб-приложениях. Рассмотрим следующую ситуацию:

  • Пользователь А имеет доступ к его/её счету в Интернет-банкинге.
  • Пользователь Б имеет доступ к его/её счету в том же самом Интернет-банкинге.
  • Уязвимость возникает, когда пользователь А может получить доступ к аккаунту пользователя Б с помощью разного рода злонамеренных действий.

Данные действия возможны благодаря общим слабостям и уязвимости веб-приложений.

Потенциальные слабые места веб-приложений и ситуации, которые могут привести к горизонтальному повышению привилегий:

Способы защиты[править | править код]

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

См. также[править | править код]

Примечания[править | править код]

  1. Скорее я нахожусь с другой стороны этого герметичного люка. Дата обращения: 18 октября 2011. Архивировано 25 ноября 2011 года.
  2. Taimur Asad. Apple Acknowledges iOS 4.1 Security Flaw. Will Fix it in November with iOS 4.2. RedmondPie (27 октября 2010). Дата обращения: 15 апреля 2013. Архивировано 17 апреля 2013 года.
  3. Microsoft Minimizes Threat of Buffer Overruns, Builds Trustworthy Applications. Microsoft (сентябрь 2005). Дата обращения: 4 августа 2008.

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