Повышение привилегий - это акт использования ошибки , недостатка в конструкции или надзора за конфигурацией в операционной системе или программном приложении для получения повышенного доступа к ресурсам , которые обычно защищены от приложения или пользователя . В результате приложение с большим количеством привилегий, чем предусмотрено разработчиком приложения или системным администратором, может выполнять неавторизованные действия.
Задний план
Большинство компьютерных систем предназначены для использования с несколькими учетными записями пользователей, каждая из которых имеет возможности, известные как привилегии . Общие привилегии включают просмотр и редактирование файлов или изменение системных файлов.
Повышение привилегий означает, что пользователи получают привилегии, на которые они не имеют права. Эти привилегии можно использовать для удаления файлов, просмотра личной информации или установки нежелательных программ, таких как вирусы. Обычно это происходит, когда в системе есть ошибка , позволяющая обойти безопасность, или, в качестве альтернативы, ошибочные проектные предположения о том, как она будет использоваться. Повышение привилегий происходит в двух формах:
- Вертикальное повышение привилегий , также известное как повышение привилегий , когда пользователь или приложение с более низкими привилегиями получает доступ к функциям или контенту, зарезервированным для пользователей или приложений с более высокими привилегиями (например, пользователи интернет-банка могут получить доступ к функциям администрирования сайта или пароль для смартфона может быть обойден).
- Горизонтальное повышение привилегий , при котором обычный пользователь получает доступ к функциям или контенту, зарезервированным для других обычных пользователей (например, пользователь A интернет-банка получает доступ к счету в интернет-банке пользователя B)
Вертикальный
Этот тип повышения привилегий происходит, когда пользователь или процесс могут получить более высокий уровень доступа, чем предполагал администратор или разработчик системы, возможно, путем выполнения операций на уровне ядра .
Примеры
В некоторых случаях приложение с высокими привилегиями предполагает, что ему будет предоставлен только ввод, соответствующий его спецификации интерфейса, поэтому не проверяет этот ввод. Затем злоумышленник может воспользоваться этим предположением, чтобы запустить неавторизованный код с привилегиями приложения:
- Некоторые службы Windows настроены для работы под учетной записью пользователя локальной системы. Уязвимость, такая как переполнение буфера, может использоваться для выполнения произвольного кода с привилегиями, повышенными до локальной системы. В качестве альтернативы системная служба, которая олицетворяет меньшего пользователя, может повысить привилегии этого пользователя, если ошибки не обрабатываются правильно во время олицетворения пользователя (например, если пользователь ввел вредоносный обработчик ошибок )
- В некоторых устаревших версиях операционной системы Microsoft Windows заставка «Все пользователи» запускается под учетной записью «Локальная система» - поэтому любая учетная запись, которая может заменить текущий двоичный файл заставки в файловой системе или реестре, может повысить привилегии.
- В некоторых версиях ядра Linux можно было написать программу, которая установила бы ее текущий каталог
/etc/cron.d
, запросив выполнение дампа ядра в случае, если он выйдет из строя, а затем будет убит другим процессом. Файл дампа ядра был бы помещен в текущий каталог программы, то есть/etc/cron.d
, иcron
обрабатывал бы его как текстовый файл, инструктирующий его запускать программы по расписанию. Поскольку содержимое файла будет находиться под контролем злоумышленника, злоумышленник сможет выполнить любую программу с привилегиями root . - Межзональный скриптинг - это тип атаки с повышением привилегий, при которой веб-сайт подрывает модель безопасности веб-браузеров, позволяя запускать вредоносный код на клиентских компьютерах.
- Также существуют ситуации, когда приложение может использовать другие службы с высокими привилегиями и имеет неверные предположения о том, как клиент может управлять использованием этих служб. Приложение, которое может выполнять команды командной строки или оболочки, может иметь уязвимость внедрения оболочки, если оно использует непроверенный ввод как часть выполненной команды. Тогда злоумышленник сможет запускать системные команды, используя привилегии приложения.
- Калькуляторы Texas Instruments (особенно TI-85 и TI-82 ) изначально были разработаны для использования только интерпретируемых программ, написанных на диалектах TI-BASIC ; однако после того, как пользователи обнаружили ошибки, которые могут быть использованы для запуска нативного кода Z-80 на оборудовании калькулятора, TI выпустила программные данные для поддержки сторонних разработок. (Это не вели к ARM -На TI-Nspire , для которого джейлбрейк с помощью Ndless были найдены , но все еще активно боролись против от Texas Instruments.)
- Некоторые версии iPhone позволяют неавторизованному пользователю получить доступ к телефону, когда он заблокирован. [1]
Взлом
Джейлбрейк это действие или инструмент , используемый для выполнения акт разрушения из Chroot или тюрьмы в UNIX-подобных операционных систем [2] или в обход управления цифровыми правами (DRM). В первом случае он позволяет пользователю видеть файлы вне файловой системы, которые администратор намеревается сделать доступными для рассматриваемого приложения или пользователя. В контексте DRM это позволяет пользователю запускать произвольно определенный код на устройствах с DRM, а также преодолевать ограничения, подобные chroot. Этот термин возник в сообществе взломщиков iPhone / iOS и также использовался как термин для взлома PlayStation Portable ; эти устройства неоднократно подвергались джейлбрейку, что позволяло выполнять произвольный код, и иногда эти джейлбрейки были отключены обновлениями поставщика.
Системы iOS , включая iPhone , iPad и iPod touch , с момента их выпуска подвергались попыткам взлома iOS и продолжаются с каждым обновлением прошивки. [3] [4] Инструменты для взлома iOS включают возможность установки Cydia или Sileo, сторонних альтернатив App Store , как способ найти и установить системные настройки и двоичные файлы. Чтобы предотвратить взлом iOS, Apple заставила загрузочное ПЗУ устройства выполнять проверки SHSH blobs , чтобы запретить загрузку пользовательских ядер и предотвратить переход на более раннюю версию прошивки с возможностью взлома. При «непривязанном» побеге из тюрьмы среда iBoot изменяется, чтобы выполнить эксплойт загрузочного ПЗУ и разрешить отправку исправленного загрузчика низкого уровня или взломать ядро для отправки взломанного ядра после проверки SHSH.
Аналогичный метод взлома существует для смартфонов на платформе S60 , где такие утилиты, как HelloOX, позволяют выполнять неподписанный код и полный доступ к системным файлам. [5] [6] или отредактированная прошивка (похожая на взломанную прошивку M33, используемую для PlayStation Portable ) [7], чтобы обойти ограничения на неподписанный код . С тех пор Nokia выпустила обновления для предотвращения несанкционированного взлома, аналогично Apple.
В случае с игровыми консолями для запуска самодельных игр часто используется взлом . В 2011 году Sony при содействии юридической фирмы Kilpatrick Stockton подала в суд на 21-летнего Джорджа Хотца и партнеров из группы fail0verflow за взлом PlayStation 3 (см. Sony Computer Entertainment America против Джорджа Хотца и побег из тюрьмы PlayStation ).
Android
Телефоны Android могут быть официально рутированы либо путем прохождения процесса, контролируемого производителем, с использованием эксплойта для получения root-прав, либо путем прошивки пользовательского восстановления. Производители разрешают рутирование через процесс, который они контролируют, в то время как некоторые позволяют рутировать телефон, просто нажимая определенные комбинации клавиш во время загрузки или другими самоуправляемыми методами. Использование метода производителя почти всегда приводит к аннулированию гарантии безвозвратно, даже если устройство было отключено и перепрошено. Программные эксплойты обычно либо нацелены на процесс корневого уровня, который доступен пользователю, используя эксплойт, специфичный для ядра телефона, либо используя известный эксплойт Android, который был исправлен в более новых версиях; не обновляя телефон или намеренно понижая версию.
Стратегии смягчения последствий
Операционные системы и пользователи могут использовать следующие стратегии для снижения риска повышения привилегий:
- Предотвращение выполнения данных
- Рандомизация разметки адресного пространства (чтобы при переполнении буфера было сложнее выполнить привилегированные инструкции по известным адресам в памяти)
- Запуск приложений с минимальными привилегиями (например, путем запуска Internet Explorer с отключенным SID администратора в токене процесса ), чтобы уменьшить возможность эксплойтов переполнения буфера злоупотреблять привилегиями пользователя с повышенными привилегиями.
- Требование цифровой подписи кода режима ядра.
- Патчинг
- Использование компиляторов , улавливающих переполнение буфера [8]
- Шифрование программного обеспечения и / или компонентов прошивки .
- Использование операционной системы с обязательным контролем доступа (MAC), такой как SELinux [9]
По горизонтали
Горизонтальное повышение привилегий происходит, когда приложение позволяет злоумышленнику получить доступ к ресурсам, которые обычно были бы защищены от приложения или пользователя . В результате приложение выполняет действия с одним и тем же пользователем, но с другим контекстом безопасности, чем задумано разработчиком приложения или системным администратором ; это фактически ограниченная форма повышения привилегий (в частности, несанкционированное предположение о возможности выдавать себя за других пользователей).
Примеры
Эта проблема часто возникает в веб-приложениях . Рассмотрим следующий пример:
- Пользователь А имеет доступ к своему собственному банковскому счету в приложении интернет-банка.
- Пользователь Б имеет доступ к своему собственному банковскому счету в том же приложении интернет-банка.
- Уязвимость возникает, когда пользователь A может получить доступ к банковскому счету пользователя B, выполняя какую-либо вредоносную деятельность.
Эта вредоносная деятельность может быть возможна из-за общих слабых сторон или уязвимостей веб-приложений.
Возможные уязвимости веб-приложений или ситуации, которые могут привести к этому состоянию, включают:
- Предсказуемые идентификаторы сеанса в HTTP-куки пользователя
- Фиксация сеанса
- Межсайтовый скриптинг
- Легко угадываемые пароли
- Кража или захват файлов cookie сеанса
- Регистрация нажатия клавиш
Смотрите также
- Защитное программирование
- Взлом бытовой электроники
- Незаконный номер
- Принцип наименьших привилегий
- Отзыв привилегии (вычисления)
- Разделение привилегий
- Получение root-прав (ОС Android)
- Молоток гребной
Рекомендации
- ^ Теймур Асад (27 октября 2010). «Apple признает недостаток безопасности iOS 4.1. Исправит его в ноябре с выпуском iOS 4.2» . RedmondPie.
- ^ Сайрус Пейкари; Антон Чувакин (2004). Воин безопасности: знай своего врага . «О'Рейли Медиа, Инк.». п. 304 . ISBN 978-0-596-55239-8.
- ^ Джеймс Кинтана Pearce (2007-09-27) Несогласие компании Apple с Orange, IPhone Хакеров , paidcontent.org, архивируются с оригинала на 2012-07-29 , извлекаться 2011-11-25
- ^ Отчеты: Следующее обновление iPhone выйдет из строя сторонних приложений, бюст разблокирует ComputerWorld на v1.1.3
- ^ Phat ^ Trance (16 февраля 2010 г.). "Объявление: Форум заблокирован" . dailymobile.se . Архивировано из оригинала 3 марта 2009 года . Проверено 30 августа, 2016 .
Просто хотел сообщить вам, что форум не работает. Он вернется в онлайн через день или около того (я как бы испортил файлы конфигурации и мне нужно восстановить однодневную резервную копию, поэтому я подумал, почему бы не обновить всю серверную платформу)
- ^ HelloOX 1.03: один шаг для взлома Symbian S60, 3-е изд. телефонов, и для Nokia 5800 XpressMusic тоже
- ^ Обход подписанных Symbian и установка неподписанных мидлетов SISX / J2ME на Nokia S60 v3 с полными системными разрешениями
- ^ «Microsoft минимизирует угрозу переполнения буфера, создает надежные приложения» . Microsoft . Сентябрь 2005 . Проверено 4 августа 2008 .[ мертвая ссылка ]
- ^ Смолли, Стивен. «Создание безопасной основы для мобильных устройств» (PDF) . Проверено 7 марта 2014 года .