Повышение привилегий является действием использование ошибки , недостатка конструкции или надзора за конфигурацией в операционной системе или программном приложении для получения повышенного доступа к ресурсам, которые обычно защищены из приложения или пользователя. В результате приложение с большим количеством привилегий, чем предусмотрено разработчиком приложения или системным администратором, может выполнять неавторизованные действия.
Большинство компьютерных систем предназначены для использования с несколькими учетными записями пользователей, каждая из которых имеет возможности, известные как привилегии. Общие привилегии включают просмотр и редактирование файлов или изменение системных файлов.
Повышение привилегий означает, что пользователь получает привилегии, на которые он не имеет права. Эти привилегии можно использовать для удаления файлов, просмотра личной информации или установки нежелательных программ, таких как вирусы. Обычно это происходит, когда в системе есть ошибка, позволяющая обойти безопасность, или, в качестве альтернативы, ошибочные проектные предположения о том, как она будет использоваться. Повышение привилегий происходит в двух формах:
Этот тип повышения привилегий происходит, когда пользователь или процесс могут получить более высокий уровень доступа, чем предполагал администратор или разработчик системы, возможно, путем выполнения операций уровня ядра.
В некоторых случаях приложение с высокими привилегиями предполагает, что ему будет предоставлен только ввод, соответствующий его спецификации интерфейса, поэтому не проверяет этот ввод. Затем злоумышленник может воспользоваться этим предположением, чтобы запустить неавторизованный код с привилегиями приложения:
/ etc / cron.d
, запросить выполнение дампа ядра в случае его сбоя, а затем его убит другим процессом. Файл дампа ядра был бы помещен в папку программы текущий каталог, то есть /etc/cron.d
и cron
, будет рассматривать его как текстовый файл, инструктирующий его запустить программу с по расписанию. Поскольку содержимое файла находится под контролем злоумышленника, злоумышленник сможет выполнить любую программу с привилегиями root.A джейлбрейк - это действие или инструмент, используемый для выполнить акт взлома chroot или тюрьмы в UNIX-подобных операционных системах или в обход управления цифровыми правами (DRM). В первом случае это позволяет пользователю видеть файлы за пределами файловой системы , которые администратор намеревается сделать доступными для рассматриваемого приложения или пользователя. В контексте DRM это позволяет пользователю запускать произвольно определенный код на устройствах с DRM, а также преодолевать ограничения, подобные chroot. Термин возник в сообществе разработчиков взлома iPhone / iOS, а также использовался как термин для взлома PlayStation Portable ; эти устройства неоднократно подвергались джейлбрейку, что позволяло запускать произвольный код, и иногда эти джейлбрейки были отключены обновлениями поставщика.
Системы iOS, включая iPhone, iPad и iPod touch, подвергались попыткам взломать iOS с тех пор, как они были выпущены и продолжаются с каждым обновлением прошивки. Инструменты для взлома iOS включают возможность установки Cydia или Sileo, сторонних альтернатив App Store, в качестве способа поиска и установки системных настроек и двоичных файлов. Чтобы предотвратить взлом iOS, Apple заставила устройство boot ROM выполнять проверки для SHSH blobs, чтобы запретить загрузку пользовательских ядер и предотвратить переход на более раннюю версию прошивки с возможностью взлома. При «непривязанном» взломе среда iBoot изменяется для выполнения эксплойта загрузочного ПЗУ и позволяет отправить исправленный загрузчик низкого уровня или взломать ядро для отправки взломанного ядра после проверки SHSH.
Аналогичный метод взлома существует для платформы S60 смартфонов, где такие утилиты, как HelloOX, позволяют выполнять неподписанный код и полный доступ к системным файлам. или отредактированная прошивка (подобная взломанной прошивке M33, используемой для PlayStation Portable ), чтобы обойти ограничения на неподписанный код. Nokia с тех пор выпустила обновления для предотвращения несанкционированного взлома, аналогично Apple.
В случае игровых консолей для запуска самодельных игр часто используется джейлбрейк. В 2011 году Sony при содействии юридической фирмы Kilpatrick Stockton подала в суд на 21-летнего Джорджа Хотца и его партнеров из группы fail0verflow за взлом PlayStation 3 (см. Sony Computer Entertainment America против Джорджа Хотца и побег из тюрьмы PlayStation ).
телефоны Android могут быть официально рутированы либо путем прохождения процесса, контролируемого производителем, с помощью эксплойта для получения root, либо путем прошивки пользовательского восстановления. Производители разрешают рутирование через процесс, который они контролируют, в то время как некоторые позволяют рутировать телефон, просто нажимая определенные комбинации клавиш во время загрузки или другими способами самоуправления. Использование метода производителя почти всегда приводит к аннулированию гарантии, даже если устройство было отключено и перепрошено. Программные эксплойты обычно либо нацелены на процесс корневого уровня, который доступен пользователю, используя эксплойт, специфичный для ядра телефона, либо используя известный эксплойт Android, который был исправлен в более новых версиях; не обновляя телефон или намеренно понижая версию.
Операционные системы и пользователи могут использовать следующие стратегии, чтобы снизить риск повышения привилегий:
Горизонтальное повышение привилегий происходит, когда приложение позволяет злоумышленнику чтобы получить доступ к ресурсам, которые обычно были бы защищены от приложения или пользователя. В результате приложение выполняет действия с одним и тем же пользователем, но с другим контекстом безопасности, чем было задумано разработчиком приложения или системным администратором ; по сути, это ограниченная форма повышения привилегий (в частности, несанкционированное предположение о возможности выдавать себя за других пользователей).
Эта проблема часто возникает в веб-приложениях. Рассмотрим следующий пример:
Эта вредоносная деятельность может быть возможна из-за общих слабых сторон или уязвимостей веб-приложений.
Возможные уязвимости веб-приложений или ситуации, которые могут привести к этому состоянию, включают: