9,70 € TTC
p. 06 FreeBSD 14.3 ajoute un support pkg pour les modules noyau, c'est le moment de coder les vôtres !
p. 18 Git : comment ça marche ?
p. 44 Advent of Code, jour 17 (le retour)
p. 51 Les codes fantastiques : variable & Unicode
p. 52 Programmation robuste avec Bash
p. 64 Erreurs en rafales, multiparités et codes Gray entrelacés
J’ai testé l’IA pour mon code et...
Rassurez-vous, j’ai tenté l’expérience, mais j’aime bien trop mon Vi pour utiliser des salop^Woutils comme VSCode/Copilot/Kiro/Cursor/machin/IDE gluant. Non, ce fut par l’intermédiaire de la simple interface web de Claude Sonnet 4 et l’aventure fut assez, heu, disons... « intéressante ».
Je ne saurais vous dire le type de résultat qu’on peut espérer concernant du webdev, qui n’est pas mon domaine de compétences et encore moins ma tasse de thé. Il s’agit là de bas niveau et, en grande partie, de développement kernel FreeBSD. Et... comment résumer cela ?
Par quelques réponses données, peut-être : « Vous avez raison, j’ai fait une erreur », « Ah, je me suis trompé ! », « Ah, c’est différent ! », « Voici comment ça fonctionne réellement », « Vous avez absolument raison ! Je me suis trompé », « J’ai fait une erreur dans mon analyse précédente », « Ma suggestion était incorrecte », « J’ai fait un raccourci dans mon exemple »... et je vous passe les « Excellente question ! » quasi systématiques...
Il y a tout de même des réponses pertinentes, certes, comme le fait de me rappeler que tenter d’allouer 32 Kio sur la pile est totalement stupide dans un module noyau, ou encore dans l’affichage d’une struct parce que j’étais trop paresseux pour chercher moi-même. Mais les fausses pistes, imaginaires ou non, étaient légion, comme le fait de m’inciter à réviser totalement le code du système de construction lui-même, alors qu’il me manquait juste un sys/rwlock.h dans mon code.
Il y a du positif, un peu, mais la sensation est bien là, celle d’avoir un dialogue avec un développeur psychotique, qui invente des choses avec une assurance déconcertante et dont il faut systématiquement vérifier toutes les affirmations. On a l’impression d’avoir affaire à une entité qui sait de quoi elle parle, tout en ne disant pas tout et, de préférence, en vous prenant pour un enfant de 12 ans. Mais c’est juste une impression, ce n’est qu’un moteur statistique qui prédit le prochain token à utiliser, rien de plus.
Encore une fois, je ne saurais vous dire ce qu’il en est pour du JS, du Python, du TypeScript, etc. Mais pour du bas niveau, globalement, entre le temps perdu et le temps gagné, le bilan est neutre, avec la dopamine en moins et la frustration en plus. Je crois que c’est le CEO de NVIDIA qui a dit « L’IA ne va pas vous remplacer, mais quelqu’un qui utilise l’IA va le faire ». Là, pour ce type de développement, je pense plutôt que c’est la personne qui n’utilise pas d’IA qui va remplacer celle qui s’en sert. Ou plutôt fournira des prestations avec un TJM affolant...
PS : et, oui, j’ai aussi essayé avec ChatGPT, même combat, même ton condescendant, même hallucinations de fichiers, fonctions, variables qui n’existent pas...
Denis Bodor
GNU/Linux Magazine s'adresse aux professionnels et aux particuliers désireux de mieux maîtriser les techniques et problématiques liées à la programmation et à l’utilisation de solutions open source. Tous les deux mois avec ses articles techniques, la publication couvre les thématiques suivantes : programmation système, algo, bas niveau, sécurité du code, développement web...

Thématique privilégiée pour la réalisation de démonstrations techniques à des fins promotionnelles, le MouseJacking n’en demeure pas moins un vecteur crédible pour l’obtention d’un accès initial dans le cadre d’un exercice Red Team. Nous vous proposons un retour d’expérience d’une telle opération en espérant vous convaincre de l’intérêt à porter à ces techniques.
Ces derniers temps, on ne parle que d'IA (enfin, on parle de LLM, ou Large Language Model, mais c'est moins vendeur). Les marchés financiers en raffolent et, corollaire évident, les entreprises se démènent pour en ajouter là où elles peuvent. Évidemment, le revers de la médaille de cette course effrénée est l'ajout encore peu maîtrisé de fonctionnalités riches pouvant introduire des vecteurs de compromission au sein d'applications sensibles. Le but de cet article est donc de faire un retour à travers mes audits ainsi que sur l’état de l’art, établi suite aux publications de l’OWASP, afin de déterminer le risque pour une entreprise qui souhaite ajouter de l’IA sous la forme d’un chatbot.
D’aucuns penseraient que le langage C est un langage simple. Après tout le fameux Kernighan & Ritchie de 1978 (a.k.a. White Book) ne fait que 200 pages, bien peu pour un langage qui a servi de base au noyau Linux, au compilateur GCC et à l’interpréteur de référence de Python, CPython. Et pourtant s’il y a bien une notion parmi toutes celles introduites dans the White Book qui met au défi ingénieurs en sécurité, chercheurs en compilation et développeurs en tout genre, c’est la notion de pointeur, et cette terrible question : le déréférencement de mon pointeur donne-t-il lieu à un comportement indéfini ?Des ingénieurs de chez Apple ont trouvé un chemin pragmatique et intéressant à cette question, et ils l’ont mis à disposition dans un fork de clang à travers une option, -fbounds-safety, et un fichier d’en-tête, <ptrcheck.h>. Examinons leur approche.