Vue lecture

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.

Envmap - Fini les fichiers .env qui traînent et finissent sur GitHub

Devinette du soir : Qu’est-ce qui est pire qu'un secret que vous avez oublié de cacher ?

Réponse : Des dizaines, des millions de secrets qui traînent sur GitHub parce que quelqu'un a eu la flemme de configurer un vrai gestionnaire de variables d'environnement !

Hé oui, les amis ! On a tous fait cette boulette au moins une fois (ou alors vous mentez, ou vous êtes un robot). On crée un petit fichier .env, on oublie de le rajouter au .gitignore, et paf, vos clés AWS se retrouvent à poil. Selon GitHub, c'est plus de 39 millions de secrets qui ont été détectés en fuite sur leurs dépôts en 2024. C'est du délire !

Envmap - Le gestionnaire de variables d'environnement qui tue les fichiers .env ( Source )

Du coup, au lieu de continuer à se farcir du bricolage avec des fichiers qui traînent en clair sur le disque, je vous propose de jeter un œil à Envmap .

C'est un outil écrit en Go dont l'objectif est de réduire au maximum l'écriture de vos secrets sur le disque dur. En mode normal, il va les pomper directement chez les grands manitous du stockage sécurisé comme AWS Secrets Manager, HashiCorp Vault, 1Password ou encore Doppler (même si pour l'instant, certains de ces providers sont encore en cours d'intégration).

Comme ça, au lieu de faire un vieux source .env qui laisse traîner un fichier sensible, vous lancez votre application avec envmap run -- node app.js. L'outil récupère les variables en RAM et les injecte dans le process. C'est propre, c'est net, et ça évite surtout de pousser par erreur votre config sur un repo public.

Pour ceux qui se demandent s'il faut quand même envoyer ses fichiers .env sur GitHub (spoiler : non, jamais !), Envmap propose une commande import pour ingérer vos vieux secrets. Et pour ceux qui ont besoin d'un stockage local, sachez qu'Envmap peut aussi chiffrer vos variables en AES-256-GCM, ce qui est quand même plus sérieux qu'un fichier texte lisible par n'importe qui. Notez aussi qu'il existe une commande sync si vous avez vraiment besoin de générer un fichier .env temporaire.

Perso, ce que je trouve vraiment cool, c'est l'intégration avec direnv. On rajoute une ligne dans son .envrc, et hop, les secrets sont chargés automatiquement quand on entre dans le dossier du projet. C'est magique et ça évite les crises cardiaques au moment du push.

D'ailleurs, si vous voulez aller plus loin dans la sécurisation de vos outils, je vous recommande de lire mon article sur SOPS ou encore ma réflexion sur l'usage de GitLab pour vos projets sensibles.

Bref, c'est open source (sous licence Apache 2.0), et avec ça, vous dormirez sur vos deux oreilles !

OGhidra - Dopage à l'IA pour Ghidra en local

Les gars de chez LLNL (Lawrence Livermore National Laboratory) sont des bons ! De vrais spécialistes en sécurité informatique qui ont pondu un outil à essayer si vous passez vos journées dans les entrailles des binaires.

Ça s'appelle OGhidra , et c'est une extension qui fait le pont entre le célèbre framework de reverse engineering Ghidra et la puissance des modèles de langage (LLM).

Comme ça, plutôt que de vous péter les yeux sur des milliers de lignes de code décompilé, vous pouvez simplement "discuter" avec les fonctions ou les strings extraites. Grâce à une intégration avec Ollama, OGhidra permet d'interroger les représentations du binaire en langage naturel pour identifier des vulnérabilités, renommer intelligemment des fonctions ou expliquer des algorithmes complexes. Attention toutefois, comme avec tout LLM, les résultats doivent être validés manuellement (les hallucinations, ça arrive même aux meilleurs !).

Le gros avantage ici, vous l'aurez compris, c'est la privacy car tout tourne en local sur votre ordi. L'extension utilise des techniques comme le RAG (Retrieval-Augmented Generation) pour garder le contexte de vos sessions et le CAG (Cache-Augmented Generation) pour optimiser les performances. Prévoyez quand même une machine solide car pour faire tourner des modèles comme gemma3 confortablement, 32 Go de RAM (et une bonne dose de VRAM) ne seront pas de trop.

Pour que ça envahisse vos machines de reverse engineer, il vous faudra Ghidra 11.3 minimum et JDK 17. L'installation se fait ensuite en deux temps : d'abord le plugin GhidraMCP à ajouter dans Ghidra, puis le composant Python à récupérer sur GitHub :

git clone https://github.com/LLNL/OGhidra.git
cd OGhidra
pip install -r requirements.txt

Une fois Ollama lancé avec vos modèles préférés, vous allez pouvoir automatiser les tâches les plus reloues. Par exemple grâce aux boutons "Smart Tool" dans l'interface de Ghidra vous allez pouvoir renommer toutes les fonctions d'un coup ou générer un rapport de sécurité (à prendre comme une base de travail, pas comme une vérité absolue, hein ^^).

