Langages de programmation indispensables à apprendre, selon Geohot ?

Geohot est le pseudonyme du célèbre hacker du nom de George Hotz. C’était un hacker bien connu dans le début des années 2000 pour ses jailbreak des téléphones iPhone, et surtout célèbre pour être le premier à pouvoir contourner la sécurité de la console de jeux Playstation 3, réputée à être très sécurisée à son époque. Après avoir eu des problèmes avec la justice, notamment avec la société Sony pour le hack de leur console, Il s’est converti à l’intelligence artificielle et a créé sa propre boîte informatique nommée comma.ai, spécialisée dans la vision des véhicules autonomes. Et après cela, juste récemment il a lancé son propre framework en deep learning appelé tinygrad.

Geohotz chez Lex Fridman

La vidéo est un extrait d’une interview avec le célèbre académicien journaliste Lex Fridman (voici le lien de sa chaîne Youtube). Dans la vidéo, on peut remarquer que Geohot prend plus ou moins le point de vue d’un hacker. Il va souligner l’importance d’apprendre des langages bas niveau, comme le langage C et l’assembleur, avec ce qui est rare pour un informaticien, les langages de description hardware comme Verilog et VHDL. En plus de quelques langages fonctionnels comme de Haskell et des langages ML (Machine Learning) comme le TensorFlow et le PyTorch. Geohot dispose d’une chaîne Youtube très intéressante (voici le lien de la chaîne), dans laquelle vous pouvez trouver des vidéos globalement de programmation et des projets qu’il fait. Il dispose aussi d’une chaîne Twitch, sur laquelle il stream de temps en temps, sur laquelle vous pouvez le contacter directement (voici le lien de la chaîne). 

Récupérer les fichiers dans une clé USB corrompue par un virus

C’est un problème que nous, les enseignants, faisons souvent face. Des Flash disque ou clés USB d’étudiants qui sont corrompus par des virus, et leurs fichiers deviennent inaccessibles à l’utilisation. Je crois qu’il est utile et nécessaire d’écrire un petit article avec une vidéo explicative pour faire apprendre aux étudiants la manière à faire pour contourner ce problème. La première chose à prendre en considération est de comprendre le fonctionnement du virus. Dans la plupart des cas, lorsqu’un virus va compromettre une clé USB, il ne va pas supprimer les fichiers déjà existants, mais il va plutôt les faire cacher, et ensuite créer des raccourcis trompeurs avec les mêmes noms des fichiers, qui vont lancer ou exécuter le code du virus si l’utilisateur appuie dessus. Ainsi, la première chose à faire, c’est de supprimer ces raccourcis. C’est très simple de distinguer un fichier ou un dossier raccourci, Il est distingué par une petite flèche, en bas de l’icône du fichier ou du dossier, et généralement il a la taille d’un kilo-octet. Après ça, il faut chercher dans le système d’exploitation à faire afficher les fichiers cachés. Ça dépend du système d’exploitation, mais généralement c’est assez simple de chercher dans les options de Windows “option des dossiers” et faire afficher les fichiers cachés et les fichiers système. Et voilà, maintenant vous pouvez accéder à vos fichiers et dossiers que le virus a fait disparaître, et vous pouvez même changer leurs propriétés pour redevenir les fichiers normaux, fichiers non cachés. La vidéo en bas est une vidéo en arabe, elle permet d’expliquer plus en détail ce processus de récupération des fichiers corrompus dans une clé USB.

Récupérer les fichiers corrompus dans une clé USB par virus

La machine Enigma

Je me rappelle d’avoir entendu parler pour la première fois de la machine Enigma en introduction du cours de cryptographie, tout informaticien normalement devrait connaître au moins de nom cette machine, elle a un lourd pesant historique et technologique. Historiquement c’est la première machine et la plus célèbre à avoir initié la cryptographie moderne, inventée par les Allemands au début du XX-ième siècle, elle était considérée très en avance en son temps, c’était même la machine principale utilisée par l’armée Allemande en Seconde Guerre mondiale pour le cryptage de ses communications, elle était considérée par les Allemands comme la machine infaillible. Et pourtant les Anglais ont réussi à la craquer, essentiellement grâce aux efforts du brillant mathématicien aujourd’hui considéré comme le père de l’informatique Alan Turing. Pour beaucoup d’historiens, le détournement du cryptage d’Enigma avait contribué énormément à basculer la balance en faveur des alliés dans la Seconde Guerre mondiale, et cet exploit intellectuel de Turing l’a propulsé au rang de héros national, et même son histoire avec Enigma est actuellement réinterprétée dans plusieurs romans et réalisations cinématographiques.

