¿Cómo es que Rootear siempre es posible?

Después de haber pasado algún tiempo investigando lo que realmente sucede detrás de rootear un teléfono Android, la razón principal que conduce a la capacidad de rootear es una vulnerabilidad inherente en el kernel de Linux que conduce al exploit y hace que se instale el binario 'su'.

Mi pregunta es: ¿Cómo es que el sistema operativo aún no está endurecido? ¿Quién es responsable? Estamos hablando de un sistema operativo Linux, que se considera "seguro". Sin embargo, la gente siempre encuentra una forma de acceder y rootear los dispositivos.

Linux no está exento de exploits de escalada de privilegios. El código tiene errores, e incluso los exploits de Linux de escritorio se descubren periódicamente. ¿Qué tipo de respuesta estás buscando aquí?
En comparación con una versión de escritorio de Linux, ¿no diría que las versiones de Linux utilizadas para teléfonos Android son más susceptibles a las vulnerabilidades priv-esc? Además, no estoy al tanto de TODAS las vulnerabilidades que permiten la escalada de privilegios. las personas no han tenido éxito en fortalecer el sistema operativo lo suficiente como para evitar esto.
No, realmente no. Una búsqueda rápida en Google muestra fuentes que tienen un registro de al menos más de 200 vulnerabilidades del kernel encontradas en Linux (desde que se comenzaron a registrar los datos). El más reciente que veo en este sitio tiene actividad de aproximadamente 2 semanas (el "Bypass"). Los de Android quizás duren más, ya que los operadores tardan en actualizarse, pero la respuesta fundamental a su pregunta aún parece ser "el código tiene errores, algunos son explotables". Las vulnerabilidades también pueden existir fuera del kernel.
El enraizamiento no siempre es posible.
No estoy seguro de todos los teléfonos, pero ¿no es posible rootear debido al modo de recuperación incorporado? Para mí, parece que el modo de recuperación es el análogo a un PC Bios. El hecho de que pueda instalar Knoppix en una PC y tener acceso a la máquina no es realmente una acusación de seguridad de Linux, sino un BIOS que no está restringido (y realmente no necesita estarlo para la mayoría de los propósitos).

Respuestas (2)

no es realmente el "sistema operativo Linux", es el kernel de Linux. La vulnerabilidad no está necesariamente en el sistema operativo o en el kernel. Hay diferentes exploits que se utilizan. Recuerdo que algún dispositivo pudo cargar cualquier archivo zip en la recuperación si estaba "preestablecido" por un archivo zip firmado. Así que usaron un zip firmado y agregaron un zip sin firmar al final del archivo. Creo que este exploit fue para el Droid original.

Ningún software está 100% libre de errores. si lo fuera, incluso un producto maduro como Windows no tendría que hacer lanzamientos de parches de seguridad todos los meses.

No importa cuán inteligente sea el desarrollador, o crea que es, lo más probable es que haya alguien más inteligente (o al menos que sepa más sobre cómo explotar el código).

Cuando se descubren exploits, Google (o el fabricante) los parchea (normalmente). Pero dado que muchos de los dispositivos no reciben actualizaciones con mucha frecuencia, el exploit permanece disponible.

Ryan tiene razón. Muchos exploits no explotan el kernel sino algún software daemon que se ejecuta como root.
Bueno, entonces... es la vieja respuesta de que si alguien construye algo, SIEMPRE habrá alguien que pueda romperlo :) Aunque, todavía no es tangible para mí que estas grandes organizaciones (Google, así como los fabricantes de dispositivos ) no son capaces de evitarlo. Bueno, ¡eso es solo un pensamiento personal!
@asudhak ¿De verdad crees eso? Soy desarrollador de software para una empresa y puedo decirles que nuestro control de calidad encontró muchos errores, pero después de nuestro último lanzamiento hubo errores que se informaron en producción. Además, como dije, si no hubiera errores, entonces Microsoft no tendría que tener Patch Tuesday .
Tengo que estar de acuerdo con Ryan: pareces estar equiparando el tamaño de una empresa con algún tipo de infalibilidad. Hasta que nazca el ser humano perfecto, los errores siempre existirán, ya que se derivan inherentemente de errores de programación (y todos, sin importar cuán hábiles sean en alguna tarea determinada, cometerán errores).
@RyanConrad: en realidad, en algunos teléfonos, las vulnerabilidades NO se corrigen. Por ejemplo, la última actualización de DROID3 que recibí NO parchó el agujero utilizado para rootear los teléfonos, por lo que no tuve ningún problema (y no esperé) después de la actualización para volver a rootear mi teléfono.
@MichaelKohne eso es cierto, cambié mi respuesta para reflejar que generalmente los parchean.

El enraizamiento siempre es posible porque el enraizamiento, también conocido como cambio de usuario, también conocido como setuid , es una de las características más fundamentales de Unix y Linux.

Para muchos dispositivos, el enraizamiento en realidad no implica ninguna vulnerabilidad de seguridad; Los métodos de enraizamiento que requieren flashear un archivo a través del gestor de arranque y/o la utilidad de actualización de ROM (por ejemplo, Odin de Samsung, RUU de HTC, etc.) no son una brecha de seguridad, ya que son características legítimas diseñadas específicamente para flashear ROM. Una gran cantidad de dispositivos están rooteados de esta manera.

En esos dispositivos, el enraizamiento es posible porque los fabricantes realmente proporcionan la instalación para ello. Ciertamente, no hacen que el enraizamiento sea un proceso fácil con un solo clic (por buenas razones; la mayoría de las personas que querían rootear en realidad no necesitan rootear), pero proporcionan un método aprobado oficialmente para rootear bajo la condición de que se anule la garantía (enraizamiento oficial). El método a menudo deja una marca permanente para que los técnicos autorizados sepan si un teléfono ha sido rooteado).

No hay tantos métodos de enraizamiento que realmente utilicen vulnerabilidades de seguridad (por ejemplo , rageagainstthecage , zergRush , gingerbreak , etc.), y estas vulnerabilidades a menudo se vuelven a empaquetar en una forma que es mucho más fácil de usar para las masas (por ejemplo, SuperOneClick). El enraizamiento a través de exploits a menudo es impredecible, ya que se parchean con bastante rapidez para los dispositivos que aún se encuentran dentro del período de actualización; pero en ocasiones aportan ventajas como evitar que se active el marcado de garantía.

El problema se vuelve un poco complicado cuando las noticias de tecnología y los blogs informan cuando un desarrollador escribió tutoriales o herramientas para facilitar el proceso de enraizamiento legítimo. A menudo no entienden la naturaleza del método de enraizamiento, y ciertamente nunca los he visto distinguir entre métodos de enraizamiento legítimos y enraizamiento a través de vulnerabilidades de seguridad, peor aún, a menudo también informan sobre el reempaquetado de una vulnerabilidad existente y la migración de una vulnerabilidad existente a una nueva. dispositivo como si fueran exploits totalmente diferentes. De ahí la confusión que hace parecer que Android parece tener más exploits de los que realmente tiene.