Повышение привилегий — это действие по использованию ошибки , недостатка дизайна или упущения конфигурации в операционной системе или программном приложении для получения повышенного доступа к ресурсам , которые обычно защищены от приложения или пользователя . Результатом является то, что приложение или пользователь с большими привилегиями , чем предполагалось разработчиком приложения или системным администратором, могут выполнять несанкционированные действия.
Большинство компьютерных систем разработаны для использования с несколькими учетными записями пользователей, каждая из которых имеет возможности, известные как привилегии . Обычные привилегии включают просмотр и редактирование файлов или изменение системных файлов.
Повышение привилегий означает, что пользователи получают привилегии, на которые они не имеют права. Эти привилегии могут использоваться для удаления файлов, просмотра личной информации или установки нежелательных программ, таких как вирусы. Обычно это происходит, когда в системе есть ошибка , позволяющая обойти защиту, или, в качестве альтернативы, имеются ошибочные предположения о том, как она будет использоваться. Повышение привилегий происходит в двух формах:
Этот тип повышения привилегий происходит, когда пользователь или процесс может получить более высокий уровень доступа, чем предполагал администратор или разработчик системы, возможно, путем выполнения операций на уровне ядра .
В некоторых случаях высокопривилегированное приложение предполагает, что ему будут предоставлены только входные данные, соответствующие спецификации его интерфейса, поэтому не проверяет эти входные данные. Затем злоумышленник может воспользоваться этим предположением, чтобы запустить несанкционированный код с привилегиями приложения:
/etc/cron.d
, запрашивала бы выполнение дампа ядра в случае сбоя, а затем сама бы была убита другим процессом. Файл дампа ядра был бы помещен в текущий каталог программы, то есть , /etc/cron.d
и cron
обрабатывал бы его как текстовый файл, указывающий ей запускать программы по расписанию. Поскольку содержимое файла находилось бы под контролем злоумышленника, злоумышленник мог бы выполнить любую программу с привилегиями root .В компьютерной безопасности джейлбрейк определяется как действие по снятию ограничений, которые поставщик пытался жестко закодировать в своем программном обеспечении или услугах. [2] Распространенным примером является использование наборов инструментов для выхода из chroot или jail в UNIX-подобных операционных системах [3] или обход управления цифровыми правами (DRM). В первом случае это позволяет пользователю видеть файлы за пределами файловой системы , которые администратор намеревается сделать доступными для рассматриваемого приложения или пользователя. В контексте DRM это позволяет пользователю запускать произвольно определенный код на устройствах с DRM, а также выходить за рамки ограничений, подобных chroot. Термин возник в сообществе джейлбрейка iPhone / iOS и также использовался как термин для взлома PlayStation Portable ; эти устройства неоднократно подвергались джейлбрейкам, что позволяло выполнять произвольный код, и иногда эти джейлбрейки отключались обновлениями поставщика.
Системы iOS , включая iPhone , iPad и iPod Touch, подвергались попыткам взлома iOS с момента их выпуска и продолжаются с каждым обновлением прошивки. [4] [5] Инструменты взлома iOS включают возможность установки интерфейсов пакетов, таких как Cydia и Installer.app , сторонних альтернатив App Store , как способ поиска и установки системных настроек и двоичных файлов. Чтобы предотвратить взлом iOS, Apple заставила загрузочное ПЗУ устройства выполнять проверки на наличие SHSH-блобов , чтобы запретить загрузку пользовательских ядер и предотвратить понижение версии программного обеспечения до более ранней прошивки, поддающейся взлому. При «непривязанном» взломе среда iBoot изменяется для выполнения эксплойта загрузочного ПЗУ и разрешения отправки исправленного загрузчика низкого уровня или взлома ядра для отправки взломанного ядра после проверки SHSH.
Аналогичный метод джейлбрейка существует для смартфонов на платформе S60 , где такие утилиты, как HelloOX, позволяют выполнять неподписанный код и получать полный доступ к системным файлам. [6] [7] или редактировать прошивку (похожую на взломанную прошивку M33, используемую для PlayStation Portable ) [8] для обхода ограничений на неподписанный код . С тех пор Nokia выпустила обновления для ограничения несанкционированного джейлбрейка, аналогично Apple.
В случае игровых консолей джейлбрейк часто используется для запуска самодельных игр . В 2011 году Sony при содействии юридической фирмы Kilpatrick Stockton подала в суд на 21-летнего Джорджа Хотца и сообщников из группы fail0verflow за джейлбрейк PlayStation 3 (см . Sony Computer Entertainment America против Джорджа Хотца и PlayStation Jailbreak ).
Джейлбрейк также может происходить в системах и программном обеспечении, которые используют генеративные модели искусственного интеллекта, такие как ChatGPT . При джейлбрейк-атаках на системы искусственного интеллекта пользователи могут манипулировать моделью, заставляя ее вести себя иначе, чем она была запрограммирована, что позволяет раскрыть информацию о том, как была проинструктирована модель, и заставить ее реагировать аномальным или вредоносным образом. [9] [10]
Телефоны Android могут быть официально рутированы либо путем прохождения контролируемого производителем процесса, либо с помощью эксплойта для получения root-прав, либо путем установки модификации root-прав. Производители разрешают рутирование с помощью контролируемого ими процесса, в то время как некоторые позволяют рутировать телефон, просто нажимая определенные комбинации клавиш во время загрузки или другими самостоятельно администрируемыми методами. Использование метода производителя почти всегда приводит к заводскому сбросу устройства, что делает рутирование бесполезным для людей, которые хотят просмотреть данные, а также навсегда аннулирует гарантию, даже если устройство было дерутировано и перепрошито. Программные эксплойты обычно либо нацелены на процесс уровня root, который доступен пользователю, с помощью эксплойта, специфичного для ядра телефона, или с помощью известного эксплойта Android, который был исправлен в более новых версиях; не обновляя телефон или намеренно понижая версию.
Операционные системы и пользователи могут использовать следующие стратегии для снижения риска повышения привилегий:
Недавние исследования показали, что может эффективно обеспечить защиту от атак повышения привилегий. К ним относится предложение дополнительного наблюдателя ядра (AKO), который специально предотвращает атаки, направленные на уязвимости ОС. Исследования показывают, что AKO на самом деле эффективен против атак повышения привилегий. [13]
Горизонтальное повышение привилегий происходит, когда приложение позволяет злоумышленнику получить доступ к ресурсам , которые обычно были бы защищены от приложения или пользователя . Результатом является то, что приложение выполняет действия с тем же пользователем, но с другим контекстом безопасности, чем предполагал разработчик приложения или системный администратор ; это фактически ограниченная форма повышения привилегий (в частности, несанкционированное предположение о возможности выдавать себя за других пользователей). По сравнению с вертикальным повышением привилегий, горизонтальное не требует обновления привилегий учетных записей. Оно часто полагается на ошибки в системе. [14]
Эта проблема часто возникает в веб-приложениях . Рассмотрим следующий пример:
Такая вредоносная деятельность может быть возможна из-за распространенных слабостей и уязвимостей веб-приложений.
Потенциальные уязвимости веб-приложений или ситуации, которые могут привести к такому состоянию, включают:
хотел сообщить вам, что форум закрыт на обслуживание. Он снова заработает через день или около того (я немного испортил файлы конфигурации и мне нужно восстановить резервную копию однодневной давности, поэтому я подумал, почему бы не обновить всю серверную платформу)