Machine Enigma

Sincèrement, la machine m’a subjugué ces derniers jours, personnellement et pour beaucoup d’autres je suppose, la machine reste d’après son nom une machine énigmatique, mystique, et incompréhensible, mais en réalité loin de là, c’est une machine très simple à utiliser, sur la vidéo en haut de la chaîne Numberphile, une brève démonstration de comment cette machine fonctionne est exposée, son utilisation reste assez simple et plus que ça encore, son fonctionnement interne à base de circuits électriques et engrenages mécaniques n’est pas si difficile à comprendre non plus, une petite recherche sur Google devrait suffire pour comprendre comment la machine fonctionne en interne dans ses moindres détails.

Malgré cela, il ne suffit pas de comprendre son fonctionnement pour pouvoir la craquer, spécialement avec les moyens de l’époque, Turing a dû exploiter plusieurs brèches pour détourner son chiffrement, la principale est sans doute le fait que la machine mécaniquement lui est impossible de crypter une lettre par la lettre elle-même, elle doit impérativement changer de lettre après chiffrement, il a aussi utilisé une brèche dans le protocole de communication Nazie, le fait d’utiliser les mêmes mots pour chaque message, comme par exemple  »heil Hitler », ou le fait aussi que la machine n’arrive pas mélanger l’ordre des lettres dans un message, ça réduit énormément l’espace de recherche lors du décryptage du code. Dans la vidéo aussi on peut suivre le développement du calcul probabiliste sur les différents cas initiaux possibles de la machine, les chiffres évoqués sont impressionnants, et ils le sont réellement avec les moyens de l’époque, mais de nos jours ces nombres sont ridicules en comparaison avec les algorithmes de cryptages actuels, je me demande combien de temps faudra-il pour craquer le code d’Enigma en brute force avec les machines modernes ?

Enigma en papier

J’ai aussi réussi à trouver une vidéo très intéressante montant avec le minimum de moyens, dans ce cas une feuille de papier imprimée et une boîte cylindrique de chips, de pouvoir répliquer le fonctionnement interne de la machine d’Enigma. Sans doute ce genre de procédé est utilisé pour des fins éducatifs, ça devrait permettre aux étudiants d’avoir un aperçu réel sur le fonctionnement d’une machine réel de cryptage. Le PDF pour la reconstruction des rotors de la machine est disponible juste ci-dessous :

enigma-rotors-sheet

Le spyware Pegasus

Tout le monde en parle ces jours-ci, c’est le malware ou plutôt le spyware Pegasus, il a fait un tollé dans le monde politique, mais pour cet article on ne va pas s’attarder sur les clivages politiques, et plutôt essayer d’analyser et de comprendre ses aspects technologiques, du moins essayer de faire de la vulgarisation et la prévention dans ce qu’on appelle la cybersécurité.

Le malware Pegasus est comme tout autre logiciel malveillant, est utilisé pour infecter les machines informatiques en s’installant furtivement à l’insu de l’utilisateur de la machine et nuire d’une manière ou d’une autre à ce dernier, ce type de logiciel est généralement contrecarré par les antivirus. Dans le cas de Pegasus c’est différent, c’est un logiciel espion, non détectable par les antivirus, il est même jusqu’à maintenant difficilement détectable même par les experts en sécurité informatique, il cible particulièrement les smartphones d’Apple et ceux avec Android, et permet de subtiliser les données des principales applications installées, d’écouter les conversations téléphoniques, déclencher la caméra ou le microphone, utiliser la géolocalisation, saisir les mots de passe…etc. La vidéo en bas donne une bonne explication sur comment Pegasus fonctionne, et comment au mieux s’en prévenir.

Le spyware Pegasus

Le principal danger de ce malware c’est qu’il a permis récemment l’espionnage d’un chef d’État, des hauts responsables d’état, des journalistes, des magistrats, des défenseurs des droits de l’homme, des activistes…etc. Il est plutôt utilisé à des buts néfastes contrairement à ce qu’il a été promulgué par la société en charge de son développement et sa vente NSO, comme un dispositif pour combattre le terrorisme et la criminalité. La bonne nouvelle c’est que le malware est si cher qu’il ne peut viser qu’une partie très réduite de la population, à savoir les personnes importantes. La mauvaise nouvelle c’est qu’il est quasiment impossible de s’en prévenir puisqu’il arrive même à utiliser des attaques dites zéro-cliques (voir la vidéo en haut pour plus d’informations), ça veut dire qu’il peut infecter un smartphone même si l’utilisateur ne fait aucune erreur, la principale erreur d’un utilisateur pour infecter son smartphone étant de cliquer sur un lien suspect.

