2 points par GN⁺ 2024-12-10 | 1 commentaires | Partager sur WhatsApp

Introduction

  • L’ingénieur sécurité RyotaK de Flatt Security Inc. a découvert une faille de sécurité dans le processus de mise à niveau du firmware d’OpenWrt.
  • OpenWrt est un firmware basé sur Linux pour appareils embarqués, particulièrement populaire sur les routeurs.

sysupgrade.openwrt.org

  • sysupgrade.openwrt.org est un service en ligne qui permet aux utilisateurs de sélectionner les paquets souhaités afin de générer une nouvelle image de firmware.
  • Des problèmes de sécurité peuvent survenir lors du processus de compilation d’image à partir du code source fourni par l’utilisateur.

Injection de commandes

  • Le serveur sysupgrade.openwrt.org est un projet open source, et son code source est hébergé dans openwrt/asu.
  • Le serveur utilise des conteneurs pour isoler l’environnement de build, mais une vulnérabilité permettant d’exécuter des commandes arbitraires via les entrées utilisateur a été découverte.

Collision SHA-256

  • Lors de la génération du hash de la requête, le hash SHA-256 était tronqué à 12 caractères.
  • En exploitant une collision de hash, il était possible de tromper le serveur pour qu’il renvoie un artefact de build incorrect.

Force brute SHA-256

  • Un programme de force brute des hash sur GPU a été implémenté avec OpenCL, mais ses performances étaient insuffisantes.
  • L’utilisation de Hashcat a permis de trouver avec succès une collision sur 12 caractères.

Combinaison des deux attaques

  • L’attaque a été menée en trouvant une charge utile d’injection de commandes ayant le même hash qu’une liste de paquets légitime.
  • Un attaquant pouvait ainsi forcer les utilisateurs à effectuer une mise à niveau vers un firmware malveillant.

Signalement du problème

  • Après signalement du problème à l’équipe OpenWrt, le service a été temporairement suspendu puis corrigé rapidement.
  • Un avis a été publié pour demander aux utilisateurs de vérifier que leurs appareils n’avaient pas été compromis.

Conclusion

  • Il était possible de compromettre le service sysupgrade.openwrt.org via une injection de commandes et une collision SHA-256.
  • L’auteur remercie l’équipe OpenWrt pour sa réaction rapide et pour avoir informé rapidement les utilisateurs du problème.

Publicité

  • Flatt Security propose des services d’évaluation de sécurité et de tests d’intrusion, avec une remise spéciale pour célébrer la mise à jour de sa nouvelle page web.
  • L’entreprise propose également un puissant outil d’évaluation de sécurité appelé Shisho Cloud.

1 commentaires

 
GN⁺ 2024-12-10
Avis Hacker News
  • La normalisation de l’exécution de code adaptée à un utilisateur ou à un appareil spécifique ne permet pas de vérification, et présente la faille qu’il est impossible de confirmer qu’aucun build contenant une porte dérobée n’a été généré

    • Il est important d’utiliser le même build que xz-utils, ou un build permettant aux chercheurs en sécurité de vérifier s’il y a eu une compromission de la supply chain
    • Mozilla avait tenté d’enregistrer publiquement les builds de release dans un Merkle tree, mais cela a été abandonné
    • Google a écrit une implémentation pour les builds de firmware Pixel, mais les applications distribuées via le Google Play Store peuvent rester vulnérables
    • Apple est pire que Google, car il ne fournit pas de manière transparente des builds adaptés à chaque appareil
    • Le dépôt ebuild de Gentoo est un exemple de transparence binaire bien implémentée, et constitue l’un des Merkle trees les plus vastes et les plus distribués du logiciel open source
  • L’utilisation de ".join" peut être risquée

    • Déplacer des caractères entre des champs adjacents ne modifie pas le hash
    • Cela ne compromet pas directement le système, mais peut corrompre le cache ou provoquer un downgrade
  • L’open source ne peut pas rivaliser avec le closed source de niveau enterprise

    • Le problème a été corrigé en 3 heures, sans obliger les clients à attendre 6 mois pour un patch
    • La personne qui a signalé le problème n’a pas été poursuivie en justice
    • On ne dit pas aux utilisateurs de jeter des appareils « obsolètes » mais parfaitement fonctionnels
  • Le terme « supply chain » n’apparaît pas dans le billet de blog

    • La « supply chain » est un système logistique complexe qui transforme des matières premières en produits finis puis les distribue au consommateur final
    • Il y a un doute sur le fait qu’il s’agisse d’un système pour les fournisseurs commerciaux d’OpenWRT ou d’un système destiné au consommateur final
  • Des outils open source ont été adaptés à un usage pour lequel ils n’avaient pas été conçus à l’origine

    • Une grande entreprise engagerait des poursuites pour résoudre le problème et ne publierait jamais le patch
    • Après avoir reçu l’information, OpenWRT a mis hors ligne le service non sécurisé et a déployé un patch 3 heures après vérification du rapport
  • Je me demande comment l’idée de tronquer le hash a pu naître

    • Il est difficile de comprendre l’objectif ou l’avantage recherché
  • Je suis surpris par la quantité de puissance GPU nécessaire pour trouver de courtes collisions

    • On peut se demander si 40k par mois est un prix raisonnable pour de l’analyse de sécurité
    • La question se pose de savoir si un bon chercheur en sécurité peut gagner environ 500k par an
  • J’ai immédiatement remarqué que la longueur du hash était tronquée à 12 caractères sur 64

  • Il y a une question sur la raison pour laquelle les performances de hashcat varient fortement selon l’ordre des arguments

    • On se demande s’il scanne le motif cible à chaque exécution
  • Excellent article, avec une lecture de code et un développement d’exploit très ingénieux