Fuite de code chez un géant de la sécurité : un jeton admin GitHub intégré dans une caméra IP

Fuite de code chez un géant de la sécurité : un jeton admin GitHub intégré dans une caméra IP

sécuritéiotchaîne-d-approvisionnementinfrastructure

Sources:HN + original research · HN

Le 24 juillet 2026, un chercheur indépendant en sécurité informatique a fait l’acquisition d’une caméra de surveillance Hanwha (modèle Wisenet XNP-9300RW) afin d’en étudier le micrologiciel. En l’espace de quelques heures, il a découvert qu’il détenait les clés de l’ensemble du code source privé de l’entreprise : un jeton d’administration GitHub valide et actif, offrant un accès complet à des centaines de dépôts privés au sein de l’organisation GitHub de Hanwha — incluant le code source, les configurations de pipelines CI/CD et la documentation interne. Tout cela avait été extrait directement depuis la page de connexion de la caméra.

Caméra de sécurité Hanwha Wisenet XNP-9300RW Photo : La Hanwha Wisenet XNP-9300RW, une caméra de surveillance extérieure PTZ 4K avec zoom optique 30x, au cœur de cette fuite de données.

Cette découverte a immédiatement provoqué une onde de choc dans la communauté technique. Sur Hacker News, le sujet a récolté plus de 480 points et généré plus de 160 commentaires. Mais ce qui inquiète le plus, c’est la réalité qu’elle met en lumière : chaque équipement connecté installé sur votre réseau peut devenir une clé d’accès aux systèmes internes du fabricant — une clé laissée sur la porte par le fabricant lui-même.

Comment du code privé s’est-il retrouvé dans une caméra ?

Pour comprendre l’origine du problème, il convient de rappeler le fonctionnement de base d’une caméra IP moderne. Il s’agit en réalité d’un mini-ordinateur sous Linux embarqué. Il possède son propre processeur, de la mémoire, un système d’exploitation (une version allégée de Linux) et une interface d’administration web. Cette interface est développée en JavaScript : lorsque vous accédez à l’adresse IP de la caméra depuis un navigateur, ce dernier télécharge le code frontend pour afficher le panneau de configuration.

C’est précisément là que l’erreur s’est produite.

Le chercheur a extrait le micrologiciel de la caméra (le paquet d’installation de son système d’exploitation) et a inspecté les fichiers JavaScript de l’interface web. Il y a découvert, lisible en clair dans près de 30 fichiers différents, un jeton d’accès personnel GitHub valide.

Un jeton GitHub fait office de clé de coffre-fort. Une fois émis, quiconque le possède hérite de l’ensemble des privilèges associés — en l’occurrence, un accès complet en lecture et écriture à l’ensemble du patrimoine logiciel de Hanwha. Les bonnes pratiques imposent que de tels identifiants soient strictement réservés à un cercle restreint d’ingénieurs, stockés dans des coffres-forts de secrets sécurisés et immédiatement révoqués après les tâches d’intégration continue (CI).

Au lieu de cela, ce jeton administrateur s’est retrouvé embarqué dans des millions de caméras de surveillance distribuées dans le monde entier.

Toute personne en mesure de charger la page de connexion de la caméra — c’est-à-dire quiconque pouvait joindre l’adresse IP de l’équipement — pouvait récupérer cette clé.

À quel niveau le processus de compilation a-t-il failli ?

En suivant l’analyse du chercheur, la cause de l’incident se résume simplement : un géant de la sécurité pesant plus de 10 milliards de dollars de chiffre d’affaires utilisait un processus de compilation particulièrement négligent.

Hanwha utilisait Vite, un outil de construction frontend très populaire, pour assembler la web-app de la caméra. Lors de la compilation, l’outil était configuré pour injecter l’intégralité des variables d’environnement (process.env) directement dans le code JavaScript statique final. Or, le serveur d’intégration continue (CI) exécutant cette compilation avait précisément le jeton d’administration GitHub défini parmi ses variables d’environnement.

Résultat : l’ensemble des variables d’environnement de l’environnement CI — incluant le jeton d’administration GitHub, les adresses de clusters Kubernetes, les clés npm et les noms de domaine ou ports des services internes — a été compilé directement dans le code frontend, intégré au micrologiciel et expédié aux clients du monde entier.

Cela équivaut, pour un hôtel haut de gamme, à imprimer la combinaison du coffre-fort principal sur la pochette de la carte d’accès de chaque chambre.

Une découverte encore plus troublante

Outre le jeton GitHub, le chercheur a repéré plusieurs adresses IP inhabituelles dans les fichiers du micrologiciel. Une vérification a révélé que ces adresses IP appartiennent aux plages attribuées au Département de la Défense des États-Unis (DoD).

