Vue normale

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.
À partir d’avant-hierinformatique général
  • ✇Korben
  • Rapid-MLX - Installer un serveur IA local sur votre Mac
    Si vous avez un Mac Apple Silicon et que vous en avez assez de payer des tokens à chaque requête, Rapid-MLX vaut le détour. C'est un moteur d'inférence local maintenu par Raullen Chai, qui tape directement dans les kernels MLX d'Apple, sans repli sur llama.cpp ni couche Metal intermédiaire. Et si le nom vous dit vaguement quelque chose, c'est normal puisque c'est un fork de vLLM-MLX, le serveur de Wayner Barrios dont je vous parlais en mai . Rapid-MLX a juste pris

Rapid-MLX - Installer un serveur IA local sur votre Mac

Par : Korben ✨
27 juillet 2026 à 11:33

Si vous avez un Mac Apple Silicon et que vous en avez assez de payer des tokens à chaque requête, Rapid-MLX vaut le détour. C'est un moteur d'inférence local maintenu par Raullen Chai, qui tape directement dans les kernels MLX d'Apple, sans repli sur llama.cpp ni couche Metal intermédiaire. Et si le nom vous dit vaguement quelque chose, c'est normal puisque c'est un fork de vLLM-MLX, le serveur de Wayner Barrios dont je vous parlais en mai . Rapid-MLX a juste pris un rythme de publication plus soutenu des deux.

Ce que ça vous donne, c'est donc un serveur HTTP qui parle le même langage que l'API d'OpenAI et celle d'Anthropic. Vos scripts, Cursor, Aider, LangChain ou Claude Code continuent de fonctionner, sauf qu'ils tapent sur votre machine au lieu d'un datacenter.

Donc je vous propose de voir ensemble comment installer ça.

Étape 0 : Vérifier que votre Mac est éligible

Le script d'installation contrôle plusieurs choses avant de lancer quoi que ce soit, et autant les connaître d'avance. Il faut une puce Apple Silicon et il n'y a pas de version Linux ni Windows, ni de support CUDA ou AMD.

Le script d'installation accepte encore macOS 13 Ventura, mais le vrai plancher est macOS 14 Sonoma. La formule Homebrew l'exige, et surtout MLX, la brique Apple sur laquelle tout repose, ne publie de paquets macOS que pour les versions 14, 15 et 26. Sur un Mac resté en Ventura, ça cassera donc à l'installation des dépendances, quel que soit le chemin choisi.

Dernier point à avoir en tête, c'est pensé pour votre machine à vous et pas pour un serveur. Vous n'y trouverez donc ni authentification multi-utilisateurs, ni quotas de requêtes.

Étape 1 : Installer Rapid-MLX

Le plus simple, c'est Homebrew :

brew install rapid-mlx

Si vous gérez déjà vos environnements Python vous-même, les autres chemins existent :

uv tool install rapid-mlx@latest
python3.12 -m pip install rapid-mlx

Il y a aussi un installeur en une ligne (curl -fsSL https://rapidmlx.com/install.sh | bash) qui détecte votre RAM et vous propose un modèle adapté. Il crée un venv isolé dans ~/.rapid-mlx/ et pose le binaire dans ~/.local/bin/. Un curl | bash reste un curl | bash. La formule Homebrew fait exactement le même boulot, donc l'installeur en ligne perd de son intérêt.

L'installation de base pèse dans les 460 Mo et la vision, l'audio et les embeddings sont des extras optionnels, vous les ajouterez seulement si vous en avez l'usage.

Étape 2 : Choisir un modèle qui tient dans votre RAM

C'est là que la plupart des gens se plantent, en chargeant un modèle trop gros et en concluant que "ça rame". Sur Mac, la RAM est unifiée, donc le modèle mange directement dans la mémoire que se partagent le CPU et le GPU.

Les paliers recommandés par le projet :

RAMModèle conseillé
8 à 23 Go`qwen3.5-4b-4bit`
24 à 47 Go`gpt-oss-20b-mxfp4-q8`
48 à 95 Go`qwen3.6-35b-8bit`
96 Go et plus`gpt-oss-120b-mxfp4-q8`

Le catalogue complet se liste avec la commande rapid-mlx models, et rapid-mlx info <alias> vous donne le profil détaillé d'un modèle. Si vous voulez sortir du catalogue maison, le filtre matériel de Hugging Face que je vous montrais fin juin fait exactement ce tri à votre place.

Pour utiliser un autre modèle que celui par défaut, il suffit de reprendre l'alias affiché par rapid-mlx models et de le passer en argument. Et si vous préférez télécharger les poids à l'avance, sans rien lancer, c'est le boulot de rapid-mlx pull, qui accepte aussi bien un alias du catalogue qu'un identifiant Hugging Face :

rapid-mlx pull qwen3.5-9b-4bit

Le modèle atterrit dans le cache Hugging Face de votre machine, et ensuite rapid-mlx chat qwen3.5-9b-4bit ou rapid-mlx serve qwen3.5-9b-4bit chargeront ce modèle-là. Le pull préalable reste facultatif, chat et serve téléchargent d'eux-mêmes ce qui manque, mais autant rapatrier les gigas tranquillement avant plutôt qu'au moment où vous voulez bosser.

Étape 3 : Vérifier que ça tourne

Avant de bricoler des intégrations, testez en direct :

rapid-mlx chat

Ça part sur qwen3.5-4b-4bit par défaut, télécharge les poids au premier lancement (comptez 2,5 Go) et vous lâche dans une interface (REPL). /help listera les commandes slash, et /exit vous permettra de quitter le chat.

Une subtilité qui évite de mal interpréter ce premier test, c'est que dans le chat, le raisonnement est coupé par défaut, histoire que le modèle ne vous déballe pas sa réflexion à l'écran. En mode serveur par contre c'est l'inverse, et ça change la vitesse ressentie du tout au tout. J'y reviens plus bas.

Étape 4 : Lancer le serveur

Le vrai intérêt, c'est le mode serveur :

rapid-mlx serve qwen3.5-4b-4bit

Vous récupérez un endpoint sur http://localhost:8000. Le test qui confirme que tout est en place :

curl http://localhost:8000/v1/chat/completions \
 -H "Content-Type: application/json" \
 -d '{"model":"default","messages":[{"role":"user","content":"Dis bonjour !!"}]}'

Et côté Python, vous gardez le SDK OpenAI tel quel, seule l'URL de base change :

from openai import OpenAI
client = OpenAI(base_url="http://localhost:8000/v1", api_key="not-needed")
print(client.chat.completions.create(
 model="default",
 messages=[{"role": "user", "content": "Say hello"}],
).choices[0].message.content)

Pointez n'importe quel client compatible OpenAI sur http://localhost:8000/v1 et c'est réglé. Cursor, Aider, LibreChat, Open WebUI, LangChain, tous marchent avec ce seul changement d'URL. Il y a aussi /v1/embeddings pour du RAG local et /v1/responses pour le Codex CLI.

Étape 5 : Brancher Claude Code dessus

C'est le morceau le plus intéressant du lot, et il tient en deux variables d'environnement. Serveur lancé d'un côté, puis dans un autre terminal :

ANTHROPIC_BASE_URL=http://localhost:8000 ANTHROPIC_API_KEY=not-needed claude

Attention quand même, l'URL de base doit être la racine, sans /v1 à la fin. Le SDK Anthropic ajoute /v1/messages tout seul, donc si vous mettez /v1 vous obtenez /v1/v1/messages et ça casse.

Depuis la 0.10.14, l'appel d'outils passe par une grammaire contrainte activée par défaut, donc plus besoin de bidouiller un --tool-call-parser à la main pour que les tool calls soient parsables. Pour du Claude Code sérieux, visez plutôt un gros modèle, la doc officielle recommande par exemple qwen3.6-35b-4bit en exemple.

Quand ça coince

Le réflexe à avoir avant de chercher ailleurs :

rapid-mlx doctor

Les trois pannes les plus courantes sont toujours les mêmes.

Débit décevant côté serveur, c'est le raisonnement : les Qwen 3.5 et 3.6 démarrent en mode réflexion, donc ils pensent à voix haute avant de répondre, et --no-think règle l'affaire.

Plantage mémoire, votre modèle est trop gros pour la RAM disponible, redescendez d'un palier ou prenez une quantification plus agressive. Appels d'outils qui arrivent en texte brut, la récupération automatique gère la plupart des cas, sinon vous forcez le parser correspondant à votre modèle.

Voilà, grâce à ça, votre Mac est maintenant un serveur d'IA super rapide ! Plus de facture au token, et vos prompts ne sortent plus de la pièce.

Merci à Philobois pour le lien !

  • ✇Korben
  • Piloter un fauteuil par la pensée, sans Musk ni chirurgie
    Neuralink a mis en ligne cette semaine une vidéo où des participants paralysés font rouler un fauteuil électrique par la pensée. Vous allez voir, c'est assez bluffant. L'implant décode l'intention de bouger et déplace un curseur sur un écran qui affiche la vue de la caméra devant le fauteuil. Curseur vers le haut, le fauteuil avance, vers le bas il recule, à gauche et à droite pour tourner. Le cerveau dirige un curseur, et ce sont ces mouvements qui dirigent le fauteuil.

Piloter un fauteuil par la pensée, sans Musk ni chirurgie

Par : Korben ✨
24 juillet 2026 à 20:18

Neuralink a mis en ligne cette semaine une vidéo où des participants paralysés font rouler un fauteuil électrique par la pensée. Vous allez voir, c'est assez bluffant.

L'implant décode l'intention de bouger et déplace un curseur sur un écran qui affiche la vue de la caméra devant le fauteuil. Curseur vers le haut, le fauteuil avance, vers le bas il recule, à gauche et à droite pour tourner. Le cerveau dirige un curseur, et ce sont ces mouvements qui dirigent le fauteuil.

Ce clic autorise une connexion à Google : adresse IP transmise et traceurs possibles. En savoir plus Voir cette vidéo sur YouTube

Le matos utilisé ici, c'est l'implant N1. Un boîtier du diamètre d'une pièce de 1 euro, avec 1024 électrodes réparties sur 64 fils souples plus fins qu'un cheveu. Le boîtier vient se loger dans le crâne, et seuls les fils descendent dans le cortex moteur, la zone qui planifie vos mouvements.

Pour les poser, il est nécessaire d'utiliser un robot chirurgical. On retire un disque d'os du crâne ainsi que la dure-mère , le robot enfonce les fils un par un, puis la peau se referme par-dessus l'implant.

Aujourd'hui, 26 personnes dans le monde portent ce N1. Sept d'entre elles sont britanniques, opérées entre octobre et décembre 2025 à Londres dans le cadre de l' étude GB-PRIME . Et pour le moment, il n'y a eu aucune autorisation de mise sur le marché, mais uniquement des essais cliniques autorisés.

En 2019, je vous parlais déjà de Neuralink et de sa puce N1, avec son robot qui coud des fils dans le crâne et ses premiers essais humains annoncés pour l'année suivante. Le premier patient jouait à Civilization VI par la pensée. C'était impressionnant, mais ça se faisait à la vitesse d'un escargot sous Xanax.

Bon, et puis surtout, désolé hein, mais y'a Elon dans l'équation et pour moi c'est difficile de s'extasier devant cette démo quand on connaît ce personnage, le cirque permanent sur son réseau, les promesses balancées à la truelle et son appétence pour le fascisme .

Puis y'a un petit truc que personne ne soulève, c'est qu'on peut faire rouler un fauteuil par la pensée sans ouvrir le moindre crâne depuis novembre 2022. En effet, une équipe menée par José del R. Millán, prof à l'université du Texas à Austin, a sorti ça dans la revue iScience . On y apprend que 3 personnes tétraplégiques pilotent un fauteuil à l'aide d'un bonnet d'électrodes EEG posé sur le crâne. Celui-ci lit l'activité électrique du cerveau depuis l'extérieur et comme ça, y'a pas besoin d'opération, ni de robot qui perce l'os. Un peu de gel sur les électrodes, quelqu'un pour installer le bonnet, et ça peut s'enlever sans problème.

Le non-invasif n'est pas magique non plus puisque les trois participants se sont entraînés trois fois par semaine pendant deux à cinq mois. Ils ont démarré autour de 45 % de précision de décodage, et tout le monde n'a pas forcément atteint le même niveau de "pilotage".

Mais peu importe, on a d'un côté une entreprise qui vous ouvre la boîte crânienne et qui fait la une avec des vidéos bien calibrées pour le buzz et de l'autre des labos publics qui font rouler le même fauteuil 4 ans plus tôt sans opération, en publiant tout dans une revue en accès libre.

Et ça personne n'en parle.

Breeef... La recherche passe par différents chemins, et la plupart des équipes scientifiques n'ont pas de service com'. Des cellules souches qui réparent une moelle épinière , des chercheurs qui décodent la parole intérieure , tout ça sort en général sans teaser vidéo, ne l'oubliez pas...

Source : Interesting Engineering

  • ✇Korben
  • Odysseus - L'IA auto-hébergée de PewDiePie enfin rapide sur Mac
    Odysseus, c'est le workspace IA que PewDiePie a balancé sur GitHub fin mai. Chat, agents, recherche web, email, calendrier, notes et documents, tout est réuni dans un superbe cockpit auto-hébergé dans lequel les modèles et l'historique peuvent rester sur VOTRE machine. Vous avez aussi un éditeur Markdown avec historique de versions, une génération d'images intégrée, et un mode Compare pour opposer deux modèles côte à côte en aveugle (exclusion faite des services tiers liés à la recherche web, l'

Odysseus - L'IA auto-hébergée de PewDiePie enfin rapide sur Mac

Par : Korben ✨
24 juillet 2026 à 16:01

Odysseus, c'est le workspace IA que PewDiePie a balancé sur GitHub fin mai. Chat, agents, recherche web, email, calendrier, notes et documents, tout est réuni dans un superbe cockpit auto-hébergé dans lequel les modèles et l'historique peuvent rester sur VOTRE machine. Vous avez aussi un éditeur Markdown avec historique de versions, une génération d'images intégrée, et un mode Compare pour opposer deux modèles côte à côte en aveugle (exclusion faite des services tiers liés à la recherche web, l'email et le calendrier, évidemment...).

J'ai voulu l'installer sur mon Mac, mais j'ai quand même rencontré un petit piège qui a failli transformer l'expérience en échec... Voici donc comment le faire tourner correctement sous Mac + quelques idées de ce que vous allez pouvoir faire avec ce truc.

Avant de commencer

Odysseus évolue vite. La branche main est stable et testée, mais la branche dev peut casser n'importe quand. Privilégiez la branche stable en la clonant explicitement :

git clone https://github.com/odysseus-dev/odysseus.git
cd odysseus
git checkout main

Étape 1 : Oubliez Docker sur Mac

Sur Apple Silicon, Docker ne peut pas accéder au GPU Metal. Les modèles tournent sur le CPU, et ça rame comme pas permis. Du coup, sur Mac, on est obligé d'installer ça en natif.

Étape 2 : Installer Odysseus en 2 commandes

Ouvrez un terminal et lancez ça :

git clone https://github.com/odysseus-dev/odysseus.git
cd odysseus
./start-macos.sh

Le script installe alors les dépendances et démarre le serveur. Sur mon Mac, AirPlay squattait le port 7000, donc l'interface s'est ouverte automatiquement sur http://127.0.0.1:7860. Ensuite, au premier lancement, il faut renseigner un nouveau mot de passe pour le compte admin.

Si vous accédez à Odysseus depuis une autre machine (VPS ou serveur distant), ouvrez un tunnel SSH plutôt que d'exposer le port directement sur Internet :

ssh -L 7860:127.0.0.1:7860 user@votre-serveur.com

Ensuite, accédez simplement à http://127.0.0.1:7860 en local. C'est plus sécurisé que d'ouvrir le port sur le public.

Étape 3 : Un modèle rapide, genre Qwen

Pour du rapidos sans que ça devienne stupidos, j'ai choisi pour mes tests Qwen3-30B-A3B. Ce modèle n'active qu'une partie de ses paramètres à chaque réponse, ce qui colle bien à la RAM unifiée d'un gros Mac.

La première fonctionnalité assez cool dans cet outil, c'est le Cookbook qui permet de télécharger des modèles adaptés à notre config. Ce dernier a correctement reconnu mon M4 Max et ses 128 Go mais s'est ensuite planté comme une merde sur llama.cpp avec cette option --flash-attn auto invalide. Après avoir retiré le paramètre, le serveur restait aux abonnés absents tandis que l'interface l'affichait toujours comme actif. Bref, j'ai laissé tombé llama.cpp.

Le Cookbook reconnaît bien le M4 Max et propose des modèles adaptés. Le lancement, lui, a planté.

