0 votes

Un dispositif IoT Android utilisant des données excessives sur des ports aléatoires

J'ai un grand nombre d'appareils IoT enracinés d'un fournisseur industriel qui sont destinés à fonctionner comme une unité de publicité. L'objectif était d'installer un logiciel publicitaire standard conçu pour Android et de le configurer dans son boîtier pour le déploiement. Ces appareils exécutent une version rootée Android 6.0.1 Kernel Version 4.1.17-g900299-dirty

Cependant, certains de ces appareils consomment des quantités folles de données - sur une période de 30 jours, 300 Go de données Ethernet sont utilisés par l'appareil, selon l'étude de la Commission européenne. Data Usage dans les paramètres de l'OS. Cependant, l'application à l'origine de ce problème est "Android OS"...

J'ai utilisé un renifleur de paquets pour effectuer quelques captures de paquets de 30 secondes ainsi que quelques autres plus longues. J'ai examiné les données et je constate qu'à travers chaque appareil affecté le port est aléatoire, mais il est cohérent qu'il y a toujours 1 port transférant 80-90% des données vues dans la capture. Le trafic semble être principalement du trafic de téléchargement (octets envoyés du dispositif à l'hôte distant), mais cela n'a pas toujours été le cas. Le déclenchement d'un redémarrage semble faire en sorte que le service choisisse un nouveau port pendant le démarrage.

J'ai essayé d'utiliser netstat -tulpn dans termux pour vérifier quel processus l'utilise, mais la section pid est vide dans tous les cas. Je vois que ce port est en écoute, cependant.

J'ai regardé lsof -i | grep <port> mais rien ne s'affiche sur aucun des appareils concernés.

ps aux | grep <port> ne renvoie rien non plus.

Dans les captures, il semble qu'il y ait quelques hôtes cohérents qu'ils atteignent dans un seul appareil, mais ce n'est pas le cas pour tous les appareils. Cependant, je remarque que le port de l'hôte distant que nous contactons tend à être 4001... est-ce pertinent ?

J'ai lu qu'il était possible que ce soit un problème de mise à jour de l'OS où nous téléchargeons des mises à jour qui échouent d'une manière ou d'une autre et provoquent ce cycle horrible... mais quand j'ai regardé dans les services qui fonctionnent, il semble qu'il soit déjà désactivé (comme référencé ici) : Les services Google Play consomment beaucoup d'Internet )

Quelqu'un a-t-il une idée de la façon dont je peux retrouver ce problème et l'arrêter ?

0voto

Djones4822 Points 101

J'ai trouvé le problème. Il semble que l'application Apache Storm a été chargé sur ces machines.

Il était appelé par un script shell install-recovery.sh qui était assis dans le /system/bin répertoire. Ce script shell était invoqué par le init.rc une recherche rapide du nom du script shell dans l'init a permis de trouver qu'il était appelé comme le script flash_recovery service. Plutôt sournois...

Pour résoudre d'autres problèmes que j'ai rencontrés, je ne pouvais pas trouver le pid ou le nom du processus dans netstat parce que je n'étais pas le bon utilisateur, en passant à l'utilisateur Root en utilisant su avait tort, j'avais besoin de la tsu afin de pouvoir conserver les scripts d'environnement bash que termux me donnait - passer à Root me faisait entrer dans un type d'interpréteur de commandes différent qui avait des commandes différentes, c'est pourquoi le paquet netstat a échoué.

J'espère que cela aidera quelqu'un à l'avenir.

Merci

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X