Как получается, что рутирование всегда возможно?

Потратив некоторое время на изучение того, что на самом деле стоит за рутированием телефона Android, основной причиной, которая приводит к возможности root, является врожденная уязвимость в ядре Linux, которая приводит к эксплойту и установке двоичного файла «su».

Мой вопрос: почему ОС еще не защищена? Кто ответственный? Это ОС Linux, о которой мы говорим, которая считается «безопасной». Тем не менее, люди всегда находят способ получить доступ к устройствам и получить root-права.

Linux не свободен от эксплойтов повышения привилегий. В коде есть ошибки, и даже эксплойты Linux для настольных компьютеров периодически обнаруживаются. Какой ответ вы ищете здесь?
По сравнению с десктопной версией Linux, не могли бы вы сказать, что версии Linux, используемые для телефонов Android, более подвержены эксплойтам priv-esc? Кроме того, я не знаю обо ВСЕХ эксплойтах, которые позволяют повысить привилегии. Если бы вы могли пролить свет на то, плотны ли эти эксплойты вокруг некоторых конкретных служб/процессов, уже запущенных с правами root, это было бы полезно для меня в понимании, почему людям не удалось достаточно укрепить ОС, чтобы предотвратить это.
Не на самом деле нет. Быстрый поиск в Google показывает источники с записью не менее 200+ уязвимостей ядра, найденных в Linux (с тех пор, как данные начали записываться). Самый последний, который я вижу на этом сайте , имеет активность около 2 недель («Обход»). Android-версии могут, возможно, задерживаться дольше, поскольку операторы связи медленно обновляются, но основной ответ на ваш вопрос по-прежнему выглядит так: «в коде есть ошибки, некоторые из них можно использовать». Уязвимости могут существовать и вне ядра.
Укоренение не всегда возможно.
Я не уверен насчет всех телефонов, но рутирование невозможно из-за встроенного режима восстановления? Мне кажется, что режим восстановления является аналогом биоса ПК. Тот факт, что вы можете установить Knoppix на ПК и получить доступ к машине, на самом деле не является обвинением в безопасности Linux, а в том, что BIOS не имеет ограничений (и в большинстве случаев в этом нет необходимости).

Ответы (2)

на самом деле это не «ОС Linux», это ядро ​​​​Linux. Уязвимость не обязательно в ОС или ядре. Используются разные эксплойты. Я помню, как какое-то устройство могло загрузить любой zip-файл в рекавери, если он был «предварительно подготовлен» подписанным zip-файлом. Поэтому они использовали подписанный почтовый индекс и добавили неподписанный почтовый индекс в конец файла. Я думаю, что этот эксплойт был для оригинального дроида.

Никакое программное обеспечение не может быть на 100% свободным от ошибок. если бы это было так, то даже такой зрелый продукт, как Windows, не должен был бы выпускать исправления безопасности каждый месяц.

Независимо от того, насколько умен разработчик или думает, что он таков, скорее всего, есть кто-то умнее (или, по крайней мере, он может знать больше об использовании кода).

Когда эксплойты обнаруживаются, Google (или производитель) (обычно) исправляет их. Но так как многие устройства не получают обновления очень часто, эксплойт остается доступным.

Райан прав. Многие эксплойты используют не ядро, а некоторое демоническое программное обеспечение, работающее от имени пользователя root.
Ну, тогда... это извечный ответ, что если кто-то что-то строит, то ВСЕГДА найдется кто-то, кто сможет это сломать :) Хотя, мне до сих пор не осязаемо, что эти крупные организации, (Гугл, а также производители устройств ) не в состоянии предотвратить это. Ну это личное мнение!
@asudhak Ты действительно так думаешь? Я разработчик программного обеспечения для компании, и я могу вам сказать, что у нас было много ошибок, которые были обнаружены нашим QA, но после нашего последнего выпуска были ошибки, о которых сообщалось в рабочей среде. Кроме того, как я уже сказал, если бы не было ошибок, то у Microsoft не было бы исправлений во вторник .
Должен согласиться с Райаном - кажется, вы приравниваете размер компании к какой-то непогрешимости. Пока не родится совершенный человек, ошибки будут существовать всегда, поскольку они по своей сути возникают из-за ошибок в программировании (и все, независимо от того, насколько они квалифицированы в какой-либо заданной задаче, будут делать ошибки).
@RyanConrad - на самом деле в некоторых телефонах эксплойты НЕ исправляются. Например, последнее обновление DROID3, которое я получил, НЕ исправляло дыру, используемую для рутирования телефонов, поэтому у меня не было проблем (и я не ждал) после обновления, чтобы повторно рутировать мой телефон.
@MichaelKohne, это правда, я изменил свой ответ, чтобы отразить, что они обычно их исправляют.

Укоренение всегда возможно, потому что укоренение, также известное как переключение пользователей, также известное как setuid , является одной из самых фундаментальных функций Unix и Linux.

Для многих устройств рутирование на самом деле не связано с какими-либо нарушениями безопасности; методы рутинга, требующие прошивки файла через загрузчик и/или утилиту обновления ПЗУ (например, Odin от Samsung, RUU от HTC и т. д.), не являются нарушением безопасности, поскольку они являются законными функциями, специально разработанными для прошивки ПЗУ. Таким способом рутируется большое количество устройств.

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

Существует не так много методов рутинга, которые на самом деле используют эксплойты безопасности (например , rageagainstthecage , zergRush , gingerbreak и т. д.), и эти эксплойты часто переупаковываются в форму, которую гораздо проще использовать для масс (например, SuperOneClick). Укоренение с помощью эксплойтов часто терпит неудачу, поскольку они довольно быстро исправляются для устройств, которые все еще находятся в периоде обновления; но иногда они дают такие преимущества, как предотвращение срабатывания гарантийной маркировки.

Проблема становится немного сложной, когда технические новости и блоги сообщают, что разработчик написал учебные пособия или инструменты для облегчения законного процесса рутирования. Они часто не понимают природу метода рутирования, и, конечно же, я никогда не видел, чтобы они различали законные методы рутирования и рутирование с помощью эксплойтов безопасности, хуже того, они также часто сообщают о переупаковке существующего эксплойта и переносе существующего эксплойта на новый. устройство, как будто это совершенно разные подвиги. Таким образом, путаница, из-за которой кажется, что у Android больше эксплойтов, чем на самом деле.