0 votos

Dispositivo Android IoT que utiliza datos excesivos a través de puertos aleatorios

Tengo un gran número de dispositivos IoT rooteados de un proveedor industrial que están destinados a funcionar como una unidad de publicidad. El objetivo era instalar una pieza estándar de software publicitario diseñado para Android y configurarlo en su carcasa para su despliegue. Estos dispositivos están ejecutando una Android 6.0.1 Kernel Version 4.1.17-g900299-dirty

Sin embargo, algunos de estos dispositivos están consumiendo cantidades insanas de datos: en un periodo de 30 días, el dispositivo utiliza 300 GB de datos ethernet, según el Data Usage en la configuración del sistema operativo. Sin embargo, la aplicación que lo provoca es "Android OS"...

Utilicé un rastreador de paquetes para realizar un par de capturas de paquetes de 30 segundos, así como un par más largas. He revisado los datos y veo que en cada dispositivo afectado el puerto es aleatorio, pero es consistente que siempre hay un puerto que transfiere el 80-90% de los datos que se ven en la captura. El tráfico parece en su mayoría tráfico de carga (bytes enviados desde el dispositivo al host remoto), pero eso no ha sido siempre el caso. El reinicio parece hacer que el servicio elija un nuevo puerto durante el arranque.

Intenté usar netstat -tulpn en termux para comprobar qué proceso está utilizando esto, pero la sección pid está en blanco en todo el tablero. Sin embargo, veo que este puerto está escuchando.

He mirado lsof -i | grep <port> pero no aparece nada en ninguno de los dispositivos afectados.

ps aux | grep <port> tampoco devuelve nada.

Dentro de las capturas, parece que hay un par de hosts consistentes a los que están llegando dentro de un solo dispositivo, pero a través de los dispositivos esto no es cierto. Sin embargo, me doy cuenta de que el puerto del host remoto que estamos contactando tiende a ser 4001... ¿es eso relevante?

He leído que es posible que sea un problema de actualización del sistema operativo en el que estamos descargando actualizaciones que de alguna manera fallan y causan este horrible ciclo... pero cuando miré en los servicios que se ejecutan que parece que ya está desactivado (como se hace referencia aquí: Servicios de Google Play Alto consumo de Internet )

¿Alguien tiene alguna sugerencia de cómo puedo rastrear esto y detenerlo?

0voto

AbelianGrape Puntos 48

He encontrado el problema. Parece que la aplicación Apache Storm se cargó en estas máquinas.

Estaba siendo llamado por un shell script install-recovery.sh que estaba sentado en el /system/bin directorio. Este shell script estaba siendo invocado por el init.rc script, una búsqueda rápida del nombre del shell script en el init devolvía que era llamado como el flash_recovery servicio. Bastante furtivo...

Para solucionar otros problemas que tenía, no podía encontrar el pid o el nombre del proceso en netstat porque no era el usuario correcto, cambiando al usuario Root usando su estaba equivocado, necesitaba el tsu para poder conservar los scripts de entorno bash que termux me estaba dando - ir a Root me hizo entrar en un tipo de shell diferente que tenía diferentes comandos, por lo que netstat estaba fallando.

Espero que esto ayude a alguien en el futuro.

Gracias

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X