Vue normale

Reçu aujourd’hui — 28 janvier 2026 Linux

Le groupe cybercriminel TA584 enrichit son arsenal et étend ses campagnes à l’échelle mondiale

28 janvier 2026 à 11:23

Les chercheurs de Proofpoint suivent attentivement TA584, l’un des groupes cybercriminels les plus actifs du moment, qui fait évoluer ses tactiques à vitesse grand V. Cette capacité d’adaptation permanente illustre les limites des dispositifs de détection statiques face à des attaquants opérant à un rythme soutenu.   Tribune – En 2025, TA584 a triplé le […]

The post Le groupe cybercriminel TA584 enrichit son arsenal et étend ses campagnes à l’échelle mondiale first appeared on UnderNews.

Protection des données : une question de processus

28 janvier 2026 à 10:08

À l’occasion de la Journée Européenne de la protection des données, un constat s’impose : protéger les données n’est pas une simple fonction IT, c’est une composante stratégique de la résilience opérationnelle. Tribune par Amine Soussi, Senior Solutions Consultant chez Appian – Depuis l’entrée en vigueur de DORA, les institutions financières l’ont compris : les […]

The post Protection des données : une question de processus first appeared on UnderNews.

Réfléchissez avant de scanner : ce code QR pourrait être une arnaque

28 janvier 2026 à 09:25

Lors d’attaques de type « quishing », des cybercriminels placent des codes QR contenant des liens malveillants dans des lieux publics, comme des horodateurs ou des restaurants, ou les envoient par courriel. Ces attaques peuvent entraîner des pertes financières, le vol de données personnelles ou la compromission d’appareils, préviennent les experts en cybersécurité. Tribune Planet VPN – […]

The post Réfléchissez avant de scanner : ce code QR pourrait être une arnaque first appeared on UnderNews.
Reçu hier — 27 janvier 2026 Linux

L’activité IA et Machine Learning (ML) bondit de 91 % en un an : des milliers d’organisations exposées, sans cadre de gouvernance

27 janvier 2026 à 16:00

Rapport Zscaler ThreatLabz 2026 sur les menaces IA – L’adoption rapide de l’IA crée un fossé critique entre innovation et sécurité, obligeant les organisations à adopter une plateforme de sécurité IA fondée sur le modèle Zero Trust. Principales conclusions de l’étude : L’adoption de l’IA s’accélère plus vite que la supervision des entreprises. Malgré une […]

The post L’activité IA et Machine Learning (ML) bondit de 91 % en un an : des milliers d’organisations exposées, sans cadre de gouvernance first appeared on UnderNews.

Souveraineté et prudence face à l’IA : pourquoi la Journée de la protection des données est plus cruciale que jamais

27 janvier 2026 à 15:58

Le 28 janvier, les organisations et les citoyens du monde entier célèbrent la Journée de la protection des données. Elle agit comme un rappel général de l’importance de protéger les informations personnelles et de renforcer les mesures de protection des données dans un écosystème de plus en plus numérique. Cette journée souligne que la vie […]

The post Souveraineté et prudence face à l’IA : pourquoi la Journée de la protection des données est plus cruciale que jamais first appeared on UnderNews.

Yubico permet aux entreprises d’accélérer le déploiement à grande échelle de passkeys

27 janvier 2026 à 15:56

Yubico permet aux entreprises d’accélérer le déploiement à grande échelle de passkeys grâce à un système de commande en libre-service destiné aux employés. L’entreprise annonce l’amélioration des fonctionnalités YubiKey as-a-service avec la commande en libre-service de YubiKey pour les employés, grâce à un nouveau portail client. Tribune — Yubico, une entreprise moderne spécialisée dans la […]

The post Yubico permet aux entreprises d’accélérer le déploiement à grande échelle de passkeys first appeared on UnderNews.

Cyber résilience : Près d’un tiers des grandes entreprises françaises (27 %) n’ont pas la maturité suffisante pour se remettre d’une cyberattaque

27 janvier 2026 à 15:51

Demain, la journée européenne de la protection des données rappellera l’importance de sécuriser nos données. Mais qu’en est-il de notre capacité à les restaurer après une attaque ? Le baromètre mondial de Cohesity sur la cyber-résilience dresse un état des lieux préoccupant : près d’un tiers des grandes entreprises françaises (27 %) n’ont pas la […]

The post Cyber résilience : Près d’un tiers des grandes entreprises françaises (27 %) n’ont pas la maturité suffisante pour se remettre d’une cyberattaque first appeared on UnderNews.

Dockhand : gestionnaire Docker léger et puissant

Par :Aerya
27 janvier 2026 à 10:14

Passé par Portainer, Komodo, Dockge et plus récemment Arcane, j’ai toujours pas trouvé LE gestionnaire de Docker qui me convienne : léger, permettant de gérer au moins 3 machines, intuitif tout en restant complet, qui gère les MàJ des Dockers, acceptant directement des compose, etc.

Depuis quelques jours maintenant j’utilise Dockhand (GitHub) et ça coche toutes les cases ; même plus puisqu’il a en option notamment des notifications différenciées et les outils Trivy et Grype pour scanner les dockers à la recherche de vulnérabilités. De mémoire j’avais présenté le 1er y’a des années sur le blog « perdu » effacé par un bon gros blaireau…

Pour le coup je le trouve très bien pensé, avec plus un œil de « geek » que de professionnel si je puis dire. Avec en prime une roadmap et un super Wiki qui va à l’essentiel.

dockhand1
dockhand2

J’ajoute l’environnement local via socket directement.

dockhand3
dockhand4
dockhand5
dockhand6
dockhand7
dockhand8
dockhand9
dockhand10
dockhand11
dockhand12
dockhand13

On peut ajouter des registres avec ses comptes comme DockerHub et GitHub

