PoC(k)ET, les détails d'un rootkit pour Windows Mobile 6Cedric Halbronn

Les terminaux mobiles sont omniprésents dans notre monde actuel sous diverses formes : GPS, téléphones portables, PDAs, etc. Le smartphone est le résultat de la convergence de toutes ces plateformes. Il existe de nombreux systèmes d'exploitation embarqués sur le marché mobile. Windows Mobile, développé par Microsoft, est assez répandu. Par conséquent, il parait essentiel d'analyser le fonctionnement du système d'exploitation mobile de Microsoft, de comprendre les risques et menaces, et d'anticiper les méthodes qui pourraient être utilisées dans le but d'attaquer le terminal et de laisser une porte d'entrée pour un attaquant sans que l'utilisateur légitime du smartphone ne s'en rende compte.

Les mécanismes permettant de compromettre un système et d'y installer des portes dérobées (backdoors) utilisés sur les versions Windows des PC sont disponibles publiquement et sont connus depuis de nombreuses années. La version embarquée du système de Microsoft semble très similaire en surface puisque de nombreuses APIs qui existent dans les version PC de Windows sont également présentes dans Windows Mobile, pour les systèmes embarqués. Cela permet aux développeurs de porter facilement une application de Windows vers Windows Mobile. Cependant, les couches sous-jacentes sont très différentes. Cela explique probablement pourquoi les attaquants n'ont pas encore évolué vers le monde des systèmes embarqués. L'architecture matérielle sous-jacente ARM de type RISC (Reduced Instruction Set Computer) se différentie de l'architecture x86 utilisée sur les PC. Les contraintes du monde de l'embarqué font que la gestion en interne de la mémoire n'est pas du tout semblable à celle des PC. La gestion des appels systèmes a également été implémentée différemment.

Afin de comprendre les risques, plusieurs points devront être analysés. Les différents services offerts par un smartphone devront être compris (téléphone, SMS, GPS, SD-card, etc.). L'environnement réseau devra être considéré étroitement afin d'énumérer tous les vecteurs d'attaque possibles (téléphone, Bluetooth, WLAN, ActiveSync, etc.). Les mécanismes internes du système seront expliqués. Cela permettra de comprendre comment le système peut être compromis (keylogger, interception de SMS, rootkits, ransomwares, etc.). Les mécanismes de sécurité implémentés par Microsoft seront analysés et comparés aux risques. Enfin, de plus en plus d'entreprises antivirus proposent des solutions pour protéger les terminaux mobiles. Il est donc légitime d'essayer de comprendre la protection réelle que ces solutions apportent.

Nous détaillerons les façons d'injecter un rootkit, les mécanismes de furtivité, les possibilités de contrôle à distance, les façons de rendre le rootkit permanent, et les services qu'un attaquant pourrait utiliser sur des terminaux sous Windows Mobile. Ce document se focalisera sur les services qu'un attaquant peut potentiellement contrôler à distance et sur les différentes méthodes de rootkit qui peuvent être utilisées pour masquer ces actions à l'utilisateur légitime du smartphone.