La sécurité de l’IA générative à base de LLM

Dans un précédent article, il avait été question d'attaques sur un agent à base de LLM, typiquement un chat. En effet, un tel agent interprète le prompt non seulement comme un texte à compléter, mais aussi comme une liste d'instructions à suivre, ce qui fait de ce texte un vecteur d'attaque d'autant plus intéressant à exploiter que personne aujourd'hui ne peut dire comment fonctionne un LLM, si bien qu'il est impossible d'en sécuriser l'usage.
La sécurité des systèmes d'IA générative à base de LLM
Dans ces conditions, la prolifération des agents constitue un enjeu considérable du point de vue de la sécurité informatique, et c'est sans surprise que les agences telles que l'ANSSI ont entrepris de sensibiliser les organisations à ce sujet.
Toutefois, il n'y a pas que les risques techniques dont il est nécessaire de tenir compte. En effet, les risques juridiques ne sont pas moindres, tout particulièrement ceux qui ressortissent au traitement des données à caractère personnel.
NB : Ce billet a été rédigé mi-août par un humain et non une boîte de conserve, et sera publié dans le HS n° 16 de Programmez! consacré à la sécurité informatique.
Continuer la lecture de "La sécurité de l’IA générative à base de LLM"
La sécurité de l’IA générative à base de LLM

Hackflash #7 : Extraire les PNG et les JPEG d’un binaire (même partiels)

Lors d'un challenge de forensics, il arrive souvent d'avoir à extraire des informations d'un dump de la mémoire, un gros fichier binaire.
Evidemment, il existe des outils pour cela, et le plus simple est sans doute d'utiliser un bon vieux binwalk. Toutefois, il peut être nécessaire d'avoir le faire soi-même.
Extraire les PNG et les JPEG d'un binaire (même partiels)
La solution la plus simple est alors encore de rédiger un programme en Python.
Continuer la lecture de "Hackflash #7 : Extraire les PNG et les JPEG d’un binaire (même partiels)"
Hackflash #7 : Extraire les PNG et les JPEG d’un binaire (même partiels)

Hackflash #6 : Extraire les mots d’un dictionnaire d’un binaire

Lors d'un challenge de forensics, il arrive souvent d'avoir à extraire des informations d'un dump de la mémoire, un gros fichier binaire. En particulier des mots issus d'un dictionnaire.
Evidemment, il existe des outils pour cela, et le plus simple est sans doute d'utiliser un bon vieux grep -a. Toutefois, il peut être nécessaire d'avoir le faire soi-même.
Extraire le mots d'un dictionnaire d'un binaire en Python 3
La solution la plus simple est alors encore de rédiger un programme en Python.
Continuer la lecture de "Hackflash #6 : Extraire les mots d’un dictionnaire d’un binaire"
Hackflash #6 : Extraire les mots d’un dictionnaire d’un binaire

Le monde interlope du hacking

Après avoir acquis un bon socle de connaissances techniques en matière d'exploitation des failles diverses et variées en se classant dans le Top 100 de Root Me, pourquoi ne pas continuer cette exploration de l'univers du hacking par une série de lectures sur ceux qui le peuplent, à commencer par ceux qui sont présentés ou qui se présentent comme des hackers ? Après tout, il est toujours bon d'en savoir sur là où l'on met les pieds.
Quelques recherches sur le Ouèbe permettent d'identifier rapidement nombre de livres, d'articles, de podcasts et autres vidéos recommandés pour acquérir quelques repères, et même une vraie connaissance de ce monde-là. Reste à faire le tri pour savoir à quoi il convient de consacrer un temps précieux... La sélection suivante résulte de ces lectures, écoutes et visionnages durant deux mois d'été. Elle sera enrichie au fil des découvertes faites par la suite.
Livres sur le hacking
S'agissant d'une sélection, je me contente de préciser sur quoi porte la source que je recommande, sans préciser pourquoi je la recommande : si elle a été sélectionnée, c'est qu'elle est recommandée ! Et qu'on ne se méprenne pas, aucune de ces sources n'est exclusive d'une autre. Autrement dit, il faut les lire, écouter et regarder toutes !
Mise à jour du 02/03/2023 : Lecture faite de Sandworm: A New Era of Cyberwar and the Hunt for the Kremlin's Most Dangerous Hackers et Tracers in the Dark: The Global Hunt for the Crime Lords of Cryptocurrency d'Andy Greenberg - un journaliste, mais un vrai, donc pas français -, dont je n'ai pas encore fait ici la revue, je recommanderais plutôt la lecture de ces deux excellents ouvrages que celui de Nicole Perlroth, qui m'avait bien plu avant que je ne les découvre, mais qui m'apparaît rétrospectivement comme trop emprunter au premier ainsi qu'à l'ouvrage de Fred Kaplan, dont j'ai fait ici la revue, sans apporter grand-chose de nouveau...
Mise à jour du 07/09/2022 : Ajout d'une présentation de Dark Territory: The Secret History of Cyber War par Fred Kaplan (2016).
Continuer la lecture de "Le monde interlope du hacking"
Le monde interlope du hacking