dockhand14

C’est tout bête mais j’aime bien la possibilité de choisir ses thèmes. Ça me rappelle un peu https://catppuccin.com/ports/

dockhand15
dockhand16

Puisque j’ai lié mon compte GitHub je peux importer mes repos, y compris les privés.

dockhand17

Comme souvent, on peut créer des templates d’installations Docker. J’ai jamais utilisé. Le seul cas, dans mon contexte, où ça pourrait éventuellement être potentiellement utile 2 ou 3 fois (na, pas du tout) ce serait pour créer une template pour les arrs/decypharr etc avec les volumes pré-définis. On est d’accord, j’en n’ai aucune utilité. Mais y’a l’option.

dockhand18

Pour les notifications, je me suis mis Discord. Et on verra après que je ne les utilise que dans le cas des MàJ pour l’instant. Je ne fais pas de MàJ auto pour tous mes Dockers, je suis du coup informé quand y’a une MàJ à faire ou quand celles en automatique ont été réalisées (ou ont échoué).

dockhand20
dockhand19

C’est uniquement en LAN chez moi, j’ai pas testé l’authentification.Idem pour l’ajout de serveurs (Syno et ZimaOS pour l’instant), j’ai utilisé Hawser vu que je suis sur mon réseau.

dockhand21

Et j’obtiens la vue d’ensemble de mes machines

dockhand22

Comme je le disais au début de l’article, j’ai été agréablement surpris de voir l’intégration de Trivy et Grype, sur option, qui permettent de scanner chaque image installée.

Ici l’exemple de mon serveur AdGuardHome que je voulais changer de machine : imthai/adguardhome-unbound-redis

dockhand23
dockhand24

Les vulnérabilités trouvées sont indiquées pour chaque agent avec le lien vers le CVE. Si l’option de scan est globalement activée alors les updates seront aussi scannées. Et on peut à tout moment lancer un scan depuis la liste des images via l’icône de bouclier.

Si tous les Dockers d’une machine seront reportés dans Dockhand, on ne pourra évidemment y éditer que ceux lancés via l’outil.
Pour se faire on peut utiliser la méthode « guidée » où on pull une image et on la gère de manière guidée.

dockhand33
dockhand34
dockhand35
dockhand36

Ou bien on peut importer des stacks/compose depuis un serveur (bouton Adopt) mais j’ai pas testé.

dockhand37

Ou enfin, le plus simple dans mon cas, on peut ajouter son compose directement. On peut même importer son .env
Désolé du caviardage mais j’ai réalisé après coup que je montrais un truc personnel.

dockhand38

Il est également possible d’importer des dépôts depuis les registres configurés

dockhand28

Dockhand permet bien sûr de créer et gérer tous les types de réseaux

dockhand30
dockhand39

Après ces tests, même si c’est toujours en gros développement, je trouve ça plus abouti qu’Arcane, plus simple que Komodo et ça répond plus à mes besoins que Portainer.
C’est une belle découverte que je vais conserver.

Loading

Data Privacy Day (Journée européenne de la protection des données) : commentaire des experts de Veeam

27 janvier 2026 à 09:24

Rick Vanover, VP of Product Strategy, Veeam Software :   « La véritable résilience des données repose avant tout sur la confiance et le contrôle. À l’occasion de la Journée européenne de la protection des données (Data Privacy Day), nous devons donner aux entreprises les moyens de prendre en charge leurs données, tout en veillant […]

The post Data Privacy Day (Journée européenne de la protection des données) : commentaire des experts de Veeam first appeared on UnderNews.

IA non homologuée : quels risques pour la gouvernance des données ?

27 janvier 2026 à 08:58

Aujourd’hui, les entreprises attendent des analyses toujours plus rapides et une adoption de l’IA à grande échelle. Les analystes cherchent donc des moyens d’y répondre, y compris lorsque les outils et processus officiels sont trop contraignants ou ne suivent pas le rythme. Sous la pression des délais, certains se tournent vers des outils d’IA non […]

The post IA non homologuée : quels risques pour la gouvernance des données ? first appeared on UnderNews.
Reçu — 26 janvier 2026 Linux

rClone ncdu : quand on ne peut pas installer ncdu sur un OS

Par :Aerya
26 janvier 2026 à 17:10

Parfois on n’a pas les droits pour installer des utilitaires sur un OS (notamment sur TrueNAS). J’aime particulièrement ncdu qui me permet de rapidement visualiser des tailles de dossiers/montages/backups…

Et on peut donc biaiser en l’utilisant depuis rClone, sur un remote « local » qu’il convient d’ajouter dans rclone.conf

[local]
type = local
rclonencdu

On peut cibler des dossiers comme on le ferait directement depuis l’OS

