Une caméra de surveillance connectée, censée protéger des locaux, qui expose elle-même un secret critique. C’est la découverte faite fin juillet 2026 par un chercheur en sécurité sur des équipements du fabricant coréen Hanwha Vision. Un token GitHub admin était livré en dur dans le code source de l’interface web de la caméra, accessible à quiconque inspective la page de connexion. Retour sur un incident qui illustre à quel point la gestion des secrets reste le talon d’Achille de l’IoT industriel.
Hanwha Vision : un token GitHub dans le firmware
Hanwha Vision, anciennement Samsung Techwin, est une filiale du conglomérat coréen Hanwha Group. L’entreprise fabrique des caméras de vidéosurveillance professionnelles. Elle a aussi un historique dans la défense : le robot sentinelle SGR-A1 ou le canon automoteur K9 Thunder font partie de ses anciennes gammes. Ce n’est donc pas un fabricant anonyme, mais un acteur majeur de la sécurité physique.
En examinant le site de Hanwha Vision, le chercheur remarque que les firmwares des caméras sont téléchargeables librement. Il récupère une image, la décompile, et finit par casser le chiffrement AES-256-CBC qui protège le système de fichiers racine. La clé et le vecteur d’initialisation sont codés en dur dans le binaire de mise à jour, simplement obfusqués par un XOR avec une table statique. Une fois le rootfs extrait, il passe l’outil TruffleHog pour scanner les secrets : un token GitHub apparaît, dupliqué dans une trentaine de fichiers.
Une chaîne de reverse engineering bien rodée
Le chemin emprunté par le chercheur mérite qu’on s’y attarde, car il est didactique. Voici les étapes clés :
- Récupération du firmware public depuis le site de Hanwha Vision
- Extraction via Binwalk, qui détecte une archive chiffrée
- Contournement du chiffrement AES grâce à une clé et un IV codés en dur dans le binaire
fwupgrader, obfusqués par XOR et réassemblés à l’exécution - Rétro-ingénierie assistée par Claude Code (le chercheur mentionne avoir laissé l’IA travailler pendant qu’il préparait le dîner)
- Obtention d’un rootfs complet et analyse automatisée avec TruffleHog
Le résultat est sans appel : la clé AES dfa049bb... et l’IV 53f92680... sont identiques sur toute la gamme de caméras concernées. Avec 62 % des 500 firmwares testés extractibles via cette méthode, la surface exposée est considérable.
Admin sur des centaines de dépôts GitHub
Le token découvert n’est pas un simple jeton de lecture. Il confère des privilèges administrateur sur plusieurs centaines de dépôts de l’organisation GitHub de Hanwha. Cela signifie un accès complet au code source, aux workflows CI/CD, aux secrets d’intégration continue et potentiellement à l’infrastructure de build du firmware.
Pire encore : le token apparaît dans des fichiers servis par l’interface d’administration web de la caméra. Toute personne accédant à la page de connexion de l’équipement pouvait, en inspectant le code source HTML et les assets JavaScript, récupérer ce sésame. Le chercheur précise ne pas avoir eu de caméra sous la main pour vérifier si le token était effectivement servi côté client, mais la présence du token dans les artefacts de build le rend très probable.
L’erreur de build qui a tout déclenché
La cause racine est identifiée. Hanwha utilise Vite pour construire l’interface utilisateur de ses caméras. Une variable d’environnement mal maîtrisée a provoqué l’injection de l’intégralité de process.env du job CI dans les fichiers générés. Extrait du code reconstitué :
var W = {
DATAPORT: "9090",
GIT_LFS_SKIP_SMUDGE: "1",
GITHUB_NPM_TOKEN: "ghp_...REDACTED...",
KUBERNETES_SERVICE_PORT_HTTPS: "443",
npm_config_userconfig: "/home/docker/.npmrc",
// etc
}
En plus du token GitHub, d’autres données sensibles transparaissent, comme des adresses IP attribuées au Département de la Défense américain (bloc 55.101.x.x). Le chercheur s’interroge sur ce lien avec le DoD et émet l’hypothèse d’une plateforme CI mutualisée au sein du groupe Hanwha, dont la filiale Hanwha Defense USA utiliserait légitimement ces ressources.
Sur environ 500 firmwares analysés, seuls trois contenaient le token, et il s’agissait à chaque fois du même. L’impact reste donc limité à un sous-ensemble de modèles, mais le niveau de privilège du jeton en fait un incident critique.
Divulgation et réponse de Hanwha
Le chercheur a contacté Hanwha Vision via l’adresse dédiée aux signalements de sécurité. La réponse est arrivée en moins de 12 heures, confirmant la révocation immédiate du token. Une réactivité saluée par le découvreur, même s’il rappelle l’évidence : ce type de fuite n’aurait jamais dû atteindre la production. Un simple scanner de secrets intégré à la CI aurait intercepté le token avant le build final.
Ce qu’il faut retenir
- Un token GitHub avec privilèges admin a été trouvé en clair dans le firmware de caméras Hanwha Vision, dupliqué dans une trentaine de fichiers de l’interface web.
- La cause est une fuite du
process.envcomplet du runner CI, injecté dans les artefacts de build Vite lors de la compilation du front-end. - Le token donnait un accès administrateur à des centaines de dépôts de l’organisation GitHub du fabricant.
- Hanwha a révoqué le token dans les 12 heures suivant le signalement, une réaction exemplaire sur le plan opérationnel.
- L’incident souligne l’urgence d’automatiser la détection de secrets dans les pipelines CI/CD, en particulier pour les équipements IoT où le firmware est souvent accessible publiquement.
Vous avez été confronté à une fuite similaire dans vos propres projets ? N’hésitez pas à partager votre retour d’expérience en commentaire ou à me contacter. Et pour ne rien manquer des prochaines analyses, suivez le blog.
Sources
- Article original du chercheur : analyse complète du firmware Hanwha et découverte du token
- TruffleHog : scanner de secrets open source utilisé pour l’analyse
- Documentation Vite sur les variables d’environnement et leur exposition dans les builds