Pour comprendre la portée de ce détail, il faut se pencher sur la structure du groupe Hanwha. Si l’entreprise est connue du grand public pour ses caméras sous la marque Hanwha Vision, sa maison-mère est l’un des dix plus grands chaebols de Corée du Sud, présent dans la défense, l’aéronautique, la finance et l’énergie. Parmi ses filiales figurent :

  • Hanwha Aerospace
  • Hanwha Defense USA
  • Fabricants de l’obusier autopropulsé K9 Thunder, du char de combat K2 Black Panther et du robot sentinelle SGR-A1

Obusier autopropulsé K9 Thunder produit par le groupe Hanwha Photo : Le groupe Hanwha produit du matériel militaire en plus des caméras de sécurité. Ci-dessus : un obusier autopropulsé K9 Thunder en service au sein de l’armée finlandaise. Source : Wikimedia Commons

Ainsi, le micrologiciel d’une caméra grand public contenait des adresses de services internes liés au Ministère de la Défense américain. Le chercheur avance l’hypothèse que les différentes divisions de Hanwha (sécurité, défense, aéronautique) partageaient la même infrastructure CI/CD. Théoriquement, une faille dans une caméra de surveillance commerciale aurait pu servir de passerelle vers des systèmes de l’industrie de la défense.

Bien que cette articulation reste en partie hypothétique, la seule présence de ces adresses illustre l’ampleur des risques liés à la chaîne d’approvisionnement logicielle.

Incident isolé ou défaillance systémique de l’IoT ?

Malheureusement, ce cas est loin d’être isolé. L’ensemble du secteur de l’IoT (Internet des Objets) souffre d’un manque chronique de rigueur en matière de sécurité.

La communauté de la cybersécurité alerte depuis des années sur ces failles récurrentes :

  • Absence de vérification de signature du micrologiciel : Les équipements acceptent des mises à jour non signées ou altérées.
  • Identifiants codés en dur : Des mots de passe par défaut usine (admin/admin) qui ne sont jamais modifiés par les utilisateurs.
  • Mises à jour non chiffrées : Transmises en clair via HTTP, exposées aux attaques de type Man-in-the-Middle (MitM).
  • Intégration de secrets dans le code client : Hardcoder des clés d’API, mots de passe de bases de données ou jetons d’accès dans du code web reste une erreur trop fréquente.

Cependant, intégrer un jeton d’administration GitHub directement dans le code JavaScript de connexion d’une caméra constitue un cas d’école de négligence.

Quelles mesures pour les utilisateurs ?

Si votre infrastructure ou votre domicile est équipé de caméras Hanwha (marques Hanwha Vision, Wisenet ou anciennes gammes Samsung Techwin), vous ne pouvez pas corriger vous-même les failles du processus de compilation du fabricant. Hanwha a révoqué le jeton dans les 12 heures suivant le signalement, mais la durée exacte de son exposition et l’éventualité d’une exploitation préalable restent inconnues.

Les recommandations des experts en sécurité s’articulent ainsi :

  1. Isoler les caméras sur un réseau dédié (VLAN) : Utilisez la fonction réseau invités ou un VLAN de votre routeur pour séparer les équipements IoT (caméras, télévisions connectées) de vos ordinateurs et smartphones principaux.
  2. Privilégier le standard ONVIF et un NVR open source : Choisissez des caméras compatibles ONVIF associées à un logiciel d’enregistrement (VMS) open source afin de ne pas dépendre des interfaces web ou services cloud propriétaires.
  3. Appliquer le principe de défiance par défaut : Tout équipement connecté doit être considéré comme une menace potentielle. L’achat d’un matériel implique d’assumer les risques liés à l’ensemble de sa chaîne d’approvisionnement logicielle.

En conclusion

Le point le plus préoccupant dans cet incident n’est pas l’erreur humaine en soi. Des bavures surviennent dans toute ingénierie. Le véritable problème réside dans le fait qu’un géant de la sécurité et de la défense pesant 10 milliards de dollars ne disposait d’aucun garde-fou automatisé pour empêcher la compilation d’un jeton d’administration dans un micrologiciel grand public.

Si un acteur majeur échoue sur ces principes fondamentaux, le niveau de sécurité des équipements bas de gamme sans marque laisse deviner des failles bien plus importantes.

À l’ère de l’IoT, la frontière entre « acheter une caméra IP » et « recevoir les clés du coffre-fort du fabricant » ne tient parfois qu’à un script de compilation mal configuré.

Liens de référence :

  • HHH : My security camera shipped a GitHub admin token in its login page (Article original)
  • Discussion Hacker News (ID : 49034292)
  • El Solitario : GitHub Token Leaked in Hanwha Cameras
  • Wikipedia : Hanwha Group
  • Site officiel Hanwha Vision