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
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é
xz-utils, ou un build permettant aux chercheurs en sécurité de vérifier s’il y a eu une compromission de la supply chainL’utilisation de
".join"peut être risquéeL’open source ne peut pas rivaliser avec le closed source de niveau enterprise
Le terme « supply chain » n’apparaît pas dans le billet de blog
Des outils open source ont été adaptés à un usage pour lequel ils n’avaient pas été conçus à l’origine
Je me demande comment l’idée de tronquer le hash a pu naître
Je suis surpris par la quantité de puissance GPU nécessaire pour trouver de courtes collisions
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
Excellent article, avec une lecture de code et un développement d’exploit très ingénieux