root@HomeBox[/mnt]# ls
Docker  Fichiers  Usenet
root@HomeBox[/mnt]# rclone ncdu local:Fichiers
rclone ncdu v1.70.2 - use the arrow keys to navigate, press ? for help
-- /mnt/Fichiers ----------------------------------------------------------------------------------------------------------------------------------------------
    2.321Ti [##########] /qbittorrentvpn2
  381.995Gi [##        ] /qbittorrentvpn1
    2.180Gi [          ] /metube
      360Ki [          ] /seedarr
       52Ki [          ] /grabb2rss
e         0 [          ] /books
e         0 [          ] /chaptarrdl
e         0 [          ] /decypharr
e         0 [          ] /rclonecache
e         0 [          ] /riven

Loading

Comment se crée le grand secret de LinuxFr.org

Le 17 janvier 2026 était publié un journal au titre cryptique « Le grand secret de LinuxFr.org ». Son contenu se limite à pointer un tableau (le voici au format Markdown ou en image) et huit vers énigmatiques par un piètre rimailleur. Et pour renforcer l’aspect mékeskidi, une prédiction à propos d’un second secret.

Comment en est-on arrivé là ? Quel rapport avec LinuxFr.org ? Quel est ce grand secret ? Et le second ? Y avait-il des éléments cachés dans des éléments cachés dans des éléments cachés ? Voilà ce qui sera détaillé dans la suite.

Avertissement : évidemment si vous allez lire la suite, vous gâchez le plaisir de la recherche de la réponse par vous-même. Si vous lisez cette dépêche longtemps après sa publication, la résolution devrait rester inchangée.

    Sommaire

    Il était une fois

    De l’auteur

    Je suis, entre autres choses, un amateur de jeux de société, de jeux de rôle, de petits jeux quotidiens (comme Sutom (MIT) ou Le Mot (GPL v3) ou ClueBySam (gratuit, code propriétaire), de petits jeux de réflexion comme GNOME Sudoku (GPLv3+), habitué à recourir à dcode.fr (CC By) pour coder/décoder sur divers jeux (ou à CyberChef (Apache 2) pour des choses plus orientées sécurité) ou de participer à de longues séries d’énigmes genre calendrier de l’Avent (dernièrement celles du ChocoCervo (gratuit à but caritatif, code propriétaire) ou celles de Professeur Zwolle (payant et code propriétaire).

    Dans la dernière édition de ce dernier, qui s’est terminée mi-novembre 2025, il y avait une grille codée à résoudre et j’avais adoré le principe de cette énigme à tiroirs. Je me suis demandé qu’elle serait la difficulté à en faire une similaire, voire en augmentant la densité de l’information stockée dans la grille. Bref début décembre 2025, j’ai commencé à remplir une grille (entre diverses résolutions de calendriers de l’Avent orientés énigmes/jeux ou bien sécurité).

    Mi-décembre j’avais obtenu le résultat quasi final, mais j’avais du mal à résoudre moi-même l’énigme, donc il fallait réduire sa difficulté et ma motivation a baissé avec une fin d’année compliquée. Et début 2026, en rediscutant avec des amis de l’énigme en préparation, la motivation est revenue, j’ai fini de retester en une soirée, découvert une typo qui a nécessité des corrections de dernière minute, et le lendemain, tout était prêt pour la publication.

    La publication

    J’avais produit mon beau tableau Markdown pour publier directement sur LinuxFr.org (c’était un peu l’idée initiale). J’admire donc le résultat de mon copier-coller. Et le résultat est illisible, car le tableau est assez grand avec 26 lignes et 51 colonnes. Et surtout la dernière ligne contient du texte assez large dans chaque colonne, si on n’affiche pas le texte verticalement. Ce que ne permet pas LinuxFr.org. Bon, de toute façon, c’est nettement plus facile à résoudre dans un tableur genre LibreOffice (MPL 2.0) et j’ai d’ailleurs rapidement suggéré de l’utiliser en réglant la largeur des colonnes sauf la première à 0,7 cm par exemple, et d’ajuster l’affichage du texte en vertical pour la dernière ligne. Voir par exemple le rendu en image.

    Vient ensuite le petit poème (que je vais amputer involontairement initialement en le terminant par « mater » au lieu de « materas », nuisant à la rime certes, mais sans effet sur la résolution) :

    Il y aura du blanc, il y aura du noir.
    Criards sont ⚫ et ⚪, parce qu’ils braillent.
    Qu’un fond de la même couleur leur aille.
    Similitude des drapeaux, vers un espoir ?
    Bariolés ils finiront néanmoins blancs.
    Tout comme la ponctuation qui n’en est pas.
    Mêmes six dans une colonne, des éléments
    D’autres parties à chercher, ensuite materas.

    Normalement, avec le titre, le tableau bariolé cryptique plein de symboles et les vers bizarres, le lectorat comprend qu’il s’agit d’une énigme à résoudre, pour découvrir un « grand secret du site » donc. Voire un second secret.

    La résolution

    Le picross

    La variété dans le tableau est le signe qu’il y a différentes choses à trouver, donc on peut commencer de différentes façons.

    Les amateurs de jeu ont sans doute déjà reconnu un picross (Wikipédia nous dira qu’il est « connu sous de nombreux autres noms : Crucipixel ; Edel ; FigurePic ; gameLO; Grafilogika ; Griddlers ; Hanjie ; Illust-Logic ; Japanese Crosswords ; Japanilaiset Ristikot ; Japanese Puzzels ; Kare Karala! ; Logic Art ; Logic Square ; Logicolor ; Logigraphe ; Logik-Puzzles ; Logimage ; Nonograms ; Oekaki Logic ; Oekaki-Mate ; Paint by numbers ; Paint Logic ; Pic-a-Pix ; Pikurosu ; Pixel Puzzles ; Puzzle Giapponese ; Puzzle Japones ; Shchor Uftor ; Tsunami ; Pictopix. »). Pour les autres, j’avais donné un indice avec « Une façon de commencer est de regarder ce qui est lisible et qui flèche la résolution. » Dans le coin supérieur gauche, on voit les mots WIKIPEDIA et PICROSS qui sont pointés par des flèches.

    W I K I P E D I A 📖
    B j Y W R y
    🦙 🖱️ K c m l ♾️ l 💾 📬
    💽 🐧 Y W 5 z I G
    P I C R O S S

    Un autre indice était le vers « Il y aura du blanc, il y aura du noir. ». Effectivement on va avoir besoin de cases noires et blanches (plutôt gris clair et foncé pour pouvoir lire le contenu en pratique), et pas que pour le picross. On va aussi s’aider de « ⚫ et ⚪ (…) Qu’un fond de la même couleur leur aille. » (donc les ronds noirs sont des cases noires et les ronds blancs des cases blanches. Et enfin on va s’aider de « drapeaux (…) ils finiront néanmoins blancs », donc les drapeaux sont des cases blanches, et de « Tout comme la ponctuation », dont la « ponctuation » (voire plus loin, mais on parle ici des cases contenant des points et des tirets) est aussi sur des cases blanches.

    Ne reste plus qu’à résoudre le picross. Et on découvre un QR-code 50x25 (en fait 25x25 les cases étant dédoublées). Il a été produit ainsi avec le paquet go-qrcode (licence Expat), -t pour la sortie texte, -s pour la taille, -d pour éviter la bordure :

    qrcode -t -d -s 33 "1 Le site " > qrcode.txt

    Ce qui donne un 33x33 mais 25x25 sans le cadre. Avec une petite moulinette de 48 lignes assez basique nommée pycross-me.py je l’ai converti en un picross. Et une dernière commande vient remplacer les blancs (espaces) par des @ et les noirs par des espaces pour faciliter la lecture dans un tableau ensuite.

    ./pycross-me.py  qrcode.txt |sed -e 's/" "/"@"/g' -e 's/"█"/" "/g' > qrcode.csv

    Le qrcode.txt :

                  ██  ██      ██████  ██              
      ██████████  ██      ████  ██    ██  ██████████  
      ██      ██  ██    ████    ████  ██  ██      ██  
      ██      ██  ████████████    ██████  ██      ██  
      ██      ██  ████  ████    ████  ██  ██      ██  
      ██████████  ██      ██████████  ██  ██████████  
                  ██  ██  ██  ██  ██  ██              
    ████████████████  ██  ████  ████  ████████████████
    ████      ██  ██  ████████████  ██      ████      
          ████  ██  ██████  ████  ██████  ██████  ██  
      ██  ██  ██  ██    ████████  ████  ██  ██  ██    
      ██  ██    ████████    ██████  ██████  ████████  
    ██████  ████  ██    ████  ██    ██  ████      ██  
          ████████    ██  ██  ██      ██    ██████████
      ████  ██    ██          ██  ██████  ██████████  
      ████████  ████    ████████████        ██  ██    
      ██    ████          ██  ██  ██              ██  
    ████████████████      ██    ████  ██████    ██  ██
                  ██████  ██          ██  ██    ████  
      ██████████  ████          ██    ██████  ████    
      ██      ██  ██        ██████            ██  ████
      ██      ██  ██    ██      ████████        ████  
      ██      ██  ██    ████  ██    ██      ████  ██  
      ██████████  ██████    ██████  ██  ██  ████████  
                  ██████████    ████  ██████          
    

    Bref ce qu’il fallait trouver dans cette sous-partie était « 1 Le site ».

    Le coin en haut à gauche

    La partie blanche était celle contenant WIKIPEDIA et PICROSS précédemment évoquée, plus quelques émojis pour décorer (dont un lama déchaîné et un manchot, et divers moyens de stockage d’information).

    On ne conservant que la partie noire dans cette partie on a ce qui suit :

    c m l l b i B k Y W 5 z
    G x ⏹️
    c y B j Y W R y Z
    M K c m l ♾️ l b
    B k Y W 5 z I G x
    c y B
    Y W ⏹️ R y Z X M 🫟 K 🥾

    On peut noter que c’est une des rares zones comportant des minuscules. Et la raison est qu’on peut y lire la phrase cmllbiBkYW5zIGxlcyBjYWRyZXMK répétée deux fois, qui est nettement plus lisible si on devine qu’il s’agit d’un codage base64 :

    $ echo cmllbiBkYW5zIGxlcyBjYWRyZXMKcmllbiBkYW5zIGxlcyBjYWRyZXMK|base64 -d
    rien dans les cadres
    rien dans les cadres

    Bref ça ne sert à rien.

    Le coin en bas à gauche

    D’abord la partie en blanc :

    B R 🕶️ W P 🐧 P A R 👩🦯
    A I E I
    L L L
    E B 📖
    R 📖 A I 🦙 L L E

    On a donc une dame avec une canne blanche, des lunettes noires, deux fois Braille, un « WP (pour Wikipédia) pareil » (que pour Picross), et les habituels manchot et lama déchaîné. Bref c’est un indice pour une autre partie, mais pas de réponse en vue si je puis dire.

    Alors la partie en noir :

    P 🐙 4 s 🍂 a S s 3 Z c 🌲 l
    i R s
    r L @ u T ♾️ r E
    C 🫟 @ d r e s
    A r i e n À Y t
    o U v
    R m @ i 5 🦀 C o U 🥖 c O u

    Une fois les émojis décoratifs retirés, on peut lire « P4s aSs3Z cl4iR sUr L (sic) @uTrEs C@dres y A rien À Y tRoUvER m@i5 CoUcOu » (la fôte n’était pas voulue) pour « Pas assez clair sur les autres cadres ? Y a rien à trouver, mais coucou. »

    Le coin en haut à droite

    D’abord la partie en blanc :

    T A A H T A A H M
    A A H
    A A H
    A A
    O T I T A A H
    🎶 🎵 I R T I T I T

    Qu’il faut lire comme du code morse avec des tirets longs dits « taah » et des points courts dits « ti » (et des notes de musique pour suggérer les sons).

    taah taah -> M
    taah taah taah -> O
    ti taah ti -> R
    ti ti ti -> S
    ti -> E

    Super, on a « morse » codé en morse. Et on n’a rien appris.

    Puis la partie en noir :

    a W w g b i d 5 I G E g d
    J h
    W 1 l b n Q g c m
    l b i B ⏹️ k Y W 5
    I G 🟦 🔴 🟢 ⏸️ H x
    c y B
    Y 🫟 W R y Z X 🦣 M K 🍄

    Encore des minuscules et encore du base64.

    echo aWwgbid5IGEgdnJhaW1lbnQgcmllbiBkYW5zIGxlcyBjYWRyZXMK|base64 -d
    il n’y a vraiment rien dans les cadres

    Le cœur de la grille

    Dans la partie en blanc, on peut lire (après remise en forme) « message pour l’intelligence naturelle ou artificielle qui lira cette phrase ce n’est pas ce qu’il faut avec les blancs voir plutôt les non-lettres sinosn (sic) » (la typo est involontaire).

    Dans la partie en noir, on peut lire (après remise en forme) :

    D’abord vient le numéro d’un système avant le systemd.
    Puis une pause car besoin d’espace.
    Ensuite une lettre qui ne doit pas être confondue avec le zéro.
    Suivi d’un langage de programmation orienté données et statistiques.
    Arrive une arobase mais plus simple.
    Puis la première lettre du langage de templates utilisé jusqu’en deux-mille onze > par le site.
    Décidons une nouvelle pause.
    Tout est au point, alors mettons-en deux.

    Les réponses étant 5 (System V), espace, o, r, a, t (Templeet), espace, :.
    L’élément est donc « 5 orat : ».

    Le braille

    On aurait pu faire le braille dès le début, sans résoudre le picross. Il était indiqué par « ⚫ et ⚪, parce qu’ils braillent. »

    Les ronds noirs (avec l’aide des ronds blancs pour savoir où sont situés les 3 lignes et 2 colonnes codant un caractère braille) permettent de lire de haut en bas et de gauche à droite le message « 3 aux contribu » (la première zone code un chiffre, la seconde est entièrement blanche donc vide donc espace, et les suivantes codent des lettres).

    Le morse

    On aurait pu faire le morse dès le début, sans résoudre le picross. Le vers parle de « ponctuation qui n’en est pas » et il faut donc y voir du morse dans les parties comportant des points et des tirets. On peut déchiffrer « 2 vit grâce » (la première zone code un chiffre, la seconde est◽donc espace, et les suivantes codent des lettres).

    Les drapeaux

    On aurait pu faire les drapeaux dès le début, sans résoudre le picross. Le vers parle de « Similitude des drapeaux ». Il faut remarquer que dans le premier groupe de six ils ont en commun un partage en 4. Le second groupe ne comporte que des drapeaux blancs, donc espace. Et chacun des autres groupes va coder une lettre, la première lettre commune des pays concernés. Le message à trouver était donc « 4 tions du lect ».

    Les six

    On aurait pu faire les six dès le début, sans résoudre le picross. Les derniers vers non encore utilisés sont

    Mêmes six dans une colonne, des éléments
    D’autres parties à chercher, ensuite materas.

    Une petite observation montre qu’il existe une colonne avec six fois le caractère Unicode☝🏼. On cherche donc des mains et des doigts. Et si leurs emplacements dessinent les lettres v, o, u et s. Le message à trouver était donc « 6 vous »

    La solution

    Le grand secret

    Les six éléments trouvés et remis dans l’ordre donne la phrase suivante : « Le site vit grâce aux contributions du lectorat : vous ». Ce qui est effectivement le grand secret de LinuxFr.org, site qui vit par et pour vous. Il figure d’ailleurs en première phrase sur la page pour proposer un contenu.

    Et voici une visualisation de la solution complète de la grille :

    Solution complète

    Un second secret ?

    Au moment où j’ai écrit le journal, je me suis dit que la résolution pourrait être longue et difficile, qu’une personne seule aurait dû mal à la faire, qu’elle aurait besoin de l’aide, des suggestions, des pistes, des idées, des erreurs, des indices et de la motivation apportée par d’autres personnes. Que sur un site contributif les personnes allaient s’entraider et se nourrir des questions/réponses des autres via les commentaires. Et c’est bien, selon moi, le second grand secret derrière LinuxFr.org. Je ne pouvais que pressentir les commentaires qui viendraient par la suite sous le journal d’annonce de l’énigme.

    A posteriori

    De la création d’énigme

    Voici mes quelques impressions retour sur la création d’une telle énigme :

    • je voulais le plus petit QRcode possible pour avoir une petite grille, mais au final elle n’est pas si petite que cela, et cela veut dire des tests longs et pénibles, des soucis d’affichage sur le site à la publication, et une plus grande difficulté pour résoudre ;
    • je suis satisfait de la quantité d’informations que j’ai pu glisser dans la grille : toutes les cases sont utiles à l’exception des émojis servant de diversions pour la partie « les six ». Et cela inclus des indices glissés pour suggérer le picross, le braille et le morse, ainsi que des fausses pistes ;
    • l'Unicode et les emojis offrent vraiment plein de possibilités pour des énigmes basées sur du texte et des symboles ;
    • il reste plus de typos que l’on pense, parce que c’est difficile/pénible à relire. Celle trouvée la veille de la publication aurait pu obliger à tout décaler dans la grille, ce qui aurait pu être très pénible (j’ai pu m’en sortir avec un changement singulier/pluriel qui a limité le décalage à une seule phrase). Et de fait il en reste après les publications (il faut dire qu’il n’y a pas eu d’équipe de bêta-test, personne n’était au courant de la publication) ;
    • la capacité à être résolue a été un souci : je connaissais le QRcode, mais il ne pouvait servir directement de picross. J’ai donc rajouté des zones pour le braille, les drapeaux et le morse avec des couleurs définies, pour qu’il soit faisable. Et ensuite il faut tout retester depuis le début pour vérifier. La quantité de zones ajoutées augmente ou diminue la difficulté de la partie picross ;
    • je n’avais pas conçu en amont plus que « qrcode pour faire un picross » et en ajoutant les autres parties au fur et à mesure, on se retrouve à devoir revoir des cases (c’est complètement le cas de la partie « les six » qui a consisté à trouver où je pourrais dessiner mes lettres et à remplacer des cases déjà remplies d’autres émojis ;
    • à défaut de pouvoir tout recréer/régénérer automatiquement, il est important de garder des notes de ce qui a été fait, des différentes énigmes et des solutions, ça évite de devoir re-résoudre plusieurs fois, et ça aide pour écrire la solution in extenso ensuite ;
    • c’est assez fun de construire les différentes parties, de mettre des indices, des fausses pistes, des blagues semi-privées sur le manchot et le lama déchaîné, ou les dinosaures parce que tout le monde aime les dinosaures ;
    • il y a une certaine fébrilité à la publication (y aura-t-il de l’intérêt ou pas ? Y aura-t-il des résolutions complètes ou non ? Y aura-t-il de l’entraide ?), puis une attente (ça fait déjà 5min que c’est publié et personne n’a tout résolu encore ? Bon 10 min maintenant. Et après quelques heures ?) et enfin un petit jeu sur comment donner des indices sans donner les réponses directement (c’est clairement la meilleure partie, les échanges par commentaires interposés sur le site, et avec Bookynette & Echarp via Signal (AGPLv3).

    Et ensuite ?

    Ce n’est pas la première fois que j’organise un jeu de ce type sur le site, il y a eu plusieurs fois des chasses aux œufs durant des vacances autour de Pâques (en 2020 et 2021). C’est la première fois que cela prend cette forme d’une énigme mystérieuse. Peut-être qu’il y en aura d’autres ainsi, peut-être pas, cela dépend de vos retours, de la motivation et de l’inspiration. Et de l’envie éventuelle de tester d’autres formes (un escape game ? Quelque chose basé sur le site lui-même ? Ou bien en dehors en utilisant des ressources libres genre OpenStreetMap ou OpenFoodFacts ?). De faire quelque chose en partenariat avec l’April, qui a déjà fait un jeu de l’oie et un espace game ?

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    Data privacy Day : La confidentialité des données indissociable de la modernisation des infrastructures critiques

    26 janvier 2026 à 15:25

    Le 28 janvier marque la Journée européenne de la protection des données. Alors que la frontière entre conformité réglementaire et résilience opérationnelle n’a jamais été aussi mince, les entreprises doivent relever le défi de la confidentialité à l’heure de l’IA, de l’open source et de la nécessaire mutation des systèmes mainframes. Cet enjeu ne se […]

    The post Data privacy Day : La confidentialité des données indissociable de la modernisation des infrastructures critiques first appeared on UnderNews.

    Revue de presse de l’April pour la semaine 4 de l’année 2026

    Par :echarp
    26 janvier 2026 à 14:28

    Cette revue de presse sur Internet fait partie du travail de veille mené par l’April dans le cadre de son action de défense et de promotion du logiciel libre. Les positions exposées dans les articles sont celles de leurs auteurs et ne rejoignent pas forcément celles de l’April.

    [clubic.com] 'Si nous voulons des logiciels libres, nous devons les payer' - Interview CryptPad

    ✍ Guillaume Belfiore, le dimanche 25 janvier 2026.

    Des suites bureautiques alternatives, il en existe plusieurs. Mais au-delà du modèle open source, la promesse d’un environnement collaboratif entièrement chiffré reste très rare. C’est sur ce point que l’entreprise française CryptPad entend se différencier.

    [clubic.com] Booster l'open source: Bruxelles reçoit des centaines de réponses pour faire avancer le projet

    ✍ Guillaume Belfiore, le lundi 19 janvier 2026.

    Lancée début janvier, la consultation publique sur l’open source européen n’est pas passée inaperçue. Celle-ci a collecté déjà près de 600 réponses en seulement quelques jours, émanant d’organisations, de sociétés ou de citoyens.

    [Le Monde Informatique] La Dinum davantage impliquée dans les achats IT de l'Etat

    ✍ Reynald Fléchaux, le lundi 19 janvier 2026.

    Une circulaire en préparation doit renforcer le poids de la DSI de l’Etat dans les achats numériques du secteur public. Et les transformer en levier de souveraineté.

    [l'Humanité.fr] Comment s'émanciper des GAFAM? (1/2) (€)

    ✍ Magali Garnero, le mercredi 14 janvier 2026.

    Leurs milliards de profits financent un lobbying contre toute réglementation. S’en libérer, c’est reprendre le contrôle sur nos outils et nos données.

    Voir aussi:

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    Decypharr & AllDebrid : No debrid clients available or no slots found + script de nettoyage de magnets par Bouby

    Par :Aerya
    26 janvier 2026 à 14:07

    Les versions :latest et :fenrir-xx embarquent une fonctionnalité qui interroge les débrideurs pour connaître le nombre de slots d’upload disponibles sur le compte utilisé.
    Problème : AllDebrid ne gère pas ça via son API.
    Second effet Kiss Cool : cette option ne peut pour l’instant pas être désactivée, donc AD en erreur d’upload quand un magnet/.torrent n’est pas en cache.

    L’astuce consiste à revenir sur une version plus ancienne de Decypharr, la :beta fonctionnant.

    services:
      decypharr:
        image: ghcr.io/sirrobot01/decypharr:beta
        #image: cy01/blackhole:fenrir
        #image: cy01/blackhole:fenrir-09
        container_name: decypharr
        restart: always
        privileged: true
        cap_add:
          - SYS_ADMIN
        security_opt:
          - apparmor:unconfined
        ports:
          - 8282:8282
        volumes:
          - /mnt/:/mnt/:rshared
          - /mnt/Fichiers/decypharr/qbit:/mnt/Fichiers/decypharr/qbit
          - /mnt/Docker/decypharr/:/app
        environment:
          - TZ=Europe/Paris
        devices:
          - /dev/fuse:/dev/fuse:rwm

    Et j’en profite pour vous présenter l’excellent script de Bouby, lecteur du blog (\o/), qui permet de nettoyer les magnets liés à un compte AD. En effet, chez AD un compte est limité à 5000 liens. Il faut donc parfois faire un peu de ménage, surtout quand on fait des bibliothèques Plex/Jellyfin où il faut clairement plusieurs comptes AD.
    Vous les voyez sur l’onglet Magnets de votre compte ou via l’API

    adscript
    status	"success"
    data	{ magnets: (704)[…] }


    Un lien est ajouté quand on envoie un magnet ou .torrent sur son compte AD (captain Obvious!) mais aussi à CHAQUE recherche de contenu dessus via les outils Decypharr, DMM, Vortex, les addons sources de Stremio etc. Même si un contenu est en cache, le fait de le chercher en ajoutant un magnet/.torrent crée un lien sur votre compte.
    Je n’ai pas cherché et ne sais absolument pas comment AD gère ça côté utilisateurs, si des liens vieux de plus de X mois/années/heures sont retirés ou non.

    Quoi qu’il en soit voici le script Python de Bouby (encore merci !). J’ai augmenté les seuils en fonction de la limite de 5000 liens/compte.

    #!/usr/bin/env python3
    import requests
    from datetime import datetime, timedelta
    
    # ----------------------------------------
    # CONFIGURATION DU SCRIPT (variables en dur)
    # ----------------------------------------
    
    # Clé API AllDebrid — obligatoire pour accéder aux magnets
    API_KEY = "xxx"
    
    # Dry-run : True = le script affiche ce qu’il ferait sans supprimer
    # False = suppression réelle
    DRY_RUN = False
    
    # -----------------------------
    # Seuils et limites pour la purge
    # -----------------------------
    THRESHOLD_HIGH = 4700  # déclenche la purge normale si nombre total de magnets > 900
    THRESHOLD_LOW = 2700   # limite minimale après purge pour ne pas trop supprimer =700
    MAX_DELETE = 2000      # nombre maximum de magnets à supprimer en mode normal
    MIN_AGE_DAYS = 7      # ne supprimer que les magnets plus vieux que X jours (sauf urgence)
    
    # -----------------------------
    # Mode urgence
    # -----------------------------
    EMERGENCY_THRESHOLD = 4900  # si le nombre total de magnets > 950, on active la purge d'urgence
    EMERGENCY_DELETE = 2000     # nombre de magnets à supprimer immédiatement en urgence, ignore l'âge minimum
    
    # -----------------------------
    # API endpoint AllDebrid
    # -----------------------------
    # v4.1 est le nouvel endpoint pour récupérer les magnets
    BASE_URL = "https://api.alldebrid.com/v4.1/magnet/status"
    HEADERS = {"Authorization": f"Bearer {API_KEY}"}
    
    # -----------------------------
    # Catégories de statut
    # -----------------------------
    # Ces statuts sont utilisés pour trier les magnets par priorité
    FAILED = {"Error", "error"}        # magnets ayant rencontré une erreur
    IN_PROGRESS = {"Processing"}       # magnets en cours de téléchargement
    DONE = {"Finished", "Ready"}       # magnets terminés
    
    # ----------------------------------------
    # Récupérer tous les magnets depuis l’API
    # ----------------------------------------
    def get_magnets():
        """
        Récupère la liste des magnets depuis l’API AllDebrid.
        Retourne une liste vide si erreur ou endpoint obsolète.
        """
        try:
            r = requests.get(BASE_URL, headers=HEADERS, timeout=30)
            r.raise_for_status()
            data = r.json()
    
            # Vérifie que la réponse contient bien les magnets
            if "data" not in data or "magnets" not in data["data"]:
                print("❌ Réponse API inattendue :")
                print(data)
                return []
    
            return data["data"]["magnets"]
    
        except requests.RequestException as e:
            print("❌ Erreur réseau ou API :", e)
            return []
    
    # ----------------------------------------
    # Supprimer un magnet par son ID
    # ----------------------------------------
    def delete_magnet(magnet_id):
        """
        Supprime un magnet via l’API.
        Si DRY_RUN = True, n’effectue pas la suppression mais affiche l’action.
        """
        delete_url = "https://api.alldebrid.com/v4/magnet/delete"
        if DRY_RUN:
            print(f"[DRY-RUN] DELETE {magnet_id}")
            return
    
        try:
            # POST pour supprimer le magnet
            r = requests.post(delete_url, headers=HEADERS, data={"id": magnet_id})
            r.raise_for_status()
            print(f"✅ Supprimé magnet {magnet_id}")
        except Exception as e:
            print(f"❌ Erreur suppression {magnet_id} :", e)
    
    # ----------------------------------------
    # Trier et filtrer les magnets
    # ----------------------------------------
    def bucketize(magnets, ignore_age=False):
        """
        Trie les magnets par statut et filtre par âge.
        ignore_age=True ignore la limite MIN_AGE_DAYS (mode urgence)
        """
        # Date limite selon l'âge minimum
        cutoff = datetime.utcnow() - timedelta(days=MIN_AGE_DAYS)
    
        # Séparer les magnets par statut pour appliquer la priorité
        failed, progress, done = [], [], []
    
        for m in magnets:
            status = m.get("status", "")
            created = m.get("uploadDate") or m.get("completionDate") or 0
            created_dt = datetime.utcfromtimestamp(created) if created else datetime.utcnow()
    
            # Filtrer par âge sauf si mode urgence
            if not ignore_age and created_dt > cutoff:
                continue
    
            # Trier par statut
            if status in FAILED:
                failed.append(m)
            elif status in IN_PROGRESS:
                progress.append(m)
            elif status in DONE:
                done.append(m)
    
        # Trier chaque catégorie par date de création (anciens d’abord)
        for lst in (failed, progress, done):
            lst.sort(key=lambda x: x.get("uploadDate", 0))
    
        # Retourner tous les magnets dans l'ordre priorité : failed → progress → done
        return failed + progress + done
    
    # ----------------------------------------
    # Fonction principale
    # ----------------------------------------
    def main():
        """
        Logique principale :
        - Récupère tous les magnets
        - Vérifie les seuils
        - Applique le mode urgence si nécessaire
        - Supprime les magnets selon les règles
        """
        magnets = get_magnets()
        total = len(magnets)
        print(f"Total magnets : {total}, Dry-run : {DRY_RUN}")
    
        # Mode urgence
        if total > EMERGENCY_THRESHOLD:
            print("🚨 MODE URGENCE activé")
            ordered = bucketize(magnets, ignore_age=True)
            to_delete = ordered[:EMERGENCY_DELETE]
    
        # Mode normal
        elif total > THRESHOLD_HIGH:
            print("Mode normal")
            ordered = bucketize(magnets, ignore_age=False)
            max_deletions = min(MAX_DELETE, total - THRESHOLD_LOW)
            to_delete = ordered[:max_deletions]
    
        else:
            print("Seuil non atteint → rien à faire.")
            return
    
        # Supprimer les magnets sélectionnés
        for m in to_delete:
            mid = m.get("id")
            name = m.get("filename") or m.get("name") or ""
            status = m.get("status")
            print(f"→ Suppression {status} : {name} (id={mid})")
            delete_magnet(mid)
    
        print("✨ Purge terminée.")
    
    # ----------------------------------------
    # Exécution du script
    # ----------------------------------------
    if __name__ == "__main__":
        main()

    Comme il le suggère, je le fais tourner avec un Docker Alpine. Chaque nuit à 3h.

    services:
      alldebrid-purger:
        image: python:3.12-alpine
        container_name: alldebrid-purger
        restart: always
        working_dir: /app
        command: >
          sh -c "
          apk add --no-cache py3-pip &&
          pip install --no-cache-dir requests &&
          echo '0 3 * * * python /app/purge_alldebrid_magnets.py >> /logs/purge.log 2>&1'
          > /etc/crontabs/root &&
          crond -f -d 8
          "
        volumes:
          - /mnt/Docker/alldebrid_purger:/app:ro
          - /mnt/Docker/alldebrid_purger/logs:/logs

    Loading

    🎙 Projets Libres saison 4 épisode 10 : l'Open Source vu par une chercheuse

    Pour ce nouvel épisode de Projets Libres, nous abordons l'Open Source par les yeux de Amel Charleux, Maître de conférences à l'Université de Montpellier.

    Bannière du podcast

    Amel nous partage :

    • la manière dont elle travaille
    • sa relation avec les autres chercheuses et chercheurs qui travaillent sur ces sujets
    • comment la recherche peut aider à la réflexion ou à la mise en place de structures (avec l'exemple de l'association OpenRail Association)
    • l'évolution des modèles économiques Open Source
    • l'impact de l'IA
    • et plein d'autres sujets.

    Bonne écoute !

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    Cybersécurité ERP : comment protéger son système contre les cybercriminels

    26 janvier 2026 à 11:11

    L’ERP est souvent décrit comme le cœur numérique de l’entreprise. Il centralise les données, orchestre les processus et relie les différents métiers autour d’un socle commun. Cette position stratégique en fait une cible de choix pour les cybercriminels. Un système ERP compromis, c’est potentiellement toute la chaîne de valeur qui vacille : production, logistique, facturation, […]

    The post Cybersécurité ERP : comment protéger son système contre les cybercriminels first appeared on UnderNews.

    Data Privacy Day – La protection des données face aux risques liés à l’IA

    26 janvier 2026 à 11:09

    À l’occasion de la Journée européenne de la protection des données, voici le commentaire d’Anthony Cusimano, Director of Solutions Marketing chez Object First, sur l’importance des données personnelles aujourd’hui et les mesures pour mieux les protéger face aux risques liés à l’IA. « De la monnaie de grains à l’or, jusqu’au bitcoin, la forme de […]

    The post Data Privacy Day – La protection des données face aux risques liés à l’IA first appeared on UnderNews.

    IA et cybersécurité : SentinelLABS alerte sur les limites des benchmarks LLM pour les équipes SOC

    26 janvier 2026 à 11:06

    SentinelLABS, la division de recherche de SentinelOne, publie la première partie d’une étude consacrée à l’évaluation des modèles de langage (LLM) dans les opérations de cybersécurité. Le constat est sans appel : les benchmarks utilisés actuellement ne reflètent ni la réalité du travail des analystes de sécurité ni les compétences réellement mobilisées par les équipes […]

    The post IA et cybersécurité : SentinelLABS alerte sur les limites des benchmarks LLM pour les équipes SOC first appeared on UnderNews.
    Reçu — 25 janvier 2026 Linux

    C&F éditions - « Libre à vous ! » du 13 janvier 2026 - Podcasts et références

    25 janvier 2026 à 20:07

    Deux-cent-soixante-cinquième émission « Libre à vous ! » de l’April. Podcast et programme :

    • sujet principal : la maison d’édition C&F éditions, avec Hervé Le Crosnier. Sujet animé par Laurent Costy
    • la chronique Que libérer d’autre que du logiciel d’Antanak sur « Désescalade numérique »
    • la chronique Lectures buissonnières de Vincent Calame sur « Pris dans la toile » de Sébastien Broca
    • quoi de Libre ? Actualités et annonces concernant l'April et le monde du Libre

    Rendez‐vous en direct chaque mardi de 15 h 30 à 17 h sur 93,1 FM en Île‐de‐France. L’émission est diffusée simultanément sur le site Web de la radio Cause Commune.

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    ❌