C'est beau mais ça fait mal quand on pense au temps qu'on a perdu par le passé ! Et si vous kiffez ce genre d'approches, jetez aussi un œil à Cutter qui propose une intégration optionnelle du décompileur de Ghidra, ou encore à DecompAI .

Voilà, j'ai trouvé ça intéressant pour booster Ghidra avec une petite dose d'intelligence locale.

Half-Life 2 - L'histoire du bug d'orteil qui a voyagé dans le temps

Si vous êtes du genre à avoir passé des heures sur Half-Life 2 à vous en retourner les paupières (et je sais que vous êtes nombreux), oubliez tout ce que vous pensiez savoir sur la stabilité légendaire du Source Engine. Car figurez-vous qu'un bug totalement improbable vient de refaire surface grâce à Tom Forsyth, un ancien de chez Valve, et c'est clairement un truc de fou, vous allez voir...

Tout commence en 2013. À l'époque, Valve bosse sur le portage de HL2 pour le tout premier Oculus Rift (le fameux DK1 qui nous donnait tous envie de vomir au bout de 5 minutes). Pour tester la VR, ils se disent que le mieux, c'est de reprendre un bon vieux classique. Tout se passe bien jusqu'à ce que Tom Forsyth reste bloqué dès l'intro du jeu, juste après la séquence de la canette. Un garde Barney censé vous ouvrir une porte reste planté là, et la porte refuse de bouger. Coincé. Rideau. On ferme.

Le truc qu'il constate alors, c'est qu'en recompilant le code source original de 2004, le bug est là aussi ! Pourtant, personne ne l'avait jamais croisé en neuf ans. Du coup, l'équipe a cru à une sorte de malédiction ou à un bug qui aurait voyagé dans le temps pour infecter l'original. (si si...)

Mais après une journée de spéléologie dans les outils de debug, ils ont fini par trouver le coupable : l'orteil d'un garde PNJ ! Le pauvre couillon était placé un millimètre trop près de la porte et en s'ouvrant, la porte tapait dans son pied, rebondissait et se verrouillait. Imaginez un peu la vie du gars, à se faire matraquer l'orteil depuis +20 ans sans pouvoir crier ou se décaler d'un millimètre... Dur !

Mais alors pourquoi ça marchait en 2004 et plus en 2013 ?

Hé bien la réponse tient en deux mots qui vont rappeler des souvenirs aux plus geeks d'entre vous : ✨ virgule flottante ✨.

Car en 2004, le jeu tournait avec les instructions x87 (80 bits de précision, un beau bordel hérité de l'époque)et en 2013, avec le passage au SSE (32 ou 64 bits), les calculs physiques sont devenus plus "stricts". Dans les deux versions, la porte tape l'orteil mais avec le x87, la micro-rotation infligée au garde suffisait à dégager son pied juste assez pour que la porte passe au millième de seconde suivant. Avec le SSE par contre, le garde pivotait un chouïa moins loin... et paf, collision, porte bloquée !

C'est encore une preuve que même dans un chef-d'œuvre comme Half-Life 2, tout ne tient qu'à un orteil et quelques bits. D'ailleurs, si vous voulez vous replonger dans l'ambiance, sachez que Half-Life a fêté ses 25 ans récemment avec une belle mise à jour, et pour les nostalgiques de la VR qui veulent souffrir avec style, le driver VorpX permet toujours de faire des miracles. Ce serait dommage de passer à côté !

Allez, je vous laisse, je vais vérifier si mon gros orteil ne bloque pas ma porte d'entrée.

Source

Que sont les xénobots, ces robots biologiques qui bouleversent les frontières entre vivant et machine ?

xénobot

Les xénobots attirent aujourd’hui l’attention. Cette nouvelle catégorie de « robots vivants », fabriqués à partir de cellules d’amphibien et conçus grâce à des algorithmes, est capable de se déplacer, de se réparer et même, dans certaines expériences, de se reproduire en assemblant de nouveaux agrégats cellulaires. Ces entités questionnent la frontière entre machine et organisme. Des études récentes détaillent mieux leur fonctionnement moléculaire et ravivent les débats éthiques sur le contrôle de ces formes de vie programmables.

GTA Online vient de révéler le vrai cauchemar que sera GTA 6

OK les amis, là faut qu'on parle de ce qui se passe chez Rockstar. Je pense que vous passez probablement trop de temps à errer dans Los Santos au lieu de bosser, mais ce qui vient de tomber est bien plus inquiétant qu'un braquage de banque qui foire. En effet, d'après une enquête de Variety , Rockstar vient de supprimer des missions créées par des joueurs qui recréaient l'assassinat réel de Charlie Kirk, un fasciste américain tué en septembre dernier.

Le truc, c'est que ce n'est pas juste une petite polémique politique de plus. C'est LE SIGNE que Rockstar Games est en train de réaliser, un peu tard, qu'ils ne contrôlent plus leur propre bébé. Car même si les outils de création existent depuis 2013, une nouvelle fonctionnalité lancée en décembre dernier a visiblement boosté la créativité macabre de certains. Désormais, des joueurs s'improvisent game designer pour injecter des événements du monde réel directement dans le jeu sandbox de Rockstar.

Et là, c'est le drame ! Pour essayer de colmater les brèches, ils ont même dû repenser leur vieux "filtre de grossièretés" interne qui n'est plus juste là pour empêcher les gamins d'écrire des insultes dans le chat, mais pour modérer et bloquer massivement des noms de personnalités ou des événements sensibles. En gros, Rockstar est passé du statut de créateur de mondes virtuels à celui de modérateur de plateforme, un peu comme s'ils géraient un réseau social géant, mais avec des flingues et des bagnoles.

Certains se demandent si l'acquisition de Cfx.re (l'équipe derrière FiveM) en 2023 par Rockstar n'était pas justement un moyen de préparer le terrain avec des technos de contrôle plus musclées. Mais peu importe, car le vrai problème ici est structurel. GTA est devenu une plateforme UGC massive (User Generated Content) et quand on voit à quel point ils galèrent déjà, on peut légitimement se demander comment ils vont gérer le futur multi de GTA 6, prévu pour novembre 2026 ?