L'autre option qui s'est offerte à moi, ça a été Ollama ( je vous ai montré comment l'installer par ici ). Vous récupérez le modèle qui vous intéresse avec et vous lancez le serveur ouvert sur le réseau local :

ollama pull qwen3:30b-a3b
OLLAMA_HOST=0.0.0.0:11434 ollama serve

Dans les réglages d'Odysseus, ajoutez ensuite http://localhost:11434/v1. Et hop, ça fonctionne !! La version 1.0.2 propose aussi maintenant MLX dans le Cookbook, mais Ollama reste le chemin qui a vraiment tenu bon durant mes tests. Vous aurez peut-être plus de chances que moi.

L'ajout manuel de l'endpoint Ollama a été le chemin le plus fiable.

Bonus : Si vous n'avez pas de GPU ou que vous préférez la fiabilité, vous pouvez aussi connecter une API externe comme OpenAI ou OpenRouter. Dans les réglages, ajoutez simplement votre clé API et Odysseus basculera sur ces modèles cloud. C'est moins gratuit que du local, mais ça marche sans galère.

3 cas d'usages

Alors, cet outil fait plein de choses et on peut l'utiliser vraiment pour ce qu'on veut, mais pour ma part, je vous ai isolé trois cas d'usage compatibles avec mon activité.

Premier scénario, la tournée de veille du matin. Je lui donne les liens reçus durant la nuit, il les classe par sujet, repère les doublons et propose trois angles courts. Je garde les sources dans un document local, avec les objections et les points à vérifier. Et comme vous l'avez vu sur mes captures d'écran, le chat sait déjà faire du brainstorming puisqu'il m'a sorti trois angles exploitables en quelques secondes...

Trois angles d'articles en 29 secondes, avec un brouillon versionné ouvert à droite.

Deuxième scénario, un dossier par article. J'y range le brief, les liens primaires, les citations, les captures et les versions du texte. L'éditeur Markdown récupère le titre depuis le premier H1 et conserve l'historique. Avec deux modèles configurés, le mode Compare permet d'opposer deux intros ou deux plans côte à côte sans envoyer le brouillon chez un fournisseur.

Troisième scénario, le secrétaire de rédaction local. Il surveillerait une boîte dédiée aux alertes de sécurité, préparerait la liste des sujets urgents et poserait des rappels dans le calendrier. Sur le papier, c'est exactement le type de corvées chiantes qu'un agent devrait pouvoir absorber mais en pratique, jamais de la vie, je ne lui laisse faire des actions automatiques comme envoyer des mails, ou gérer mon calendrier. Pour moi, c'est pas encore assez safe.

J'ai demandé à l'agent de retrouver un document et de le résumer. Il a dépensé près de 1 800 jetons à deviner comment appeler manage_documents, sans jamais lancer l'outil de recherche. De son côté, le calendrier a terminé sur un Could not extract JSON puis la recherche web a trouvé le bon dépôt GitHub, mais le modèle en a choisi un faux.

Le pompon, c'est la fonctionnalité Deep Research. Après 4 minutes de boulot, ça m'a généré 13 pages issues de 6 sources retenues. L'outil a donné la bonne conclusion au document, mais ensuite, a totalement inventé une vidéo, un numéro de marque et plusieurs statistiques. Donc pour l'utiliser dans un cadre journalistique, sans contre-vérification intégrale, ça ne sera pas possible.

Le rapport affirme que le site est vide alors qu'il contient un guide complet. Jolie hallucination, présentée comme une preuve.

Bon, je suis content de l'avoir testé mais Odysseus ressemble encore à un super cockpit dont plusieurs boutons ne sont pas encore reliés au moteur. Le chat via Ollama et les documents sont utilisables, mais le Cookbook, les agents, le calendrier et la recherche factuelle restent trop fragiles. Mais attention, n'allez pas croire que je critique le travail de PewDiePie, car le projet est encore très jeune, donc tous ces petits défauts sont normaux. Le potentiel d'Odysseus est énorme, mais pour le moment, je ne suis pas prêt de lui confier la gestion de mes sources, ou la rédaction d'un brouillon d'article sans perdre des heures à tout vérifier.

Voilà, le code est sur GitHub sous licence AGPL . Je vous laisse découvrir ça !

Merci à Remouk pour le partage et pour finir, je vous laisse avec cette vidéo de Renaud Dékode qui a aussi testé Odysseus :

Ce clic autorise une connexion à Google : adresse IP transmise et traceurs possibles. En savoir plus Voir cette vidéo sur YouTube

  • ✇Korben
  • Mage-Flow - Le modèle de diffusion de Microsoft qui tourne sur Mac
    Microsoft vient de publier Mage-Flow, un modèle de génération d'images de 4 milliards de paramètres, et dont l'objectif est d'atteindre la qualité des gros modèles sans en avoir la taille. Là où FLUX.2 embarque 32 milliards de paramètres, Qwen-Image 20 et Z-Image 6, Mage-Flow joue dans la même cour mais seulement avec 4 milliards de paramètres. Le pari de Microsoft, c'est ce qu'on appelle le co-design. Au lieu d'empiler les paramètres, Mage-Flow mise sur deux briques taillées ense

Mage-Flow - Le modèle de diffusion de Microsoft qui tourne sur Mac

Par : Korben ✨
23 juillet 2026 à 11:44

Microsoft vient de publier Mage-Flow, un modèle de génération d'images de 4 milliards de paramètres, et dont l'objectif est d'atteindre la qualité des gros modèles sans en avoir la taille. Là où FLUX.2 embarque 32 milliards de paramètres, Qwen-Image 20 et Z-Image 6, Mage-Flow joue dans la même cour mais seulement avec 4 milliards de paramètres.

Le pari de Microsoft, c'est ce qu'on appelle le co-design. Au lieu d'empiler les paramètres, Mage-Flow mise sur deux briques taillées ensemble. D'abord Mage-VAE, un tokenizer latent qui encode et décode les images avec 12 à 22 fois moins de calcul par pixel que le VAE de FLUX.2, à qualité de reconstruction équivalente. C'est ce qui débloque la haute résolution, habituellement le point où ces modèles s'étranglent.

Et ensuite un transformer de diffusion multimodal baptisé NR-MMDiT, entraîné en rectified flow matching, avec Qwen3-VL comme encodeur de texte. Un seul checkpoint génère alors de 512 à 2048 pixels, dans n'importe quel ratio, jusqu'à des formats extrêmes en 4:1 sans buckets ni padding. Vous demandez du 512×2048 ou du 2048×512, il vous le sort.

Le modèle existe en trois saveurs. La Base qui tourne en 30 étapes de débruitage, la version RL-aligned à 20 étapes, et la Turbo distillée qui crache une image en 4 étapes seulement. Et il y a son jumeau, Mage-Flow-Edit, qui fait de l'édition d'image par instruction. Vous lui donnez une photo et une consigne en langage naturel, et lui la modifie. Le tout sous licence MIT, poids libres sur Hugging Face, usage commercial compris.

Côté chiffres officiels, tout vient d'un A100 donc c'est pas représentatif sur nos machins mais en gros, on est à 0,59 seconde par image en Turbo, avec un pic mémoire de 18 à 20 Go. Sauf que moi, je n'ai pas d'A100. J'ai un Mac Studio. Et le dépôt ne parle que de CUDA. La doc d'install vous fait compiler flash-attn, qui est une extension qui a besoin d'un toolkit NVIDIA. Zéro mention d'Apple Silicon, zéro mention de MPS, et les exemples sont tous en mode device="cuda" en dur. Bref, pour le moment, je ne suis pas invité à la fête.

Mais en fouillant le code, j'ai trouvé la porte de sortie. Un fichier planqué dans les modules expose un backend alternatif basé sur scaled_dot_product_attention, le mécanisme d'attention natif de PyTorch, prévu JUSTEMENT pour quand flash-attn n'est pas dispo.

Et ce backend-là, il tourne nickel sur Metal. Le piège, c'est que le modèle réclame lui aussi flash-attn par défaut à deux endroits : le transformer, mais aussi l'encodeur Qwen3-VL. Le transformer accepte qu'on bascule plus tard alors que l'encodeur non. Lui, il lit son réglage au moment où il se construit et plante si flash-attn manque. Il faut donc forcer le mode SDPA avant de charger le modèle.

Voici ce que j'ai fait tourner, pour de vrai. On monte un environnement Python, on installe tout sauf flash-attn :

python3 -m venv mageflow && source mageflow/bin/activate

pip install torch torchvision diffusers==0.38.0 "transformers>=5.3,<5.6" accelerate safetensors huggingface_hub einops pydantic pillow loguru

pip install "git+https://github.com/microsoft/Mage.git#subdirectory=mage_flow" --no-deps

Une fois que c'est fait, y'a plus qu'à vous créer un petit script mage.py par exemple qui basculera l'attention sur SDPA avant le chargement, pointera sur mps et génèrera votre image :

import os
os.environ["PYTORCH_ENABLE_MPS_FALLBACK"] = "1"
from mage_flow.models.mage_flow import ModelConfig
ModelConfig.model_fields["attn_type"].default = "sdpa" # AVANT de charger, sinon Qwen3-VL exige flash-attn
ModelConfig.model_rebuild(force=True)

from mage_flow import MageFlowPipeline
pipe = MageFlowPipeline.from_pretrained("microsoft/Mage-Flow-Turbo", device="mps")
img = pipe.generate(["un barista avec un chapeau de cowboy qui réalise un latte art, lumière chaude"], heights=[1024], widths=[1024], steps=4, cfg=1.0)[0]
img.save("out.png")

Ensuite, lancez le script :

python3 mage.py

Le PYTORCH_ENABLE_MPS_FALLBACK sert de filet comme ça si une opération n'existe pas côté Metal, elle basculera sur le CPU au lieu de tout faire tomber. Premier lancement, le modèle se téléchargera, donc comptez une bonne dizaine de Go entre le transformer 4B, l'encodeur Qwen3-VL et le VAE.

Et ça marche !!! Sur mon M4 Max de 128 Go, le modèle charge en une vingtaine de secondes puis génère une image 1024×1024 en 10 secondes une fois chaud.

Mon barista à chapeau de cowboy est sorti impeccable.

Ma toute première génération Mage-Flow sur le Mac Studio : un barista, 1024x1024, 4 etapes en Turbo.

Cette image 1920x1080 a été générée en moins de 6 secondes,

Pour du batch industriel, une carte NVIDIA restera toujours mieux mais pour générer tranquillement chez soi des petites images sans envoyer ses prompts dans le cloud, c'est parfaitement utilisable, et ça rejoint la logique de l'IA qui tourne en local sur votre Mac que je creuse depuis un moment.

Deux détails à connaître avant de vous lancer. Chaque prompt passe par un filtre de contenu obligatoire côté encodeur, sans option pour le désactiver : les prompts jugés interdits reviennent en images de refus. Et chaque image générée porte un watermark Gaussian-Shading planqué dans le bruit initial, lui non plus désactivable. Hé oui, Microsoft trace ses sorties, donc autant le savoir.

Y'a des garde-fous ! J'ai donc très hâte que ce modèle se fasse "libérer".

Reste que c'est un très joli cadeau de la part de Microsoft ! Un modèle libre, compact, qui gère l'édition et n'importe quel ratio, et qui tient sur une machine Apple avec un petit réglage bien caché ^^...

ps: L'image d'illustration de cet article a été générée avec ce modèle.

  • ✇Korben
  • Ubuntu 26.04 planque ses mises à jour (et c'est fait exprès)
    Ubuntu 26.04 LTS est disponible depuis avril, et si vous l'avez installée, vous avez peut-être remarqué un truc : **Plus aucune notification de mise à jour !**L'icône qui vous prévenait dans la barre du haut a disparu, les pop-ups aussi. Rassurez-vous, ce n'est pas un bug mais un choix de design assumé par Canonical. La clé show-updates-status-icon du paquet update-notifier est passée à false par défaut, du coup, votre système ne vous signale plus rien quand des paquets attendent d'être installé

Ubuntu 26.04 planque ses mises à jour (et c'est fait exprès)

Par : Korben ✨
23 juillet 2026 à 09:23

Ubuntu 26.04 LTS est disponible depuis avril, et si vous l'avez installée, vous avez peut-être remarqué un truc : **Plus aucune notification de mise à jour !**L'icône qui vous prévenait dans la barre du haut a disparu, les pop-ups aussi. Rassurez-vous, ce n'est pas un bug mais un choix de design assumé par Canonical.

La clé show-updates-status-icon du paquet update-notifier est passée à false par défaut, du coup, votre système ne vous signale plus rien quand des paquets attendent d'être installés. Pour le savoir, il faut ouvrir un terminal ou lancer l'App Center à la main.

Je précise quand même un truc avant que tout le monde s'énerve, parce que beaucoup de Linuxiens n'aiment pas le changement ^^. Sachez que cette icône de notification est toute récente et n'existait pas sur Ubuntu 24.04, elle est arrivée avec la 25.10 pour remplacer le vieux pop-up intrusif du Software Updater. Donc cette 26.04 ne supprime pas une fonction historique, mais achève juste un machin qui avait à peine un an.

Donc avant de changer de distro en panique, non, votre sécurité n'est pas en jeu. Ubuntu garde unattended-upgrades, le service qui installe les correctifs de sécurité tout seul en arrière-plan, actif par défaut. Les failles critiques continuent donc d'être colmatées, c'est juste que vous n'êtes plus au courant quand ça se produit.

Sauf qu'il y a un petit bémol bien réel : LTS. Une version LTS, c'est celle qu'on garde 5 ans, souvent installée sur le PC de quelqu'un qui n'ouvrira jamais un terminal (coucou l'ordi de vos parents). Et unattended-upgrades ne gère par défaut que la sécurité, et pas les mises à jour applicatives. Vos applis en Snap comme Firefox continuent donc bien de se mettre à jour toutes seules dans leur coin, mais vos paquets .deb non critiques, eux, vont s'empiler sans que personne ne vous prévienne. C'est la seule vraie critique à faire à Canonical sur ce coup. Après c'est un éditeur coutumier des choix qui divisent , donc on commence à avoir l'habitude, mais bon voilà, il faudra penser à faire les mises à jour non critiques.

Le plus gênant, c'est qu'il n'y a pas non plus de bouton dans les réglages pour réactiver cette icône. La seule voie passe donc par gsettings, et la valeur par défaut, elle, reste sur off.

Donc voici comment faire si l'idée de piloter vos mises à jour à l'aveugle vous refroidit. Une ligne de commande et l'icône revient :

gsettings set com.ubuntu.update-notifier show-updates-status-icon true

Voilà, voilà, vous retrouvez vos notifications comme avant sans avoir besoin de réinstaller quoi que ce soit.

Bref, rien de dramatique, mais un défaut trèèèès discutable notamment sur les versions LTS qu'on garde des années.

Source

  • ✇Korben
  • Portable et cancer du cerveau - L'OMS a fini de chercher
    Depuis 30 ans, vous vous demandez peut-être si coller un téléphone contre votre oreille peut finir par vous refiler une tumeur au cerveau ? Hé bien l'OMS a voulu en avoir le cœur net et a commandé 13 grandes enquêtes sur la question. Et youpiiii, elles viennent toutes d'aboutir et de sortir, et le bilan vient d'être publié dans le New Zealand Medical Journal. Et accrochez-vous bien les complotistes : Les gens qui utilisent un portable n'ont pas plus de tumeurs au cerveau que les autres. Une de c

Portable et cancer du cerveau - L'OMS a fini de chercher

Par : Korben ✨
22 juillet 2026 à 11:56

Depuis 30 ans, vous vous demandez peut-être si coller un téléphone contre votre oreille peut finir par vous refiler une tumeur au cerveau ?

Hé bien l'OMS a voulu en avoir le cœur net et a commandé 13 grandes enquêtes sur la question. Et youpiiii, elles viennent toutes d'aboutir et de sortir, et le bilan vient d'être publié dans le New Zealand Medical Journal.

Et accrochez-vous bien les complotistes : Les gens qui utilisent un portable n'ont pas plus de tumeurs au cerveau que les autres. Une de ces études, pilotée par Ken Karipidis de l'agence australienne de radioprotection, a même passé au crible 63 autres études précédentes menées dans 22 pays, sur des données qui remontent à 1994, et même là, RIEN !

Alors oui, chez les rats mâles exposés en labo, on trouve bien des tumeurs, sauf que les bestioles encaissaient 9 heures d'ondes par jour, 7 jours sur 7, à des doses des dizaines de fois supérieures à ce que la loi autorise pour vous. Difficile donc d'en tirer quoi que ce soit pour votre iPhone.

Puis surtout, en Nouvelle-Zélande, les tumeurs du cerveau les plus courantes ont même légèrement baissé entre 1995 et 2020, pile la période où le portable est devenu universel. Donc si les ondes rendaient vraiment malade, ça se verrait dans ces courbes.

En France, l'ANSES est arrivée à la même conclusion en octobre 2025, après avoir épluché un millier d'études. Il n'y a aucun lien de causalité entre le cancer et le smartphone, mis à part le cancer de la connerie qui ronge beaucoup de monde ^^. L'agence garde quand même ses conseils de prudence pour les enfants, genre usage modéré et kit mains libres, mais c'est plus une précaution qu'autre chose.

Du coup, le vrai risque documenté pour les gamins, il n'est pas dans le crâne mais dans l'aspect psychologique. Je vous parlais y'a pas longtemps des études sur les smartphones avant 13 ans , et là les signaux sont autrement plus solides. Et si les ondes vous angoissent malgré tout, allez lire mon article sur Green Bank , la ville américaine où le Wi-Fi est interdit !

Bref, rassurez-vous, votre portable ne vous ronge pas le crâne. Il vous bouffe surtout votre temps de cerveau disponible, et ça c'est un autre débat...

Source

  • ✇Korben
  • J'ai créé mon propre outil de stats sans tracking
    Un site sans cookie de mesure d'audience et sans bandeau de consentement, c'est reposant je trouve... Sauf qu'à cause de ça, bah je ne savais plus trop combien de gens venaient me lire tous les jours. Relou hein ? C'était ma situation depuis un moment déjà, vu que tout ce qui servait à mesurer l'audience a dégagé de korben.info il y a un bon bout de temps. Alors faute de mieux, je me suis rabattu sur AWStats, qui lit bêtement les logs Apache du serveur mais bon, c'est pas terrible, parce qu'avec

J'ai créé mon propre outil de stats sans tracking

Par : Korben ✨
21 juillet 2026 à 17:34

Un site sans cookie de mesure d'audience et sans bandeau de consentement, c'est reposant je trouve... Sauf qu'à cause de ça, bah je ne savais plus trop combien de gens venaient me lire tous les jours. Relou hein ?

C'était ma situation depuis un moment déjà, vu que tout ce qui servait à mesurer l'audience a dégagé de korben.info il y a un bon bout de temps. Alors faute de mieux, je me suis rabattu sur AWStats, qui lit bêtement les logs Apache du serveur mais bon, c'est pas terrible, parce qu'avec le cache de Cloudflare, il y a une grosse partie de mon trafic qui n'est pas pris en compte.

En effet, quand Cloudflare possède une copie valide de la page dans son cache, il peut la renvoyer directement sans contacter le serveur d'origine. Vous êtes donc bien un visiteur réel, mais Apache ne voit aucune requête et AWStats ne vous comptabilise pas. Du coup, tous les outils fondés exclusivement sur les logs d'origine sous-estiment la part du trafic absorbée par le cache.

Après il y a bien le classique Google Analytics, mais bon même configuré en mode full RGPD, ça reste Google et ça appelle quand même un service tiers aux US... Vous connaissez aussi déjà des alternatives propres, puisque je vous ai parlé de Matomo, Plausible et de Vince Analytics , mais elles ajoutent toutes une mesure côté navigateur, avec un script, un pixel ou un stockage local (le localstorage) et moi, je ne voulais aucun outil d'audience de plus dans vos pages !

De son côté, Cloudflare lui, voit chaque requête HTTP qui atteint son réseau, y compris celles auxquelles son cache répond. Ses chiffres couvrent donc beaucoup mieux le trafic HTTP que mes logs d'origine. Le souci, c'est que son dashboard, je ne l'aime pas. Je le trouve incomplet, mal foutu, chiant à utiliser, et il ne montre pas ce que j'ai envie de voir.

Donc, histoire d'avoir ce que je voulais, j'ai fini par coder le mien. Enfin, entièrement vibe codé et ça tourne aussi bien sur un serveur qu'en local sur une machine de bureau.

Petite parenthèse pendant que j'y suis, vous ne le savez peut-être pas mais depuis que ChatGPT a débarqué dans nos vies fin 2022, tout ce que je développe moi-même sur ce site et l'ensemble de mes outils internes sont vibes codés avec des LLMs comme ceux d'OpenAI et d'Anthropic. C'était une purge au tout début et maintenant ça s'est tellement amélioré et je me suis tellement spécialisé là-dedans, que le code n'est devenu qu'une formalité. Ne hurlez pas, mon site est statique et j'envoie pas de fusée dans l'espace !

Mon collecteur s'exécute en local, cause à une API, et il n'envoie pas une seule ligne de mesure dans votre navigateur. Bref, que mon backend soit écrit avec un LLM, à la main ou en Brainfuck, vous chargez exactement la même chose de mon outil de stats, c'est-à-dire rien du tout. La garantie est donc architecturale et pas une question de talent.

Et surtout, mon outil de stats n'ajoute aucune mesure dans votre navigateur. Aucun JavaScript ni cookie supplémentaire n'est posé par mon outil. À la place, il lit l'API GraphQL Analytics de Cloudflare, en lecture seule et récupère des compteurs déjà agrégés par jour et par dimension. Cela veut dire par exemple, que quand je récupère le nombre "nombre d'IP distinctes par jour", je ne récupère pas les IPs en tant que telles mais juste un total que Cloudflare me communique et qu'il a déjà traité en amont.

Et vous n'êtes pas obligés de me croire sur parole, parce que c'est vérifiable en 10 secondes... Ouvrez l'inspecteur de votre navigateur, onglet Réseau, et rechargez cette page. Vous ne verrez aucun script de mesure d'audience, aucun appel vers un domaine tiers et aucune iframe. Même les vidéos YouTube ne se chargent qu'au moment où vous cliquez sur la vignette. Le seul truc qui bouge, c'est le compteur du footer qui télécharge un nombre, sans rien renvoyer derrière.

Attention, ce n'est pas à confondre avec Cloudflare Web Analytics et ses mesures RUM (Real User Monitoring) puisque cette fonctionnalité injecte un bout de JavaScript pour mesurer les performances ressenties dans le navigateur. Chez moi, c'est désactivé tout ça.

Maintenant soyons clairs sur un point, parce que c'est l'objection évidente et qu'elle est parfaitement légitime... Cloudflare, lui, voit bien votre adresse IP. Pas à cause de mon outil de stats, mais parce que c'est un reverse proxy et que c'est mécaniquement ce qui se passe dès qu'un site est derrière un CDN. Votre requête arrive chez eux avant d'arriver chez moi, sinon ils ne pourraient ni router, ni mettre en cache, ni bloquer une attaque. Mon outil ne change rien à ça, il se contente de lire des totaux déjà calculés et je ne récupère jamais la moindre IP. Tout est détaillé dans mes CGU, avec les bases légales, les durées et la liste des cookies de sécurité, si vous voulez le détail complet.

Mon outil et le compteur que vous pouvez retrouver dans le footer de mon site reposent sur les requêtes collectées côté serveur chez Cloudflare et sans l'analyse web, je ne peux juste pas suivre par exemple un parcours utilisateur, connaitre un taux de rebond ou évaluer les temps de chargement mesurés chez les lecteurs. Rien de grave donc...

Maintenant, il y a un souci chez Cloudflare, c'est que selon le jeu de données et le forfait que vous payez ou non, le détail ne reste interrogeable que durant une fenêtre limitée de temps. Mon outil doit donc passer chaque jour récupérer les agrégats encore disponibles et les stocker dans une base SQLite sur mon serveur ou en local, selon la façon dont on l'a déployé.

Ça me permet de garder mon propre historique agrégé. J'ai aussi activé le Super Bot Fight Mode de Cloudflare, qui réduit une large partie du trafic automatisé, mais attention, ça ne me donne pas pour autant des stats sans aucun bot. Les crawlers autorisés comme Googlebot et ceux qui passent entre les mailles du filet restent comptabilisés dans mes chiffres, exactement comme avec tous les autres outils de mesure web. Et je préfère le dire clairement plutôt que de vous vendre des chiffres "propres" qui ne le sont jamais totalement, vu qu'un filtre anti-bot ne peut retirer que les bots qu'il a détectés.

À côté de ça, j'ai aussi branché ma Google Search Console, et là non plus sans installer la moindre bibliothèque tierce... Je signe moi-même un JWT en RS256 avec le module crypto natif de Node, je l'échange contre un jeton d'accès chez Google, et le compte de service que j'utilise est restreint au scope lecture seule. Ça m'apporte des statistiques agrégées sur les impressions, les positions, les requêtes de recherche et surtout Discover !!

Si je devais résumer ça, je dirais que Cloudflare estime le volume de trafic et que Search Console montre quelles recherches produisent des impressions et des clics, même si sans aucun tracking en place, ça n'explique évidemment pas la motivation de chaque lecteur. Mais osef ! Et comme Cloudflare embarque aussi son pare-feu, j'en profite pour rapatrier des statistiques sur les événements de sécurité et les routes attaquées, comme ça, je peux tout voir au même endroit.

Maintenant, le vrai plaisir, c'est de pouvoir afficher ce que je veux dans mon propre dashboard. Par exemple, la répartition par langue, les navigateurs, d'où provient le trafic avec un joli petit camembert, les pays, l'état de mon cache, la bande passante, etc. Et quand j'ai un nouveau besoin qui me pête dans le cerveau, je peux ajouter une vue rapidement et je ne m'encombre pas de ce qui ne me sert pas.

Sans traceur placé chez vous, je ne connais donc pas les sessions, le taux de rebond, le parcours de lecture, les entonnoirs de conversion, donc impossible de savoir si vous êtes revenu hier, ni dans quel ordre vous avez lu 3 articles. Mais je m'en tape complètement puisque ces métriques ne m'ont jamais servi à rien.

Ce que je veux connaitre, c'est surtout l'ordre de grandeur de l'audience et le nombre de pages demandées. Le parcours individuel et les entonnoirs de conversion, c'est surtout un besoin de régie publicitaire ou de site e-commerce, et pas d'un site comme le mien. Quand on sait que les bandeaux de cookies nous coûtent 575 millions d'heures perdues collectivement, et que l'Europe réfléchit enfin à les alléger , s'en passer n'est pas vraiment une punition.

Bref, mes stats sont maintenant plus digestes que celles d'AWStats, sans avoir à vous tracker ou vous faire charger quoi que ce soit. Ça me va donc très bien. Et si vous voulez un avant-goût de la technique derrière l'outil, j'ai montré récemment comment vous faire un compteur de fréquentation gratuit , donc n'hésitez pas à y jeter un œil...

  • ✇Korben
  • Brancher un écran LG suffit à vous coller une pub McAfee
    32 redémarrages d'affilée, 31 pubs pour McAfee, c'est le résultat du test mené par la chaîne Youtube Gamers Nexus sur un écran LG UltraGear 34GX900A-B branché à un PC tournant sous Windows. Puis au 32e démarrage, l'écran a eu la délicatesse de faire la promo d'un autre utilitaire LG, histoire de varier les plaisirs. Sauf que personne n'a installé quoi que ce soit. L'app s'appelle "LG Monitor App Installer", elle débarque toute seule quand vous branchez le moniteur, et sa fiche technique sur le M

Brancher un écran LG suffit à vous coller une pub McAfee

Par : Korben ✨
21 juillet 2026 à 11:17

32 redémarrages d'affilée, 31 pubs pour McAfee, c'est le résultat du test mené par la chaîne Youtube Gamers Nexus sur un écran LG UltraGear 34GX900A-B branché à un PC tournant sous Windows. Puis au 32e démarrage, l'écran a eu la délicatesse de faire la promo d'un autre utilitaire LG, histoire de varier les plaisirs.

Sauf que personne n'a installé quoi que ce soit. L'app s'appelle "LG Monitor App Installer", elle débarque toute seule quand vous branchez le moniteur, et sa fiche technique sur le Microsoft Store réclame deux permissions qui piquent un peu : "toutes les ressources système" et "l'accès à votre connexion Internet". Pour un truc censé régler la luminosité de votre écran, on repassera donc sur la discrétion...

Voir cette vidéo sur YouTube

La vraie question que je me suis posée en découvrant cette histoire, c'est comment diable un câble HDMI arrive à faire atterrir un programme sur la machine ? Eh bien la réponse va vous plaire, parce que ce n'est ni un virus, ni un piratage, ni une faille mais bien une fonctionnalité de Windows (spéciale dédicace à l'Autorun, lool) !! Elle s'appelle device metadata, et elle traîne dans le système depuis Windows 7, à l'époque où il s'agissait surtout d'afficher proprement l'icône et le nom de votre imprimante.

L'astuce de LG fonctionne ainsi en 4 temps. Vous branchez le périphérique. Windows part interroger un service maison, Windows Metadata and Internet Services, pour récupérer les métadonnées du matériel. Ces métadonnées contiennent un identifiant qui pointe vers une app précise du Microsoft Store. Windows télécharge les pilotes si besoin + l'app, qu'il installe dans votre menu Démarrer. Et voilà, c'est fini comme dit Jean-Louis ! Vous n'avez cliqué sur rien du tout et vous récupérez leur Adware... Elle n'est pas belle la vie ???

Les conditions pour que ça se déclenche c'est simplement d'avoir accepté les "paramètres recommandés" à l'installation de Windows, être connecté au Microsoft Store, et être en ligne. Autrement dit, la configuration par défaut de la quasi-totalité des PC grand public. Si vous êtes hors ligne au moment du branchement, pas de souci, Windows patiente et retente plus tard.

Le meilleur, c'est ce que Microsoft explique lui-même dans sa propre doc à destination des dev, que "*La fonctionnalité d'installation automatique ne prévient pas l'utilisateur quand l'app est installée. Certains utilisateurs pourraient trouver cette expérience déroutante et frustrante, et mettre une mauvaise note à votre app. *". Tu m'étonnes John !

Ça veut surtout dire que le SEUL risque que Microsoft identifie, c'est la note qu'aura l'app sur le store. Ce n'est ni notre absence de consentement, ni ce que ça pourrait impliquer pour notre ordi. La note de cette app LG est d'ailleurs merdique... La prophétie s'est réalisée !!! lol

Cerise sur le gâteau, cette techno est officiellement dépréciée. Microsoft annonce son remplacement par un autre système, mais en attendant elle tourne toujours et elle installe toujours des merdouilles, par-ci par-là...

Mais alors qu'est-ce qu'elle pousse exactement, cette app LG ?

Hé bien un truc dont personne sur cette planète n'a jamais eu besoin, à savoir un essai gratuit de 30 jours pour McAfee Scam Detector, qui bascule ensuite sur un abonnement McAfee Plus Premium, à partir de 39,99 $ l'année (!!).

Actuellement, personne ne sait combien de machines sont touchées mais par contre, ce qu'on sait, c'est que les plaintes remontent à au moins 2024 sur les forums Microsoft, et que ça ne concerne pas que les modèles récents. Un LG UltraFine 32UN880-B acheté il y a 3 ans se comporte pareil. Et ni LG ni Microsoft n'ont publié le moindre communiqué à l'heure où j'écris ces lignes... (depuis, LG m'a répondu, voir la mise à jour en fin d'article)

Aussi, vous vous dites peut-être que c'est nouveau comme pratique mais pas du tout ! Y'a que le tuyau de diffusion qui s'est modernisé car il y a plus de 10 ans déjà, en 2015, Lenovo se faisait démonter pour Superfish , un adware préinstallé qui cassait le HTTPS avec son propre certificat racine. La même année, Dell se prenait le retour de flamme d' eDellRoot , un certificat livré avec sa clé privée dans la boîte. En 2017, on découvrait qu'un pilote audio Conexant livré chez HP enregistrait gentiment les frappes clavier. Alors bien sûr, à l'époque il fallait un PC entier pour se faire refourguer toute cette camelote et c'est vrai qu'aujourd'hui, suffit d'un écran et ensuite c'est Windows Update qui vous livre le bloatware.

Petite précision au passage, parce que j'ai vu plusieurs articles qui se sont emmêlés les pinceaux. De ce que moi j'ai compris, c'est que ce mécanisme n'a rien à voir avec l'ACR de LG, cette techno qui analyse ce que vous regardez sur les TV pour cibler la pub. Ce sont bien 2 sujets distincts puisque l'ACR, c'est du tracking de contenu sur les téléviseurs alors que le sujet dont je vous parle c'est de l'installation d'application via les métadonnées de périphérique sous Windows.

Alors si vous avez un écran LG, comment se protéger de ça ?

Le plus simple s'appelle Win11Debloat , un script PowerShell qui dispose depuis peu d'une option baptisée DisableDeviceAutoAppDownload qui coupe le robinet, et qui a ajouté LGElectronics.LGMonitorApp à sa liste d'apps supprimables. Ça permet de régler les deux problèmes d'un coup.

Après si vous préférez comprendre ce que vous faites plutôt que lancer un script, sachez qu'il écrit en réalité une seule valeur dans la base de registre :

HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Device Metadata
"PreventDeviceMetadataFromNetwork"=dword:00000001

Microsoft documente officiellement ce réglage pour les éditions Pro, Entreprise et Education, où vous le retrouvez en version cliquable via gpedit.msc, dans Configuration ordinateur > Modèles d'administration > Système > Installation de périphériques, au paramètre que Microsoft appelle "Prevent automatic download of applications associated with device metadata", que vous verrez traduit dans les Windows français. Après sur Windows Home il n'y a pas d'éditeur de stratégies, et rien ne garantit noir sur blanc que la clé y soit lue. Votre repli sûr, c'est donc le bouton planqué dans Panneau de configuration > Système > Paramètres système avancés > onglet Matériel.

Ce bouton, tiens. Je vous montrais déjà comment le désactiver en 2019 , quand Windows vous demandait poliment si vous vouliez continuer à télécharger automatiquement les applications des fabricants de matériel. La question s'était donc déjà posée à l'époque et je l'avais complètement oublié...

Après, si vous voulez faire le ménage plus large sur une machine fraîchement installée, SuperMSConfig fait très bien le job, et FlyOOBE vous permet de reprendre la main dès l'écran de première configuration, là où ces fameux "paramètres recommandés" se cochent tout seuls. Parce qu'au fond, les logiciels de merde installés d'office par les constructeurs , c'est un sport qui n'a jamais vraiment pris sa retraite.

Voilà, moi je pense qu'un écran ou n'importe quel périphérique ne devrait pas avoir le droit d'installer des trucs chez vous, qui est le pire pour nous balancer de la pub !


Mise à jour du 21 juillet 2026 - LG m'a fait parvenir une réponse par l'intermédiaire de son agence de communication. Je vous la mets telle quelle :

"LG Electronics réaffirme que McAfee n'est pas installé automatiquement et n'est jamais installé sans le consentement explicite de l'utilisateur. Le programme d'installation de l'application LG Monitor est distribué via le processus officiel de distribution Windows de Microsoft, qui incluait McAfee en option. McAfee ne sera installé que si l'utilisateur choisit activement de poursuivre l'installation et donne son consentement."

Alors sur ce point précis, LG a raison, et je n'ai jamais écrit le contraire. Ce que Gamers Nexus a filmé, c'est une pop-up qui vous propose l'essai McAfee 31 fois sur 32 démarrages, pas un antivirus qui s'installe en douce dans votre dos. Il faut cliquer pour l'avoir.

Sauf que le reproche n'a jamais porté là-dessus. Le truc qui coince, c'est l'app LG Monitor elle-même, celle qui atterrit sur votre machine sans vous demander votre avis et qui réclame "toutes les ressources système". Et ça, LG ne le conteste pas du tout, LG le confirme même : "distribué via le processus officiel de distribution Windows de Microsoft", c'est exactement le mécanisme device metadata que je décris plus haut. Le consentement dont ils parlent, c'est celui pour McAfee, une fois que l'app est déjà chez vous. Je note aussi le "incluait" au passé, sans que LG précise si l'app propose encore McAfee aujourd'hui.

Deuxième partie de la réponse, LG tient à préciser que ses téléviseurs "ne collectent, n'enregistrent ni ne stockent les conversations ambiantes", et que la reconnaissance vocale est une fonctionnalité optionnelle, lancée par l'utilisateur, qu'on peut ne jamais activer. Ce qui tombe plutôt bien vu que je disais justement plus haut que la TV et l'écran PC, ce sont deux sujets différents. Je relève quand même que ce démenti parle du micro, pas de l'ACR.

Et à l'heure où j'écris cette mise à jour, LG n'a toujours rien publié de public sur le sujet. La réponse est arrivée dans ma boîte mail.

Source

  • ✇Korben
  • Le Siri caché de votre Mac se réveille en une commande
    Si vous avez installé la beta de macOS 27 Golden Gate, apparemment, vous avez déjà sur votre Mac une interface Siri complète qu'Apple a pris soin de désactiver avant de vous la livrer. Un membre du subreddit r/MacOSBeta l'a débusquée, et elle peut être rallumée rapidement grâce à une seule commande dans le Terminal. Le principe de cette interface c'est que vous sélectionnez du texte, n'importe où, et une petite icône flottante apparaît en haut à gauche de votre sélection. Vous met

Le Siri caché de votre Mac se réveille en une commande

Par : Korben ✨
21 juillet 2026 à 09:08

Si vous avez installé la beta de macOS 27 Golden Gate, apparemment, vous avez déjà sur votre Mac une interface Siri complète qu'Apple a pris soin de désactiver avant de vous la livrer. Un membre du subreddit r/MacOSBeta l'a débusquée, et elle peut être rallumée rapidement grâce à une seule commande dans le Terminal.

Le principe de cette interface c'est que vous sélectionnez du texte, n'importe où, et une petite icône flottante apparaît en haut à gauche de votre sélection. Vous mettez le pointeur de votre souris dessus, et hop, elle se déplie pour vous proposer des trucs en rapport avec Siri.

Dedans, vous avez donc les outils d'écriture maison (Rewrite, Proofread, "How does this sound?" et "Edit with Siri"), plus la génération de points clés et le résumé. Le reste s'adapte à ce que vous avez sélectionné comme ajouter des coordonnées à vos contacts, écrire un message ou un mail, créer un événement dans le calendrier, afficher un lieu dans Maps, suivre un colis ou un vol.

Pour la réveiller, une ligne dans le Terminal puis un redémarrage :

sudo mkdir -p /Library/Preferences/FeatureFlags/Domain && sudo defaults write /Library/Preferences/FeatureFlags/Domain/WritingTools LightweightUI_macOS -dict Enabled -bool true

Et si ça vous saoule, vous repassez le flag à false, toujours suivi d'un redémarrage :

sudo defaults write /Library/Preferences/FeatureFlags/Domain/WritingTools LightweightUI_macOS -dict Enabled -bool false

Sauf que vous n'allez pas y trouver un truc fini. Le flag est privé, désactivé par défaut dans la beta développeur 3 et la beta publique 1, et une bonne partie du machin ne répond tout simplement pas. Rien ne garantit non plus que cette interface arrive dans la version finale de macOS 27 cet automne. Vous bidouillez un truc encore en chantier, quoi. Cette beta a d'ailleurs déjà fait sauter le support d'Asahi Linux sur les Mac , comme Vincent vous l'a montré.

Un utilisateur note au passage que les Writing Tools ont disparu du menu contextuel classique, donc si c'est bien le cas, ce popover serait leur nouvelle maison plutôt qu'un ajout, mais Apple n'a rien confirmé là-dessus.

Le vrai truc à savoir, si vous êtes en France, c'est que vous avez le droit d'y toucher. Apple a confirmé le 8 juin que les utilisateurs européens auraient bien accès à Siri AI sur macOS 27 et visionOS 27, alors que le nouvel assistant reste bloqué sur iOS 27, iPadOS 27 et watchOS 27 au nom du DMA. Vincent nous racontait le renvoi de balle entre Bruxelles et Cupertino sur ce blocage, du coup, votre iPhone européen n'y aura pas droit à la sortie, votre Mac si. Allez comprendre !

En tout cas, je trouve l'idée de ce menu plutôt bonne. J'espère que ça se concrétisera. Bref, si vous avez une machine de test sur la version beta, amusez-vous bien !

Source : MacRumors

  • ✇Korben
  • Un demi-million de domaines anti-pub stockés dans 50 Ko de RAM
    Pi-hole sur un Raspberry Pi, c'est cool, mais ça vous coûte quand même quelques dizaines d'euros (lien affilié) et ça squatte une prise en permanence. C'est pourquoi M-Abozaid a fait tenir la même chose dans une clé ESP32-C3 à pas cher (lien affilié). Son firmware bloque ainsi 537 000 domaines de pub en utilisant à peine 50 Ko de RAM, et est capable de répondre à une requête bloquée en 10 millisecondes. Maintenant que j'ai toute votre attention, je vais vous expliqu

Un demi-million de domaines anti-pub stockés dans 50 Ko de RAM

Par : Korben ✨
20 juillet 2026 à 08:13

Pi-hole sur un Raspberry Pi, c'est cool, mais ça vous coûte quand même quelques dizaines d'euros (lien affilié) et ça squatte une prise en permanence. C'est pourquoi M-Abozaid a fait tenir la même chose dans une clé ESP32-C3 à pas cher (lien affilié). Son firmware bloque ainsi 537 000 domaines de pub en utilisant à peine 50 Ko de RAM, et est capable de répondre à une requête bloquée en 10 millisecondes.

Maintenant que j'ai toute votre attention, je vais vous expliquer comment ça marche. En fait, un Pi-hole classique charge toute sa liste de blocage en RAM, sauf que l'ESP32 lui, comme il n'a que quelques centaines de Ko de mémoire vive et pas de PSRAM, il est donc techniquement impossible d'y caser un demi-million de domaines comme ça simplement. Du coup notre cher développeur a dû ruser en hashant chacun des domaines bloqués à max 5 octets chacun (40 bits max).

Tous ces hashes sont ensuite triés une fois pour toutes, puis gravés directement dans la flash de la puce (4 Mo suffisent). Puis quand une requête DNS arrive, le firmware hashe le domaine demandé et fait une recherche par dichotomie dans la flash. Environ 18 lectures suffisent pour trancher parmi les 537 000 entrées, d'où les fameux 10 ms. Et la RAM ne sert jamais à stocker la liste, mais juste à faire tourner le bazar réseau.

Et là où c'est vraiment malin, c'est que 40 bits de hash restent quasi sans collision. Il n'en a eu aucune jusqu'à 141 000 domaines, et une seule à 537 000 donc autant dire rien du tout !

Voir cette vidéo sur YouTube

Après il y a peu de chances que ça remplace Pihole, en tout cas pour le moment, parce qu'il n'y a pas de serveur DHCP. Et activer les mises à jour OTA du firmware demande d'avoir deux partitions, du coup la capacité de l'ESP 32 tombe à 250 000 domaines.

Après le dashboard est plutôt sympa, ça tourne en mDNS sur l'adresse c3adblock.local, avec des compteurs de blocage par client, le bannissement d'un appareil et la possibilité d'ajouter vos propres noms de domaines à bloquer.

Voilà moi je vois vraiment ça comme un espèce de résolveur de secours plutôt qu'un vrai remplaçant pour Pi-hole. Vous le placez derrière votre serveur DNS principal et le jour où celui-ci est en panne, la petite clé prendra le relais pour pas cher. En plus comme on le voit dans la vidéo, ça peut s'alimenter sur le port USB de n'importe quel routeur, donc c'est pratique.

C'est totalement open source sous licence MIT et c'est livré avec un script python qui permet de construire la table des hashes à partir des listes StevenBlack et Hagezi. Pour plus tard, le développeur prévoit un Bloomfilter en mémoire RAM pour zapper la lecture flash sur les 99 % des requêtes qui ne matchent aucun domaine et puis le serveur DHCP dont je vous parlais.

Si les DNS auto-hébergés vous parlent, je vous ai déjà présenté Technitium qui remplace carrément Pi-hole, Unbound et BIND . Et pour les bidouilles ESP32 à quelques euros, y'en a plein, genre celle qui remplace le Touch ID d'Apple .

Bref, un demi-million de domaines de pub bloqués par une puce plus petite qu'une clé USB c'est bien joué !! Le repo est sur GitHub si ça vous tente.

Source

  • ✇Korben
  • Compressez vos vidéos d'un clic droit sur Mac
    Pour une raison que je ne m'explique pas, parfois quand j'upload des vidéos sur mon WordPress, celles-ci ne fonctionnent pas correctement une fois l'article publié. Je pense que c'est parce qu'elles sont mal encodées et que par conséquent le navigateur ne sait pas les lire. Pour remédier à ça, je faisais donc un petit coup de FFmpeg , mais ouvrir le terminal et recoller les mêmes paramètres à chaque fois, c'était un peu lourdingue. Alors j'ai repris un peu l'idée Magic

Compressez vos vidéos d'un clic droit sur Mac

Par : Korben ✨
20 juillet 2026 à 07:21

Pour une raison que je ne m'explique pas, parfois quand j'upload des vidéos sur mon WordPress, celles-ci ne fonctionnent pas correctement une fois l'article publié. Je pense que c'est parce qu'elles sont mal encodées et que par conséquent le navigateur ne sait pas les lire. Pour remédier à ça, je faisais donc un petit coup de FFmpeg , mais ouvrir le terminal et recoller les mêmes paramètres à chaque fois, c'était un peu lourdingue.

Alors j'ai repris un peu l'idée Magicbrake , mais en version automatique gérée directement dans le Finder de macOS. Un clic droit sur une ou plusieurs vidéos, et hop, le MP4 apparaît à côté de l'original sous le nom compressed_nom-original.mp4 et la source est préservée.

Étape 1 - Récupérer le kit

Je vous ai tout mis dans cette archive ZIP qui réunit le script, l'installateur, le désinstallateur et le mode d'emploi. Tout est sous licence MIT , donc modifiable et redistribuable.

Le seul prérequis est FFmpeg. Installez-le d'abord via Homebrew si nécessaire, puis lancez ceci dans le Terminal :

brew install ffmpeg

Étape 2 - Installer l'Action rapide

Décompressez l'archive. Dans le Terminal, tapez cd avec une espace, glissez le dossier compresser-video-macos dans la fenêtre et validez avec Entrée. Lancez ensuite :

chmod +x *.sh
./install.sh

L'installateur copie le convertisseur dans votre bibliothèque utilisateur et crée une Action rapide Automator dans le Finder. Du coup, aucune app de conversion à garder ouverte ni réglage à refaire.

L'Action rapide installée dans Automator, avec son unique script shell

Le hic, c'est que l'Action peut ne pas apparaître tout de suite. Relancez le Finder, ouvrez Actions rapides et cliquez sur Personnaliser… tout en bas. Activez ensuite Compresser la vidéo dans les extensions du Finder . Elle reste aussi disponible dans Services. Et si votre clic droit est désactivé, faites un Ctrl + clic sur le fichier.

Étape 3 - Compresser depuis le Finder

Sélectionnez une vidéo, ou carrément plusieurs, puis faites clic droit > Actions rapides > Compresser la vidéo. La conversion tourne en arrière-plan et, pour les vidéos un peu longues, un pourcentage d'avancement s'affiche dans la barre des menus en haut de l'écran. Une notification vous prévient quand le nouveau MP4 est prêt, dans le même dossier que sa source.

Le script ajoute compressed_ devant le nom, remplace l'extension par .mp4 et ne touche pas à l'original. Si ce nom existe déjà, il ajoute -2, puis -3. Pas d'écrasement !

Si l'Action ne marche pas, le détail est dans ~/Library/Logs/Compresser-la-video.log. Depuis le dossier du kit, lancez ./compress.sh "/chemin/vers/video.mov" pour voir FFmpeg pédaler. Si un fichier d'un lot échoue, les conversions réussies restent à côté de leurs sources.

Ce que le script fabrique vraiment

La sortie est un MP4 en H.264, avec une image plafonnée à 1080p, une cadence moyenne limitée à 30 images par seconde et une piste AAC stéréo si la source contient du son. J'ai choisi un CRF de 22 car je voulais un compromis simple entre poids et qualité. Une petite vidéo n'est pas agrandie, et faststart place l'index MP4 au début pour accélérer la lecture web.

J'ai testé du 60 i/s, du 24 i/s et une définition impaire. La première est tombée à 30, la deuxième a gardé ses 24 et la troisième a reçu des dimensions paires pour libx264 et yuv420p. Finalement, ça marche !

Perso, je garde ce réglage. Après pour mieux maîtriser la taille finale, utilisez HandBrake avec un débit moyen et deux passes .

Les limites à connaître

Par contre, ce bouton vise les vidéos SDR courantes à partager et ne garantit pas une sortie plus petite. Il ne conserve que la première piste vidéo et la première piste audio. Attention, les sous-titres, les pistes supplémentaires et le HDR demanderont un réglage sur mesure.

Et si ça ne vous convient pas, pour retirer l'Action rapide, retournez dans le dossier du kit et lancez ./uninstall.sh.

Bref, vous avez maintenant la compression vidéo directement sous le clic droit... En tout cas, même si le besoin est niche, moi ça va me servir.

Amusez-vous bien !

  • ✇Korben
  • La loi de l'attraction prouvée scientifiquement ?
    Vous avez déjà accroché avec quelqu'un en trois secondes ? Détesté une tête au premier regard, sans savoir pourquoi ? Eh bien, d'après le site Popular Mechanics ce serait grâce aux champs électromagnétiques. Derrière l'étude qu'ils relaient, il y a l'anesthésiste Marco Cavaglià et Tommaso Firaux, épaulés par le biophysicien Jack Tuszynski et leur équipe du Politecnico de Turin qui nous parlent d'une espèce de forme invisible qui nous brancherait sur l'esprit des autres comme une antenne radio qu

La loi de l'attraction prouvée scientifiquement ?

Par : Korben ✨
19 juillet 2026 à 15:13

Vous avez déjà accroché avec quelqu'un en trois secondes ? Détesté une tête au premier regard, sans savoir pourquoi ? Eh bien, d'après le site Popular Mechanics ce serait grâce aux champs électromagnétiques. Derrière l'étude qu'ils relaient, il y a l'anesthésiste Marco Cavaglià et Tommaso Firaux, épaulés par le biophysicien Jack Tuszynski et leur équipe du Politecnico de Turin qui nous parlent d'une espèce de forme invisible qui nous brancherait sur l'esprit des autres comme une antenne radio qui capterait une station.

Mais avant de ranger cette découverte au rayon bougies parfumées et loi de l'attraction, je vous propose qu'on démêle tout ça, parce que dans cet article, il y a du vrai et du n'importe quoi.

Commençons par ce qui tient debout. Votre cerveau produit bel et bien un champ électromagnétique. Ça se passe dans nos neurones qui sont en permanence traversés par un courant. Et comme ils sont des milliards et font ça en rythme, ça génère un champ parfaitement mesurable.

Pas besoin de me croire sur parole, hein, c'est exactement ce que montrent un EEG ou un MEG dans n'importe quel hôpital. On sait aussi mesurer un truc qui a un nom, la synchronisation inter-cerveaux. Mettez deux personnes dans une expérience de hyperscanning , et pendant un moment partagé, une conversation, un concert, leurs activités cérébrales se calent l'une sur l'autre. Ça, c'est mesuré, publié, réfutable (oui, réfutable, c'est le principe de la science. Tout peut à tout moment être remis en question si on fait de nouvelles découvertes et c'est parfaitement sain).

Rien de magique là-dedans, donc.

Et c'est toute la différence avec la loi de l'attraction et sa clique de cristaux de guérison. Le discours New Age vous dit de "vibrer positif" pour que l'univers vous livre une Ferrari. Aucun mécanisme, aucune mesure, rien à réfuter, juste une "ambiance", une vibe magique qu'on ressent ou qu'on transmet à l'univers. J'adore le concept, et peut-être que c'est vrai, mais pour le moment, il n'y a rien de prouvé scientifiquement là-dedans.

Alors que les champs électromagnétiques du cerveau, eux, c'est un courant physique, des machines qui le captent, et des prédictions qu'on peut tester et voir s'effondrer. Donc, d'un côté, on a de la physique sur laquelle on peut débattre à grands coups d'équations, et de l'autre, on a l'équivalent d'un horoscope. C'est le gouffre qui, par exemple, sépare décoder pour de vrai la parole intérieure d'un patient avec des électrodes et prétendre lire dans les pensées avec un pendule. Le MIT a même fabriqué un casque qui devine les mots que vous articulez en silence, rien qu'en lisant les signaux de vos muscles , toujours sans un gramme de sorcellerie.

Maintenant, il ne faut pas non plus jeter l'étude à la poubelle, parce que derrière le titre accrocheur de Popular Mechanics, il y a un vrai travail. Cavaglià, Firaux et Tuszynski ont publié leur cadre, baptisé EMI pour Énergie-Masse-Information, dans une vraie revue à comité de lecture, Biosystems. Et leur idée, c'est que pour eux, la conscience ne sortirait pas seulement du câblage entre vos neurones, mais d'un phénomène de champ. En gros, les membranes de vos cellules, l'eau et le liquide dans lequel trempe votre cerveau, formeraient un support capable de stocker l'information à la manière d'un hologramme, et c'est cet ensemble qui entrerait en résonance avec les champs électromagnétiques autour de lui, jusqu'à celui de la Terre. Notre expérience consciente serait la musique qui sort de cette résonance...

Alors est-ce que la loi de l'attraction est prouvée scientifiquement ? Difficile à dire, car peer-reviewed ne veut pas dire que c'est prouvé bien sûr.... ça veut juste dire "ça mérite qu'on en discute". Et entre "le cerveau émet un champ mesurable", qui est un fait, et "la conscience est une résonance holographique avec la planète", qui est leur thèse, il y a un saut spéculatif assez vertigineux. Leur modèle pioche dans la cohérence quantique, les vibrations de la Terre et la théorie des systèmes, mais pour l'instant aucune expérience ne vient le confirmer. Ce n'est donc pas (encore) une découverte...

En plus, il n'y a rien de nouveau là-dedans. Ça fait un quart de siècle que des chercheurs comme John Joe McFadden proposent une espèce de théorie de la conscience qui serait portée par le champ électromagnétique. Mais ça reste quand même une position ultra minoritaire dans le monde de la science. Et c'est assez facile à critiquer parce qu'un champ produit par un neurone est bien trop faible pour aller influencer ses voisins non connectés.

M'enfin, moi j'adore toutes ces histoires sur la conscience comme vous l'avez déjà vu avec l'IA soi-disant "qui souffre" , mais là, il faut bien sûr reconnaître que d'un côté, on a de la vraie science mesurable et de l'autre, du pipeau parfumé sauce magique (beau gosse ^^).

Source

  • ✇Korben
  • Un compteur de visiteurs sur votre site, sans payer un centime
    Vous avez peut-être remarqué un petit point rouge tout en bas de mon site, avec un nombre à côté. Il s'agit du nombre de personnes passées sur le site durant la dernière heure. Je voulais remettre ce truc depuis un bail, bien à l'ancienne comme dans les années 2000 mais sur un site statique, qui plus est sans tracker de stats JS type Google Analytics ou Matomo, et sans cookies de tracking, c'était pas franchement une option... jusqu'à maintenant !

Un compteur de visiteurs sur votre site, sans payer un centime

Par : Korben ✨
12 juillet 2026 à 07:45

Vous avez peut-être remarqué un petit point rouge tout en bas de mon site, avec un nombre à côté. Il s'agit du nombre de personnes passées sur le site durant la dernière heure.

Je voulais remettre ce truc depuis un bail, bien à l'ancienne comme dans les années 2000 mais sur un site statique, qui plus est sans tracker de stats JS type Google Analytics ou Matomo, et sans cookies de tracking, c'était pas franchement une option... jusqu'à maintenant !

Le compteur, en vrai, tout en bas de korben.info.

La solution évidente sur des sites statiques, c'est souvent un petit Worker Cloudflare qui compte les visiteurs et servirait le chiffre, mais ça se facture à chaque requête. À 390 000 pages vues par jour, ça grimpe vite à des dizaines de millions d'invocations par mois, soit dans les 6 à 7 dollars. C'est pas super cher mais pour un compteur qui n'est utile qu'à satisfaire mon égo tout en sachant s'il y a du monde aujourd'hui, ça ne sert strictement à rien ! Donc le Worker, je l'ai écarté direct.

Du coup j'ai fait ça à l'ancienne. Un petit script Python tourne sur la machine qui héberge le site, une fois par minute. Il pose une seule question à Cloudflare, à savoir combien d'adresses IP distinctes ont chargé une page durant la dernière heure (ou demi-heure, ou quart d'heure ou 5 min, c'est vous qui paramétrez), il écrit la réponse dans un minuscule fichier live.json de quelques centaines d'octets, et c'est tout. Ce fichier, Cloudflare le sert ensuite depuis son cache comme il servirait une image, gratuitement. Zéro Worker, zéro base de données, zéro abonnement, j'ai exactement le même résultat sans dépenser une thune.

Maintenant, faut que je sois clair sur ce que ce chiffre raconte. C'est le nombre de navigateurs distincts ayant chargé une page durant la dernière heure, hors trafic interne de Cloudflare. C'est un "*combien de monde est passé récemment *", pas un "combien lisent là tout de suite".

Et les bots là-dedans ?

En fait, les bots pourris , ceux qui scrapent en boucle, se font bloquer en amont par le Super Bot Fight Mode de Cloudflare, donc ils n'arrivent même pas jusqu'à mon site. Restent les gentils bots, du genre de Googlebot et compagnie, que je laisse passer exprès, parce que les bloquer reviendrait à me flinguer mon référencement. Sur les 7 derniers jours, Cloudflare classe à peine 4% comme bots vérifiés. Donc c'est une goutte d'eau, surtout qu'ils tournent sur une poignée d'IP. Donc oui, mon compteur avale deux ou trois crawlers au passage, mais je ne voulais pas vous mentir en écrivant "zéro bot". Mais l'essentiel c'est que les nuisibles, eux, ne soient pas comptabilisés.

J'ai aussi dû gérer un petit piège car l'API de Cloudflare plafonne sa réponse à 10 000 lignes. Et comme sur une heure entière de trafic ça peut se remplir vite, si je crève ce plafond, la requête sous-compterait sans rien dire. Donc le script lève un flag et le compteur affiche "10 000 personnes ou plus" plutôt qu'un faux nombre. Quand j'y serai aux 10 000 et plus, je pense que je réduirai alors le delta temps en passant de 1h à 30 min...etc.

Côté vie privée, c'est carré également. Cloudflare renvoie à mon serveur une liste JSON des IP passées dans l'heure, mon script en compte le nombre de distinctes, et efface cette liste de sa mémoire dans la milliseconde qui suit. Aucune IP n'est stockée, aucune n'atterrit dans un log, aucun fichier avec les IPs n'est créé sur le disque... Il ne reste qu'un entier. Comme je vous le disais, pas de cookie , pas de traceur, et rien qui touche votre navigateur . Et comme le compteur ne s'affiche jamais en dessous de 10 personnes, impossible d'isoler qui que ce soit.

Maintenant, si vous voulez le même chez vous, sachez que j'ai tout balancé en open source sur GitHub , sous licence MIT, donc servez-vous. Voici les pré-requis :

  1. votre site doit être derrière Cloudflare, le plan gratuit suffit largement.
  2. vous générez un token API Cloudflare avec le droit de lecture sur les analytics.
  3. vous posez le script live_count.py sur votre serveur et vous le lancez une fois par minute (ou toutes les 5 ou 10 min) via un cron.
  4. vous ajoutez le bout de JavaScript et son span dans vos pages, tout se règle par des attributs, aucun script inline, donc ça passe même avec une politique de sécurité stricte.

Le seul truc sur lequel ne pas vous louper, c'est de mettre un temps de cache court à live.json. Si c'est trop long, tous vos visiteurs verraient un chiffre périmé.

Voilà. Un petit compteur maison simili-live sans tracking et qui ne me coûte rien, c'est le bonheur !

  • ✇Korben
  • Tecno, itel et Infinix cachent un mouchard système impossible à virer
    Si vous lisez ça depuis Abidjan, Dakar, Douala ou Kinshasa, y'a une chance sur deux que votre téléphone soit un Tecno, un Infinix ou un itel. Trois marques, mais un seul patron : Transsion, qui trône sur près de la moitié des smartphones vendus en Afrique. Et si je vous parle de ça aujourd'hui, c'est parce qu'un chercheur en sécu, Buchodi, vient de décortiquer ce que ces appareils racontent dans votre dos et c'est pas joli, joli. Son terrain de jeu, c'est un Tecno Spark 40 tout ce qu'il y a de b

Tecno, itel et Infinix cachent un mouchard système impossible à virer

Par : Korben ✨
9 juillet 2026 à 08:10

Si vous lisez ça depuis Abidjan, Dakar, Douala ou Kinshasa, y'a une chance sur deux que votre téléphone soit un Tecno, un Infinix ou un itel. Trois marques, mais un seul patron : Transsion, qui trône sur près de la moitié des smartphones vendus en Afrique.

Et si je vous parle de ça aujourd'hui, c'est parce qu'un chercheur en sécu, Buchodi, vient de décortiquer ce que ces appareils racontent dans votre dos et c'est pas joli, joli.

Son terrain de jeu, c'est un Tecno Spark 40 tout ce qu'il y a de banal. En rétro-ingénierant le firmware, il tombe sur un framework maison signé Transsion, baptisé Athena pour la collecte et oneID pour le pistage entre applis. On n'est pas sur une appli lambda que vous auriez installée, mais un truc costaud câblé au niveau du système, avec les pleins pouvoirs.

Et ce qu'il remonte, c'est du lourd ! Votre position GPS précise, les antennes-relais autour de vous, la consommation réseau appli par appli sur une soixantaine d'applis, quelle appli est affichée à l'écran en temps réel, et même quelle appli vient d'allumer la caméra (pas ce que filme la caméra, hein, juste le fait qu'une appli l'ait activée).

Ensuite, tout ça part vers des domaines en shalltry.com et transsion-os.com. Shalltry, c'est la branche logicielle de Transsion, et les serveurs tournent sur du cloud loué en Europe.

Donc c'est de la télémétrie++ qui part chez le fabricant, mais le gros souci, c'est qu'on ne peut rien désactiver ni désinstaller facilement. C'est vraiment une brique essentielle du téléphone reposant sur le SDK du constructeur. Ça prend racine dans l'application Réglages (pour les paramètres), l'interface système, et surtout dans un module assez discret nommé com.hoffnung qui est bardé de permissions flippantes comme lire le presse-papier en arrière-plan, connaître toutes les applis installées, forcer l'arrêt des autres.

Alors oui, c'est chiffré avec un bon vieux AES, sauf que ça ne sert pas à grand chose parce que la clé de déchiffrement est planquée dans le code de l'application elle-même. Autrement dit, quiconque met la main sur le fichier récupère la clé avec, et peut tout ouvrir. Le chiffrement n'est là que pour faire un peu de camouflage afin que vous ne puissiez pas voir facilement ce qui sort de votre poche. Mais ce n'est absolument pas de la confidentialité.

Et malheureusement, ça ne s'arrête pas à votre smartphone puisque ce même SDK se balade aussi dans des applications grand public très très populaires en Afrique comme Boomplay (100 millions de téléchargements et des poussières), StarTimes ou Orange Max it. Du coup, même avec un mobile d'un autre fabricant, vous pouvez trimballer ce mouchard sans le savoir.

Alors oui, c'est vrai, tous les smartphones font de la télémétrie. Google, Apple, Samsung, Xiaomi, tout le monde collecte des trucs, et des centaines d'applis passées au crible violaient déjà le RGPD début 2026. C'est déjà pas normal, mais ça peut normalement se désactiver assez facilement. Mais dans le cas de Transsion, c'est fait au niveau système, c'est totalement invisible et la destination est très opaque...

Puis surtout, ça concerne la moitié du continent !

Notez que ce n'est pas la première fois que les constructeurs chinois low cost se font choper puisqu' en 2016 déjà, une backdoor chinoise se planquait dans le firmware de smartphones low-cost et balançait contacts et SMS toutes les 72 heures. Plus récemment, il y a eu aussi un malware qui s'appelle Triada et qui a été préinstallé sur environ 53 000 Tecno W2 vendus en Éthiopie, au Ghana ou encore au Cameroun avec, s'il vous plaît, des abonnements souscrits totalement à l'insu de leur propriétaire.

C'était des composants différents à chaque fois, mais le motif se répète.

Alors que faire les amis ? Eh bien la bonne nouvelle, c'est qu'on peut quand même bloquer 2-3 trucs pour les empêcher de remonter des infos. Vu que tout transite par ces fameux domaines, il suffit de bloquer *.shalltry.com (et *.transsion-os.com tant qu'à faire) au niveau DNS.

Ça se fait facilement avec un NextDNS, un AdGuard ou un Pi-hole à la maison, ou directement sur le téléphone avec cette application qui s'appelle Personal DNS Filter , et comme ça, la télémétrie se retrouve isolée sans toucher au reste.

Par contre, ça ne sert à rien d'aller trifouiller les réglages du téléphone parce que ce n'est pas désactivable à partir de là. Désolé.

Source

  • ✇Korben
  • Un ransomware dans le navigateur ? Suffit de demander à DeepSeek
    Dans la série "Qu'est-ce qu'on se marre avec les LLMs", des chercheurs en cybersécurité de Check Point ont tenté une expérience plutôt fun (enfin, je trouve ^^) : Demander à DeepSeek de leur coder un ransomware capable de tourner directement dans le navigateur. Et bah croyez le ou non mais le machin l'a fait sans broncher ^^ Quand je repense à tout ce foin qu'on vient de vivre avec les américains avec Mythos et Fable 5 d'Anthropic, j'avoue je rigole quand je vois ça. Alexey Bukhteyev et Pedro Dr

Un ransomware dans le navigateur ? Suffit de demander à DeepSeek

Par : Korben ✨
2 juillet 2026 à 06:51

Dans la série "Qu'est-ce qu'on se marre avec les LLMs", des chercheurs en cybersécurité de Check Point ont tenté une expérience plutôt fun (enfin, je trouve ^^) : Demander à DeepSeek de leur coder un ransomware capable de tourner directement dans le navigateur.

Et bah croyez le ou non mais le machin l'a fait sans broncher ^^ Quand je repense à tout ce foin qu'on vient de vivre avec les américains avec Mythos et Fable 5 d'Anthropic, j'avoue je rigole quand je vois ça.

Alexey Bukhteyev et Pedro Drimel Neto, de l'équipe malware de Check Point, ont récupéré cet échantillon bricolé par l'IA, l'ont un peu peaufiné quand même, et se sont retrouvés avec une arme à 100% fonctionnelle capable de chiffrer tous vos documents depuis Chrome sans rien avoir à installer.

Le code malveillant s'appuie sur la File System Access API, une fonction qui permet à une page web de demander l'accès à un dossier de votre disque. La cible clique sur "autoriser" en pensant retoucher une image sur un site de "AI photo enhancer" bidon, et derrière la page parcourt le dossier ouvert, chiffre son contenu, et laisse une jolie demande de rançon et aucun moyen de récupérer les fichiers originaux.

Et surtout, DeepSeek a été au-delà de leurs attentes en proposant plein de fonctionnalités "cools" en plus à ce ransomware comme du vol de tokens Discord, de numéros de carte, de seed phrases crypto et de l'accès webcam. Mais en y regardant de plus près, les chercheurs ont remarqué que tout ceci avait été halluciné et ne fonctionnait pas vraiment. Le seul truc fonctionnel c'est le chiffrement du dossier qu'ils ont eux-même demandé et autorisé.

L'idée de faire un ransomware dans le navigateur n'est pas nouvelle et d'autres chercheurs l'avaient déjà théorisée à la conférence USENIX Security en 2023 sous le nom de RoB, ("Ransomware over Browsers") mais ce qui change vraiment ici, c'est que sans grandes compétences, n'importe qui peut le faire.

Et c'est là que DeepSeek se distingue de la concurrence. Le modèle refuse bien sûr la demande si vous écrivez le mot "ransomware". Mais les chercheurs sont des petits malins et ont simplement retiré les termes qui fâchent, remplaçant "ransomware" par une formulation plus neutre du style "outil de chiffrement de fichiers". Et voilà, DeepSeek v4 a recraché exactement la même fonctionnalité.

Ce garde-fou s'est vraiment comporté comme un simple filtre anti gros mots, c'est un peu ridicule, surtout que ce n'est pas la première fois que le modèle chinois se fait remarquer côté code douteux , ni la première fois que les IA open source montrent leur face sombre .

Pour vous protéger contre ce genre de ransomware, il faudra donc être très vigilant à l'avenir et vous demander pourquoi tel ou tel site vous demande un accès COMPLET à un dossier plutôt que simplement au fichier dont il a besoin. Et sur Android, ça va être encore plus sensible depuis que Chrome peut donner accès au dossier photos. Bref, dans le doute, refusez...

Source

  • ✇Korben
  • Allégez Nextcloud en virant les dossiers node_modules de l'index
    Si vous avez déjà branché un stockage externe sur votre Nextcloud et regardé occ files:scan ramper en mode larve durant des plombes lors d'une indexation, vous connaissez le coupable. C'est évidemment un dossier node_modules qui contient des dizaines de milliers de tout petits fichiers, qui se fait indexer dans la base de Nextcloud, faisant tout ramer jusqu'à l'infini (ou presque...). Heureusement, Marc Palaus a repris le vieux plugin files_excludedirs (lancé à l'origine par Roeland Jago Douma,

Allégez Nextcloud en virant les dossiers node_modules de l'index

Par : Korben ✨
30 juin 2026 à 13:18

Si vous avez déjà branché un stockage externe sur votre Nextcloud et regardé occ files:scan ramper en mode larve durant des plombes lors d'une indexation, vous connaissez le coupable.

C'est évidemment un dossier node_modules qui contient des dizaines de milliers de tout petits fichiers, qui se fait indexer dans la base de Nextcloud, faisant tout ramer jusqu'à l'infini (ou presque...).

Heureusement, Marc Palaus a repris le vieux plugin files_excludedirs (lancé à l'origine par Roeland Jago Douma, puis passé de fork en fork) et l'a remis d'aplomb pour Nextcloud 32 à 34. Le taf de ce plugin c'est tout simplement d'ordonner à Nextcloud d'ignorer purement et simplement les dossiers que vous lui indiquez.

Donc si vous lui donnez ce pattern, il esquivera tout ce qui correspond :

occ config:app:set files_excludedirs exclude \
--value '[".snapshot","node_modules","cache/*/tmp"]'

Un tableau JSON, un pattern par entrée, et vous pouvez glisser des wildcards comme cache/*/tmp pour taper plusieurs sous-dossiers d'un coup.

Ensuite, pour voir ce qui tourne, occ config:app:get files_excludedirs exclude. Ou si vous préférez cliquer, l'app propose aussi un menu Exclude Directories dans les réglages admin, avec un bouton Preview Changes pour voir ce que vous allez virer avant de valider.

Pour les fichiers qui n'ont pas encore été indexés, c'est nickel donc. Mais pour ceux qui sont déjà dans la base, cette exclusion les rendra inaccessibles mais ils seront toujours là à traîner dans les résultats de recherche.

Alors pour les dégager pour de bon, voici quelle ligne de commande vous devez lancer :

occ files_excludedirs:clean-cache --dry-run

J'ai mis un dry-run en paramètre, parce que ça permet de faire tourner ça à blanc sur quelques résultats, sans flinger la mauvaise arborescence. Mais une fois que vous êtes chaud patate et sûr de vous, vous devrez relancer la même commande sans le --dry-run.

Notez que si vous montez par exemple un partage genre "Shared/Holiday" directement à la racine d'un utilisateur, vos fichiers ont un chemin du style photo.jpg, et pas Shared/Holiday/photo.jpg. C'est le chemin complet qu'il faudra viser donc...

En tout cas, j'ai été surprise d'apprendre qu'exclure des dossiers du scan, c'est une demande qui traîne sur le tracker Nextcloud depuis l' issue #6888 publiée en 2017... Ça existait pourtant côté ownCloud. Dommage quoi.

Pour installer ce plugin, vous récupérez l'archive sur la page Releases, vous décompressez dans nextcloud/apps, vous activez depuis l'admin. Ou alors un petit git clone + un composer install pour la version source et le tour est joué !

Et si la lourdeur de Nextcloud vous gonfle plus globalement, il y a des alternatives plus légères comme OpenCloud .

  • ✇Korben
  • WSL Containers - des conteneurs Linux sans Docker Desktop
    Microsoft vient de lâcher un truc qui va faire plaisir à tous ceux qui bidouillent fort des conteneurs Linux depuis leur machine Windows. Ça s'appelle WSL Containers (WSLC pour les intimes, et pas WSL 3) et l'objectif c'est de faire tourner des conteneurs Linux nativement sous Windows sans avoir à passer par des outils tiers du genre Docker. Pour en profiter, tapez la commande suivante : wsl --update --pre-release Cela mettra à jour votre WSL en version 2.9.3 ou supérieure et vous obtiendrez alo

WSL Containers - des conteneurs Linux sans Docker Desktop

Par : Korben ✨
29 juin 2026 à 23:07

Microsoft vient de lâcher un truc qui va faire plaisir à tous ceux qui bidouillent fort des conteneurs Linux depuis leur machine Windows. Ça s'appelle WSL Containers (WSLC pour les intimes, et pas WSL 3) et l'objectif c'est de faire tourner des conteneurs Linux nativement sous Windows sans avoir à passer par des outils tiers du genre Docker.

Pour en profiter, tapez la commande suivante :

wsl --update --pre-release

Cela mettra à jour votre WSL en version 2.9.3 ou supérieure et vous obtiendrez alors une toute nouvelle commande : wslc.

WSLC est un alias qui lance en réalité container.exe et qui permet de gérer tout le cycle de vie d'un conteneur Linux avec des commandes très classiques : run, stop, build, tag, push, pull, prune. Voici un vrai exemple tiré de la doc de Microsoft :

wslc run -d --name=webtop -e PUID=1000 -e PGID=1000 -e TZ=Etc/UTC -p 3000:3000 -p 3001:3001 lscr.io/linuxserver/webtop:ubuntu-kde

Ce qu'on lance là c'est bien une image en provenance de LinuxServer dont je vous ai déjà parlé, et comme vous pouvez le voir, vous ne serez pas dépaysé si vous connaissez déjà un peu Docker.

Et la cerise sur le gâteau, c'est le support GPU. Vous collez --gpus all sur un conteneur PyTorch et CUDA répond présent, sans config tordue. C'est énorme pour ceux qui font du dev IA localement sous Windows. Vous allez enfin pouvoir entrainer ou inférer dans un conteneur propre sans avoir à vous taper avec les drivers.

Microsoft pousse aussi des SDK (packages NuGet pour C, C++ et C#) histoire de piloter tout ça depuis vos applis si ça vous amuse.

Maintenant, vous vous interrogez sûrement sur les perfs de WSLC et c'est bien normal. De ce que j'ai lu, comme WSLC passe par VirtioFS pour son système de fichiers par défaut, les accès seraient 2 fois plus rapide. J'emploie le conditionnel car personne n'a encore réalisé de benchmark indé mais si ça se vérifie, ça va être énorme tant le partage de fichiers entre Windows et un conteneur Linux c'était la misère. Là vos builds vont respiiiiirer !!!

Et pour calmer les inquiets : Docker Desktop, Podman et Rancher Desktop ne disparaissent pas, rassurez-vous. Microsoft précise même que ces outils profiteront de changements de bas niveau apportés par WSLC. C'est donc une fondation, et absolument pas une déclaration de guerre.

C'est pour le moment dispo en public preview, donc attendez-vous à quelques bugs, et la mise à dispo pour tous, ce sera normalement pour cet automne. En tout cas, je suis content de voir cette évolution. Ça arrive pile au moment où Apple fait pareil de son côté , ce qui en dit long sur où va le vent. Donc, si vous aviez décroché de WSL, c'est peut-être le moment de remettre le nez dedans .

À tester sur une machine de dev, pas en prod, hein ! Et vous me direz si le VirtioFS tient ses promesses.

Source

  • ✇Korben
  • Steam Machine - Il passe à 64 Go de RAM et 4 To de SSD avec un simple tournevis
    *-- Contient des liens affiliés -- * La Steam Machine de Valve vient à peine d'arriver dans les salons que le youtubeur ETA Prime l'a déjà éventrée sur son établi. Et je sais pas vous, mais moi j'ai bien envie de voir ça avant de lâcher les 1039 euros qu'elle va couter. Ce petit cube vient de sortir d'usine avec ses 16 Go de mémoire et un SSD de 512 Go ou 2 To, et la vraie question que tous les geeks se posent c'est ... roulements de tambour ... : Est-ce qu'on peut l'ouvrir et bidouiller dedans

Steam Machine - Il passe à 64 Go de RAM et 4 To de SSD avec un simple tournevis

Par : Korben ✨
26 juin 2026 à 18:30
*-- Contient des liens affiliés -- *

La Steam Machine de Valve vient à peine d'arriver dans les salons que le youtubeur ETA Prime l'a déjà éventrée sur son établi. Et je sais pas vous, mais moi j'ai bien envie de voir ça avant de lâcher les 1039 euros qu'elle va couter. Ce petit cube vient de sortir d'usine avec ses 16 Go de mémoire et un SSD de 512 Go ou 2 To, et la vraie question que tous les geeks se posent c'est ... roulements de tambour ... : Est-ce qu'on peut l'ouvrir et bidouiller dedans ?

ET BIEN OUI ! Et c'est même plus facile que ce que vous pensez !!!

Tout commence donc avec deux vis T8 à l'arrière (qui ne tombent pas, elles restent solidaires du châssis, c'est qualiiii) et quatre autres sous les pieds. La façade avant, elle, tient juste avec des aimants.

Un coup de spudger , on fait coulisser tout le bloc hors de sa coque en plastique, et là vous tombez sur un gros radiateur en aluminium avec ses caloducs en cuivre, une alimentation intégrée, et la carte mère prise en sandwich au milieu. C'est propre et ça permet d'éviter le gros bloc d'alim qui traine sous la TV.

Le slot M.2, les ports USB avant, le lecteur SD, les USB arrière et l'Ethernet sont montés sur des petites cartes filles reliées par des nappes, ce qui rend le tout très modulaire. Ainsi, si le connecteur USB vous lâche dans 2 ans, bah y'a juste qu'à remplacer le module concerné et basta !

Même le Wi-Fi et le Bluetooth, soudés sur la carte d'entrées-sorties avant, se changent en remplaçant ce seul bloc. Notez que le seul élément un peu fermé, c'est le ventilateur car il est custom, dessiné spécifiquement pour la machine, donc oubliez votre rêve de coller un Noctua à la place. Et pour accéder à la RAM, par contre, il faut sortir le ventilateur et son carénage, débrancher les antennes Wi-Fi, puis dégager le radiateur.

Bonne nouvelle aussi, y'aura pas besoin de refaire la pâte thermique puisque la carte mère se soulève d'un bloc pour libérer les deux emplacements SO-DIMM en dessous. Valve n'en utilise qu'un seul d'origine, avec une barrette de 16 Go en DDR5 à 5600 MT/s, en single channel. ETA Prime a viré ça pour deux barrettes Crucial de 32 Go, soit 64 Go au total.

Au reboot, SteamOS Holo lui a par contre affiché 62 Go de mémoire système (?). Et pour le stockage, le SSD d'origine est un format court 2230 , mais il y a la place pour un 2280 classique. Du coup notre Youtubeur y a mis un Kingston Fury Renegade de 4 To, cloné depuis le disque d'usine avec Etcher pour garder ses jeux et son compte.

La barrette SO-DIMM DDR5 d'origine, à côté des Crucial de 32 Go

Côté tripes, le menu système le confirme bien... La bête contient un AMD Custom CPU 1772 en architecture Zen 4, six cœurs et douze threads à 4,86 GHz, accompagné d'un GPU RDNA 3 (un Navi 33, pour les curieux) avec 8 Go de VRAM. Malheureusement (et là, vous allez chialer), ces 8 Go de mémoire vidéo sont soudés et donc non extensibles. Donc même avec 64 Go de RAM système, vous ne gagnerez quasiment rien en jeu, puisque c'est la VRAM qui fait le boulot graphique. C'est couillon...

Le menu système après upgrade : 62 Go de RAM, mais toujours 8 Go de VRAM

Cela signifie que vu les prix de la RAM en ce moment, ça ne vaut pas le coup de l'upgrader sur la Steam Machine. Les 16 Go d'origine suffisent largement pour la plupart des gens (Le prix de la mémoire était justement une des raisons pour lesquelles la Steam Machine coûte plus cher qu'une PS5 Pro, haha).

Pareil pour le SSD, payer un M.2 4 To, c'est se faire mal au portefeuille pour rien alors qu'un disque dur externe USB de 5 To coûte trois fois moins cher. Un peu plus lent au chargement, certes, mais c'est largement suffisant pour stocker votre ludothèque.

Mais je suis quand même content de voir que Valve a sorti une vraie machine ouverte, réparable avec un simple tournevis, là où la concurrence nous soude tout comme des déglingos et interdit le moindre accès.

Merci à ETA Prime pour le démontage en règle !!

Source : la vidéo d'ETA Prime

  • ✇Korben
  • Dropbox se branche à Claude Code et lui permet de lire vos fichiers
    Dropbox vient de sortir un plugin pour Claude Code , et leur idée c'est de pouvoir brancher vos fichiers Dropbox directement dans vos sessions de dev Claude Code / Cowork. Alors je me suis demandé à quoi ça pouvait bien servir et voici ce que j'ai compris. Une fois que le plugin est en place, ça permet à Claude Code d'aller piocher dans votre Dropbox vos docs techniques, vos cahiers des charges, votre code...etc pour s'en faire du contexte. Tout devient de la matière fraiche pour corriger ou gén

Dropbox se branche à Claude Code et lui permet de lire vos fichiers

Par : Korben ✨
26 juin 2026 à 18:22

Dropbox vient de sortir un plugin pour Claude Code , et leur idée c'est de pouvoir brancher vos fichiers Dropbox directement dans vos sessions de dev Claude Code / Cowork.

Alors je me suis demandé à quoi ça pouvait bien servir et voici ce que j'ai compris. Une fois que le plugin est en place, ça permet à Claude Code d'aller piocher dans votre Dropbox vos docs techniques, vos cahiers des charges, votre code...etc pour s'en faire du contexte. Tout devient de la matière fraiche pour corriger ou générer du code et quand c'est fini, ce qui est produit peut être à son tour stocké sur Dropbox.

Le plugin sait récupérer les fichiers en fonction de leur nom, de mots clés, de leur emplacement et bien sûr en fonction de leurs méta données. Même vos liens partagés il sait comment les gérer. Bref, il fait tout simplement le passe-plats entre tout le bordel que vous stockez sur Dropbox et Claude Code.

Cela dit, gardez la tête froide parce que tout ce que l'IA lit part sur les serveurs d'Anthropic pour être traité. Donc évitez quand même de le lâcher sur le dossier qui contient vos contrats, vos mots de passe ou vos données clients. Lui autoriser juste un dossier dédié avec ce que vous acceptez de partager, ce sera plus sain.

Pour l'installer, ça se passe dans Claude Code sur le web. Vous filez dans le menu Personnaliser, Connecteurs puis vous cherchez Dropbox en parcourant les plugins et vous cliquez sur ajouter. Une auth OAuth plus tard (vos identifiants Dropbox habituels), c'est branché. Un petit /reload-plugins et le plugin s'active alors dans la session en cours.

En plus de ce plugin, Dropbox propose également un serveur MCP classique en ligne de commande qui est un peu plus souple et surtout peut se brancher dans Cursor, Claude Desktop ou Devin.

Un bémol quand même, c'est pas open bar... sniiif. Eh oui, Dropbox plafonne tout ça à 5 Mo par fichier lu ou créé via l'intégration, et le contenu pondu par Claude ne se sauvegarde qu'en texte (.txt, .md, .html, .py), et pas en image ni en PDF. Quant aux limites de débit de l'API, on ne les connaît pas.

Bref, pour les gros fichiers ou les binaires, faudra donc passer par autre chose.

Si vous vivez dans Claude Code et que votre vie est rangée dans Dropbox, ça vaut peut-être le coup de jeter un œil ici.

  • ✇Korben
  • Adblock for YouTube - 10 millions d'installs et un piège dormant
    Mise à jour du 26 juin 2026 : Mathias Rochus, le fondateur d'AdBlock Ltd qui édite l'extension, m'a contacté pour réagir. Il souligne que cette capacité n'a jamais servi (le rapport Island le confirme) et que le scriptlet en cause, trusted-create-element, n'est pas maison : il vient de la bibliothèque open-source de scriptlets d'AdGuard que beaucoup de bloqueurs embarquent. Surtout, il annonce corriger les deux problèmes dès aujourd'hui : suppression pure et simple du scriptlet inutilisé pour qu

Adblock for YouTube - 10 millions d'installs et un piège dormant

Par : Korben ✨
26 juin 2026 à 00:20

Mise à jour du 26 juin 2026 : Mathias Rochus, le fondateur d'AdBlock Ltd qui édite l'extension, m'a contacté pour réagir. Il souligne que cette capacité n'a jamais servi (le rapport Island le confirme) et que le scriptlet en cause, trusted-create-element, n'est pas maison : il vient de la bibliothèque open-source de scriptlets d'AdGuard que beaucoup de bloqueurs embarquent. Surtout, il annonce corriger les deux problèmes dès aujourd'hui : suppression pure et simple du scriptlet inutilisé pour qu'aucune config serveur ne puisse l'appeler, et vérification du vrai domaine youtube.com au lieu d'une chaîne posée n'importe où dans l'URL. La nouvelle version doit encore passer la revue de Google.

Une précision quand même, parce que c'est le cœur du sujet : selon le rapport Island, quand le serveur renvoie certains paramètres, l'élément créé est une balise <script> dont le contenu est fourni directement par le serveur. Autrement dit, le verrou qu'on retire servait bien à faire tourner du code venu d'ailleurs. Le correctif, lui, est une bonne nouvelle pour les 10 millions d'utilisateurs. Je reviendrai vérifier une fois la mise à jour en ligne.


Si vous avez installé une extension qui s'appelle "Adblock for YouTube" pour virer les pubs de vos vidéos, prenez deux minutes pour lire mon article.

Les chercheurs Oleg Zaytsev et Shachar Gritzman, de la boîte de sécurité Island, viennent de passer au peigne fin une de ces extensions installée par plus de 10 millions de personnes, et ce qu'ils ont trouvé dedans n'est pas très joli joli. Le truc affiche fièrement un badge "Featured" sur le Chrome Web Store, fait bien le boulot promis (il bloque les pubs), mais il embarque aussi de quoi exécuter n'importe quel bout de JavaScript sur n'importe quel site que vous visitez.

Et ça, ça craint !

Mais avant que vous fermiez l'onglet en panique, sachez tout d'abord qu'il existe plusieurs extensions qui portent ce nom. Celle qui pose problème a un identifiant précis, cmedhionkhpnakcndndgjdbohmhepckk. Donc pour vérifier, tapez chrome://extensions dans votre barre d'adresse, activez le "Mode développeur" en haut à droite, et regardez l'ID affiché sous chaque extension. Si vous tombez sur celui-là, virez-la sans réfléchir. Si c'est un autre identifiant, ce n'est pas l'extension visée par cette analyse, ce qui ne veut pas dire pour autant que tous les bloqueurs du store sont blancs comme neige, hein...

Ce qui inquiète Island, ce n'est pas une ligne de code qui vole vos données là, maintenant mais plutôt une capacité en sommeil. L'extension contient ce que les chercheurs appellent les ingrédients architecturaux pour faire tourner du code arbitraire, et la mèche peut être allumée par un simple changement côté serveur sans que cela se voit.

En clair, du jour au lendemain, le bidule pourrait se mettre à lire vos pages, aspirer vos données et à agir à votre place dans vos comptes perso, vos applis de boulot ou vos panneaux d'admin. Au moment de l'analyse, le mécanisme dormait. Il n'était pas absent.

Et le détail qui fait sourire jaune, c'est quand même ce garde-fou censé limiter l'extension à YouTube. En théorie elle ne s'active que sur le site de Google mais en pratique, elle tourne sur absolument tous les sites, avec une vérification qui regarde juste si la chaîne "youtube.com" apparaît quelque part dans l'URL.

Oui n'importe où, du coup une adresse comme bank.example.com/search?q=youtube.com passe le test sans problème donc autant vous dire que le verrou ne verrouille pas grand chose...

Cette extension traîne sur le store depuis 2014. Au départ c'était donc un bête bloqueur de pub YouTube, jusqu'à un changement de propriétaire en 2018. Les premières versions embarquaient carrément un SDK d'injection de pub baptisé Unistream, finalement retiré en juin 2024, et les chemins d'injection de script pilotables à distance sont présents depuis février 2025. 3 autres extensions de blocage de pub liées au même écosystème ont déjà été dégagées du Chrome Web Store pour cause de malware.

Toutefois, pour le moment, il n'y a aucune preuve qu'un payload malveillant ait réellement été poussé aux utilisateurs, mais c'est la combinaison de plusieurs de ces facteurs qui pue : une extension à 10 millions d'installs, un accès à tous les sites, un canal d'injection téléguidé, un passé d'injection de pub et des cousines déjà bannies. Gloups !

Donc je vous conseille vivement de faire le tour de vos extensions. CRXplorer vous aidera à débusquer celles qui sont louches, et si vous cherchez à bloquer les pubs proprement, j'avais fait le point sur les bonnes méthodes pour ça . Petit rappel au passage, sur Chrome le uBlock Origin complet a été débranché par le passage à Manifest V3, et il ne reste que sa version Lite, forcément moins fortiche.

Donc si vous voulez le vrai, c'est sur Firefox que ça se passe maintenant.

Bref, méfiez-vous des bloqueurs de pub qui réclament la lune et au moindre doute sur l'ID, désinstallez cette merde !

Source

  • ✇Korben
  • TenMatch - Trouver son tournoi de tennis sans galérer
    Tarek, fidèle lecteur de Korben.info m'a envoyé un mail pour me présenter TenMatch , un site web qu'il a codé qui permet de trouver un tournoi de tennis près de chez vous. Vous le savez, le sport et moi, ça fait 2, alors peu de risque que j'utilise son site. Mais je sais que parmi vous, y'en a qui pratiquent cette forme étrange de ping pong où on est sur la table, comme disait l'autre, alors ça va surement venir se rajouter à vos bookmarks. La problématique dont s'occupe TenMatch, c'est donc de

TenMatch - Trouver son tournoi de tennis sans galérer

Par : Korben ✨
25 juin 2026 à 15:51

Tarek, fidèle lecteur de Korben.info m'a envoyé un mail pour me présenter TenMatch , un site web qu'il a codé qui permet de trouver un tournoi de tennis près de chez vous.

Vous le savez, le sport et moi, ça fait 2, alors peu de risque que j'utilise son site. Mais je sais que parmi vous, y'en a qui pratiquent cette forme étrange de ping pong où on est sur la table, comme disait l'autre, alors ça va surement venir se rajouter à vos bookmarks.

La problématique dont s'occupe TenMatch, c'est donc de rechercher pour vous un tournoi du TenUp, qui est l'outil officiel mais reconnu comme une chianlie à utiliser (je vous fais confiance là dessus, j'en sais rien). TenMatch va donc piocher dans les mêmes données publiques de la FFT, les resynchronise chaque nuit, et vous les ressert avec de vrais filtres.

Vous sélectionnez votre classement, la surface que vous voulez, la proximité avec un lieu et même le budget que vous avez, vu qu'une inscription c'est en général 20 balles.

Vous obtenez alors une liste avec les tournois, date par date et vous n'avez plus qu'à vous y inscrire via TenUp. Bref, TenMatch fait le tri, la Fédé encaisse, tout le monde est content.

Bref, si vous tapez dans la baballe, allez jeter un œil à TenMatch. Moi je retourne à mon sport de prédilection, rester assis à vous pondre des articles incroyables !! Et merci à Tarek pour le partage.

  • ✇Korben
  • Super Mario 64 enfin sur Nintendo DS avec un mode coop
    À tous les nostalgiques de la Nintendo 64 et notamment de Super Mario 64, j'ai un petit truc cool à vous montrer. Tobi Friedly vient de sortir un portage du jeu sur Nintendo DS, et pas n'importe lequel, puisque celui-ci tourne sur la vraie console de 2004, et pas seulement sur la DSi qui embarquait quatre fois plus de mémoire vive. Et comme si ça suffisait pas, il y a même mis un mode deux joueurs. C'est vrai que le truc qui coince d'habitude, c'est que la DS originale n'a pas assez de RAM pour

Super Mario 64 enfin sur Nintendo DS avec un mode coop

Par : Korben ✨
19 juin 2026 à 08:51

À tous les nostalgiques de la Nintendo 64 et notamment de Super Mario 64, j'ai un petit truc cool à vous montrer. Tobi Friedly vient de sortir un portage du jeu sur Nintendo DS, et pas n'importe lequel, puisque celui-ci tourne sur la vraie console de 2004, et pas seulement sur la DSi qui embarquait quatre fois plus de mémoire vive. Et comme si ça suffisait pas, il y a même mis un mode deux joueurs.

C'est vrai que le truc qui coince d'habitude, c'est que la DS originale n'a pas assez de RAM pour charger toute la ROM du jeu d'un coup. Tobi a donc contourné le problème en faisant streamer les assets à la demande via NitroFS , le système de fichiers des cartouches DS.

Du coup, au lieu de tout balancer en mémoire d'un bloc, le jeu va piocher les niveaux et les textures au fur et à mesure qu'il en a besoin. C'est grâce à cette méthode ingénieuse qu'il a pu débloquer son portage sur la vraie DS, là où le portage précédent de Hydr8gon restait coincé sur DSi faute de place.

C'est d'ailleurs grâce au boulot de Hydr8gon que Tobi a construit le sien, en le modifiant et en l'adaptant suffisamment pour qu'il tourne sur tous les modèles de DS.

Au passage il a rebouché aussi deux bugs qui traînaient, et maintenant le jeu est finissable à 120 étoiles, et le son fonctionne enfin (avant c'était silence radio). La stabilité générale a aussi pris un bon coup de polish.

Le mode multijoueur, lui, réclame deux DS, chacune avec sa propre copie du jeu. C'est du coop local, parfait pour explorer le château à deux ou juste pour déconner ensemble, entre moustachus, dans un niveau de Mario.

Attention quand même, ce n'est pas un fichier .nds prêt à double-cliquer. Faut dumper vous-même la ROM de votre propre cartouche Super Mario 64, puis compiler le truc via Docker. Si vous bidouillez un peu l'émulation ou si vous utilisez des cartouches de type flashcart, vous savez que c'est le prix d'entrée habituel pour ce genre de projet de décompilation, notamment pour rester du bon côté niveau droits.

Super Mario 64, faut dire, c'est un peu le terrain de jeu favori de la scène decomp... on l'a déjà vu débarquer sur PlayStation 1 dans un sacré bordel technique, tourner en coop et en 4K sur PC avec SM64CoopDX, et on sait même que le jeu gaspillait joyeusement la mémoire de la N64 à l'origine grâce à ce genre de portage.

Si le projet vous intéresse, tout est sur le GitHub de Tobi Friedly .

Et si votre vieille DS a rendu l'âme, un émulateur comme melonDS fera tout aussi bien l'affaire.

Source

  • ✇Korben
  • GitHub désactive 73 dépôts Microsoft en 105 secondes pour stopper le ver Miasma
    GitHub a désactivé 73 dépôts appartenant à Microsoft en l'espace de 105 secondes, le temps de couper la propagation d'un ver baptisé Miasma. Un ver, vous le savez, c'est ce genre de logiciel malveillant qui se recopie tout seul d'un projet à l'autre, sans la moindre intervention humaine. Celui-là s'attaque directement aux développeurs, et plus précisément à leurs outils. Tout est parti du dépôt Azure/durabletask. Un compte de contributeur compromis y a poussé un commit piégé, qui déposait au pas

GitHub désactive 73 dépôts Microsoft en 105 secondes pour stopper le ver Miasma

9 juin 2026 à 18:21

GitHub a désactivé 73 dépôts appartenant à Microsoft en l'espace de 105 secondes, le temps de couper la propagation d'un ver baptisé Miasma.

Un ver, vous le savez, c'est ce genre de logiciel malveillant qui se recopie tout seul d'un projet à l'autre, sans la moindre intervention humaine. Celui-là s'attaque directement aux développeurs, et plus précisément à leurs outils.

Tout est parti du dépôt Azure/durabletask. Un compte de contributeur compromis y a poussé un commit piégé, qui déposait au passage quelques fichiers de configuration. Anodin, en apparence.

Sauf que ces fichiers déclenchaient une exécution de code à distance, autrement dit l'attaquant faisait tourner son propre code sur votre machine, dès l'instant où vous ouvriez le dépôt dans un éditeur. Et pas n'importe lesquels : les assistants de codage dopés à l'IA étaient explicitement visés, Claude Code, Gemini CLI et Cursor en tête. Objectif, siphonner les secrets d'accès au cloud et les configurations des outils de développement, surtout sous Linux.

La purge a frappé quatre organisations GitHub de Microsoft d'un coup : toute l'org Azure Functions, l'ensemble de la famille Durable Task, et une série d'applications-exemples destinées à l'IA.

Problème, parmi les dépôts désactivés se trouvait Azure/functions-action, une brique que des milliers de projets appellent dans leurs chaînes d'automatisation, celles qui compilent et déploient le code sans intervention manuelle. Du coup, dès que functions-action@v1 a cessé de répondre, des pipelines entiers se sont effondrés en cascade, bien au-delà des serveurs de Microsoft.

Ce n'est pas la première sortie de Miasma. Le 19 mai, le ver visait déjà le paquet durabletask sur PyPI, le dépôt public où les développeurs Python piochent leurs briques de code : trois versions vérolées y ont été publiées en 35 minutes. Le 3 juin, c'est plus de 50 paquets npm, l'équivalent côté JavaScript, qui passaient à la moulinette.

Le retour sur durabletask interroge. Pour Ashish Kurmi, directeur technique de la société de sécurité StepSecurity, les jetons d'accès du compte développeur déjà compromis lors de l'attaque sur PyPI n'avaient visiblement pas tous été révoqués. La même porte est restée grande ouverte.

Côté filiation, l'éditeur de sécurité Snyk décrit Miasma comme un descendant de Mini Shai Hulud, un ver revendiqué par le groupe cybercriminel TeamPCP, qui a ensuite gentiment publié son code en open source. Microsoft, de son côté, n'a pas répondu aux sollicitations de la presse.

Bref, un seul commit, et c'est tout un pan de l'infrastructure des développeurs qui tremble.

Source : The Register

  • ✇Korben
  • Un développeur de malware oublie son propre token GitHub dans le code
    Voilà qui est rigolo. Un développeur malveillant a essayé de voler les fichiers sensibles des utilisateurs de Claude (l'assistant IA d'Anthropic, concurrent d'OpenAI sur les modèles de langage) en uploadant un package npm piégé. Sauf que dans son code, il a laissé son propre token d'authentification GitHub privé. Les chercheurs n'ont eu qu'à le récupérer pour remonter jusqu'à lui. Le package s'appelait mouse5212-super-formatter. Il se présentait comme un utilitaire interne de synchronisation de

Un développeur de malware oublie son propre token GitHub dans le code

28 mai 2026 à 14:51

Voilà qui est rigolo. Un développeur malveillant a essayé de voler les fichiers sensibles des utilisateurs de Claude (l'assistant IA d'Anthropic, concurrent d'OpenAI sur les modèles de langage) en uploadant un package npm piégé.

Sauf que dans son code, il a laissé son propre token d'authentification GitHub privé. Les chercheurs n'ont eu qu'à le récupérer pour remonter jusqu'à lui.

Le package s'appelait mouse5212-super-formatter. Il se présentait comme un utilitaire interne de synchronisation de déploiement, mais en pratique, il scannait le répertoire local de l'utilisateur, encodait tous les fichiers en base64 (un format texte qui permet de transporter des données binaires), puis les uploadait sur un dépôt GitHub contrôlé par l'attaquant via l'API Contents.

La cible : les fichiers laissés par Claude Code (la version en ligne de commande de l'assistant IA d'Anthropic) sur le système, qui peuvent contenir des clés API, des tokens, ou des bouts de code propriétaire.

Le package a fait 676 téléchargements avant d'être supprimé par npm (le registre de packages JavaScript le plus utilisé au monde). C'est limité, mais pas anecdotique. 

Le compte GitHub utilisé pour la campagne a été créé le 26 mai 2026, soit quelques heures seulement avant la première version malveillante. Une opération préparée à la va-vite donc.

La bourde monumentale, c'est donc ce token GitHub privé hardcodé dans le code en fallback, au cas où la variable d'environnement ne soit pas définie.

Du coup, les chercheurs d'OX Security (une boîte spécialisée dans la sécurité des dépendances open-source) ont pu accéder directement au dépôt de l'attaquant, lister tous les fichiers volés, et confirmer l'ampleur de l'opération. C'est le genre d'erreur qu'on pardonne à un débutant sur un projet perso. Pas à quelqu'un qui essaie de monter une campagne d'exfiltration.

Les chercheurs notent aussi que le code a tout l'air d'avoir été pondu par une IA un peu foireuse. Variables mal nommées, structure approximative, gestion d'erreurs incohérente. Bref, du "slop" (terme utilisé pour qualifier les productions IA bâclées) avec toutes les négligences que ça implique. Et ce n'est probablement qu'un avant-goût. Avec la généralisation des assistants IA pour coder, n'importe qui peut désormais bricoler un malware fonctionnel sans rien connaître au développement. Et faire des erreurs de débutant en passant.

En tout cas, ça reste comique. Un attaquant piégé par son propre token. Bonne vanne.

Source : The Hacker News

  • ✇Korben
  • Ce kit de phishing ouvre les comptes Microsoft 365 sans voler le mot de passe
    Voler un mot de passe ? C'est presque devenu accessoire. Le FBI a lancé une alerte sur Kali365, un kit de piratage qui s'introduit dans les comptes Microsoft 365 d'une entreprise sans jamais avoir besoin du mot de passe, ni du fameux code de la double authentification. La protection que beaucoup imaginent solide ne sert plus à grand-chose ici. Hélas. Kali365 n'est pas un virus classique. C'est ce qu'on appelle un kit de phishing en location : un service clé en main, vendu un peu comme un abonnem

Ce kit de phishing ouvre les comptes Microsoft 365 sans voler le mot de passe

22 mai 2026 à 15:55

Voler un mot de passe ? C'est presque devenu accessoire. Le FBI a lancé une alerte sur Kali365, un kit de piratage qui s'introduit dans les comptes Microsoft 365 d'une entreprise sans jamais avoir besoin du mot de passe, ni du fameux code de la double authentification.

La protection que beaucoup imaginent solide ne sert plus à grand-chose ici. Hélas.

Kali365 n'est pas un virus classique. C'est ce qu'on appelle un kit de phishing en location : un service clé en main, vendu un peu comme un abonnement à un logiciel, sauf qu'il sert à pirater. Repéré depuis avril et distribué via la messagerie Telegram, il permet à n'importe quel apprenti pirate de lancer une campagne sans compétences techniques particulières. Le kit fournit les emails piégés rédigés par une IA, des modèles de campagne tout prêts, et même un tableau de bord pour suivre ses victimes en temps réel, la totale donc.

Cette méthode porte un nom, le device code phishing, et elle est redoutable de simplicité. La victime reçoit un email qui imite un service de partage de documents, avec un petit code et une consigne : aller sur une page Microsoft pour rentrer le code. Sauf que cette page-là est la vraie page de Microsoft, du coup zéro méfiance.

Rien à signaler du côté de l'antivirus, rien de suspect dans l'adresse du site. La personne entre le code en toute confiance. Et là, sans s'en rendre compte, elle vient d'autoriser l'appareil du pirate à se connecter à son compte.

À partir de là, l'attaquant récupère un jeton d'accès, ce que le jargon appelle un token OAuth. C'est un laissez-passer numérique : une fois qu'on l'a, plus besoin du mot de passe ni d'un nouveau code pour entrer.

Avec ce jeton, le pirate conserve un accès continu à la boîte mail Outlook, à la messagerie Teams et au stockage OneDrive de sa victime. Et comme il n'a jamais touché au mot de passe, le réinitialiser en urgence ne bloque même pas l'intrus.

Le procédé n'a rien de marginal. Sur des campagnes de ce genre, des chercheurs en sécurité ont compté des centaines de comptes piégés chaque jour, avec une nette préférence pour les profils liés à la paie et à la comptabilité, là où l'argent circule le plus.

Le FBI conseille aux entreprises de carrément désactiver ce mode de connexion par code dans les réglages d'administration de Microsoft. Encore faut-il que les services informatiques prennent le temps de s'en occuper.

Source : The Register

  • ✇Korben
  • Fabriquer un circuit imprimé sans aucun logiciel, juste avec un marqueur
    Un bricoleur connu sous le pseudo ALTco a fabriqué un circuit imprimé sans toucher au moindre logiciel. Pas de conception sur ordinateur, pas de commande envoyée à une usine. Juste un marqueur, une plaque de cuivre et un bain chimique. Rien d'autre. La méthode date d'avant l'informatique, et elle fonctionne toujours aussi bien. Le circuit imprimé, c'est cette plaque qu'on trouve dans absolument tous les appareils électroniques : sur sa surface courent de fines pistes de cuivre qui relient les co

Fabriquer un circuit imprimé sans aucun logiciel, juste avec un marqueur

22 mai 2026 à 13:18

Un bricoleur connu sous le pseudo ALTco a fabriqué un circuit imprimé sans toucher au moindre logiciel. Pas de conception sur ordinateur, pas de commande envoyée à une usine. Juste un marqueur, une plaque de cuivre et un bain chimique. Rien d'autre.

La méthode date d'avant l'informatique, et elle fonctionne toujours aussi bien.

Le circuit imprimé, c'est cette plaque qu'on trouve dans absolument tous les appareils électroniques : sur sa surface courent de fines pistes de cuivre qui relient les composants entre eux.

Aujourd'hui, on les dessine sur un logiciel spécialisé, le logiciel EDA (conception électronique assistée par ordinateur), avant de transmettre le fichier à un fabricant qui se charge du reste. ALTco a tout simplement zappé cette étape.

Sa méthode tient en quelques gestes. Il part d'une plaque de cuivre brut, qu'il nettoie soigneusement pour que l'encre accroche bien. Puis il dessine directement les pistes du circuit à la main, au marqueur permanent.

La plaque part ensuite tremper plusieurs minutes dans un bain de perchlorure de fer, un produit chimique qui ronge le cuivre. Le marqueur, lui, protège le cuivre qu'il recouvre, et tout le reste finit dissous. Il ne reste plus qu'à rincer à l'eau puis à l'alcool pour effacer le marqueur, et le circuit apparaît.

Avant d'arriver à ce résultat propre, ALTco a pas mal tâtonné. Il a testé différents marqueurs et peintures censés résister à la gravure, et même des produits gravants faits maison, avant de revenir au perchlorure de fer, le grand classique du genre.

Le circuit qui sort de tout ça n'est pas un gadget de démonstration : c'est un petit contrôleur de ventilateur, qui pilotera un absorbeur de fumée pour ses séances de soudure.

On peut se demander pourquoi s'embêter avec ça, alors qu'une plaque propre coûte quelques euros chez un fabricant.

Pour une petite carte unique, faite chez soi en une après-midi, ça évite d'attendre une livraison et de passer par une commande minimum par exemple. Et puis il y a le plaisir de fabriquer soi-même, du début à la fin.

Le plus étonnant arrive à la fin. Un tracé fait main peut être électriquement meilleur qu'un tracé parfait. Les pistes dessinées au marqueur forment des courbes douces, là où un logiciel génère souvent des angles bien nets. Or ces angles renvoient une partie du signal électrique vers l'arrière, un peu comme un écho qui rebondit.

Les courbes, elles, laissent le signal filer sans accroc. Sur des circuits rapides, ça change vraiment quelque chose.

Bref, une méthode lente, salissante et imprécise. Mais voir un circuit naître d'un marqueur et d'un bac de liquide, c'est quand même autre chose qu'un produit expédié en usine.

Source : Huckster.io

  • ✇Korben
  • Les clés API Google encore en vie même après leur suppression
    Vous supprimez une clé API Google qui a fuité , et l'interface vous confirme que c'est bien réglé, que la clé ne fonctionne plus. Alors vous commencez à vous détendre en vous disant que vous avez bien fait votre boulot. BAH NAN ! Car vous ne le savez pas, mais cette clé va continuer de fonctionner encore durant 23 minutes. C'est en tout cas ce qu'ont mesuré les chercheurs d'Aikido Security en testant ce truc tout bête de révoquer une clé, puis de taper sur l'API en boucle pour voir quand ça s'ar

Les clés API Google encore en vie même après leur suppression

Par : Korben ✨
22 mai 2026 à 09:43

Vous supprimez une clé API Google qui a fuité , et l'interface vous confirme que c'est bien réglé, que la clé ne fonctionne plus. Alors vous commencez à vous détendre en vous disant que vous avez bien fait votre boulot.

BAH NAN !

Car vous ne le savez pas, mais cette clé va continuer de fonctionner encore durant 23 minutes. C'est en tout cas ce qu'ont mesuré les chercheurs d'Aikido Security en testant ce truc tout bête de révoquer une clé, puis de taper sur l'API en boucle pour voir quand ça s'arrêtait vraiment.

Et résultat des courses, une clé API classique survit en moyenne 16 minutes après sa suppression, et jusqu'à 23 minutes dans le pire des cas. Cela veut dire que pendant tout ce temps, un attaquant qui a récupéré votre clé peut continuer de l'utiliser peinard. Et vous n'avez aucun moyen de couper plus vite, ni même de savoir quand ça s'arrête pour de bon.

Ce sont les clés API de Schrödinger le bordel... Techniquement comme vous vous en doutez, c'est surtout une histoire de propagation car Google ne tue pas la clé d'un coup sur tous ses serveurs, mais l'info se diffuse petit à petit, et chaque serveur arrête de l'accepter à son rythme. Le souci, c'est que ce délai et largement suffisant par exemple pour vider un bucket pendant que vous pensez que le danger est écarté.

Le plus beau, c'est que Google sait parfaitement faire vite quand il veut puisque les clés de compte de service, elles, sont coupées en 5 secondes. et les clés Gemini récentes en 1 minute. Du coup, ces 16 minutes de moyenne sur les vieilles clés API n'ont rien d'une fatalité technique... c'est juste un choix ! Aikido a bien sûr remonté le problème, et Google a bizarrement classé le ticket en « won't fix », en expliquant que ce délai de propagation était une propriété connue du système, et pas une faille de sécurité.

Donc si vous gérez des clés Google en prod, partez du principe qu'une clé compromise reste exploitable une bonne demi-heure après sa révocation. Et surtout, mettez en place des plafonds de dépenses bien serrés sur votre projet parce que le vrai cauchemar, c'est moins l'accès que la facture qui débarque ensuite. On a déjà vu des devs se prendre des notes à cinq chiffres à cause d'une clé qui traîne, et des utilisateurs Google Cloud facturés par erreur .

Source : Aikido Security

  • ✇Korben
  • Créez une passerelle SMS à partir d'un vieux smartphone
    Votre vieux Galaxy S5 qui prend fort la poussière dans un tiroir, mérite mieux je crois ! Un dev, Capcom6 a mis en ligne SMS Gateway for Android , une app Kotlin sous licence Apache 2.0 qui transforme n'importe quel smartphone (Android 5.0+) en passerelle SMS programmable. Cela vous permet de récupérer une API REST pour ensuite envoyer et recevoir vos SMS avec votre propre téléphone et votre propre SIM et ainsi vous passer de services payants équivalents. Il y a 3 modes au choix. Le mode local q

Créez une passerelle SMS à partir d'un vieux smartphone

Par : Korben ✨
21 mai 2026 à 07:01

Votre vieux Galaxy S5 qui prend fort la poussière dans un tiroir, mérite mieux je crois !

Un dev, Capcom6 a mis en ligne SMS Gateway for Android , une app Kotlin sous licence Apache 2.0 qui transforme n'importe quel smartphone (Android 5.0+) en passerelle SMS programmable. Cela vous permet de récupérer une API REST pour ensuite envoyer et recevoir vos SMS avec votre propre téléphone et votre propre SIM et ainsi vous passer de services payants équivalents.

Il y a 3 modes au choix. Le mode local quand l'app lance un serveur HTTP sur le port 8080, accessible depuis votre réseau. Le mode cloud où l'app se connecte au service tiers api.sms-gate.app, ce qui est pratique pour ceux qui ont une IP dynamique ou plusieurs appareils. Et le mode "private server" qui permet d'héberger le backend chez vous, en totale autonomie.

Mais dans tous les cas, les requêtes restent les mêmes à savoir du bon vieux POST JSON avec basic auth.

Et côté fonctionnalités, y'a tout ce qu'il faut. Multi-SIM si votre téléphone est compatible, messages multipart automatiquement découpés pour les SMS longs, suivi de statut en temps réel (sent, delivered, failed), webhooks pour 8 événements différents (sms:received, sms:sent, sms:delivered, sms:data-received, mms:downloaded, system:ping...). Et puis du chiffrement bout-en-bout activé sur le mode cloud, comme ça personne ne peut lire vos messages en clair.

Maintenant vous vous demandez peut-être à quoi ça peut servir ??

Bah je pense à de l'envoi SMS 2FA pour vos applications, tout ce qui est messages transactionnels (confirmations de commande, rappels de RDV), des notifications push via SMS, et même du data SMS binaire pour piloter des périphériques IoT à distance. Pourquoi pas ? Y'a plus de limites après... Ah et y'a aussi une intégration n8n officielle (ici sur le repo example-webhooks-n8n ) pour brancher l'API à vos workflows, plus une bibliothèque PHP sur Packagist. Bref, y'a un petit écosystème qui commence à se développer autour.

Pour l'installer, oubliez le Play Store. capcom6 distribue uniquement des APK sur les GitHub Releases. Faut donc activer les sources inconnues, télécharger le .apk, et installer manuellement.

Après quand on fait le calcul côté pognon c'est vite vu. Twilio par exemple facture $0.0083 par SMS aux US, plus 1,15 $ / mois par numéro, plus les frais. Donc pour 1000 SMS par mois c'est vite entre 50 à 80 $. Avec SMS Gateway for Android et votre forfait perso, vous ne payez rien d'autre que votre forfait...

Après y'a quelques limites à connaître... Par exemple, si vous pensiez faire de l'envoi massif pour du marketing (comprenez du spam), votre opérateur va évidemment bloquer rapidement votre SIM. Et puis évidemment, faut que le téléphone soit allumé h24 avec sa connexion data activée. Donc pour du transactionnel léger c'est nickel mais pour du mass-mailing, oubliez ! De toute façon, n'oubliez pas, y'a une place pour vous en enfer, les spammeurs.

Voilà, donc si vous avez un vieux smartphone Android qui fait dodo dans un tiroir et que vous avez besoin d' une API SMS pour vos automations perso ou votre stack interne, c'est une alternative à Twilio très sympa !

  • ✇Korben
  • Anthropic rachète Stainless, l'outil qui fabrique aussi les SDK de ses concurrents
    Anthropic, la boîte derrière l'IA Claude, a racheté Stainless pour plus de 300 millions de dollars. Stainless, c'est un nom que le grand public ne connaît pas, mais l'outil est partout : il transforme automatiquement la spécification d'une API, l'interface par laquelle deux logiciels se parlent, en SDK. Pour rappel, un SDK, c'est un ensemble de bibliothèques de code prêtes à l'emploi pour les développeurs, ici dans une dizaine de langages comme Python, TypeScript, Go ou Java. En clair, quand un

Anthropic rachète Stainless, l'outil qui fabrique aussi les SDK de ses concurrents

20 mai 2026 à 15:05

Anthropic, la boîte derrière l'IA Claude, a racheté Stainless pour plus de 300 millions de dollars. Stainless, c'est un nom que le grand public ne connaît pas, mais l'outil est partout : il transforme automatiquement la spécification d'une API, l'interface par laquelle deux logiciels se parlent, en SDK.

Pour rappel, un SDK, c'est un ensemble de bibliothèques de code prêtes à l'emploi pour les développeurs, ici dans une dizaine de langages comme Python, TypeScript, Go ou Java.

En clair, quand un développeur veut brancher son application sur l'API de Claude, il utilise un SDK généré par Stainless. La boîte, fondée en 2022 par un ancien ingénieur de Stripe, a produit chaque SDK officiel d'Anthropic depuis les tout débuts de l'API Claude. Le rachat consolide donc une brique que l'entreprise utilisait déjà tous les jours.

Stainless ne s'arrête pas aux SDK. La société fournit aussi de l'outillage pour les serveurs MCP, le protocole poussé justement par Anthropic qui permet aux IA de se connecter à des outils et des données externes. Du coup le rachat fait sens à double titre : Anthropic met la main sur la génération de SDK et sur une partie de l'infrastructure MCP, deux briques où il veut clairement être central.

Sauf que voilà le détail un peu fou. Stainless ne servait pas qu'Anthropic, et sa liste de clients comprend OpenAI, Google DeepMind, Perplexity, Groq et Cloudflare, autrement dit la plupart des concurrents directs d'Anthropic sur le marché de l'IA.

La suite est sans pitié. Anthropic ferme tous les produits hébergés de Stainless, générateur de SDK compris. Les clients actuels gardent les SDK déjà générés et peuvent les modifier, mais le robinet, lui, est coupé. Tout le monde va devoir trouver une alternative ou rapatrier la génération de SDK en interne.

Pourquoi mettre 300 millions sur la table pour ça ? Parce que la vraie bataille n'est plus seulement sur les modèles d'IA, mais sur la couche d'outillage autour.

Celui qui contrôle la façon dont les développeurs branchent leurs applications et orchestrent leurs agents IA contrôle une partie de l'écosystème. OpenAI muscle son propre Agents SDK de son côté. Anthropic, lui, préfère racheter directement l'usine, et au passage priver ses concurrents d'un fournisseur bien pratique.

Source : TechCrunch

  • ✇Korben
  • GitHub hack - Une extension VS Code piège un employé
    Alors celle-là, elle est incroyable les copains ! Le piratage du jour vient d'être confirmé par la plateforme qui héberge une bonne moitié du code de la tech mondiale ! En effet, Github a subit un accès non autorisé à ses propres dépôts internes, à cause d'une extension VS Code piégée installée sur l'ordi d'un employé ! L'annonce officielle est tombée sur le compte X de l'entreprise à l'instant et c'est comme ça que je suis tombé dessus. GitHub dit avoir détecté et maitrisé la compromission hier

GitHub hack - Une extension VS Code piège un employé

Par : Korben ✨
20 mai 2026 à 07:11

Alors celle-là, elle est incroyable les copains !

Le piratage du jour vient d'être confirmé par la plateforme qui héberge une bonne moitié du code de la tech mondiale ! En effet, Github a subit un accès non autorisé à ses propres dépôts internes, à cause d'une extension VS Code piégée installée sur l'ordi d'un employé !

L'annonce officielle est tombée sur le compte X de l'entreprise à l'instant et c'est comme ça que je suis tombé dessus.

GitHub dit avoir détecté et maitrisé la compromission hier. L'extension VS Code malveillante a été retirée, le poste de travail isolé, et la rotation des secrets critiques est en cours. Côté impact, le message officiel c'est que "À l'heure actuelle, nous ne disposons d'aucune indication laissant supposer que les informations des clients stockées en dehors des référentiels internes de GitHub aient été compromises".

Du coup, nos repos perso, nos orgs, nos enterprises...etc, rien n'est normalement touché à ce stade, en tout cas selon ce que GitHub voit pour l'instant.

Le thread officiel de GitHub sur l'incident

Sauf que sur le darkweb, un acteur baptisé TeamPCP, repéré par le compte de threat intel Dark Web Informer, prétend détenir et vendre environ 4000 dépôts privés volés à GitHub. L'entreprise n'a pas publié de chiffre officiel mais a reconnu que la revendication était cohérente avec son enquête en cours, le rapport complet arrivera une fois bouclé.

Bref, à prendre au sérieux mais avec des pincettes le temps que ça se vérifie !

C'est vrai qu'en ce moment, on est dans une vague d'attaques supply chain qui ciblent les extensions VS Code , qui sont devenues un vrai vecteur d'attaque reconnu. Et tout le monde peut se faire piéger (même les ingés GitHub !).

Donc pour vous qui me lisez, la règle de base reste la même : Installez une extension VS Code uniquement si vous faites confiance à l'éditeur. En pratique, faut regarder le tag publisher verified, l'âge du compte, le nombre d'installs et la date de la dernière release, et surtout méfiez-vous des forks fraîchement republiés sous des noms qui ressemblent à un outil connu.

Pour suivre ça maintenant, le thread officiel et ses mises à jour sont sur le compte X de GitHub .

  • ✇Korben
  • vLLM-MLX - Pour remplacer l'API d'OpenAI par votre propre Mac
    Si vous avez un Mac avec une puce Silicon et que vous en avez marre de raquer pour des tokens à chaque requête API à un LLM à la con, y'a un projet qui mérite, je trouve, le détour. Ça s'appelle vLLM-MLX , et c'est un serveur d'inférence local qui transforme votre Mac en machine à générer du texte, à analyser des images et vidéos, et même capable de gérer de l'audio... et tout ça sans que l'inférence ne passe par le cloud des zaméricains. Pour installer le bouzin, ça se fait avec : uv tool insta

vLLM-MLX - Pour remplacer l'API d'OpenAI par votre propre Mac

Par : Korben ✨
18 mai 2026 à 11:23

Si vous avez un Mac avec une puce Silicon et que vous en avez marre de raquer pour des tokens à chaque requête API à un LLM à la con, y'a un projet qui mérite, je trouve, le détour. Ça s'appelle vLLM-MLX , et c'est un serveur d'inférence local qui transforme votre Mac en machine à générer du texte, à analyser des images et vidéos, et même capable de gérer de l'audio... et tout ça sans que l'inférence ne passe par le cloud des zaméricains.

Pour installer le bouzin, ça se fait avec :

uv tool install vllm-mlx

Puis vous lancez suivi du nom d'un modèle et hop, vous obtenez un endpoint API compatible OpenAI qui tourne en local sur votre machine :

vllm-mlx serve %MODEL%

Au début je pensais que j'étais parti pour une séance de configuration qui aller durer des heures mais en fait non. Par exemple moi j'ai lancé ça :

vllm-mlx serve mlx-community/GLM-4.7-Flash-4bit

Vous pouvez aussi opter pour un modèle plus petit :

vllm-mlx serve mlx-community/Qwen2.5-Coder-3B-Instruct-4bit

Du coup, si vos scripts causent déjà avec l'API d'OpenAI, basculer sur ça en local rien qu'en changeant l'URL de base, c'est un jeu d'enfant !

Côté perfs, et là je reprends les benchmarks officiels du repo (M4 Max 128 Go, mono-requête), on tourne autour de 418 tok/s sur un petit Qwen3-0.6B en 8-bit. Ensuite, ça tombe à environ 206 tok/s sur du Llama-3.2-3B et 128 tok/s sur un gros Qwen3-30B-A3B.

Le débit grimpe aussi quand plusieurs requêtes tapent en même temps à la porte... Donc sur les petits modèles ça file vite, mais par contre, sur les gros, faudra pas s'attendre à la même vitesse, hein... Et un Qwen3-30B vous bouffera dans les 18 Go de RAM unifiée, donc sur un Mac à 8 ou 16 Go vous pouvez oublier les gros modèles (Mais qui n'a pas encore un Mac Studio 128 Go ?? hein ? Quiiii ?).

Et c'est pas juste un serveur de texte comme je vous le disais, puisque le projet gère les modèles de vision type Gemma 3, Qwen3-VL, Pixtral, pour analyser images et les vidéos, et côté audio y'a du TTS natif (avec Kokoro, Chatterbox et compagnie) + de la transcription Whisper qui monte jusqu'à 197x le temps réel avec whisper-tiny, ou 55x avec le modèle turbo.

Attention par contre, il vous faudra la version avec l'extra audio (espeak-ng et un modèle spaCy), car c'est pas inclus dans la commande de base. Mais une fois en place, y a de quoi se monter un vrai assistant vocal 100% local et causer synthèse vocale sans louer un GPU chez Azure ou AWS.

Même le endpoint /v1/messages est compatible Anthropic, ce qui permet de brancher Claude Code ou OpenCode directement sur votre serveur comme je vous l'expliquais ici . Suffit d'utiliser ces variables d'environnement et votre éditeur IA ira taper sur votre propre machine plutôt que sur des serveurs distants.

unset ANTHROPIC_API_KEY
export ANTHROPIC_BASE_URL="http://127.0.0.1:8000"
export ANTHROPIC_AUTH_TOKEN="dummy"
claude --model mlx-community/GLM-4.7-Flash-4bit

ou :

claude --model mlx-community/Qwen2.5-Coder-3B-Instruct-4bit

Avouez que c'est trop cool hein ? Vous pouvez trouver tous les modèles pour MLX ici sur HugginFace si vous cherchez un truc plus spécifique.

Y'a aussi un endpoint d'embeddings pour faire du RAG en local, de l'appel d'outils externe via MCP avec une douzaine de parsers et le support des modèles de raisonnement qui extraient proprement le processus de réflexion entre les balises <think> pour Qwen3 et DeepSeek-R1.

J'adore !

Côté bidouille si vous vous lancer, sachez qu'il y a 2 ou 3 flags vachement utiles à connaitre.

Par exemple, le --warm-prompts (couplé au continuous batching) précharge les préfixes populaires au démarrage et, dans le bon scénario, vous gagne entre 1,3 et 2,25x sur le temps de première réponse.

Sur les gros modèles MoE genre Qwen3-30B-A3B, le --moe-top-k réduit aussi le nombre d'experts activés pour gratter 7 à 16% de débit. Le hic, c'est que vous y perdez un poil de qualité.

Et pour les agents qui brassent des contextes énormes, le --ssd-cache-dir déverse le cache de préfixes sur SSD pour soulager la RAM, au prix d'un peu de latence quand ça tape sur le disque.

Bref, si vous cherchez une alternative à Ollama qui tape direct dans le GPU de votre Mac avec du batching et du multimodal, le tout avec une compatibilité API aux petits oignons, foncez les amis ! C'est open source (Apache 2.0), ça dépote et ça s'installe en deux commandes !

Merci à Christian pour la découverte !

  • ✇Korben
  • GridTV, le guide TV open source pour votre setup IPTV
    Bon, maintenant que vous avez vos chaînes IPTV qui tournent via Tunarr ou xTeVe, votre flux XMLTV est super propre. Mais il vous manque un seul truc : Un guide de programme potable. Hé bien GridTV développé par l'ami JohnnyBeGood est là pour ça ! GridTV c'est une interface web en PHP/JS/CSS qui transforme toute source XMLTV compatible en guide TV façon grille horizontale, avec l'indicateur "maintenant" visible en permanence, un barre de progression du programme en cours, et les émissions passées

GridTV, le guide TV open source pour votre setup IPTV

Par : Korben ✨
7 mai 2026 à 10:30

Bon, maintenant que vous avez vos chaînes IPTV qui tournent via Tunarr ou xTeVe, votre flux XMLTV est super propre. Mais il vous manque un seul truc : Un guide de programme potable.

Hé bien GridTV développé par l'ami JohnnyBeGood est là pour ça !

GridTV c'est une interface web en PHP/JS/CSS qui transforme toute source XMLTV compatible en guide TV façon grille horizontale, avec l'indicateur "maintenant" visible en permanence, un barre de progression du programme en cours, et les émissions passées qui se retrouvent automatiquement grisées. C'est exactement ce à quoi ressemble le guide TV de votre box opérateur, mais en mieux, et pour votre propre contenu !

Pour le déploiement, Docker est le chemin recommandé plutôt que de tout configurer à la main : git clone, cd GridTV, docker compose up -d, et hop, vous ouvrez localhost:8080.

Un assistant de setup vous demandera alors votre source EPG obligatoire et une playlist M3U si notamment vous voulez utiliser le player intégré, et une fois validé, vous retombez directement sur la grille.

Ça se met en place en moins de 5 min mais si vous préférez installer sans Docker, ou plutôt sans la couche conteneur, il y a également sur le Github des exemples de config pour Apache et Nginx dans la doc. Caddy fonctionnera aussi et la doc concernant Traefik, c'est pour le cas où GridTV tourne en Docker mais derrière un reverse proxy.

Côté fonctionnalités, le player HLS s'ouvre en PiP (Picture in Picture) dans un coin en cliquant sur une chaîne et le multi-EPG vous permettra de configurer plusieurs sources avec un petit switch. GridTV propose aussi des rappels de programme via notifications navigateur, 15 minutes avant la diffusion. Mais pour en profiter, l'onglet du browser doit rester ouvert et les notifs autorisées.

Et il y a aussi possibilité de générer un export PDF/PNG du guide sur 24h. C'est pas indispensable mais ça permet pour ceux qui veulent d'imprimer le programme de la soirée.

Chaque visiteur de l'instance peut aussi utiliser / paramétrer ses propres URLs XMLTV/M3U, car rien n'est stocké côté serveur. Hé oui, tout passe par le localStorage du navigateur donc vous pouvez partager votre instance avec autant de monde que vous voulez, ça n'a pas d'impact.

La version Steampunk

Et il y a même des thèmes genre cyberpunk, steampunk, magazine ou le thème par défaut. Et la page de monitoring admin expose également une sonde accessible via un endpoint compatible Uptime Kuma qui renvoie le code HTTP 200 si tout va bien. Sinon, ce sera du code 503. Bref, ça vous connaissez...

Bref, l'outil est jeune mais bien construit et une démo live tourne ici guide.demo.johnnybegood.fr . A suvire donc....

Et si vous cherchez juste des listes de chaînes IPTV gratuites , c'est par là !

  • ✇Korben
  • WordPress : un pirate achète 30 plugins et y plante une backdoor
    Une attaque par la chaîne d'approvisionnement a frappé WordPress début avril. Un individu a racheté une trentaine de plugins via la marketplace Flippa, y a injecté du code malveillant et a attendu huit mois avant de l'activer. WordPress a fermé les 31 plugins concernés le 7 avril, mais la mise à jour officielle ne suffit pas à nettoyer les sites touchés. L'attaque est redoutable par sa simplicité. Un individu, identifié sous le prénom "Kris", a racheté pour plusieurs centaines de milliers d'euro

WordPress : un pirate achète 30 plugins et y plante une backdoor

Par : Korben
16 avril 2026 à 15:45

Une attaque par la chaîne d'approvisionnement a frappé WordPress début avril. Un individu a racheté une trentaine de plugins via la marketplace Flippa, y a injecté du code malveillant et a attendu huit mois avant de l'activer. WordPress a fermé les 31 plugins concernés le 7 avril, mais la mise à jour officielle ne suffit pas à nettoyer les sites touchés.

L'attaque est redoutable par sa simplicité. Un individu, identifié sous le prénom "Kris", a racheté pour plusieurs centaines de milliers d'euros un catalogue d'une trentaine de plugins WordPress sur Flippa, une marketplace de vente de sites et d'extensions. Ces plugins appartenaient à la société Essential Plugin / WP Online Support. Ils étaient actifs, mis à jour, et installés sur des milliers de sites.

En achetant le catalogue, l'acheteur a récupéré l'accès au dépôt officiel WordPress.org et a pu pousser des mises à jour directement aux utilisateurs. Le code malveillant a été injecté dès août 2025, mais il est resté dormant pendant huit mois. L'activation a eu lieu les 5 et 6 avril 2026.

Côté technique, l'attaque est assez vicieuse. Le module injecté (wpos-analytics) utilise une désérialisation PHP pour communiquer avec un serveur de commande. Et là, le point intéressant : au lieu d'utiliser un domaine classique pour piloter la backdoor, le malware résout l'adresse de son serveur C2 via un smart contract Ethereum, en interrogeant des points d'accès RPC publics. Résultat, couper un nom de domaine ne sert à rien. L'attaquant peut mettre à jour le smart contract à tout moment pour pointer vers un nouveau serveur.

Le payload injecte du code dans le fichier wp-config.php (environ 6 Ko) et crée un fichier wp-comments-posts.php, un nom assez proche des fichiers légitimes pour passer inaperçu. Le tout sert à afficher du spam SEO (liens, redirections, fausses pages) uniquement à Googlebot, ce qui rend l'attaque invisible pour le propriétaire du site.

WordPress.org a fermé les 31 plugins touchés le 7 avril et a poussé une mise à jour forcée le lendemain. Sauf que cette mise à jour ne nettoie pas le fichier wp-config.php, qui est le vrai point de persistance de la backdoor. Si vous avez l'un de ces plugins installé (Countdown Timer Ultimate, Popup Anything on Click, Post Grid and Filter Ultimate, WP Slick Slider, Album and Image Gallery Plus Lightbox, Responsive WP FAQ, entre autres), il faut aller vérifier votre wp-config.php manuellement et chercher un bloc de code d'environ 6 Ko qui n'a rien à y faire. Le fichier wp-comments-posts.php à la racine du site doit aussi être supprimé s'il est présent.

La vraie leçon ici, c'est que la confiance dans un plugin WordPress repose sur son historique, et qu'un changement de propriétaire peut tout remettre en question du jour au lendemain. WordPress.org ne vérifie pas les changements de mains sur les comptes développeurs, et n'a aucun mécanisme d'alerte quand un catalogue entier passe à un nouvel acheteur. Tant que ce trou existe, ce genre d'attaque peut se reproduire. Et le fait que la mise à jour officielle ne nettoie même pas les sites infectés, c'est quand même un problème.

Source : The Next Web

  • ✇Korben
  • sandbox-exec - L'outil de sandboxing caché de votre Mac
    Sandbox-exec, c'est un utilitaire en ligne de commande dont pas grand monde ne parle mais qui est intégré à macOS et qui permet de lancer n'importe quel programme dans un bac à sable sécurisé, avec des restrictions sur mesure. Apple l'a déprécié, mais ça marche toujours... et c'est franchement pratique. Avec ce truc, il suffit de créer un petit fichier de profil (extension .sb) et vous lancez votre commande avec sandbox-exec -f profil.sb votre_commande. En faisant ça, le programme de votre choix

sandbox-exec - L'outil de sandboxing caché de votre Mac

Par : Korben
16 avril 2026 à 09:00

Sandbox-exec, c'est un utilitaire en ligne de commande dont pas grand monde ne parle mais qui est intégré à macOS et qui permet de lancer n'importe quel programme dans un bac à sable sécurisé, avec des restrictions sur mesure. Apple l'a déprécié, mais ça marche toujours... et c'est franchement pratique.

Avec ce truc, il suffit de créer un petit fichier de profil (extension .sb) et vous lancez votre commande avec sandbox-exec -f profil.sb votre_commande. En faisant ça, le programme de votre choix tournera dans un environnement verrouillé où il ne pourra accéder qu'à ce que vous autorisez explicitement.

Ensuite, vous avez deux philosophies. Soit vous bloquez tout par défaut et vous n'autorisez que le strict nécessaire, c'est-à-dire l'approche parano parfaite pour tester du code louche. Soit vous autorisez tout et vous ne bloquez que ce qui craint. La première est plus sûre, la seconde plus rapide à mettre en place.

Voici un exemple concret pour avoir un terminal coupé du réseau. Suffit de 3 lignes de profil (c'est du LISP) :

(version 1)
(allow default)
(deny network*)

Et là, sandbox-exec -f no-network.sb zsh vous donnera un shell qui peut tout faire sauf se connecter à Internet. Sympa donc pour lancer un script dont vous n'êtes pas sûr à 100% ! Par contre, pour les apps GUI c'est plus capricieux... en testant la même chose avec Firefox, le navigateur arrive quand même à se connecter (il passe probablement par un autre mécanisme réseau). Du coup, pour les applications graphiques, faudra tester au cas par cas.

D'ailleurs, macOS embarque déjà plein de profils dans /System/Library/Sandbox/Profiles/. Ce sont ceux qu'Apple utilise pour ses propres services et certains sont bien commentés, ce qui en fait une super base pour créer les vôtres (Votre IA personnelle en sera ravie ^^).

Côté debug, si un programme plante dans le bac à sable sans explication, la commande log stream --predicate 'sender=="Sandbox"' affichera en temps réel toutes les opérations bloquées. Comme ça, vous voyez exactement ce qui coince et vous ajustez votre profil en conséquence.

Après comme je vous le disais en intro, Apple a officiellement déprécié sandbox-exec car elle préfère pousser son App Sandbox via Xcode, pensé pour les apps du Mac App Store. Mais bon pour isoler rapidement un script en ligne de commande, l'App Sandbox ne sert à rien. Du coup, cet utilitaire CLI reste le seul moyen natif de faire du sandboxing à la volée sur Mac.

Et avec les agents IA qui exécutent du code YOLO partout sur nos machines, avoir un outil comme celui-ci pour isoler un process sans rien installer, c'est plutôt cool je pense ! Si vous utilisez déjà des outils comme Opcode (une GUI pour Claude Code) qui intègrent déjà du sandboxing, c'est exactement cette couche en dessous. Il s'agit de Seatbelt, le framework de sandboxing kernel de macOS, qui fait tout le boulot au niveau OS.

Bref, si la sécurité de votre Mac vous préoccupe, allez gratouiller un peu ça. Tous les profils sont déjà sur votre machine, y'a plus qu'à jouer avec !

Source

  • ✇Korben
  • Claude Code prend la fuite
    60 Mo de source maps (ces fichiers qui permettent de remonter du code minifié à l'original) ont été oubliés dans un paquet npm. Et voilà comment Anthropic a involontairement balancé en public le code source complet de Claude Code, son outil à 2.5 milliards de dollars de revenus annuels. Alors qu'est-ce qui s'est passé exactement ? Hé bien hier, la version 2.1.88 du package @anthropic-ai/claude-code sur le registre npm embarquait un fichier .map de 59.8 Mo. Un truc normalement réservé au debug in

Claude Code prend la fuite

Par : Korben
1 avril 2026 à 09:06

60 Mo de source maps (ces fichiers qui permettent de remonter du code minifié à l'original) ont été oubliés dans un paquet npm. Et voilà comment Anthropic a involontairement balancé en public le code source complet de Claude Code, son outil à 2.5 milliards de dollars de revenus annuels.

Alors qu'est-ce qui s'est passé exactement ?

Hé bien hier, la version 2.1.88 du package @anthropic-ai/claude-code sur le registre npm embarquait un fichier .map de 59.8 Mo. Un truc normalement réservé au debug interne, sauf que ce fichier .map contenait les pointeurs vers les 1 900 fichiers TypeScript originaux, en clair. Chaofan Shou, un développeur chez Solayer Labs, a alors repéré la boulette et l'a partagée sur X. Le temps qu'Anthropic réagisse, le code était déjà mirroré partout sur GitHub, avec 41 500+ forks en quelques heures. Autant dire que le dentifrice ne rentrera pas dans le tube !

Pour ma part, j'avais un petit dépôt à moi assez ancien avec quelques trucs relatifs à Claude Code, qui n'avait rien à voir avec tout ça, qui s'est même retrouvé striké... Ils ratissent large avec leur DMCA donc.

Et là, c'est la fête pour les curieux comme moi parce que les entrailles de l'outil révèlent pas mal de surprises. Côté architecture, on découvre environ 40 outils internes avec gestion de permissions, un moteur de requêtes de 46 000 lignes de TypeScript, un système multi-agents capable de spawner des essaims de sous-tâches en parallèle, et un pont de communication entre le terminal et votre éditeur VS Code ou JetBrains. Le tout tourne sur Bun (pas Node.js ^^) avec Ink pour l'interface terminal. Par contre, pas de tests unitaires visibles dans le dump.

Côté mémoire, c'est plutôt bien pensé puisqu'au lieu de tout stocker bêtement dans la fenêtre de contexte du modèle, l'outil utilise un fichier texte MEMORY.md ultra-léger (genre 150 caractères par entrée) qui sert d'index de pointeurs. Les vraies données, elles, sont distribuées dans des fichiers thématiques chargés à la demande, et les transcripts bruts ne sont jamais relus entièrement, mais juste fouillés à la recherche d'identifiants précis. L'agent traite en fait sa propre mémoire comme un "hint" ce qui le force à vérifier toujours le vrai code avant d'agir. En gros, il a une mémoire sceptique, et pour moi c'est clairement le truc le plus intéressant du dump.

Y'a aussi un truc qui s'appelle KAIROS (mentionné 150 fois dans le code) qui est un genre de mode daemon autonome. En fait, pendant que vous allez chercher votre café, l'agent tourne en arrière-plan et fait ce qu'ils appellent autoDream : il consolide sa mémoire dans des fichiers JSON, vire les contradictions et transforme les observations vagues en données structurées. Comme ça, quand vous revenez devant votre écran, le contexte est nettoyé.

Et puis le code balance aussi la roadmap interne d'Anthropic (bon courage au service comm ^^). On y trouve les noms de code des modèles... Capybara pour un variant de Claude 4.6, Fennec pour Opus 4.6, et un mystérieux Numbat qui n'est pas encore sorti. D'ailleurs, les commentaires internes révèlent que Capybara v8 a un taux de fausses affirmations qui tourne autour de 30%, ce qui est une grosse régression par rapport aux 17% de la v4. Y'a même un "Undercover Mode" qui permet à l'agent de contribuer à des repos publics sans révéler d'infos internes (c'est sympa pour les projets open source).

Anthropic a confirmé la fuite : "C'était un problème de packaging lié à une erreur humaine, pas une faille de sécurité. Aucune donnée client n'a été exposée." Mouais, attention quand même, parce que le code est déjà partout et n'en repartira pas. Et même si aucun secret client n'a fuité, exposer l'architecture complète d'un agent IA à 2.5 milliards de revenus, c'est pas rien non plus.

Bon, et maintenant qu'est-ce qu'on peut en faire ? Bah pas mal de choses en fait.

Par exemple, le système de mémoire auto-correcteur est un pattern directement réutilisable pour vos propres agents IA. L'architecture "index léger + fichiers à la demande" résout élégamment le problème de la pollution de contexte qui fait halluciner les LLM sur les longues sessions. Les +40 outils internes permettent aussi de comprendre comment structurer un système de permissions granulaires dans un agent autonome . Et le concept KAIROS/autoDream, la consolidation mémoire pendant l'idle, c'est une idée qu'aucun outil open source n'implémente encore. Autant dire que les alternatives open source à Claude Code ou Codex vont monter en gamme dans les jours qui viennent. Et le code est déjà nettoyé, réécris en Rust et mis sur GitHub si vous voulez fouiller. Bon, pas sûr que le pattern autoDream soit simple à reimplémenter, mais le système de mémoire oui.

Je trouve ça assez marrant que le code proprio d'une boite qui a aspiré tout l'open source du monde voire plus, sans autorisation, pour le revendre sous la forme de temps machine / tokens, devienne lui aussi en quelque sorte "open source" sans qu'on leur demande leur avis ^^. La vie est bien faite.

Maintenant, pour les développeurs qui publient sur npm, la leçon est limpide : Vérifiez votre .npmignore et votre champ files dans package.json. Ou plutôt, lancez la commande npm pack --dry-run dans votre terminal avant chaque publish. Ça prend 2 secondes et ça vous montre exactement ce qui sera inclus dans le paquet. Ça aurait évité 60 Mo de secrets industriels qui partent en public.

Bref, un .npmignore bien configuré, ça coûte 0 euro. Alors qu'une fuite de propriété intellectuelle évaluée à 2.5 milliards... un peu plus !

Source

  • ✇Korben
  • Axios, l'une des bibliothèques les plus populaires de npm, piratée pour installer un cheval de Troie
    La bibliothèque JavaScript Axios, téléchargée plus de 100 millions de fois par semaine, a été compromise. Un attaquant a détourné le compte du mainteneur principal pour y glisser un malware multiplateforme qui vise aussi bien macOS que Windows et Linux. Un compte piraté, deux versions vérolées Tout est parti du compte npm de jasonsaayman, le mainteneur principal d'Axios. L'attaquant a réussi à prendre le contrôle du compte, a changé l'adresse mail vers un ProtonMail anonyme, et a publié deux ver

Axios, l'une des bibliothèques les plus populaires de npm, piratée pour installer un cheval de Troie

Par : Korben
1 avril 2026 à 09:02

La bibliothèque JavaScript Axios, téléchargée plus de 100 millions de fois par semaine, a été compromise. Un attaquant a détourné le compte du mainteneur principal pour y glisser un malware multiplateforme qui vise aussi bien macOS que Windows et Linux.

Un compte piraté, deux versions vérolées

Tout est parti du compte npm de jasonsaayman, le mainteneur principal d'Axios. L'attaquant a réussi à prendre le contrôle du compte, a changé l'adresse mail vers un ProtonMail anonyme, et a publié deux versions malveillantes : axios 1.14.1 et axios 0.30.4.

Les deux ont été mises en ligne en l'espace de 39 minutes, et pas via le processus habituel. Au lieu de passer par GitHub Actions, le pipeline d'intégration continue du projet, les paquets ont été poussés directement avec la ligne de commande npm. Un détail qui aurait pu alerter plus tôt, mais qui est passé entre les mailles du filet pendant deux à trois heures avant que npm ne retire les versions concernées.

Un malware bien préparé, avec auto-destruction

Le plus vicieux dans l'affaire, c'est la méthode. Plutôt que de modifier directement le code d'Axios, l'attaquant a ajouté une dépendance fantôme appelée plain-crypto-js. Elle n'est jamais importée dans le code source, son seul rôle est d'exécuter un script d'installation qui fonctionne comme un programme d'installation de malware. 

Ce qui veut dire que dès que vous faites un npm install, le script contacte un serveur de commande en moins de deux secondes et télécharge un programme malveillant adapté à votre système : un daemon déguisé sur macOS, un script PowerShell sur Windows, une porte dérobée en Python sur Linux. Et une fois le malware déployé, le script se supprime, remplace son propre fichier de configuration par une version propre, et fait comme si de rien n'était. Même un npm list affiche alors un numéro de version différent pour brouiller les pistes.

Une attaque attribuée à la Corée du Nord

StepSecurity et Socket.dev ont été les premiers à repérer la compromission. Selon Ashish Kurmi, CTO de StepSecurity, ce n'est pas du tout une attaque opportuniste. La dépendance malveillante avait été préparée 18 heures à l'avance, trois programmes malveillants différents étaient prêts pour trois systèmes d'exploitation, et les deux branches de publication ont été touchées en moins de 40 minutes.

Elastic a de son côté relevé que le binaire macOS présente des similitudes avec WAVESHAPER, une porte dérobée en C++ déjà documentée par Mandiant et attribué à un acteur nord-coréen identifié sous le nom UNC1069. Pour les chercheurs en sécurité, le message est clair : si vous avez installé axios 1.14.1 ou axios 0.30.4, considérez votre machine comme compromise. Il faut supprimer la dépendance, faire tourner les identifiants, et dans certains cas, réinstaller la machine.

Franchement, c'est le genre d'attaque qui fait froid dans le dos. Axios, c'est une brique de base pour à peu près tous les projets JavaScript qui font des appels réseau. Et là, en deux heures, un attaquant a réussi à transformer cette brique en porte d'entrée pour un cheval de Troie, y compris sur Mac.

Le plus déroutant, c'est que le système de publication npm permet encore de pousser un paquet manuellement sans que personne ne bronche. Bon par contre, il faut reconnaître que StepSecurity et Socket.dev ont fait du bon boulot en détectant le problème aussi vite.

Sans eux, la fenêtre d'exposition aurait pu être bien plus large, c'est faramineux quand on y pense. Et quand on sait que la piste nord-coréenne revient de plus en plus souvent dans ce genre d'opérations, on se dit que la sécurité de la chaîne logicielle mérite qu'on s'y intéresse de près.

Source : The Register

  • ✇Korben
  • Fraude bancaire : des smartphones fantômes dans le cloud dupent les banques
    Les fraudeurs n'ont plus besoin de vrais téléphones pour vider des comptes bancaires. Des smartphones virtuels hébergés dans le cloud, louables quelques centimes de l'heure, imitent sans problème de vrais appareils et passent sous le radar des systèmes anti-fraude. Un smartphone qui n'existe pas Group-IB vient de publier un rapport qui fait froid dans le dos. Des plateformes comme GeeLark, Redfinger ou LDCloud proposent de louer des smartphones Android virtuels hébergés dans des datacenters, pou

Fraude bancaire : des smartphones fantômes dans le cloud dupent les banques

Par : Korben
26 mars 2026 à 15:19

Les fraudeurs n'ont plus besoin de vrais téléphones pour vider des comptes bancaires. Des smartphones virtuels hébergés dans le cloud, louables quelques centimes de l'heure, imitent sans problème de vrais appareils et passent sous le radar des systèmes anti-fraude.

Un smartphone qui n'existe pas

Group-IB vient de publier un rapport qui fait froid dans le dos. Des plateformes comme GeeLark, Redfinger ou LDCloud proposent de louer des smartphones Android virtuels hébergés dans des datacenters, pour 0,10 à 0,50 dollar de l'heure. À la base, ils sont prévus pour tester des apps ou gérer plusieurs comptes.

Sauf que les fraudeurs ont très vite compris l'intérêt du truc. Ces téléphones fantômes reproduisent tout ce qui fait un vrai smartphone : identifiant unique, adresse IP locale, géolocalisation crédible, et même des données de capteurs comme l'accéléromètre ou le gyroscope.

Votre banque croit parler à un iPhone à Paris. En réalité, c'est un serveur quelque part en Asie. Et le pire, c'est que ça marche. Les systèmes anti-fraude qui se basent sur l'empreinte de l'appareil n'y voient que du feu.

Revolut et Wise en vitrine sur le darknet

Là où ça devient concret, c'est quand on regarde ce qui se vend sur les forums criminels. Des comptes bancaires pré-vérifiés sur Revolut ou Wise, créés via ces cloud phones, s'échangent entre 50 et 200 dollars.

On parle de comptes mules utilisés pour recevoir et faire transiter de l'argent volé. Le tout à échelle industrielle. Côté chiffres, c'est vertigineux : 485 millions de livres de pertes liées à la fraude au Royaume-Uni en 2022.

Aux États-Unis, Deloitte projette 14,9 milliards de dollars d'ici 2028, contre 8,3 milliards en 2024. Et la France n'est pas épargnée, avec 618 millions d'euros de fraude bancaire au premier semestre 2025, en hausse de 7 % par rapport à 2024.

Comment les détecter ?

Group-IB a quand même identifié quelques indices. Un cloud phone n'a en général aucune application par défaut installée. Sa batterie reste bloquée à 100 %. Et surtout, les capteurs de mouvement ne bougent jamais, ce qui est impossible avec un vrai téléphone que quelqu'un tient dans la main.

Le problème, c'est que ces indices sont marginaux face à l'ampleur du phénomène. Les solutions proposées passent par de l'analyse comportementale, de la modélisation par graphes et une meilleure corrélation entre l'appareil et son environnement réseau.

Les banques vont devoir arrêter de se fier uniquement à l'empreinte du téléphone pour vérifier que vous êtes bien vous.

Le modèle de sécurité des banques basé sur l'identification de l'appareil est en train de prendre l'eau. Ces cloud phones sont en location libre, parfaitement légaux, et n'importe qui peut en louer un.

Et puis il faut le dire, les néobanques qui ont misé à fond sur la fluidité d'ouverture de compte se retrouvent avec le revers de la médaille. Quand ouvrir un compte prend deux minutes depuis un téléphone virtuel à 50 dollars, on imagine bien que les fraudeurs ne se privent pas.

Source : Info Security

  • ✇Korben
  • Sortie VGA sur un PIC18 : quand l'optimisation hardware devient un art
    Générer un signal VGA avec un microcontrôleur 8 bits PIC18 est un défi technique de taille. Ce projet Hackaday montre comment détourner les ressources limitées d'un processeur rudimentaire pour produire une image stable. Une petite plongée dans le bit-banging pur et dur. Le défi du timing analogique Le standard VGA impose une rigueur chronométrique absolue à celui qui s'y frotte. Pour obtenir une image stable, typiquement en 640x480 à 60 Hz, le contrôleur doit générer des signaux de synchronisat

Sortie VGA sur un PIC18 : quand l'optimisation hardware devient un art

Par : Korben
26 mars 2026 à 14:11

Générer un signal VGA avec un microcontrôleur 8 bits PIC18 est un défi technique de taille. Ce projet Hackaday montre comment détourner les ressources limitées d'un processeur rudimentaire pour produire une image stable. Une petite plongée dans le bit-banging pur et dur.

Le défi du timing analogique

Le standard VGA impose une rigueur chronométrique absolue à celui qui s'y frotte. Pour obtenir une image stable, typiquement en 640x480 à 60 Hz, le contrôleur doit générer des signaux de synchronisation horizontale (H-sync) et verticale (V-sync) avec une précision de l'ordre de la microseconde. Sur une architecture PIC18 cadencée à quelques dizaines de mégahertz, chaque cycle d'instruction est précieux. L'astuce réside ici dans l'utilisation intelligente des timers internes et des interruptions prioritaires pour maintenir cette cadence sans aucune dérive temporelle, sous peine de voir l'image se désynchroniser immédiatement.

Un DAC rudimentaire pour les couleurs

Côté matériel, la solution retenue est ultra simple (si on peut dire). Pour transformer les sorties numériques binaires du microcontrôleur en signaux analogiques exploitables par un moniteur CRT ou LCD, l'auteur a implémenté une échelle de résistances, aussi appelée DAC R-2R. Ce montage passif permet de convertir des combinaisons de bits en niveaux de tension spécifiques pour les canaux Rouge, Vert et Bleu. C'est une approche classique en électronique "low-cost" qui permet d'obtenir une palette de couleurs certes limitée, mais parfaitement fonctionnelle pour de l'affichage de texte ou de graphismes simples.

L'art du bit-banging et des périphériques détournés

L'envoi des données de pixels vers l'écran nécessite une bande passante que le CPU seul peinerait à fournir en mode pur "bit-banging". Pour optimiser le processus, le développeur détourne souvent le module SPI ou le port série synchrone (MSSP) du PIC pour envoyer les octets de données à la vitesse de l'horloge système. Cela permet de déléguer une partie de la charge de travail au hardware interne et de libérer quelques cycles processeur pour gérer la logique d'affichage. C'est un équilibre précaire où la moindre latence logicielle se traduit par des pixels décalés ou des lignes de travers. Chaud donc.

Ce projet illustre bien l'adage selon lequel la contrainte stimule la créativité. Là où nous utilisons aujourd'hui des processeurs multi-cœurs pour la moindre interface, ce hack prouve qu'un vieux microcontrôleur 8 bits peut encore faire le job. C’est une leçon d'architecture informatique qui permet de comprendre concrètement comment l'information devient image. C'est aussi une forme de résistance face à la démesure logicielle actuelle.

Source : Hackaday

  • ✇Korben
  • Quand 10 000 bots volent 8 millions aux artistes sur Spotify
    Un mec de 54 ans vient de plaider coupable pour avoir siphonné 8 millions de dollars aux artistes musicaux en utilisant 10 000 bots et de la musique générée par IA. Michael Smith, résident de Cornelius en Caroline du Nord, a monté pendant des années une ferme à streams qui écoutait en boucle des centaines de milliers de fausses chansons sur Spotify et Apple Music. Le truc, c'est que ces plateformes ne paient pas un tarif fixe par écoute. Elles fonctionnent avec un pot commun mensuel qu'elles red

Quand 10 000 bots volent 8 millions aux artistes sur Spotify

Par : Korben
25 mars 2026 à 16:38

Un mec de 54 ans vient de plaider coupable pour avoir siphonné 8 millions de dollars aux artistes musicaux en utilisant 10 000 bots et de la musique générée par IA. Michael Smith, résident de Cornelius en Caroline du Nord, a monté pendant des années une ferme à streams qui écoutait en boucle des centaines de milliers de fausses chansons sur Spotify et Apple Music.

Le truc, c'est que ces plateformes ne paient pas un tarif fixe par écoute. Elles fonctionnent avec un pot commun mensuel qu'elles redistribuent proportionnellement au nombre de streams. Du coup, chaque fausse écoute générée par les bots de Smith grignotait directement la part des vrais artistes. En gros, c'est pas Spotify qui se faisait voler, c'est les musiciens qui galèrent déjà à vivre de leur art !

Pour le contenu, Smith avait en fait trouvé un deal avec le CEO d'une boîte de musique IA qui lui pondait des milliers de morceaux par semaine. Les fichiers WAV arrivaient sous forme de chaînes aléatoires de lettres et de chiffres, et il les renommait avec des noms d'artistes fictifs du genre "Calorie Event", "Calms Scorching" ou encore "Calypso Xored" (on sent le générateur de noms random). Les titres, pareil... "Zygotes", "Zyme Bedewing"... si vous tombez là-dessus dans votre discover, y'a de quoi tiquer quand même mais bon...

Et ce problème, ça pose une question que Spotify connaît bien : comment distinguer les vrais streams des faux quand les bots sont suffisamment dispersés sur des milliers de morceaux ? Smith avait justement calibré ses 10 000 bots pour ne pas déclencher les alertes anti-fraude, en répartissant les écoutes sur un catalogue énorme plutôt que de matraquer un seul titre. Pas con.

Mais le bonhomme s'est quand même fait choper. Il a accepté de rendre la totalité des 8 091 843 dollars et risque jusqu'à 5 ans de prison lors de son procès qui aura lieu le 29 juillet prochain. Pas sûr que le ratio risque/récompense en valait la chandelle, en fait.

Le problème de fond, c'est que cette affaire n'est probablement que la partie émergée de l'iceberg. Et je suis sûr que y'en a en France qui font la même... bah sachez que c'est pas cool et que vous risquez d'avoir de GROS ennuis... Avec les outils de génération musicale par IA qui se démocratisent, n'importe qui peut inonder les plateformes de contenu synthétique pour gratter des royalties.

Et tant que le modèle de rémunération repose sur un pot commun plutôt que sur un paiement direct par utilisateur, il sera vulnérable. Encore une fois, les vrais perdants, c'est pas les plateformes (elles prennent leur commission quoi qu'il arrive), mais ce sont les artistes indépendants qui voient leur part du gâteau fondre à chaque bot supplémentaire.

Moche...

Bref, la prochaine fois que votre playlist de découvertes vous propose un artiste nommé "Calypso Xored" ou un connerie de ce style... méfiance !

Source

  • ✇Korben
  • Sora ferme - Comment sauvegarder vos vidéos IA avant la coupure
    Sora, c'est fini les amis ! Hé oui, cest chacals d'OpenAI ferment leur plateforme de vidéos IA, et franchement, ça me rend un peu triste. À vrai dire, même si c'était que de la vidéo générée à partir de prompts, moi je me marrais bien. C'était fun de regarder le produit de ses prompts mais aussi de regarder les conneries des autres. Les versions québécoises, aïe aïe aïe, c'était quelque chose quand même ! Mais bon, le plus urgent maintenant, c'est de sauvegarder vos vidéos avant que tout dispara

Sora ferme - Comment sauvegarder vos vidéos IA avant la coupure

Par : Korben
25 mars 2026 à 15:22

Sora, c'est fini les amis !

Hé oui, cest chacals d'OpenAI ferment leur plateforme de vidéos IA, et franchement, ça me rend un peu triste. À vrai dire, même si c'était que de la vidéo générée à partir de prompts, moi je me marrais bien. C'était fun de regarder le produit de ses prompts mais aussi de regarder les conneries des autres. Les versions québécoises, aïe aïe aïe, c'était quelque chose quand même !

Mais bon, le plus urgent maintenant, c'est de sauvegarder vos vidéos avant que tout disparaisse. OpenAI n'a pas encore communiqué de date précise pour la coupure, juste un vague « on vous dira bientôt ». Du coup, autant ne pas traîner, parce que quand ce genre de service cloud ferme, en général c'est pas 6 mois de préavis qu'on vous file...

Depuis la fuite du modèle jusqu'à aujourd'hui, Sora aura fait parler de lui. Côté raisons, c'est Fidji Simo (la patronne de la division Applications) qui a lâché le morceau : ils éparpillent leurs efforts sur trop d'apps, d'API et de stacks serveur différents, et ça les ralentit. En gros, entre préparer une entrée en bourse pour fin 2026 et cramer du GPU H100 sur des vidéos de chats en IA, le choix est vite fait. L'équipe de recherche Sora, elle, continuera à bosser sur la simulation de mondes 3D... mais pour la robotique. Et le fameux deal à 1 milliard de dollars avec Disney pour des films et séries ? Pouf, magie magie, c'est envolé !!

Faut dire que les chiffres n'étaient pas glorieux non plus. Après un lancement en fanfare fin 2024 (et une app iOS lancée à l'automne 2025 qui avait cartonné dans les charts), les téléchargements sur l'App Store avaient plongé de 32% entre novembre et décembre 2025. La hype, ça dure qu'un temps.

Mais maintenant les gens, on passe aux choses sérieuses !

Sora Backup - le script qui sauve vos vidéos

Je n'avais absolument pas de temps aujourd'hui, mais j'ai quand même taffé pour vous développer un petit script JavaScript qui récupère TOUTES vos vidéos Sora d'un coup, avec les prompts et les métadonnées, et qui vous génère un joli ZIP prêt à archiver. Pas besoin d'installer quoi que ce soit, pas d'extension louche. Vous avez juste besoin d'être connecté à votre profil Sora et d'un navigateur.

Comment ça marche

Allez sur sora.com , connectez-vous à votre compte, puis ouvrez la console JavaScript de votre navigateur (F12 sur Chrome ou Firefox, onglet Console). Ensuite, glissez-déplacez ou collez le script ci-dessous dedans et appuyez sur Entrée.

Le script va automatiquement récupérer votre token d'authentification (pas besoin de le chercher vous-même), puis il va paginer sur votre profil Sora pour récupérer tous vos posts publiés. Pour chaque post, il extrait les vidéos attachées (MP4), les télécharge, et empaquette le tout dans un fichier ZIP directement dans votre navigateur.

Y'a même un fichier manifest.json dans le ZIP qui contient tous vos prompts, les dimensions, les durées, les permalinks, les dates de création... bref, tout ce qu'il faut pour retrouver vos petits. Le ZIP est généré en format STORE (pas compressé, parce que compresser du MP4 ça sert à rien), avec un calcul CRC32 maison et sans aucune librairie externe.

Le script complet

Voici le code à coller dans la console :

// ==========================================================
// SORA BACKUP - Sauvegarde complète vidéos + images + prompts par Korben
// ==========================================================
// Usage : Ouvrir https://sora.com, F12 > Console, coller ce script
// Les fichiers sont téléchargés via le navigateur (dossier Downloads)
// Un fichier manifest.json récapitule tout (prompts, metadata, URLs)
// ==========================================================

(async () => {
 // --- Mini ZIP builder (STORE, pas de lib externe) ---
 const crc32table = new Uint32Array(256);
 for (let i = 0; i < 256; i++) {
 let c = i;
 for (let j = 0; j < 8; j++) c = (c & 1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1);
 crc32table[i] = c;
 }
 function crc32(buf) {
 let c = 0xFFFFFFFF;
 for (let i = 0; i < buf.length; i++) c = crc32table[(c ^ buf[i]) & 0xFF] ^ (c >>> 8);
 return (c ^ 0xFFFFFFFF) >>> 0;
 }
 const zipFiles = []; // {name, data (Uint8Array), crc, size}

 const PAGE_SIZE = 50;
 const DELAY_MS = 1500;
 const manifest = [];
 let totalDownloaded = 0;
 let totalErrors = 0;

 // --- Auth : récupérer le Bearer token ---
 // OPTION 1 : Coller ton token ici (Network tab > Authorization header)
 // OPTION 2 : Laisser vide, le script tentera de le récupérer auto
 let AUTH_TOKEN = '';

 async function getAuthToken() {
 if (AUTH_TOKEN) return AUTH_TOKEN;

 // Auto-detect : endpoint session ChatGPT
 for (const path of ['/api/auth/session', '/backend-api/auth/session']) {
 try {
 const r = await fetch(path, { credentials: 'include' });
 if (r.ok) {
 const json = await r.json();
 if (json.accessToken) {
 AUTH_TOKEN = json.accessToken;
 console.log(' 🔑 Token récupéré automatiquement');
 return AUTH_TOKEN;
 }
 }
 } catch(e) {}
 }

 // Fallback : demander à l'utilisateur
 const input = prompt(
 'Token non trouvé automatiquement.\n\n' +
 'Pour le récupérer :\n' +
 '1. F12 > onglet Réseau\n' +
 '2. Rafraîchis la page\n' +
 '3. Clique sur une requête /backend/...\n' +
 '4. Copie le header Authorization\n\n' +
 'Colle le token ici (Bearer eyJ...):'
 );
 if (input) {
 AUTH_TOKEN = input.replace(/^Bearer\s+/i, '').trim();
 return AUTH_TOKEN;
 }

 console.error(' ❌ Pas de token. Annulation.');
 return null;
 }

 // --- Fetch API avec auth ---
 async function apiFetch(url) {
 const token = await getAuthToken();
 const headers = {};
 if (token) headers['Authorization'] = 'Bearer ' + token;

 // oai-device-id requis par certains endpoints
 const deviceId = localStorage.getItem('oai-did') || '';
 if (deviceId) headers['oai-device-id'] = deviceId;

 const resp = await fetch(url, {
 method: 'GET',
 credentials: 'include',
 headers
 });

 if (!resp.ok) throw new Error(`HTTP ${resp.status} for ${url}`);
 return resp.json();
 }

 // --- Pagination générique ---
 async function fetchAllPages(baseUrl, dataField = 'data', cursorParam = 'after', cursorField = 'last_id') {
 let allItems = [];
 let cursor = '';
 let page = 0;

 while (true) {
 let url = baseUrl;
 if (cursor) url += `&${cursorParam}=${cursor}`;

 console.log(` 📄 Page ${++page} (${allItems.length} items so far)...`);
 const json = await apiFetch(url);

 const items = json[dataField];
 if (!Array.isArray(items) || items.length === 0) break;

 allItems = allItems.concat(items);
 cursor = json[cursorField] || '';

 if (!json.has_more && !cursor) break;
 await sleep(DELAY_MS);
 }

 return allItems;
 }

 // Variante pour les endpoints project_y (cursor-based)
 async function fetchAllPagesCursor(baseUrl) {
 let allItems = [];
 let cursor = '';
 let page = 0;

 while (true) {
 let url = baseUrl;
 if (cursor) url += `&cursor=${cursor}`;

 console.log(` 📄 Page ${++page} (${allItems.length} items so far)...`);
 const json = await apiFetch(url);

 const items = json.items;
 if (!Array.isArray(items) || items.length === 0) break;

 allItems = allItems.concat(items);
 cursor = json.cursor || '';

 if (!cursor) break;
 await sleep(DELAY_MS);
 }

 return allItems;
 }

 function sleep(ms) { return new Promise(r => setTimeout(r, ms)); }

 // --- Extraire URL du média depuis une generation ---
 function getMediaUrl(gen) {
 return gen?.encodings?.source?.path
 || gen?.downloadable_url
 || gen?.url
 || '';
 }

 // --- Extraire le prompt (peut être dans actions, prompt, ou input_text) ---
 function getPrompt(item, gen) {
 // Prompt direct
 if (gen?.prompt) return gen.prompt;
 if (item?.prompt) return item.prompt;
 if (item?.input_text) return item.input_text;
 // Storyboard : les actions sont les descriptions des scènes
 if (item?.actions && typeof item.actions === 'object') {
 return Object.entries(item.actions)
 .sort((a,b) => Number(a[0]) - Number(b[0]))
 .map(([frame, desc]) => `[frame ${frame}] ${desc}`)
 .join(' | ');
 }
 if (gen?.actions && typeof gen.actions === 'object') {
 return Object.entries(gen.actions)
 .sort((a,b) => Number(a[0]) - Number(b[0]))
 .map(([frame, desc]) => `[frame ${frame}] ${desc}`)
 .join(' | ');
 }
 return '';
 }

 // --- Dérouler les items du profil Sora en items plats ---
 function flattenProfileItems(items) {
 const flat = [];
 for (const item of items) {
 const post = item.post || item;
 const attachments = post.attachments || [];
 if (attachments.length === 0) continue;

 for (const att of attachments) {
 const url = att.encodings?.source?.path || att.downloadable_url || att.url || '';
 if (!url) continue;

 flat.push({
 id: post.id || att.generation_id || '',
 generation_id: att.generation_id || '',
 task_id: att.task_id || '',
 title: att.title || post.discovery_phrase || '',
 prompt: post.text || '',
 emoji: post.emoji || '',
 type: att.generation_type || att.kind || '',
 width: att.width || 0,
 height: att.height || 0,
 duration_s: att.duration_s || 0,
 is_public: !!post.posted_to_public,
 created_at: post.posted_at ? new Date(post.posted_at * 1000).toISOString() : '',
 url: url,
 permalink: post.permalink || '',
 username: item.profile?.username || '',
 });
 }
 }
 return flat;
 }

 // --- Sanitize filename ---
 function sanitize(name) {
 return name.replace(/[<>:"\/\\|?*\x00-\x1f]/g, '_').substring(0, 100);
 }

 // --- Ajouter un fichier au ZIP ---
 async function addToZip(url, filename) {
 try {
 const resp = await fetch(url);
 if (!resp.ok) throw new Error(`HTTP ${resp.status}`);
 const buf = await resp.arrayBuffer();
 const data = new Uint8Array(buf);
 zipFiles.push({ name: filename, data, crc: crc32(data), size: data.length });
 totalDownloaded++;
 return true;
 } catch(e) {
 console.warn(` ⚠️ Erreur ${filename}:`, e.message);
 totalErrors++;
 return false;
 }
 }

 // --- Déduire l'extension ---
 function getExt(url, type) {
 if (!url) return type === 'video' ? '.mp4' : '.png';
 const m = url.match(/\.(mp4|webm|mov|png|jpg|jpeg|webp|gif)/i);
 return m ? '.' + m[1].toLowerCase() : (type === 'video' ? '.mp4' : '.png');
 }

 // ==========================================================
 // MAIN
 // ==========================================================
 const origin = window.location.origin;
 console.log('🎬 SORA BACKUP - Démarrage');
 console.log('='.repeat(50));

 // 1. Mes posts Sora (profil)
 console.log('\n📦 1/2 - Récupération de mes posts Sora...');
 let myPosts = [];
 try {
 myPosts = await fetchAllPagesCursor(
 `${origin}/backend/project_y/profile_feed/me?limit=${PAGE_SIZE}&cut=nf2`
 );
 console.log(`  ${myPosts.length} posts de profil`);
 // Debug premier item
 if (myPosts.length > 0) {
 const first = myPosts[0];
 console.log(' 🔍 Premier item - clés:', Object.keys(first).join(', '));
 console.log(' 🔍 URL:', first.url?.substring(0, 80) || 'none');
 console.log(' 🔍 DL:', first.downloadable_url?.substring(0, 80) || 'none');
 console.log(' 🔍 ENC:', first.encodings?.source?.path?.substring(0, 80) || 'none');
 console.log(' 🔍 GENS:', first.generations?.length || 'none');
 console.log(' 🔍 TITLE:', first.title || 'none');
 }
 } catch(e) {
 console.warn(' ⚠️ profil failed:', e.message);
 }

 // 2. Mes likes sur Sora
 console.log('\n📦 2/2 - Récupération de mes likes Sora...');
 let myLikes = [];
 try {
 myLikes = await fetchAllPagesCursor(
 `${origin}/backend/project_y/profile_feed/me?limit=${PAGE_SIZE}&cut=appearances`
 );
 if (myCameos.length) console.log(`  ${myCameos.length} cameos trouvés`);
 } catch(e) {}

 // --- Dérouler les generations et dédupliquer ---
 console.log('\n🔄 Extraction des vidéos...');
 const rawAll = [...myPosts, ...myLikes];
 const flatItems = flattenProfileItems(rawAll);

 const seen = new Set();
 const allItems = [];
 for (const item of flatItems) {
 if (item.id && seen.has(item.id)) continue;
 // Filtrer : vidéos uniquement
 const isVideo = item.type === 'video_gen' || item.url.includes('/videos/') || item.url.includes('.mp4');
 if (!isVideo) continue;
 if (item.id) seen.add(item.id);
 allItems.push(item);
 }

 console.log(`📊 Total unique: ${allItems.length} vidéos à télécharger`);
 console.log('='.repeat(50));

 // --- Construire le manifest et télécharger ---
 console.log('\n⬇️ Téléchargement en cours...');
 console.log('(Les fichiers arrivent dans ton dossier Downloads)');

 for (let i = 0; i < allItems.length; i++) {
 const meta = allItems[i];
 const url = meta.url;

 if (!url) {
 console.log(` ⏭️ [${i+1}/${allItems.length}] ${meta.id} - pas d'URL, skip`);
 meta.downloaded = false;
 manifest.push(meta);
 continue;
 }

 const type = (meta.task_type === 'image_gen' || url.match(/\.(png|jpg|jpeg|webp|gif)/i)) ? 'image' : 'video';
 const ext = getExt(url, type);
 const nameBase = meta.title
 ? sanitize(meta.title)
 : (meta.prompt ? sanitize(meta.prompt.substring(0, 60)) : meta.id);
 const filename = `sora_${String(i+1).padStart(4,'0')}_${nameBase}${ext}`;

 console.log(` ⬇️ [${i+1}/${allItems.length}] ${filename}`);
 meta.filename = filename;
 meta.downloaded = await addToZip(url, filename);
 manifest.push(meta);

 // Pause entre downloads pour pas surcharger
 if (i < allItems.length - 1) await sleep(800);
 }

 // --- Ajouter le manifest au ZIP ---
 console.log('\n📝 Ajout du manifest au ZIP...');
 const manifestData = new TextEncoder().encode(JSON.stringify(manifest, null, 2));
 zipFiles.push({ name: 'manifest.json', data: manifestData, crc: crc32(manifestData), size: manifestData.length });

 // --- Générer le ZIP (format STORE, pas de compression) ---
 console.log('\n📦 Génération du ZIP...');
 const enc = new TextEncoder();
 const blobParts = [];
 const centralParts = [];
 let offset = 0;

 for (const f of zipFiles) {
 const nameBytes = enc.encode(f.name);
 // Local file header (30 bytes + name)
 const lh = new ArrayBuffer(30);
 const lv = new DataView(lh);
 lv.setUint32(0, 0x04034b50, true);
 lv.setUint16(4, 20, true);
 lv.setUint16(8, 0, true); // STORE
 lv.setUint32(14, f.crc, true);
 lv.setUint32(18, f.size, true);
 lv.setUint32(22, f.size, true);
 lv.setUint16(26, nameBytes.length, true);
 blobParts.push(new Uint8Array(lh), nameBytes, f.data);

 // Central directory entry (46 bytes + name)
 const ch = new ArrayBuffer(46);
 const cv = new DataView(ch);
 cv.setUint32(0, 0x02014b50, true);
 cv.setUint16(4, 20, true);
 cv.setUint16(6, 20, true);
 cv.setUint16(10, 0, true); // STORE
 cv.setUint32(16, f.crc, true);
 cv.setUint32(20, f.size, true);
 cv.setUint32(24, f.size, true);
 cv.setUint16(28, nameBytes.length, true);
 cv.setUint32(42, offset, true);
 centralParts.push(new Uint8Array(ch), nameBytes);

 offset += 30 + nameBytes.length + f.size;
 }

 const centralSize = centralParts.reduce((s, p) => s + p.length, 0);
 const eocd = new ArrayBuffer(22);
 const ev = new DataView(eocd);
 ev.setUint32(0, 0x06054b50, true);
 ev.setUint16(8, zipFiles.length, true);
 ev.setUint16(10, zipFiles.length, true);
 ev.setUint32(12, centralSize, true);
 ev.setUint32(16, offset, true);

 const zipBlob = new Blob([...blobParts, ...centralParts, new Uint8Array(eocd)], { type: 'application/zip' });

 const zipName = `sora_backup_${new Date().toISOString().split('T')[0]}.zip`;
 const a = document.createElement('a');
 a.href = URL.createObjectURL(zipBlob);
 a.download = zipName;
 document.body.appendChild(a);
 a.click();
 document.body.removeChild(a);
 URL.revokeObjectURL(a.href);

 // --- Résumé ---
 const sizeMB = (zipBlob.size / 1024 / 1024).toFixed(1);
 console.log('\n' + '='.repeat(50));
 console.log('🎬 SORA BACKUP TERMINÉ');
 console.log(`  Vidéos dans le ZIP : ${totalDownloaded}`);
 console.log(`  Erreurs : ${totalErrors}`);
 console.log(` 📦 Fichier : ${zipName} (${sizeMB} MB)`);
 console.log(` 📝 manifest.json inclus dans le ZIP`);
 console.log('='.repeat(50));
})();

Quelques précisions

Si le token n'est pas récupéré automatiquement (ça peut arriver selon votre config), le script vous demandera de le coller manuellement. Pour le trouver, c'est simple : F12 > onglet Réseau > rafraîchissez la page > cliquez sur n'importe quelle requête vers /backend/... > copiez le header Authorization.

D'ailleurs, si la vidéo IA vous branche toujours, Higgsfield propose des séries entièrement générées par IA. C'est pas la même approche que Sora, mais c'est un signe que la vidéo IA ne meurt pas avec la fermeture d'un seul service.

Bon, bref, c'est la fin d'un truc sympa. Moi je préférais largement scroller sur Sora que d'aller sur TikTok ou Instagram parce qu'au moins c'était drôle !

Merci à mes Patreons qui me permettent de prendre le temps de développer ce genre de petits outils pour vous. Sans eux, j'aurais jamais pu me poser une après-midi pour coder ça.

Source

  • ✇Korben
  • Plus de 1 000 environnements cloud infectés après une attaque sur le scanner Trivy
    Un groupe de pirates a compromis Trivy, un scanner de vulnérabilités open source très utilisé dans les pipelines de développement. Résultat : plus de 1 000 environnements SaaS infectés par un malware qui vole des clés API, des identifiants cloud et des tokens GitHub. Un scanner de sécurité devenu vecteur d'attaque Trivy est un outil open source maintenu par Aqua Security. Il sert à détecter des failles, des mauvaises configurations et des secrets exposés dans du code, et il est intégré dans les

Plus de 1 000 environnements cloud infectés après une attaque sur le scanner Trivy

Par : Korben
25 mars 2026 à 14:30

Un groupe de pirates a compromis Trivy, un scanner de vulnérabilités open source très utilisé dans les pipelines de développement. Résultat : plus de 1 000 environnements SaaS infectés par un malware qui vole des clés API, des identifiants cloud et des tokens GitHub.

Un scanner de sécurité devenu vecteur d'attaque

Trivy est un outil open source maintenu par Aqua Security. Il sert à détecter des failles, des mauvaises configurations et des secrets exposés dans du code, et il est intégré dans les chaînes de déploiement continu (CI/CD) d'un très grand nombre d'entreprises. Le groupe TeamPCP a réussi à compromettre la version 0.69.4 de Trivy en exploitant une mauvaise configuration dans le composant GitHub Action du projet.

En février, ils ont volé un token d'accès privilégié, et ce token n'a jamais été correctement révoqué. En mars, les attaquants l'ont utilisé pour injecter du code malveillant directement dans le projet, en poussant des images Docker et des versions GitHub vérolées vers les utilisateurs.

Le résultat : 75 des 76 tags de trivy-action ont été remplacés par des versions malveillantes.

La contamination s'étend

L'attaque ne s'est pas arrêtée à Trivy. Le même groupe a aussi compromis liteLLM, une bibliothèque Python qui sert d'interface pour les modèles de langage et qui est présente dans 36 % des environnements cloud.

Ils ont aussi touché KICK (un outil d'analyse statique de Checkmarx) et déployé CanisterWorm, un ver qui se propage via des paquets npm vérolés. Le malware installé est un infostealer qui extrait les clés API, les identifiants de bases de données, les tokens GitHub et toute information sensible accessible dans l'environnement de build.

Mandiant, la branche cybersécurité de Google, estime que plus de 1 000 environnements SaaS sont actuellement compromis, et que ce chiffre pourrait grimper à 10 000. TeamPCP travaillerait avec le groupe Lapsus$, connu pour ses attaques contre Microsoft, Nvidia et Uber.

Des révélations à la conférence RSA

Les détails de l'attaque ont été rendus publics lors de la conférence RSA. Le chercheur en sécurité Paul McCarty a été le premier à tirer la sonnette d'alarme, suivi par les équipes de Socket, Wiz et Aikido.dev. Aqua Security a vu ses 44 dépôts GitHub internes défacés, avec une exposition du code source et des configurations CI/CD.

L'affaire montre à quel point les outils de sécurité open source, quand ils sont mal protégés, peuvent devenir le point d'entrée idéal pour une attaque à grande échelle.

C'est quand même un comble : un scanner de vulnérabilités qui devient lui-même le vecteur d'une attaque. Le fait qu'un simple token non révoqué ait suffi pour compromettre toute la chaîne montre que la sécurité des projets open source reste un vrai sujet. Et quand on sait que liteLLM est présent dans plus d'un tiers des environnements cloud, on mesure l'ampleur du problème...

Source : The Register

  • ✇Korben
  • Europol démantèle Tycoon 2FA, la plus grosse plateforme de phishing au monde
    Europol, Microsoft et plusieurs agences de six pays européens viennent de mettre hors service Tycoon 2FA, une plateforme de phishing vendue sur abonnement qui contournait la double authentification. 330 domaines ont été saisis, et le développeur principal a été identifié au Pakistan. Une machine à phishing sur abonnement Pour mieux vous poser le tableau, le Tycoon 2FA fonctionnait comme un service clé en main pour cybercriminels. Pour 120 dollars les dix jours ou 350 dollars par mois, n'importe

Europol démantèle Tycoon 2FA, la plus grosse plateforme de phishing au monde

Par : Korben
5 mars 2026 à 17:16

Europol, Microsoft et plusieurs agences de six pays européens viennent de mettre hors service Tycoon 2FA, une plateforme de phishing vendue sur abonnement qui contournait la double authentification. 330 domaines ont été saisis, et le développeur principal a été identifié au Pakistan.

Une machine à phishing sur abonnement

Pour mieux vous poser le tableau, le Tycoon 2FA fonctionnait comme un service clé en main pour cybercriminels. Pour 120 dollars les dix jours ou 350 dollars par mois, n'importe qui pouvait accéder à un panneau de contrôle avec des pages de phishing prêtes à l'emploi, qui imitent les interfaces de connexion de Microsoft 365, Outlook, Gmail ou même SharePoint.

Le kit interceptait les sessions d'authentification en temps réel, ce qui permettait de contourner la double authentification sans que la victime ne se doute de quoi que ce soit. Depuis août 2023, la plateforme a généré des dizaines de millions de mails de phishing par mois. Microsoft estime en fait que Tycoon 2FA représentait à elle seule 62 % des tentatives de phishing bloquées mi-2025, c'est faramineux.

100 000 organisations touchées dans le monde

64 000 incidents de phishing ont été reliés à la plateforme, et près de 100 000 organisations ont été compromises à travers le monde, dont des hôpitaux, des écoles et des administrations publiques.

Les États-Unis arrivent en tête avec 179 000 victimes, suivis du Royaume-Uni, du Canada, de l'Inde et de la France avec 6 823 victimes identifiées. Si vous utilisez Microsoft 365 ou Outlook au quotidien, c'est le genre de kit qui ciblait directement vos identifiants. Le développeur principal, un certain Saad Fridi basé au Pakistan, a été identifié par Trend Micro dès novembre 2025 sous les pseudos "SaaadFridi" et "Mr_Xaad".

L'opération a mobilisé les polices de six pays (Lettonie, Lituanie, Portugal, Pologne, Espagne et Royaume-Uni) sous la coordination du Centre européen de lutte contre la cybercriminalité d'Europol.

330 domaines saisis d'un coup

Microsoft a mené la partie technique en neutralisant 330 domaines qui servaient de pages de phishing et de panneaux de contrôle. Cloudflare, Coinbase, Intel 471, Proofpoint, SpyCloud et Trend Micro ont aussi participé à l'opération. La plateforme n'a toujours pas donné lieu à des arrestations à ce stade. Le développeur a été identifié, mais aucune interpellation n'a été annoncée.

Le fait que des boîtes privées comme Microsoft et Trend Micro travaillent main dans la main avec Europol est interessant, et ça produit des résultats. Mais 330 domaines saisis sur une infra qui en générait de nouveaux toutes les 24 à 72 heures, on peut se demander combien de temps ça va tenir.

La France est le cinquième pays le plus touché avec presque 7 000 victimes, et quand on sait que le phishing représente 43 % des cyberattaques déclarées par les entreprises françaises, ça donne une idée de l'ampleur du problème.

On espère que cette opération servira d'exemple, mais d'autres plateformes du même genre sont probablement déjà en train de prendre le relais.

Sources : The Hacker News , Europol

  • ✇Korben
  • Windows est lent ? 9 astuces pour booster les performances de votre PC
    Votre PC Windows rame ? Vous ouvrez Chrome et il met 10 secondes à afficher une page vide ? Sans parler de Windows Update qui mouline en arrière-plan et qui transforme votre PC en radiateur ? Et bien il existe quelques astuces simples pour regagner en fluidité, améliorer la vitesse et la réactivité de votre système, le tout sans avoir à tout réinstaller ou à acheter du nouveau matos. Je vais vous montrer 9 manipulations concrètes qui peuvent vraiment faire la différence, surtout si votre PC comm

Windows est lent ? 9 astuces pour booster les performances de votre PC

Par : Korben
5 mars 2026 à 10:54

Votre PC Windows rame ? Vous ouvrez Chrome et il met 10 secondes à afficher une page vide ? Sans parler de Windows Update qui mouline en arrière-plan et qui transforme votre PC en radiateur ?

Et bien il existe quelques astuces simples pour regagner en fluidité, améliorer la vitesse et la réactivité de votre système, le tout sans avoir à tout réinstaller ou à acheter du nouveau matos.

Je vais vous montrer 9 manipulations concrètes qui peuvent vraiment faire la différence, surtout si votre PC commence à prendre de l'âge ou si vous avez peu de RAM. Rien de révolutionnaire, juste des réglages qui marchent.

Ce qu'il faut savoir avant de commencer

Ces astuces fonctionnent sur Windows 10 et Windows 11. Certaines désactivent des fonctionnalités visuelles ou des services en arrière-plan, donc vous allez gagner en performances mais perdre quelques animations ou fonctions que vous n'utilisez peut-être jamais. C'est un compromis.

  • Prérequis : avoir un compte administrateur sur votre PC.
  • Temps estimé : 15-20 minutes pour tout appliquer.
  • Et surtout, créez un point de restauration avant de commencer (cherchez "Créer un point de restauration" dans le menu Démarrer).

Comme ça, si quelque chose se passe mal, vous pourrez revenir en arrière.

1. Désactiver les effets visuels

Windows affiche des animations partout : les fenêtres qui s'ouvrent en fondu, les ombres sous les icônes, les transitions en 3D. C'est joli mais ça bouffe du GPU, c'est-à-dire de la puissance graphique, et du CPU pour rien.

Tapez "performances" dans la barre de recherche Windows et ouvrez "Ajuster l'apparence et les performances de Windows". Dans l'onglet "Effets visuels", cochez "Ajuster afin d'obtenir les meilleures performances". Windows va tout désactiver d'un coup.

Si c'est trop moche, vous pouvez garder quelques effets utiles comme "Lisser les polices d'écran" (sinon le texte est illisible) et "Afficher des ombres sous les fenêtres" (pour mieux distinguer les fenêtres). Tout le reste, c'est du cosmétique.

Impact : libère 10-15% de CPU sur les PC avec GPU intégré. Vous verrez surtout la différence quand vous ouvrez plusieurs fenêtres en même temps.

2. Désactiver les programmes au démarrage

En général, quand vous installez un logiciel, il s'ajoute automatiquement au démarrage de Windows. Résultat : votre PC met 3 minutes à démarrer parce qu'il charge Skype, Steam, OneDrive, Adobe Creative Cloud, Spotify, et 15 autres trucs dont vous n'avez pas besoin dès le boot.

Appuyez sur Ctrl+Shift+Echap pour ouvrir le Gestionnaire des tâches. Allez dans l'onglet "Démarrage". Vous allez voir tous les programmes qui se lancent automatiquement. Faites un clic droit sur ceux que vous n'utilisez pas immédiatement au démarrage et choisissez "Désactiver".

Attention, ne désactivez pas les pilotes système (tout ce qui vient de Microsoft, Intel, AMD, Nvidia). Gardez votre antivirus aussi. Le reste, vous pouvez le lancer manuellement quand vous en avez besoin.

Impact : le démarrage de Windows passe de 2-3 minutes à 30-45 secondes. Et vous économisez de la RAM dès le lancement du système.

3. Nettoyer le disque avec Storage Sense

Windows accumule des fichiers temporaires, c'est-à-dire des données de cache, des anciennes mises à jour, des téléchargements oubliés, et tout ça prend de la place pour rien. Si votre disque est plein à 90% ou plus, Windows ralentit drastiquement.

Allez dans Paramètres > Système > Stockage et activez "Assistant de stockage" (Storage Sense en anglais). Il va nettoyer automatiquement les fichiers temporaires et la Corbeille tous les 30 jours.

Pour un nettoyage immédiat, cliquez sur "Libérer de l'espace maintenant" dans les mêmes paramètres. Cochez "Fichiers temporaires", "Corbeille", et "Téléchargements" (seulement si vous êtes sûr de ne rien y garder). Windows va scanner et supprimer.

Impact : peut libérer de 5 à 20 Go selon votre utilisation. Si vous étiez à plus de 90% d'occupation disque, vous allez sentir la différence immédiatement.

4. Mettre à jour Windows et les pilotes

Je sais, Windows Update c'est l'ennemi quand ça force un redémarrage en plein boulot. Mais des pilotes obsolètes ou un Windows pas à jour, ça peut vraiment plomber les performances. Microsoft corrige des bugs de performance dans les mises à jour mensuelles.

Allez dans Paramètres > Mise à jour et sécurité > Windows Update et cliquez sur "Rechercher des mises à jour". Installez tout ce qui est proposé. Faites pareil pour les pilotes via "Options avancées" > "Mises à jour facultatives".

Si vous voulez être sûr d'avoir les derniers pilotes graphiques, allez direct sur le site de votre fabricant (Intel, AMD, ou Nvidia selon votre GPU) et téléchargez la dernière version. Les pilotes fournis par Windows Update ont souvent du retard par rapport aux versions disponibles chez le fabricant.

Impact : variable. Parfois 0%, parfois +20% de performances sur les jeux ou les logiciels qui utilisent le GPU. Ça dépend vraiment de votre config et des bugs que Microsoft a corrigés entre temps.

5. Désactiver OneDrive (si vous ne l'utilisez pas)

OneDrive, c'est le service de stockage cloud de Microsoft, c'est-à-dire un espace de sauvegarde en ligne qui synchronise vos fichiers automatiquement. Le problème, c'est qu'il tourne en permanence en arrière-plan et il monopolise de la bande passante et du CPU pour synchroniser vos fichiers.

Si vous ne l'utilisez pas, désactivez-le. Clic droit sur l'icône OneDrive dans la barre des tâches (près de l'horloge) > Paramètres > décochez "Lancer OneDrive automatiquement quand je me connecte à Windows". Quittez OneDrive.

Si vraiment vous ne voulez plus voir OneDrive, vous pouvez le désinstaller. Tapez "Ajouter ou supprimer des programmes" dans le menu Démarrer, cherchez Microsoft OneDrive, et cliquez sur Désinstaller.

Impact : libère 5-10% de CPU en moyenne et réduit les accès disque. Surtout visible sur les PC avec disque dur mécanique (HDD).

6. Désactiver les services Windows inutiles

Windows lance des dizaines de services en arrière-plan, c'est-à-dire des programmes systèmes qui tournent en permanence même si vous ne les utilisez jamais. Vous pouvez en désactiver quelques-uns sans risque si vous ne les utilisez pas.

Tapez "services.msc" dans le menu Démarrer pour ouvrir la console des services. Voici les services à désactiver si vous ne les utilisez pas (clic droit > Propriétés > Type de démarrage : Désactivé) :

  • Expériences des utilisateurs connectés et télémétrie : c'est le service qui collecte des données sur votre utilisation de Windows et les envoie à Microsoft. Désactivez-le sans souci.
  • Service de routage de messages Push du protocole WAP : encore un service de collecte de données et de télémétrie. Rien à voir avec le WAP des années 90, vous pouvez le désactiver.
  • SysMain (Superfetch) : c'est un service qui précharge des applications en RAM et gère la compression mémoire. Sur un SSD, Windows ajuste déjà le prefetch automatiquement, mais le désactiver peut libérer des ressources sur les PC avec peu de RAM.
  • Windows Search : si vous n'utilisez jamais la recherche Windows, désactivez. Attention, ça va ralentir les recherches si vous changez d'avis.

Attention, ne touchez pas aux services que vous ne connaissez pas. Si vous désactivez un truc critique, Windows peut planter au démarrage. D'où l'importance du point de restauration créé au début.

Impact : libère 5-10% de CPU et 200-500 Mo de RAM selon les services désactivés.

7. Ajuster les options d'alimentation

Si vous êtes sur un PC portable, Windows limite les performances pour économiser la batterie. Même branché sur secteur, il peut rester en mode "Équilibré", c'est-à-dire un compromis entre performances et consommation électrique.

Tapez "alimentation" dans le menu Démarrer et ouvrez "Options d'alimentation". Sélectionnez le mode "Performances élevées" (ou "High Performance" en anglais). Si vous ne le voyez pas, cliquez sur "Afficher les modes supplémentaires".

Sur Windows 11, allez dans Paramètres > Système > Alimentation et batterie > Mode d'alimentation et sélectionnez "Meilleures performances".

Impact : le CPU et le GPU tournent à pleine vitesse en permanence. Gain de 10-20% sur les tâches CPU intensives (encodage vidéo, compilation, jeux). Mais la batterie va tenir moitié moins longtemps si vous êtes débranché.

8. ReadyBoost avec une clé USB (seulement si vous avez un HDD)

ReadyBoost, c'est une vieille fonctionnalité Windows qui utilise une clé USB comme mémoire cache supplémentaire. Ça peut aider les PC avec peu de RAM et un disque dur mécanique lent.

Branchez une clé USB rapide (USB 3.0 minimum, au moins 4 Go d'espace libre). Ouvrez l'Explorateur Windows, faites un clic droit sur la clé USB > Propriétés > onglet ReadyBoost. Cochez "Dédier ce périphérique à ReadyBoost" et validez.

Attention, si vous avez un SSD, ReadyBoost ne sert à rien. Votre SSD est déjà plus rapide qu'une clé USB. Ne l'activez que si vous avez un HDD.

Impact : gain de 5-10% sur les temps de chargement des applications si vous avez moins de 4 Go de RAM et un HDD. Zéro gain avec un SSD.

9. Fermer les applications et redémarrer régulièrement

Ça paraît bête mais beaucoup de gens laissent leur PC allumé pendant des semaines sans jamais redémarrer. Windows accumule des processus zombies en mémoire, des handles de fichiers non libérés, et la RAM se remplit progressivement.

Fermez les applications que vous n'utilisez pas (surtout Chrome avec ses 50 onglets ouverts). Redémarrez votre PC au moins une fois par semaine. Ça libère la RAM et ça remet les services système à zéro.

Dans le Gestionnaire des tâches (Ctrl+Shift+Echap), regardez l'onglet "Processus" et triez par utilisation mémoire. Si vous voyez des applications qui bouffent 1-2 Go alors que vous ne les utilisez pas, fermez-les.

Impact : peut récupérer 2-4 Go de RAM si vous n'aviez pas redémarré depuis longtemps. Windows redevient fluide instantanément.

Vérifier l'impact des modifications

Une fois que vous avez appliqué ces astuces, ouvrez le Gestionnaire des tâches (Ctrl+Shift+Echap) et regardez l'onglet "Performances". Vous devriez voir l'utilisation CPU et RAM baisser significativement au repos.

Au repos, un Windows 11 optimisé utilise environ 2-3 Go de RAM et 5-10% de CPU. Si vous êtes au-dessus, c'est qu'il y a encore des services ou programmes qui tournent inutilement en arrière-plan.

Si après tout ça votre PC rame toujours, le problème vient peut-être du matériel. Un disque dur qui commence à lâcher, de la RAM défectueuse, ou un PC trop ancien. À ce stade, un SSD et de la RAM supplémentaire feraient plus de différence que n'importe quel réglage logiciel.

Ce qu'il ne faut PAS faire

J'ai vu plein de tutos qui recommandent des trucs douteux pour "booster" Windows. Voici ce qu'il ne faut surtout pas faire :

Ne téléchargez pas de logiciels d'optimisation automatique ou tous les trucs qui promet de "nettoyer le registre". Ces outils créent parfois plus de problèmes qu'ils n'en résolvent et certains installent même des adwares.

Ne désactivez pas Windows Defender sous prétexte qu'il consomme du CPU. Oui, sa protection temps réel tourne en permanence, mais elle est bien optimisée et consomme peu de ressources en usage normal. Si vous le désactivez, vous allez choper un malware qui va vraiment ralentir votre PC.

Notez que dans ma vidéo, je dis que Windows Defender "tourne en arrière-plan uniquement" pour faire des scans. C'est pas tout à fait exact : en réalité, sa protection temps réel (Antimalware Service Executable) tourne en permanence pour surveiller chaque fichier que vous ouvrez ou téléchargez. C'est justement pour ça qu'il ne faut pas le désactiver. Ça consomme un peu de CPU, mais c'est le prix à payer pour ne pas se retrouver avec un cryptominer qui vous bouffe 100% du processeur.

Ne modifiez pas le registre Windows si vous ne savez pas ce que vous faites. Un mauvais réglage et Windows ne démarre plus.

Et surtout, sauvegardez vos données régulièrement. Ces astuces sont sans risque si vous avez créé un point de restauration, mais un plantage est toujours possible. Mieux vaut prévenir que pleurer devant un écran noir.

Voilà, vous avez de quoi remettre votre PC d'aplomb !

Source

  • ✇Korben
  • Shells Unix - 5 redirections que vous copiez sans comprendre
    2>&1, >, >>, 2>/dev/null... Si ces symboles dans votre terminal Linux ou macOS vous font autant flipper qu'un regex, respirez un grand coup ! Quand vous aurez lu cet article, vous verrez qu'en fait c'est super simple à comprendre, et en 5 minutes vous saurez enfin ce que vous copiez-collez depuis des années depuis StackOverflow. En fait, dans les shells Unix (bash, zsh, etc.), y'a 3 canaux de base : stdin (entrée, numéro 0), stdout (sortie normale, numéro 1) et stderr (les err

Shells Unix - 5 redirections que vous copiez sans comprendre

Par : Korben
27 février 2026 à 09:53

2>&1, >, >>, 2>/dev/null... Si ces symboles dans votre terminal Linux ou macOS vous font autant flipper qu'un regex, respirez un grand coup ! Quand vous aurez lu cet article, vous verrez qu'en fait c'est super simple à comprendre, et en 5 minutes vous saurez enfin ce que vous copiez-collez depuis des années depuis StackOverflow.

En fait, dans les shells Unix (bash, zsh, etc.), y'a 3 canaux de base : stdin (entrée, numéro 0), stdout (sortie normale, numéro 1) et stderr (les erreurs, numéro 2). Tout le reste, de > à 2>/dev/null, découle de ces 3 numéros.

> - Écrire dans un fichier (et tout écraser)

echo "Salut" > fichier.txt

Ça redirige stdout vers fichier.txt. Si le fichier existe déjà... c'est mort, il est écrasé sans sommation. Du coup, faites gaffe avec vos logs, une commande mal placée et ce sont des heures de données qui disparaissent.

D'ailleurs, si vous êtes du genre parano (et oui, vous avez raison !), set -o noclobber dans votre .bashrc empêchera > d'écraser un fichier existant lors d'une commande tapée à la main. Pour y arriver, il faudra utiliser >| pour forcer.

>> - Ajouter à la suite

echo "Ligne 2" >> fichier.txt

Même principe que >, sauf que ça ajoute à la fin au lieu d'écraser. C'est ce que vous voulez 99% du temps pour des logs (sauf si vous voulez repartir de zéro, là > fait le job). Une lettre de différence entre "tout va bien" et "où sont passés mes logs, boudiouuu ???".

2> - Rediriger les erreurs

commande_foireuse 2> erreurs.log

Le 2 c'est stderr, en gros (y'a pas d'espace entre le 2 et le >, sinon bash croit que 2 est un argument). Tout ce qui sort en erreur finit dans erreurs.log au lieu de polluer votre terminal. Perso, je trouve ça super pratique pour garder une trace propre quand vous lancez des scripts via crontab -e.

Et 2>> existe aussi, pour cumuler les erreurs au fil du temps au lieu d'écraser le fichier à chaque exécution.

2>&1 - Fusionner erreurs et sortie normale

commande > output.log 2>&1

Le fameux ! Le &1 dit à bash "le 1 c'est un file descriptor, pas un fichier qui s'appelle littéralement 1". Du coup stderr (2) est redirigé vers le même endroit que stdout (1), ou plutôt vers là où stdout pointe au moment où bash évalue la ligne. Ça va, vous suivez toujours ? ^^

Attention, l'ordre compte ! Bash lit les redirections de gauche à droite. > output.log 2>&1, stdout pointe vers le fichier, puis stderr suit... tout va dans le fichier. 2>&1 > output.log, stderr copie stdout qui pointe ENCORE vers le terminal, puis stdout est redirigé vers le fichier. Résultat, les erreurs restent dans votre terminal. Le piège classique.

Et &> fait la même chose en plus court :

commande &> output.log

&> est super pratique, mais spécifique à bash / zsh donc pour la portabilité, préférez quand même > fichier 2>&1.

2>/dev/null - Le trou noir

find / -name "*.conf" 2>/dev/null

/dev/null, c'est le trou noir d'Unix. Tout ce que vous envoyez là-dedans disparaît. Super pratique avec find qui vous crache 200 "Permission denied" pour un seul résultat utile.

Et si vous voulez TOUT faire disparaître (stdout + stderr) ? Un petit &>/dev/null et c'est réglé. Pratique dans vos scripts /etc/cron.d/ quand vous voulez zéro bruit (bon, j'exagère un chouïa, je sais...).

Si vous aimez les raccourcis bash , j'ai aussi ce qu'il faut.

Bref, voilà ce sont juste 5 opérateurs à retenir, et avec ça vous couvrez à peu près tout. Donc la prochaine fois que vous copierez un 2>&1, au moins vous saurez pourquoi.

Source d'inspiration

  • ✇Korben
  • sudo-rs - 40 ans de silence cassés par des astérisques
    Si vous utilisez Ubuntu 26.04, vous avez peut-être remarqué un truc bizarre dernièrement en tapant votre mot de passe sudo... Ouiiiiii, y'a des petites étoiles qui apparaissent !! Pas de panique, c'est "normal". Enfin, c'est nouveau... En effet, sudo-rs, la réécriture en Rust de la bonne vieille commande sudo, a décidé d'activer pwfeedback par défaut. En gros, quand vous faites un sudo apt install bidule, au lieu du trou noir habituel, vous voyez maintenant des ***** défiler pendant la saisie du

sudo-rs - 40 ans de silence cassés par des astérisques

Par : Korben
27 février 2026 à 09:33

Si vous utilisez Ubuntu 26.04, vous avez peut-être remarqué un truc bizarre dernièrement en tapant votre mot de passe sudo... Ouiiiiii, y'a des petites étoiles qui apparaissent !! Pas de panique, c'est "normal". Enfin, c'est nouveau...

En effet, sudo-rs, la réécriture en Rust de la bonne vieille commande sudo, a décidé d'activer pwfeedback par défaut. En gros, quand vous faites un sudo apt install bidule, au lieu du trou noir habituel, vous voyez maintenant des ***** défiler pendant la saisie du mot de passe. C'est un changement qui casse une convention vieille de 40 ans... et ça, forcément, ça fait du bruit !

Pour rappel, Ubuntu a basculé sur sudo-rs (le remplaçant en Rust du bon vieux sudo en C) depuis la version 25.10. Ça fait partie du même mouvement de réécriture des outils système en Rust, comme les coreutils dont je vous avais parlé. Et la 26.04 vient de "cherry-picker" comme on dit, un patch upstream qui active le feedback visuel par défaut.

Un bug report sur Launchpad ( #2142721 ) est bien sûr arrivé direct, en mode vénère genre "*ÇA FAIT DES DÉCENNIES qu'on n'affiche pas la longueur du mot de passe pour empêcher le shoulder surfing ! C'est quoi ce bordel !!?? *"

Et la réponse des devs : Won't Fix. Circulez les relous !

En fait, leur argument c'est que le bénéfice sécurité est "infinitésimal". Parce que bon, votre mot de passe sudo c'est le même que celui de votre session (celui que vous tapez à l'écran de login, devant tout le monde). Et le bruit des touches trahit déjà la longueur de toute façon. Du coup, ils ont préféré régler le problème UX qui paume les débutants depuis le début des années 80.

D'ailleurs, en 2013 je vous expliquais comment activer ces étoiles manuellement avec sudo visudo (ça date de fou !!) et maintenant c'est l'inverse, faut expliquer comment les virer ! Linux Mint avait d'ailleurs déjà sauté le pas de son côté depuis un moment.

Perso, le truc qui me gonfle c'est pour les tutos vidéo. Quand vous faites un screencast, les astérisques révèlent la longueur de votre mot de passe à tous vos spectateurs. Du coup faut aller reparamétrer chaque machine avant de filmer ou faire du masquage en post prod. C'est pas la fin du monde, mais bon, la flemme...

Alors pour désactiver ces jolies zétoiles :

sudo visudo

Et ajoutez cette ligne à la fin de /etc/sudoers :

Defaults !pwfeedback

Sauvegardez (Ctrl+X sous nano), et c'est réglé. Attention, ne touchez à rien d'autre dans ce fichier, une erreur de typo et sudo ne marchera plus. Grâce à cette manip, ce sera retour au trou noir ! Youpi !

Source

  • ✇Korben
  • Faux entretiens d'embauche - Le piège qui vise les devs Next.js
    Des faux entretiens d'embauche avec des repos GitHub vérolés pour piéger les devs Next.js... on croit rêver et pourtant, Microsoft vient de documenter cette campagne ciblée et vous allez voir, c'est violent. En fait, un groupe de hackers se fait actuellement passer pour des recruteurs et contacte des développeurs JavaScript en leur proposant un entretien technique. Le deal c'est de cloner un repo GitHub pour un "test de compétences"... sauf que le repo en question est truffé de malware. Microsof

Faux entretiens d'embauche - Le piège qui vise les devs Next.js

Par : Korben
26 février 2026 à 14:26

Des faux entretiens d'embauche avec des repos GitHub vérolés pour piéger les devs Next.js... on croit rêver et pourtant, Microsoft vient de documenter cette campagne ciblée et vous allez voir, c'est violent.

En fait, un groupe de hackers se fait actuellement passer pour des recruteurs et contacte des développeurs JavaScript en leur proposant un entretien technique. Le deal c'est de cloner un repo GitHub pour un "test de compétences"... sauf que le repo en question est truffé de malware.

Microsoft a ainsi identifié plusieurs vecteurs d'infection planqués dans ces repos. Le premier, c'est via les fichiers de configuration VS Code, c'est à dire ceux dans le dossier .vscode/, qui peuvent exécuter du code dès que vous cliquez "Trust" à l'ouverture du projet (ce que la plupart des devs font sans réfléchir).

Le deuxième passe par un npm run dev piégé, la commande de dev classique qui lance le malware en même temps que le serveur (car oui, c'est aussi simple que ça...).

Et le troisième est encore plus sournois puisqu'il s'agit d'un module backend qui décode une URL depuis le fichier .env, exfiltre toutes les variables d'environnement (tokens cloud, clés API...), puis exécute du JavaScript reçu en retour. Sympaaaaaa....

Du coup, le malware est plutôt bien pensé. C'est un loader JavaScript qui se télécharge depuis l'infrastructure Vercel (comme ça, ça a l'air légitime), et qui s'exécute entièrement en mémoire, et spawne un processus Node.js séparé pour ne pas éveiller les soupçons. Une fois installé, il se connecte alors à un serveur C2 qui change d'identifiant régulièrement, histoire de compliquer la détection. Et là, ça se met à exfiltrer tout ce qui traîne... code source, secrets, credentials cloud... bref, tout ce qui a de la valeur.

Alors, comment on se protège de ce genre de menace quand on est un simple dev ? Hé bien déjà, vérifiez le profil du "recruteur". Pas de site d'entreprise vérifiable, des messages génériques... c'est un joli red flag !

Ensuite, avant de lancer quoi que ce soit, lisez le package.json à la recherche de scripts suspects dans preinstall, postinstall ou prepare, inspectez le dossier .vscode/ (surtout tasks.json), et faites un npm install --ignore-scripts pour bloquer l'exécution automatique des hooks. Lancez aussi un safe-npm et un npm audit une fois les dépendances installées. Et côté VS Code, désactivez l'exécution auto des tasks avec "task.allowAutomaticTasks": "off" dans vos settings.

Ça me rappelle les campagnes type Shai-Hulud et les packages npm vérolés , mais avec un vecteur social bien plus élaboré. Le piège, c'est qu'on ne balance plus des packages malveillants dans le registry en espérant qu'un dev les installe par erreur... non, non, on cible directement les développeurs, un par un, en exploitant ce stress de la recherche d'emploi comme le ferait un conseiller France Travail quand vous arrivez en fin de droits chomdu...

Et si vous êtes en pleine recherche d'emploi, attention, ne lancez JAMAIS un projet d'un inconnu dans votre environnement principal. Utilisez une VM, un container Docker (docker run --rm -it -v $(pwd):/app node:20 bash et c'est réglé), ou au minimum un compte utilisateur séparé sans accès à vos tokens et clés SSH. On n'est jamais trop prudent !

Maintenant vous savez... si un recruteur vous envoie un repo GitHub sans profil LinkedIn ni site d'entreprise véritable et vérifiable... c'est que c'est pas un recruteur. Voilà voilà...

Source

  • ✇Korben
  • Claude Code - Pilotez votre terminal depuis votre canapé
    Claude Code tourne en local et c'est son gros avantage car ça permet par exemple d'agir sur votre machine, de lancer des scripts...etc. Mais c'est aussi sa grosse limite car à cause de ça, vous êtes cloué devant votre terminal. J'étais en quête depuis un moment d'une solution et je vous avais déjà parlé de Vibe Companion y'a pas longtemps mais tous ces outils vont disparaitre puisque Anthropic vient de sortir Remote Control, une feature qui transforme claude.ai ou l'app mobile en télécommande po

Claude Code - Pilotez votre terminal depuis votre canapé

Par : Korben
26 février 2026 à 12:46

Claude Code tourne en local et c'est son gros avantage car ça permet par exemple d'agir sur votre machine, de lancer des scripts...etc. Mais c'est aussi sa grosse limite car à cause de ça, vous êtes cloué devant votre terminal. J'étais en quête depuis un moment d'une solution et je vous avais déjà parlé de Vibe Companion y'a pas longtemps mais tous ces outils vont disparaitre puisque Anthropic vient de sortir Remote Control, une feature qui transforme claude.ai ou l'app mobile en télécommande pour votre session locale. Comme ça, vos fichiers restent chez vous et seule l'interface voyage.

Votre ordi fait tourner Claude Code normalement, et vous, vous pouvez continuer à lui parler depuis votre iPhone, votre Android, votre iPad ou n'importe quel navigateur Chrome, Firefox, Safari... Pas de serveur exposé, pas de port ouvert, que du HTTPS sortant. C'est plutôt bien foutu vous allez voir !

Ce qu'il vous faut

Bon déjà, un abonnement Pro (Édit : ? on me dit que c'est pas encore actif pour les pro ?) ou Max (pas le choix, les clés API ne marchent pas et les plans Team/Enterprise sont exclus pour le moment). Ensuite, vérifiez que Claude Code est installé et que vous êtes connecté via /login. Acceptez ensuite le "workspace trust" dans votre projet et hop, c'est tout côté prérequis.

Lancer une session

Deux options s'offrent à vous ensuite... Soit vous démarrez une nouvelle session dédiée :

claude remote-control

Soit vous êtes déjà en train de bosser dans Claude Code et vous tapez /rc (alias de /remote-control). Avec claude remote-control, seule l'URL apparaît... donc appuyez sur espace pour afficher le joli QR code.

3 flags utiles (uniquement avec claude remote-control, pas /rc) : --verbose pour voir ce qui transite, --sandbox pour forcer le mode bac à sable (désactivé par défaut) et --no-sandbox pour le couper si vous l'avez activé dans votre config.

Se connecter depuis un autre appareil

Ensuite, la méthode la plus rapide c'est de scanner le QR code avec votre téléphone. Sinon, copiez l'URL affichée et collez-la dans n'importe quel navigateur. Dernière option, allez sur claude.ai/code et votre session apparaît dans la liste (les sessions actives ont un petit point vert).

Une fois connecté, vous récupérez votre conversation en cours, vos fichiers, votre contexte... tout. Vous pouvez envoyer des messages, voir les résultats, approuver les modifications de fichiers. Bref, comme si vous étiez devant votre terminal, sauf que vous êtes dans votre canapé, votre lit ou en train de pousser le caddie chez Auchan !

Activer par défaut

Maintenant, si vous voulez que CHAQUE session Claude Code soit automatiquement accessible à distance, tapez /config dans une session Claude Code, puis activez l'option "Enable Remote Control for all sessions". Et voilà, plus besoin d'y réfléchir ! Chaque claude lancé dans un terminal sera pilotable depuis votre navigateur ou l'app mobile.

Vos sessions prennent le nom de votre dernier message (ou "Remote Control session" par défaut), donc utilisez /rename mon-projet-cool pour les retrouver facilement dans la liste sur claude.ai/code.

Sinon, dans Claude Code avec /mobile vous pouvez aussi afficher directement le QR code pour télécharger l'app Claude sur iOS ou Android.

Les limites à connaître

Bon, après c'est pas non plus parfait car déjà, c'est cappé à UNE SEULE session à distance par instance de Claude Code (si vous en lancez une deuxième, la première se déconnecte). Par contre, plusieurs instances dans des terminaux différents peuvent chacune avoir leur session remote. Le terminal doit également rester ouvert (si vous le fermez, c'est fini). Mais bonne nouvelle quand même, si le laptop passe en veille ou que le réseau saute, ça se reconnectera tout seul au réveil. Le piège, c'est si la machine reste sans réseau plus de 10 minutes... là, la session expire et il faudra relancer claude remote-control.

Soyez rassurés quand même côté sécurité c'est propre (uniquement du HTTPS sortant sur le port 443, zéro port entrant et des identifiants éphémères), mais gardez en tête que Claude Code a accès à votre terminal donc sauf si vous activez --sandbox, il peut de ce fait exécuter n'importe quelle commande... donc les mêmes précautions qu'en local s'appliquent !

Du coup si vous en avez marre de rester scotché devant votre terminal, maintenant vous savez quoi faire.

Merci à Lorenper !

  • ✇Korben
  • Clés API Google - 3000 clés publiques donnent accès à Gemini
    Les clés API Google que vous collez dans votre JavaScript pour afficher une carte Maps... hé bien elles ne sont plus si inoffensives. Car depuis que Gemini est entré dans la danse, ces mêmes clés donnent maintenant accès à vos fichiers privés et surtout à votre facture IA. Et personne ne nous a prévenu... En gros, Google utilise un format de clé unique, les fameuses AIza..., aussi bien pour Maps et Firebase (public, collé dans le HTML, tout le monde s'en fout) que pour Gemini (privé, accès aux f

Clés API Google - 3000 clés publiques donnent accès à Gemini

Par : Korben
26 février 2026 à 09:31

Les clés API Google que vous collez dans votre JavaScript pour afficher une carte Maps... hé bien elles ne sont plus si inoffensives. Car depuis que Gemini est entré dans la danse, ces mêmes clés donnent maintenant accès à vos fichiers privés et surtout à votre facture IA.

Et personne ne nous a prévenu...

En gros, Google utilise un format de clé unique, les fameuses AIza..., aussi bien pour Maps et Firebase (public, collé dans le HTML, tout le monde s'en fout) que pour Gemini (privé, accès aux fichiers, facturation). Le problème c'est que quand vous activez l'API Gemini sur un projet Google Cloud, TOUTES les clés existantes de ce projet héritent automatiquement de l'accès Gemini. Sans warning, sans notification, sans rien... Ouin !

Les chercheurs de TruffleSecurity ont ainsi trouvé presque 3000 clés API Google valides dans le dataset Common Crawl de novembre 2025. Des clés qui trainent dans du code JavaScript, des pages HTML, des repos GitHub publics... et qui fonctionnent sur l'endpoint Gemini. Il suffit d'un simple curl avec une clé Maps récupérée sur un site web, et hop, vous accédez à l'API Gemini du propriétaire. Fichiers privés, contenu en cache, facturation sur son compte.

Et parmi les victimes, on trouve des institutions financières, des boîtes de cybersécurité, et... Google eux-mêmes (oui oui, vraiment).

Le 21 novembre 2025, TruffleSecurity signale donc le problème et la réponse de Google le 25 novembre c'est : "intended behavior" (comportement normal)... Sauf que le 2 décembre, Google a reclassifié ça en bug, puis le 13 janvier 2026, ça passe finalement en Tier 1. On est donc passé du "c'est normal les frérots" à "ah oui quand même, oupsi oups", en 7 semaines.

Maintenant, pour ceux qui se demandent si leurs clés API Google sont concernées, direction console.cloud.google.com , section "APIs & Services" puis "Identifiants".

Si vous voyez l'API " Generative Language " de Gemini API activée sur un projet avec des clés non restreintes... attention, c'est le moment de faire le ménage. Ajoutez des restrictions IP ou HTTP referrer, et surtout, utilisez des comptes de service plutôt que des clés API pour tout ce qui touche à Gemini (sauf si vous aimez les surprises sur votre facture ^^).

Le truc tordu, c'est que la doc Firebase dit noir sur blanc que les clés API ne sont pas des secrets. Google Maps vous dit carrément de les coller dans votre HTML. Et maintenant, ces mêmes clés donnent accès à une IA qui peut lire vos fichiers. Du CWE-1188 pur et dur ! Et c'est pas la première fois que Google se fait taper sur les doigts pour ce genre de souci avec Gemini .

Du coup, Google a annoncé des nouvelles mesures, du scoped defaults, du blocage de clés fuités, des notifications proactives...etc. Reste donc à voir si ça arrivera avant que les presque 3000 clés exposées soient exploitées par des gens moins bien intentionnés.

Bref, dix ans à dire que c'est public, et hop, aujourd'hui c'est devenu top secret. Bien joué Google !!

Source

Les Pokémon ont trente ans et s'achètent à prix d'or

Né il y a trente ans, relancé par le Covid, l’échange de cartes Pokémon est devenu un véritable business. Le trading card game, ce sont des boutiques, des plateformes de reventes, des influenceurs et beaucoup de fans.

L’article Les Pokémon ont trente ans et s'achètent à prix d'or est apparu en premier sur L'ADN.

  • ✇Korben
  • FFmpeg - Comment normaliser le volume audio proprement avec loudnorm
    Vous avez déjà remarqué comment le volume varie d'une vidéo à l'autre sur YouTube, ou pire, comment certaines pubs sont 10 fois plus fortes que le contenu ? Bah c'est parce que tout le monde n'utilise pas la même norme de volume. Et si vous produisez du contenu audio/vidéo, c'est le genre de détail qui fait la différence entre un truc amateur et un rendu pro. La bonne nouvelle, c'est que FFmpeg intègre déjà un filtre qui s'appelle loudnorm et qui gère tout ça automatiquement. La norme utilisée,

FFmpeg - Comment normaliser le volume audio proprement avec loudnorm

Par : Korben
17 février 2026 à 10:25

Vous avez déjà remarqué comment le volume varie d'une vidéo à l'autre sur YouTube, ou pire, comment certaines pubs sont 10 fois plus fortes que le contenu ? Bah c'est parce que tout le monde n'utilise pas la même norme de volume. Et si vous produisez du contenu audio/vidéo, c'est le genre de détail qui fait la différence entre un truc amateur et un rendu pro.

La bonne nouvelle, c'est que FFmpeg intègre déjà un filtre qui s'appelle loudnorm et qui gère tout ça automatiquement. La norme utilisée, c'est le LUFS (Loudness Units Full Scale), qui est devenue le standard de l'industrie, et YouTube, Spotify, les TV... tout le monde utilise ça maintenant pour mesurer et normaliser le volume audio.

D'ailleurs, si vous débutez complètement avec cet outil, je vous conseille de jeter un œil à mon guide FFmpeg pour les nuls pour bien piger les bases de la ligne de commande.

Allez, c'est partiii ! Temps estimé : 2-5 minutes par fichier (selon la méthode choisie)

Mais, avant de se lancer dans les commandes, un petit point sur les paramètres qu'on va manipuler. Le filtre loudnorm utilise trois valeurs principales. D'abord I (Integrated loudness), c'est le volume moyen global mesuré en LUFS. La valeur standard pour le streaming, c'est -16 LUFS pour YouTube et Spotify, ou -23 LUFS pour la diffusion broadcast. Ensuite TP (True Peak), le niveau maximal que le signal ne doit jamais dépasser. On met généralement -1.5 dB pour avoir une marge de sécurité. Et enfin LRA (Loudness Range), qui définit la plage dynamique autorisée, généralement autour de 11 dB.

Méthode 1 : Normalisation simple (single-pass)

C'est la méthode la plus rapide, parfaite pour du traitement à la volée :

ffmpeg -i entree.wav -af loudnorm=I=-16:TP=-1.5:LRA=11 -ar 48000 sortie.wav

Pourquoi ces valeurs : -16 LUFS c'est le standard YouTube/Spotify, -1.5 dB de true peak évite le clipping, et 11 dB de range dynamique garde un son naturel.

Le truc c'est que cette méthode fait une analyse en temps réel et ajuste à la volée. C'est bien, mais pas parfait. Pour un résultat vraiment précis, y'a mieux.

Méthode 2 : Normalisation en deux passes (dual-pass)

Cette méthode analyse d'abord le fichier complet, puis applique les corrections exactes. C'est plus long mais beaucoup plus précis.

Première passe, on analyse :

ffmpeg -i entree.wav -af loudnorm=I=-16:TP=-1.5:LRA=11:print_format=json -f null -

FFmpeg va vous sortir un bloc JSON avec les mesures du fichier (input_i, input_tp, input_lra, input_thresh). Notez-les bien, car vous allez les injecter dans la deuxième passe.

Deuxième passe, on applique avec les valeurs mesurées (remplacez les chiffres par ceux obtenus à l'étape précédente) :

ffmpeg -i entree.wav -af loudnorm=I=-16:TP=-1.5:LRA=11:measured_I=-24.35:measured_TP=-2.15:measured_LRA=8.54:measured_thresh=-35.21:offset=0:linear=true -ar 48000 sortie.wav

Pourquoi cette méthode ? En fait, en passant les valeurs mesurées, FFmpeg sait exactement de combien ajuster. L'option linear=true force une normalisation linéaire plutôt que dynamique, ce qui préserve mieux la dynamique originale.

Pour les fichiers vidéo

Le principe est le même, on ajoute juste -c:v copy pour garder la vidéo intacte sans la ré-encoder :

ffmpeg -i video.mp4 -c:v copy -af loudnorm=I=-16:TP=-1.5:LRA=11 -ar 48000 video_normalise.mp4

D'ailleurs, pour ceux qui veulent automatiser ça à l'extrême, j'avais parlé de FFmpegfs , un système de fichiers qui transcode automatiquement ce que vous déposez dessus. C'est pratique si vous avez une grosse bibliothèque à gérer.

Traitement par lots avec ffmpeg-normalize

Si vous avez plein de fichiers à traiter, y'a un outil Python qui automatise la méthode dual-pass :

pip install ffmpeg-normalize
ffmpeg-normalize *.wav -o output_folder/ -c:a pcm_s16le

Cet outil fait automatiquement les deux passes et supporte le traitement parallèle. Pratique pour normaliser une bibliothèque entière.

Et en cas de problème ?

Erreur "No such filter: loudnorm" : Votre version de FFmpeg est trop ancienne (il faut la 3.1 minimum). Mettez à jour votre binaire.

Le son est distordu après normalisation : Le fichier source était probablement déjà saturé. Essayez de baisser le target (-18 LUFS au lieu de -16) ou augmentez le headroom du true peak (-2 dB au lieu de -1.5).

Voilà, maintenant vous n'avez plus d'excuse pour avoir des niveaux audio qui varient dans tous les sens. Le LUFS c'est le standard, FFmpeg gère ça nativement, et ça prend 30 secondes.

Vos auditeurs vous remercieront.

Source

❌
❌