Повышение привилегий
Повышение привилегий — это использование ошибки , недостатка конструкции или недосмотра конфигурации в операционной системе или программном приложении для получения повышенного доступа к ресурсам , которые обычно защищены от приложения или пользователя . В результате приложение или пользователь с большим количеством привилегий , чем предполагалось разработчиком приложения или системным администратором, могут выполнять несанкционированные действия.
Фон
[ редактировать ]Большинство компьютерных систем предназначены для использования с несколькими учетными записями пользователей, каждая из которых имеет возможности, известные как привилегии . Общие привилегии включают просмотр и редактирование файлов или изменение системных файлов.
Повышение привилегий означает, что пользователи получают привилегии, на которые они не имеют права. Эти привилегии можно использовать для удаления файлов, просмотра личной информации или установки нежелательных программ, таких как вирусы. Обычно это происходит, когда в системе есть ошибка , позволяющая обойти систему безопасности, или, наоборот, если в проекте имеются ошибочные предположения о том, как она будет использоваться. Повышение привилегий происходит в двух формах:
- Вертикальное повышение привилегий , также известное как повышение привилегий , когда пользователь или приложение с более низкими привилегиями получает доступ к функциям или контенту, зарезервированным для пользователей или приложений с более высокими привилегиями (например, пользователи интернет-банкинга могут получить доступ к административным функциям сайта или можно обойти пароль для смартфона).
- Горизонтальное повышение привилегий , когда обычный пользователь получает доступ к функциям или контенту, зарезервированному для других обычных пользователей (например, пользователь А в интернет-банке получает доступ к счету в интернет-банке пользователя Б)
Вертикальный
[ редактировать ]Этот тип повышения привилегий происходит, когда пользователь или процесс могут получить более высокий уровень доступа, чем предполагал администратор или разработчик системы, возможно, путем выполнения на уровне ядра операций .
Примеры
[ редактировать ]В некоторых случаях приложение с высоким уровнем привилегий предполагает, что ему будут предоставлены только входные данные, соответствующие спецификации его интерфейса, поэтому не проверяет эти входные данные. Затем злоумышленник сможет воспользоваться этим предположением, чтобы запустить неавторизованный код с привилегиями приложения:
- Некоторые службы 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]
Взлом джейлбрейка
[ редактировать ]В компьютерной безопасности джейлбрейк определяется как действие по удалению ограничений, которые поставщик пытался жестко запрограммировать в своем программном обеспечении или услугах. [2] Типичным примером является использование наборов инструментов для выхода из chroot или тюрьмы в 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-прав или установив пользовательское рекавери. Производители разрешают рутирование посредством процесса, который они контролируют, в то время как некоторые позволяют рутировать телефон простым нажатием определенных комбинаций клавиш во время загрузки или другими методами самостоятельного администрирования. Использование метода производителя почти всегда приводит к заводским настройкам устройства, что делает рутирование бесполезным для людей, которые хотят просмотреть данные, а также навсегда лишает гарантии, даже если устройство удалено и перепрошито. Программные эксплойты обычно либо нацелены на процесс корневого уровня, доступный пользователю, используя эксплойт, специфичный для ядра телефона, либо используя известный эксплойт Android, исправленный в более новых версиях; не обновляя телефон или намеренно понижая версию.
Стратегии смягчения последствий
[ редактировать ]Операционные системы и пользователи могут использовать следующие стратегии для снижения риска повышения привилегий:
- Предотвращение выполнения данных
- Рандомизация структуры адресного пространства (чтобы затруднить переполнении буфера ) выполнение привилегированных инструкций по известным адресам в памяти при
- Запуск приложений с наименьшими привилегиями (например, запуск Internet Explorer администратора с отключенным SID процесса в токене ), чтобы уменьшить возможность использования эксплойтов переполнения буфера для злоупотребления привилегиями пользователя с повышенными правами.
- Требование, чтобы код режима ядра имел цифровую подпись.
- Исправление
- Использование компиляторов , улавливающих переполнение буфера. [11]
- Шифрование компонентов программного обеспечения и/или прошивки .
- Использование операционной системы с обязательным контролем доступа (MAC), например SELinux. [12]
- Механизм перемещения данных ядра (динамически перемещает информацию о привилегиях в работающем ядре, предотвращая атаки на повышение привилегий с использованием повреждения памяти)
Недавние исследования показали, что может эффективно обеспечить защиту от атак с целью повышения привилегий. К ним относится предложение дополнительного наблюдателя ядра (AKO), который специально предотвращает атаки, ориентированные на уязвимости ОС. Исследования показывают, что AKO на самом деле эффективен против атак с целью повышения привилегий. [13]
Горизонтальный
[ редактировать ]Горизонтальное повышение привилегий происходит, когда приложение позволяет злоумышленнику получить доступ к ресурсам , которые обычно были бы защищены от приложения или пользователя . В результате приложение выполняет действия с тем же пользователем, но с другим контекстом безопасности, чем предполагалось разработчиком приложения или системным администратором ; по сути, это ограниченная форма повышения привилегий (в частности, несанкционированное использование возможности выдавать себя за других пользователей). По сравнению с вертикальным повышением привилегий, горизонтальное не требует повышения привилегий учетных записей. Часто это зависит от ошибок в системе. [14]
Примеры
[ редактировать ]Эта проблема часто возникает в веб-приложениях . Рассмотрим следующий пример:
- Пользователь А имеет доступ к своему банковскому счету в приложении Интернет-банкинга.
- Пользователь Б имеет доступ к своему банковскому счету в том же приложении Интернет-банка.
- Уязвимость возникает, когда пользователь А может получить доступ к банковскому счету пользователя Б, выполняя какую-либо вредоносную деятельность.
Эта вредоносная деятельность может быть возможна из-за распространенных недостатков или уязвимостей веб-приложений.
Потенциальные уязвимости веб-приложений или ситуации, которые могут привести к этому состоянию, включают:
- Предсказуемые идентификаторы сеансов пользователя . в HTTP-файле cookie
- Фиксация сеанса
- Межсайтовый скриптинг
- Легко угадываемые пароли
- Кража или захват сеансовых файлов cookie
- Регистрация нажатий клавиш
См. также
[ редактировать ]- Кибербезопасность
- Оборонительное программирование
- Взлом бытовой электроники
- Незаконный номер
- Принцип наименьших привилегий
- Отзыв привилегий (вычисления)
- Разделение привилегий
- Рутирование (ОС Android)
- Рядный молоток
Ссылки
[ редактировать ]- ^ Таймур Асад (27 октября 2010 г.). «Apple признает недостаток безопасности iOS 4.1. Исправит его в ноябре в iOS 4.2» . Редмонд Пай. Архивировано из оригинала 18 февраля 2013 года . Проверено 5 ноября 2010 г.
- ^ «Определение JAILBREAK» . www.merriam-webster.com . Архивировано из оригинала 24 декабря 2022 года . Проверено 24 декабря 2022 г.
- ^ Сайрус Пейкари; Антон Чувакин (2004). Воин безопасности: знай своего врага . «О'Рейли Медиа, Инк.». п. 304 . ISBN 978-0-596-55239-8 .
- ^ Джеймс Кинтана Пирс (27 сентября 2007 г.), Разногласия Apple с Orange, IPhone Hackers , payContent.org, заархивировано из оригинала 29 июля 2012 г. , получено 25 ноября 2011 г.
- ^ «Отчеты: Следующее обновление iPhone приведет к поломке сторонних приложений и блокировке разблокировки]» . Компьютерный мир на v1.1.3 . Архивировано из оригинала 4 января 2008 г. Проверено 1 января 2008 г.
- ^ Phat^Trance (16 февраля 2010 г.). "Объявление: Форум закрыт на сохранение" . dailymobile.se . Архивировано из оригинала 3 марта 2009 года . Проверено 30 августа 2016 г.
Просто хотел сообщить вам, ребята, что форум закрыт на техническое обслуживание. Он снова появится в сети примерно через день (я вроде как испортил файлы конфигурации, и мне нужно восстановить резервную копию однодневной давности, поэтому я подумал, почему бы не обновить всю серверную платформу)
- ^ «HelloOX 1.03: один шаг взлома для телефонов Symbian S60 3-го издания, а также для Nokia 5800 XpressMusic» . Архивировано из оригинала 07 августа 2020 г. Проверено 6 июля 2009 г.
- ^ «Обход подписанного Symbian и установка неподписанных мидлетов SISX/J2ME на Nokia S60 v3 с полными системными разрешениями» . Архивировано из оригинала 11 сентября 2016 г. Проверено 6 июля 2009 г.
- ^ «Что такое джейлбрейк в моделях искусственного интеллекта, таких как ChatGPT?» . Архивировано из оригинала 01 декабря 2023 г. Проверено 1 ноября 2023 г.
- ^ «Побег из тюрьмы ChatGPT пытается заставить ИИ нарушить свои собственные правила или умереть» . Архивировано из оригинала 02 марта 2023 г. Проверено 1 ноября 2023 г.
- ^ «Microsoft минимизирует угрозу переполнения буфера и создает надежные приложения» . Майкрософт . Сентябрь 2005 года . Проверено 4 августа 2008 г. [ мертвая ссылка ]
- ^ Смолли, Стивен. «Закладывая безопасную основу для мобильных устройств» (PDF) . Архивировано из оригинала (PDF) 28 августа 2017 года . Проверено 7 марта 2014 г.
- ^ Ямаути, Тошихиро; Акао, Ёхей; Ёситани, Рёта; Накамура, Юичи; Хашимото, Масаки (август 2021 г.). «Дополнительный наблюдатель ядра: механизм предотвращения атак повышения привилегий, ориентированный на изменения привилегий системных вызовов» . Международный журнал информационной безопасности . 20 (4): 461–473. дои : 10.1007/s10207-020-00514-7 . ISSN 1615-5262 . Архивировано из оригинала 24 мая 2024 г. Проверено 10 ноября 2023 г.
- ^ Диоген, Юрий (2019). Кибербезопасность. Стратегии нападения и защиты. Второе издание . Эрдал Озкая, Safari Books Online (2-е изд.). п. 304. ИСБН 978-1-83882-779-3 . OCLC 1139764053 . Архивировано из оригинала 24 мая 2024 г. Проверено 13 августа 2022 г.