Hackflash #5 : Ecrire un shellcode

Un shellcode est un petit programme dont il faut déclencher l'exécution, généralement en écrasant l'adresse de retour d'un programme dans la pile (la valeur de EIP empilée par le CALL du programme appelant) au moyen d'un buffer overflow.
Ecrire un shellcode
Qu'est-il attendu d'un shellcode, et quelles sont les contraintes qui imposent son écriture en assembleur ?
Continuer la lecture de "Hackflash #5 : Ecrire un shellcode"
Hackflash #5 : Ecrire un shellcode

Root Me : racine-moi, si tu l’oses !

Lorsque je me suis intéressé à la sécurité informatique, je n'ai pas bien su pas où attaquer la chose. Finalement, je me suis décidé à l'attaquer à sa racine, Root Me étant là pour ça.
Le site de Root Me, avec son trop cool de logo
La sécurité informatique est un vaste domaine, c'est le moins que l'on puisse dire, d'autant plus que certains s'emploient à l'étendre joyeusement. Sans doute, dans la vie professionnelle, il faut savoir ravaler son domaine d'expertise pour l'accorder aux couleurs du temps, quitte à forcer un peu sur la peinture. Reste que cela ne va pas sans générer une certaine confusion. Pourquoi pas un "Grenelle du cul", avait proposé Roselyne Bachelot, lassée que l'on promette un Grenelle sur tout. On voit l'idée.
Pour y mettre un pied – dans la sécurité informatique, pas au cul –, j'ai déterminé que je partirai de la base, c'est-à-dire de la technique, et qu'après avoir acquis un vernis, je ferai des choix. Toutefois, passé un certain temps à lire quelques documents et regardé quelques vidéos portant essentiellement sur les techniques d'intrusion analysées par des pentesteurs, il m'est apparu impossible de vraiment assimiler des connaissances sans m'adonner à une pratique assez intense, les sujets, même à ce niveau et dans cette spécialité, étant trop divers.
Pirater le réseau WiFi du voisin étant exclu, les MOOC m'ont semblé tout indiqués. Reste qu'après en avoir tâté un peu, je n'ai pas trouvé la motivation pour m'y investir plus que quelques heures. Le problème, c'est que ce n'était pas le challenge. On était loin de l'ambiance demoparty, "elite rulez", ou "l337 rUl32" comme on dit maintenant, et tout ce qui tire vers le haut parce que c'est compliqué, et parce que c'est reconnu. Sorti de l'arène, le gladiateur s'ennuie.
Le salut devait venir d'ailleurs. Au hasard d'une rencontre – enfin, c'était une réunion traitant de cyberdéfense, donc le caractère fortuit est somme toute très relatif –, j'ai eu l'occasion de rencontrer quelqu'un pratiquant quelque chose de tout à fait passionnant, le forensics. Le gaillard, à qui j'ai exposé mon problème, m'a alors renvoyé sur Root Me.
Mise à jour du 31/08/2022 : C'est un peu Hacker's Quest: So You Want To Be A Hacker en plusieurs chapitres désormais. Après l'acquisition du socle technique, celle du socle culturel ici.
Mise à jour du 03/07/2022 : Pour finir, car tout fait son temps, classé au Top 100. Un conseil ? Aussi difficile que cela puisse être : n'abandonnez jamais.
Mise à jour du 30/01/2020 : Cet article a été rédigé il y a quelques mois, et n'est publié que maintenant sur ce blog pour être synchrone avec sa publication dans Programmez! Depuis, l'eau a coulé sous les ponts, m'étant adonné à bien d'autres challenges sur Root Me. Cryptanalyse, Web-client, Web-serveur et stéganographie pour l'heure : je confirme qu'ils sont tout aussi instructifs et prenants !
Continuer la lecture de "Root Me : racine-moi, si tu l’oses !"
Root Me : racine-moi, si tu l’oses !

Hackflash #2 : Lister les segments d’un JPEG

Un grosse astuce en matière de stéganographie consiste à dissimuler des données dans un fichier image. Dans le cas d'un JPEG, il s'agira de jouer avec les segments.
Le flag est dans le JPEG...
La technique de base pour trouver ces données cachées est assez pénible, puisqu'elle consiste à passer en revue le contenu du fichier avec un éditeur hexadécimal tel que l'incontournable HxD.
Fort heureusement, il est possible d'automatiser cela en quelques lignes de Python...
Continuer la lecture de "Hackflash #2 : Lister les segments d’un JPEG"
Hackflash #2 : Lister les segments d’un JPEG