Journal Sécurisation du port USB-C sur smartphone pour moules barbares

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
5
14
oct.
2024

Chers bricoleurs et bricoleuses de l'extrême,

Je sollicite votre expertise pour trouver la méthode la plus efficace pour sécuriser le port USB-C de nos smartphones.

L'objectif est qu'un attaquant soit obligé de changer complètement le port USB-C, ce qui le forcerait à ouvrir le smartphone et à retirer la batterie. Cette contrainte ajouterait une barrière supplémentaire à toute tentative d’accès non autorisé pour dumper la RAM.

Habituellement, je désactive le port USB-C via l'OS Android pour prévenir les attaques. C’est efficace, mais il existe toujours une faille théorique : en mode FASTBOOT, un attaquant pourrait exploiter une vulnérabilité au niveau du firmware pour tenter de récupérer des données de la RAM. L'idée serait d'éteindre le téléphone, de le rallumer, et d’essayer de récupérer des informations sensibles.

Actuellement, il est impossible de désactiver le port USB-C en mode FASTBOOT. Certes, verrouiller le bootloader limite les risques, mais il reste une faille théorique que nous ne contrôlons pas totalement.

C'est pourquoi j'ai eu l'idée de bloquer le port USB-C de manière définitive et d'opter pour la recharge sans fil. Voici les options envisagées :

A) Dessouder le port USB-C
C'est la solution la plus fiable, mais difficilement reproductible pour plusieurs smartphones. Cela obligerait un attaquant à ouvrir le téléphone, à retirer la batterie et à remplacer complètement le port USB-C. Ainsi, la récupération des données serait impossible, car les éventuelles traces résiduelles en RAM auraient disparu depuis longtemps.

B) Utiliser un cache USB-C en silicone, fixé avec de la super glue
Une fois la glue sèche, le port est bloqué. Mais je me demande : un électronicien pourrait-il nettoyer le port en moins de 18 heures ? Ce délai est crucial, car après 18 heures sans connexion, le téléphone redémarre en mode BFU (Before First Unlock), rendant la récupération des données impossible.

C) Bloquer le port avec de la colle époxy
Je n’ai pas d’expérience avec l’époxy, mais mes recherches suggèrent qu’elle est presque impossible à retirer. Cela pourrait être la meilleure solution pour forcer un attaquant à devoir remplacer complètement le port USB-C, ce qui nécessiterait d'ouvrir le téléphone et de retirer la batterie.