Samy Kamkar et le Reverse Engineering

Samy Kamkar est le nom d’un ancien hacker très reconnu, actuellement c’est un expert et consultant en sécurité informatique et vie privée. Samy Kamkar était surtout connu dans sa jeunesse comme le hacker qui a créé le worm ou le virus avec la propagation la plus rapide de tous les temps, c’était le worm Samy, consistant à infecter le réseau social MySpace en 2005, à une époque où il n’y avait pas encore FaceBook et et que MySpace était l’un des sites les plus populaires au monde, même plus que Google. Le virus en question était relativement inoffensif, mine de rien il a causé le shutdown (arrêt temporaire) de MySpace et interpellation de Samy par les services secrets américains avec une punition de ne pas approcher d’appareils informatique ni d’internet pour une période de 3 ans.

wallhack dans Counter Strike : Global Offensive

Samy Kamkar est aussi connu pour l’invention de l’un des hacks actuellement les plus célèbres dans le monde du jeu vidéo, c’est le wall-hack (wall c’est mur en Français), un hack qui permet aux joueurs de tricher dans les jeux multijoueur online. Le wall-hack littéralement permet au tricheur de scanner les murs et de voir la position des adversaires cachés derrière les murs, l’image en haut est un exemple d’un wall-hack dans le jeu Counter Strike. Justement, c’est sur le jeu Counter Strike que Samy Kamkar a eu l’idée de créer ce hack, lors d’une de ses parties il a r emarqué que le son des pas de ses adversaires pouvait être entendu derrière les murs sans autant les voir, il a eu la clairvoyance de constater que l’information sur ses adversaires en réseaux puisque il arrive à les entendre, est sans doute parvenue à sa machine, il lui suffisait juste de chercher cette information sur la RAM de la machine en utilisant l’un des programmes appelés moniteurs. Ces programmes permettent la visualisation des données brutes en temps réel des logiciels s’exécutant dans la RAM, un travail d’investigation et d’analyser des données brutes est nécessaire pour trouver la position des joueurs adverses, Samy alors a eu l’idée d’observer que le son des pas entendu est stéréo sur deux baffes, si le joueur était à droite la baffe de droite émettait un son plus intense que celle de gauche et inversement, il a réussi à trouver les valeurs d’intensité des deux sons dans le tas de données, et avec un simple calcul de triangulation géométrique il a pu extraire la position du joueur adverse.

Reverse Engineering avec RSamy Kamkar

Le hack en soi reste un sujet très controversé, en raison qu’il peut effectivement être utilisé pour des fins maléfiques, comme par exemple le piratage, l’accès à des informations privées et confidentielles, le détournement d’argent et systèmes de paiement, les cybers attaques, la tricherie…etc. Mais pour d’autres c’est un phénomène culturel qui ne concerne pas que l’informatique, mais plutôt l’aspect lorsqu’un individu apprécie le challenge intellectuel de créativité surmontant les limitations d’un software, d’un appareil, d’une machine…etc, afin d’arriver à des fonctionnalités nouvelles plus innovantes (c’est la définition donnée sur Wikipédia). Certains pensent que l’esprit de cette culture est fidèlement et simplement représenté par l’ancienne série télévisée MacGyver. Dans tous les cas le hack généralement implique l’utilisation d’un système d’une manière autre que celle qu’il a été développé à la base pour avoir des fonctionnalités nouvelles, pour le faire le hacker doit avoir une compréhension approfondie et accrue du système.

Sur la vidéo en haut Samy Kamkar donne quelques conseils et directives sur la méthode et les outils nécessaire pour faire du hack matériel et le reverse engineering. La vidéo est une interview de Samy Kamkar donnée à la suite de la conférence tenue par l’association hackaday, dans laquelle il a présenté un hack sur les clés intelligentes de voiture (en Anglais key fob ou smart key), c’est le type de clés qui permettent de déverrouiller sa voiture en étant à proximité de celle-ci sans avoir à utiliser la clé, d’allumer automatiquement les feux, et d’autres fonctionnalités.