¿Cómo detectar efectivamente un dispositivo rooteado en Android?

10

Hoy en día, para detectar un dispositivo rooteado, algunas aplicaciones realizan verificaciones estáticas, como por ejemplo el caso de GoogleWallet enlace .

El problema es que no es tan difícil eludir dichas verificaciones. Una de las muchas formas de hacerlo es obtener un shell de root temporal para ejecutar los comandos que queramos. Como ejemplo, Towelroot incrusta un exploit de raíz del kernel para obtener privilegios de root local. Esto le permite rootear permanentemente el dispositivo instalando los binarios necesarios. De la misma manera, uno puede usar la misma técnica pero solo para devolver un shell de root temporal en lugar de rootear permanentemente el dispositivo. De esta manera no se instalarán archivos adicionales, las comprobaciones estáticas fallarán.

¿Cómo es posible detectar este tipo de escenario?

    
pregunta D4l3k 15.01.2016 - 18:13
fuente

4 respuestas

4

No hay una respuesta general a estas preguntas ya que esto depende completamente del tipo de procedimiento de enraizamiento utilizado. Este documento (taller WOOT de la seguridad USENIX 2015) ofrece una buena descripción de los diferentes tipos de procedimientos de enraizamiento.

Entonces, si desea implementar un comprobador de raíz, sus posibilidades son mejores si puede detectar la mayoría de los métodos de raíz populares.

    
respondido por el user3363866 22.04.2016 - 22:27
fuente
2

La API de certificación de SafetyNet puede hacer el trabajo por usted. Le ayuda a evaluar la seguridad y la compatibilidad de los entornos Android en los que se ejecutan sus aplicaciones. Puede utilizar esta API para analizar los dispositivos que han instalado su aplicación.

    
respondido por el ozmank 09.01.2018 - 09:06
fuente
1

Hay otra forma confiable de verificar si el teléfono Android está rooteado o no. Para eso, necesita descargar Android Debug Bridge (ADB) . Después de eso, tienes que abrir "cmd" y abrir la ruta de acceso de ADB en el mismo. Ahora, tienes que ejecutar los siguientes comandos:

  1. dispositivos adb: este comando mostrará una lista de los dispositivos Android adjuntos.
  2. número de serie del shell: este comando abrirá el shell / terminal para un dispositivo Android en particular.
  3. su: Este comando es para obtener acceso de superusuario de cualquier terminal. Ahora, después de ejecutar este comando si obtiene un error "Permiso denegado" , su dispositivo no está rooteado y si no recibe ningún error, su dispositivo está rooteado.

Referencia:

  1. Descarga de Android Debug Bridge
  2. Comandos ADB
respondido por el iamjayp 23.08.2017 - 08:27
fuente
0

Tienes razón, es imposible detectar de forma confiable la raíz, especialmente desde una aplicación de espacio aislado. Un rootkit puede (es decir, no es técnicamente imposible) ejecutar su aplicación en una máquina virtual especialmente diseñada, de modo que vea un sistema sin root no modificado.

Por otro lado, estos kits aún no se han detectado. Y construirlo requeriría un esfuerzo e inversión muy serios. Creo que tal esfuerzo no sería muy diferente de STUXNET. También tenga en cuenta que si dicho rootkit no se desarrolla de una manera controlada por el gobierno de máxima seguridad, lo más probable es que sus "betas" se rastreen.

Los medios forenses de detección de cualquier manipulación (incluido el enraizamiento) pueden ser mucho más fuertes de lo que está disponible en teoría para una aplicación de espacio de usuario (de buen comportamiento), pero incluso ellos no son ilimitados.

Vencer a la seguridad y detectar tales brechas es un juego infinito, y cualquier idea que podamos encontrar para detectar la raíz, puede encontrar una respuesta de los autores de tales ataques, si su motivación es lo suficientemente alta.

Pero lo más probable es que no les importe su aplicación específica o su dispositivo personal, por lo que simplemente puede incluir una prueba básica para detectar la presencia de su y las conocidas aplicaciones de superusuario y ROMs.

    
respondido por el Alex Cohn 16.01.2016 - 06:34
fuente

Lea otras preguntas en las etiquetas