Alors, chers moules barbares, quelle méthode barbare recommanderiez-vous pour rendre un port USB-C inutilisable sans endommager le smartphone et sans l’ouvrir, pour que la technique puisse être facilement reproduite en série ?

  • # Colles

    Posté par  (site web personnel) . Évalué à 3 (+1/-0).

    Les colles, l’epoxy en particulier, c’est super chouette. Mais la plupart sont sensibles à des solvants qui les rendent probablement assez aisée à retirer sans abîmer le matériel. Par ailleurs, un attaquant décidé ne pourrait-il pas aisément forer mécaniquement pour restaurer un contact électrique vers chaque conducteur du port ? Est-ce que fondre ensemble les connecteurs de données du port ne serait pas plus radical ? Voire si une protection anti court-circuit existe, l’ensemble des connecteurs ?

    « IRAFURORBREVISESTANIMUMREGEQUINISIPARETIMPERAT » — Odes — Horace

    • [^] # Re: Colles

      Posté par  . Évalué à 1 (+0/-0). Dernière modification le 14 octobre 2024 à 08:48.

      Oui, les solvants, c’est justement ce qui m'embête avec les colles. C’est pour ça que j'ai pensé à l'époxy, mais je ne sais pas si c’est vraiment facile à enlever ou pas.

      C'est pour ça que je me demandais si coller un cache USB-C en silicone à l’intérieur du port ne serait pas plus pratique.

      Pour l’idée de forer les contacts, c’est vrai qu'un attaquant motivé pourrait tenter le coup. Mais bon, c’est risqué et il pourrait abîmer des trucs au passage, donc ça reste dissuasif même pour les plus téméraires.

      Fondre ensemble les connecteurs de données, ou même tous les connecteurs s’il y a une protection anti court-circuit, ça pourrait être une vraie galère pour quelqu’un qui essaie de les réactiver. Même si le gars réussit à retirer ce qui bloque, il se retrouve avec un port inutilisable.

      Merci pour les idées ! Je vais creuser un peu l’option du court-circuit permanent sans cramer la carte mère. Si t’as des astuces pour faire ça proprement, je suis preneur !

      Et d’ailleurs, tu aurais une idée de comment faire ça sans ouvrir le téléphone ? Peut-être avec un fer à souder ?

      Car avec mes gros doigts boudinés, bousiller le port USB-C, ça va être chaud :)

  • # attaquant

    Posté par  (Mastodon) . Évalué à 10 (+7/-0).

    je crois que si l'attaquant est prêt à exploiter une faille de fastboot, démonter le smartphone pour accéder à l'usb sans passer par le port externe ne lui fera pas peur.

    • [^] # Re: attaquant

      Posté par  . Évalué à 2 (+1/-0).

      Effectivement, si un attaquant veut accéder directement à la carte mère pour contourner le port USB-C externe, il devra de toute façon démonter le smartphone et retirer la batterie. Cette étape complique sa tâche, car dès qu'on enlève la batterie, on se retrouve en mode BFU (Before First Unlock) et non en AFU (After First Unlock).

      En mode BFU, les protections sont bien plus fortes et les données sont encore mieux sécurisées, car elles ne sont pas déchiffrées comme elles peuvent l’être en AFU. Donc, même s’il parvient à accéder physiquement à l’USB interne, il sera confronté à un niveau de sécurité supplémentaire qui rend l'attaque beaucoup moins faisable. L’objectif est vraiment de rendre le processus suffisamment complexe pour décourager ou ralentir toute tentative de ce genre.

      • [^] # Re: attaquant

        Posté par  (site web personnel) . Évalué à 3 (+0/-0). Dernière modification le 14 octobre 2024 à 09:17.

        Dans ce cas, il va démonter le téléphone sans débrancher la batterie, quitte à faire des trous dans la coque.

        Je pense que tu ne peux que retarder le moment. Avec la bonne résines, tu peux en trouver une qui se dissout mais bousille le smartphone en même temps. Tu peux souder un truc dans l'usb-C pour empécher son usage aussi (même avec des troues dans la coque).

        "La première sécurité est la liberté"

        • [^] # Re: attaquant

          Posté par  (site web personnel) . Évalué à 3 (+0/-0).

          Un killer de port usb ne serait pas encore mieux ? Il va griller les drivers du port définitivement. Il faut juste s'assurer qu'il ne grille rien de plus.

          "La première sécurité est la liberté"

          • [^] # Re: attaquant

            Posté par  . Évalué à 1 (+0/-0).

            Je vois l’idée, mais je ne suis pas sûr de comment griller uniquement le port USB-C sans risquer de détruire la carte mère. Avec un killer USB, ça pourrait facilement faire des dégâts au-delà du port lui-même, et c’est justement ce que je veux éviter. À moins qu’il existe une méthode ultra-précise pour cibler uniquement le port, ça me paraît risqué.

            Si tu as des infos sur une méthode qui limiterait les dégâts au port USB-C sans toucher au reste, je suis preneur, mais pour l’instant ça me semble un peu trop dangereux pour l’appareil en entier.

        • [^] # Re: attaquant

          Posté par  . Évalué à 1 (+0/-0).

          C’est clair que si l’attaquant est prêt à faire des trous dans la coque et à démonter le téléphone sans débrancher la batterie, ça devient compliqué de le stopper complètement. Mais comme tu dis, le but est vraiment de retarder l’accès et de rendre le processus plus long et laborieux.

          La résine qui se dissout tout en bousillant le smartphone, ça pourrait être une option intéressante. Je me demande si ça existe en version suffisamment agressive pour limiter les dégâts juste à la zone du port, sans tout faire sauter.

          Souder un truc directement dans l'USB-C est aussi une piste à creuser. Mais je ne vois pas comment souder quelque chose sans risquer de créer un court-circuit qui bousillerait la carte mère. C’est ça qui m’inquiète avec cette approche.

          Merci pour les idées, je vais explorer ces pistes et voir ce qui pourrait marcher ! Et toi, tu as quoi comme idée de résine ?

  • # Le bricolage, c'est un métier

    Posté par  . Évalué à 1 (+1/-2).

    Le téléphone, tu le recharges comment ?

  • # pourquoi la ram uniquement?

    Posté par  . Évalué à 3 (+1/-0).

    J'ai l'impression que tu parles de la cold-boot attack. On redémarre sur un système qui va dumper toute la RAM et à l'intérieur du dump on cherche des données comme les clés de chiffrement du disque. On déchiffre le disque, on accède à tes données.

    Sur tes points:

    A)
    Pour le port USB, pourquoi pas l'enlever, mais qu'est ce qui empêche un attaquant de s'en prendre directement au disque? Il peut démonter le téléphone, ressouder un port USB (why not) et lancer des attaques sur le TEE (https://connect.ed-diamond.com/MISC/misc-099/android-tee) pour aller chercher à extraire tes clés de chiffrement de disque.

    B)
    ces 18h c'est pour grapheneOS? Après, cf point A, même après 18h.

    C)
    je pense que c'est la pire des solutions. Ca se décape très bien l'epoxy.

    • [^] # Re: pourquoi la ram uniquement?

      Posté par  . Évalué à 2 (+1/-0).

      A) Oui, effectivement, enlever le port USB-C est probablement la meilleure solution, mais difficile à réaliser en série.

      B) Oui, je fais référence à une attaque de type cold boot, mais cela ne me dérange pas. Pour ressouder le port USB-C, il faudrait de toute façon retirer la batterie. Donc, on passe l'appareil de l'état AFU (After First Unlock) à l'état BFU (Before First Unlock).

      Avec une phrase de passe suffisamment solide, il faudrait alors passer par une attaque par brute force.

      Je travaille effectivement avec GrapheneOS, et le délai de 18h est pratique pour ne pas gêner les utilisateurs.

      C) Bon, eh bien, tu viens de doucher mes espoirs de trouver une solution facile :) Je cherche une idée un peu folle, mais simple, sans avoir à retirer une tonne de ports USB-C :)

      • [^] # Re: pourquoi la ram uniquement?

        Posté par  . Évalué à 2 (+0/-0).

        Pour ressouder le port USB-C, il faudrait de toute façon retirer la batterie.

        Mais pourquoi donc ?

      • [^] # Re: pourquoi la ram uniquement?

        Posté par  . Évalué à 2 (+0/-0).

        Après, même sans port USB, il reste quand même un paquet d'attaque.

        Tu as une antenne bluetooth. Qu'est ce qui empêche quelqu'un d'attaquer le BT? Pareil avec le wifi. Pareil avec le NFC. Si tu te connectes à un réseau quelconque, tu as 10000 applis qui vont se connecter. Certaines sont vulnérables (genre une fake update, ce genre de trucs). etc etc

        • [^] # Re: pourquoi la ram uniquement?

          Posté par  . Évalué à 1 (+0/-0).

          Arriver à dumper la RAM en AFU via le Bluetooth ou le NFC, ça me semble vraiment improbable. Ces connexions ne permettent pas d’avoir un accès assez bas niveau pour ça.
          ```    Pour les fake updates, les applis que j’utilise sont signées avec ma clé, donc elles ne s’installeront pas. Idem pour l’OS, qui est un fork maison de GrapheneOS (GOS). Donc là-dessus, je suis couvert.
          
          Et puis, de toute façon, si l’OS redémarre, on repasse directement en mode BFU.
          
          Dans tous les cas, ça réduit considérablement le vecteur d'attaque. Ça force à passer sur des attaques en BFU, où la résistance au chiffrement devient le principal obstacle pour l’attaquant.
          
          • [^] # Re: pourquoi la ram uniquement?

            Posté par  . Évalué à 2 (+0/-0).

            Arriver à dumper la RAM en AFU via le Bluetooth ou le NFC, ça me semble vraiment improbable. Ces connexions ne permettent pas d’avoir un accès assez bas niveau pour ça.

            Pourquoi est tu focalisé sur le dump de RAM? Dans le cas hypothétique ou j'ai une vuln dans le NFC:
            je prends ton tél, je prends le contrôle du NFC, puis j'ai une vuln kernel et je suis root avec le plus haut niveau de privilèges.
            Je peux alors lire tes applis, keylog tes mots de passes, modifier ton disque, lire tes mails etc….

            Pour les fake updates, les applis que j’utilise sont signées avec ma clé, donc elles ne s’installeront pas.

            Ok. Et il n'y a pas de vulns dans le processus d'update ? Genre ton update d'app est signée, mais le code qui va dl l'update, il est fiable? Same shit, l'attaquant prend le contrôle du code qui fait l'update, puis il élève ses privilèges, et hop, dump disque, lecture de tes secrets, emails, keylogging, etc..

            Idem pour l’OS, qui est un fork maison de GrapheneOS (GOS). Donc là-dessus, je suis couvert.

            Tu veux dire que seul tu arrives à suivre l'intégralité des vulns et des patchs qui sont publiés? Et que le code que tu as ajouté est exempt de vulns? (vraie question premier degré hein).

  • # La réponse D

    Posté par  . Évalué à 4 (+3/-0).

    Si on a ce genre de préoccupation, mieux vaut ne pas utiliser de smartphone, tout du moins pour faire des choses illégales confidentielles.

    • [^] # Re: La réponse D

      Posté par  . Évalué à 1 (+0/-0).

      Le chiffrement est robuste et, de toute façon, les gens ont besoin de communiquer. On peut quand même se prémunir contre certaines attaques en prenant quelques précautions. L'objectif est de faire en sorte qu'un attaquant se retrouve face à un appareil en état BFU plutôt qu'en AFU. Dans cet état, les données ne sont pas du tout accessibles, surtout avec une véritable passphrase comme un diceware. Cela rend les tentatives de déchiffrement bien plus difficiles, voire impossibles en termes de temps.

  • # Quitte à faire de la soudure...

    Posté par  (site web personnel) . Évalué à 0 (+0/-0).

    L'idéal serait probablement d'avoir un système (invisible) qui coupe l'alimentation batterie dès qu'un câble USB est branché.

    Comme ça un attaquant se retrouve en BFU si il ne fait pas attention et un utilisateur malhabile apprendra à ne pas brancher de câble USB (sans perte de donnée ou de matériel :).

  • # maxi barbare

    Posté par  . Évalué à 1 (+0/-0).

    Tant qu'a être barbare, essaies de balancer direct du 220V sur ton port usb, si c'est pas trop mal fait tu as des chances de le griller sans griller le reste.
    Ça nécessite de risquer quelques smartphones pour valider le truc, mais si c'est bon il suffit de préparer une prise tueuse et c'est facile à industrialiser…

Envoyer un commentaire

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.