Sérieux, je m'inquiète car imaginez l'échelle du prochain titre avec des outils encore plus poussés... Ça va être un combat permanent pour supprimer les contenus problématiques. On est trèèèès loin de l'époque où on s'amusait simplement à regarder Los Santos sous l'eau grâce à un mod. Ici, Rockstar découvre à ses dépends que la liberté offerte aux joueurs est en train de se transformer en leur pire cauchemar de modération.

Allez, bon courage Rockstar, parce que là, vous allez en avoir besoin.

Source

LangExtract - La nouvelle pépite de Google pour extraire des données structurées avec l'IA

Il y a des combats comme cela auxquels pas grand monde ne pense et qui pourtant sont très importants. Je parle évidemment de la lutte contre le chaos du texte non structuré. Si vous avez déjà essayé d'extraire des données propres d'un tas de PDF (après OCR), de rapports ou de notes griffonnées, vous voyez de quoi je parle : c'est l'enfer ! (oui j'aime me faire du mal en tentant des regex impossibles).

Heureusement, Google a lâché début janvier 2026 une petite pépite en open source (même si c'est pas un produit "officiel") qui s'appelle LangExtract . C'est une bibliothèque Python qui utilise la puissance des LLM pour transformer vos documents textuels en données JSON bien rangées.

Exemple d'extraction sur le texte de Roméo et Juliette ( Source )

Ce qui fait que LangExtract sort du lot par rapport à d'autres outils comme Sparrow , c'est surtout son système de Source Grounding. En gros, chaque info extraite est directement liée à sa position exacte dans le texte source. Ça facilite énormément la vérification et la traçabilité puisque vous pouvez voir visuellement d'où vient la donnée grâce à un système de surlignage automatique.

Sous le capot, l'outil est optimisé pour les documents à rallonge (le fameux problème de l'aiguille dans une botte de foin). Il utilise des stratégies de découpage de texte et de passes multiples pour améliorer le rappel et s'assurer que le maximum d'infos soit capturé.

La visualisation interactive permet de valider les données en un clin d'œil ( Source )

Et cerise sur le gâteau, il permet de générer un fichier HTML interactif pour visualiser les milliers d'entités extraites dans leur contexte original. À la cool !

Côté installation, c'est hyper fastoche :

pip install langextract

Pour faire le job, vous avez le choix des armes : les modèles cloud de Google (Gemini 2.5 Flash/Pro), ceux d'OpenAI (via pip install langextract[openai]), ou carrément du local avec Ollama . Pas besoin de passer des heures à fine-tuner un modèle, il suffit de fournir quelques exemples structurés via le paramètre examples et hop, c'est parti mon kiki.

Voici à quoi ça ressemble sous le capot pour lancer une machine à extraire :

import langextract as lx

# 1. On définit les règles du jeu
prompt = "Extraire les noms de personnages et leurs émotions."

# 2. On donne un exemple (few-shot) pour guider le modèle
examples = [
 lx.data.ExampleData(
 text="ROMEO. But soft! What light...",
 extractions=[lx.data.Extraction(extraction_class="character", extraction_text="ROMEO", attributes={"emotion": "wonder"})]
 )
]

# 3. On lance l'extraction (nécessite une clé API ou Ollama)
results = lx.extract(
 text_or_documents="votre_texte_brut_ici",
 prompt_description=prompt,
 examples=examples,
 model_id="gemini-2.5-flash"
)

# 4. On sauvegarde et on génère la visualisation HTML
lx.io.save_annotated_documents(results, output_name="results.jsonl")
html_content = lx.visualize("results.jsonl")
with open("view.html", "w") as f:
 f.write(html_content)

Honnêtement, je ne sais pas si ça va remplacer les solutions industrielles de RPA , mais pour un dev qui veut structurer du texte sans se prendre la tête, c'est vraiment impressionnant. Que vous fassiez du Grist ou de l'analyse de données pure, cet outil mérite clairement que vous y jetiez un œil !

Source

❌