<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Mac Souverain</title><description>Tutoriels, comparatifs et veille pour reprendre le contrôle de tes données sur macOS.</description><link>https://macsouverain.com/</link><language>fr</language><atom:link href="https://macsouverain.com/rss.xml" rel="self" type="application/rss+xml"/><item><title>Le traité ONU qui peut blanchir la preuve spyware</title><link>https://macsouverain.com/radar-onu-cybercrime-blanchiment-spyware/</link><guid isPermaLink="true">https://macsouverain.com/radar-onu-cybercrime-blanchiment-spyware/</guid><description>Le Canada a signé la Convention ONU cybercrime. Un canal de partage de preuves qui, une fois ratifié, peut blanchir des données volées par spyware.</description><pubDate>Mon, 17 Aug 2026 10:00:00 GMT</pubDate><content:encoded>&lt;div class=&quot;radar-summary&quot;&gt;
&lt;p&gt;Le 16 juillet 2026, le Canada a signé la Convention ONU contre la cybercriminalité, le traité qu&apos;il avait juré de combattre. Signature, pas encore ratification : rien n&apos;est armé tant que 40 pays n&apos;ont pas ratifié. Mais lis les petites lignes. Sous le vernis « anti-cybercrime » se cache une machine à faire circuler des preuves entre États qui, une fois ratifiée, n&apos;interdit nulle part de **blanchir des données volées par spyware**. Ils appellent ça coopération. C&apos;est, en réalité, de la **surveillance de masse** déguisée en lutte contre la criminalité, organisée entre états membres, de manière **administrative**, pour échapper à tout contrôle de justice.&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;&lt;strong&gt;Ce que tu surveilles, maintenant&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; La ratification, pas la signature. Ne te fais pas avoir par le communiqué : le seul chiffre qui arme ce traité, c&apos;est 40. En dessous, c&apos;est du théâtre. Au-dessus, c&apos;est trop tard.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2.&lt;/strong&gt; L&apos;origine des preuves. Le texte se fiche de savoir si une preuve a été volée, rien n&apos;interdit de la faire circuler. Si tes élus ne posent pas une réserve explicite en ratifiant, ils signent un blanc-seing pour une surveillance de masse administrative, même par des moyens illégaux.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3.&lt;/strong&gt; La portée extraterritoriale. Journaliste, chercheur, lanceur d&apos;alerte, diaspora : la cible, c&apos;est toi, pas les cybercriminels. Un régime répressif à l&apos;autre bout du monde pourra réclamer ton dossier, et un gag order t&apos;interdira même de savoir qu&apos;on te l&apos;a pris.&lt;/p&gt;
&lt;/div&gt;
&lt;h2 id=&quot;le-fait&quot;&gt;Le fait&lt;/h2&gt;
&lt;br&gt;
&lt;p&gt;Le 16 juillet 2026, le Canada a signé la Convention des Nations Unies contre la cybercriminalité. Rien d’anodin. Le Canada avait combattu le lancement même de ces négociations, et il était absent de la cérémonie d’ouverture à Hanoï, en octobre 2025. Le revirement est complet, et il est passé quasiment inaperçu.&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;Petit rappel de calendrier, parce qu’il change tout. La Convention a été adoptée par l’Assemblée générale de l’ONU en décembre 2024, ouverte à la signature en octobre 2025, et le Canada vient d’y apposer son paraphe. Or signer n’est pas ratifier. Le texte compte aujourd’hui plus de 70 signataires, mais une poignée de ratifications seulement, et il n’entrera en vigueur que 90 jours après le 40e instrument de ratification déposé. Autrement dit, rien n’est encore opérationnel. Ce qui se joue, c’est la trajectoire.&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;Et elle mérite qu’on s’y arrête. Derrière le nom rassurant de « convention contre la cybercriminalité » se cache un accord de partage transfrontalier de preuves dont la portée dépasse très largement le piratage.&lt;/p&gt;
&lt;br&gt;
&lt;h2 id=&quot;pourquoi-ça-compte-pour-toi&quot;&gt;Pourquoi ça compte pour toi&lt;/h2&gt;
&lt;br&gt;
&lt;p&gt;Commençons par ce qui est écrit noir sur blanc. Les pouvoirs d’enquête du traité ne visent pas que les infractions « cyber » : ils couvrent la preuve électronique de n’importe quelle infraction. La coopération internationale, elle, s’étend à tout « serious crime », défini comme une infraction punie d’au moins quatre ans de prison en droit interne.&lt;/p&gt;
&lt;p&gt;Traduction : un État répressif qui a criminalisé le journalisme, le militantisme ou l’homosexualité pourrait convertir ses propres lois en déclencheurs de collecte de preuves à l’autre bout du monde, une fois le traité en vigueur.&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;Vient ensuite l’angle qui fait mal. Selon &lt;a href=&quot;https://citizenlab.ca/kate-robertson-on-the-risks-that-lie-behind-canadas-unexpected-signing-of-the-un-cybercrime-convention/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;l’analyse de Kate Robertson&lt;/a&gt;, du Citizen Lab, portant sur le projet de texte, les articles 46 à 48 organisent des canaux de partage qu’elle qualifie de « secretive », sans restriction sur l’origine territoriale des données et, surtout, sans aucune interdiction de partager des données obtenues par spyware.&lt;/p&gt;
&lt;p&gt;L’article 40 impose l’entraide « la plus large possible », et les articles 47 et 48 autorisent une coopération policière directe et des enquêtes conjointes qui invitent au forum shopping, ce magasinage entre juridictions, vers les plus complaisantes avec le spyware.&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;Le point à bien tenir : &lt;strong&gt;rien dans le texte n’exige qu’une preuve ait été obtenue légalement pour circuler&lt;/strong&gt;. C’est un fait établi, pas une supputation. Le risque, lui, est projeté mais argumenté : une fois ratifié, ce traité peut servir à faire entrer par la grande porte des données qu’un spyware a volées par la fenêtre. Robertson le dit sans détour, ce texte est « en passe de devenir un vecteur de complicité dans le commerce mondial de l’espionnage illégal ». Blanchiment n’est pas un gros mot ici, c’est la mécanique.&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;C’est exactement la logique de &lt;a href=&quot;https://macsouverain.com/chat-control-csar-surveillance-messageries-chiffrees/&quot;&gt;Chat Control / CSAR&lt;/a&gt;, dont on a suivi le &lt;a href=&quot;https://macsouverain.com/radar-csar-chat-control-trilogue-final/&quot;&gt;trilogue final&lt;/a&gt;, vue sous un autre angle. L’UE veut forcer le scan de tes messages côté client, avant chiffrement. L’ONU, elle, ne touche pas à ta crypto : elle légalise la circulation des preuves une fois qu’elles existent, quelle qu’en soit la provenance. Deux bouts du même tuyau. Et ce traité n’est pas un cas isolé, c’est la 20e pièce de &lt;a href=&quot;https://macsouverain.com/convergence-libertes-numeriques/&quot;&gt;la convergence des textes mondiaux&lt;/a&gt; qu’on suit depuis des mois, après les 19 déjà recensés.&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;Le vrai piège n’est pas la compétence des tribunaux, c’est &lt;strong&gt;la portée extraterritoriale de la coopération&lt;/strong&gt;. Robertson prévient que « la portée excessive du traité et sa compétence extraterritoriale vont accroître encore les risques pour les chercheurs en sécurité ». &lt;a href=&quot;https://www.michaelgeist.ca/2026/07/a-surveillance-treaty-in-disguise-the-trouble-with-canadas-quiet-decision-to-sign-the-un-cybercrime-convention/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Michael Geist&lt;/a&gt;, lui, parle d’un traité de surveillance déguisé et cite une lettre de vingt organisations canadiennes alertant sur « un canal permanent de répression transnationale » visant les diasporas. Et plus de 120 experts en sécurité redoutent de voir la recherche de bonne foi criminalisée.&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;Soyons complets : le traité a ses défenseurs, INTERPOL a salué son adoption, et l’idée de coopérer contre la vraie cybercriminalité n’est pas illégitime. Le problème, c’est l’absence quasi totale de garde-fous. &lt;strong&gt;Pas de contrôle judiciaire indépendant obligatoire&lt;/strong&gt;, autorisation laissée au droit interne, gag orders autorisés (ces injonctions de silence qui interdisent de révéler qu’une demande a même eu lieu), aucune exception d’infraction politique, aucun mécanisme pour suspendre un État qui piétine les droits humains. Les protections restent largement facultatives.&lt;/p&gt;
&lt;br&gt;
&lt;h2 id=&quot;ce-que-tu-fais-maintenant&quot;&gt;Ce que tu fais maintenant&lt;/h2&gt;
&lt;br&gt;
&lt;p&gt;Rien à installer, rien à corriger : le traité n’est pas en vigueur, et ce n’est pas une faille produit. C’est une trajectoire réglementaire, et une trajectoire, ça se surveille. Si tu es journaliste, chercheur en sécurité, lanceur d’alerte ou membre d’une diaspora exposée, c’est toi que la portée extraterritoriale vise en premier.&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; Surveille la ratification, pas la signature. Le compteur qui compte, c’est celui des 40 ratifications : tant qu’il n’est pas atteint, le texte n’a aucun effet.&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;&lt;strong&gt;2.&lt;/strong&gt; Exige de tes élus une réserve explicite sur l’origine des preuves. Un traité se ratifie avec des garanties nationales : c’est là, dans les lois de mise en œuvre, que se gagne ou se perd le vrai combat.&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;&lt;strong&gt;3.&lt;/strong&gt; Chiffre par défaut et cloisonne. Ce que Signal, Proton et une bonne hygiène de données ne produisent pas, personne ne pourra le partager. Le meilleur rempart contre un canal de preuves, c’est encore de ne pas générer la preuve.&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;La bonne nouvelle, c’est qu’un texte pas encore ratifié reste un texte qu’on peut border. La mauvaise, c’est que presque personne ne regarde. Fais partie des rares qui regardent.&lt;/p&gt;
&lt;br&gt;
&lt;h2 id=&quot;sources&quot;&gt;Sources&lt;/h2&gt;
&lt;br&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://citizenlab.ca/kate-robertson-on-the-risks-that-lie-behind-canadas-unexpected-signing-of-the-un-cybercrime-convention/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Citizen Lab (citizenlab.ca)&lt;/a&gt;, le laboratoire de la Munk School à Toronto : Kate Robertson y décortique les risques de la signature canadienne (source primaire).&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.lawfaremedia.org/article/a-global-treaty-to-fight-cybercrime-without-combating-mercenary-spyware&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Kate Robertson, Lawfare&lt;/a&gt;, l’analyse de fond article par article du projet de convention.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.michaelgeist.ca/2026/07/a-surveillance-treaty-in-disguise-the-trouble-with-canadas-quiet-decision-to-sign-the-un-cybercrime-convention/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Michael Geist (michaelgeist.ca)&lt;/a&gt;, juriste canadien de référence sur le numérique, pour l’angle Canada et la lettre des vingt organisations.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.eff.org/deeplinks/2025/10/joint-statement-un-cybercrime-convention-eff-and-global-partners-urge-governments&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;EFF (eff.org)&lt;/a&gt;, déclaration conjointe de Hanoï sur le partage de preuves et l’absence de mécanisme de suspension.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.canada.ca/en/global-affairs/news/2026/07/canada-signs-united-nations-convention-against-cybercrime.html&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Gouvernement du Canada (canada.ca)&lt;/a&gt;, le communiqué officiel de la signature du 16 juillet 2026.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.unodc.org/unodc/en/cybercrime/convention/home.html&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;ONUDC (unodc.org)&lt;/a&gt;, le texte de la Convention et l’état des signatures et ratifications.&lt;/li&gt;
&lt;/ul&gt;</content:encoded><dc:creator>Mac Souverain</dc:creator><category>radar</category><category>radar-signal</category><category>souverainete</category><category>surveillance</category><category>spyware</category><category>onu</category></item><item><title>Apple Private Relay ne te protège de rien</title><link>https://macsouverain.com/icloud-private-relay-pas-un-vpn/</link><guid isPermaLink="true">https://macsouverain.com/icloud-private-relay-pas-un-vpn/</guid><description>Une large part des abonnés iCloud+ prend Private Relay pour un tunnel. Trois fuites WebKit disent le contraire, et Apple est attaqué pour fraude.</description><pubDate>Thu, 13 Aug 2026 14:22:09 GMT</pubDate><content:encoded>&lt;div class=&quot;radar-summary&quot;&gt;
&lt;p&gt;Private Relay n&apos;est pas un VPN. Une large part des abonnés iCloud+ l&apos;active en croyant masquer tout leur trafic, il ne couvre que Safari, et trois fuites WebKit laissent sortir ton IP ou ton DNS. Un cabinet US attaque Apple pour fraude, sans correctif de la marque annoncé.&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;&lt;strong&gt;Ce que tu dois surveiller&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; Passkey, préchargement DNS et WebTransport (introduit avec iOS 26) contournent le relais, côté moteur de Safari.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2.&lt;/strong&gt; Ce sont des allégations judiciaires plus une recherche de sécurité, pas une exploitation documentée dans la nature.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3.&lt;/strong&gt; Apple enquête sans calendrier, aucune fuite bouchée tant que ce n&apos;est pas vérifié publiquement.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;4.&lt;/strong&gt; Installe un DNS souverain et chiffré, DNS4EU ou Quad9 en DoH ou DoT. Ça referme la fuite DNS que Private Relay laisse passer, et la protection vaut bien au-delà de Safari.&lt;/p&gt;
&lt;/div&gt;
&lt;h2 id=&quot;le-fait&quot;&gt;Le fait&lt;/h2&gt;
&lt;br&gt;
&lt;p&gt;Le cabinet américain Clarkson Law Firm vient de déposer une action collective contre Apple. L’accusation est frontale, fraude et publicité mensongère sur iCloud Private Relay, la fonction incluse dans iCloud+ qu’Apple présente comme un bouclier pour ta navigation. Le même cabinet a arraché à Apple un règlement de 250 millions de dollars en décembre 2025 sur le dossier Siri. Ce n’est pas un plaideur du dimanche.&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;Le socle technique de la plainte vient d’ailleurs. Deux chercheurs, Tommy Mysk et Talal Haj Bakry, ont documenté trois mécanismes par lesquels ton adresse IP réelle ou tes serveurs DNS peuvent fuir alors même que Private Relay est actif. Proton a relayé leurs travaux le 5 août.&lt;/p&gt;
&lt;p&gt;Les trois fuites sont toutes côté WebKit, le moteur de Safari. Un, les connexions par passkey contournent entièrement les serveurs relais. Deux, le préchargement DNS révèle tes serveurs DNS réels. Trois, le protocole WebTransport, une brique ajoutée à WebKit avec iOS 26 (la version stable en cours), expose ton adresse IP réelle dans certaines conditions.&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;Deux choses à garder froides. Une plainte, ce sont des allégations, pas un jugement. Et à ce stade Apple dit enquêter sans annoncer ni correctif ni calendrier, aucune exploitation dans la nature n’est documentée. Le problème n’est pas qu’on vole tes données ce matin, c’est l’écart entre ce que la fonction laisse croire et ce qu’elle tient vraiment.&lt;/p&gt;
&lt;br&gt;
&lt;h2 id=&quot;pourquoi-ça-compte-pour-toi&quot;&gt;Pourquoi ça compte pour toi&lt;/h2&gt;
&lt;br&gt;
&lt;p&gt;Private Relay n’est pas un VPN. C’est la phrase à retenir. Une large part des abonnés iCloud+ l’active en pensant allumer un tunnel qui masque tout leur trafic. Faux. Private Relay ne couvre que Safari et une fraction du trafic système, ton adresse passe par un double saut, un serveur Apple puis un partenaire, pour que personne ne voie à la fois qui tu es et où tu vas. Élégant sur le papier. Sauf que les trois fuites cassent ce contrat à l’intérieur même de son périmètre, sur la partie qu’il est censé protéger, ton IP ou ton DNS peuvent sortir en clair.&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;Concret. Une connexion par passkey, et le relais est court-circuité. Un préchargement DNS déclenché par une page, et tes serveurs DNS réels apparaissent. WebTransport, arrivé avec iOS 26, et ton adresse IP réelle se montre. Tu n’as rien fait de spécial, la fuite vient du moteur, pas de toi. Ces mécanismes sont nommés et testables, ce n’est pas de la théorie de comptoir.&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;Nuance, parce que Mac Souverain ne fait pas dans l’alarme facile. Ton compte n’est pas piraté, tes pages ne sont pas lues, il n’y a pas de fuite massive. Ce qui tombe, c’est l’anonymat de ton IP sur la navigation, précisément ce pour quoi tu croyais activer la fonction.&lt;/p&gt;
&lt;p&gt;Techniquement, Private Relay n’a jamais promis d’être un VPN. C’est le marketing tout en douceur qui laisse le doute s’installer, et une large part des utilisateurs prend le relais pour un tunnel. C’est le même schéma que l’alias Apple qui laisse remonter à ta vraie adresse, une fonction privacy vendue comme une protection, une faille qui la vide de sa promesse.&lt;/p&gt;
&lt;br&gt;
&lt;h2 id=&quot;ce-que-tu-fais-maintenant&quot;&gt;Ce que tu fais maintenant&lt;/h2&gt;
&lt;br&gt;
&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; Arrête de traiter Private Relay comme un VPN. C’est un relais à double saut pour Safari, pas un tunnel système. Garde-le si tu veux, mais ne lui confie pas ce qu’il ne protège pas.&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;&lt;strong&gt;2.&lt;/strong&gt; Pour masquer vraiment ton IP sur tout ton trafic, prends un vrai VPN sans-log en juridiction saine, Proton VPN ou Mullvad, doublé d’un DNS souverain. Là tu tiens un tunnel, pas un demi-relais.&lt;/p&gt;
&lt;br&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;À lire : &lt;a href=&quot;https://macsouverain.com/dns-talon-achille-privacy/&quot;&gt;Le DNS, talon d’Achille de ta souveraineté numérique&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;br&gt;
&lt;p&gt;&lt;strong&gt;3.&lt;/strong&gt; Teste toi-même. Private Relay actif, va sur &lt;code&gt;dnsleaktest.com&lt;/code&gt; ou &lt;code&gt;dnscheck.tools&lt;/code&gt; et regarde ce qui sort. Le meilleur antidote au marketing, c’est ta propre vérification.&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;&lt;strong&gt;4.&lt;/strong&gt; Surveille la suite. Apple enquête sans calendrier, ne considère aucune fuite bouchée tant que ce n’est pas vérifié publiquement, pas sur la foi d’une note de version.&lt;/p&gt;
&lt;br&gt;
&lt;h2 id=&quot;sources&quot;&gt;Sources&lt;/h2&gt;
&lt;br&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.macrumors.com/2026/08/11/icloud-private-relay-class-action-lawsuit/&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;https://www.macrumors.com/2026/08/11/icloud-private-relay-class-action-lawsuit/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://9to5mac.com/2026/08/11/apple-faces-class-action-lawsuit-for-fraud-over-icloud-private-relay-flaw/&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;https://9to5mac.com/2026/08/11/apple-faces-class-action-lawsuit-for-fraud-over-icloud-private-relay-flaw/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Recherche primaire Tommy Mysk et Talal Haj Bakry, 4 août 2026 : &lt;a href=&quot;https://mysk.blog/2026/08/04/webkit-proxy-icloud-private-relay-ip-leak/&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;https://mysk.blog/2026/08/04/webkit-proxy-icloud-private-relay-ip-leak/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Relais Proton, blog du 5 août 2026 : &lt;a href=&quot;https://proton.me/blog/icloud-private-relay-ip-leak&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;https://proton.me/blog/icloud-private-relay-ip-leak&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content:encoded><dc:creator>Mac Souverain</dc:creator><category>radar</category><category>radar-signal</category><category>apple</category><category>vpn</category><category>vie-privee</category><category>reseau</category><category>souverainete</category></item><item><title>Wazuh, écris la règle qui capte ce que tu cherches vraiment</title><link>https://macsouverain.com/wazuh-regles-custom-detection/</link><guid isPermaLink="true">https://macsouverain.com/wazuh-regles-custom-detection/</guid><description>Écrire une règle Wazuh custom, ce n&apos;est pas tout couvrir. C&apos;est poser une question précise à un log réel, la tester avec wazuh-logtest, puis la déployer.</description><pubDate>Thu, 13 Aug 2026 10:00:00 GMT</pubDate><content:encoded>&lt;p&gt;À l’épisode précédent, tu as appris à lire ton SIEM. Tu as ouvert l’audit de configuration, restreint la surveillance de fichiers à ce qui compte, trié tes vulnérabilités par sévérité. Trois usages, trois questions, des réponses nettes. Sauf que toutes ces alertes, tu ne les as pas écrites. Elles sortaient du jeu de règles fourni par Wazuh, des milliers de règles pensées par d’autres, pour des cas génériques.&lt;/p&gt;
&lt;p&gt;Aujourd’hui, tu passes de l’autre côté. Tu écris ta première règle.&lt;/p&gt;
&lt;p&gt;Et je vais te dire tout de suite ce qui distingue une bonne règle custom d’une mauvaise, parce que c’est tout le sujet. Une mauvaise règle part d’un fantasme, tout couvrir, ne rien rater, verrouiller l’univers. Une bonne règle part d’un log réel que tu as sous les yeux et d’une question précise que tu lui poses. Une seule question. C’est exactement le fil rouge de la série, du plus calme au plus bavard, sauf qu’ici tu tiens le stylo.&lt;/p&gt;
&lt;p&gt;Ce tuto vise la branche &lt;strong&gt;4.x&lt;/strong&gt; de Wazuh, la même que toute la série, version de référence &lt;strong&gt;4.14.7&lt;/strong&gt;. Prévois une petite heure, un log sous les yeux, et l’envie de résister à la tentation d’en faire trop.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;ce-quil-te-faut&quot;&gt;Ce qu’il te faut&lt;/h2&gt;
&lt;p&gt;Rien de neuf à installer. Tout est hérité de la série.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ton manager Wazuh 4.x opérationnel, celui du tout-en-un.&lt;/li&gt;
&lt;li&gt;Au moins un agent en état &lt;code&gt;Active&lt;/code&gt; qui remonte des logs.&lt;/li&gt;
&lt;li&gt;Un accès shell au manager, parce que les règles vivent dans des fichiers, pas dans un formulaire.&lt;/li&gt;
&lt;li&gt;Un vrai log qui t’intéresse. Pas un exemple de doc, un log de &lt;strong&gt;chez toi&lt;/strong&gt;, celui pour lequel tu te dis « ça, je voudrais le savoir quand ça arrive ».&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ce dernier point n’est pas décoratif. Écrire une règle sans log réel devant soi, c’est deviner. Et une règle qui devine, elle se trompe.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;anatomie-dune-règle-décodage-champ-niveau&quot;&gt;Anatomie d’une règle, décodage, champ, niveau&lt;/h2&gt;
&lt;p&gt;Avant d’écrire, il faut comprendre le chemin que parcourt un log. Trois étapes, toujours les mêmes.&lt;/p&gt;
&lt;p&gt;Un log arrive. Wazuh le &lt;strong&gt;pré-décode&lt;/strong&gt;, il en extrait le squelette commun à tout message système, l’horodatage, le nom de la machine, le nom du programme. Puis un &lt;strong&gt;décodeur&lt;/strong&gt; entre en scène et découpe le reste en champs nommés, un utilisateur, une adresse source, une action. Enfin, le log passe devant le mur des &lt;strong&gt;règles&lt;/strong&gt;. La première règle dont toutes les conditions sont vraies gagne, et elle génère une alerte au niveau qu’elle porte.&lt;/p&gt;
&lt;p&gt;Retiens cette distinction, c’est le cœur de tout ce qui suit. Une règle peut chercher de deux façons.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Avec &lt;code&gt;&amp;#x3C;match&gt;&lt;/code&gt; ou &lt;code&gt;&amp;#x3C;regex&gt;&lt;/code&gt;, elle fouille le &lt;strong&gt;texte brut&lt;/strong&gt; du log, la ligne entière, telle quelle.&lt;/li&gt;
&lt;li&gt;Avec &lt;code&gt;&amp;#x3C;field&gt;&lt;/code&gt;, elle interroge un &lt;strong&gt;champ déjà extrait&lt;/strong&gt; par un décodeur, proprement isolé.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La première méthode, c’est le filet à grosses mailles. La seconde, c’est la pince à épiler. Une règle précise, celle qui pose une vraie question, s’accroche presque toujours à un décodeur et compare un champ nommé. On y revient.&lt;/p&gt;
&lt;p&gt;Côté écriture, une règle est un bloc XML. Ses attributs principaux, tu n’en utiliseras que deux au début.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;id&lt;/code&gt;, l’identifiant numérique unique de la règle.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;level&lt;/code&gt;, sa sévérité, sur une échelle dont on parle plus bas.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Et ses balises enfant utiles pour commencer.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&amp;#x3C;if_sid&gt;&lt;/code&gt;, le chaînage, « ne me déclenche que si telle autre règle a déjà matché ». La clé de la précision.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;#x3C;field name=&quot;...&quot;&gt;&lt;/code&gt;, la comparaison sur un champ décodé.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;#x3C;match&gt;&lt;/code&gt;, la recherche dans le texte brut.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;#x3C;description&gt;&lt;/code&gt;, la phrase qui s’affichera dans l’alerte. Écris-la pour toi dans six mois, pas pour la machine.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;D’autres balises existent, &lt;a href=&quot;https://documentation.wazuh.com/current/user-manual/ruleset/ruleset-xml-syntax/rules.html#options&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;&lt;code&gt;frequency&lt;/code&gt; et &lt;code&gt;timeframe&lt;/code&gt;&lt;/a&gt; pour compter les répétitions dans une fenêtre de temps, &lt;a href=&quot;https://documentation.wazuh.com/current/user-manual/ruleset/ruleset-xml-syntax/pcre2.html&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;&lt;code&gt;pcre2&lt;/code&gt;&lt;/a&gt; pour les motifs costauds, &lt;code&gt;decoded_as&lt;/code&gt;, tu les découvriras quand une question précise les réclamera. Pas avant. Garde la &lt;a href=&quot;https://documentation.wazuh.com/current/user-manual/ruleset/ruleset-xml-syntax/rules.html&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;référence des options de règle&lt;/a&gt; ouverte le jour où tu écris, c’est la page qui liste tout, balise par balise.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;où-vivent-tes-règles-et-lerreur-qui-te-les-efface&quot;&gt;Où vivent tes règles, et l’erreur qui te les efface&lt;/h2&gt;
&lt;p&gt;Deux fichiers, deux règles d’or.&lt;/p&gt;
&lt;p&gt;Tes &lt;a href=&quot;https://documentation.wazuh.com/current/user-manual/ruleset/rules/custom.html&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;règles custom&lt;/a&gt; vont dans &lt;code&gt;/var/ossec/etc/rules/local_rules.xml&lt;/code&gt;. Tes &lt;a href=&quot;https://documentation.wazuh.com/current/user-manual/ruleset/decoders/custom.html&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;décodeurs custom&lt;/a&gt;, quand tu en auras besoin, dans &lt;code&gt;/var/ossec/etc/decoders/local_decoder.xml&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Ce que tu ne touches &lt;strong&gt;jamais&lt;/strong&gt;, c’est le répertoire &lt;code&gt;/var/ossec/ruleset/&lt;/code&gt;. C’est le jeu de règles fourni par Wazuh, et il est réécrit intégralement à chaque mise à jour. Une personnalisation posée là-dedans disparaît à la première montée de version, sans un mot d’adieu. Tout ce qui t’appartient reste dans &lt;code&gt;etc/&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Deuxième règle, les identifiants. Réserve à tes règles la plage &lt;strong&gt;100000 à 120000&lt;/strong&gt;. Le moteur accepte techniquement n’importe quel numéro jusqu’à 999999, mais rester au-dessus de 100000 t’évite d’entrer en collision avec les règles système. La borne haute, 120000, est une recommandation confortable, pas un mur.&lt;/p&gt;
&lt;p&gt;Et si tu veux modifier une règle fournie plutôt qu’en créer une ? Tu la recopies dans ton fichier local avec l’attribut &lt;code&gt;overwrite=&quot;yes&quot;&lt;/code&gt;, en gardant son identifiant. Attention, certaines balises structurelles comme &lt;code&gt;if_sid&lt;/code&gt; ou &lt;code&gt;if_group&lt;/code&gt; ne se laissent pas réécrire ainsi, dans ce cas tu crées une nouvelle règle qui s’appuie sur l’existante.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;la-méthode-du-log-réel-à-la-règle-testée&quot;&gt;La méthode, du log réel à la règle testée&lt;/h2&gt;
&lt;p&gt;Voici la boucle. Tu vas la répéter à chaque règle que tu implémenteras, alors autant la créer proprement dès la première.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Tu attrapes le log brut.&lt;/strong&gt; La ligne exacte, copiée telle qu’elle apparaît, sans la reformuler.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tu regardes comment Wazuh la comprend déjà.&lt;/strong&gt; Quels champs un décodeur en tire, quelle règle système la ramasse peut-être au passage.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tu écris ta règle&lt;/strong&gt; dans &lt;code&gt;local_rules.xml&lt;/code&gt;, en t’accrochant à ce qui existe.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tu la testes à froid&lt;/strong&gt;, avant même de recharger le service, avec &lt;code&gt;wazuh-logtest&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tu recharges&lt;/strong&gt; le manager seulement quand le test est vert.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;L’outil qui rend tout ça possible, c’est &lt;a href=&quot;https://documentation.wazuh.com/current/user-manual/reference/tools/wazuh-logtest.html&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;&lt;code&gt;wazuh-logtest&lt;/code&gt;&lt;/a&gt;, à &lt;code&gt;/var/ossec/bin/wazuh-logtest&lt;/code&gt;. Un mot pour les vétérans, si tu as croisé de vieux tutos parlant d’&lt;code&gt;ossec-logtest&lt;/code&gt;, c’est le même outil, rebaptisé lors du passage d’OSSEC à Wazuh en version 4.0. Le nom d’aujourd’hui, c’est &lt;code&gt;wazuh-logtest&lt;/code&gt;, l’ancien ne répondra plus.&lt;/p&gt;
&lt;p&gt;Tu le lances, il t’invite à coller une ligne de log, et il rejoue sous tes yeux les &lt;strong&gt;trois phases&lt;/strong&gt; dont on parlait, pré-décodage, décodage, matching. Le décodage est ton point de contrôle, c’est là que tu vérifies qu’un champ que tu veux interroger existe bien. Le matching t’annonce la règle qui l’emporte, son identifiant, son niveau, sa description.&lt;/p&gt;
&lt;p&gt;Cette console, c’est ton banc d’essai. Tu peux y coller un log, voir qu’aucune règle ne le ramasse, écrire ta règle, recoller le log, et regarder la phase 3 changer. Sans jamais toucher à la production.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://macsouverain.com/content/images/2026/07/body-01-wazuh-logtest.png&quot; alt=&quot;Sortie de wazuh-logtest sur une ligne de log Vaultwarden d&amp;#x27;échec d&amp;#x27;authentification : phase de décodage avec les champs srcip et srcuser extraits, phase de matching sur la règle 100011 au niveau 10.&quot;&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;un-exemple-de-bout-en-bout&quot;&gt;Un exemple de bout en bout&lt;/h2&gt;
&lt;p&gt;Assez de théorie. Prenons une vraie question, la plus banale qui soit, et déroulons-la jusqu’au bout.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;La question.&lt;/strong&gt; « Je veux savoir quand quelqu’un rate l’authentification sur mon coffre Vaultwarden, et de quelle adresse il s’y essaie. » Une question, un service, un événement. Quelqu’un qui tape à côté du mot de passe de ton gestionnaire de mots de passe, c’est exactement le genre de bruit que tu veux entendre.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Le log sous les yeux.&lt;/strong&gt; À chaque échec, Vaultwarden écrit cette ligne.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;[2026-08-13 09:42:11.523][vaultwarden::api::identity][ERROR] Username or password is incorrect. Try again. IP: 203.0.113.42. Username: victime@example.com.&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Regarde le format, ce n’est pas du syslog classique, pas de &lt;code&gt;machine programme[pid]&lt;/code&gt;. Vaultwarden préfixe chaque ligne de &lt;code&gt;[horodatage][module][niveau]&lt;/code&gt;. Retiens-le, ça va compter pour le décodeur.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Le premier réflexe, la grosse maille.&lt;/strong&gt; Tu pourrais écrire une règle qui fouille le texte brut.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;xml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;group&lt;/span&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt; name&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt;&quot;vaultwarden,&quot;&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;  &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;rule&lt;/span&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt; id&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt;&quot;100010&quot;&lt;/span&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt; level&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt;&quot;5&quot;&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;    &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;match&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;Username or password is incorrect. Try again&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;match&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;    &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;description&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;Vaultwarden, échec d&apos;authentification&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;description&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;  &amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;rule&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;group&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Ça marche, ça sonne à chaque échec. Mais tu n’as qu’un fait nu, « quelqu’un s’est planté ». L’adresse et le compte visé sont là, dans la ligne, sauf que Wazuh ne les voit pas comme des champs. Impossible de compter les tentatives par adresse, de géolocaliser, de repérer l’acharné qui revient toutes les dix secondes. Tu as ouvert un robinet, pas posé une question.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;La bonne maille, la pince à épiler.&lt;/strong&gt; On repart de zéro. Pour interroger l’adresse et le compte, il te faut ces champs décodés. Or Vaultwarden ne fait pas partie des formats que Wazuh connaît d’origine, tu vas devoir le lui apprendre, la section suivante détaille le décodeur. Admettons qu’il extraie déjà &lt;code&gt;srcip&lt;/code&gt; et &lt;code&gt;srcuser&lt;/code&gt;. Ta règle devient alors chirurgicale.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;xml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;group&lt;/span&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt; name&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt;&quot;vaultwarden,&quot;&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;  &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;rule&lt;/span&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt; id&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt;&quot;100010&quot;&lt;/span&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt; level&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt;&quot;0&quot;&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;    &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;decoded_as&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;vaultwarden&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;decoded_as&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;    &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;description&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;Vaultwarden, ligne reconnue, socle de détection&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;description&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;  &amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;rule&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;  &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;rule&lt;/span&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt; id&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt;&quot;100011&quot;&lt;/span&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt; level&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt;&quot;10&quot;&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;    &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;if_sid&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;100010&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;if_sid&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;    &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;match&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;Username or password is incorrect&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;match&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;    &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;description&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;Vaultwarden, échec d&apos;authentification de $(srcuser) depuis $(srcip)&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;description&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;  &amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;rule&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;group&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Regarde ce qui se joue là. La règle 100010 est en &lt;code&gt;level=&quot;0&quot;&lt;/code&gt;, elle ne sonne pas, elle sert juste de socle, elle dit « cette ligne vient de Vaultwarden ». La règle 100011 s’y accroche via &lt;code&gt;&amp;#x3C;if_sid&gt;&lt;/code&gt;, ne se déclenche que sur l’échec d’authentification, et rappelle dans sa description le compte visé et l’adresse d’où vient la tentative.&lt;/p&gt;
&lt;p&gt;Une question posée, une réponse donnée, et un silence total sur tout le reste. Et si demain tu ne veux d’alerte que pour un compte précis, tu remplaces ce &lt;code&gt;&amp;#x3C;match&gt;&lt;/code&gt; par un &lt;code&gt;&amp;#x3C;field name=&quot;srcuser&quot;&gt;toncompte@exemple.tld&amp;#x3C;/field&gt;&lt;/code&gt;, la pince se resserre encore. Le jour où tu voudras hurler quand la même adresse se plante dix fois en une minute, tu ajouteras &lt;code&gt;frequency&lt;/code&gt; et &lt;code&gt;timeframe&lt;/code&gt; par-dessus, mais ça, c’est une autre règle pour un autre jour.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Le test, avant de déployer quoi que ce soit.&lt;/strong&gt;&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;/var/ossec/bin/wazuh-logtest&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Colle ta ligne de log. En phase 3, tu dois voir sonner la règle 100011, au niveau 10, avec ta description remplie : &lt;em&gt;Vaultwarden, échec d’authentification de &lt;a href=&quot;mailto:victime@example.com&quot;&gt;victime@example.com&lt;/a&gt; depuis 203.0.113.42&lt;/em&gt;. L’adresse est là, récupérée, prête à géolocaliser ou à corréler. Si tu veux valider en une commande, sans lire la sortie, l’option &lt;code&gt;-U&lt;/code&gt; compare le résultat à un triplet attendu, identifiant, niveau, décodeur, et te rend un code de sortie propre.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;/var/ossec/bin/wazuh-logtest&lt;/span&gt;&lt;span style=&quot;color:#005CC5&quot;&gt; -U&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; 100011:10:vaultwarden&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Puis tu recharges.&lt;/strong&gt;&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; systemctl&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; restart&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; wazuh-manager&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Un redémarrage coupe brièvement la réception des logs, le temps que le service revienne. Sur un manager de PME, c’est indolore.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;L’exemple 100010/100011 illustre la syntaxe exacte du chaînage &lt;code&gt;if_sid&lt;/code&gt;, avec les champs décodés réinjectés dans la description. Avant de compter sur l’alerte en prod, colle-le dans &lt;code&gt;wazuh-logtest&lt;/code&gt; et vérifie que les substitutions &lt;code&gt;$(srcip)&lt;/code&gt; et &lt;code&gt;$(srcuser)&lt;/code&gt; s’affichent bien. Trente secondes, et pas de coquille découverte le jour où l’alerte compte vraiment.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&quot;quand-il-faut-un-décodeur-et-quand-il-nen-faut-surtout-pas&quot;&gt;Quand il faut un décodeur, et quand il n’en faut surtout pas&lt;/h2&gt;
&lt;p&gt;C’est le piège du débutant zélé, écrire un décodeur pour tout. Ne le fais pas.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Le principe est simple.&lt;/strong&gt; Si un décodeur existant sort déjà le champ qui t’intéresse, tu n’écris &lt;strong&gt;aucun&lt;/strong&gt; décodeur. Tu écris directement une règle qui s’accroche à la règle existante et compare le champ. La plupart des formats standards, ceux de SSH, des services système, des serveurs connus, sont déjà décodés par Wazuh. Vérifie-le d’abord dans la phase 2 de &lt;code&gt;wazuh-logtest&lt;/code&gt;, si ton champ apparaît, le travail est fait.&lt;/p&gt;
&lt;p&gt;Tu n’écris un décodeur que dans un cas précis, quand Wazuh ne comprend pas le format d’un log &lt;strong&gt;maison&lt;/strong&gt; ou exotique. La phase 2 du test reste vide, ou ne sort pas le champ que tu cherches ? Alors, et seulement alors, tu apprends à Wazuh à lire ce format.&lt;/p&gt;
&lt;p&gt;Un décodeur custom, ça vit dans &lt;code&gt;/var/ossec/etc/decoders/local_decoder.xml&lt;/code&gt;, et ça se compose de &lt;a href=&quot;https://documentation.wazuh.com/current/user-manual/ruleset/ruleset-xml-syntax/decoders.html&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;deux blocs&lt;/a&gt;, un parent qui reconnaît l’application, un enfant qui extrait les champs. Pour notre Vaultwarden, ça donne :&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;xml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;decoder&lt;/span&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt; name&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt;&quot;vaultwarden&quot;&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;  &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;prematch&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;][vaultwarden::&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;prematch&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;decoder&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;decoder&lt;/span&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt; name&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt;&quot;vaultwarden&quot;&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;  &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;parent&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;vaultwarden&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;parent&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;  &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;regex&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;IP: (\d+.\d+.\d+.\d+). Username: (\S+).&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;regex&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;  &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;order&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;srcip, srcuser&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;order&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;decoder&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Le parent reconnaît la ligne à une sous-chaîne stable, &lt;code&gt;][vaultwarden::&lt;/code&gt;, le nom du module que Vaultwarden colle dans chacune de ses lignes. Pourquoi pas un &lt;code&gt;&amp;#x3C;program_name&gt;&lt;/code&gt; comme d’habitude ? Parce que Vaultwarden n’écrit pas en syslog, il n’y a pas de champ programme à accrocher. Si tu fais passer tes logs par journald ou syslog en amont, alors le préfixe standard réapparaît et tu peux revenir au &lt;code&gt;&amp;#x3C;program_name&gt;vaultwarden&amp;#x3C;/program_name&gt;&lt;/code&gt; classique.&lt;/p&gt;
&lt;p&gt;En lecture directe du fichier ou de la sortie Docker, le &lt;code&gt;&amp;#x3C;prematch&gt;&lt;/code&gt; sur le module est ta prise la plus solide. L’enfant, lui, capture l’adresse puis le compte, dans cet ordre, et les nomme &lt;code&gt;srcip&lt;/code&gt; et &lt;code&gt;srcuser&lt;/code&gt;, exactement les champs que ta règle 100011 attend. Le nom &lt;code&gt;srcip&lt;/code&gt; n’est pas un caprice, c’est celui que Wazuh sait géolocaliser et corréler. La boucle est bouclée.&lt;/p&gt;
&lt;p&gt;Un avertissement sur les expressions régulières, parce que c’est là qu’on perd des heures. La &lt;a href=&quot;https://documentation.wazuh.com/current/user-manual/ruleset/ruleset-xml-syntax/regex.html&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;syntaxe des motifs Wazuh&lt;/a&gt; n’est pas tout à fait la regex classique à laquelle tu penses, le moteur par défaut (OS_Regex) a ses propres conventions. Teste chaque décodeur dans &lt;code&gt;wazuh-logtest&lt;/code&gt; avant de t’y fier, et considère l’exemple ci-dessus comme un patron à valider sur ton format réel, pas comme du copier-coller garanti.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;le-vrai-danger-ce-nest-pas-la-syntaxe-cest-le-nombre&quot;&gt;Le vrai danger, ce n’est pas la syntaxe, c’est le nombre&lt;/h2&gt;
&lt;p&gt;Tu sais maintenant écrire une règle. La partie technique est derrière toi. Reste la partie qui tue les SIEM, la retenue.&lt;/p&gt;
&lt;p&gt;Chaque règle que tu ajoutes est une bouche de plus qui parlera. Le réflexe, une fois qu’on sait écrire, c’est d’écrire trop, une règle pour ci, une pour ça, au cas où. Trois semaines plus tard, ton flux ressemble au mur indistinct dont l’épisode 1 t’avait sorti, sauf que cette fois, c’est toi qui l’as bâti.&lt;/p&gt;
&lt;p&gt;D’où la seule règle d’hygiène qui compte, la même qu’au premier épisode.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ne crée jamais une règle dont tu ne sais pas quoi faire quand elle sonnera.&lt;/strong&gt; Si ta seule réaction possible à l’alerte est de hausser les épaules, cette règle n’a pas de raison d’exister.&lt;/p&gt;
&lt;p&gt;Le &lt;code&gt;level&lt;/code&gt; est ton outil de dosage, il va de &lt;a href=&quot;https://documentation.wazuh.com/current/user-manual/ruleset/rules/rules-classification.html&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;0 à 15&lt;/a&gt;, le 16 existe mais reste non documenté. Sers-t’en sérieusement.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Le 0 est silencieux.&lt;/strong&gt; Il décode et observe sans jamais réveiller personne. C’est le niveau des règles socles, comme la 100010 de l’exemple. Parfaitement légitime, et sous-utilisé.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Les niveaux bas, de 2 à 7,&lt;/strong&gt; sont le bruit de fond, erreurs mineures, tentatives sans gravité.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Le milieu, de 8 à 11,&lt;/strong&gt; mérite un œil.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Le haut, de 12 à 14,&lt;/strong&gt; ce sont les événements de sécurité importants.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Le 15 est l’attaque sévère,&lt;/strong&gt; celle qui appelle une réaction immédiate, sans faux positif attendu.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;N’invente pas de signification pour le 16, non documenté. Et surtout, ne colle pas un niveau élevé à une règle par excès de zèle. Un &lt;code&gt;level&lt;/code&gt; haut n’a de sens que si une action concrète est prévue quand il tombe. Sinon, tu fabriques de l’angoisse, pas de la sécurité.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;si-ça-ne-marche-pas&quot;&gt;Si ça ne marche pas&lt;/h2&gt;
&lt;h3 id=&quot;problème-ta-règle-ne-se-déclenche-jamais-dans-le-test&quot;&gt;Problème, ta règle ne se déclenche jamais dans le test&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Cause probable,&lt;/strong&gt; le champ que tu interroges n’est pas décodé, ou la règle parente référencée dans &lt;code&gt;&amp;#x3C;if_sid&gt;&lt;/code&gt; ne matche pas ce log.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Solution,&lt;/strong&gt; relance &lt;code&gt;wazuh-logtest&lt;/code&gt; avec l’option verbeuse &lt;code&gt;-v&lt;/code&gt; et lis la phase 2. Si ton champ n’y apparaît pas, aucun décodeur ne le produit, il te faut donc en écrire un avant d’écrire ta règle. Vérifie aussi que l’identifiant dans &lt;code&gt;&amp;#x3C;if_sid&gt;&lt;/code&gt; correspond bien à une règle qui, elle, ramasse le log.&lt;/p&gt;
&lt;h3 id=&quot;problème-wazuh-logtest-voit-ta-règle-mais-le-manager-lignore-en-production&quot;&gt;Problème, wazuh-logtest voit ta règle mais le manager l’ignore en production&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Cause probable,&lt;/strong&gt; le service n’a pas été rechargé depuis que tu as modifié le fichier.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Solution,&lt;/strong&gt; &lt;code&gt;sudo systemctl restart wazuh-manager&lt;/code&gt;. L’outil de test lit tes fichiers directement, le moteur de production, lui, travaille sur le jeu de règles chargé en mémoire. Tant que tu ne recharges pas, il ne connaît pas ta nouvelle règle.&lt;/p&gt;
&lt;h3 id=&quot;problème-ta-règle-a-disparu-après-une-mise-à-jour-de-wazuh&quot;&gt;Problème, ta règle a disparu après une mise à jour de Wazuh&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Cause probable,&lt;/strong&gt; tu l’avais écrite dans &lt;code&gt;/var/ossec/ruleset/&lt;/code&gt; au lieu de &lt;code&gt;/var/ossec/etc/rules/&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Solution,&lt;/strong&gt; réécris-la dans &lt;code&gt;local_rules.xml&lt;/code&gt; et ne remets plus jamais les pieds dans &lt;code&gt;ruleset/&lt;/code&gt;. Ce répertoire est terrain de Wazuh, réécrit à chaque montée de version.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;pour-les-pressés&quot;&gt;Pour les pressés&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Ce que fait cet article.&lt;/strong&gt; Il t’apprend à écrire ta première règle de détection Wazuh, en partant d’un log réel et d’une question précise, à la tester hors production, puis à la déployer sans casser quoi que ce soit.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Concrètement, la marche à suivre.&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Attrape le log brut qui t’intéresse et lance &lt;code&gt;/var/ossec/bin/wazuh-logtest&lt;/code&gt; pour voir quels champs Wazuh en extrait déjà.&lt;/li&gt;
&lt;li&gt;Écris ta règle dans &lt;code&gt;/var/ossec/etc/rules/local_rules.xml&lt;/code&gt;, identifiant entre 100000 et 120000, jamais dans &lt;code&gt;ruleset/&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Privilégie la précision, accroche-toi à une règle existante avec &lt;code&gt;&amp;#x3C;if_sid&gt;&lt;/code&gt; et compare un champ décodé avec &lt;code&gt;&amp;#x3C;field&gt;&lt;/code&gt;, plutôt que de fouiller le texte brut avec &lt;code&gt;&amp;#x3C;match&gt;&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Si le champ voulu n’est pas décodé, et seulement dans ce cas, écris un décodeur dans &lt;code&gt;/var/ossec/etc/decoders/local_decoder.xml&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Teste dans &lt;code&gt;wazuh-logtest&lt;/code&gt; jusqu’au vert, au besoin avec &lt;code&gt;-U identifiant:niveau:decodeur&lt;/code&gt; pour une validation en une commande.&lt;/li&gt;
&lt;li&gt;Recharge, &lt;code&gt;sudo systemctl restart wazuh-manager&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Règle d’or, n’écris aucune règle dont tu ne sais pas quoi faire quand elle sonnera. Le &lt;code&gt;level&lt;/code&gt; 0 pour observer sans alerter est ton ami.&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2 id=&quot;en-résumé&quot;&gt;En résumé&lt;/h2&gt;
&lt;p&gt;Tu es passé de lecteur à auteur. Tu ne subis plus les règles écrites par d’autres, tu poses tes propres questions à tes propres logs.&lt;/p&gt;
&lt;p&gt;Et la leçon n’est pas dans la syntaxe XML, que tu maîtriseras en trois règles. Elle est dans la retenue. Une bonne règle vise un log précis, chaîne sur ce qui existe déjà, et se tait sur le reste. Le décodeur, tu ne l’écris que forcé. Le niveau d’alerte, tu le dis honnêtement. Et chaque règle que tu ajoutes, tu la mérites par une action que tu es prêt à mener quand elle sonnera.&lt;/p&gt;
&lt;p&gt;Choisis peu de questions. Réponds-y vraiment. C’est valable pour lire, c’est valable pour écrire.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;pour-creuser-la-doc-officielle&quot;&gt;Pour creuser, la doc officielle&lt;/h2&gt;
&lt;p&gt;Toute la syntaxe que tu viens de manipuler est documentée, page par page. Garde ces liens sous la main, ce sont tes sources.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://documentation.wazuh.com/current/user-manual/ruleset/ruleset-xml-syntax/rules.html&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Référence des options de règle&lt;/a&gt; : &lt;code&gt;id&lt;/code&gt;, &lt;code&gt;level&lt;/code&gt;, &lt;code&gt;if_sid&lt;/code&gt;, &lt;code&gt;field&lt;/code&gt;, &lt;code&gt;match&lt;/code&gt;, &lt;code&gt;regex&lt;/code&gt;, et les options avancées &lt;a href=&quot;https://documentation.wazuh.com/current/user-manual/ruleset/ruleset-xml-syntax/rules.html#options&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;&lt;code&gt;frequency&lt;/code&gt; et &lt;code&gt;timeframe&lt;/code&gt;&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://documentation.wazuh.com/current/user-manual/ruleset/rules/custom.html&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Règles custom et &lt;code&gt;overwrite&lt;/code&gt;&lt;/a&gt;, où et comment écrire dans &lt;code&gt;local_rules.xml&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://documentation.wazuh.com/current/user-manual/ruleset/ruleset-xml-syntax/decoders.html&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Syntaxe des décodeurs&lt;/a&gt; : &lt;code&gt;prematch&lt;/code&gt;, &lt;code&gt;parent&lt;/code&gt;, &lt;code&gt;regex&lt;/code&gt;, &lt;code&gt;order&lt;/code&gt;, et les &lt;a href=&quot;https://documentation.wazuh.com/current/user-manual/ruleset/decoders/custom.html&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;décodeurs custom&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://documentation.wazuh.com/current/user-manual/ruleset/ruleset-xml-syntax/regex.html&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Expressions régulières Wazuh&lt;/a&gt;, pour ne pas confondre OS_Regex et &lt;a href=&quot;https://documentation.wazuh.com/current/user-manual/ruleset/ruleset-xml-syntax/pcre2.html&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;PCRE2&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://documentation.wazuh.com/current/user-manual/ruleset/rules/rules-classification.html&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Classification des niveaux&lt;/a&gt;, de 0 à 15.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://documentation.wazuh.com/current/user-manual/reference/tools/wazuh-logtest.html&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;&lt;code&gt;wazuh-logtest&lt;/code&gt;&lt;/a&gt;, l’outil de test, options &lt;code&gt;-v&lt;/code&gt; et &lt;code&gt;-U&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id=&quot;et-après-montre-à-ton-siem-ce-que-tu-bloques&quot;&gt;Et après, montre à ton SIEM ce que tu bloques&lt;/h2&gt;
&lt;p&gt;Tu sais lire ton SIEM, tu sais maintenant lui apprendre de nouvelles questions. Le prochain cran, c’est de lui donner à voir un signal qu’il ne capte pas encore, ce que tes Mac laissent tourner, et surtout ce qu’ils refusent.&lt;/p&gt;
&lt;p&gt;Au prochain épisode, on branche le contrôle d’exécution de tes Mac sur Wazuh, pour que chaque blocage devienne une alerte lisible dans le même tableau de bord que le reste. Le geste d’écriture que tu viens d’apprendre y sera ton outil de base.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;À lire bientôt : Brancher Santa sur Wazuh, corréler ce qui s’exécute et ce qu’on bloque&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Et pour l’épisode qui précède, celui où l’on apprend à lire avant d’écrire.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;À lire : &lt;a href=&quot;https://macsouverain.com/wazuh-premier-usage-siem-souverain/&quot;&gt;Ton SIEM souverain, lis-le vraiment puis fais-le passer à l’action&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;em&gt;Des termes techniques ? &lt;a href=&quot;https://macsouverain.com/glossaire&quot;&gt;Consulte le glossaire.&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;</content:encoded><dc:creator>Mac Souverain</dc:creator><category>ms-pro</category><category>nis2</category><category>siem</category><category>wazuh</category><category>securite</category><category>tutoriel</category><enclosure url="https://macsouverain.com/content/images/2026/07/feature-wazuh-regles-custom-detection-1.png" length="0" type="image/png"/></item><item><title>Londres réclame tes sauvegardes iCloud chiffrées</title><link>https://macsouverain.com/radar-apple-tcn-britannique-sauvegardes-icloud/</link><guid isPermaLink="true">https://macsouverain.com/radar-apple-tcn-britannique-sauvegardes-icloud/</guid><description>Apple attaque une injonction britannique visant tes sauvegardes iCloud. Réduite au Royaume-Uni, le précédent ne connaît pas de frontière.</description><pubDate>Thu, 06 Aug 2026 10:00:00 GMT</pubDate><content:encoded>&lt;div class=&quot;radar-summary&quot;&gt;
&lt;p&gt;Apple attaque devant l&apos;IPT une nouvelle injonction britannique qui réclame l&apos;accès à tes sauvegardes iCloud chiffrées. Elle est réduite aux seuls utilisateurs du Royaume-Uni, retirée en 2025 quand elle visait aussi les Américains. Le hic : si on peut techniquement ouvrir les sauvegardes d&apos;un pays, on peut le refaire partout. Le précédent pèse plus lourd que le périmètre.&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;&lt;strong&gt;Ce que ça change pour toi&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; Sans Protection Avancée des Données, ta sauvegarde iCloud est chiffrée mais avec une clé qu&apos;Apple détient, donc accessible à Apple et mobilisable sur injonction.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2.&lt;/strong&gt; Avec ADP activé, tes sauvegardes passent en chiffrement de bout en bout, Apple n&apos;a plus rien à remettre. Vérifie ton statut.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3.&lt;/strong&gt; L&apos;option ne couvre pas iCloud Mail, Contacts ni Calendrier. Pour l&apos;email chiffré, c&apos;est Proton Mail ou Tuta.&lt;/p&gt;
&lt;/div&gt;
&lt;h2 id=&quot;le-fait&quot;&gt;Le fait&lt;/h2&gt;
&lt;br&gt;
&lt;p&gt;En juillet 2026, Apple a déposé une plainte devant l’Investigatory Powers Tribunal britannique. La cible : une nouvelle injonction du gouvernement, une Technical Capability Notice, qui exige un accès aux sauvegardes iCloud chiffrées des utilisateurs du Royaume-Uni.&lt;/p&gt;
&lt;p&gt;Tout ce que tu viens de lire, tu le sais « selon la presse » et pas autrement, parce que l’Investigatory Powers Act interdit à Apple comme au Home Office de confirmer qu’une telle injonction existe. L’information vient du Financial Times, reprise ensuite par TechCrunch, 9to5Mac, AppleInsider, Euronews et MacRumors.&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;Ce n’est pas la première manche. En janvier 2025, une première injonction visait déjà les sauvegardes iCloud, mais elle couvrait les clients britanniques et américains. Washington a grincé des dents, la pression diplomatique est montée, et elle a été retirée en août 2025. Le Home Office est revenu à la charge avec une version révisée, cette fois limitée aux seuls utilisateurs du Royaume-Uni. &lt;strong&gt;Même loi, même mécanique, carte plus petite.&lt;/strong&gt;&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;Le secret est tel qu’aucune audience au fond n’est publiquement calendée pour l’affaire Apple elle-même. Le seul repère fiable, c’est une procédure distincte : Privacy International et Liberty contestent ce régime d’injonctions, et leur dossier sera entendu en décembre 2026. La position d’Apple, elle, n’a pas bougé d’un pouce : refus de construire le moindre accès imposé, avec un argument constant, une fois l’outil fabriqué, il met en danger tous les utilisateurs, pas seulement ceux qu’on visait au départ.&lt;/p&gt;
&lt;br&gt;
&lt;h2 id=&quot;pourquoi-ça-compte-pour-toi&quot;&gt;Pourquoi ça compte pour toi&lt;/h2&gt;
&lt;br&gt;
&lt;p&gt;Le réflexe, en lisant « limitée au Royaume-Uni », c’est de souffler. Mauvais réflexe. Un accès qui rétrécit géographiquement &lt;strong&gt;n’est pas une reculade, c’est un test de faisabilité réussi.&lt;/strong&gt; Si Apple peut isoler techniquement les sauvegardes d’un seul pays pour les rendre lisibles sur demande, la même manette fonctionne pour n’importe quel pays qui saura la réclamer. Le périmètre change. &lt;strong&gt;Le précédent, lui, ne connaît pas de frontière.&lt;/strong&gt;&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;Note aussi par où passe l’attaque. Pas par un texte européen débattu au grand jour, pas par un vote qu’on peut suivre et contester. Par une injonction nationale, secrète, qu’aucun des deux camps n’a le droit de commenter. C’est une autre porte pour entrer dans la même pièce.&lt;/p&gt;
&lt;br&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;À lire : &lt;a href=&quot;https://macsouverain.com/chat-control-csar-surveillance-messageries-chiffrees/&quot;&gt;Chat Control, la surveillance de masse qui avance en Europe&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;br&gt;
&lt;p&gt;Reste la vraie question, celle qui décide si ça te concerne : qu’est-ce qu’une injonction pareille peut techniquement atteindre ? Une sauvegarde iCloud standard est chiffrée en transit et au repos, mais avec une clé qu’Apple détient. Traduction, Apple peut y accéder, donc Apple peut y être contrainte. La Protection Avancée des Données bascule au contraire tes sauvegardes en chiffrement de bout en bout, sans clé côté Apple. &lt;strong&gt;Ce qu’Apple ne détient pas, Apple ne peut pas le remettre.&lt;/strong&gt;&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;Et une sauvegarde iCloud n’est pas un détail : elle embarque une copie de presque tout, messages, photos, données d’apps, et sans Protection Avancée, de quoi déchiffrer tes iMessages. &lt;strong&gt;Une conversation soi-disant chiffrée de bout en bout redevient donc lisible par la sauvegarde tant que l’option n’est pas activée.&lt;/strong&gt;&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;Aucune source publique ne dit si l’injonction révisée vise explicitement la Protection Avancée des Données. Ne laisse personne te l’affirmer, &lt;strong&gt;c’est du vent.&lt;/strong&gt; Ce qu’on peut cadrer, c’est la mécanique : sans cette option, ta sauvegarde vit derrière une serrure dont Apple garde le double de clé. Avec ADP, le double n’existe pas.&lt;/p&gt;
&lt;br&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;À lire : &lt;a href=&quot;https://macsouverain.com/cloud-ordinateur-quelquun-dautre/&quot;&gt;Le cloud, c’est l’ordinateur de quelqu’un d’autre&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;br&gt;
&lt;p&gt;Un dernier point, pour éviter le faux sentiment de blindage. Même avec la Protection Avancée activée, &lt;strong&gt;iCloud Mail, Contacts et Calendrier restent hors chiffrement&lt;/strong&gt; de bout en bout, pour des raisons d’interopérabilité IMAP, CalDAV et CardDAV. L’option protège tes sauvegardes, pas ta boîte mail. Pour un email vraiment chiffré, c’est ailleurs que ça se joue.&lt;/p&gt;
&lt;br&gt;
&lt;h2 id=&quot;ce-que-tu-fais-maintenant&quot;&gt;Ce que tu fais maintenant&lt;/h2&gt;
&lt;br&gt;
&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; &lt;strong&gt;Vérifie ton statut Protection Avancée des Données&lt;/strong&gt; : Réglages → ton nom → iCloud → Protection avancée des données. Sans elle, ta sauvegarde iCloud est chiffrée avec une clé qu’Apple détient. Avec elle, Apple n’a rien à remettre à personne.&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;&lt;strong&gt;2.&lt;/strong&gt; Garde en tête ce que l’option ne couvre pas. &lt;strong&gt;iCloud Mail, Contacts et Calendrier restent hors chiffrement de bout en bout&lt;/strong&gt;, même Protection Avancée activée. Pour l’email chiffré, &lt;strong&gt;Proton Mail ou Tuta&lt;/strong&gt; font le travail par architecture.&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;&lt;strong&gt;3.&lt;/strong&gt; Pour ce que tu refuses de confier à la moindre clé tierce, &lt;strong&gt;sauvegarde localement sur un disque chiffré, ou passe par un stockage souverain chiffré de bout en bout&lt;/strong&gt;. Une injonction s’arrête là où l’entreprise n’a pas la clé.&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;&lt;strong&gt;4.&lt;/strong&gt; Le repère à suivre, c’est &lt;strong&gt;décembre 2026&lt;/strong&gt; : l’audience Privacy International et Liberty contre ce régime d’injonctions. Faute de pouvoir suivre l’affaire Apple, tenue au secret, c’est là que le cadre légal se débat en public.&lt;/p&gt;
&lt;br&gt;
&lt;h2 id=&quot;sources&quot;&gt;Sources&lt;/h2&gt;
&lt;br&gt;
&lt;ul&gt;
&lt;li&gt;Financial Times, source primaire : &lt;a href=&quot;https://www.ft.com/content/2cc9c96a-0e5b-4c33-a95a-3d11072a145c&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;https://www.ft.com/content/2cc9c96a-0e5b-4c33-a95a-3d11072a145c&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;TechCrunch, reprise : &lt;a href=&quot;https://techcrunch.com/2026/08/03/apple-challenges-uk-governments-latest-demand-for-icloud-backdoor-report/&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;https://techcrunch.com/2026/08/03/apple-challenges-uk-governments-latest-demand-for-icloud-backdoor-report/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;9to5Mac, reprise : &lt;a href=&quot;https://9to5mac.com/2026/08/03/apple-launches-second-legal-challenge-to-uk-icloud-backdoor-order-per-report/&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;https://9to5mac.com/2026/08/03/apple-launches-second-legal-challenge-to-uk-icloud-backdoor-order-per-report/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;AppleInsider, reprise : &lt;a href=&quot;https://appleinsider.com/articles/26/08/03/uk-faces-new-legal-fight-from-apple-over-backdoor-access-to-icloud-data&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;https://appleinsider.com/articles/26/08/03/uk-faces-new-legal-fight-from-apple-over-backdoor-access-to-icloud-data&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Euronews, reprise : &lt;a href=&quot;https://www.euronews.com/next/2026/08/04/apple-challenges-the-uks-second-attempt-to-gain-access-to-icloud-data&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;https://www.euronews.com/next/2026/08/04/apple-challenges-the-uks-second-attempt-to-gain-access-to-icloud-data&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;MacRumors, reprise : &lt;a href=&quot;https://www.macrumors.com/2026/08/03/apple-legal-challenge-against-uk-demand/&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;https://www.macrumors.com/2026/08/03/apple-legal-challenge-against-uk-demand/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content:encoded><dc:creator>Mac Souverain</dc:creator><category>radar</category><category>radar-analyse</category><category>apple</category><category>icloud</category><category>chiffrement</category><category>royaume-uni</category><category>reglementation</category><category>souverainete</category></item><item><title>Ton SIEM souverain, lis-le vraiment puis fais-le passer à l&apos;action</title><link>https://macsouverain.com/wazuh-premier-usage-siem-souverain/</link><guid isPermaLink="true">https://macsouverain.com/wazuh-premier-usage-siem-souverain/</guid><description>Wazuh est installé et tu ne sais pas quoi en faire. Trois premiers usages dans le bon ordre, sans crouler sous les alertes.</description><pubDate>Sun, 02 Aug 2026 12:01:00 GMT</pubDate><content:encoded>&lt;p&gt;Tu as suivi la série SIEM. Tu as &lt;a href=&quot;https://macsouverain.com/wazuh-tout-en-un-siem-souverain/&quot;&gt;monté Wazuh en tout-en-un&lt;/a&gt; sur ton VPS durci, puis &lt;a href=&quot;https://macsouverain.com/wazuh-agents-parc-siem-souverain/&quot;&gt;déployé les agents&lt;/a&gt;. Ton dashboard s’allume, il liste tes machines, il affiche chiffres, courbes et alertes qui montent. Et là tu restes planté devant, avec une question bête que personne ne pose dans les tutos d’installation, tu en fais quoi de toutes ces infos ?&lt;/p&gt;
&lt;p&gt;Parce qu’il faut être franc, le dashboard Wazuh, comme ça, de but en blanc, ben… ça ressemble un peu à un cockpit de Boeing. Un de nos lecteurs m’en a gentiment fait part, c’est l’origine de cette série d’articles.&lt;/p&gt;
&lt;p&gt;Je dis bien série, parce qu’après avoir un peu réfléchi à la problématique, je me suis dit qu’un seul article au format normal ne suffirait pas.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;La mauvaise réponse&lt;/strong&gt; à la question initiale, celle vers laquelle tout te pousse, c’est de &lt;strong&gt;tout allumer&lt;/strong&gt; d’un coup &lt;strong&gt;pour « ne rien rater »&lt;/strong&gt;. La guirlande de Noël toute éclairée, c’est beau, mais avec tellement de trucs à regarder que tu ne sais plus où donner de la tête.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Wazuh n’est pas un antivirus&lt;/strong&gt;. Il ne bloque rien avant que l’on active rootcheck et réponse active, il ne nettoie rien, en l’état il ne te protège pas. &lt;strong&gt;C’est un collecteur&lt;/strong&gt;, un moteur de règles et un stockage. Il rend visible ce qui se passe sur tes machines. Toute sa valeur naît le jour où tu lui poses deux ou trois questions précises, pas le jour où tu le laisses tout observer et où tu essaies de suivre le match en même temps.&lt;/p&gt;
&lt;p&gt;Aujourd’hui, on active tes trois premiers usages utiles, dans l’ordre, avec un fil rouge unique, ne pas te noyer sous les alertes. Ce tuto vise la branche &lt;strong&gt;4.x&lt;/strong&gt; de Wazuh, celle de toute la série SIEM, pas la nouvelle version 5.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;ce-quil-te-faut&quot;&gt;Ce qu’il te faut&lt;/h2&gt;
&lt;p&gt;Rien à installer aujourd’hui, tout est déjà en place. On configure et on lit. Trois prérequis, tous hérités de la série.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ton manager Wazuh opérationnel, celui de l’épisode 2 SIEM.&lt;/li&gt;
&lt;li&gt;Au moins un agent en état &lt;code&gt;Active&lt;/code&gt;, celui de l’épisode 3.&lt;/li&gt;
&lt;li&gt;Ton accès au tableau de bord, verrouillé en Tailnet, comme on l’a laissé.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id=&quot;le-déclic-wazuh-te-montre-il-ne-te-défend-pas&quot;&gt;Le déclic, Wazuh te montre, il ne te défend pas&lt;/h2&gt;
&lt;p&gt;Imagine une caméra de surveillance sans vigile derrière l’écran. Elle filme tout, parfaitement. Elle n’arrête personne. Wazuh, c’est ça, la caméra. Le vigile, c’est toi.&lt;/p&gt;
&lt;p&gt;Et un vigile qui fixe quarante écrans en même temps ne voit plus rien. C’est le piège qui tue les SIEM de PME, pas en six mois, en deux semaines.&lt;/p&gt;
&lt;p&gt;Classique, tu actives tous les modules le premier jour, chacun déverse ses centaines, voire milliers, d’événements, tu ne tunes rien, le signal se perd dans le vacarme, et au bout de quinze jours tu ne regardes même plus le dashboard.&lt;/p&gt;
&lt;p&gt;Là, ton SIEM est mort. Pas planté, pas cassé, juste ignoré. Ce qui revient au même.&lt;/p&gt;
&lt;p&gt;La règle d’or de tout ce qui suit, écris-la sur un post-it.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;N’active aucune règle dont tu ne sais pas quoi faire quand elle se déclenchera.&lt;/strong&gt; Si une alerte tombe et que ta seule réaction possible est de hausser les épaules, cette alerte n’aurait pas dû exister.&lt;/p&gt;
&lt;p&gt;Trois usages, dans cet ordre précis. Chacun répond à une question, et à une seule.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;ce-que-ça-change-ce-que-ça-ne-change-pas&quot;&gt;Ce que ça change, ce que ça ne change pas&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Ce que ça change.&lt;/strong&gt; À la fin, tu ne regardes plus un mur d’alertes indistinct. Tu as trois vues qui t’apportent chacune une réponse claire, tu sais laquelle ouvrir et pourquoi.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ce que ça ne change pas.&lt;/strong&gt; Tu observes, tu ne bloques toujours pas. Décider quelles applications ont le droit de tourner, couper une connexion hostile, ça viendra, c’est un autre étage. Ici, on apprend à regarder juste avant d’apprendre à agir.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;premier-usage-laudit-de-configuration-ta-seule-liste-qui-a-une-fin&quot;&gt;Premier usage, l’audit de configuration, ta seule liste qui a une fin&lt;/h2&gt;
&lt;p&gt;Commence par le &lt;strong&gt;SCA&lt;/strong&gt;, pour &lt;strong&gt;Security Configuration Assessment&lt;/strong&gt;, l’audit de configuration de sécurité. Et commence par lui pour une raison très concrète, c’est le seul module de Wazuh qui produit une liste &lt;strong&gt;finie&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Tous les autres crachent un flux sans fin, des événements qui tombent tant que tes machines tournent. Le SCA, lui, prend une machine, la compare à une politique de durcissement de référence, du type des référentiels CIS, et te rend un résultat borné, un score et une liste de points en échec. Cent quatre-vingts vérifications, une partie sans objet sur ta machine, et sur le reste tu en passes à peu près la moitié d’entrée. L’autre moitié te donne une liste d’échecs, bornée, que tu traites en une heure, sans rien tuner, dès le premier jour.&lt;/p&gt;
&lt;p&gt;Dans le dashboard, ouvre la vue d’audit de configuration de l’un de tes agents, l’onglet &lt;strong&gt;Configuration Assessment&lt;/strong&gt; si ton interface est en anglais. Tu y trouves un score global et le détail des contrôles, chacun avec son verdict, réussi ou échoué, et surtout la remédiation associée, la valeur attendue et comment l’atteindre.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://macsouverain.com/content/images/2026/08/capture-01-configuration-assessment-wazuh-premier-usage-siem-souverain-1.png&quot; alt=&quot;L&amp;#x27;onglet Configuration Assessment de Wazuh sur une machine Ubuntu, le score global de 48 pour cent, la répartition passed, failed, not applicable, et la liste des contrôles CIS avec leur verdict.&quot;&gt;&lt;/p&gt;
&lt;p&gt;Ta seule tâche, la voici.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Trie par contrôles en échec.&lt;/li&gt;
&lt;li&gt;Repère ceux qui comptent vraiment pour toi, un service SSH mal configuré, un compte sans expiration de mot de passe, une permission trop large sur un répertoire système.&lt;/li&gt;
&lt;li&gt;Corrige, relance le scan, regarde ton score grimper.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;C’est gratifiant, et ce n’est pas un hasard si je te le fais faire en premier. Le SCA ne te réveille pas la nuit, il ne t’inonde pas.&lt;/p&gt;
&lt;p&gt;C’est une check-list que tu ouvres, que tu traites, et que tu refermes. Le contraire exact d’une source d’angoisse. Le bon endroit pour prendre confiance avant d’affronter les modules qui, eux, parlent en continu.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;deuxième-usage-la-surveillance-de-fichiers-surveille-peu-pour-entendre-quelque-chose&quot;&gt;Deuxième usage, la surveillance de fichiers, surveille peu pour entendre quelque chose&lt;/h2&gt;
&lt;p&gt;Le &lt;strong&gt;FIM&lt;/strong&gt;, pour &lt;strong&gt;File Integrity Monitoring&lt;/strong&gt;, la surveillance d’intégrité des fichiers. Tu l’as croisé à l’épisode 3, quand on l’a déployé via les groupes. Aujourd’hui, ce n’est pas la mécanique qui compte, c’est la &lt;strong&gt;discipline&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Le réflexe naturel, catastrophique, c’est de vouloir surveiller large. Tout &lt;code&gt;/etc&lt;/code&gt;, tout &lt;code&gt;/usr&lt;/code&gt;, tant qu’à faire tout le disque. Sauf que chaque mise à jour de paquets réécrit des dizaines de fichiers parfaitement légitimes, et le FIM t’alerte à chaque fois. Tu surveilles tout, donc tu entends un vacarme permanent, donc tu n’entends plus rien.&lt;/p&gt;
&lt;p&gt;Fais l’inverse. Choisis trois ou quatre répertoires qui comptent vraiment, tes données clients, ta comptabilité, un partage métier, les configs critiques d’un service exposé. Ceux où un changement que tu n’as pas décidé est, en soi, une nouvelle qui mérite ton attention.&lt;/p&gt;
&lt;p&gt;La configuration, tu la pousses proprement par le groupe, dans le fichier partagé du manager, exactement comme à l’épisode 3.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;xml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;syscheck&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;  &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;directories&lt;/span&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt; check_all&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt;&quot;yes&quot;&lt;/span&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt; realtime&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt;&quot;yes&quot;&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;/srv/donnees-clients&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;directories&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;syscheck&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Le &lt;code&gt;check_all=&quot;yes&quot;&lt;/code&gt; enregistre tout ce qui caractérise un fichier, empreintes, taille, propriétaire, permissions, dates, la moindre altération est vue. Le &lt;code&gt;realtime=&quot;yes&quot;&lt;/code&gt; demande l’alerte à l’instant du changement.&lt;/p&gt;
&lt;p&gt;Une nuance d’honnêteté déjà posée dans la série, ce temps réel n’existe que sur Linux et Windows. Sur macOS, le FIM retombe sur des scans planifiés, une modification entre deux passages n’est vue qu’au passage suivant.&lt;/p&gt;
&lt;p&gt;Le principe à retenir tient en une phrase. &lt;strong&gt;Chaque répertoire surveillé est une promesse de réagir.&lt;/strong&gt; Ne surveille que ce sur quoi tu bougerais vraiment. Le reste, c’est du bruit que tu t’infliges à toi-même.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;À lire : &lt;a href=&quot;https://macsouverain.com/wazuh-agents-parc-siem-souverain/&quot;&gt;Déploie Wazuh partout, le SIEM voit enfin ton réseau&lt;/a&gt;&lt;/em&gt; pour la mécanique complète des groupes et du FIM par agent.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&quot;troisième-usage-la-détection-de-vulnérabilités-linventaire-qui-vieillit-tout-seul&quot;&gt;Troisième usage, la détection de vulnérabilités, l’inventaire qui vieillit tout seul&lt;/h2&gt;
&lt;p&gt;En troisième seulement, la détection de vulnérabilités, l’onglet &lt;strong&gt;Vulnerability Detection&lt;/strong&gt; du dashboard, que les versions récentes ne rangent plus à côté des deux premiers mais dans la section chasse aux menaces. Le principe est élégant, l’agent dresse l’inventaire des paquets installés sur chaque machine, et le manager croise cet inventaire avec un flux de failles connues, les fameuses CVE, pour &lt;strong&gt;Common Vulnerabilities and Exposures&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Le résultat, c’est une liste, par machine, des logiciels dont une version vulnérable est installée chez toi. Puissant. Et pour ça même, à manier en dernier des trois, parce que c’est le module qui déverse le plus. Sur un parc réel, tu vas voir tomber des centaines d’entrées, la plupart en sévérité basse ou moyenne.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://macsouverain.com/content/images/2026/08/capture-02-vulnerability-detection-wazuh-premier-usage-siem-souverain-1.png&quot; alt=&quot;L&amp;#x27;inventaire des vulnérabilités dans Wazuh, filtré sur la seule sévérité critique, chaque ligne une machine, un paquet, sa version et la CVE correspondante, 255 entrées à trier.&quot;&gt;&lt;/p&gt;
&lt;p&gt;Si tu débarques là-dessus sans avoir dompté les deux premiers usages, tu te noies. Alors on trie, on ne lit pas tout.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Filtre par sévérité, concentre-toi sur le critique et le haut.&lt;/li&gt;
&lt;li&gt;Croise avec l’exposition réelle, une faille sur un service accessible depuis le Tailnet n’a pas le même poids qu’une faille sur un paquet jamais lancé, ou accessible depuis le net.&lt;/li&gt;
&lt;li&gt;Traite, patche ou mets à jour, puis laisse le prochain inventaire confirmer que la ligne a disparu.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Le piège ici est sournois. Une liste de vulnérabilités que tu ne tries jamais est &lt;strong&gt;pire que pas de liste du tout&lt;/strong&gt;, parce qu’elle t’installe dans un faux sentiment de sécurité, tu crois savoir, tu ne fais rien. Un inventaire ne vaut que par le tri qui le suit, et par les correctifs qu’il engendre.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;ce-quon-nallume-surtout-pas-encore&quot;&gt;Ce qu’on n’allume surtout pas encore&lt;/h2&gt;
&lt;p&gt;Wazuh embarque d’autres modules, et deux d’entre eux te font de l’œil. Résiste.&lt;/p&gt;
&lt;p&gt;Le &lt;strong&gt;rootcheck&lt;/strong&gt;, la détection de rootkits et d’anomalies système, tourne déjà en tâche de fond par défaut. Ne t’y attarde pas pour autant, tant que les trois premiers usages ne sont pas calmes et lus, ce n’est pas là qu’est ta priorité du moment.&lt;/p&gt;
&lt;p&gt;Et surtout, surtout, la &lt;strong&gt;réponse active&lt;/strong&gt;. Ce module exécute des scripts en réaction à une alerte, bloquer une adresse, tuer un processus, couper une session. Sur le papier, c’est le rêve, le SIEM qui se défend seul. En vrai, branché avant d’avoir tuné tes règles, c’est le meilleur moyen de te &lt;strong&gt;verrouiller toi-même hors de ta propre infrastructure&lt;/strong&gt; sur un faux positif. Il existe bien un garde-fou, une liste blanche d’adresses jamais bloquées où tu mets ton IP d’admin, mais c’est justement le genre de réglage qu’on ne cale bien qu’une fois qu’on maîtrise le reste.&lt;/p&gt;
&lt;p&gt;La réponse active vient en dernier, une fois que tu connais tes règles par cœur et que tu leur fais confiance. Pas avant.&lt;/p&gt;
&lt;p&gt;Tu vois le fil, il n’a pas changé depuis le premier paragraphe. On active dans l’ordre du plus calme au plus bavard, et on n’automatise une réaction que le jour où on sait exactement ce qu’elle va faire.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;les-limites-réelles&quot;&gt;Les limites réelles&lt;/h2&gt;
&lt;p&gt;Wazuh est un excellent outil, souverain, gratuit, sans limite d’agents. Il a aussi des angles morts précis, que tu dois connaître pour ne pas te faire piéger.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Sur Mac, la surveillance de fichiers n’est pas en temps réel.&lt;/strong&gt; On l’a vu plus haut, macOS retombe sur des scans planifiés. Concrètement, sur un parc majoritairement Apple, ne compte jamais sur une alerte à la seconde côté FIM, raisonne en fenêtres de scan et place tes garde-fous temps réel sur tes endpoints Linux et Windows.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Le SCA juge ta machine contre des politiques génériques.&lt;/strong&gt; Certains contrôles ne collent pas à ta configuration réelle et remontent en échec alors que ton choix est délibéré et justifié. Ces faux positifs se trient à la main, une fois, puis se mettent de côté. C’est du travail d’humain, pas un défaut à corriger dans l’outil.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;La détection de vulnérabilités raisonne au niveau du paquet et de sa version.&lt;/strong&gt; Elle peut te signaler une CVE que ta distribution a déjà corrigée par un correctif rétroporté sans changer le numéro de version affiché. Résultat, une alerte pour un trou déjà bouché.&lt;/p&gt;
&lt;p&gt;Croise systématiquement avec les bulletins de sécurité de ta distribution avant de t’affoler sur une ligne critique.&lt;/p&gt;
&lt;p&gt;Aucune de ces limites n’est rédhibitoire. Toutes se gèrent, à condition de les avoir en tête avant, pas après une nuit blanche.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;si-ça-ne-marche-pas&quot;&gt;Si ça ne marche pas&lt;/h2&gt;
&lt;h3 id=&quot;problème-laudit-de-configuration-reste-vide-ou-à-zéro&quot;&gt;Problème, l’audit de configuration reste vide ou à zéro&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Cause probable,&lt;/strong&gt; le module n’est pas actif sur l’agent, ou aucune politique n’est chargée pour ce système.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Solution,&lt;/strong&gt; vérifie que le SCA est activé dans la configuration de l’agent et qu’une politique correspond bien à son système d’exploitation. Relance un scan et laisse-lui le temps de remonter.&lt;/p&gt;
&lt;h3 id=&quot;problème-le-fim-ne-talerte-pas-en-temps-réel-sur-un-mac&quot;&gt;Problème, le FIM ne t’alerte pas en temps réel sur un Mac&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Cause probable, aucune&lt;/strong&gt;. C’est le comportement attendu, le temps réel n’existe pas côté macOS.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Solution,&lt;/strong&gt; rien à réparer. Sur Mac, tu raisonnes en scans périodiques. Si tu veux du temps réel, c’est sur tes endpoints Linux et Windows que ça se joue.&lt;/p&gt;
&lt;h3 id=&quot;problème-la-détection-de-vulnérabilités-naffiche-rien&quot;&gt;Problème, la détection de vulnérabilités n’affiche rien&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Cause probable,&lt;/strong&gt; le module vient d’être activé et son flux de failles n’a pas encore été téléchargé, ou l’inventaire des paquets n’est pas encore remonté.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Solution,&lt;/strong&gt; patiente le temps du premier téléchargement du flux et de la première remontée d’inventaire. Si après un délai raisonnable c’est toujours vide, vérifie que le module est bien activé côté manager.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;pour-les-pressés&quot;&gt;Pour les pressés&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Ce que fait cet article.&lt;/strong&gt; Une fois Wazuh installé et les agents déployés, il te dit quoi faire en premier, sans te noyer. Trois usages dans l’ordre, du plus calme au plus bavard, et deux modules qu’on laisse éteints exprès.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Concrètement, la marche à suivre.&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Ouvre l’audit de configuration d’un agent, trie les contrôles en échec, corrige les quelques-uns qui comptent, relance le scan.&lt;/li&gt;
&lt;li&gt;Restreins la surveillance de fichiers à trois ou quatre répertoires vraiment sensibles, via le groupe, bloc &lt;code&gt;&amp;#x3C;syscheck&gt;&lt;/code&gt; avec &lt;code&gt;check_all=&quot;yes&quot;&lt;/code&gt; et &lt;code&gt;realtime=&quot;yes&quot;&lt;/code&gt; (temps réel sur Linux et Windows seulement, pas macOS).&lt;/li&gt;
&lt;li&gt;Active la détection de vulnérabilités, filtre par sévérité, traite le critique et le haut, ignore le tout-venant.&lt;/li&gt;
&lt;li&gt;Laisse le rootcheck et surtout la réponse active &lt;strong&gt;éteints&lt;/strong&gt; tant que le reste n’est pas calme et maîtrisé.&lt;/li&gt;
&lt;li&gt;Règle d’or, n’active aucune règle dont tu ne sais pas quoi faire quand elle se déclenchera.&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2 id=&quot;en-résumé&quot;&gt;En résumé&lt;/h2&gt;
&lt;p&gt;Ton SIEM était allumé et muet pour toi, il devient lisible. Tu es parti d’un dashboard qui crépitait sans te parler, tu repars avec trois vues qui répondent chacune à une question nette.&lt;/p&gt;
&lt;p&gt;L’audit de configuration t’a donné une liste finie à traiter en une heure. La surveillance de fichiers, restreinte à l’essentiel, ne t’alerte plus que sur ce qui compte. La détection de vulnérabilités te dresse l’inventaire de ce qui doit être patché, à condition que tu le tries. Et deux modules puissants restent au repos, parce qu’on ne les branche qu’une fois le reste dompté.&lt;/p&gt;
&lt;p&gt;La techno n’était pas le dur. Le dur, c’est la retenue. Choisis peu de questions, mais réponds-y vraiment.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;et-après-apprends-à-ton-siem-à-agir&quot;&gt;Et après, apprends à ton SIEM à agir&lt;/h2&gt;
&lt;p&gt;Tu viens d’apprendre à faire parler Wazuh, à lui poser peu de questions et à les écouter vraiment. C’est la moitié du chemin. L’autre moitié, c’est de le faire passer de spectateur à acteur, sans qu’il se retourne contre toi.&lt;/p&gt;
&lt;p&gt;Cet article ouvre la marche. La suite s’écrit un cran à la fois, dans le même esprit, du plus calme au plus engageant.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Épisode 2, écrire tes propres règles.&lt;/strong&gt; Pour qu’il te réveille sur ce qui compte chez toi et se taise sur le reste.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Épisode 3, brancher Santa sur Wazuh.&lt;/strong&gt; Pour que ton SIEM voie non seulement ce qui s’exécute sur tes &lt;a href=&quot;https://macsouverain.com/santa-controle-execution-mac-siem-souverain/&quot;&gt;Mac sous contrôle d’exécution&lt;/a&gt;, mais aussi ce qu’on a bloqué.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Épisode 4, la réponse active.&lt;/strong&gt; Le module qu’on a laissé éteint exprès aujourd’hui, celui qui agit seul, bloque une adresse, coupe une session, et qu’on ne branche qu’une fois qu’on lui fait vraiment confiance.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Épisode 5, la conformité SCA vers NIS2.&lt;/strong&gt; Transformer l’audit de configuration en rapport de conformité présentable à un auditeur.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Et pour l’ajustement fin, calibrer les seuils, régler les notifications pour n’être réveillé que quand ça compte vraiment, la série a son chapitre dédié.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;À lire : &lt;a href=&quot;https://macsouverain.com/alerting-cout-total-siem-souverain/&quot;&gt;Alerting et coût total, le bilan de ton SIEM souverain&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&quot;rappel-de-la-série&quot;&gt;Rappel de la série&lt;/h2&gt;
&lt;p&gt;Cet article ouvre la suite de la série SIEM souverain, celle où on apprend à ton SIEM à lire puis à agir. Si tu débarques, rattrape d’abord les épisodes qui précèdent.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://macsouverain.com/nis2-splunk-pourquoi-pme-siem-souverain/&quot;&gt;Épisode 0, le fondement.&lt;/a&gt;&lt;/strong&gt; Pourquoi une PME a besoin d’un SIEM souverain, NIS2, RGPD, et le coût du statu quo.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://macsouverain.com/vps-durci-socle-siem-souverain/&quot;&gt;Épisode 1, le socle.&lt;/a&gt;&lt;/strong&gt; Le VPS durci hors CLOUD Act.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://macsouverain.com/wazuh-tout-en-un-siem-souverain/&quot;&gt;Épisode 2, Wazuh en tout-en-un.&lt;/a&gt;&lt;/strong&gt; Manager, indexeur et tableau de bord sur un seul nœud.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://macsouverain.com/wazuh-agents-parc-siem-souverain/&quot;&gt;Épisode 3, les agents partout.&lt;/a&gt;&lt;/strong&gt; Déploiement sur tes serveurs, Mac et Windows.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://macsouverain.com/crowdsec-premiere-ligne-siem-souverain/&quot;&gt;Épisode 4, la défense réseau.&lt;/a&gt;&lt;/strong&gt; Bloquer les attaquants connus avant qu’ils n’arrivent.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://macsouverain.com/rspamd-mail-siem-souverain/&quot;&gt;Épisode 5, le filtre mail.&lt;/a&gt;&lt;/strong&gt; Anti-spam et anti-hameçonnage devant ta messagerie.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://macsouverain.com/santa-controle-execution-mac-siem-souverain/&quot;&gt;Épisode 6, le contrôle d’exécution sur les Mac.&lt;/a&gt;&lt;/strong&gt; Décider quelles applications ont le droit de démarrer.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://macsouverain.com/alerting-cout-total-siem-souverain/&quot;&gt;Épisode 7, alerting et coût total.&lt;/a&gt;&lt;/strong&gt; Notifications calibrées et bilan financier honnête face au SaaS.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;Des termes techniques ? &lt;a href=&quot;https://macsouverain.com/glossaire&quot;&gt;Consulte le glossaire.&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;</content:encoded><dc:creator>Mac Souverain</dc:creator><category>ms-pro</category><category>nis2</category><category>siem</category><category>wazuh</category><category>securite</category><category>tutoriel</category><enclosure url="https://macsouverain.com/content/images/2026/07/feature-wazuh-premier-usage-siem-souverain-1.png" length="0" type="image/png"/></item><item><title>Mac et Tailscale, ton réseau privé wireguard en 15 min chrono</title><link>https://macsouverain.com/tailscale-multi-mac/</link><guid isPermaLink="true">https://macsouverain.com/tailscale-multi-mac/</guid><description>Monte un réseau privé chiffré entre tous tes Macs en 15 minutes, sans ouvrir un port ni toucher au routeur. Installation, MagicDNS, accès aux fichiers à distance, accès à tes services sans les exposer, les vraies limites.</description><pubDate>Sat, 01 Aug 2026 07:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Tu as plus d’un Mac. Un fixe à la maison, un portable qui bouge, peut-être un vieux Mac recyclé en serveur de fichiers, ou encore un Mac mini dédié pour un LLM souverain &lt;em&gt;(&lt;a href=&quot;https://macsouverain.com/ton-ia-peut-etre-eteinte-monte-la-tienne/&quot;&gt;lire l’article&lt;/a&gt;)&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Ce LLM, tu veux pouvoir l’interroger où que tu sois, et quel que soit le Mac sur lequel tu te trouves.&lt;/p&gt;
&lt;p&gt;Et tes dossiers, idem. Parce que pour le moment, sans iCloud, à chaque fois que tu veux passer un dossier de l’un à l’autre, c’est la même comédie : AirDrop qui fait la sourde oreille, une clé USB qu’on ne retrouve pas, ou un partage réseau qui marchait la semaine dernière et plus aujourd’hui.&lt;/p&gt;
&lt;p&gt;Il existe une façon propre de régler ça une fois pour toutes. Tu mets toutes tes machines sur un même réseau privé, un mesh, chiffré de bout en bout par un protocole béton, le WireGuard, où chaque Mac peut joindre les autres directement, qu’ils soient dans la même pièce, à l’autre bout du pays ou sur un autre continent.&lt;/p&gt;
&lt;p&gt;Le tout en un quart d’heure, &lt;strong&gt;sans ouvrir un seul port, sans toucher aux réglages de ta box et sans terminal&lt;/strong&gt;. Avoue, t’es bluffé, non ?&lt;/p&gt;
&lt;p&gt;Cet outil s’appelle Tailscale, et voici comment on monte le réseau.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;un-mesh-vpn-cest-quoi-au-juste&quot;&gt;Un mesh VPN, c’est quoi au juste&lt;/h2&gt;
&lt;p&gt;Le mot VPN, tu le connais déjà. Un VPN classique, c’est un tunnel : ton Mac se connecte à un serveur distant, et tout ton trafic passe par ce serveur. C’est parfait pour cacher ta navigation ou débloquer un catalogue à l’étranger. Mais ça ne relie pas tes machines entre elles.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;À lire : &lt;a href=&quot;https://macsouverain.com/pourquoi-tu-as-besoin-dun-vpn/&quot;&gt;Pourquoi tu as besoin d’un VPN et comment le choisir&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Un mesh VPN, c’est l’idée inverse. Au lieu de tout faire transiter par un serveur central, &lt;strong&gt;chaque machine parle directement à chaque autre&lt;/strong&gt;, en ligne droite, dans un tunnel chiffré individuel. Tes cinq Macs forment une toile où chacun est relié à tous les autres. C’est de là que vient le mot mesh, le maillage.&lt;/p&gt;
&lt;p&gt;Concrètement, c’est comme si tes machines étaient toutes branchées sur le même switch réseau, dans la même pièce, avec des câbles invisibles et chiffrés. Sauf qu’elles peuvent être chez toi, à l’autre bout du pays et dans un placard à la cave (faut un câble quand même hein !), ça marche pareil.&lt;/p&gt;
&lt;p&gt;Sous le capot, Tailscale s’appuie sur &lt;a href=&quot;https://www.wireguard.com&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;WireGuard&lt;/a&gt;, un protocole de tunnel chiffré moderne, assez compact pour être audité de fond en comble et intégré directement &lt;strong&gt;au cœur de Linux. Mullvad, Proton VPN&lt;/strong&gt; et pas mal d’autres l’ont adopté, &lt;strong&gt;ce n’est pas un gadget maison&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Tu n’as pas à le configurer, Tailscale s’en charge. Ton boulot à toi, c’est de cliquer sur « Se connecter » sur chaque machine. Le sale travail réseau, la traversée des box et des pare-feux, c’est lui qui l’encaisse.&lt;/p&gt;
&lt;p&gt;Une chose à poser tout de suite : les applications Tailscale qui vont tourner sur tes machines sont open source et auditées. En revanche, le service se pilote depuis une console web tenue par la société Tailscale, sous juridiction US. On y reviendra en toute fin d’article, parce que ça a son importance pour la suite de la série.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;ce-quil-te-faut&quot;&gt;Ce qu’il te faut&lt;/h2&gt;
&lt;p&gt;Trois choses, et tu les as sans doute déjà.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Au moins deux machines.&lt;/strong&gt; Deux Macs, ou un Mac et un iPhone, ou dix appareils, peu importe. Le principe est le même à partir de deux.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Un compte pour t’identifier.&lt;/strong&gt; L’inscription à Tailscale passe par un fournisseur d’identité existant, Apple, Google, GitHub ou Microsoft. Pour rester dans l’esprit maison, tu peux tout à fait choisir « Se connecter avec Apple ». Pas de nouveau mot de passe à retenir.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Un quart d’heure.&lt;/strong&gt; La majeure partie sera passée à regarder deux téléchargements se terminer. Le reste, c’est des clics.&lt;/p&gt;
&lt;p&gt;Note au passage : ce guide parle de Mac, mais l’app existe aussi sur iPhone et iPad. Une fois le réseau monté, ajouter ton téléphone à la même toile prend trente secondes. Pratique pour la famille.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;installer-tailscale-sur-ton-premier-mac&quot;&gt;Installer Tailscale sur ton premier Mac&lt;/h2&gt;
&lt;p&gt;Commence par la machine devant laquelle tu es assis.&lt;/p&gt;
&lt;p&gt;Tu as deux façons de récupérer l’app. La plus simple, l’&lt;strong&gt;App Store&lt;/strong&gt; : cherche « Tailscale », installe, comme n’importe quelle app. La seconde, le &lt;strong&gt;site officiel&lt;/strong&gt;, qui te donne une version un peu plus complète côté fonctions avancées. Pour un premier réseau entre tes Macs, la version App Store suffit largement. On notera la différence plus bas, quand elle comptera.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://macsouverain.com/content/images/2026/07/01-appstore-tailscale.png&quot; alt=&quot;La fiche Tailscale sur le Mac App Store, prête à installer d&amp;#x27;un clic.&quot;&gt;&lt;/p&gt;
&lt;p&gt;Une fois l’app installée, lance-la. Elle se loge dans la barre de menus, en haut à droite de ton écran, à côté de l’horloge. Clique sur son icône, puis sur « Log in ». Ton navigateur s’ouvre sur la page de connexion Tailscale. Tu choisis ton fournisseur d’identité, tu valides, et c’est fait.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://macsouverain.com/content/images/2026/07/02-menubar-tailscale.png&quot; alt=&quot;Le menu Tailscale dans la barre de menus, ton réseau connecté et tes machines à portée de clic.&quot;&gt;&lt;/p&gt;
&lt;p&gt;De retour dans la barre de menus, l’icône Tailscale s’anime puis se stabilise. Ta première machine vient de rejoindre son réseau privé, que Tailscale appelle un &lt;strong&gt;tailnet&lt;/strong&gt;. Pour l’instant, elle est toute seule dessus. On va lui trouver de la compagnie.&lt;/p&gt;
&lt;p&gt;Si tu préfères tout piloter au clavier, l’app existe aussi via &lt;a href=&quot;https://brew.sh&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Homebrew&lt;/a&gt; avec &lt;code&gt;brew install tailscale&lt;/code&gt;. Mais pour un premier montage, l’app graphique est plus parlante. Reste sur elle.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;ajouter-les-autres-macs-au-tailnet&quot;&gt;Ajouter les autres Macs au tailnet&lt;/h2&gt;
&lt;p&gt;Répète l’opération sur ta deuxième machine.&lt;/p&gt;
&lt;p&gt;Installe l’app, lance-la, connecte-toi. Point crucial : connecte-toi avec &lt;strong&gt;le même compte&lt;/strong&gt; que sur le premier Mac. C’est ce compte qui définit ton tailnet. Deux machines connectées avec le même identifiant se retrouvent automatiquement sur le même réseau, et se voient l’une l’autre. Rien d’autre à configurer.&lt;/p&gt;
&lt;p&gt;Recommence pour chaque Mac que tu veux ajouter. Le Mac du salon, le portable, le vieux serveur dans le placard. Chacun rejoint la toile dès qu’il se connecte avec ton compte.&lt;/p&gt;
&lt;p&gt;Pour vérifier que tout ce petit monde s’est bien réuni, ouvre la &lt;strong&gt;console d’administration&lt;/strong&gt; sur Tailscale. Tu y trouves la liste de toutes tes machines, avec leur nom, leur adresse sur le tailnet, et un point vert quand elles sont en ligne. C’est ton tableau de bord. C’est aussi là que tu virerais un appareil que tu ne reconnais pas, en un clic.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://macsouverain.com/content/images/2026/07/03-console-admin.png&quot; alt=&quot;La console d&amp;#x27;administration Tailscale, toutes tes machines réunies avec leur nom et leur point vert quand elles sont en ligne.&quot;&gt;&lt;/p&gt;
&lt;p&gt;À ce stade, tes Macs sont sur le même réseau privé chiffré. Techniquement, tu pourrais déjà les joindre par leur adresse. Sauf que retenir des adresses réseau par cœur, personne n’a envie de le faire. On va régler ça.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;magicdns-appeler-tes-macs-par-leur-nom&quot;&gt;MagicDNS, appeler tes Macs par leur nom&lt;/h2&gt;
&lt;p&gt;Voici le réglage qui transforme le confort d’usage.&lt;/p&gt;
&lt;p&gt;Par défaut, chaque machine du tailnet a une adresse numérique. Fonctionnel, mais illisible. &lt;strong&gt;MagicDNS&lt;/strong&gt; remplace ces numéros par les noms de tes machines. Ton MacBook s’appelle &lt;code&gt;mack-macbook&lt;/code&gt; ? Tu le joins en tapant &lt;code&gt;mack-macbook&lt;/code&gt;, tout simplement. Ton serveur du placard s’appelle &lt;code&gt;mack-mini&lt;/code&gt; ? Pareil.&lt;/p&gt;
&lt;p&gt;Bonne nouvelle, sur un tailnet monté aujourd’hui, MagicDNS est déjà activé par défaut. Tu n’as rien à faire, sinon jeter un œil dans la console d’administration, onglet &lt;strong&gt;DNS&lt;/strong&gt;, pour confirmer qu’il est bien vert. Chaque machine du tailnet est joignable par son nom, depuis n’importe quelle autre, où qu’elle soit.&lt;/p&gt;
&lt;p&gt;Le nom de chaque machine est repris de son nom système, ce qui donne parfois des noms à rallonge, du genre &lt;code&gt;mack-macbook-de-prenom&lt;/code&gt;. Tu peux le raccourcir. Dans la console, clique sur une machine, puis sur son nom. Coupe l’interrupteur &lt;strong&gt;Auto-generate from OS hostname&lt;/strong&gt;, tape le nom court que tu veux, et valide. C’est ce nom-là qui te servira à la joindre partout.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://macsouverain.com/content/images/2026/07/04-magicdns-nom.png&quot; alt=&quot;Le dialogue de renommage d&amp;#x27;une machine dans la console Tailscale, l&amp;#x27;auto-génération coupée pour saisir un nom court, réutilisé tel quel par MagicDNS.&quot;&gt;&lt;/p&gt;
&lt;p&gt;Cette résolution de noms reste strictement interne à ton tailnet. Personne d’autre que toi ne peut deviner ni joindre &lt;code&gt;mack-mini&lt;/code&gt;. C’est un annuaire privé, qui n’existe que pour tes machines.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;le-cas-concret-accéder-aux-fichiers-du-mac-resté-à-la-maison&quot;&gt;Le cas concret, accéder aux fichiers du Mac resté à la maison&lt;/h2&gt;
&lt;p&gt;Assez de théorie. Voici l’usage qui justifie à lui seul les quinze minutes.&lt;/p&gt;
&lt;p&gt;Tu es en déplacement avec ton portable. Le fichier dont tu as besoin est resté sur le Mac de la maison. Tu me diras, iCloud fait déjà ça. Sauf qu’iCloud, ça veut dire copier tes fichiers sur les serveurs d’Apple et ne retrouver que ce que tu y as poussé. Avec Tailscale, tu ouvres le disque du Mac distant en entier, tel quel, comme s’il était branché en USB. &lt;strong&gt;Rien ne monte dans un cloud, rien ne quitte tes machines&lt;/strong&gt;, et tu pioches le fichier depuis ton canapé d’hôtel.&lt;/p&gt;
&lt;p&gt;D’abord, sur le Mac de la maison, active le partage de fichiers. Réglages Système, &lt;strong&gt;Général&lt;/strong&gt;, &lt;strong&gt;Partage&lt;/strong&gt;, puis active &lt;strong&gt;Partage de fichiers&lt;/strong&gt;. Tu ne touches à rien d’autre. Surtout pas au routeur, surtout pas à une redirection de port. Le partage écoute, Tailscale s’occupe du chemin.&lt;/p&gt;
&lt;p&gt;Ensuite, depuis ton portable, ouvre le Finder. Menu &lt;strong&gt;Aller&lt;/strong&gt;, &lt;strong&gt;Se connecter au serveur&lt;/strong&gt;, ou le raccourci Cmd+K. Tu tapes &lt;code&gt;smb://&lt;/code&gt; suivi du nom MagicDNS de la machine, par exemple &lt;code&gt;smb://mac-maison&lt;/code&gt;. Tu valides, tu entres ton identifiant du Mac distant, et son disque s’ouvre dans une fenêtre Finder. Tu glisses ton fichier, exactement comme s’il était en local.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://macsouverain.com/content/images/2026/07/05-finder-smb.png&quot; alt=&quot;La fenêtre Se connecter au serveur du Finder, l&amp;#x27;adresse smb:// suivie du nom MagicDNS de la machine.&quot;&gt;&lt;/p&gt;
&lt;p&gt;Même logique pour prendre la main sur l’écran d’un autre Mac. Sur le Mac distant, active d’abord le &lt;strong&gt;Partage d’écran&lt;/strong&gt; : Réglages Système, &lt;strong&gt;Général&lt;/strong&gt;, &lt;strong&gt;Partage&lt;/strong&gt;, &lt;strong&gt;Partage d’écran&lt;/strong&gt;. Ensuite, dans la même fenêtre « Se connecter au serveur », tape &lt;code&gt;vnc://&lt;/code&gt; suivi du nom de la machine, et tu contrôles son bureau à distance. Le Mac de tes parents qui rame ? Tu le dépannes depuis chez toi, sans TeamViewer et sans qu’un tiers voie passer la session.&lt;/p&gt;
&lt;p&gt;Tout ce trafic circule dans le tunnel chiffré. Rien ne transite par un serveur qui traîne quelque part. C’est ton Mac, ton portable, et une ligne droite chiffrée entre les deux.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;le-vrai-gain-ne-plus-rien-exposer&quot;&gt;Le vrai gain, ne plus rien exposer&lt;/h2&gt;
&lt;p&gt;Le transfert de fichiers, c’est l’exemple qui parle tout de suite. Mais le meilleur du mesh, c’est ce que tu arrêtes de faire : ouvrir des portes sur Internet.&lt;/p&gt;
&lt;p&gt;Avant, pour joindre ton NAS ou ton Mac depuis l’extérieur, il fallait bricoler une redirection de port sur ta box. Autrement dit, planter une porte sur l’Internet public, avec ton adresse écrite dessus. Et cette porte, elle est scannée en boucle, jour et nuit, par des robots qui testent les mots de passe à la chaîne.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Avec Tailscale, il n’y a plus de porte du tout&lt;/strong&gt;. Tes services écoutent uniquement sur le tailnet, invisibles du reste du monde. Quelqu’un qui scanne ton adresse publique ne voit rien, parce qu’il n’y a rien à voir.&lt;/p&gt;
&lt;p&gt;Ça change ce que tu peux te permettre d’héberger chez toi. Un NAS Synology, un Home Assistant, l’admin d’un petit serveur, un site que tu bricoles le week-end : tu les joins par leur nom depuis n’importe où, et ils restent injoignables pour tout le reste du monde.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Tu profites de tes machines à distance sans jamais les mettre en vitrine.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Même les réseaux pourris deviennent inoffensifs. Le WiFi d’un café, d’un aéroport, d’un hôtel, ces endroits où n’importe qui peut renifler ce qui passe. Ton lien vers tes machines reste dans le tunnel chiffré, sur un réseau hostile comme ailleurs.&lt;/p&gt;
&lt;p&gt;Ce que tu échanges avec ton tailnet ne fuit pas. Et le jour où un appareil se perd ou se fait voler, tu ouvres la console, un clic, tu le révoques. Il perd l’accès au réseau sur-le-champ, avant même que tu aies fini de paniquer.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;sortir-autrement-exit-node-et-dns-no-log&quot;&gt;Sortir autrement, exit node et DNS no-log&lt;/h2&gt;
&lt;p&gt;Deux réglages valent le détour si la souveraineté te titille.&lt;/p&gt;
&lt;p&gt;Le premier, l’&lt;strong&gt;exit node&lt;/strong&gt; : en l’activant sur une machine, tu fais passer tout le trafic Internet d’un autre appareil par elle. Router ton portable en voyage à travers ton Mac resté à la maison, par exemple, pour naviguer comme si tu y étais.&lt;/p&gt;
&lt;p&gt;Le second, dans l’onglet &lt;strong&gt;DNS&lt;/strong&gt; de la console : tu imposes à tout ton tailnet un résolveur qui ne journalise rien, comme &lt;a href=&quot;https://www.quad9.net&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Quad9&lt;/a&gt;, et tu coupes d’un geste ceux de ton FAI. Tes machines demandent qui est qui à un service no-log, plus à ton opérateur.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://macsouverain.com/content/images/2026/07/06-dns-quad9.png&quot; alt=&quot;L&amp;#x27;onglet DNS de la console, un résolveur no-log Quad9 imposé à tout le tailnet en surchargeant ceux du FAI.&quot;&gt;&lt;/p&gt;
&lt;p&gt;Un piège à connaître : ce réglage peut être court-circuité en douce. Si ta box distribue son propre résolveur en IPv6, macOS a tendance à le préférer, et tes requêtes repartent vers ton FAI sans rien te dire.&lt;/p&gt;
&lt;p&gt;Le réflexe, une fois ton DNS no-log posé : file sur &lt;a href=&quot;https://ipleak.net&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;ipleak.net&lt;/a&gt; et vérifie qu’aucun résolveur de ton opérateur ne dépasse. S’il en sort un, coupe l’IPv6 sur ta box, ou déclare aussi ton résolveur en v6. Sinon, tu crois être chez Quad9 alors que tu es toujours chez ton FAI.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;les-limites-à-savoir-avant-de-te-lancer&quot;&gt;Les limites, à savoir avant de te lancer&lt;/h2&gt;
&lt;p&gt;Tailscale fait le job remarquablement bien, mais il y a des bornes réelles. Autant les connaître.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Le plan gratuit est généreux, pas illimité.&lt;/strong&gt; Le plan Personal couvre largement un particulier ou une famille : jusqu’à 6 utilisateurs, avec un nombre illimité d’appareils personnels. Tant que tu montes ton propre réseau pour tes machines, tu ne verras jamais le mur.&lt;/p&gt;
&lt;p&gt;Ce n’est que si tu veux partager ton tailnet avec toute une tribu, au-delà de six personnes, que tu bascules sur un plan payant. Autre borne du gratuit : il est réservé à l’usage perso. Pour faire tourner une boîte dessus, c’est plan payant.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ce n’est pas un VPN d’anonymat, du moins pas par défaut.&lt;/strong&gt; Tailscale chiffre le trafic entre tes machines, mais il ne masque pas ta navigation vers le reste du web.&lt;/p&gt;
&lt;p&gt;L’exit node fait sortir ton trafic par une autre machine. Le piège : si cette machine, ton Mac de la maison par exemple, n’a pas de VPN elle-même, ton trafic ressort au grand jour depuis son adresse. Tu sors « depuis chez toi », pas anonymement.&lt;/p&gt;
&lt;p&gt;La vraie réponse, c’est l’option &lt;a href=&quot;https://tailscale.com/mullvad&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Mullvad&lt;/a&gt; intégrée à Tailscale : 5 dollars par mois pour cinq appareils, et tu utilises les serveurs Mullvad comme exit nodes, no-log, dans une cinquantaine de pays, sans quitter l’app ni créer de compte à part.&lt;/p&gt;
&lt;p&gt;Pourquoi l’add-on plutôt que lancer l’app Mullvad ou Proton VPN à côté ? Parce qu’un VPN classique qui prend la main sur tout ton trafic entre en conflit avec Tailscale et peut carrément couper ton tailnet. L’add-on, lui, cohabite proprement. C’est pour ça que je tourne avec sur mon réseau.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;La version App Store est un peu bridée.&lt;/strong&gt; Pour rester dans le bac à sable d’Apple, la version App Store met de côté quelques fonctions annexes : elle ne sait pas lancer la commande &lt;code&gt;tailscale ssh&lt;/code&gt; (il faut passer par le &lt;code&gt;ssh&lt;/code&gt; classique), et perd la compatibilité Temps d’écran ainsi que les rapports de configuration complets. L’exit node, lui, fonctionne à l’identique dans les deux versions. Si un jour tu veux ces fonctions, désinstalle et reprends la version du site officiel. Pour le réseau de fichiers décrit ici, aucune différence.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;L’identité passe par un tiers.&lt;/strong&gt; Pas de compte email plus mot de passe maison : tu t’identifies via Apple, Google, GitHub ou Microsoft. C’est plus sûr techniquement, mais ça veut dire qu’un fournisseur externe est dans la boucle de connexion. Choisir Apple limite la casse si ce point te chatouille. Une nuance quand même, Tailscale propose aussi l’option OIDC, brancher ton propre fournisseur d’identité. C’est le fil qu’on tire dans le prochain article.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;et-après-couper-le-cordon-du-coordinateur&quot;&gt;Et après, couper le cordon du coordinateur&lt;/h2&gt;
&lt;p&gt;Ton réseau tourne. En quinze minutes, tu as fait ce qui aurait demandé une soirée de config réseau il y a cinq ans.&lt;/p&gt;
&lt;p&gt;Reste un détail qui va te turlupiner si tu tiens à ta souveraineté. Le petit serveur qui orchestre tout ça, celui qui présente tes machines les unes aux autres, il est tenu par une société américaine, donc soumis au droit américain, CLOUD Act compris. Washington peut donc lui réclamer ce qu’il détient sur toi, même stocké hors des États-Unis.&lt;/p&gt;
&lt;p&gt;La bonne nouvelle, tes fichiers ne fuitent pas par là, le contenu circule chiffré, en direct d’une machine à l’autre, le coordinateur n’a pas les clés. La moins bonne, il voit tout le reste : la liste de tes appareils, leurs noms, qui se connecte à qui et quand. &lt;strong&gt;La carte de ton réseau, en somme.&lt;/strong&gt; Un maillon que tu ne contrôles pas.&lt;/p&gt;
&lt;p&gt;Dans le prochain article de la série, on remplace ce maillon par le tien. On monte ton propre serveur de contrôle avec Headscale, la ré-implémentation open source du coordinateur, et là, tout le réseau t’appartient de bout en bout. Une étape de plus vers la maison souveraine.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;À lire bientôt : Tailscale souverain, ton propre coordinateur avec Headscale&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;À lire : &lt;a href=&quot;https://macsouverain.com/quest-ce-que-la-souverainete-digitale-en-pratique/&quot;&gt;Qu’est-ce que la souveraineté digitale en pratique&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;em&gt;Des termes techniques dans cet article ? &lt;a href=&quot;https://macsouverain.com/glossaire&quot;&gt;Consulte le glossaire.&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;</content:encoded><dc:creator>Mac Souverain</dc:creator><category>tutoriels</category><category>tailscale</category><category>reseau</category><category>vpn</category><category>mesh</category><category>macos</category><enclosure url="https://macsouverain.com/content/images/2026/07/feature-tailscale-multi-mac-1.png" length="0" type="image/png"/></item><item><title>La fausse mise à jour Zoom qui vide ton trousseau iCloud</title><link>https://macsouverain.com/radar-bluenoroff-zoom-sdk-update-macos/</link><guid isPermaLink="true">https://macsouverain.com/radar-bluenoroff-zoom-sdk-update-macos/</guid><description>Un contact Telegram de confiance t&apos;invite en visio, une fausse mise à jour Zoom surgit en plein appel, et ton trousseau iCloud se vide.</description><pubDate>Tue, 28 Jul 2026 09:15:00 GMT</pubDate><content:encoded>&lt;div class=&quot;radar-summary&quot;&gt;
&lt;p&gt;Un contact que tu connais t&apos;invite en visio sur Telegram, sauf que son compte est détourné. Pendant l&apos;appel, une fausse mise à jour « Zoom SDK Update » surgit, tu cliques pour réparer ton micro, et **un stealer siphonne les clés de ton navigateur** depuis ton trousseau iCloud. BlueNoroff, Corée du Nord, zéro faille exploitée, 100% ingénierie sociale. C&apos;est le troisième ClickFix sur macOS en six semaines.&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;&lt;strong&gt;Ce que tu dois faire&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; Une invite d&apos;installation en pleine réunion, tu refuses. Aucune visio ne te livre de « SDK Update » en cours d&apos;appel.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2.&lt;/strong&gt; Un lien de réunion, même d&apos;un contact réel, vérifie-le par un autre canal. Le compte Telegram d&apos;en face est peut-être compromis.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3.&lt;/strong&gt; Un pare-feu sortant, Little Snitch ou LuLu, voit partir l&apos;exfil vers Telegram quand le stealer vide ton trousseau.&lt;/p&gt;
&lt;/div&gt;
&lt;h2 id=&quot;ce-qui-se-passe-vraiment-en-pleine-visio&quot;&gt;Ce qui se passe vraiment en pleine visio&lt;/h2&gt;
&lt;br&gt;
&lt;p&gt;BlueNoroff, la bannière nord-coréenne qui vise les professionnels de la crypto, n’exploite aucune faille. &lt;strong&gt;Zéro exploit, zéro CVE.&lt;/strong&gt; Juste de l’ingénierie sociale, montée en chaîne industrielle. La recherche est signée JUMPSEC, le cluster « ClickFake Interview » est suivi par Sekoia, et The Hacker News a relayé le 24 juillet 2026.&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;Le déroulé. Un contact que tu as rencontré en personne t’écrit sur Telegram, &lt;strong&gt;sauf que son compte est détourné.&lt;/strong&gt; Il t’envoie un lien Calendly à son nom, qui te redirige vers un domaine Zoom ou Teams typosquatté, &lt;code&gt;us.zoom.06webin.us&lt;/code&gt;. Tu saisis ton nom, tu autorises la caméra, et le kit se met au travail dans ton dos. Il capte ton flux vidéo via mediasoup WebRTC et profile les extensions de portefeuille crypto installées dans ton navigateur. Puis un faux message, « ton micro ne marche pas », suivi d’une invite « Zoom SDK Update ». Tu cliques pour réparer ton micro, tu installes la charge.&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;Sur macOS, &lt;strong&gt;le reste se déroule sans toi.&lt;/strong&gt; Un script shell télécharge un faux installeur Teams ou Zoom, un stealer en extrait les clés maîtresses de Chrome depuis le trousseau local de ta session macOS, là où Chrome range sa clé de chiffrement, celles qui déverrouillent &lt;strong&gt;tes extensions de portefeuille crypto&lt;/strong&gt;, et exfiltre le tout via un canal Telegram baptisé « Aurora », avant de déposer d’autres charges. Côté Windows, la variante désactive Defender via un loader PowerShell et fouille les sessions Telegram dans Chrome, Edge, Brave et Firefox. Même acteur, deux chaînes.&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;Deux détails changent l’échelle. Les visios sont truquées par deepfake, des visages générés par IA plaqués sur du langage corporel réel, capté sur les victimes précédentes. Et &lt;strong&gt;le mécanisme s’auto-propage&lt;/strong&gt;, chaque compte Telegram compromis devient l’expéditeur de confiance du suivant. &lt;strong&gt;Cinq versions du kit&lt;/strong&gt; ont été repérées entre le 31 mai et le 14 juillet 2026, l’opérateur est relié au bot Telegram &lt;code&gt;@alchemy_john_mac&lt;/code&gt;. Ce n’est pas un coup isolé, c’est une usine qui itère.&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;La technique porte un nom, ClickFix, et elle traîne déjà une série de victimes derrière elle.&lt;/p&gt;
&lt;br&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;À lire : &lt;a href=&quot;https://macsouverain.com/radar-clickfix-script-editor-avril-2026/&quot;&gt;ClickFix, le faux correctif qui te fait lancer le malware toi-même&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;br&gt;
&lt;h2 id=&quot;le-troisième-clickfix-sur-macos-en-six-semaines&quot;&gt;Le troisième ClickFix sur macOS en six semaines&lt;/h2&gt;
&lt;br&gt;
&lt;p&gt;Fais le compte. CrashStealer en juillet, ClickLock avant lui, maintenant BlueNoroff. &lt;strong&gt;Trois fois en six semaines&lt;/strong&gt; que le même schéma frappe macOS, un geste anodin qui déclenche l’installation. Le vecteur s’industrialise, et cette version &lt;strong&gt;vise directement ton trousseau&lt;/strong&gt;, là où macOS range les clés de ton navigateur.&lt;/p&gt;
&lt;br&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;À lire : &lt;a href=&quot;https://macsouverain.com/radar-crashstealer-notarise-apple-gatekeeper/&quot;&gt;Un malware notarisé Apple passe Gatekeeper&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;br&gt;
&lt;p&gt;Ce qui te protège ici, ce n’est ni l’antivirus ni la notarisation. C’est une règle de comportement, simple et absolue, &lt;strong&gt;ne jamais installer un binaire qu’on te propose en cours de réunion&lt;/strong&gt;. Zoom ne te livre pas de « SDK Update » en plein appel. Teams non plus. Une mise à jour qui surgit pendant une visio &lt;strong&gt;n’est pas une mise à jour, c’est la charge.&lt;/strong&gt;&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;Il y a un angle stack, à condition d’être honnête sur sa portée. Proton Meet est chiffré de bout en bout et tourne dans ton navigateur, sans client natif à installer. Le prétexte « installe cette mise à jour SDK » n’a donc nulle part où s’accrocher, il n’y a pas d’app à mettre à jour. Ça réduit la surface d’attaque, ça ne remplace pas la règle de comportement. &lt;strong&gt;Passer à Proton Meet ne te protège pas de ce phishing&lt;/strong&gt;, l’ingénierie sociale ne dépend d’aucun outil.&lt;/p&gt;
&lt;br&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;À lire : &lt;a href=&quot;https://macsouverain.com/proton-meet-visio-chiffree/&quot;&gt;Proton Meet, la visio chiffrée qui tourne dans le navigateur&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;br&gt;
&lt;p&gt;Le point qui doit t’inquiéter, c’est l’expéditeur. Ce n’est pas un inconnu, c’est quelqu’un &lt;strong&gt;dont tu as serré la main&lt;/strong&gt;. &lt;strong&gt;La confiance interpersonnelle est le vecteur, pas ta crédulité.&lt;/strong&gt; Un compte Telegram authentique, un nom que tu reconnais, un lien de réunion, il n’en faut pas plus.&lt;/p&gt;
&lt;br&gt;
&lt;h2 id=&quot;ce-que-tu-fais-maintenant&quot;&gt;Ce que tu fais maintenant&lt;/h2&gt;
&lt;br&gt;
&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; Une invite d’installation qui apparaît pendant une réunion, &lt;strong&gt;tu refuses, sans exception&lt;/strong&gt;. Zoom, Teams, aucune visio ne te demande d’installer un « SDK Update » ni de réparer ton micro par un téléchargement. Tu quittes l’appel, tu ne cliques rien.&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;&lt;strong&gt;2.&lt;/strong&gt; Un lien de réunion, même envoyé par un contact réel, &lt;strong&gt;tu le vérifies par un autre canal&lt;/strong&gt; avant de cliquer. Un appel voix, un message Signal, « c’est bien toi qui m’as envoyé ce Calendly ? ». Le compte Telegram d’en face est peut-être déjà détourné.&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;&lt;strong&gt;3.&lt;/strong&gt; Regarde l’URL avant d’autoriser ta caméra. &lt;code&gt;us.zoom.06webin.us&lt;/code&gt; n’est pas un domaine Zoom, &lt;strong&gt;c’est du typosquat&lt;/strong&gt;. Le vrai Zoom, c’est &lt;code&gt;zoom.us&lt;/code&gt;. Un sous-domaine à rallonge greffé sur un nom inconnu, tu fermes l’onglet.&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;&lt;strong&gt;4.&lt;/strong&gt; &lt;strong&gt;Installe un pare-feu sortant&lt;/strong&gt; et laisse-le parler. Little Snitch ou LuLu voient partir l’exfiltration vers Telegram, exactement le moment où le stealer vide ton trousseau. C’est ta dernière ligne quand tout le reste a été contourné.&lt;/p&gt;
&lt;br&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;À lire : &lt;a href=&quot;https://macsouverain.com/little-snitch-vs-lulu-pare-feu-sortant-mac/&quot;&gt;Little Snitch vs LuLu, quel pare-feu sortant pour ton Mac&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;br&gt;
&lt;h2 id=&quot;sources&quot;&gt;Sources&lt;/h2&gt;
&lt;br&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://thehackernews.com/2026/07/bluenoroff-zoom-phishing-kit-profiles.html&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;The Hacker News&lt;/a&gt;, qui a relayé la recherche le 24 juillet 2026&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.jumpsec.com/guides/inside-a-dprk-bluenoroff-clickfix-kit/&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Recherche primaire JUMPSEC&lt;/a&gt;, analyse du kit de phishing BlueNoroff&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.sekoia.io/clickfake-interview-campaign-by-lazarus/&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Cluster « ClickFake Interview » suivi par Sekoia&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content:encoded><dc:creator>Mac Souverain</dc:creator><category>radar</category><category>radar-alerte</category><category>macos</category><category>cybersec</category><category>phishing</category><category>crypto</category></item><item><title>Mets ton IA locale au travail, sans le cloud</title><link>https://macsouverain.com/mets-ton-ia-locale-au-travail/</link><guid isPermaLink="true">https://macsouverain.com/mets-ton-ia-locale-au-travail/</guid><description>Ton modèle local expose une API compatible OpenAI, chez toi. Branche-la sur tes vraies tâches via Raccourcis ou Python, sans qu&apos;aucun SaaS ne voie tes données.</description><pubDate>Tue, 28 Jul 2026 07:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Tu as installé ton modèle local. Tu lui as parlé. Tu as même coupé le Wi-Fi pour vérifier qu’il répondait encore, et il répondait. Belle démonstration. Et depuis, ton IA locale vit dans une fenêtre de chat où tu colles ton texte à la main, tu lis la réponse, tu la recolles ailleurs.&lt;/p&gt;
&lt;p&gt;Autrement dit, tu as un moteur souverain, et &lt;strong&gt;tu t’en sers comme d’un carnet&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Une IA coincée dans sa fenêtre de discussion ne rend que la moitié de ce qu’elle sait faire. L’autre moitié, celle qui compte pour de vrai, c’est quand elle travaille pendant que tu fais autre chose. Trier un lot de mails, résumer un dossier de notes, reformuler trente lignes d’un coup, sans que tu joues les copistes. Et le meilleur, c’est que le geste pour y arriver tient dans un après-midi.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;À lire d’abord : &lt;a href=&quot;https://macsouverain.com/installer-premier-modele-ia-local-mac/&quot;&gt;Installe ton premier modèle d’IA en local sur Mac&lt;/a&gt;. Cet article part de là, un modèle qui tourne déjà chez toi.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&quot;le-vrai-problème-tu-es-devenu-lassistant-de-ton-assistant&quot;&gt;Le vrai problème, tu es devenu l’assistant de ton assistant&lt;/h2&gt;
&lt;p&gt;Regarde comment tu utilises ton modèle local aujourd’hui. Tu ouvres LM Studio, tu tapes ta demande, tu attends, tu récupères le texte. Pour une question, ça va. Pour trente mails à trier ou cinquante notes à résumer, tu deviens la courroie de transmission, le maillon lent entre la tâche et la machine.&lt;/p&gt;
&lt;p&gt;C’est exactement le travail répétitif qu’une IA est censée t’enlever. Sauf que là, &lt;strong&gt;c’est toi qui l’exécutes à sa place&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Le réflexe classique, quand on veut automatiser, c’est de se tourner vers un Zapier, un IFTTT, un Make. Tu relies deux services, tu ajoutes une pincée d’IA au milieu, et ça tourne tout seul. Pratique. Sauf que chacun de ces outils est un intermédiaire cloud, et que la pincée d’IA, c’est encore un modèle distant. Tu voulais automatiser du travail sensible, tes mails, tes notes, tes documents, et tu viens de le faire transiter par deux entreprises étrangères au lieu d’une.&lt;/p&gt;
&lt;p&gt;Tu as monté ton IA en local précisément pour que rien ne sorte. Ce serait dommage de rouvrir la porte par la petite fenêtre de l’automatisation.&lt;/p&gt;
&lt;p&gt;La bonne nouvelle : tu n’as besoin d’aucun de ces services. Ton modèle local sait déjà se brancher. Il t’attend, et personne d’autre n’écoute.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;la-clé-que-tu-ne-voyais-pas-ton-modèle-expose-une-api-locale&quot;&gt;La clé que tu ne voyais pas, ton modèle expose une API locale&lt;/h2&gt;
&lt;p&gt;Voilà ce que personne ne t’a dit en installant LM Studio. La fenêtre de chat n’est qu’une des deux portes de la maison. La seconde, c’est un petit serveur qui tourne sur ta machine et qui parle le même langage que les grands modèles distants.&lt;/p&gt;
&lt;p&gt;Une image pour situer. La fenêtre de chat, c’est le comptoir du magasin, tu viens, tu demandes, on te sert. Le serveur local, c’est le quai de livraison à l’arrière, celui par où passent les palettes entières, sans faire la queue au comptoir. Même magasin, même stock, mais un accès taillé pour le volume et pour les machines.&lt;/p&gt;
&lt;p&gt;Concrètement, LM Studio peut démarrer un serveur qui écoute en local, sur ta machine et sur elle seule. N’importe quel programme sur ton Mac, un script, une app, un raccourci, peut alors lui envoyer une demande et récupérer la réponse, sans un clic de ta part. Tu passes du « je pose une question » au « ce programme pose mille questions pendant que je déjeune ».&lt;/p&gt;
&lt;p&gt;Et le détail qui fait toute la différence, c’est que cette API est &lt;strong&gt;compatible OpenAI&lt;/strong&gt;. Traduction en clair : elle parle exactement le même langage que l’API des gros fournisseurs distants. Le format de la demande, la structure de la réponse, tout est identique. Ça veut dire que la quasi-totalité des outils, tutoriels et bouts de code écrits pour « brancher une IA » fonctionnent avec ton modèle local, en changeant une seule chose, l’adresse. Au lieu de pointer vers un serveur à l’autre bout du monde, tu pointes vers &lt;code&gt;localhost&lt;/code&gt;, chez toi.&lt;/p&gt;
&lt;p&gt;Ton texte part vers ta propre machine, ta machine répond, &lt;strong&gt;rien ne franchit ta carte réseau&lt;/strong&gt;. Pas de facture à la requête. Pas de conditions d’utilisation. Pas de tiers qui lit au passage.&lt;/p&gt;
&lt;p&gt;C’est là que ton IA locale cesse d’être un jouet et devient un outil.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;allumer-le-serveur-le-seul-réglage-à-connaître&quot;&gt;Allumer le serveur, le seul réglage à connaître&lt;/h2&gt;
&lt;p&gt;Avant de brancher quoi que ce soit, il faut ouvrir le quai de livraison. C’est &lt;strong&gt;une case à cocher, littéralement&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Dans LM Studio, va dans l’onglet &lt;strong&gt;Developer&lt;/strong&gt;, celui à l’icône en chevrons &lt;code&gt;&gt;_&lt;/code&gt;, l’ancien « Local Server » des versions précédentes. Charge le modèle que tu utilises déjà, celui de l’article précédent, puis bascule le serveur sur « Start ». Une adresse s’affiche, &lt;code&gt;http://localhost:1234&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Retiens deux choses de cet écran, et une seule compte vraiment pour ta tranquillité.&lt;/p&gt;
&lt;p&gt;L’adresse commence par &lt;code&gt;localhost&lt;/code&gt;, aussi noté &lt;code&gt;127.0.0.1&lt;/code&gt;. Ça signifie « cette machine, et rien d’autre ». Le serveur n’est pas exposé au réseau, ton voisin de café ne peut pas s’y connecter, une page web ouverte dans ton navigateur non plus. C’est le comportement par défaut, et c’est le bon. Ne le change pas pour l’ouvrir à &lt;code&gt;0.0.0.0&lt;/code&gt; sans savoir précisément pourquoi, ce serait ouvrir ton quai de livraison sur la rue.&lt;/p&gt;
&lt;p&gt;Le numéro à la fin, le port, c’est juste la porte précise à laquelle frapper. Note-le, tu vas t’en servir dans deux minutes.&lt;/p&gt;
&lt;p&gt;Voilà, le serveur tourne. Ton modèle attend qu’on lui donne du travail.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://macsouverain.com/content/images/2026/07/01-serveur-lmstudio.png&quot; alt=&quot;L&amp;#x27;onglet Developer de LM Studio, le serveur démarré sur http://127.0.0.1:1234 et le modèle chargé, prêt à recevoir des requêtes.&quot;&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;sans-une-ligne-de-code-lapp-raccourcis&quot;&gt;Sans une ligne de code, l’app Raccourcis&lt;/h2&gt;
&lt;p&gt;Si le mot « script » te fait déjà lever les yeux au ciel, cette section est pour toi, et elle suffit à te changer la vie.&lt;/p&gt;
&lt;p&gt;macOS embarque une app qui s’appelle &lt;strong&gt;Raccourcis&lt;/strong&gt;, celle avec l’icône aux deux carrés colorés. Elle sert à enchaîner des actions automatiquement, et parmi ces actions, il y en a une qui sait parler à un serveur, exactement le nôtre. Elle s’appelle « Obtenir le contenu de l’URL ».&lt;/p&gt;
&lt;p&gt;L’idée : tu construis un raccourci qui prend un texte, l’envoie à ton modèle local avec une consigne, et te rend la réponse. Une fois monté, tu le lances quand tu veux, depuis Spotlight ou la barre des menus : il t’ouvre une fenêtre, tu tapes ta question ou tu colles ton texte, et la réponse s’affiche.&lt;/p&gt;
&lt;p&gt;Voici la recette, en clair.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;L’entrée.&lt;/strong&gt; Ton raccourci récupère un texte, celui que tu tapes ou que tu colles dans la fenêtre qui s’ouvre au lancement.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;La demande.&lt;/strong&gt; Une action « Obtenir le contenu de l’URL » pointée vers l’adresse de ton serveur, suivie de &lt;code&gt;/v1/chat/completions&lt;/code&gt;. Méthode POST, en-tête &lt;code&gt;Content-Type: application/json&lt;/code&gt;, et un corps de requête JSON qui contient le nom du modèle, ta consigne et le texte à traiter.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;La sortie.&lt;/strong&gt; Le serveur répond en JSON. Tu extrais le passage utile avec l’action « Obtenir la valeur du dictionnaire », puis tu l’affiches. Un piège t’attend là, et il fait perdre un quart d’heure à tout le monde : dans Raccourcis, le chemin pour attraper la réponse est &lt;code&gt;choices.1.message.content&lt;/code&gt;. &lt;strong&gt;Oui, &lt;code&gt;1&lt;/code&gt;, pas &lt;code&gt;0&lt;/code&gt;.&lt;/strong&gt; L’app numérote les éléments d’une liste à partir de un, quand tout le JSON du monde compte à partir de zéro. Mets &lt;code&gt;0&lt;/code&gt;, tu récoltes une erreur ; mets &lt;code&gt;1&lt;/code&gt;, tu récoltes ta réponse.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;https://macsouverain.com/content/images/2026/07/02-raccourci-qwen.png&quot; alt=&quot;Le raccourci monté dans l&amp;#x27;app Raccourcis : l&amp;#x27;URL du serveur local en POST, le corps JSON avec le modèle et ta consigne, puis l&amp;#x27;extraction de la réponse via choices.1.message.content.&quot;&gt;&lt;/p&gt;
&lt;p&gt;Un exemple concret et immédiatement utile : un raccourci « Reformule ça proprement ». Tu le lances, tu lui colles un paragraphe bancal, ta consigne dit au modèle « réécris ce texte dans un français clair et poli », et la version corrigée s’affiche. &lt;strong&gt;Le texte n’a pas quitté ton Mac.&lt;/strong&gt; Aucun service en ligne n’a vu passer ton brouillon.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://macsouverain.com/content/images/2026/07/03-question-reponse.png&quot; alt=&quot;Tu lances le raccourci, tu tapes ta question, et quelques secondes plus tard la réponse s&amp;#x27;affiche, calculée entièrement sur ta machine.&quot;&gt;&lt;/p&gt;
&lt;p&gt;Le premier montage demande un peu de patience, le temps de placer les bonnes actions dans le bon ordre. Après, tu le dupliques et tu changes juste la consigne. « Résume en trois points », « traduis en anglais », « extrais les dates et les montants ». Un raccourci par usage, tous branchés sur le même moteur qui dort sur ta machine.&lt;/p&gt;
&lt;p&gt;C’est la voie sans code, et pour beaucoup de gens, elle est largement suffisante.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;pour-aller-plus-loin-quelques-lignes-de-python&quot;&gt;Pour aller plus loin, quelques lignes de Python&lt;/h2&gt;
&lt;p&gt;Tu veux traiter non pas un texte, mais un dossier entier ? Là, un petit script fait ce qu’aucun clic ne fera aussi bien. Pas besoin d’être développeur, juste de recopier et d’adapter.&lt;/p&gt;
&lt;p&gt;Le principe est le même que pour Raccourcis, en plus souple : ton script parle au serveur local, en boucle, sur autant d’éléments que tu veux. Et comme l’API est compatible OpenAI, tu peux utiliser la bibliothèque Python officielle d’OpenAI en lui donnant simplement l’adresse de ta machine au lieu de celle du cloud.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;python&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#D73A49&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt; openai &lt;/span&gt;&lt;span style=&quot;color:#D73A49&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt; OpenAI&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;# On pointe la bibliothèque vers TON serveur local, pas vers le cloud&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;client &lt;/span&gt;&lt;span style=&quot;color:#D73A49&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt; OpenAI(&lt;/span&gt;&lt;span style=&quot;color:#E36209&quot;&gt;base_url&lt;/span&gt;&lt;span style=&quot;color:#D73A49&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt;&quot;http://localhost:1234/v1&quot;&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#E36209&quot;&gt;api_key&lt;/span&gt;&lt;span style=&quot;color:#D73A49&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt;&quot;local&quot;&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#D73A49&quot;&gt;def&lt;/span&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt; demande&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;(consigne, texte):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;    reponse &lt;/span&gt;&lt;span style=&quot;color:#D73A49&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt; client.chat.completions.create(&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E36209&quot;&gt;        model&lt;/span&gt;&lt;span style=&quot;color:#D73A49&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt;&quot;local-model&quot;&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;,  &lt;/span&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;# mets ici l&apos;identifiant du modèle chargé, visible dans l&apos;onglet Developer&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E36209&quot;&gt;        messages&lt;/span&gt;&lt;span style=&quot;color:#D73A49&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;[&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;            {&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt;&quot;role&quot;&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt;&quot;system&quot;&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt;&quot;content&quot;&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;: consigne},&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;            {&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt;&quot;role&quot;&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt;&quot;user&quot;&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt;&quot;content&quot;&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;: texte},&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;        ],&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;    )&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#D73A49&quot;&gt;    return&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt; reponse.choices[&lt;/span&gt;&lt;span style=&quot;color:#005CC5&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;].message.content&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;En local, LM Studio ignore la clé, n’importe quelle chaîne non vide fait l’affaire, « local » ici. Pour &lt;code&gt;model&lt;/code&gt;, indique l’identifiant du modèle que tu as chargé, celui affiché dans l’onglet Developer.&lt;/p&gt;
&lt;p&gt;Cette poignée de lignes, c’est le socle. Autour, tu enroules la tâche que tu veux. Trois recettes qui rapportent gros, tout de suite.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Résumer un dossier de notes ou de mails exportés.&lt;/strong&gt; Tu boucles sur les fichiers d’un dossier, tu passes chacun à la fonction avec la consigne « résume en trois points », tu écris le résumé à côté. Cinquante notes digérées le temps d’un café, et pas une ligne partie ailleurs que dans ta RAM.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Trier et classer des documents.&lt;/strong&gt; Tu demandes au modèle de coller une étiquette à chaque fichier, « facture », « contrat », « courrier », « à ignorer », puis ton script range chaque document dans le bon sous-dossier selon la réponse. Le tri intelligent que tu paierais à un service cloud, tu le fais tourner chez toi, gratuitement, sur des documents qui n’ont rien à faire dehors.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Reformuler ou nettoyer par lot.&lt;/strong&gt; Une colonne de commentaires clients à uniformiser, une liste de titres à réécrire, un export à mettre au propre. Tu boucles, le modèle passe sur chaque ligne, tu récupères un fichier propre. Le genre de corvée qui prend une heure à la main et deux minutes en local.&lt;/p&gt;
&lt;p&gt;Le point commun de ces trois recettes : elles sont répétitives, elles sont un peu sensibles, et elles n’ont aucune raison de sortir de ta machine. C’est le terrain de jeu naturel du local. J’y fais passer mes propres lots de notes depuis des mois, et l’idée qu’un brouillon parte chez un tiers me paraît aujourd’hui aussi bizarre que d’imprimer mon journal intime chez le voisin.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;ce-que-ça-change-et-ce-que-ça-ne-fait-pas&quot;&gt;Ce que ça change, et ce que ça ne fait pas&lt;/h2&gt;
&lt;p&gt;Ton modèle local n’a pas la puissance brute du meilleur modèle distant. Sur une reformulation, un tri, un résumé, la différence est invisible. Sur un raisonnement tordu en dix étapes, elle existe encore, on en a parlé en montant ta machine. Le local n’est pas là pour gagner tous les concours. Il est là pour abattre, en silence et sans facture, la montagne de travail répétitif qui fait l’essentiel de ton volume.&lt;/p&gt;
&lt;p&gt;Et le bénéfice cardinal ne se mesure pas en points de performance. Il se mesure en &lt;strong&gt;ce qui ne se passe pas&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Pas de requête envoyée à un serveur étranger. Pas de conditions d’utilisation qui changent un matin. Pas de facture qui grimpe avec ton usage. Pas de SaaS d’automatisation qui garde une copie de ce que tu lui fais transiter. Ton texte entre dans ta machine, en ressort transformé, et n’a croisé personne. C’est le même contrat que pour ton modèle en chat, étendu à tout ce que tu automatises.&lt;/p&gt;
&lt;p&gt;Reste une limite qu’il faut nommer. Ce que tu viens de brancher, c’est du sur-mesure, tes scripts, tes raccourcis, à toi de les entretenir. Le jour où tu voudras connecter ton IA à des outils entiers, ton agenda, ton dépôt de code, ton système de fichiers, de façon standardisée, il existe une autre voie, plus puissante et plus profonde. Elle porte un nom, MCP, et elle ouvre une porte qu’il faut savoir verrouiller avant de s’en servir. C’est le cran d’après, et il mérite son propre article.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Ton modèle local expose une API, chez toi, compatible avec les outils du marché. Tu l’allumes en cochant une case dans LM Studio. Tu la branches sans code avec Raccourcis, ou avec quelques lignes de Python pour traiter des lots entiers. Et tu automatises enfin le travail répétitif que tu faisais à la main, sans qu’un seul octet ne quitte ta machine.&lt;/p&gt;
&lt;p&gt;Le modèle que tu as installé la semaine dernière ne dormait qu’à moitié. Tu viens de le mettre au travail. Choisis une corvée, une seule, celle qui te gonfle le plus, et &lt;strong&gt;fais-lui faire ce soir&lt;/strong&gt;. Le reste suivra tout seul.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;À lire : &lt;a href=&quot;https://macsouverain.com/ton-ia-peut-etre-eteinte-monte-la-tienne/&quot;&gt;Ton IA peut être éteinte par les US, monte la tienne&lt;/a&gt;, le pourquoi de toute cette histoire.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&quot;sources&quot;&gt;Sources&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;L’outil et son serveur local&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://lmstudio.ai/docs/developer/core/server&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;LM Studio, documentation du serveur local&lt;/a&gt;, l’application embarque un serveur qui tourne sur ta machine.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://lmstudio.ai/docs/developer/openai-compat&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;LM Studio, compatibilité OpenAI&lt;/a&gt;, les endpoints &lt;code&gt;/v1/*&lt;/code&gt; et le port &lt;code&gt;1234&lt;/code&gt; par défaut.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;La voie sans code&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://support.apple.com/fr-fr/guide/shortcuts-mac/apd58d46713f/mac&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Apple, faire une requête d’API dans Raccourcis&lt;/a&gt;, l’action « Obtenir le contenu de l’URL » en POST JSON.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://support.apple.com/fr-fr/guide/shortcuts-mac/apdde2dfe749/mac&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Apple, analyser des données JSON dans Raccourcis&lt;/a&gt;, pour extraire la réponse du modèle.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;La voie scriptée&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/openai/openai-python&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Bibliothèque Python OpenAI&lt;/a&gt;, réutilisable contre un serveur local via &lt;code&gt;base_url&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;Des termes techniques ? &lt;a href=&quot;https://macsouverain.com/glossaire&quot;&gt;Consulte le glossaire.&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;</content:encoded><dc:creator>Mac Souverain</dc:creator><category>ia</category><category>modele-local</category><category>automatisation</category><category>api-locale</category><category>lm-studio</category><category>raccourcis</category><category>macos</category><category>tutoriels</category><enclosure url="https://macsouverain.com/content/images/2026/07/feature-mets-ton-ia-locale-au-travail-1.png" length="0" type="image/png"/></item><item><title>Passwork, app mdp « Made in EU » dehors, certifiée FSB dedans</title><link>https://macsouverain.com/made-in-eu-souverainete-logicielle/</link><guid isPermaLink="true">https://macsouverain.com/made-in-eu-souverainete-logicielle/</guid><description>Un logiciel vendu Made in EU, du code poussé depuis la Russie. Le label n&apos;a aucune valeur juridique. La grille pour vérifier ta chaîne logicielle.</description><pubDate>Mon, 27 Jul 2026 07:00:00 GMT</pubDate><content:encoded>&lt;h2 id=&quot;introduction&quot;&gt;Introduction&lt;/h2&gt;
&lt;p&gt;Une société de logiciels basée à Barcelone. Un gestionnaire de mots de passe vendu à des administrations européennes. Sur le site, jusqu’à récemment, deux mentions rassurantes : « Made in EU 2017 » et « no affiliations with any US, Russian, or other non-European entities ».&lt;/p&gt;
&lt;p&gt;Petit problème. Le logiciel est bien affilié à la Russie. Et le code source est certifié par &lt;strong&gt;le FSB&lt;/strong&gt;, qui &lt;strong&gt;y a eu accès&lt;/strong&gt;. Presque rien en somme.&lt;/p&gt;
&lt;p&gt;Le 17 juillet 2026, un consortium mené par l’OCCRP et VSquare, avec une dizaine de rédactions dont Le Monde, NU.nl, De Groene Amsterdammer, Investico et De Tijd, publie une enquête. Le code de ce logiciel européen est développé en Russie, à Arkhangelsk, et les mises à jour transitent par une entité aux Émirats. Les deux mentions rassurantes ont disparu du site après les questions des journalistes.&lt;/p&gt;
&lt;p&gt;Ce papier n’est pas seulement sur Passwork. Passwork n’est qu’un exemple qui prouve, une fois de plus, l’incompétence de Bruxelles. Retiens bien ça, &lt;strong&gt;« Made in EU » sur une page produit n’a aucune valeur juridique, et ne te protège de rien&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Personne, ni Bruxelles, ni un label, ne vérifie ça à ta place. Alors on va apprendre à le faire.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;le-problème--un-drapeau-ne-prouve-rien&quot;&gt;Le problème : un drapeau ne prouve rien&lt;/h2&gt;
&lt;p&gt;Tu choisis un logiciel pour protéger tes données. Tu vois « européen », tu vois un siège dans l’UE, tu te dis que la souveraineté est cochée. Tu viens de confondre deux choses qui n’ont rien à voir.&lt;/p&gt;
&lt;p&gt;L’adresse d’immatriculation d’une société te dit où sont ses avocats et ses impôts. Elle ne te dit pas d’où vient le code qui tourne sur ta machine. Ce sont deux chaînes distinctes : la chaîne juridique, et la chaîne d’approvisionnement logicielle. La première est facile à afficher sur un site. La seconde est invisible, et c’est la seule qui compte.&lt;/p&gt;
&lt;p&gt;Prends le cas documenté par l’enquête. Passwork Europe S.L. est bien immatriculée à Barcelone. Mais Passwork LLC, elle, est enregistrée à Arkhangelsk, en Russie, en novembre 2022. Même logo, base de code d’origine commune, et des manuels utilisateurs que l’enquête décrit comme « virtually indistinguishable aside from the language ». Sur les deux versions publiées début avril 2026, un chercheur relève un script d’installation d’environ 517 lignes qu’il qualifie de « basically identical ».&lt;/p&gt;
&lt;p&gt;Deux produits présentés comme séparés. &lt;strong&gt;Un seul code, ou presque.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Le point n’est pas « une société russe, c’est mal ». Le point est plus gênant : rien sur la page produit ne te permettait de le savoir. Le label « Made in EU » a fait exactement le travail pour lequel il existe, te rassurer, sans rien prouver.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;le-mécanisme--les-trois-questions-que-le-label-ne-pose-pas&quot;&gt;Le mécanisme : les trois questions que le label ne pose pas&lt;/h2&gt;
&lt;p&gt;La souveraineté d’un logiciel ne se lit pas sur un drapeau. Elle se lit sur trois questions concrètes, et aucune des trois n’apparaît dans une plaquette commerciale.&lt;/p&gt;
&lt;h3 id=&quot;qui-pousse-le-binaire&quot;&gt;Qui pousse le binaire ?&lt;/h3&gt;
&lt;p&gt;Le code que tu utilises n’est pas celui qui est sur un dépôt public. C’est celui qui arrive sur ta machine à la prochaine mise à jour. La vraie question, c’est donc : quelle entité fabrique et livre cette mise à jour ?&lt;/p&gt;
&lt;p&gt;Dans le cas Passwork, les cofondateurs Ilya Garakh, propriétaire des domaines, et Andrey Pyankov, manager, opèrent via Passwork FZ-LLC, enregistrée à Ras Al Khaimah, aux Émirats, en juillet 2022. C’est cette entité qui fournit les mises à jour à la branche européenne. Passwork parle d’un « limited product related knowledge-transfer support » dans une période de transition qui doit s’achever en août 2026.&lt;/p&gt;
&lt;p&gt;Traduction : le binaire européen est, au moins jusqu’à cette date, alimenté depuis l’extérieur de l’Europe. Un chercheur cité par l’enquête résume la séparation UE/Russie comme « technically shallow ».&lt;/p&gt;
&lt;h3 id=&quot;qui-signe-le-code-et-avec-quelle-clé&quot;&gt;Qui signe le code, et avec quelle clé ?&lt;/h3&gt;
&lt;p&gt;Une mise à jour légitime est signée cryptographiquement. C’est ce qui garantit que le fichier que tu installes vient bien de l’éditeur et n’a pas été modifié en route. Sauf que la signature garantit l’origine, pas l’innocence. Si l’entité qui détient la clé de signature est aussi celle qui pourrait glisser quelque chose dans une mise à jour, la signature valide ne te protège de rien. Elle certifie juste que le colis vient bien de l’expéditeur, quel que soit son contenu.&lt;/p&gt;
&lt;p&gt;C’est &lt;strong&gt;le canal de mise à jour&lt;/strong&gt;, pas le stockage, qui &lt;strong&gt;concentre le risque&lt;/strong&gt;. Un chercheur cité par l’enquête le décrit comme « the most elegant and hardest-to-detect attack vector ». L’OCCRP fait elle-même le parallèle avec SolarWinds, cette attaque de 2019-2020 où un logiciel de supervision parfaitement légitime avait servi de véhicule à une compromission massive, via ses mises à jour signées.&lt;/p&gt;
&lt;p&gt;Restons précis : à ce jour, aucune backdoor n’a été trouvée dans Passwork, aucune fuite, aucun client compromis. On parle d’un vecteur qui existe, pas d’une attaque qui a eu lieu. Le canal permettrait, structurellement, ce que SolarWinds a démontré possible. &lt;strong&gt;Ce n’est pas une accusation. C’est une géométrie.&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id=&quot;quel-état-a-pu-revoir-la-source&quot;&gt;Quel État a pu revoir la source ?&lt;/h3&gt;
&lt;p&gt;Voilà la question que personne ne pense à poser, et c’est peut-être la plus lourde.&lt;/p&gt;
&lt;p&gt;Passwork LLC est certifiée par le FSTEC, que VSquare rattache au ministère de la Défense russe, et par &lt;strong&gt;le FSB&lt;/strong&gt;. Or ces certifications ne sont pas des tampons administratifs. Le processus impose la soumission du code source à des laboratoires accrédités, chargés d’y détecter « vulnerabilities or undeclared capabilities ».&lt;/p&gt;
&lt;p&gt;Autrement dit : un État a organisé la relecture du code source de ce logiciel. Pas l’Union européenne. Pas un auditeur mandaté par tes soins. Un service placé sous une autre juridiction, avec ses propres priorités.&lt;/p&gt;
&lt;p&gt;Quand tu installes un logiciel, tu ne fais pas que faire confiance à l’éditeur. Tu fais confiance, sans le savoir, à tous ceux qui ont eu les mains dans son code avant toi.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;lusine-à-gaz-qui-na-rien-vu-passer&quot;&gt;L’usine à gaz qui n’a rien vu passer&lt;/h2&gt;
&lt;p&gt;À ce stade, tu te dis peut-être que c’est bien pour ça qu’on paie des régulateurs. L’Europe pond du règlement numérique au kilomètre, un acronyme neuf par trimestre, un communiqué triomphal à chaque texte voté. Alors ce coffre russe déguisé en produit européen, vendu à ses propres administrations, ils l’ont vu venir ? Non. Pas une alerte, pas une ligne.&lt;/p&gt;
&lt;p&gt;Regarde la pile réglementaire censée couvrir ce terrain. Le Cyber Resilience Act impose la sécurité « by-design » aux produits numériques : comment ils sont conçus, pas par qui ni depuis où.&lt;/p&gt;
&lt;p&gt;Le Cyber Solidarity Act, entré en vigueur le 4 février 2025, organise la réponse aux crises : un système d’alerte européen, une réserve de cybersécurité, une revue post-incident. Utile le jour où ça brûle, muet sur qui a posé l’allumette. Et les schémas de certification de l’ENISA, l’EUCC pour les produits, l’EUCS pour le cloud, évaluent des niveaux d’assurance sur des critères techniques.&lt;/p&gt;
&lt;p&gt;Cherche dans tout ça la case « quelle entité pousse le binaire » ou « quel État a relu la source ». Elle n’existe pas. Aucun de ces textes ne certifie un produit selon son origine réelle, et aucun n’interdit quoi que ce soit sur ce critère.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Une société peut afficher « Made in EU », faire relire son code par un service de renseignement étranger, et rester parfaitement en règle avec Bruxelles&lt;/strong&gt;. Conforme, tamponnée, irréprochable sur le papier. Voilà le niveau de protection qu’on t’a vendu à coups de milliards engloutis dans la cybersécurité européenne et de conférences de presse.&lt;/p&gt;
&lt;p&gt;Pendant que ce coffre, dont la souche russe est certifiée FSB, prospérait sur le marché public européen, à quoi la même Union consacrait-elle son énergie ? À vouloir forcer les messageries à scanner tes conversations privées avant chiffrement, le CSAR (Chat Control 2.0). Traduction : Bruxelles n’a pas su repérer un logiciel relu par un service russe et vendu à ses propres administrations, mais elle veut fouiller les messages de centaines de millions d’Européens. &lt;strong&gt;Incapable sur la vraie menace, zélée sur la surveillance des innocents.&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;À lire : &lt;a href=&quot;https://macsouverain.com/chat-control-csar-surveillance-messageries-chiffrees/&quot;&gt;Chat Control 2.0, l’UE veut lire tes messages avant que tu les envoies&lt;/a&gt; et &lt;a href=&quot;https://macsouverain.com/nis2-csar-contradiction-ue-chiffrement-surveillance/&quot;&gt;NIS2 oblige à chiffrer, CSAR interdit de le faire vraiment&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;La conclusion est désagréable mais nette. La souveraineté logicielle n’est pas à déléguer à un régulateur. &lt;strong&gt;Elle est à ta charge. Toi, citoyen. Toi, PME.&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;ce-que-ça-change-concrètement--ta-grille-de-vérification&quot;&gt;Ce que ça change concrètement : ta grille de vérification&lt;/h2&gt;
&lt;p&gt;Bonne nouvelle, tu n’as pas besoin d’être analyste en cyberdéfense. Tu as besoin d’une méthode. Avant de confier tes mots de passe, tes contrats ou ta comptabilité à un logiciel, fais-le passer par ces six questions. Prends l’exemple le plus sensible qui soit, un coffre-fort de mots de passe, celui qui garde les clés de tout le reste.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Qui pousse le binaire ?&lt;/strong&gt; Cherche l’entité qui édite réellement les mises à jour, pas celle qui encaisse ta facture. Registre du commerce, mentions légales, historique de la société. Une adresse européenne sur la page d’accueil et une maison mère ailleurs, c’est un signal, pas une réponse.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Qui signe le code, et avec quelle clé ?&lt;/strong&gt; Un éditeur sérieux publie ses signatures et permet de les vérifier. Regarde qui détient la clé de signature et où. Une clé contrôlée par une entité sous une juridiction opaque annule le bénéfice de la signature.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Quel État a pu revoir la source ?&lt;/strong&gt; Les certifications nationales sont publiques. Une certification FSTEC ou FSB implique une relecture du code par des labos russes accrédités. À l’inverse, un visa ANSSI (comme celui obtenu par KeePassXC) implique une évaluation française. Ce n’est pas neutre : demande-toi quel État tu es prêt à laisser regarder sous le capot.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Self-hosted ou cloud ?&lt;/strong&gt; Un logiciel que tu héberges toi-même retire l’éditeur de la boucle du stockage. Tes données restent sur ton infrastructure, sous ta juridiction. Ça ne règle pas le problème du canal de mise à jour, mais ça réduit la surface. Le cloud de l’éditeur, lui, cumule les deux dépendances.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Quel historique de mises à jour, par quel canal ?&lt;/strong&gt; Un projet mûr a un journal de versions lisible, un canal de distribution stable et documenté. Des mises à jour opaques, un canal qui change, une entité de distribution exotique : autant de drapeaux rouges. Le canal est le vrai point d’entrée, surveille-le comme tel.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Le code est-il auditable ?&lt;/strong&gt; L’open source ne rend pas un logiciel magiquement sûr, mais il rend le mensonge plus difficile. Un code public a pu être relu par n’importe qui, y compris des gens qui n’ont aucun intérêt à te rassurer. Un code fermé te demande de croire l’éditeur sur parole, et tu viens de voir ce que valent les paroles sur une page produit.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Aucune de ces six questions n’a besoin d’un budget. Elles ont besoin de dix minutes et de l’envie de regarder derrière le drapeau. Applique-les à ton gestionnaire actuel ce soir. Certains passeront le test sans transpirer, d’autres beaucoup moins.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;À lire : &lt;a href=&quot;https://macsouverain.com/gestionnaire-mots-de-passe-mac-comparatif/&quot;&gt;Apple, Bitwarden, KeePassXC ou 1Password, le comparatif honnête des coffres à mots de passe&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&quot;les-limites--ce-que-cette-grille-ne-dit-pas&quot;&gt;Les limites : ce que cette grille ne dit pas&lt;/h2&gt;
&lt;p&gt;Il faut être honnête sur deux points, sinon on tombe dans le procès d’intention.&lt;/p&gt;
&lt;p&gt;D’abord, l’équité envers l’éditeur mis en cause. Passwork revendique son indépendance, affirme que la transition avec l’entité russe s’achève en août 2026, et que les données de ses clients résident sur les serveurs de ces clients. Son PDG, Alexander Muntyan, invoque une « zero-knowledge architecture », avec chiffrement et déchiffrement côté client : « we would simply have no data to provide ».&lt;/p&gt;
&lt;p&gt;Cet argument mérite d’être pris pour ce qu’il est, un argument marketing, pas une garantie technique. En version auto-hébergée, cette couche peut être désactivée, et une couche serveur existe. Surtout, le zero-knowledge protège le stockage, pas le canal de mise à jour, et c’est le canal qui inquiète les chercheurs.&lt;/p&gt;
&lt;p&gt;Côté clients, prudence aussi. L’enquête établit que deux organismes irlandais, l’Office of Public Works et le State Laboratory, se disent non informés de l’origine du produit, le second traitant désormais le sujet comme un « potential risk ».&lt;/p&gt;
&lt;p&gt;Pour le reste, Passwork LLC affiche côté russe des clients du complexe militaro-industriel, dont Almaz-Antey, MMZ Avangard, Kometa et Gazprom Neft. Plusieurs figurent sur des listes de sanctions occidentales, mais selon des régimes différents, UE, États-Unis ou contrôles à l’export selon les cas. On ne fait pas d’amalgame : ni « tous sanctionnés par l’UE », ni « tous les clients européens compromis ».&lt;/p&gt;
&lt;p&gt;Ensuite, la grille elle-même a des limites. Elle ne détecte pas une compromission active, elle évalue un risque structurel. Un logiciel qui coche toutes les cases peut quand même être attaqué, et un logiciel qui en rate une n’est pas forcément un piège. La grille ne remplace pas un audit, elle t’évite de confondre une plaquette commerciale avec une preuve. C’est déjà énorme.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;en-résumé&quot;&gt;En résumé&lt;/h2&gt;
&lt;p&gt;« Made in EU » est une allégation marketing. Pas un label contrôlé, pas une garantie juridique, pas une preuve de souveraineté. L’affaire Passwork le montre sans avoir besoin d’une seule compromission avérée : un logiciel peut être immatriculé à Barcelone, codé à Arkhangelsk, mis à jour depuis les Émirats, et relu par un service russe, tout en restant parfaitement en règle avec la pile réglementaire européenne. Cette pile, Cyber Resilience Act, Cyber Solidarity Act, schémas ENISA, n’a jamais posé les bonnes questions. Elle ne les pose toujours pas. Ne compte pas sur elle. &lt;strong&gt;Elle ne t’a pas protégé, elle t’a rassuré. Ce n’est pas le même métier.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Alors pose-les toi-même. Qui pousse le binaire, qui signe le code, quel État a pu en relire la source, est-ce hébergeable chez toi, quel est le canal de mise à jour, le code est-il auditable. Six questions, dix minutes, appliquées d’abord à l’endroit le plus sensible : le coffre où vivent tous tes mots de passe. La souveraineté ne se lit pas sur un drapeau. Elle se vérifie. &lt;strong&gt;Personne ne le fera pour toi.&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;sources&quot;&gt;Sources&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;L’enquête&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.occrp.org/en/investigation/european-password-manager-shares-origins-and-updates-with-state-certified-russian-firm&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;OCCRP, European Password Manager Shares Origins and Updates with State-Certified Russian Firm&lt;/a&gt;, l’enquête primaire du 17 juillet 2026.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://vsquare.org/european-password-manager-shares-origins-and-updates-with-state-certified-russian-firm/&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;VSquare, la même enquête&lt;/a&gt;, la co-publication du consortium.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.irishtimes.com/ireland/2026/07/17/how-russian-password-technology-made-its-way-into-irish-state-agencies/&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;The Irish Times, How Russian password technology made its way into Irish State agencies&lt;/a&gt;, les organismes publics irlandais clients.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Le cadre réglementaire&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://eur-lex.europa.eu/eli/reg/2025/38/oj/eng&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;EUR-Lex, Règlement (UE) 2025/38, Cyber Solidarity Act&lt;/a&gt;, le texte officiel, en vigueur depuis le 4 février 2025.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://digital-strategy.ec.europa.eu/en/policies/cyber-solidarity&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Commission européenne, EU Cyber Solidarity Act&lt;/a&gt;, le budget et les mécanismes.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eur-lex.europa.eu/EN/legal-content/summary/digital-europe-programme-2021-2027.html&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;EUR-Lex, Digital Europe Programme 2021-2027&lt;/a&gt;, le volet cybersécurité.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://messervices.cyber.gouv.fr/visas/ANSSI-CSPN-2025-16-rapport.pdf&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;ANSSI, rapport de certification CSPN-2025/16 (KeePassXC 2.7.9)&lt;/a&gt;, l’exemple du visa ANSSI.&lt;/li&gt;
&lt;/ul&gt;</content:encoded><dc:creator>Mac Souverain</dc:creator><category>privacy</category><category>securite</category><category>souverainete</category><category>reglementation</category><category>informatif</category><enclosure url="https://macsouverain.com/content/images/2026/07/feature-made-in-eu-souverainete-logicielle-1.png" length="0" type="image/png"/></item><item><title>Alerting et coût total, le bilan de ton SIEM souverain</title><link>https://macsouverain.com/alerting-cout-total-siem-souverain/</link><guid isPermaLink="true">https://macsouverain.com/alerting-cout-total-siem-souverain/</guid><description>Brancher l&apos;alerting Wazuh sans crouler sous le bruit, puis le bilan honnête de ta stack souveraine face à une facture SaaS six à trente fois plus lourde.</description><pubDate>Sat, 25 Jul 2026 12:25:13 GMT</pubDate><content:encoded>&lt;p&gt;Six épisodes. Un VPS durci, Wazuh qui centralise, des agents sur tout le parc, CrowdSec au réseau, Rspamd au mail, Santa sur les Mac. Ta stack est debout, elle collecte, elle détecte, elle journalise.&lt;/p&gt;
&lt;p&gt;Et elle est muette.&lt;/p&gt;
&lt;p&gt;Un binaire refusé sur un poste, une rafale d’échecs d’authentification, un compte qui se réveille à 3 heures du matin, tout ça atterrit sagement dans un tableau de bord que personne ne regarde à 3 heures du matin. Une détection que personne ne voit passer n’est pas une détection, c’est un log de plus.&lt;/p&gt;
&lt;p&gt;Aujourd’hui, dernier épisode de la série, on branche l’alerting. La brique qui transforme un SIEM qui sait en un SIEM qui prévient. Et ensuite on fait ce qu’on a promis dès &lt;a href=&quot;https://macsouverain.com/nis2-splunk-pourquoi-pme-siem-souverain/&quot;&gt;le premier article&lt;/a&gt;, les comptes. Combien te coûte vraiment cette stack, face à la facture qu’on t’aurait présentée en SaaS. La réponse est plus tranchée que tu ne le crois.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;lalerting-être-prévenu-sans-être-harcelé&quot;&gt;L’alerting, être prévenu sans être harcelé&lt;/h2&gt;
&lt;p&gt;Wazuh sait déjà envoyer des notifications. Un démon dédié, &lt;code&gt;wazuh-integratord&lt;/code&gt;, démarre avec le manager, lit le flux d’alertes en continu, et pousse chaque alerte qui dépasse un seuil vers la cible que tu lui as désignée. La mécanique est là. Tout le travail est dans le réglage.&lt;/p&gt;
&lt;p&gt;Premier réflexe souverain, regarde qui reçoit tes alertes. Wazuh propose des intégrations natives clés en main, et le piège est là, presque toutes sont des services américains, Slack, PagerDuty, VirusTotal. Brancher ton SIEM souverain sur Slack, c’est monter une stack entière pour rester maître de tes logs, puis expédier toutes tes alertes de sécurité chez un tiers américain. La dépendance qui rentre par la petite porte.&lt;/p&gt;
&lt;p&gt;Deux canaux restent cohérents avec ce qu’on a construit. L’&lt;strong&gt;email&lt;/strong&gt;, servi par le serveur mail que tu administres déjà depuis &lt;a href=&quot;https://macsouverain.com/rspamd-mail-siem-souverain/&quot;&gt;l’épisode Rspamd&lt;/a&gt;, qui est le mécanisme de notification historique de Wazuh. Et le &lt;strong&gt;chat auto-hébergé&lt;/strong&gt;, un Mattermost ou un Matrix posé sur ton infrastructure. Mattermost accepte les webhooks au format Slack, donc l’intégration native &lt;code&gt;slack&lt;/code&gt; fonctionne le plus souvent telle quelle, son &lt;code&gt;hook_url&lt;/code&gt; pointé vers ton serveur à toi. À retester sur ta version, les formats bougent d’une release à l’autre.&lt;/p&gt;
&lt;p&gt;La configuration vit dans &lt;code&gt;ossec.conf&lt;/code&gt;, sur le manager. L’email natif est géré directement par le manager, les canaux chat passent par l’Integrator via un bloc &lt;code&gt;&amp;#x3C;integration&gt;&lt;/code&gt;. Côté email d’abord.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;xml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;global&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;  &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;email_notification&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;yes&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;email_notification&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;  &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;smtp_server&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;localhost&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;smtp_server&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;  &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;email_from&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;wazuh@ton-domaine.tld&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;email_from&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;  &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;email_to&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;secu@ton-domaine.tld&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;email_to&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;global&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;alerts&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;  &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;email_alert_level&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;7&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;email_alert_level&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;alerts&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Côté chat, un bloc &lt;code&gt;&amp;#x3C;integration&gt;&lt;/code&gt; par canal.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;xml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;integration&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;  &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;slack&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;  &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;hook_url&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;https://mattermost.ton-domaine.tld/hooks/xxxxxxxx&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;hook_url&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;  &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;level&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;10&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;level&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;  &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;alert_format&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;json&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;alert_format&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;integration&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Le champ qui commande tout, c’est &lt;code&gt;&amp;#x3C;level&gt;&lt;/code&gt;. Wazuh note chaque alerte sur une échelle de &lt;strong&gt;0 à 16&lt;/strong&gt;, et le seuil transmet cette valeur &lt;strong&gt;ou toute valeur supérieure&lt;/strong&gt;. Un canal à &lt;code&gt;&amp;#x3C;level&gt;10&amp;#x3C;/level&gt;&lt;/code&gt; ne verra jamais un niveau 6. Tu peux affiner avec &lt;code&gt;&amp;#x3C;rule_id&gt;&lt;/code&gt; ou &lt;code&gt;&amp;#x3C;group&gt;&lt;/code&gt;, mais retiens un piège classique, quand tu combines plusieurs de ces filtres, ils se cumulent en ET, pas en OU. L’alerte doit satisfaire tous les critères pour passer, et beaucoup de monde s’est demandé pourquoi son intégration restait silencieuse pour cette seule raison.&lt;/p&gt;
&lt;img src=&quot;https://macsouverain.com/content/images/2026/07/body-alerting-config-alerting-cout-total-siem-souverain.png&quot; class=&quot;kg-image&quot; loading=&quot;lazy&quot; alt=&quot;Configuration de l&amp;#x27;alerting dans ossec.conf, seuils email_alert_level et level mis en évidence&quot;&gt;
&lt;p&gt;Reste la vraie question, quel niveau pour quel canal. Voici les repères que je te propose, une recommandation d’usage et non un barème gravé par Wazuh, à ajuster à ton parc :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;0 à 3&lt;/strong&gt;, du bruit informatif. Tu journalises, tu ne notifies rien.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;4 à 6&lt;/strong&gt;, faible. Ça vit dans le tableau de bord, pas dans ta poche.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;7 à 9&lt;/strong&gt;, moyen. Email groupé, l’équipe le lit dans la journée.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;10 à 12&lt;/strong&gt;, élevé. Échecs d’authentification en série, atteinte à l’intégrité d’un fichier, un binaire refusé par Santa. Chat en temps réel plus email.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;13 à 16&lt;/strong&gt;, critique. Compromission probable, agent désactivé. Astreinte, on réveille quelqu’un.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Un bloc &lt;code&gt;&amp;#x3C;integration&gt;&lt;/code&gt; par canal, chacun son seuil. L’email digest à 7 pour tout le monde, le chat à 10 pour l’équipe technique, un script custom vers du SMS ou du ntfy à 12 pour le responsable. Le patron ne veut pas être tiré du lit pour un niveau 8, et le jour où tu le réveilles pour rien, il coupe les notifications. C’est comme ça qu’on meurt.&lt;/p&gt;
&lt;p&gt;Parce que le vrai risque de l’alerting, ce n’est pas d’en rater. C’est d’en avoir trop. Une attaque en force brute non dédupliquée, ce sont des centaines d’alertes en quelques minutes, et une équipe qui apprend à les ignorer. La déduplication se règle en amont, dans la fréquence et la fenêtre temporelle de tes règles, jamais au moment de la notification. Un SIEM qui crie tout le temps, c’est un SIEM qu’on n’écoute plus. La fatigue d’alerte est pire que l’absence d’alerte, parce qu’elle te donne l’illusion d’être couvert.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;ce-que-la-stack-ta-vraiment-coûté&quot;&gt;Ce que la stack t’a vraiment coûté&lt;/h2&gt;
&lt;p&gt;Le moment des comptes, coût affiché et coût caché, parce que te vendre du gratuit serait te mentir.&lt;/p&gt;
&lt;p&gt;Le poste visible, c’est le VPS. Wazuh en mononœud, manager, indexeur et tableau de bord sur une seule machine, tourne confortablement pour une PME de 25 à 50 postes sur &lt;strong&gt;8 vCPU, 16 Go de RAM et 100 Go de disque&lt;/strong&gt; pour trois mois de rétention. Chez un hébergeur européen hors emprise américaine, ça se loue entre &lt;strong&gt;300 et 1 700 euros par an&lt;/strong&gt; selon que tu vises le bas de gamme allemand ou le souverain français haut de gamme. Une seule ligne de facture, pour toute la stack.&lt;/p&gt;
&lt;p&gt;Le poste des licences, ensuite. Wazuh, les agents, CrowdSec, Rspamd, Santa, l’alerting. &lt;strong&gt;Zéro.&lt;/strong&gt; Pas un centime, pas un palier entreprise, pas un quota de postes. Open source de bout en bout.&lt;/p&gt;
&lt;p&gt;Et puis le poste qu’aucun tableau de prix ne t’affiche, le temps. L’installation de la stack, plusieurs jours cumulés pour qui découvre, moins pour un sysadmin aguerri. Puis la maintenance, les mises à jour, la surveillance du disque, et surtout le tuning des règles qui bouffe l’essentiel des premières semaines. Je ne te donnerai pas un chiffre d’heures par mois, il serait inventé, et aucun de ceux que tu liras ailleurs ne repose sur autre chose que du doigt mouillé. Compte en jours-homme, pose ton taux, fais ton addition.&lt;/p&gt;
&lt;p&gt;Voilà la nuance qui tient tout l’épisode. Souverain n’est pas gratuit, souverain déplace la dépense de la licence vers la compétence interne. Tu ne paies plus une rente à un éditeur, tu paies un investissement qui reste dans ta maison. Le VPS se compte en centaines d’euros, le temps est le poste dominant, et les deux ensemble restent très loin sous ce que t’aurait coûté l’équivalent loué.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;épisode-par-épisode-la-même-stack-en-saas&quot;&gt;Épisode par épisode, la même stack en SaaS&lt;/h2&gt;
&lt;p&gt;Reprenons la stack brique par brique, et mettons en face ce que le marché facture pour la même fonction. Hypothèses affichées, parce que sans elles un chiffre ne veut rien dire, une PME d’une quarantaine de postes dont une vingtaine de Macs, environ cinq gigaoctets de logs par jour.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Wazuh&lt;/strong&gt; remplace un Microsoft Sentinel ou un Splunk ES. Compte &lt;strong&gt;7 800 dollars par an&lt;/strong&gt; pour cinq gigaoctets de logs quotidiens côté Sentinel, de &lt;strong&gt;8 000 à 12 500 dollars&lt;/strong&gt; côté Splunk. &lt;strong&gt;CrowdSec&lt;/strong&gt; tient le rôle d’une offre de threat intelligence managée, qui démarre à &lt;strong&gt;1 900 dollars par mois&lt;/strong&gt; en Platinum, soit près de &lt;strong&gt;23 000 dollars l’année&lt;/strong&gt;. &lt;strong&gt;Rspamd&lt;/strong&gt; fait le travail d’un Proofpoint ou d’un Mimecast, &lt;strong&gt;1 200 à 8 640 dollars&lt;/strong&gt; pour quarante boîtes. &lt;strong&gt;Santa&lt;/strong&gt; se substitue à un Jamf Protect, autour de &lt;strong&gt;1 440 dollars&lt;/strong&gt; pour vingt Macs. En face de chaque ligne, le même chiffre, &lt;strong&gt;zéro de licence.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Additionne cette colonne de droite. Selon les options retenues et sans même compter l’EDR managé ni le filtrage réseau haut de gamme, l’équivalent SaaS complet d’une PME de cette taille se situe &lt;strong&gt;entre 12 000 et 40 000 dollars par an&lt;/strong&gt;. En face, ta stack souveraine, entre 300 et 1 700 euros de cash, plus ton temps. Même en comparant le pire de la stack souveraine au meilleur prix SaaS, le rapport est de l’ordre de &lt;strong&gt;six à trente fois&lt;/strong&gt;. Et l’écart n’est pas figé, il se creuse. La licence SaaS, tu la repaies chaque année à vie, à chaque poste ajouté, à chaque gigaoctet ingéré en plus. Le VPS, lui, reste stable, et le temps d’installation s’amortit une fois pour toutes.&lt;/p&gt;
&lt;p&gt;Deux précisions d’honnêteté. D’abord, les tarifs que je te donnais dans le premier article tiennent tous, Sentinel autour de 4,30 dollars du gigaoctet, CrowdStrike de 60 à 185 dollars par poste, Splunk de 8 000 à 12 500 dollars. Rien n’a baissé. Ces éditeurs ne publient d’ailleurs pas de grille publique, ils masquent leurs prix et te poussent vers des engagements de volume, ce qui pénalise la PME qui n’ingère que quelques gigaoctets par jour. Ensuite, le zéro de la colonne souveraine est un zéro de licence, pas un zéro tout court. Le coût existe, mutualisé sur une ligne de VPS et étalé sur ton temps. Mais l’addition d’en face, elle, se compte par brique, par poste, et par an.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;les-pièges-pour-ne-pas-te-raconter-dhistoires&quot;&gt;Les pièges, pour ne pas te raconter d’histoires&lt;/h2&gt;
&lt;p&gt;Une stack souveraine bien montée peut mal vieillir. Quatre points de vigilance, à regarder en face.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;La rétention gonfle le VPS en silence.&lt;/strong&gt; Trois mois par défaut, mais le jour où tu veux six mois ou un an de recul pour une enquête, le disque double ou triple, et tu passes à un plan supérieur. Le coût souverain n’est pas gelé, il croît avec ta rétention et ton nombre d’agents. Anticipe-le au dimensionnement.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Le mononœud est un point de défaillance unique.&lt;/strong&gt; Toute la stack sur un seul VPS, c’est aussi une seule cible. Tes sauvegardes chiffrées hors-site, posées dès &lt;a href=&quot;https://macsouverain.com/vps-durci-socle-siem-souverain/&quot;&gt;le socle&lt;/a&gt;, ne sont pas une option. Le multi-nœud existe, mais il sort du périmètre d’une PME.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Les hébergeurs augmentent, eux aussi.&lt;/strong&gt; Souverain ne veut pas dire prix bloqué à vie, certains ont relevé leurs tarifs en 2026. La différence tient en un mot, changer d’hébergeur, c’est une migration de VPS de quelques jours. Ce n’est pas un contrat de licence qui te tient à la gorge.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Le tuning est chronophage au démarrage.&lt;/strong&gt; Les premières semaines croulent sous les faux positifs, et c’est là que se joue la qualité de tout le reste. Bâcle cette phase, et tu retombes dans la fatigue d’alerte.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Aucun de ces pièges n’est rédhibitoire. Ce sont des paramètres que tu contrôles, précisément parce que la stack est chez toi.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;conformité-la-brique-qui-rend-le-délai-tenable&quot;&gt;Conformité, la brique qui rend le délai tenable&lt;/h2&gt;
&lt;p&gt;On a ouvert la série sur une obligation, &lt;a href=&quot;https://macsouverain.com/nis2-splunk-pourquoi-pme-siem-souverain/&quot;&gt;RGPD et NIS2 t’imposent de notifier vite&lt;/a&gt;. Soixante-douze heures pour caractériser une violation côté RGPD, un triptyque de 24 heures, 72 heures et 30 jours côté NIS2.&lt;/p&gt;
&lt;p&gt;L’alerting est la brique qui rend ce délai tenable. Collecter et détecter, c’est produire la preuve. Alerter, c’est qu’un humain la voie à temps pour agir. Sans notification calibrée, le triptyque reste un vœu, la stack sait qu’il s’est passé quelque chose et personne ne le sait à temps. Avec elle, l’horloge des 72 heures démarre à la détection, pas le lundi matin quand quelqu’un rouvre le tableau de bord. C’est la différence entre une conformité sur le papier et une conformité qui tient devant le régulateur.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;en-résumé-tu-ne-dépends-de-personne&quot;&gt;En résumé, tu ne dépends de personne&lt;/h2&gt;
&lt;p&gt;Recule d’un pas et regarde ce que tu as monté. Sept épisodes, un VPS, des briques open source, et un dispositif qui voit, bloque, filtre, contrôle et, depuis aujourd’hui, prévient au bon niveau sans te harceler. Ce que les grandes entreprises paient une fortune, tu l’as bâti pour le prix d’un VPS et de quelques week-ends.&lt;/p&gt;
&lt;p&gt;Mais le vrai gain n’est pas sur la facture. Il tient dans une phrase, tu ne dépends de personne. Trois indépendances.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Juridique.&lt;/strong&gt; Tes logs de sécurité, le matériau le plus sensible de ton SI, vivent sur ton VPS européen, hors de portée du CLOUD Act. En juin 2025, devant une commission d’enquête du Sénat français, Anton Carniaux, directeur des affaires publiques et juridiques de Microsoft France, interrogé sous serment sur sa capacité à garantir que les données d’un citoyen français ne partiraient jamais vers les autorités américaines, a répondu, « Non, je ne peux pas le garantir ». Chez un fournisseur soumis au droit américain, c’est ce niveau de garantie que tu acceptes. Aucun.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Économique.&lt;/strong&gt; Pas de rente de licence, pas de choc de prix décidé sans toi. Rappelle-toi les clients de VMware après le rachat par Broadcom, licences perpétuelles supprimées, abonnement forcé. AT&amp;#x26;T est allé jusqu’à poursuivre Broadcom en justice en dénonçant une hausse de plus de 1 000 pour cent sur son renouvellement. Payer ou migrer dans la douleur, sans voix au chapitre. Personne ne peut faire ça à ta stack.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Opérationnelle.&lt;/strong&gt; Personne ne coupe ton accès, ne déprécie une fonction dont tu dépends, ne t’impose un calendrier de migration. Tu possèdes ta stack, tes logs, ta détection.&lt;/p&gt;
&lt;p&gt;Le prix de ces trois libertés, c’est un VPS et de la compétence qui reste chez toi. Compare-le une dernière fois à une facture SaaS qui revient chaque année sans t’acheter aucune d’elles.&lt;/p&gt;
&lt;p&gt;C’est là que finit la série. Pas sur un produit, sur une position. La souveraineté n’est pas un slogan, c’est une addition que tu viens de faire, et elle penche d’un seul côté.&lt;/p&gt;
&lt;hr&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;La suite, parce que tu l’as demandée.&lt;/strong&gt; Un lecteur nous a écrit après cette série pour réclamer un vrai plongeon dans Wazuh, plus loin que le tout-en-un de l’épisode 2. Message reçu. Un tutoriel Wazuh approfondi arrive bientôt, règles maison, décodeurs, tableaux de bord aux petits oignons. Tu as une demande, une coquille repérée, une brique que tu voudrais voir décortiquée ? Écris-nous.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&quot;rappel-de-la-série&quot;&gt;Rappel de la série&lt;/h2&gt;
&lt;p&gt;Sept épisodes pour monter ta plomberie de sécurité souveraine, brique par brique.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://macsouverain.com/nis2-splunk-pourquoi-pme-siem-souverain/&quot;&gt;Épisode 0, le fondement de la série.&lt;/a&gt;&lt;/strong&gt; Pourquoi une PME a besoin d’un SIEM souverain, NIS2, RGPD, et le coût du statu quo.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://macsouverain.com/vps-durci-socle-siem-souverain/&quot;&gt;Épisode 1, le socle.&lt;/a&gt;&lt;/strong&gt; Le VPS durci hors CLOUD Act.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://macsouverain.com/wazuh-tout-en-un-siem-souverain/&quot;&gt;Épisode 2, Wazuh en tout-en-un.&lt;/a&gt;&lt;/strong&gt; Manager, indexeur et tableau de bord sur un seul nœud.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://macsouverain.com/wazuh-agents-parc-siem-souverain/&quot;&gt;Épisode 3, les agents partout.&lt;/a&gt;&lt;/strong&gt; Déploiement sur tes serveurs, Mac et Windows.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://macsouverain.com/crowdsec-premiere-ligne-siem-souverain/&quot;&gt;Épisode 4, la défense réseau communautaire.&lt;/a&gt;&lt;/strong&gt; Bloquer les attaquants connus avant qu’ils n’arrivent.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://macsouverain.com/rspamd-mail-siem-souverain/&quot;&gt;Épisode 5, le filtre mail.&lt;/a&gt;&lt;/strong&gt; Anti-spam et anti-hameçonnage devant ton serveur de messagerie.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://macsouverain.com/santa-controle-execution-mac-siem-souverain/&quot;&gt;Épisode 6, le contrôle d’exécution sur les Mac.&lt;/a&gt;&lt;/strong&gt; Décider quelles applications ont le droit de démarrer.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Épisode 7, alerting et coût total.&lt;/strong&gt; Notifications calibrées et bilan financier face au SaaS. Tu viens de le lire.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;Des termes techniques ? &lt;a href=&quot;https://macsouverain.com/glossaire&quot;&gt;Consulte le glossaire.&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;</content:encoded><dc:creator>Mac Souverain</dc:creator><category>ms-pro</category><category>nis2</category><category>siem</category><category>wazuh</category><category>securite</category><category>tutoriel</category><enclosure url="https://macsouverain.com/content/images/2026/07/feature-alerting-cout-total-siem-souverain-1.png" length="0" type="image/png"/></item><item><title>Claude Cowork en local, l&apos;agent sort du bac à sable</title><link>https://macsouverain.com/radar-sharedroot-claude-cowork-bac-a-sable/</link><guid isPermaLink="true">https://macsouverain.com/radar-sharedroot-claude-cowork-bac-a-sable/</guid><description>Sur macOS en mode local, Claude Cowork monte tout ton disque dans la VM de l&apos;agent. Un dossier connecté, un message, et il en sort sans rien demander.</description><pubDate>Fri, 24 Jul 2026 10:00:00 GMT</pubDate><content:encoded>&lt;div class=&quot;radar-summary&quot;&gt;
&lt;p&gt;Tu connectes un dossier à Claude Cowork, et l&apos;agent a en réalité tout ton disque sous la main. En mode d&apos;exécution local sur macOS, Cowork monte l&apos;intégralité du système de fichiers en lecture-écriture dans la machine virtuelle de l&apos;agent. Un seul message suffit à l&apos;en faire sortir, sans qu&apos;aucune invite de permission n&apos;apparaisse. Anthropic a clôturé le rapport en « informative », sans correctif : la bascule vers l&apos;exécution cloud mitige, mais elle est en bêta graduelle, et le mode local reste exposé.&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;&lt;strong&gt;Ce que tu dois faire&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; Vérifie le mode d&apos;exécution de ton Cowork. Le cloud est devenu le défaut, mais en bêta et par vagues : va le lire dans tes réglages plutôt que de le supposer. Le local te laisse dedans.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2.&lt;/strong&gt; Ne lance jamais une session locale sur un compte macOS qui contient ton Trousseau, tes clés SSH ou ton fichier de mots de passe.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3.&lt;/strong&gt; Traite tout ce que l&apos;agent lit, page web, pièce jointe, ticket, comme du code hostile. C&apos;est l&apos;entrée de la chaîne.&lt;/p&gt;
&lt;/div&gt;
&lt;h2 id=&quot;ce-que-cowork-monte-vraiment&quot;&gt;Ce que Cowork monte vraiment&lt;/h2&gt;
&lt;br&gt;
&lt;p&gt;En mode d’exécution local sur macOS, Claude Cowork monte l’intégralité du système de fichiers de ton Mac en lecture-écriture à l’intérieur de la machine virtuelle Linux où tourne l’agent, sur un point de montage nommé &lt;code&gt;/mnt/.virtiofs-root&lt;/code&gt;, visible du seul compte &lt;code&gt;guest-root&lt;/code&gt;. Tout le disque. Pas le dossier que tu as connecté. Le bac à sable est un bac, il n’a juste pas de bords. La recherche, baptisée SharedRoot, est signée Oren Yomtov, chercheur principal en sécurité chez Accomplish AI, publiée le 23 juillet 2026 et relayée le jour même par The Hacker News.&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;La documentation d’Anthropic annonce pourtant, pour le mode local, un accès fichier « limité aux dossiers que le membre a connectés ». C’est la promesse. Le montage, lui, expose l’hôte entier.&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;L’évasion se déroule d’un bloc. L’agent démarre en utilisateur de session non privilégié, s’octroie root dans un espace de noms utilisateur, puis fait autocharger par le noyau un module du sous-système Traffic Control qui porte &lt;strong&gt;CVE-2026-46331&lt;/strong&gt;, dite pedit COW : le simple fait de le référencer suffit à le charger. La faille est notée 7.8 au CVSS 3.1 par kernel.org sur sa fiche NVD, 6.7 par Red Hat, avec un exploit public, &lt;code&gt;PACKET_EDIT_MEME.c&lt;/code&gt;, disponible depuis le 17 juin. La corruption du cache de pages empoisonne un binaire mis en cache, que le démon &lt;code&gt;coworkd&lt;/code&gt; réexécute ensuite en root. À l’arrivée, guest-root a tout le disque de l’hôte entre les mains.&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;The Hacker News avance environ 500 000 utilisateurs macOS en session locale, un ordre de grandeur qu’aucune méthode publiée n’étaye et que le billet des chercheurs ne reprend pas. Retiens l’échelle, pas le chiffre. Ce qui est certain, c’est qu’aucune invite de permission n’apparaît à aucun moment de la chaîne.&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;Sur le correctif, il faut être précis, parce que le sujet se prête au raccourci. Anthropic a clôturé le rapport en « informative », sans correctif dédié. Dans le même temps, Cowork est passé à l’exécution cloud par défaut : Anthropic ne publie pas de numéro de version pour Cowork, mais date le changement du 7 juillet 2026 et le qualifie de bêta en déploiement graduel, à partir du plan Max. Les chercheurs notent que la chaîne d’évasion locale « ne semble pas s’appliquer » côté cloud, sans l’avoir auditée. La mitigation est réelle. Elle ne referme rien pour ceux qui exécutent en local, et elle n’a pas encore atteint tout le monde.&lt;/p&gt;
&lt;br&gt;
&lt;h2 id=&quot;la-vm-donne-limpression-dun-mur&quot;&gt;La VM donne l’impression d’un mur&lt;/h2&gt;
&lt;br&gt;
&lt;p&gt;La phrase vaut au-delà de cette faille : &lt;strong&gt;le bac à sable d’un agent n’est pas une frontière de sécurité s’il monte tout le disque.&lt;/strong&gt; La machine virtuelle donne l’impression d’un cloisonnement, le montage l’annule silencieusement. Entre le dossier que tu crois partager et ton compte utilisateur complet, il y a un gouffre que rien dans l’interface ne signale.&lt;/p&gt;
&lt;br&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;À lire : &lt;a href=&quot;https://macsouverain.com/radar-agents-ia-anssi-avril-2026/&quot;&gt;L’ANSSI place Claude Cowork et OpenClaw en alerte&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;br&gt;
&lt;p&gt;La chaîne suppose que l’agent exécute déjà du code hostile. Sauf que c’est son métier : ingérer un contenu que tu ne contrôles pas, page web, PDF, ticket, puis agir. Sur ce type d’outil, l’injection de prompt n’a rien d’une hypothèse de laboratoire. C’est l’entrée principale.&lt;/p&gt;
&lt;br&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;À lire : &lt;a href=&quot;https://macsouverain.com/radar-hugging-face-compromis-modeles-locaux/&quot;&gt;Hugging Face compromis, et ton modèle local ?&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;br&gt;
&lt;p&gt;Les chercheurs recommandent quatre durcissements, et précisent que chacun, seul, suffit à casser la chaîne. Un seul traite pourtant la cause : ne monter que les dossiers réellement connectés. Les trois autres retirent une marche à cet escalier-là, le quatrième supprime l’escalier.&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;Le défaut n’est pas isolé, il fait classe. Un modèle qui s’échappe de son bac de test, un protocole d’agent qui expose l’exécution de code, maintenant un agent à qui on a monté le disque entier. Le point commun n’est jamais le bug, c’est la générosité du périmètre accordé par défaut.&lt;/p&gt;
&lt;br&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;À lire : &lt;a href=&quot;https://macsouverain.com/anthropic-mcp-rce-design-flaw-avril-2026/&quot;&gt;MCP d’Anthropic, un défaut de conception expose 200 000 instances&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;br&gt;
&lt;h2 id=&quot;ce-que-tu-fais-maintenant&quot;&gt;Ce que tu fais maintenant&lt;/h2&gt;
&lt;br&gt;
&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; Vérifie le mode d’exécution de ton Claude Cowork. Le cloud est devenu le défaut, mais en bêta et par vagues depuis le 7 juillet : ne présume pas que ton compte l’a reçu, va le lire dans les réglages. Si tu es en local, volontairement ou en héritant d’un réglage ancien, tu es concerné.&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;&lt;strong&gt;2.&lt;/strong&gt; Ne lance jamais une session locale depuis un compte macOS qui héberge ton Trousseau, tes clés SSH ou le fichier de ton gestionnaire de mots de passe. Un compte utilisateur dédié à l’agent, vide de secrets, coûte cinq minutes et retire tout intérêt à l’évasion.&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;&lt;strong&gt;3.&lt;/strong&gt; Traite tout ce que l’agent ingère comme du code hostile. Une page web, une pièce jointe, un ticket client : c’est l’entrée, et elle n’est pas filtrée. Tu ne lancerais pas ce contenu dans un script sans regarder, ne le donne pas à mâcher à un agent qui a les droits d’écriture.&lt;/p&gt;
&lt;br&gt;
&lt;h2 id=&quot;sources&quot;&gt;Sources&lt;/h2&gt;
&lt;br&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.accomplish.ai/blog/sharedroot-escaping-claude-cowork-sandbox/&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;https://www.accomplish.ai/blog/sharedroot-escaping-claude-cowork-sandbox/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://thehackernews.com/2026/07/claude-cowork-flaw-could-let-ai-agent.html&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;https://thehackernews.com/2026/07/claude-cowork-flaw-could-let-ai-agent.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://nvd.nist.gov/vuln/detail/CVE-2026-46331&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;https://nvd.nist.gov/vuln/detail/CVE-2026-46331&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://gbhackers.com/claude-cowork-sandbox-escape-flaw/&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;https://gbhackers.com/claude-cowork-sandbox-escape-flaw/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://support.claude.com/en/articles/14479288-claude-cowork-architecture-overview&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;https://support.claude.com/en/articles/14479288-claude-cowork-architecture-overview&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content:encoded><dc:creator>Mac Souverain</dc:creator><category>radar</category><category>radar-alerte</category><category>ia</category><category>agents-ia</category><category>macos</category><category>cve</category><category>cybersec</category></item><item><title>Hugging Face compromis, et ton modèle local ?</title><link>https://macsouverain.com/radar-hugging-face-compromis-modeles-locaux/</link><guid isPermaLink="true">https://macsouverain.com/radar-hugging-face-compromis-modeles-locaux/</guid><description>Hugging Face a révélé le 16 juillet s&apos;être fait compromettre. Les modèles publics n&apos;ont pas été touchés, et l&apos;attaquant était une IA d&apos;OpenAI en test.</description><pubDate>Wed, 22 Jul 2026 09:00:00 GMT</pubDate><content:encoded>&lt;div class=&quot;radar-summary&quot;&gt;
&lt;p&gt;La logithèque où LM Studio va chercher tes modèles s&apos;est fait compromettre, Hugging Face l&apos;a révélé le 16 juillet. L&apos;entreprise y a laissé des identifiants d&apos;infrastructure interne, pas les tiens, et ne relève aucune altération des modèles publics. Le twist : pas de pirate. OpenAI déclare qu&apos;il s&apos;agissait de ses propres modèles, échappés d&apos;un test interne.&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;&lt;strong&gt;Ce que tu dois surveiller&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; Sans compte Hugging Face, tu n&apos;as rien à faire. Ce que tu as téléchargé n&apos;a pas bougé.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2.&lt;/strong&gt; Avec un compte, fais tourner tes tokens d&apos;accès et relis l&apos;activité récente, par précaution.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3.&lt;/strong&gt; Hugging Face n&apos;a pas fini d&apos;évaluer si des données partenaires ou clients ont été touchées.&lt;/p&gt;
&lt;/div&gt;
&lt;h2 id=&quot;le-fait&quot;&gt;Le fait&lt;/h2&gt;
&lt;br&gt;
&lt;p&gt;Le 16 juillet 2026, Hugging Face a divulgué une intrusion survenue quelques jours plus tôt dans une partie de son infrastructure de production. Le point d’entrée, un dataset malveillant exploitant deux chemins d’exécution de code : un chargeur de dataset à code distant, et une injection de template dans sa configuration. Puis escalade de privilèges et mouvement latéral, tranquillement, sur un week-end.&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;L’entreprise a analysé le journal de l’attaque avec des agents LLM et il en ressort « plus de 17 000 événements enregistrés ». C’est un comptage forensic d’événements de log, pas un décompte des actions de l’attaquant. Hugging Face évoque dans la foulée un essaim de dizaines de milliers d’actions automatisées. Personne n’a vu un humain taper au clavier.&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;Ce qui est sorti, ce sont « un ensemble limité de jeux de données internes » et « plusieurs identifiants utilisés par nos services », plus des identifiants cloud et cluster récoltés au passage. Les clés de la maison Hugging Face, donc, pas les tiennes. Aucune fuite de données utilisateurs n’est établie. Et une semaine plus tard, l’entreprise n’a toujours pas fini d’évaluer si des données partenaires ou clients ont été touchées.&lt;/p&gt;
&lt;br&gt;
&lt;h2 id=&quot;ton-modèle-local-lui-na-pas-bougé&quot;&gt;Ton modèle local, lui, n’a pas bougé&lt;/h2&gt;
&lt;br&gt;
&lt;p&gt;Voilà le point qui t’intéresse si tu as installé LM Studio et téléchargé un modèle en MLX. Hugging Face est explicite : aucune preuve d’altération des modèles, datasets ou Spaces publics, et la chaîne d’approvisionnement, images de conteneurs et paquets publiés, « a été vérifiée saine ». Le fichier qui dort sur ton SSD est bien celui que tu crois.&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;Sauf qu’« aucune preuve d’altération » n’est pas « nous avons prouvé qu’il n’y a pas eu d’altération ». C’est la meilleure information disponible, produite par une entreprise en pleine réponse à incident. Pas une garantie notariée.&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;Si tu as un compte, Hugging Face recommande « par précaution » de faire tourner tes tokens et de relire l’activité récente. Retiens bien le « par précaution » : rien n’indique qu’un token utilisateur ait fuité.&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;Un modèle déjà posé sur ton disque se moque, lui, de l’état de santé de sa logithèque.&lt;/p&gt;
&lt;br&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;À lire : &lt;a href=&quot;https://macsouverain.com/installer-premier-modele-ia-local-mac/&quot;&gt;Installe ton premier modèle d’IA en local sur Mac&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;br&gt;
&lt;h2 id=&quot;le-twist-lattaquant-nétait-pas-un-pirate&quot;&gt;Le twist, l’attaquant n’était pas un pirate&lt;/h2&gt;
&lt;br&gt;
&lt;p&gt;Le 21 juillet, OpenAI a déclaré que l’incident avait été mené par une combinaison de ses propres modèles, dont GPT-5.6 Sol et un modèle pré-release encore plus capable, tous avec les garde-fous cyber assouplis pour les besoins de l’évaluation, pendant un test interne sur un benchmark de capacités offensives nommé ExploitGym. Déclaration reprise verbatim par TechCrunch, recoupée par Bloomberg, Fortune et The Register.&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;Reste la question qui fâche, comment ces modèles sont-ils sortis de leur environnement de test ? Selon OpenAI, ils auraient exploité une faille zero-day dans le proxy cache d’un registre de paquets. C’est la version de la partie responsable, auto-déclarée, qu’aucun audit externe n’a vérifiée. Hugging Face, lui, a fait appel à des spécialistes forensic externes, mais sur son propre incident, pas sur l’évasion côté OpenAI. Personne d’extérieur n’a regardé sous ce capot-là.&lt;/p&gt;
&lt;br&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;À lire : &lt;a href=&quot;https://macsouverain.com/radar-anthropic-mythos-acces-non-autorise-avril-2026/&quot;&gt;Mythos, le modèle qui trouve des failles tout seul, vient de fuiter&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;br&gt;
&lt;p&gt;Deux détails qui vieillissent mal. Hugging Face n’a jamais amendé son avis de sécurité : le texte officiel dit toujours que le LLM utilisé reste inconnu. L’attribution vit dans un billet d’OpenAI et des déclarations orales, pas dans ce document-là. Et l’entreprise a signalé l’incident aux forces de l’ordre, pour ce qui s’avère être l’accident d’une entreprise tierce. Personne n’a dit ce que devient ce signalement.&lt;/p&gt;
&lt;br&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;À lire : &lt;a href=&quot;https://macsouverain.com/radar-gpt-5-5-cybersec-high-capability-avril-2026/&quot;&gt;GPT-5.5 passe en capacity-class cybersec. OpenAI serre les accès.&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;br&gt;
&lt;h2 id=&quot;la-leçon-en-creux&quot;&gt;La leçon en creux&lt;/h2&gt;
&lt;br&gt;
&lt;p&gt;Pendant la réponse à incident, Hugging Face a voulu analyser les traces avec des modèles de frontière via API commerciales. Les garde-fous des fournisseurs, incapables de distinguer une équipe de réponse à incident d’un attaquant, ont bloqué ses analystes. Ils ont fini sur GLM 5.2, un modèle open-weight du chinois Z.ai, sur leur propre infrastructure.&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;Savoure le paradoxe : le modèle qui a fini par les aider venait de Chine, et c’est justement parce qu’il tournait chez eux que son origine n’avait plus d’importance. Le jour où tu enquêtes sur ta machine, le modèle qui t’aide a intérêt à tourner chez toi.&lt;/p&gt;
&lt;br&gt;
&lt;h2 id=&quot;ce-que-tu-fais-maintenant&quot;&gt;Ce que tu fais maintenant&lt;/h2&gt;
&lt;br&gt;
&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; Pas de compte Hugging Face ? Tu n’as rien à faire. Rien du tout. Hugging Face n’a relevé aucune altération sur les modèles publics, et ton installation locale ne repose sur aucun identifiant concerné.&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;&lt;strong&gt;2.&lt;/strong&gt; Compte Hugging Face ? Fais tourner tes tokens d’accès, révoque ceux dont tu ne te sers plus, relis l’activité récente. Précautionnel, pas urgent, gratuit.&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;&lt;strong&gt;3.&lt;/strong&gt; Prends l’habitude de regarder d’où vient un modèle. Dans LM Studio, chaque variante affiche son dépôt d’origine, et un dépôt officiel ou communautaire établi n’a pas le même profil de confiance qu’un miroir reposté par un compte créé le mois dernier.&lt;/p&gt;
&lt;br&gt;
&lt;h2 id=&quot;sources&quot;&gt;Sources&lt;/h2&gt;
&lt;br&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://huggingface.co/blog/security-incident-july-2026&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;https://huggingface.co/blog/security-incident-july-2026&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://openai.com/index/hugging-face-model-evaluation-security-incident/&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;https://openai.com/index/hugging-face-model-evaluation-security-incident/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://techcrunch.com/2026/07/21/openai-says-hugging-face-was-breached-by-its-pre-release-models/&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;https://techcrunch.com/2026/07/21/openai-says-hugging-face-was-breached-by-its-pre-release-models/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.theregister.com/ai-and-ml/2026/07/22/openai-admits-it-was-the-source-of-the-agent-swarm-that-attacked-hugging-face/5275939&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;https://www.theregister.com/ai-and-ml/2026/07/22/openai-admits-it-was-the-source-of-the-agent-swarm-that-attacked-hugging-face/5275939&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://fortune.com/2026/07/21/openai-says-ai-models-escaped-control-hacked-hugging-face/&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;https://fortune.com/2026/07/21/openai-says-ai-models-escaped-control-hacked-hugging-face/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.bloomberg.com/news/articles/2026-07-21/openai-says-its-ai-used-for-unprecedented-hugging-face-breach&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;https://www.bloomberg.com/news/articles/2026-07-21/openai-says-its-ai-used-for-unprecedented-hugging-face-breach&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.theregister.com/ai-and-ml/2026/07/23/openai-scored-an-own-goal-with-huggingface-attack-showing-how-open-chinese-models-are-winning/5276699&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;https://www.theregister.com/ai-and-ml/2026/07/23/openai-scored-an-own-goal-with-huggingface-attack-showing-how-open-chinese-models-are-winning/5276699&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content:encoded><dc:creator>Mac Souverain</dc:creator><category>radar</category><category>radar-signal</category><category>ia</category><category>modele-local</category><category>hugging-face</category><category>openai</category><category>supply-chain</category><category>cybersec</category></item><item><title>Santa sur tes Mac, le binaire non invité reste à la porte</title><link>https://macsouverain.com/santa-controle-execution-mac-siem-souverain/</link><guid isPermaLink="true">https://macsouverain.com/santa-controle-execution-mac-siem-souverain/</guid><description>Installer Santa sur tes Mac, cartographier en mode Monitor, verrouiller en Lockdown, écrire ton allowlist par TeamID, et faire remonter chaque blocage dans Wazuh.</description><pubDate>Mon, 20 Jul 2026 07:01:16 GMT</pubDate><content:encoded>&lt;p&gt;À l’épisode précédent, tu as posé &lt;a href=&quot;https://macsouverain.com/rspamd-mail-siem-souverain/&quot;&gt;Rspamd devant ta boîte mail&lt;/a&gt;. Chaque message entrant est noté, l’hameçonnage lève une alerte, et le verdict remonte dans Wazuh. Trois briques debout, le serveur, le réseau, le mail. Ton SIEM voit, il bloque, il filtre.&lt;/p&gt;
&lt;p&gt;Et il reste une porte. La dernière, celle qu’aucune des trois premières ne garde.&lt;/p&gt;
&lt;p&gt;Un salarié télécharge un fichier. Une fausse mise à jour d’un logiciel qu’il connaît, un utilitaire trouvé sur un forum, une pièce jointe qui a franchi le filtre mail parce qu’elle était propre le jour où elle est passée. Il double-clique. Le binaire démarre. À cette seconde précise, ni CrowdSec ni Rspamd n’ont voix au chapitre, l’exécution se joue sur le Mac, en local, loin de tes serveurs.&lt;/p&gt;
&lt;p&gt;C’est l’angle mort qui reste. Ton dispositif surveille tout ce qui entre, et laisse s’exécuter n’importe quoi une fois entré.&lt;/p&gt;
&lt;p&gt;Aujourd’hui, on ferme cette porte. On installe &lt;a href=&quot;https://northpole.security/santa&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;&lt;strong&gt;Santa&lt;/strong&gt;&lt;/a&gt;, un système de contrôle d’exécution pour macOS. Son principe est brutalement simple, tu établis la liste des applications qui ont le droit de tourner, et &lt;strong&gt;tout le reste est refusé&lt;/strong&gt;. Puis on branche ses décisions sur Wazuh, pour que chaque binaire bloqué s’affiche dans ton tableau de bord, à côté de tes rejets mail et de tes blocages réseau.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;avant-de-commencer&quot;&gt;Avant de commencer&lt;/h2&gt;
&lt;p&gt;Trois choses en tête avant la première commande.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ce qu’il te faut.&lt;/strong&gt; Un ou plusieurs Mac sous une version récente de macOS, un accès administrateur dessus, et l’agent Wazuh de l’épisode 3 déjà installé sur ces Mac, pour la partie intégration en fin de tuto. Santa est open source, maintenu par North Pole Security, la société fondée par ses créateurs d’origine, ceux qui l’ont écrit chez Google en 2014. Licence Apache 2.0, zéro version payante pour ce qu’on fait ici.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ce que ça change.&lt;/strong&gt; À la fin, un binaire inconnu ne s’exécute plus sur tes Mac. Pas « s’exécute et lève une alerte », ne s’exécute pas. Tu passes d’un poste qui lance tout ce qu’on lui présente à un poste qui ne lance que ce que tu as approuvé, et chaque tentative bloquée remonte dans ton SIEM.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ce que ça ne change pas.&lt;/strong&gt; Santa contrôle l’exécution de &lt;strong&gt;binaires&lt;/strong&gt;. Il ne lit pas le contenu d’un script Python ou d’un shell, on y reviendra, c’est sa limite la plus importante et je ne vais pas te la cacher. Il ne remplace pas ton antivirus, il ne répare pas un compte dont le mot de passe a fuité. Et il ne se règle pas tout seul, la vraie dépense n’est pas la RAM, c’est la liste que tu vas devoir tenir à jour.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;santa-ninterdit-rien-il-nautorise-que&quot;&gt;Santa n’interdit rien, il n’autorise que&lt;/h2&gt;
&lt;p&gt;Le renversement mental qui fait tout, et qui sépare Santa d’un antivirus.&lt;/p&gt;
&lt;p&gt;Un antivirus travaille sur une liste noire. Il connaît des milliers de menaces, il les cherche, il les bloque, et il laisse passer tout ce qu’il ne reconnaît pas comme mauvais. Le problème est structurel, une menace qu’il ne connaît pas encore est une menace qu’il autorise. Il court après le mal, il a toujours un train de retard.&lt;/p&gt;
&lt;p&gt;Santa fait l’inverse. Il travaille sur une &lt;strong&gt;liste blanche&lt;/strong&gt;, une allowlist. Il ne se demande pas si un binaire est mauvais, il se demande s’il est &lt;strong&gt;autorisé&lt;/strong&gt;. Ce qui n’est pas sur la liste ne tourne pas, qu’il soit malveillant, inconnu, ou parfaitement légitime mais oublié. Tu ne cours plus après les menaces, tu définis une fois ce qui a le droit d’exister sur tes machines.&lt;/p&gt;
&lt;p&gt;Ce basculement se règle avec un seul paramètre, le &lt;strong&gt;mode client&lt;/strong&gt;, et il a trois positions.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Monitor.&lt;/strong&gt; Tout s’exécute, mais tout est journalisé. Santa regarde, note, et ne bloque rien. C’est le mode d’observation, celui par lequel on commence toujours.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Lockdown.&lt;/strong&gt; Le verrou. Ce qui n’est pas explicitement autorisé est refusé. C’est la position cible, celle qui ferme la porte.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Standalone.&lt;/strong&gt; Entre les deux. Un binaire inconnu déclenche une fenêtre qui demande à l’utilisateur d’autoriser lui-même, Touch ID à l’appui. Utile sur un poste isolé, mais il délègue la décision au salarié, exactement ce qu’une allowlist d’entreprise cherche à ne pas faire.&lt;/p&gt;
&lt;p&gt;La progression est mécanique. On démarre en Monitor pour cartographier ce qui tourne réellement sur le parc, on construit l’allowlist à partir de ces observations, et on bascule en Lockdown une fois qu’on est sûr de ne bloquer personne d’utile. On ne verrouille jamais à l’aveugle.&lt;/p&gt;
&lt;p&gt;Reste à savoir comment Santa reconnaît une application. Il dispose de cinq façons de l’identifier, de la plus précise à la plus large.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Le CDHash&lt;/strong&gt;, l’empreinte d’une version exacte d’un binaire. Change à la moindre mise à jour.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Le hash SHA-256&lt;/strong&gt; du binaire lui-même. Aussi fragile, il casse à chaque update.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Le SigningID&lt;/strong&gt;, l’identifiant de signature d’une application précise d’un éditeur donné.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Le certificat&lt;/strong&gt; de signature, plus large, il couvre tout ce qu’un certificat signe.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Le TeamID&lt;/strong&gt;, l’identifiant de l’équipe Apple Developer. Le plus large côté éditeur, il autorise &lt;strong&gt;toutes&lt;/strong&gt; les applications signées par ce développeur.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Santa les évalue dans cet ordre, du plus spécifique au plus général, et la première règle qui correspond l’emporte. Pour une PME, le bon niveau se situe presque toujours sur les deux derniers. Le &lt;strong&gt;TeamID&lt;/strong&gt; dit « je fais confiance à cet éditeur », une règle unique qui survit à toutes ses mises à jour. Le &lt;strong&gt;SigningID&lt;/strong&gt; affine quand tu veux autoriser une application précise d’un éditeur sans lui signer un chèque en blanc. Les hash, eux, tu les laisses aux cas particuliers, sinon tu passes ton temps à réécrire des règles que la prochaine mise à jour cassera.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;étape-1-installer-santa-et-démarrer-en-monitor&quot;&gt;Étape 1, installer Santa et démarrer en Monitor&lt;/h2&gt;
&lt;p&gt;Sur chaque Mac, tu récupères le paquet d’installation signé depuis les publications officielles de North Pole Security, et tu l’installes.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; installer&lt;/span&gt;&lt;span style=&quot;color:#005CC5&quot;&gt; -pkg&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; santa-&lt;/span&gt;&lt;span style=&quot;color:#005CC5&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt;.pkg&lt;/span&gt;&lt;span style=&quot;color:#005CC5&quot;&gt; -target&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; /&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Santa tourne comme une &lt;strong&gt;extension système&lt;/strong&gt;, du type Endpoint Security, la même famille d’API que les outils de sécurité sérieux sur macOS. Concrètement, deux autorisations vont t’être réclamées à la première installation. macOS te demande d’&lt;strong&gt;approuver l’extension système&lt;/strong&gt;, dans Réglages, Confidentialité et sécurité. Et il faut accorder à Santa l’&lt;strong&gt;accès disque complet&lt;/strong&gt;, le Full Disk Access, pour qu’il voie tout ce qui s’exécute.&lt;/p&gt;
&lt;p&gt;Tu reconnais ce Full Disk Access, c’est celui de l’agent Wazuh à l’épisode 3, la même contrainte TCC propre à macOS. Sur un parc géré en MDM, ces deux approbations se poussent par profil de configuration, une fois pour toutes, sur toutes les machines. Sans MDM, ça se coche à la main, poste par poste. C’est le premier endroit où l’absence de MDM se paie en manipulations manuelles, autant le savoir tout de suite.&lt;/p&gt;
&lt;p&gt;Une fois installé, Santa démarre en &lt;strong&gt;Monitor&lt;/strong&gt; par défaut. C’est exactement ce qu’on veut. Vérifie son état.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;santactl&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; status&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Tu dois lire un mode &lt;code&gt;Monitor&lt;/code&gt; et une extension active. À partir de maintenant, chaque exécution sur ce Mac est notée dans son journal, sans que rien ne soit bloqué. Laisse-le tourner. Une journée de travail normal, une semaine si tu peux, le temps que tes salariés lancent tout ce qu’ils lancent d’habitude. Tu n’installes pas un mur aujourd’hui, tu prends des photos de qui passe la porte.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;étape-2-cartographier-ton-parc-et-écrire-ton-allowlist&quot;&gt;Étape 2, cartographier ton parc et écrire ton allowlist&lt;/h2&gt;
&lt;p&gt;Santa écrit ses décisions dans &lt;code&gt;/var/db/santa/santa.log&lt;/code&gt;, une ligne par exécution. Va les lire, c’est ta matière première.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;tail&lt;/span&gt;&lt;span style=&quot;color:#005CC5&quot;&gt; -f&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; /var/db/santa/santa.log&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Chaque ligne te donne l’action, la décision, la raison, le chemin du binaire, son éditeur. En Monitor, tout est en &lt;code&gt;decision=ALLOW&lt;/code&gt;, mais la raison t’apprend &lt;strong&gt;pourquoi&lt;/strong&gt; Santa aurait laissé passer, ou aurait bloqué en Lockdown. Un &lt;code&gt;reason=UNKNOWN&lt;/code&gt;, c’est un binaire que rien n’autorise, exactement ce qui tomberait le jour de la bascule.&lt;/p&gt;
&lt;p&gt;Pour transformer une observation en règle, il te faut l’identité de l’application. Santa te la donne.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;santactl&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; fileinfo&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; /Applications/UneApp.app&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Il t’affiche la signature, le TeamID, le SigningID, les empreintes, et la règle qui s’appliquerait aujourd’hui. C’est là que tu décides du bon niveau. Un éditeur en qui tu as confiance sur tout son catalogue, tu l’autorises par son TeamID.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; santactl&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; rule&lt;/span&gt;&lt;span style=&quot;color:#005CC5&quot;&gt; --allow&lt;/span&gt;&lt;span style=&quot;color:#005CC5&quot;&gt; --teamid&lt;/span&gt;&lt;span style=&quot;color:#005CC5&quot;&gt; --identifier&lt;/span&gt;&lt;span style=&quot;color:#D73A49&quot;&gt; &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt;TEAMI&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;D&lt;/span&gt;&lt;span style=&quot;color:#D73A49&quot;&gt;&gt;&lt;/span&gt;&lt;span style=&quot;color:#005CC5&quot;&gt; --comment&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; &quot;editeur maison&quot;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Une application précise, tu la prends par son SigningID.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; santactl&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; rule&lt;/span&gt;&lt;span style=&quot;color:#005CC5&quot;&gt; --allow&lt;/span&gt;&lt;span style=&quot;color:#005CC5&quot;&gt; --signingid&lt;/span&gt;&lt;span style=&quot;color:#005CC5&quot;&gt; --identifier&lt;/span&gt;&lt;span style=&quot;color:#D73A49&quot;&gt; &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt;SIGNINGI&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;D&lt;/span&gt;&lt;span style=&quot;color:#D73A49&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Tu répètes pour chaque éditeur et chaque application légitimes que Monitor a vus passer. Ta liste se construit à partir du réel, pas d’un catalogue théorique. C’est le travail de fond de cet épisode, et il n’y a pas de raccourci, une bonne allowlist est celle qui colle à ton usage.&lt;/p&gt;
&lt;p&gt;Pour un ou deux Mac, ces règles vivent en local sur chaque machine et ça suffit. Pour un parc, tu ne vas pas taper les mêmes commandes sur dix postes. Santa sait se synchroniser depuis un &lt;strong&gt;serveur central&lt;/strong&gt; qui distribue les mêmes règles à toute la flotte. L’option souveraine, c’est &lt;a href=&quot;https://github.com/groob/moroz&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;&lt;strong&gt;Moroz&lt;/strong&gt;&lt;/a&gt;, un petit serveur qui sert tes règles depuis de simples fichiers, que tu héberges toi-même. Tu le poses sur ton infrastructure et tu le gardes en Tailnet-only, la même doctrine que ton manager Wazuh depuis l’épisode 1, rien d’inutile sur l’internet ouvert. North Pole Security propose aussi son propre service de synchronisation clé en main, plus riche mais hébergé chez un tiers, à toi de trancher entre le confort et le tout-souverain.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;étape-3-verrouiller-en-lockdown&quot;&gt;Étape 3, verrouiller en Lockdown&lt;/h2&gt;
&lt;p&gt;Ton allowlist est prête, Monitor n’a plus rien de nouveau à t’apprendre. On ferme.&lt;/p&gt;
&lt;p&gt;Et c’est ici que se cache le piège qui fait perdre une demi-heure à tout le monde. &lt;strong&gt;Tu ne peux pas basculer le mode avec &lt;code&gt;defaults write&lt;/code&gt;.&lt;/strong&gt; Tu peux l’écrire, &lt;code&gt;defaults&lt;/code&gt; te dira que c’est fait, &lt;code&gt;defaults read&lt;/code&gt; te le confirmera, et santad continuera tranquillement à tourner en Monitor. Reboot compris.&lt;/p&gt;
&lt;p&gt;Ce n’est pas un bug. C’est une décision de sécurité. Santa ne lit son mode que depuis les &lt;strong&gt;préférences gérées&lt;/strong&gt;, celles qu’un profil de configuration dépose, pas depuis les préférences ordinaires qu’un utilisateur pourrait modifier. La raison est limpide, si un simple &lt;code&gt;defaults write&lt;/code&gt; suffisait à sortir du Lockdown, le premier logiciel malveillant venu s’en servirait pour se libérer. Le verrou ne s’ouvre qu’avec une clé que l’utilisateur courant n’a pas.&lt;/p&gt;
&lt;p&gt;La clé, c’est un &lt;strong&gt;profil de configuration&lt;/strong&gt;, un fichier &lt;code&gt;.mobileconfig&lt;/code&gt;. Sur un parc géré, ton MDM le pousse sur toutes les machines. Sans MDM, tu écris le profil et tu l’installes à la main, via Réglages, Profils, Installer, mot de passe administrateur ou Touch ID à l’appui. Le profil contient le mode et la configuration de journalisation.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;xml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;key&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;PayloadType&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;key&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;com.northpolesec.santa&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;key&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;ClientMode&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;key&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;integer&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;2&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;integer&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;key&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;EventLogType&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;key&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;file&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;key&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;EventLogPath&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;key&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;/var/db/santa/santa.log&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Le &lt;code&gt;ClientMode&lt;/code&gt; à &lt;code&gt;2&lt;/code&gt;, c’est le Lockdown. L’&lt;code&gt;EventLogType&lt;/code&gt; à &lt;code&gt;file&lt;/code&gt; et l’&lt;code&gt;EventLogPath&lt;/code&gt;, c’est ce qui garantit que Santa continue d’écrire son journal à l’endroit que Wazuh ira lire à l’étape suivante. Une fois le profil installé, santad le prend en compte immédiatement.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;santactl&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; status&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Le mode affiche désormais &lt;code&gt;Lockdown&lt;/code&gt;. La porte est fermée. Teste-le sans attendre, télécharge un petit utilitaire quelconque, un binaire que tu n’as pas allowlisté, et lance-le.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;./un-binaire-quelconque&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;macOS te répond que l’exécution a été bloquée par Santa. C’est le comportement attendu, et c’est la première fois que quelque chose s’oppose vraiment à un double-clic sur ton parc. Cette exécution refusée vient aussi d’atterrir dans &lt;code&gt;/var/db/santa/santa.log&lt;/code&gt;, en &lt;code&gt;decision=DENY&lt;/code&gt;. Il ne reste plus qu’à la faire remonter.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;étape-4-faire-remonter-santa-dans-wazuh&quot;&gt;Étape 4, faire remonter Santa dans Wazuh&lt;/h2&gt;
&lt;p&gt;Santa bloque, sur chaque Mac, dans son coin. Ton SIEM ne le sait pas encore. On les branche, et la boucle de la série se referme sur le poste de travail.&lt;/p&gt;
&lt;p&gt;Rien à activer côté Santa, il écrit déjà son journal. Le branchement se fait sur &lt;strong&gt;deux machines&lt;/strong&gt;, et c’est le même partage des rôles qu’à l’épisode 5. L’agent Wazuh, sur chaque Mac, lit le fichier et expédie les lignes brutes. Le &lt;strong&gt;manager&lt;/strong&gt;, sur ton VPS de l’épisode 2, décode et décide quoi en faire. Une machine ramasse, l’autre comprend.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Côté Mac&lt;/strong&gt;, tu dis à l’agent de lire le journal de Santa. Et plutôt que d’éditer chaque poste un par un, tu réutilises les &lt;strong&gt;groupes&lt;/strong&gt; de l’épisode 3. Le bloc va dans la configuration partagée du groupe &lt;code&gt;macos&lt;/code&gt;, sur le manager, dans &lt;code&gt;/var/ossec/etc/shared/macos/agent.conf&lt;/code&gt;, et le manager le pousse à tous tes Mac d’un coup.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;xml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;localfile&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;  &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;location&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;/var/db/santa/santa.log&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;location&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;  &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;log_format&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;syslog&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;log_format&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;localfile&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Tu reconnais le &lt;code&gt;&amp;#x3C;localfile&gt;&lt;/code&gt; de l’épisode 3, le mécanisme par lequel Wazuh avale n’importe quelle source de journaux. L’agent tourne en root, il lit &lt;code&gt;/var/db/santa/&lt;/code&gt; sans difficulté.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Côté manager&lt;/strong&gt;, maintenant, et sur lui seul. Un &lt;strong&gt;décodeur&lt;/strong&gt; extrait les champs utiles de la ligne, dans &lt;code&gt;/var/ossec/etc/decoders/local_decoder.xml&lt;/code&gt;.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;xml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;decoder&lt;/span&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt; name&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt;&quot;santa&quot;&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;  &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;prematch&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;santad: action=EXEC&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;prematch&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;decoder&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;decoder&lt;/span&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt; name&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt;&quot;santa-decision&quot;&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;  &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;parent&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;santa&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;parent&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;  &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;regex&lt;/span&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt; type&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt;&quot;pcre2&quot;&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;decision=(\w+)\|reason=(\w+).*?\|path=(.+)$&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;regex&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;  &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;order&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;santa_decision, santa_reason, santa_path&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;order&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;decoder&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Puis des &lt;strong&gt;règles&lt;/strong&gt; qui transforment ces champs en alertes, dans &lt;code&gt;/var/ossec/etc/rules/local_rules.xml&lt;/code&gt;, toujours sur le manager.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;xml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;group&lt;/span&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt; name&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt;&quot;santa,&quot;&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;  &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;rule&lt;/span&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt; id&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt;&quot;100500&quot;&lt;/span&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt; level&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt;&quot;0&quot;&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;    &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;decoded_as&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;santa&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;decoded_as&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;    &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;description&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;Santa, décision d&apos;exécution.&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;description&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;  &amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;rule&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;  &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;rule&lt;/span&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt; id&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt;&quot;100501&quot;&lt;/span&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt; level&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt;&quot;10&quot;&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;    &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;if_sid&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;100500&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;if_sid&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;    &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;field&lt;/span&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt; name&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt;&quot;santa_decision&quot;&lt;/span&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt; type&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt;&quot;pcre2&quot;&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;^DENY$&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;field&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;    &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;description&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;Santa, exécution bloquée, binaire $(santa_path).&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;description&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;  &amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;rule&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;  &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;rule&lt;/span&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt; id&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt;&quot;100502&quot;&lt;/span&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt; level&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt;&quot;3&quot;&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;    &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;if_sid&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;100500&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;if_sid&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;    &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;field&lt;/span&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt; name&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt;&quot;santa_decision&quot;&lt;/span&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt; type&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt;&quot;pcre2&quot;&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;^ALLOW$&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;field&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;    &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;description&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;Santa, exécution autorisée, binaire $(santa_path).&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;description&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;  &amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;rule&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;group&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;La règle mère est en niveau 0, elle décode sans alerter. Le &lt;strong&gt;blocage passe en niveau 10&lt;/strong&gt;, c’est lui qui t’intéresse, un binaire refusé sur un poste est un signal que tu veux voir. L’autorisation reste en niveau 3, une trace discrète, sans quoi ton tableau de bord se noierait sous les milliers d’exécutions légitimes de la journée, surtout tant que tu es en Monitor où tout est &lt;code&gt;ALLOW&lt;/code&gt;. L’ancrage &lt;code&gt;^DENY$&lt;/code&gt; et non &lt;code&gt;DENY&lt;/code&gt;, même précaution qu’à l’épisode 5, pour ne coller qu’à la décision exacte.&lt;/p&gt;
&lt;p&gt;Ne crois pas ce décodeur sur parole, teste-le. L’outil vit sur le manager, pas sur l’agent.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; /var/ossec/bin/wazuh-logtest&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Tu colles une vraie ligne &lt;code&gt;DENY&lt;/code&gt; de ton &lt;code&gt;santa.log&lt;/code&gt;, et il te montre ce qu’il en a compris, phase par phase, décodeur reconnu, champs extraits, règle déclenchée. Si &lt;code&gt;santa_decision&lt;/code&gt; et &lt;code&gt;santa_path&lt;/code&gt; ne sortent pas, c’est le motif d’extraction qu’il faut ajuster, et tu le sauras en trente secondes. Un mot d’honnêteté sur ce point, les lignes de Santa commencent par un horodatage entre crochets qui n’a pas la forme d’un log syslog classique. Le pré-décodage et le motif peuvent demander un ajustement selon ta version de Wazuh et le format exact de tes lignes. C’est précisément ce que &lt;code&gt;wazuh-logtest&lt;/code&gt; te confirme chez toi, avant que tu comptes sur l’alerte.&lt;/p&gt;
&lt;p&gt;Une fois le test concluant, redémarre le manager pour qu’il charge ton décodeur et tes règles.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; systemctl&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; restart&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; wazuh-manager&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Un salarié lance un binaire inconnu, Santa le refuse, l’écrit dans son journal, l’agent Wazuh le lit et l’expédie par le Tailnet, le manager le décode et lève une alerte de niveau 10, elle s’affiche dans ton tableau de bord à côté de tes blocages CrowdSec et de tes rejets Rspamd. La dernière porte est fermée, et tu la vois se fermer.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;si-ça-ne-marche-pas&quot;&gt;Si ça ne marche pas&lt;/h2&gt;
&lt;h3 id=&quot;problème-santa-est-installé-mais-ne-journalise-rien&quot;&gt;Problème, Santa est installé mais ne journalise rien&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Cause probable,&lt;/strong&gt; l’extension système n’a pas été approuvée, ou le Full Disk Access manque. Sans eux, santad ne voit pas les exécutions.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Solution,&lt;/strong&gt; dans Réglages, Confidentialité et sécurité, vérifie que l’extension Santa est autorisée et que l’accès disque complet lui est accordé. &lt;code&gt;santactl status&lt;/code&gt; doit reporter l’extension active.&lt;/p&gt;
&lt;h3 id=&quot;problème-le-mode-reste-sur-monitor-malgré-tout&quot;&gt;Problème, le mode reste sur Monitor malgré tout&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Cause probable,&lt;/strong&gt; presque à coup sûr, tu as tenté la bascule avec &lt;code&gt;defaults write&lt;/code&gt;. Santa l’ignore, par conception.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Solution,&lt;/strong&gt; passe par un profil de configuration &lt;code&gt;.mobileconfig&lt;/code&gt;, poussé par MDM ou installé à la main dans Réglages, Profils. C’est le seul canal que Santa écoute pour son mode.&lt;/p&gt;
&lt;h3 id=&quot;problème-tu-as-ajouté-des-règles-mais-santactl-status-affiche-static-rules-0&quot;&gt;Problème, tu as ajouté des règles mais &lt;code&gt;santactl status&lt;/code&gt; affiche &lt;code&gt;Static Rules: 0&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Cause probable,&lt;/strong&gt; tu lis le mauvais compteur. &lt;code&gt;santactl status&lt;/code&gt; sépare les règles par type, et &lt;code&gt;Static Rules&lt;/code&gt; ne compte que celles d’un fichier de configuration statique, pas celles que tu ajoutes en ligne de commande.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Solution,&lt;/strong&gt; une règle posée par TeamID compte dans &lt;code&gt;TeamID Rules&lt;/code&gt;, une règle SigningID dans &lt;code&gt;SigningID Rules&lt;/code&gt;. Regarde la ligne du type que tu as réellement posé, tes règles y sont.&lt;/p&gt;
&lt;h3 id=&quot;problème-rien-ne-remonte-dans-wazuh&quot;&gt;Problème, rien ne remonte dans Wazuh&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Cause probable,&lt;/strong&gt; trois suspects, à départager avant de toucher à quoi que ce soit. Soit le fichier ne grossit pas côté Mac, soit l’agent ne le lit pas, soit le manager ne sait pas le décoder. Le grand classique, décodeur et règles édités sur le Mac au lieu du manager, où ils ne servent à rien.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Solution,&lt;/strong&gt; le fichier grossit-il ? S’il grossit, va sur le &lt;strong&gt;manager&lt;/strong&gt;, passe une ligne dans &lt;code&gt;wazuh-logtest&lt;/code&gt; et regarde à quelle phase ça casse. Vérifie que &lt;code&gt;local_decoder.xml&lt;/code&gt; et &lt;code&gt;local_rules.xml&lt;/code&gt; sont bien sur cette machine-là, et que tu as redémarré &lt;code&gt;wazuh-manager&lt;/code&gt; après les avoir écrits.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;ce-que-ça-ta-coûté&quot;&gt;Ce que ça t’a coûté&lt;/h2&gt;
&lt;p&gt;La licence, rien. Santa est open source sous Apache 2.0, sans version payante, sans palier entreprise, sans quota de postes.&lt;/p&gt;
&lt;p&gt;La machine, rien non plus. Santa tourne sur le Mac que tu as déjà. Le serveur de synchronisation, si tu en montes un, c’est un service léger de plus sur ton infrastructure existante.&lt;/p&gt;
&lt;p&gt;Ton temps, un peu pour l’installation, beaucoup plus pour la calibration. Et c’est le seul vrai poste de dépense, celui qu’aucun SaaS ne t’épargnera.&lt;/p&gt;
&lt;p&gt;Sois lucide sur ce que Santa ne fait pas, parce que ces angles morts sont réels et actionnables.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Il ne voit pas les scripts.&lt;/strong&gt; Santa contrôle les binaires exécutés. Un script Python, un shell script, une macro, sont interprétés par un binaire, &lt;code&gt;python3&lt;/code&gt;, &lt;code&gt;bash&lt;/code&gt;, &lt;code&gt;osascript&lt;/code&gt;, que tu as probablement autorisé. Le script passe alors sous le radar, c’est l’interpréteur qui est jugé, pas le code qu’il exécute. C’est la limite technique majeure, et elle ouvre tout un chantier connexe, le durcissement des interpréteurs eux-mêmes.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;L’allowlist est vivante.&lt;/strong&gt; Chaque nouvel outil légitime, chaque nouvel éditeur, c’est une règle à ajouter. Le TeamID limite la casse, une règle par éditeur qui survit à ses mises à jour, mais tu ne poses pas cette liste une fois pour la laisser dix ans.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Le jour de la bascule fait mal.&lt;/strong&gt; Tout ce que tu as oublié d’allowlister est bloqué net, en pleine journée de travail. Le premier &lt;code&gt;DENY&lt;/code&gt; d’un parc, c’est souvent un vieil agent de sauvegarde dormant ou un outil que personne ne savait plus installé. D’où le temps passé en Monitor, et une procédure de whitelist rapide sous la main pour les premiers jours.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Sans MDM, c’est plus manuel.&lt;/strong&gt; Approbation de l’extension, accès disque complet, profil de mode, tout se fait poste par poste. Tenable à trois Mac, pénible à trente.&lt;/p&gt;
&lt;p&gt;Aucune de ces limites n’est une raison de renoncer. C’est le prix d’un contrôle qui reste &lt;strong&gt;entièrement chez toi&lt;/strong&gt;, aucune application soumise au cloud d’un tiers pour savoir si elle a le droit de tourner, aucun catalogue de confiance loué à un éditeur américain. Tu décides, la décision s’applique en local, et elle remonte dans ton SIEM.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;pour-les-pressés&quot;&gt;Pour les pressés&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Ce que fait cet article.&lt;/strong&gt; On installe Santa sur les Mac, on démarre en mode Monitor pour cartographier ce qui s’exécute, on écrit une allowlist par TeamID et SigningID, on bascule en Lockdown via un profil de configuration, puis on fait remonter chaque décision dans Wazuh via un décodeur et des règles maison. Le poste de travail cesse d’être l’angle mort du SIEM.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Concrètement, les commandes.&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Installer Santa sur chaque Mac : &lt;code&gt;sudo installer -pkg santa-*.pkg -target /&lt;/code&gt;, puis approuver l’extension système et accorder le Full Disk Access.&lt;/li&gt;
&lt;li&gt;Vérifier le mode par défaut : &lt;code&gt;santactl status&lt;/code&gt;, tu dois lire &lt;code&gt;Monitor&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Observer : &lt;code&gt;tail -f /var/db/santa/santa.log&lt;/code&gt;, laisser tourner plusieurs jours.&lt;/li&gt;
&lt;li&gt;Identifier une app : &lt;code&gt;santactl fileinfo /Applications/UneApp.app&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Autoriser par éditeur : &lt;code&gt;sudo santactl rule --allow --teamid --identifier &amp;#x3C;TEAMID&gt;&lt;/code&gt;, ou par app : &lt;code&gt;--signingid --identifier &amp;#x3C;SIGNINGID&gt;&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Pour un parc, centraliser les règles avec un serveur de synchronisation auto-hébergé (Moroz), gardé en Tailnet-only.&lt;/li&gt;
&lt;li&gt;Verrouiller : profil &lt;code&gt;.mobileconfig&lt;/code&gt; avec &lt;code&gt;ClientMode&lt;/code&gt; à &lt;code&gt;2&lt;/code&gt;, &lt;code&gt;EventLogType&lt;/code&gt; à &lt;code&gt;file&lt;/code&gt;, &lt;code&gt;EventLogPath&lt;/code&gt; sur &lt;code&gt;/var/db/santa/santa.log&lt;/code&gt;, poussé par MDM ou installé dans Réglages, Profils. &lt;code&gt;defaults write&lt;/code&gt; est ignoré.&lt;/li&gt;
&lt;li&gt;Intégrer à Wazuh, sur deux machines : &lt;code&gt;&amp;#x3C;localfile&gt;&lt;/code&gt; sur &lt;code&gt;/var/db/santa/santa.log&lt;/code&gt; &lt;strong&gt;côté agent&lt;/strong&gt; (via la config partagée du groupe &lt;code&gt;macos&lt;/code&gt;), décodeur et règles &lt;strong&gt;côté manager&lt;/strong&gt; (blocage en niveau 10), validation avec &lt;code&gt;/var/ossec/bin/wazuh-logtest&lt;/code&gt; &lt;strong&gt;sur le manager&lt;/strong&gt;, puis redémarrage de &lt;code&gt;wazuh-manager&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2 id=&quot;en-résumé&quot;&gt;En résumé&lt;/h2&gt;
&lt;p&gt;Tu es parti d’un dispositif qui voyait tes serveurs, bloquait ton réseau et filtrait ton mail, mais laissait s’exécuter n’importe quel binaire une fois qu’il avait atterri sur un Mac.&lt;/p&gt;
&lt;p&gt;Tu as &lt;strong&gt;installé Santa&lt;/strong&gt; sur tes postes, et compris qu’il ne travaille pas sur une liste de menaces mais sur une liste d’autorisés, tout ce qui n’est pas invité reste dehors. Tu as &lt;strong&gt;cartographié en Monitor&lt;/strong&gt; ce qui tourne réellement, puis &lt;strong&gt;écrit ton allowlist&lt;/strong&gt; par TeamID et SigningID, le bon niveau entre finesse et maintenabilité.&lt;/p&gt;
&lt;p&gt;Tu as &lt;strong&gt;verrouillé en Lockdown&lt;/strong&gt; par profil de configuration, seul canal que Santa écoute pour son mode. Et tu as &lt;strong&gt;branché tout ça sur Wazuh&lt;/strong&gt;, décodeur et règles, pour qu’un binaire refusé lève une alerte de niveau 10 dans le même tableau de bord que le reste.&lt;/p&gt;
&lt;p&gt;Le tout reste chez toi. Aucune application ne part se faire juger dans le cloud de quelqu’un d’autre, aucun tiers ne décide à ta place de ce qui a le droit de tourner sur tes machines.&lt;/p&gt;
&lt;p&gt;Ton dispositif est complet. Quatre couches qui voient et qui bloquent, du serveur au poste de travail. Reste à le rendre vivable au quotidien. Un SIEM qui te réveille dix fois par nuit pour des broutilles, tu finis par l’ignorer, et un SIEM qu’on ignore ne sert à rien. À l’épisode 7, le dernier, on calibre l’alerting pour n’être dérangé que quand ça compte, et on fait les comptes, le coût total honnête de ce que tu viens de monter, face à la facture d’un SaaS équivalent.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;rappel-de-la-série&quot;&gt;Rappel de la série&lt;/h2&gt;
&lt;p&gt;Sept épisodes pour monter ta plomberie de sécurité souveraine, brique par brique.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://macsouverain.com/nis2-splunk-pourquoi-pme-siem-souverain/&quot;&gt;Épisode 0, le fondement de la série.&lt;/a&gt;&lt;/strong&gt; Pourquoi une PME a besoin d’un SIEM souverain, NIS2, RGPD, et le coût du statu quo.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://macsouverain.com/vps-durci-socle-siem-souverain/&quot;&gt;Épisode 1, le socle.&lt;/a&gt;&lt;/strong&gt; Le VPS durci hors CLOUD Act.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://macsouverain.com/wazuh-tout-en-un-siem-souverain/&quot;&gt;Épisode 2, Wazuh en tout-en-un.&lt;/a&gt;&lt;/strong&gt; Manager, indexeur et tableau de bord sur un seul nœud.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://macsouverain.com/wazuh-agents-parc-siem-souverain/&quot;&gt;Épisode 3, les agents partout.&lt;/a&gt;&lt;/strong&gt; Déploiement sur tes serveurs, Mac et Windows.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://macsouverain.com/crowdsec-premiere-ligne-siem-souverain/&quot;&gt;Épisode 4, la défense réseau communautaire.&lt;/a&gt;&lt;/strong&gt; Bloquer les attaquants connus avant qu’ils n’arrivent.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://macsouverain.com/rspamd-mail-siem-souverain/&quot;&gt;Épisode 5, le filtre mail.&lt;/a&gt;&lt;/strong&gt; Anti-spam et anti-hameçonnage devant ton serveur de messagerie.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Épisode 6, le contrôle d’exécution sur les Mac.&lt;/strong&gt; Décider quelles applications ont le droit de démarrer. Tu viens de le lire.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Épisode 7, alerting et coût total.&lt;/strong&gt; Notifications calibrées et bilan financier honnête face au SaaS.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;Des termes techniques ? &lt;a href=&quot;https://macsouverain.com/glossaire&quot;&gt;Consulte le glossaire.&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;</content:encoded><dc:creator>Mac Souverain</dc:creator><category>ms-pro</category><category>nis2</category><category>siem</category><category>santa</category><category>securite</category><category>macos</category><category>tutoriel</category><enclosure url="https://macsouverain.com/content/images/2026/07/feature-santa-controle-execution-mac-siem-souverain-1.png" length="0" type="image/png"/></item><item><title>Les MCP, la porte dérobée de ton IA</title><link>https://macsouverain.com/les-mcp-porte-derobee-de-ton-ia/</link><guid isPermaLink="true">https://macsouverain.com/les-mcp-porte-derobee-de-ton-ia/</guid><description>Les serveurs MCP donnent à ton IA un accès réel à ton Mac : fichiers, shell. Pratique, mais c&apos;est une porte dérobée. Voilà comment la verrouiller.</description><pubDate>Sat, 18 Jul 2026 15:17:13 GMT</pubDate><content:encoded>&lt;h2 id=&quot;le-confort-qui-te-tend-un-piège&quot;&gt;Le confort qui te tend un piège&lt;/h2&gt;
&lt;p&gt;Tu installes Claude Desktop sur ton Mac. En quelques clics, tu lui branches un serveur qui lit tes fichiers, un autre qui interroge ta base de données, un troisième qui lance des commandes dans ton terminal. D’un coup, ton assistant ne se contente plus de discuter, il agit. Il ouvre tes documents, réécrit ton code, trie tes dossiers pendant que tu bois ton café.&lt;/p&gt;
&lt;p&gt;C’est bluffant. C’est aussi le moment exact où tu viens d’ouvrir une porte sur ta machine sans en garder la clé.&lt;/p&gt;
&lt;p&gt;Ces petits connecteurs s’appellent des serveurs MCP. Ils sont la raison pour laquelle ton IA est passée de bavarde à utile. Ils sont aussi la surface d’attaque la plus mal comprise de tout l’écosystème IA de 2026. Et le problème n’est pas théorique : une faille de conception dans le protocole a exposé environ 200 000 instances à l’exécution de code à distance, en avril dernier.&lt;/p&gt;
&lt;p&gt;Voyons ce que tu branches vraiment sur ton Mac quand tu ajoutes un MCP. Et surtout, comment le faire sans te faire avoir.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;un-mcp-cest-quoi-au-juste&quot;&gt;Un MCP, c’est quoi au juste&lt;/h2&gt;
&lt;p&gt;MCP, ça veut dire Model Context Protocol. Anthropic l’a publié fin 2024 comme une norme ouverte, et tout le monde l’a adoptée, Claude bien sûr, l’app Claude Desktop comme l’outil en ligne de commande Claude Code, mais aussi Cursor, Windsurf, et une bonne partie des outils IA que tu croises.&lt;/p&gt;
&lt;p&gt;L’idée est simple, presque évidente. Un modèle de langage, tout seul, ne sait que parler. Il ne peut ni ouvrir un fichier, ni lire ta base, ni envoyer un mail. Le MCP est le câble standard qui relie ton assistant à des outils extérieurs. Un serveur MCP d’un côté expose une capacité, lire des fichiers, requêter une API, exécuter une commande. L’assistant de l’autre côté décide quand s’en servir.&lt;/p&gt;
&lt;p&gt;Pense à une prise universelle. Avant, chaque appareil avait son branchement propriétaire. Le MCP, c’est la prise unique où tu enfiches ce que tu veux : un connecteur pour tes fichiers, un pour ton agenda, un pour ton dépôt Git. Ton IA pioche dedans à la demande.&lt;/p&gt;
&lt;p&gt;Concrètement, le flux ressemble à ça. Tu demandes à Claude de ranger tes captures d’écran. Le modèle repère qu’il a un serveur MCP filesystem à disposition. Il l’appelle, liste ton dossier, déplace les fichiers. Tu vois le résultat, pas la mécanique. Le serveur a exécuté une action réelle sur ton disque, décidée par le modèle, déclenchée par ta phrase.&lt;/p&gt;
&lt;p&gt;C’est exactement là que le confort bascule en risque.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;pourquoi-cest-une-porte-dérobée&quot;&gt;Pourquoi c’est une porte dérobée&lt;/h2&gt;
&lt;p&gt;Reprends le flux, mais regarde qui décide et qui exécute.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Toi&lt;/strong&gt;, tu écris une phrase en langage naturel. &lt;strong&gt;Le modèle&lt;/strong&gt;, une boîte statistique que personne ne contrôle ligne à ligne, décide quel outil appeler et avec quels arguments. &lt;strong&gt;Le serveur MCP&lt;/strong&gt; exécute ce qu’on lui demande, sur ta machine, avec tes droits. Entre les trois, il n’y a pas de garde du corps. Personne pour lever la main et dire “attends, tu es sûr de vouloir supprimer ça ?”.&lt;/p&gt;
&lt;p&gt;Un serveur MCP mal conçu ou franchement malveillant, c’est un exécuteur de commandes qui obéit à un intermédiaire que tu ne pilotes pas. Le modèle peut être manipulé par une consigne cachée, un texte piégé dans un fichier qu’il lit, une page web qu’on lui fait ouvrir. On appelle ça une injection de prompt. Le résultat : ton assistant se retrouve à lancer une action que tu n’as jamais demandée, via un serveur qui, lui, n’a aucune raison de refuser.&lt;/p&gt;
&lt;p&gt;Et le vrai piège est dans la configuration. Un fichier de config MCP, ce n’est pas une liste de préférences bien sages. C’est, en pratique, un script shell déguisé. Il définit quels exécutables lancer, avec quels arguments, quelles variables d’environnement. Charger une config MCP que tu n’as pas lue, c’est lancer un script que tu n’as pas relu, et potentiellement malveillant. La nuance, c’est que celui-ci a l’air inoffensif parce qu’il est planqué dans un fichier JSON.&lt;/p&gt;
&lt;p&gt;Le mot “porte dérobée” est mérité pour une raison précise : tu ne vois rien passer. Pas de fenêtre de confirmation, pas de trace visible, pas d’alerte. Le modèle décide, le serveur exécute, et toi tu regardes le résultat en pensant que ton IA t’a rendu service.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;lincident-qui-a-mis-tout-le-monde-daccord&quot;&gt;L’incident qui a mis tout le monde d’accord&lt;/h2&gt;
&lt;p&gt;Ce n’est pas une hypothèse de labo. C’est arrivé, à grande échelle, en avril 2026.&lt;/p&gt;
&lt;p&gt;Le 15 avril, l’équipe de recherche d’OX Security publie un rapport au titre peu modeste, “The Mother of All AI Supply Chains”. Le constat est brutal : l’interface principale des SDK MCP officiels, celle qui fait dialoguer l’outil et le serveur en local, permet à une simple configuration de déclencher l’exécution de commandes système arbitraires. Sans validation des entrées, sans isolation par défaut.&lt;/p&gt;
&lt;p&gt;Les chiffres donnent le vertige :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;7 000 et plus&lt;/strong&gt; serveurs MCP publics indexés&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;150 millions et plus&lt;/strong&gt; de téléchargements des SDK et serveurs concernés&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;environ 200 000 instances&lt;/strong&gt; estimées vulnérables&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;10 CVE&lt;/strong&gt; émis, dont CVE-2026-30615 sur Windsurf : une injection de prompt via HTML malveillant menant à l’exécution de code en local, notée 8.0 sur 10 en sévérité&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Côté Mac, ce ne sont pas des noms abstraits. Cursor, Windsurf et Claude Desktop utilisent ces SDK, et sont concrètement touchés par leurs intégrations MCP. Les chercheurs ont validé leurs attaques sur six plateformes en production. Ça marchait pour de vrai.&lt;/p&gt;
&lt;p&gt;Et voilà le meilleur, ou le pire selon le côté où tu te trouves. La réponse d’Anthropic, telle que rapportée par OX Security et confirmée par plusieurs reprises, tient en deux mots : “by design”. Le comportement est jugé normal, à condition que l’utilisateur, ou le développeur en aval, fasse lui-même le travail de sécurisation. Anthropic refuse de modifier le protocole.&lt;/p&gt;
&lt;p&gt;L’argument est défendable sur le papier. Un protocole n’est pas un bac à sable, et personne n’oblige un standard à border tous les usages. Sauf que dans les faits, Anthropic transfère la responsabilité du verrouillage à des gens qui n’ont jamais signé pour ça : le particulier qui installe Claude Desktop sans notion de sécurité, la PME qui branche un connecteur trouvé sur un dépôt public. Les correctifs viennent des outils en aval, Cursor, Windsurf et les autres, pas du protocole lui-même.&lt;/p&gt;
&lt;p&gt;Traduction : le sandbox, c’est ton problème. Autant le savoir avant, pas après.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;À lire : &lt;a href=&quot;https://macsouverain.com/anthropic-mcp-rce-design-flaw-avril-2026/&quot;&gt;MCP d’Anthropic, un défaut de conception expose 200 000 instances&lt;/a&gt;, notre radar sur la faille et les CVE associés.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&quot;durcir-tes-mcp-sans-renoncer-au-confort&quot;&gt;Durcir tes MCP sans renoncer au confort&lt;/h2&gt;
&lt;p&gt;Bonne nouvelle : tu n’as pas à choisir entre “IA branchée sur tout” et “IA débranchée et inutile”. Le curseur se règle. Voilà comment le mettre au bon endroit.&lt;/p&gt;
&lt;p&gt;Avant de plonger dans les réglages, sache où ça se passe. Sur Claude Desktop, tes serveurs MCP se gèrent dans Réglages puis Développeur, et le bouton “Modifier la config” ouvre le fichier &lt;code&gt;claude_desktop_config.json&lt;/code&gt;.&lt;/p&gt;
&lt;figure class=&quot;kg-card kg-image-card&quot;&gt;
&lt;img src=&quot;https://macsouverain.com/content/images/2026/07/capture-01-claude-desktop-developpeur-les-mcp-porte-derobee-de-ton-ia.png&quot; class=&quot;kg-image&quot; loading=&quot;lazy&quot; alt=&quot;Dans Claude Desktop, Réglages puis Développeur, tes serveurs MCP locaux et le bouton pour ouvrir la config.&quot;&gt;
&lt;/figure&gt;
&lt;p&gt;À l’ouverture, une config MCP ressemble à ça : quelques serveurs déclarés, chacun avec sa commande et ses accès. Rien de plus qu’un script qui attend son heure.&lt;/p&gt;
&lt;figure class=&quot;kg-card kg-image-card&quot;&gt;
&lt;img src=&quot;https://macsouverain.com/content/images/2026/07/capture-02-config-mcp-les-mcp-porte-derobee-de-ton-ia.png&quot; class=&quot;kg-image&quot; loading=&quot;lazy&quot; alt=&quot;Une config MCP : deux serveurs déclarés, chacun avec sa commande et ses accès.&quot;&gt;
&lt;/figure&gt;
&lt;p&gt;&lt;strong&gt;1. Inventorie tes serveurs MCP actifs.&lt;/strong&gt; Sur Claude Desktop, va dans Réglages puis Développeur, et clique sur “Modifier la config” : ça ouvre &lt;code&gt;~/Library/Application Support/Claude/claude_desktop_config.json&lt;/code&gt;. Sur Cursor, va dans Réglages puis MCP. Sur Windsurf, la liste est accessible depuis l’IDE. Désactive tout serveur que tu n’as pas déployé toi-même ou dont tu n’as pas lu le code. Si tu ne sais plus pourquoi il est là, il ne devrait pas y être.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2. Applique le moindre privilège, sérieusement.&lt;/strong&gt; Un serveur MCP filesystem ne doit jamais pointer sur &lt;code&gt;/&lt;/code&gt; ni sur &lt;code&gt;~&lt;/code&gt;. Donne-lui le sous-dossier précis du projet en cours, rien de plus. Ton assistant n’a pas besoin d’un accès total à ton disque pour ranger trois captures d’écran.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3. Traite toute config tierce comme hostile par défaut.&lt;/strong&gt; Un bout de config récupéré sur GitHub, un fichier partagé sur Slack, l’export d’un collègue, un dépôt cloné : lis la configuration intégralement avant de l’activer. Les chemins exécutables, les commandes, les variables d’environnement. Rappelle-toi que c’est un script shell déguisé. Personne ne lance un &lt;code&gt;.sh&lt;/code&gt; inconnu sans le lire. Un &lt;code&gt;.json&lt;/code&gt; de config MCP, c’est pareil.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;4. Si tu es sur Claude Code, verrouille par la config, pas par la consigne.&lt;/strong&gt; Tu peux écrire dans ton &lt;code&gt;CLAUDE.md&lt;/code&gt; une règle du genre “n’active aucun serveur MCP sans mon accord”. Ça documente ton intention, mais ne te repose pas dessus : tu viens de lire pourquoi un modèle qu’on manipule n’obéit pas toujours aux consignes. La vraie serrure est dans ton &lt;code&gt;settings.json&lt;/code&gt;. Tiens-y une liste blanche des outils MCP autorisés et refuse le reste avec &lt;code&gt;permissions.deny&lt;/code&gt;, et laisse active la demande d’approbation pour tout serveur déclaré dans un &lt;code&gt;.mcp.json&lt;/code&gt; de projet, ne l’auto-approuve jamais. Le &lt;code&gt;CLAUDE.md&lt;/code&gt; rappelle la règle à l’humain, le &lt;code&gt;settings.json&lt;/code&gt; l’impose à la machine.&lt;/p&gt;
&lt;figure class=&quot;kg-card kg-image-card&quot;&gt;
&lt;img src=&quot;https://macsouverain.com/content/images/2026/07/capture-03-settings-permissions-les-mcp-porte-derobee-de-ton-ia.png&quot; class=&quot;kg-image&quot; loading=&quot;lazy&quot; alt=&quot;Un settings.json avec une liste blanche d&amp;#x27;outils MCP autorisés et un deny pour le reste.&quot;&gt;
&lt;/figure&gt;
&lt;p&gt;&lt;strong&gt;5. Verrouille les serveurs qui écoutent le réseau.&lt;/strong&gt; Certains MCP tournent comme un petit serveur HTTP local. Vérifie qu’il est lié à &lt;code&gt;127.0.0.1&lt;/code&gt;, jamais à &lt;code&gt;0.0.0.0&lt;/code&gt;. Sinon, une page web malveillante ouverte dans ton navigateur peut, dans le pire cas, déclencher une exécution sur ta machine.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;~ % lsof -iTCP -sTCP:LISTEN -nP | grep node&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;node    41827 demo   23u  IPv4 0x9f3a5c  0t0  TCP 127.0.0.1:8787 (LISTEN)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;node    41902 demo   25u  IPv4 0x9f3b1d  0t0  TCP *:8788 (LISTEN)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;La première ligne est bien sagement sur &lt;code&gt;127.0.0.1&lt;/code&gt;. La seconde écoute sur &lt;code&gt;*&lt;/code&gt;, donc sur toutes les interfaces : c’est celle que tu dois corriger.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;6. Mets à jour les outils touchés.&lt;/strong&gt; Cursor, Windsurf, Claude Desktop et les frameworks concernés ont publié des versions correctives à partir d’avril 2026. Vérifie dans les notes de version que la faille est explicitement traitée, pas juste “diverses améliorations de sécurité”.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;7. Préfère le local au distant.&lt;/strong&gt; Un serveur MCP qui tourne sur ta machine et n’expose rien au réseau est bien plus facile à raisonner qu’un connecteur distant hébergé chez un tiers. Chaque service extérieur ajouté à la boucle, c’est une entreprise de plus qui peut lire ce qui transite, ou se faire compromettre à ta place.&lt;/p&gt;
&lt;p&gt;Et avant d’installer un nouveau serveur MCP tiers, pose-toi trois questions. Qui l’a écrit et le code est-il consultable ? De quels accès a-t-il réellement besoin, et est-ce que la config demande davantage ? Qu’est-ce qui se passe le jour où ce serveur est compromis ? Si tu ne peux pas répondre aux trois, ne l’installe pas.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;en-résumé&quot;&gt;En résumé&lt;/h2&gt;
&lt;p&gt;Les MCP sont ce qui rend ton assistant IA vraiment utile. Ils sont aussi ce qui le relie à tes fichiers, ta base, ton shell, avec tes droits et sans témoin. Le modèle décide, le serveur exécute, tu ne vois rien passer. C’est la définition d’une porte dérobée, et avril 2026 a prouvé qu’elle était grande ouverte pour environ 200 000 installations.&lt;/p&gt;
&lt;p&gt;La souveraineté, ici, ne consiste pas à débrancher ton IA. Elle consiste à savoir ce qui est branché, à ne donner que le strict accès nécessaire, et à ne jamais charger une config que tu n’as pas lue. Un serveur MCP local, au périmètre serré, dont tu as lu le code, c’est un outil. Le même serveur, tiré d’un dépôt inconnu avec un accès à tout ton disque, c’est une faille avec une interface amicale.&lt;/p&gt;
&lt;p&gt;Inventorie tes MCP. Coupe ceux que tu ne reconnais pas. Réduis les accès de ceux que tu gardes. Le reste, ce sont juste de bonnes habitudes que tu as déjà pour le reste de ta machine.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;À lire aussi : &lt;a href=&quot;https://macsouverain.com/ton-ia-peut-etre-eteinte-monte-la-tienne/&quot;&gt;Ton IA peut être éteinte par les US, monte la tienne&lt;/a&gt; et &lt;a href=&quot;https://macsouverain.com/38-apple-intelligence-ce-qui-sort-de-ton-mac/&quot;&gt;Apple Intelligence, ce qui sort vraiment de ton Mac&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;</content:encoded><dc:creator>Mac Souverain</dc:creator><category>ia</category><category>securite</category><category>mcp</category><category>macos</category><category>tutoriel</category><enclosure url="https://macsouverain.com/content/images/2026/07/feature-les-mcp-porte-derobee-de-ton-ia.png" length="0" type="image/png"/></item><item><title>Rspamd devant ta boîte mail, le phishing s&apos;arrête au paillasson</title><link>https://macsouverain.com/rspamd-mail-siem-souverain/</link><guid isPermaLink="true">https://macsouverain.com/rspamd-mail-siem-souverain/</guid><description>Installer Rspamd devant ton serveur mail, régler le scoring anti-spam et anti-hameçonnage, et faire remonter chaque verdict dans ton SIEM Wazuh.</description><pubDate>Thu, 16 Jul 2026 14:03:38 GMT</pubDate><content:encoded>&lt;p&gt;À l’épisode précédent, tu as posé &lt;a href=&quot;https://macsouverain.com/crowdsec-premiere-ligne-siem-souverain/&quot;&gt;CrowdSec en première ligne&lt;/a&gt;. Ton pare-feu refoule désormais les IP malveillantes avant qu’elles ne touchent tes services, et chaque décision remonte dans Wazuh. Ton SIEM voit et il mord.&lt;/p&gt;
&lt;p&gt;Sauf que l’attaque qui va te coûter cher n’arrivera pas par le port SSH.&lt;/p&gt;
&lt;p&gt;Elle arrivera par un mail. Une fausse facture qui imite ton fournisseur habituel, un lien qui ressemble à ton portail bancaire, une pièce jointe que ta comptable ouvrira parce que c’est son travail d’ouvrir des PJ factures.&lt;/p&gt;
&lt;p&gt;Ce mail-là traverse ton pare-feu sans un bruit, parce qu’il entre par une porte que tu as toi-même laissée ouverte, le port 25. CrowdSec ne bloquera rien, l’expéditeur a une IP propre. Wazuh ne verra rien, personne ne lui a dit de regarder de ce côté.&lt;/p&gt;
&lt;p&gt;C’est l’angle mort du dispositif. Trois briques posées, et le vecteur d’intrusion numéro un des PME passe encore en clair.&lt;/p&gt;
&lt;p&gt;Aujourd’hui, on le bouche. On installe &lt;a href=&quot;https://rspamd.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;&lt;strong&gt;Rspamd&lt;/strong&gt;&lt;/a&gt;, un moteur de filtrage qui s’intercale devant ton serveur mail, note chaque message entrant et décide de son sort. Puis on branche sa journalisation sur Wazuh, pour que chaque verdict, spam bloqué, hameçonnage détecté, message livré, s’affiche dans ton tableau de bord unique.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;avant-de-commencer&quot;&gt;Avant de commencer&lt;/h2&gt;
&lt;p&gt;Trois choses en tête avant la première commande.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ce qu’il te faut.&lt;/strong&gt; Un serveur mail que tu administres, Postfix ou Exim, sur un serveur durci comme celui de l’épisode 1. Le manager Wazuh de l’épisode 2 en place sur ton VPS, et l’agent Wazuh de l’épisode 3 déjà installé sur ce serveur mail, pour la partie intégration en fin de tuto. Un accès administrateur, et Redis, qu’on installera en même temps que le moteur.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ce que ça change.&lt;/strong&gt; À la fin, chaque message entrant est noté avant d’atteindre la boîte de ton salarié. Les évidences sont refusées à la porte, les douteux arrivent marqués, les tentatives d’hameçonnage lèvent une alerte dans ton SIEM. Tu passes d’une boîte mail aveugle à une boîte mail instrumentée.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ce que ça ne change pas.&lt;/strong&gt; Rspamd filtre le mail &lt;strong&gt;entrant&lt;/strong&gt;. Ce n’est pas un antivirus de poste, ce n’est pas un remplaçant du bon sens de tes salariés, et ça ne protège pas contre un compte dont le mot de passe a fuité, l’attaquant est alors dedans, pas dehors. Et Rspamd n’est pas infaillible, il te trompera parfois. La question n’est pas s’il se trompe, c’est de quel côté tu règles le curseur quand il se trompe.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;rspamd-ne-dit-pas-oui-ou-non-il-note&quot;&gt;Rspamd ne dit pas oui ou non, il note&lt;/h2&gt;
&lt;p&gt;Le point qui change tout, et qui sépare Rspamd des filtres anti-spam classiques.&lt;/p&gt;
&lt;p&gt;Un filtre binaire regarde un message et tranche, spam ou pas spam. Le résultat est une porte, ouverte ou fermée, et le monde réel se venge vite de cette simplification. Une facture légitime avec un lien raccourci et une pièce jointe se fait jeter, une arnaque bien écrite passe.&lt;/p&gt;
&lt;p&gt;Rspamd, lui, &lt;strong&gt;accumule&lt;/strong&gt;. Il fait tourner des dizaines de vérifications sur le même message, chacune rapportant un petit poids, positif ou négatif. L’authentification de l’expéditeur échoue, plus deux points. Le domaine est sur une liste noire réputée, plus quatre. L’URL affichée ne correspond pas à l’URL réelle du lien, plus sept. Le message ressemble à cent autres déjà signalés comme spam, plus cinq. À l’inverse, l’expéditeur est correctement signé et connu, moins un.&lt;/p&gt;
&lt;p&gt;À la fin, il obtient un &lt;strong&gt;score&lt;/strong&gt;, et ce score déclenche une &lt;strong&gt;action&lt;/strong&gt; selon des seuils que tu fixes toi-même. La configuration recommandée est celle-ci.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Score 4, &lt;code&gt;greylist&lt;/code&gt;.&lt;/strong&gt; Le serveur expéditeur est prié de repasser plus tard. Un vrai serveur mail le fait, un robot de spam rarement.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Score 6, &lt;code&gt;add header&lt;/code&gt;.&lt;/strong&gt; Le message est livré, mais marqué. Ton client mail peut le ranger en indésirables.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Score 15, &lt;code&gt;reject&lt;/code&gt;.&lt;/strong&gt; Le message est refusé à la porte, il n’entre jamais.&lt;/p&gt;
&lt;p&gt;Trois niveaux de fermeté, pas une porte. C’est la même philosophie que le SIEM de l’épisode 2, on ne cherche pas la certitude, on cherche à graduer sa réponse à un signal incertain.&lt;/p&gt;
&lt;p&gt;Côté architecture, Rspamd tourne en plusieurs processus spécialisés. Le &lt;strong&gt;worker proxy&lt;/strong&gt; est celui qui parle à ton serveur mail, en protocole milter, sur le port 11332. Le &lt;strong&gt;worker normal&lt;/strong&gt; fait le calcul du score. Le &lt;strong&gt;worker controller&lt;/strong&gt; sert l’interface web et l’apprentissage. Tu n’auras à connaître que le premier, c’est lui qu’on branche.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;étape-1-installer-le-moteur&quot;&gt;Étape 1, installer le moteur&lt;/h2&gt;
&lt;p&gt;Sur la machine qui héberge ton serveur mail. Le dépôt officiel Rspamd, puis le paquet, puis Redis, dont Rspamd a besoin pour ses statistiques, son filtre bayésien et son greylisting.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;curl&lt;/span&gt;&lt;span style=&quot;color:#005CC5&quot;&gt; -fsSL&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; https://rspamd.com/apt-stable/gpg.key&lt;/span&gt;&lt;span style=&quot;color:#D73A49&quot;&gt; |&lt;/span&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt; sudo&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; gpg&lt;/span&gt;&lt;span style=&quot;color:#005CC5&quot;&gt; --dearmor&lt;/span&gt;&lt;span style=&quot;color:#005CC5&quot;&gt; -o&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; /usr/share/keyrings/rspamd.gpg&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#005CC5&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; &quot;deb [signed-by=/usr/share/keyrings/rspamd.gpg] https://rspamd.com/apt-stable/ $(&lt;/span&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;lsb_release&lt;/span&gt;&lt;span style=&quot;color:#005CC5&quot;&gt; -cs&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt;) main&quot;&lt;/span&gt;&lt;span style=&quot;color:#D73A49&quot;&gt; |&lt;/span&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt; sudo&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; tee&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; /etc/apt/sources.list.d/rspamd.list&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; apt&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; update&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; apt&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; install&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; rspamd&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; redis-server&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Le dépôt &lt;code&gt;apt-stable&lt;/code&gt; est la branche de production, celle que tu veux sur un serveur mail. Rspamd est en version 4.x depuis mars 2026.&lt;/p&gt;
&lt;p&gt;Dis-lui où trouver Redis, dans &lt;code&gt;/etc/rspamd/local.d/redis.conf&lt;/code&gt;.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;servers = &quot;127.0.0.1:6379&quot;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Une règle de survie avec Rspamd, et elle vaut pour tout le tuto. &lt;strong&gt;Tu ne touches jamais aux fichiers de &lt;code&gt;/etc/rspamd/&lt;/code&gt; directement.&lt;/strong&gt; Tu écris tes réglages dans &lt;code&gt;/etc/rspamd/local.d/&lt;/code&gt;, qui vient s’ajouter par-dessus la configuration par défaut. Une mise à jour du paquet écrase la première, jamais la seconde.&lt;/p&gt;
&lt;p&gt;Fixe ensuite un mot de passe pour l’interface web.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;rspamadm&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; pw&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Il te sort une empreinte que tu recopies dans &lt;code&gt;/etc/rspamd/local.d/worker-controller.inc&lt;/code&gt;.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;password = &quot;$2$ton_empreinte_ici&quot;;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;L’interface écoute sur le port 11334, en local uniquement. &lt;strong&gt;Laisse-la comme ça.&lt;/strong&gt; Doctrine de la série depuis l’épisode 1, rien d’inutile sur l’internet ouvert, tu y accèdes par ton Tailnet ou un tunnel SSH.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;étape-2-le-brancher-devant-ton-serveur-mail&quot;&gt;Étape 2, le brancher devant ton serveur mail&lt;/h2&gt;
&lt;p&gt;Rspamd tourne, mais aucun message ne lui est présenté. Il faut que ton serveur mail lui soumette chaque courrier entrant avant de l’accepter.&lt;/p&gt;
&lt;p&gt;Le mécanisme s’appelle &lt;strong&gt;milter&lt;/strong&gt;, pour mail filter. Ton serveur mail met le message en pause pendant la transaction SMTP, le tend à Rspamd, attend le verdict, et agit en conséquence. Le message est jugé &lt;strong&gt;avant&lt;/strong&gt; d’être accepté, c’est toute la différence avec un filtre qui trie après coup dans la boîte.&lt;/p&gt;
&lt;p&gt;Sur Postfix, trois lignes dans &lt;code&gt;/etc/postfix/main.cf&lt;/code&gt;.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;smtpd_milters = inet:localhost:11332&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;milter_protocol = 6&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;milter_default_action = accept&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;La ligne qui mérite ton attention, c’est la troisième. &lt;code&gt;accept&lt;/code&gt; veut dire que &lt;strong&gt;si Rspamd est en panne, le courrier passe sans filtrage&lt;/strong&gt;. Tu privilégies la continuité du service. L’autre valeur couramment retenue est &lt;code&gt;tempfail&lt;/code&gt;, qui demande à l’expéditeur de repasser plus tard, ton mail est protégé même Rspamd à terre, mais une panne prolongée devient un incident de messagerie. Choisis en connaissance de cause. Pour une PME, &lt;code&gt;accept&lt;/code&gt; est le défaut raisonnable, à condition de surveiller le service Rspamd dans ton SIEM.&lt;/p&gt;
&lt;p&gt;Sur Exim, le branchement passe par le worker normal en HTTP, pas par le milter.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;spamd_address = 127.0.0.1 11333 variant=rspamd&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Recharge ton serveur mail, et envoie-toi un message depuis une adresse extérieure. Rspamd commence à noter.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;étape-3-régler-les-seuils-et-armer-lanti-hameçonnage&quot;&gt;Étape 3, régler les seuils et armer l’anti-hameçonnage&lt;/h2&gt;
&lt;p&gt;Les seuils d’abord, dans &lt;code&gt;/etc/rspamd/local.d/actions.conf&lt;/code&gt;.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;greylist = 4;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;add_header = 6;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;reject = 15;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Ce sont les valeurs recommandées, et elles sont volontairement clémentes. Un &lt;code&gt;reject&lt;/code&gt; à 15 signifie qu’il faut une accumulation massive de signaux négatifs pour qu’un message soit refusé. C’est ce que tu veux au démarrage, on durcit plus tard, une fois qu’on a lu ses propres journaux.&lt;/p&gt;
&lt;p&gt;L’authentification de l’expéditeur ensuite. Trois modules actifs par défaut, &lt;strong&gt;SPF&lt;/strong&gt; (Sender Policy Framework), &lt;strong&gt;DKIM&lt;/strong&gt; (DomainKeys Identified Mail) et &lt;strong&gt;DMARC&lt;/strong&gt; (Domain-based Message Authentication, Reporting and Conformance). Ils vérifient trois choses, que le serveur émetteur a le droit d’envoyer pour ce domaine, que la signature cryptographique du message est valide, et que le domaine affiché dans le champ « De » est bien celui qui est authentifié. Un mail qui prétend venir de ta banque et qui échoue aux trois est démasqué sans avoir besoin de lire une seule ligne de son contenu.&lt;/p&gt;
&lt;p&gt;Par défaut, Rspamd note ces échecs mais n’applique pas la politique publiée par le domaine expéditeur. Pour qu’il l’applique, dans &lt;code&gt;/etc/rspamd/local.d/dmarc.conf&lt;/code&gt;.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;actions {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  quarantine = &quot;add header&quot;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  reject = &quot;reject&quot;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Tu obéis désormais à ce que le vrai propriétaire du domaine a demandé au monde de faire des messages qui usurpent son identité. C’est gratuit, c’est immédiat, et ça élimine une famille entière de faux expéditeurs.&lt;/p&gt;
&lt;p&gt;Le module &lt;strong&gt;phishing&lt;/strong&gt; enfin, le cœur du sujet. Sa vérification de base est déjà active, il compare l’URL affichée dans le texte du lien à l’URL réelle de destination, et lève le symbole &lt;code&gt;PHISHED_URL&lt;/code&gt; quand les deux domaines divergent. C’est exactement le mécanisme du faux lien bancaire.&lt;/p&gt;
&lt;p&gt;Tu peux l’adosser à deux bases publiques d’URL de hameçonnage connues, dans &lt;code&gt;/etc/rspamd/local.d/phishing.conf&lt;/code&gt;.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;openphish_enabled = true;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;openphish_map = &quot;https://raw.githubusercontent.com/openphish/public_feed/refs/heads/main/feed.txt&quot;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;phishtank_enabled = true;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Pas de bloc &lt;code&gt;phishing { }&lt;/code&gt; autour, et c’est la règle &lt;code&gt;local.d&lt;/code&gt; de l’étape 1 qui joue. Rspamd inclut déjà ce fichier &lt;strong&gt;à l’intérieur&lt;/strong&gt; de la section du module, tu n’écris que le contenu. Ajoute le bloc, et tu obtiens une section dans une section, silencieusement ignorée, aucune erreur au démarrage et aucun flux activé.&lt;/p&gt;
&lt;p&gt;Le message qui contient une URL déjà signalée ailleurs dans le monde lève &lt;code&gt;PHISHED_OPENPHISH&lt;/code&gt; ou &lt;code&gt;PHISHED_PHISHTANK&lt;/code&gt;, avec un poids lourd. La logique communautaire de CrowdSec, transposée aux liens malveillants.&lt;/p&gt;
&lt;p&gt;Trois autres modules travaillent pour toi sans que tu les configures. &lt;strong&gt;rbl&lt;/strong&gt; interroge les listes noires publiques de serveurs d’envoi. &lt;strong&gt;fuzzy_check&lt;/strong&gt; compare l’empreinte du message à celle de spams déjà signalés par le réseau Rspamd, un spam reformulé garde une empreinte proche. &lt;strong&gt;bayes&lt;/strong&gt; apprend de tes propres messages, à condition de l’entraîner.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;autolearn = true;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;dans &lt;code&gt;/etc/rspamd/local.d/classifier-bayes.conf&lt;/code&gt;, et Rspamd apprend seul des messages qu’il a classés avec certitude. Tu peux aussi le corriger à la main quand il se trompe, avec &lt;code&gt;rspamc learn_spam&lt;/code&gt; sur un message passé au travers, ou &lt;code&gt;rspamc learn_ham&lt;/code&gt; sur un légitime qu’il a marqué à tort.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;étape-4-le-mettre-à-lépreuve&quot;&gt;Étape 4, le mettre à l’épreuve&lt;/h2&gt;
&lt;p&gt;Plutôt qu’attendre un vrai spam, tu en fabriques un.&lt;/p&gt;
&lt;p&gt;Il existe pour ça une chaîne de caractères standard, le &lt;strong&gt;GTUBE&lt;/strong&gt;, reconnue par tous les moteurs anti-spam sérieux et conçue pour déclencher un rejet certain sans être un vrai spam. Tu l’écris dans un message de test, et tu le soumets au moteur avec &lt;code&gt;rspamc&lt;/code&gt;, le client en ligne de commande.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#005CC5&quot;&gt;printf&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; &apos;Subject: test\n\nXJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X\n&apos;&lt;/span&gt;&lt;span style=&quot;color:#D73A49&quot;&gt; &gt;&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; /tmp/gtube.eml&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;rspamc&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; symbols&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; /tmp/gtube.eml&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Tu dois voir le symbole &lt;code&gt;GTUBE&lt;/code&gt; et l’action &lt;code&gt;reject&lt;/code&gt;. Le GTUBE court-circuite le calcul du score et force le rejet directement, c’est tout l’intérêt du test. Si tu l’obtiens, le moteur tourne, il note et il tranche. Tu obtiens quelque chose comme ceci.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;Results for file: /tmp/gtube.eml (0.014 seconds)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;[Metric: default]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;Action: reject&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;Spam: true&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;Symbol: GTUBE (0.00)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;Message-ID: undef&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Pas besoin d’un score qui crève le seuil, le symbole &lt;code&gt;GTUBE&lt;/code&gt; déclenche un passthrough qui impose l’action &lt;code&gt;reject&lt;/code&gt; quel que soit le total. C’est le comportement attendu, ton moteur applique bien le verdict.&lt;/p&gt;
&lt;p&gt;Deux commandes de contrôle pour la suite.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;rspamc&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; stat&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Elle te donne l’état du moteur, les messages scannés, la répartition par action, l’état du filtre bayésien.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;rspamc&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; symbols&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; /chemin/vers/un/vrai/message.eml&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Elle rejoue un vrai message et t’affiche le détail des symboles avec leur poids. C’est ton outil de diagnostic quand un message est passé alors qu’il n’aurait pas dû, ou l’inverse. Tu ne devines pas, tu lis la ligne de compte.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;étape-5-faire-remonter-rspamd-dans-wazuh&quot;&gt;Étape 5, faire remonter Rspamd dans Wazuh&lt;/h2&gt;
&lt;p&gt;Rspamd filtre, très bien. Ton SIEM ne le sait toujours pas. On les branche, et la boucle de la série se referme sur le mail.&lt;/p&gt;
&lt;p&gt;Rien à activer côté Rspamd. Il écrit déjà, par défaut, une ligne par message traité dans &lt;code&gt;/var/log/rspamd/rspamd.log&lt;/code&gt;. Un fichier persistant, sur disque, exactement ce dont Wazuh a besoin. Une ligne ressemble à ceci.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;2026-07-14 09:41:07 #3421(rspamd_proxy) &amp;#x3C;7f2c1a&gt;; task; rspamd_task_write_log: id: &amp;#x3C;a1b2@evil.example&gt;, qid: &amp;#x3C;4XjK2r1Yz&gt;, ip: 203.0.113.42, from: &amp;#x3C;facturation@evil.example&gt;, (default: T (reject): [16.40/15.00] [PHISHED_URL,DMARC_POLICY_REJECT,R_SPF_FAIL,BAYES_SPAM]), len: 4021, time: 128.4ms real, dns req: 22&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Tout y est. L’IP de l’expéditeur, son adresse, l’action retenue, le score obtenu face au seuil, et la liste complète des symboles qui l’ont fait tomber. C’est un rapport d’enquête par message.&lt;/p&gt;
&lt;p&gt;Le branchement se fait sur &lt;strong&gt;deux machines&lt;/strong&gt;, et c’est le point où on se plante si on va vite. L’agent Wazuh, sur ton serveur mail, ne comprend rien à ce qu’il lit, il expédie les lignes brutes. C’est le &lt;strong&gt;manager&lt;/strong&gt;, sur le VPS de l’épisode 2, qui décode et applique les règles. Une machine ramasse, l’autre comprend.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Sur le serveur mail&lt;/strong&gt;, tu dis à l’agent de lire le fichier. Le bloc va dans son &lt;code&gt;ossec.conf&lt;/code&gt;.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;xml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;localfile&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;  &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;location&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;/var/log/rspamd/rspamd.log&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;location&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;  &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;log_format&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;syslog&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;log_format&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;localfile&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Tu reconnais le &lt;code&gt;&amp;#x3C;localfile&gt;&lt;/code&gt; de l’épisode 3, le mécanisme par lequel Wazuh avale n’importe quelle source de journaux.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Sur le manager&lt;/strong&gt;, maintenant, et sur lui seul. Un &lt;strong&gt;décodeur&lt;/strong&gt; extrait les champs utiles de la ligne, dans &lt;code&gt;/var/ossec/etc/decoders/local_decoder.xml&lt;/code&gt;.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;xml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;decoder&lt;/span&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt; name&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt;&quot;rspamd&quot;&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;  &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;prematch&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;rspamd_task_write_log: &amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;prematch&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;decoder&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;decoder&lt;/span&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt; name&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt;&quot;rspamd-verdict&quot;&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;  &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;parent&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;rspamd&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;parent&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;  &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;regex&lt;/span&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt; type&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt;&quot;pcre2&quot;&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;ip: (\S+?), .*?\(default: \S+ \(([\w ]+)\): \[(-?\d+\.\d+)/&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;regex&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;  &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;order&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;srcip, rspamd_action, rspamd_score&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;order&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;decoder&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Puis des &lt;strong&gt;règles&lt;/strong&gt; qui transforment ces champs en alertes graduées, dans &lt;code&gt;/var/ossec/etc/rules/local_rules.xml&lt;/code&gt;, toujours sur le manager.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;xml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;group&lt;/span&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt; name&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt;&quot;rspamd,&quot;&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;  &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;rule&lt;/span&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt; id&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt;&quot;100400&quot;&lt;/span&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt; level&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt;&quot;0&quot;&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;    &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;decoded_as&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;rspamd&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;decoded_as&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;    &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;description&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;Rspamd, verdict de scan.&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;description&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;  &amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;rule&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;  &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;rule&lt;/span&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt; id&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt;&quot;100401&quot;&lt;/span&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt; level&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt;&quot;12&quot;&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;    &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;if_sid&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;100400&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;if_sid&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;    &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;match&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;PHISHED_&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;match&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;    &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;description&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;Rspamd, hameçonnage détecté, expéditeur $(srcip).&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;description&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;  &amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;rule&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;  &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;rule&lt;/span&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt; id&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt;&quot;100402&quot;&lt;/span&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt; level&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt;&quot;10&quot;&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;    &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;if_sid&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;100400&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;if_sid&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;    &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;field&lt;/span&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt; name&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt;&quot;rspamd_action&quot;&lt;/span&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt; type&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt;&quot;pcre2&quot;&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;^reject$&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;field&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;    &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;description&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;Rspamd, message rejeté, expéditeur $(srcip).&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;description&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;  &amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;rule&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;  &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;rule&lt;/span&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt; id&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt;&quot;100403&quot;&lt;/span&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt; level&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt;&quot;5&quot;&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;    &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;if_sid&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;100400&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;if_sid&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;    &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;field&lt;/span&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt; name&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt;&quot;rspamd_action&quot;&lt;/span&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt; type&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt;&quot;pcre2&quot;&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;^add header$&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;field&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;    &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;description&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;Rspamd, message marqué spam et livré, expéditeur $(srcip).&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;description&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;  &amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;rule&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;group&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;L’ordre de déclaration n’est pas cosmétique, il est le cœur du réglage. La règle mère est en niveau 0, elle décode sans alerter, sinon ton tableau de bord se noie sous les messages légitimes. &lt;strong&gt;L’hameçonnage passe en premier, en niveau 12&lt;/strong&gt;, parce que Wazuh ne déclenche qu’une seule règle par message, la première de la liste qui correspond. Une fausse facture d’hameçonnage est aussi un message rejeté, et si tu déclares le rejet avant elle, elle sort en niveau 10 et l’alerte que tu attendais ne vient jamais. Puis le rejet en 10, et le spam marqué mais livré en 5.&lt;/p&gt;
&lt;p&gt;Même logique sur l’ancrage. &lt;code&gt;^reject$&lt;/code&gt; et non &lt;code&gt;reject&lt;/code&gt;, parce que Rspamd possède aussi une action &lt;code&gt;soft reject&lt;/code&gt;, un simple report temporaire, qui contient le mot et déclencherait une alerte de rejet pour un message qui n’a rien de rejeté.&lt;/p&gt;
&lt;p&gt;Ne crois pas ce décodeur sur parole, teste-le. Wazuh a l’outil qu’il faut, et il vit sur le manager, pas sur l’agent.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; /var/ossec/bin/wazuh-logtest&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Tu colles une vraie ligne de ton &lt;code&gt;rspamd.log&lt;/code&gt;, et il te montre ce qu’il en a compris, phase par phase, décodeur reconnu, champs extraits, règle déclenchée. Si &lt;code&gt;srcip&lt;/code&gt; et &lt;code&gt;rspamd_action&lt;/code&gt; ne sortent pas, c’est le motif d’extraction qu’il faut ajuster, et tu le sauras en trente secondes au lieu d’attendre en vain une alerte qui ne viendra jamais. Prends une ligne d’hameçonnage rejeté pour ton test, c’est le cas qui met à l’épreuve l’ordre de tes règles. Sur la ligne d’exemple plus haut, tu vises un résultat de cette forme.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;**Phase 1: Completed pre-decoding.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;	full event: &apos;2026-07-14 09:41:07 #3421(rspamd_proxy) &amp;#x3C;7f2c1a&gt;; task; rspamd_task_write_log: id: &amp;#x3C;a1b2@evil.example&gt;, qid: &amp;#x3C;4XjK2r1Yz&gt;, ip: 203.0.113.42, from: &amp;#x3C;facturation@evil.example&gt;, (default: T (reject): [16.40/15.00] [PHISHED_URL,DMARC_POLICY_REJECT,R_SPF_FAIL,BAYES_SPAM]), len: 4021, time: 128.4ms real, dns req: 22&apos;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;**Phase 2: Completed decoding.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;	name: &apos;rspamd&apos;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;	srcip: &apos;203.0.113.42&apos;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;	rspamd_action: &apos;reject&apos;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;	rspamd_score: &apos;16.40&apos;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;**Phase 3: Completed filtering (rules).&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;	id: &apos;100401&apos;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;	level: &apos;12&apos;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;	description: &apos;Rspamd, hameçonnage détecté, expéditeur 203.0.113.42.&apos;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;	groups: &apos;[&apos;rspamd&apos;]&apos;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;	firedtimes: 1&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;	mail: false&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;**Alert to be generated.&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;La phase 2 sort tes trois champs, la phase 3 déclenche la règle &lt;code&gt;100401&lt;/code&gt; en niveau 12, c’est l’alerte d’hameçonnage que tu attendais. Ne prends pas ce bloc pour une capture arrachée à une machine de production, c’est le résultat visé, pas un relevé de prod. Le pré-décodage &lt;code&gt;syslog&lt;/code&gt; posé sur une ligne Rspamd qui n’a pas la forme d’un log syslog, et le motif d’extraction du décodeur, peuvent varier selon ta version de Wazuh et le format exact de tes lignes &lt;code&gt;rspamd.log&lt;/code&gt;. C’est précisément ce que &lt;code&gt;wazuh-logtest&lt;/code&gt; te confirme chez toi, phase par phase, avant que tu comptes sur l’alerte.&lt;/p&gt;
&lt;p&gt;Une fois le test concluant, redémarre les deux services, chacun sur sa machine. Le manager, pour qu’il charge ton décodeur et tes règles.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; systemctl&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; restart&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; wazuh-manager&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Et l’agent du serveur mail, pour qu’il prenne en compte son &lt;code&gt;&amp;#x3C;localfile&gt;&lt;/code&gt;.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; systemctl&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; restart&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; wazuh-agent&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Une IP envoie une fausse facture, Rspamd la note, la rejette, l’écrit dans son journal, l’agent Wazuh la lit et l’expédie, le manager la décode et lève une alerte de niveau 12, elle s’affiche dans ton tableau de bord à côté de tes blocages CrowdSec et de tes échecs d’authentification SSH. Dans Discover, tu la filtres sur les champs &lt;code&gt;srcip&lt;/code&gt;, &lt;code&gt;rspamd_action&lt;/code&gt; et &lt;code&gt;rspamd_score&lt;/code&gt;, exactement comme le reste de tes événements.&lt;/p&gt;
&lt;p&gt;L’angle mort est bouché.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;si-ça-ne-marche-pas&quot;&gt;Si ça ne marche pas&lt;/h2&gt;
&lt;h3 id=&quot;problème-rspamd-tourne-mais-aucun-message-nest-noté&quot;&gt;Problème, Rspamd tourne mais aucun message n’est noté&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Cause probable,&lt;/strong&gt; le milter n’est pas branché. Rspamd attend sur son port, ton serveur mail ne lui présente rien.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Solution,&lt;/strong&gt; vérifie que le worker proxy écoute bien sur 11332, et que &lt;code&gt;smtpd_milters&lt;/code&gt; pointe dessus dans ta configuration Postfix. Recharge le serveur mail, pas seulement Rspamd.&lt;/p&gt;
&lt;h3 id=&quot;problème-des-messages-légitimes-sont-rejetés&quot;&gt;Problème, des messages légitimes sont rejetés&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Cause probable,&lt;/strong&gt; ton seuil de rejet est trop bas, ou un expéditeur que tu connais échoue à son propre SPF, ce qui arrive plus souvent qu’on ne le croit.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Solution,&lt;/strong&gt; rejoue le message avec &lt;code&gt;rspamc symbols&lt;/code&gt;, lis les symboles qui l’ont fait monter. Si le coupable est un symbole unique et légitime, remonte ton seuil de &lt;code&gt;reject&lt;/code&gt; plutôt que de désactiver le module.&lt;/p&gt;
&lt;h3 id=&quot;problème-le-score-napprend-rien-le-filtre-bayésien-reste-muet&quot;&gt;Problème, le score n’apprend rien, le filtre bayésien reste muet&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Cause probable,&lt;/strong&gt; Redis n’est pas joignable. Sans lui, ni bayes, ni greylisting, ni statistiques.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Solution,&lt;/strong&gt; vérifie le service Redis et le contenu de &lt;code&gt;/etc/rspamd/local.d/redis.conf&lt;/code&gt;. &lt;code&gt;rspamc stat&lt;/code&gt; te dira si le classifieur a des données.&lt;/p&gt;
&lt;h3 id=&quot;problème-rien-ne-remonte-dans-wazuh&quot;&gt;Problème, rien ne remonte dans Wazuh&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Cause probable,&lt;/strong&gt; trois suspects, et il faut les départager avant de toucher à quoi que ce soit. Soit le fichier ne grossit pas, soit l’agent ne le lit pas, soit le manager ne sait pas le décoder. Le grand classique, ce sont le décodeur et les règles édités sur le serveur mail au lieu du manager. Ils n’y servent à rien.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Solution,&lt;/strong&gt; le fichier grossit-il ? S’il grossit, va sur le &lt;strong&gt;manager&lt;/strong&gt;, passe une ligne dans &lt;code&gt;wazuh-logtest&lt;/code&gt; et regarde à quelle phase ça casse. Vérifie au passage que &lt;code&gt;local_decoder.xml&lt;/code&gt; et &lt;code&gt;local_rules.xml&lt;/code&gt; sont bien sur cette machine-là, et que tu as redémarré &lt;code&gt;wazuh-manager&lt;/code&gt; après les avoir écrits. Ne réinstalle pas Rspamd pour un souci de motif d’extraction.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;ce-que-ça-ta-coûté&quot;&gt;Ce que ça t’a coûté&lt;/h2&gt;
&lt;p&gt;La licence, rien. Rspamd est open source, sans version payante, sans palier entreprise, sans quota de messages.&lt;/p&gt;
&lt;p&gt;La machine, peu. Le moteur est écrit en C et tourne sur ton serveur mail existant, aux côtés de Redis. Sur le volume d’une PME, tu ne changeras pas de gabarit de serveur pour ça. Surveille quand même ta RAM après avoir activé le filtre bayésien et fuzzy_check, ce sont eux qui consomment.&lt;/p&gt;
&lt;p&gt;Ton temps, un peu. Compte une petite heure pour l’installation, le milter et l’intégration Wazuh.&lt;/p&gt;
&lt;p&gt;Et le vrai prix, la calibration. Il ne se paye pas le jour de l’installation, il se paye les deux semaines suivantes, à lire tes propres journaux et à remonter tes seuils quand un message légitime s’est fait jeter. Un anti-spam mal réglé ne te coûte pas de la RAM, il te coûte une commande client perdue dans un rejet silencieux. C’est la raison pour laquelle ce tuto te fait démarrer clément, à 15 de seuil de rejet, et durcir ensuite. Dans l’autre sens, tu apprends la valeur d’un faux positif à tes dépens.&lt;/p&gt;
&lt;p&gt;C’est le seul poste de dépense sérieux, et aucun SaaS ne te l’épargne. Lui aussi se trompera, simplement tu ne verras pas pourquoi.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;pour-les-pressés&quot;&gt;Pour les pressés&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Ce que fait cet article.&lt;/strong&gt; On installe Rspamd sur le serveur mail, on le branche en milter devant Postfix, on règle les seuils de scoring, on active l’anti-hameçonnage et l’application des politiques DMARC, puis on fait remonter chaque verdict dans Wazuh via un décodeur et des règles maison. La couche mail cesse d’être l’angle mort du SIEM.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Concrètement, les commandes.&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Installer le dépôt stable, &lt;code&gt;rspamd&lt;/code&gt; et &lt;code&gt;redis-server&lt;/code&gt; via apt.&lt;/li&gt;
&lt;li&gt;Pointer Redis : &lt;code&gt;servers = &quot;127.0.0.1:6379&quot;;&lt;/code&gt; dans &lt;code&gt;/etc/rspamd/local.d/redis.conf&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Mot de passe de l’interface : &lt;code&gt;rspamadm pw&lt;/code&gt;, empreinte dans &lt;code&gt;/etc/rspamd/local.d/worker-controller.inc&lt;/code&gt;. Interface en local uniquement.&lt;/li&gt;
&lt;li&gt;Brancher le milter Postfix : &lt;code&gt;smtpd_milters = inet:localhost:11332&lt;/code&gt;, &lt;code&gt;milter_protocol = 6&lt;/code&gt;, &lt;code&gt;milter_default_action = accept&lt;/code&gt; dans &lt;code&gt;main.cf&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Seuils : &lt;code&gt;greylist = 4; add_header = 6; reject = 15;&lt;/code&gt; dans &lt;code&gt;/etc/rspamd/local.d/actions.conf&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Appliquer DMARC : bloc &lt;code&gt;actions { quarantine = &quot;add header&quot;; reject = &quot;reject&quot;; }&lt;/code&gt; dans &lt;code&gt;/etc/rspamd/local.d/dmarc.conf&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Anti-hameçonnage : &lt;code&gt;openphish_enabled&lt;/code&gt; et &lt;code&gt;phishtank_enabled&lt;/code&gt; dans &lt;code&gt;/etc/rspamd/local.d/phishing.conf&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Apprentissage : &lt;code&gt;autolearn = true;&lt;/code&gt; dans &lt;code&gt;/etc/rspamd/local.d/classifier-bayes.conf&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Tester : message GTUBE puis &lt;code&gt;rspamc symbols /tmp/gtube.eml&lt;/code&gt;, action attendue &lt;code&gt;reject&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Intégrer à Wazuh, sur deux machines : &lt;code&gt;&amp;#x3C;localfile&gt;&lt;/code&gt; sur &lt;code&gt;/var/log/rspamd/rspamd.log&lt;/code&gt; &lt;strong&gt;côté agent&lt;/strong&gt;, décodeur et règles &lt;strong&gt;côté manager&lt;/strong&gt; (&lt;code&gt;local_decoder.xml&lt;/code&gt; et &lt;code&gt;local_rules.xml&lt;/code&gt;, règle hameçonnage déclarée en premier), validation avec &lt;code&gt;/var/ossec/bin/wazuh-logtest&lt;/code&gt; &lt;strong&gt;sur le manager&lt;/strong&gt;, puis redémarrage de &lt;code&gt;wazuh-manager&lt;/code&gt; et de &lt;code&gt;wazuh-agent&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2 id=&quot;en-résumé&quot;&gt;En résumé&lt;/h2&gt;
&lt;p&gt;Tu es parti d’un dispositif qui voyait tes serveurs et bloquait ton réseau, mais laissait entrer la fausse facture par la grande porte.&lt;/p&gt;
&lt;p&gt;Tu as &lt;strong&gt;installé Rspamd&lt;/strong&gt; devant ton serveur mail, en milter, pour que chaque message soit jugé avant d’être accepté. Tu as &lt;strong&gt;réglé le scoring&lt;/strong&gt; plutôt qu’un verdict binaire, trois niveaux de fermeté, greylist, marquage, rejet, avec des seuils que tu maîtrises.&lt;/p&gt;
&lt;p&gt;Tu as &lt;strong&gt;armé l’anti-hameçonnage&lt;/strong&gt;, comparaison des URL affichées et réelles, bases publiques de liens malveillants, application des politiques DMARC des domaines usurpés. Et tu as &lt;strong&gt;branché tout ça sur Wazuh&lt;/strong&gt;, décodeur et règles graduées, pour qu’une tentative de hameçonnage lève une alerte de niveau 12 dans le même tableau de bord que le reste.&lt;/p&gt;
&lt;p&gt;Le tout reste chez toi. Aucun message ne quitte ton serveur pour être analysé ailleurs, aucun prestataire ne lit ton courrier pour te dire s’il est propre. C’est la différence entre un filtre que tu héberges et une passerelle mail dans le cloud de quelqu’un d’autre, à qui tu confies l’intégralité de ta correspondance d’entreprise pour qu’il la protège.&lt;/p&gt;
&lt;p&gt;Il reste une porte d’entrée, et c’est celle qui tient dans les mains de tes salariés. Le fichier qu’on a téléchargé sans réfléchir, la macro qu’on a autorisée, le binaire qui n’aurait jamais dû démarrer. À l’épisode 6 on descend sur les Mac, et on règle le problème en décidant quelles applications ont le droit de s’exécuter.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;rappel-de-la-série&quot;&gt;Rappel de la série&lt;/h2&gt;
&lt;p&gt;Sept épisodes pour monter ta plomberie de sécurité souveraine, brique par brique.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://macsouverain.com/nis2-splunk-pourquoi-pme-siem-souverain/&quot;&gt;Épisode 0, le fondement de la série.&lt;/a&gt;&lt;/strong&gt; Pourquoi une PME a besoin d’un SIEM souverain, NIS2, RGPD, et le coût du statu quo.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://macsouverain.com/vps-durci-socle-siem-souverain/&quot;&gt;Épisode 1, le socle.&lt;/a&gt;&lt;/strong&gt; Le VPS durci hors CLOUD Act.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://macsouverain.com/wazuh-tout-en-un-siem-souverain/&quot;&gt;Épisode 2, Wazuh en tout-en-un.&lt;/a&gt;&lt;/strong&gt; Manager, indexeur et tableau de bord sur un seul nœud.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://macsouverain.com/wazuh-agents-parc-siem-souverain/&quot;&gt;Épisode 3, les agents partout.&lt;/a&gt;&lt;/strong&gt; Déploiement sur tes serveurs, Mac et Windows.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://macsouverain.com/crowdsec-premiere-ligne-siem-souverain/&quot;&gt;Épisode 4, la défense réseau communautaire.&lt;/a&gt;&lt;/strong&gt; Bloquer les attaquants connus avant qu’ils n’arrivent.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Épisode 5, le filtre mail.&lt;/strong&gt; Anti-spam et anti-hameçonnage devant ton serveur de messagerie. Tu viens de le lire.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://macsouverain.com/santa-controle-execution-mac-siem-souverain/&quot;&gt;Épisode 6, le contrôle d’exécution sur les Mac.&lt;/a&gt;&lt;/strong&gt; Décider quelles applications ont le droit de démarrer.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Épisode 7, alerting et coût total.&lt;/strong&gt; Notifications calibrées et bilan financier honnête face au SaaS.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;Des termes techniques ? &lt;a href=&quot;https://macsouverain.com/glossaire&quot;&gt;Consulte le glossaire.&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;</content:encoded><dc:creator>Mac Souverain</dc:creator><category>ms-pro</category><category>nis2</category><category>siem</category><category>rspamd</category><category>securite</category><category>tutoriel</category><enclosure url="https://macsouverain.com/content/images/2026/07/feature-rspamd-mail-siem-souverain-1.png" length="0" type="image/png"/></item><item><title>Un malware notarisé Apple passe Gatekeeper</title><link>https://macsouverain.com/radar-crashstealer-notarise-apple-gatekeeper/</link><guid isPermaLink="true">https://macsouverain.com/radar-crashstealer-notarise-apple-gatekeeper/</guid><description>CrashStealer, signé et notarisé par Apple, franchit Gatekeeper sans une alerte. La notarisation valide la signature, pas l&apos;intention.</description><pubDate>Thu, 16 Jul 2026 13:56:37 GMT</pubDate><content:encoded>&lt;div class=&quot;radar-summary&quot;&gt;
&lt;p&gt;CrashStealer, un infostealer macOS déguisé en outil de rapport de crash Apple, franchit Gatekeeper sans la moindre alerte. Il est signé par un Developer ID valide et notarisé par Apple. Ton Mac fait confiance à la signature, pas à l&apos;intention derrière. Apple a révoqué le certificat après coup, une fois les dégâts faits.&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;&lt;strong&gt;Ce que tu dois faire&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; Toute app ou DMG hors App Store reçu par invitation ou lien direct, la signature Apple ne rachète pas la provenance.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2.&lt;/strong&gt; Un prompt qui réclame ton mot de passe login « pour continuer » sans installation légitime en cours, c&apos;est un signal d&apos;alerte.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3.&lt;/strong&gt; Les connexions sortantes inattendues, un pare-feu applicatif comme Little Snitch ou LuLu les voit passer.&lt;/p&gt;
&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;Un logiciel malveillant se déguise en outil de rapport de crash Apple. Il est signé par un Developer ID valide et notarisé par Apple elle-même. Résultat, il franchit Gatekeeper sans le moindre avertissement, parce que ton Mac vérifie la signature, jamais l’intention.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;br&gt;
&lt;h2 id=&quot;le-fait&quot;&gt;Le fait&lt;/h2&gt;
&lt;br&gt;
&lt;p&gt;Jamf Threat Labs a repéré un échantillon suspect sur VirusTotal début mai 2026, puis observé de vraies infections sur des Macs clients début juillet. Le malware s’appelle CrashStealer. Particularité rare, il est écrit en C++ natif, là où l’immense majorité des voleurs macOS bricolent en AppleScript. Il se fait passer pour un outil de rapport de crash Apple, le genre de fenêtre que tu as déjà vue cent fois sans y prêter attention.&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;La livraison est soignée. Le malware arrive dans un disque image nommé « Werkbit », l’app à l’intérieur s’appelle « Werkbit.app ». Fait notable, le DMG lui-même est signé, pas seulement l’app qu’il contient. Le certificat, un Developer ID au nom de « Emil Grigorov » (WWB7JA7AQV), valide, actif, notarisé par Apple. Le domaine de diffusion, &lt;code&gt;werkbit[.]io&lt;/code&gt;, a été enregistré en juin 2026, et le téléchargement est verrouillé derrière un code PIN de réunion. Traduction, l’installeur n’est servi qu’à des victimes choisies, jamais aux scanners automatiques ni au visiteur de passage.&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;Une fois lancé, le dropper récupère la vraie charge depuis l’infrastructure de l’attaquant. Avant de récolter quoi que ce soit, il te présente un faux prompt système et valide ton mot de passe de session en local. Ensuite, il vide tout, les profils de navigateurs, le Trousseau, quatorze gestionnaires de mots de passe (1Password, Bitwarden, LastPass, Dashlane, Keeper compris) et près de quatre-vingts extensions de portefeuilles crypto. Le butin est chiffré en AES-GCM puis exfiltré via libcurl. Il se recopie et se re-signe pour persister.&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;Apple a révoqué le certificat de signature après le signalement de Jamf. Le mal était déjà fait pour ceux qui avaient cliqué.&lt;/p&gt;
&lt;br&gt;
&lt;h2 id=&quot;pourquoi-gatekeeper-na-rien-vu&quot;&gt;Pourquoi Gatekeeper n’a rien vu&lt;/h2&gt;
&lt;br&gt;
&lt;p&gt;Voici le nœud. La notarisation Apple n’est pas un audit de sécurité. C’est un scan automatisé qui cherche des signatures de malware déjà connu et vérifie que le binaire est signé par un Developer ID valide. Rien de plus. Apple n’a pas lu le code de CrashStealer, elle n’a pas jugé ses intentions, elle a passé un binaire propre au moment du scan à travers une moulinette qui ne voyait rien de familier.&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;Le tampon de notarisation dit une seule chose, « ce fichier est signé par un développeur identifié et ne correspond à aucun malware connu ». Il ne dit pas « ce logiciel est sûr ». La nuance a l’air théorique. Elle est le sujet.&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;Un attaquant qui ouvre un compte Apple Developer à 99 dollars par an, sous une identité crédible, obtient un passe pour franchir Gatekeeper en silence. Le kill-switch d’Apple, la révocation du certificat, ne joue qu’après coup, une fois les dégâts documentés. Apple pousse ses défenses en silence, elle ne prévient pas quand elle a laissé passer. C’est un pompier, pas un vigile.&lt;/p&gt;
&lt;br&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;À lire : &lt;a href=&quot;https://macsouverain.com/ton-mac-patche-a-ton-insu-xprotect/&quot;&gt;Ton Mac a été patché par XProtect à ton insu&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;br&gt;
&lt;h2 id=&quot;ce-que-ça-change-pour-toi&quot;&gt;Ce que ça change pour toi&lt;/h2&gt;
&lt;br&gt;
&lt;p&gt;Le réflexe collectif, « c’est signé Apple, donc c’est bon », vient de prendre une balle. Ton Mac fait confiance à la signature, pas à l’intention derrière. Un binaire notarisé n’est pas un binaire béni. C’est un binaire dont on connaît l’auteur déclaré, ce qui est utile pour le poursuivre après coup, inutile pour t’éviter l’infection.&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;Le ciblage par PIN de réunion change aussi la donne. Ce malware ne se pêche pas au chalut sur un forum de warez. Il arrive par invitation, dans un contexte qui a l’air professionnel, servi à toi et pas à un scanner. Le vieux réflexe « je ne télécharge que des trucs connus » ne suffit plus quand le lien t’est tendu à la main.&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;La vraie ligne de défense, ce n’est pas le tampon Apple. C’est toi, ta méfiance, et un outil qui voit ce que le logiciel fait vraiment une fois lancé, ses connexions sortantes.&lt;/p&gt;
&lt;br&gt;
&lt;h2 id=&quot;ce-que-tu-fais-maintenant&quot;&gt;Ce que tu fais maintenant&lt;/h2&gt;
&lt;br&gt;
&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; Traite toute app ou tout DMG reçu hors App Store comme suspect par défaut, surtout quand il arrive par invitation, lien direct ou message « installe ça pour la réunion ». La signature Apple ne rachète pas une provenance douteuse. Si tu ne l’as pas cherché toi-même, tu ne l’installes pas.&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;&lt;strong&gt;2.&lt;/strong&gt; Un vrai prompt système macOS ne te redemande pas ton mot de passe admin sans raison claire. Une app fraîchement lancée qui réclame ton mot de passe login « pour continuer », sans installation légitime en cours, c’est un signal d’alerte, pas une formalité. Tu fermes, tu ne tapes rien.&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;&lt;strong&gt;3.&lt;/strong&gt; Installe un pare-feu applicatif et laisse-le parler. Little Snitch ou LuLu te montrent les connexions sortantes inattendues, exactement le moment où un stealer part exfiltrer ton butin. C’est ta caméra de surveillance sur ce que le système fait dans ton dos.&lt;/p&gt;
&lt;br&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;À lire : &lt;a href=&quot;https://macsouverain.com/little-snitch-vs-lulu-pare-feu-sortant-mac/&quot;&gt;Little Snitch vs LuLu, quel pare-feu sortant pour ton Mac&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;br&gt;
&lt;p&gt;Et si tu as le moindre doute d’avoir exécuté un installeur douteux récemment, la marche à suivre existe déjà, elle est la même que pour les infostealers distribués par ingénierie sociale.&lt;/p&gt;
&lt;br&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;À lire : &lt;a href=&quot;https://macsouverain.com/radar-macsync-google-ads-claude-share-mai-2026/&quot;&gt;Google Ads et vrai chat Claude partagé vident tes credentials&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;br&gt;
&lt;h2 id=&quot;sources&quot;&gt;Sources&lt;/h2&gt;
&lt;br&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.jamf.com/blog/crashstealer-macos-infostealer-analysis/&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;https://www.jamf.com/blog/crashstealer-macos-infostealer-analysis/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://thehackernews.com/2026/07/crashstealer-macos-malware-uses.html&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;https://thehackernews.com/2026/07/crashstealer-macos-malware-uses.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.itnews.com.au/news/apple-notarised-crashstealer-malware-poses-as-macos-crash-reporting-app-627340&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;https://www.itnews.com.au/news/apple-notarised-crashstealer-malware-poses-as-macos-crash-reporting-app-627340&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://9to5mac.com/2026/07/15/psa-beware-of-fake-mac-crash-reports-out-to-steal-your-passwords-crypto-wallets-more/&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;https://9to5mac.com/2026/07/15/psa-beware-of-fake-mac-crash-reports-out-to-steal-your-passwords-crypto-wallets-more/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content:encoded><dc:creator>Mac Souverain</dc:creator><category>radar</category><category>radar-alerte</category><category>mac-malware</category><category>gatekeeper</category><category>notarisation</category><category>infostealer</category><category>cybersec</category></item><item><title>Chat Control 1.0 : adopté par ceux qui ont voté contre</title><link>https://macsouverain.com/radar-chat-control-1-adopte-par-defaut/</link><guid isPermaLink="true">https://macsouverain.com/radar-chat-control-1-adopte-par-defaut/</guid><description>Le 9 juillet, le Parlement européen a laissé passer la reconduction de Chat Control 1.0, faute des 361 voix requises pour la bloquer, alors que la majorité votait contre. Ce que ça change, et ce qui repart en trilogue en septembre.</description><pubDate>Sun, 12 Jul 2026 09:33:42 GMT</pubDate><content:encoded>&lt;div class=&quot;radar-summary&quot;&gt;
&lt;p&gt;Le 9 juillet 2026, le Parlement européen a laissé passer la reconduction de Chat Control 1.0 (scanning VOLONTAIRE du CSAM, règlement UE 2021/1232). Pas par un vote pour : 314 voix contre, 276 pour, mais rejeter la position du Conseil exigeait 361 voix. La majorité a voté non, le texte passe quand même. Le chiffrement de bout en bout est explicitement exclu de ce texte. Le vrai combat, Chat Control 2.0 (CSAR), reprend en septembre.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ce que tu dois surveiller&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; Le CSAR (Chat Control 2.0), le scanning OBLIGATOIRE potentiellement côté client sur l’E2E, qui repart en trilogue en septembre 2026. C’est le seul rendez-vous qui compte.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2.&lt;/strong&gt; La méthode : un texte rejeté par la majorité des votants qui passe faute de majorité absolue pour le bloquer. Retiens le mécanisme, il resservira.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3.&lt;/strong&gt; Les posts viraux qui prétendent que WhatsApp et Signal sont désormais scannés. C’est faux pour le 1.0, l’E2E en est exclu. Ne relaie pas la panique.&lt;/p&gt;
&lt;/div&gt;
&lt;h2 id=&quot;ce-qui-sest-passé-le-9-juillet&quot;&gt;Ce qui s’est passé le 9 juillet&lt;/h2&gt;
&lt;p&gt;Le 9 juillet 2026, le Parlement européen a acté la reconduction de &lt;strong&gt;Chat Control 1.0&lt;/strong&gt;, c’est-à-dire le règlement (UE) 2021/1232 : une dérogation à la directive ePrivacy qui autorise les fournisseurs à scanner &lt;strong&gt;volontairement&lt;/strong&gt; les communications à la recherche de contenus pédocriminels (CSAM). Ce texte avait expiré le 3 avril 2026. Il est reconduit, en vigueur jusqu’au &lt;strong&gt;3 avril 2028&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Le détail qui compte : il n’a pas été adopté par un vote pour. Le décompte est de &lt;strong&gt;314 voix contre, 276 pour, 17 abstentions&lt;/strong&gt;. La majorité des votants a dit non. Sauf que pour rejeter la position du Conseil, il fallait une &lt;strong&gt;majorité absolue de 361 voix&lt;/strong&gt;, manquée de 47. Résultat : le texte passe faute de blocage. Patrick Breyer parle d’une farce démocratique, et sur ce point précis il est difficile de lui donner tort.&lt;/p&gt;
&lt;p&gt;Deuxième détail, dénoncé par plusieurs eurodéputés : le dossier a été reprogrammé au tout début des vacances parlementaires, quand l’hémicycle est clairsemé. Un classique du calendrier, mais un classique efficace.&lt;/p&gt;
&lt;h2 id=&quot;débunk-express&quot;&gt;Débunk express&lt;/h2&gt;
&lt;p&gt;Trois contre-vérités tournent en boucle depuis le 9 juillet. Voici la réalité en face.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;« Le Parlement a voté POUR Chat Control. »&lt;/strong&gt; Faux. 314 ont voté contre, 276 pour : la majorité a voté non. Le texte passe parce que le seuil pour le bloquer, 361 voix, n’a pas été atteint, pas parce qu’il a été approuvé.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;« WhatsApp, Signal, iMessage vont être scannés. »&lt;/strong&gt; Faux. Un amendement Renew adopté le même jour exclut explicitement le chiffrement de bout en bout du champ de ce texte. Le 1.0 reste du scanning volontaire, hors E2E.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;« C’est le grand Chat Control obligatoire qui vient de passer. »&lt;/strong&gt; Faux. Le texte du 9 juillet, c’est le 1.0 volontaire. Le scanning obligatoire, potentiellement côté client sur l’E2E, c’est le CSAR (Chat Control 2.0), toujours en trilogue, reprise en septembre.&lt;/p&gt;
&lt;p&gt;Deux textes, deux histoires. Le 1.0 est volontaire et exclut l’E2E. &lt;strong&gt;Le 2.0 est le vrai danger&lt;/strong&gt;, et il n’est pas encore tranché.&lt;/p&gt;
&lt;h2 id=&quot;pourquoi-ça-te-concerne&quot;&gt;Pourquoi ça te concerne&lt;/h2&gt;
&lt;p&gt;Sur ton Mac et ton iPhone, le 1.0 ne change rien aujourd’hui : ton iMessage, ton WhatsApp, ton Signal restent chiffrés de bout en bout, explicitement hors du périmètre de ce texte. Ne laisse personne te vendre une panique produit qui n’existe pas.&lt;/p&gt;
&lt;p&gt;Sauf que ce texte ne se limite pas aux messageries. Il couvre aussi les emails, et là, la nuance change tout : un email classique (Gmail, Outlook, iCloud Mail) n’est pas chiffré de bout en bout. Il reste donc pleinement dans le champ du scan volontaire que le 1.0 prolonge.&lt;/p&gt;
&lt;p&gt;Google et les autres peuvent scanner le contenu de tes mails à la recherche de CSAM, et l’exclusion E2E ne te protège pas, puisqu’il n’y a pas d’E2E à protéger. Seule une messagerie réellement chiffrée de bout en bout, comme Proton Mail, passe entre les mailles.&lt;/p&gt;
&lt;p&gt;Mesure bien ce que cela veut dire. C’est comme si la Police lisait ton courrier alors que tu n’as rien à te reprocher. C’est digne de la STASI !&lt;/p&gt;
&lt;p&gt;Le vrai risque porte un autre nom : &lt;strong&gt;le client-side scanning du CSAR 2.0&lt;/strong&gt;. C’est le principe d’inspecter tes messages sur ton appareil, &lt;strong&gt;avant qu’ils soient chiffrés&lt;/strong&gt;. La crypto n’est pas cassée, elle est vidée de son sens : ton message est lu en clair sur ton téléphone avant de partir. Et ce point d’inspection, une fois posé, n’appartient plus jamais qu’aux « gentils ».&lt;/p&gt;
&lt;p&gt;Ce n’est pas de la science-fiction côté Apple. En 2021, Apple a annoncé &lt;strong&gt;NeuralHash&lt;/strong&gt;, un système de scan CSAM côté client sur iPhone, avant de l’abandonner en décembre 2022 sous la pression. Le code existe, la logique aussi.&lt;/p&gt;
&lt;p&gt;Un CSAR contraignant, c’est exactement le levier qui rouvrirait ce dossier, cette fois par la loi et non par choix. La plainte du West Virginia contre Apple en février 2026 montre que la pression judiciaire sur le sujet ne retombe pas.&lt;/p&gt;
&lt;h2 id=&quot;ce-que-tu-peux-faire&quot;&gt;Ce que tu peux faire&lt;/h2&gt;
&lt;p&gt;Rien à installer, rien à corriger sur ton appareil : le 1.0 n’ouvre aucune faille produit. C’est un signal politique, et une leçon de méthode : un texte rejeté par la majorité des votants peut passer quand même quand le seuil de blocage n’est pas atteint. Retiens le mécanisme, parce qu’il resservira en septembre.&lt;/p&gt;
&lt;p&gt;Le rendez-vous, c’est &lt;strong&gt;le CSAR à la reprise de septembre 2026&lt;/strong&gt;. Cinq rounds de trilogue sans accord, le dernier le 29 juin, et la ligne de fracture reste le chiffrement.&lt;/p&gt;
&lt;p&gt;Garde Signal en messagerie de repli, suis EDRi et Patrick Breyer pour l’issue réelle, et écris à ton eurodéputé avant que le 2.0 ne revienne sur la table. La pression publique a déjà déplacé des lignes sur ce dossier, elle peut recommencer.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Pour creuser : &lt;a href=&quot;https://macsouverain.com/chat-control-csar-surveillance-messageries-chiffrees/&quot;&gt;Chat Control 2.0, le mécanisme complet&lt;/a&gt; · &lt;a href=&quot;https://macsouverain.com/nis2-csar-contradiction-ue-chiffrement-surveillance/&quot;&gt;NIS2 contre CSAR, quand l’UE se contredit&lt;/a&gt; · &lt;a href=&quot;https://macsouverain.com/convergence-libertes-numeriques/&quot;&gt;La convergence mondiale des textes anti-privacy&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;</content:encoded><dc:creator>Mac Souverain</dc:creator><category>radar</category><category>radar-signal</category><category>souverainete</category><category>chiffrement</category><category>ue</category></item><item><title>CrowdSec en première ligne, bloque avant qu&apos;on te frappe</title><link>https://macsouverain.com/crowdsec-premiere-ligne-siem-souverain/</link><guid isPermaLink="true">https://macsouverain.com/crowdsec-premiere-ligne-siem-souverain/</guid><description>Installer CrowdSec sur ton VPS durci, bloquer les IP malveillantes en amont avec le bouncer firewall, et faire remonter ses décisions dans Wazuh.</description><pubDate>Wed, 08 Jul 2026 06:00:00 GMT</pubDate><content:encoded>&lt;p&gt;À l’épisode précédent, tu as &lt;a href=&quot;https://macsouverain.com/wazuh-agents-parc-siem-souverain/&quot;&gt;enrôlé les agents Wazuh sur tout ton parc&lt;/a&gt;. Serveurs Linux, Mac, Windows, chaque machine remonte ses journaux au manager, entièrement par le Tailnet. Ton SIEM a levé le nez de ses propres journaux, ton parc entier s’affiche devant lui. Il voit tout, en réalité. Y compris les attaques.&lt;/p&gt;
&lt;p&gt;Et c’est là que le bât blesse. Un agent Wazuh &lt;strong&gt;observe&lt;/strong&gt;, on l’a répété tout l’épisode 3. Il te dit qu’une rafale d’échecs de connexion vient de frapper ton serveur, il te le dit très bien, très vite, très en détail. Mais il ne fait rien pour l’arrêter. Tu as des yeux, tu n’as pas de mains.&lt;/p&gt;
&lt;p&gt;Aujourd’hui, on te donne les mains. On installe &lt;strong&gt;CrowdSec&lt;/strong&gt;, la première ligne de défense active de la série. Un moteur qui lit tes journaux comme Wazuh, mais qui, lui, en tire une conclusion et &lt;strong&gt;bloque&lt;/strong&gt;. L’IP qui martèle ton SSH, il la met dehors. L’attaquant déjà repéré ailleurs sur le réseau communautaire, il le refoule avant même qu’il ne toque à ta porte.&lt;/p&gt;
&lt;p&gt;Un point posé dès l’épisode 1 et qui tient toujours. &lt;strong&gt;La quasi-totalité de tes services vit en Tailnet-only, invisible depuis l’internet ouvert.&lt;/strong&gt; Mais certaines portes doivent rester ouvertes sur le monde, un serveur mail qui reçoit sur le port 25, une présence web publique. Ce sont ces portes-là, les seules exposées, que CrowdSec garde.&lt;/p&gt;
&lt;p&gt;Cette stack, je l’utilise au quotidien. Les commandes qui suivent sont celles que tu vas taper toi-même, dans l’ordre, sur ton VPS durci puis dans ton manager Wazuh.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;avant-de-commencer&quot;&gt;Avant de commencer&lt;/h2&gt;
&lt;p&gt;Trois choses à avoir en tête avant la première commande.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ce qu’il te faut.&lt;/strong&gt; Un VPS durci comme celui de l’épisode 1, à jour, avec au moins un service exposé sur l’internet ouvert à protéger. Le manager Wazuh de l’épisode 2, opérationnel, pour la partie intégration en fin de tuto. Un accès administrateur sur la machine. Et de quoi lire tes propres journaux, &lt;code&gt;/var/log/auth.log&lt;/code&gt; et les logs de tes services, puisque c’est la matière première de CrowdSec.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ce que ça change.&lt;/strong&gt; À la fin, les IP malveillantes connues n’atteignent plus tes services, elles butent sur ton pare-feu avant. Tu bénéficies aussi de la liste communautaire, des millions de signaux remontés par les autres utilisateurs, donc tu bloques des attaquants que tu n’as jamais vus toi-même. Et ton SIEM voit enfin cette couche de défense, chaque blocage remonte dans Wazuh.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ce que ça ne change pas.&lt;/strong&gt; CrowdSec bloque au niveau &lt;strong&gt;réseau&lt;/strong&gt;, sur l’adresse IP. Ce n’est ni un antivirus, ni un pare-feu applicatif exhaustif, ni un remplaçant de ton durcissement de l’épisode 1. C’est une couche de plus, la première que rencontre l’attaquant, pas la seule. Et il bloque l’IP, pas l’humain derrière, une IP change, la défense se joue sur le volume et la vitesse, pas sur l’infaillibilité.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;comment-crowdsec-voit-et-bloque&quot;&gt;Comment CrowdSec voit et bloque&lt;/h2&gt;
&lt;p&gt;Avant d’installer quoi que ce soit, comprends la mécanique, elle tient en trois pièces qui se passent le relais.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Le moteur de sécurité&lt;/strong&gt;, l’agent local. Il lit tes journaux en continu, &lt;code&gt;auth.log&lt;/code&gt;, les logs de ton serveur web, de ton serveur mail. Il les passe dans des &lt;strong&gt;scénarios&lt;/strong&gt;, des règles de comportement du type « six échecs SSH en dix secondes depuis la même IP, c’est du bruteforce ». Quand un scénario se déclenche, le moteur prend une &lt;strong&gt;décision&lt;/strong&gt;, en clair, il inscrit cette IP sur une liste noire pour une durée donnée, quatre heures par défaut sur du bruteforce.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Le bouncer&lt;/strong&gt;, l’exécuteur. Le moteur décide, mais il ne touche pas lui-même à ton pare-feu, c’est un choix d’architecture propre. C’est le bouncer qui applique la décision. Le bouncer firewall, celui qui nous intéresse, va poser la règle qui jette l’IP fautive dans ton nftables ou ton iptables. Moteur et bouncer sont séparés, tu peux en avoir plusieurs, un pour le pare-feu, un devant un reverse proxy web, chacun applique les mêmes décisions à son niveau.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Le réseau communautaire&lt;/strong&gt;, le CTI, pour Cyber Threat Intelligence, renseignement sur les menaces. C’est le multiplicateur. Quand ton moteur bloque une IP, il remonte le signal, l’adresse et le scénario, à l’API centrale de CrowdSec. En échange, tu télécharges la &lt;strong&gt;liste communautaire&lt;/strong&gt;, l’agrégat des IP signalées par l’ensemble des utilisateurs. Résultat, une IP qui a attaqué un serveur en Pologne ce matin est déjà bloquée chez toi cet après-midi, avant sa première tentative.&lt;/p&gt;
&lt;p&gt;Retiens le flux, il commande tout le reste. Journal lu par le moteur, scénario déclenché, décision prise, bouncer qui l’applique sur le pare-feu, signal partagé, liste communautaire téléchargée en retour.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;étape-1-installer-le-moteur&quot;&gt;Étape 1, installer le moteur&lt;/h2&gt;
&lt;p&gt;On commence par le cerveau, sur ton VPS durci. Deux commandes, une pour déclarer le dépôt officiel CrowdSec, une pour installer.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;curl&lt;/span&gt;&lt;span style=&quot;color:#005CC5&quot;&gt; -s&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; https://install.crowdsec.net&lt;/span&gt;&lt;span style=&quot;color:#D73A49&quot;&gt; |&lt;/span&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt; sudo&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; sh&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; apt&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; install&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; crowdsec&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;La première ligne ajoute le dépôt CrowdSec à ta liste de sources, la routine que tu connais depuis l’épisode 3 avec Wazuh. La seconde installe et démarre le moteur.&lt;/p&gt;
&lt;p&gt;L’installation est maligne sur un point. À la fin, CrowdSec &lt;strong&gt;scanne les services qu’il détecte&lt;/strong&gt; sur ta machine et installe automatiquement les &lt;strong&gt;collections&lt;/strong&gt; correspondantes, les paquets de scénarios adaptés. Il voit un serveur SSH, il installe la collection &lt;code&gt;crowdsecurity/sshd&lt;/code&gt;. Un Nginx, il ajoute les scénarios web. Tu n’as pas à deviner quoi surveiller, il le déduit de ce qui tourne.&lt;/p&gt;
&lt;p&gt;Vérifie ce qu’il a mis en place.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; cscli&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; collections&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; list&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Tu dois voir la liste des collections actives, avec la mention &lt;code&gt;enabled&lt;/code&gt;. Si un service exposé n’est pas couvert, tu ajoutes sa collection à la main, par exemple &lt;code&gt;sudo cscli collections install crowdsecurity/nginx&lt;/code&gt; puis un redémarrage du service &lt;code&gt;crowdsec&lt;/code&gt;. Tout se pilote avec &lt;code&gt;cscli&lt;/code&gt;, l’outil en ligne de commande du moteur, l’équivalent de ton &lt;code&gt;agent_control&lt;/code&gt; côté Wazuh.&lt;/p&gt;
&lt;p&gt;À ce stade, le moteur lit, analyse et &lt;strong&gt;décide&lt;/strong&gt;. Mais il ne bloque encore rien. Il tient une liste noire que personne n’applique. Il lui manque ses mains.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;étape-2-poser-le-bouncer-qui-bloque-vraiment&quot;&gt;Étape 2, poser le bouncer qui bloque vraiment&lt;/h2&gt;
&lt;p&gt;Les mains, c’est le &lt;strong&gt;bouncer firewall&lt;/strong&gt;. Il lit les décisions du moteur et les traduit en règles de pare-feu qui refoulent réellement le trafic.&lt;/p&gt;
&lt;p&gt;Il en existe deux variantes selon ton pare-feu, une pour nftables, une pour iptables. Les distributions récentes tournent sous nftables, c’est le cas par défaut.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; apt&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; install&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; crowdsec-firewall-bouncer-nftables&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Si ta machine est sur l’ancien iptables, tu remplaces le paquet par &lt;code&gt;crowdsec-firewall-bouncer-iptables&lt;/code&gt;. Le principe est identique. Un détail de cohérence avec l’épisode 1, si ton pare-feu tourne sous &lt;code&gt;ufw&lt;/code&gt;, sache que &lt;code&gt;ufw&lt;/code&gt; s’appuie sur l’un des deux backends selon ta version, vérifie lequel avant de choisir la variante du bouncer.&lt;/p&gt;
&lt;p&gt;L’installation fait le branchement toute seule. Le paquet appelle &lt;code&gt;cscli bouncers add&lt;/code&gt; pour lui, enregistre le bouncer auprès du moteur et lui remet une clé d’authentification. Aucune manipulation de clé à faire à la main.&lt;/p&gt;
&lt;p&gt;Vérifie que le moteur et son bouncer se parlent.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; cscli&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; bouncers&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; list&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Tu dois voir ton bouncer firewall listé, avec une date de dernière activité récente. À partir de maintenant, la boucle est fermée. Le moteur décide, le bouncer applique, l’IP fautive tombe dans un ensemble bloqué par ton pare-feu. Ton SIEM a des mains.&lt;/p&gt;
&lt;figure class=&quot;kg-card kg-image-card&quot;&gt;
&lt;img src=&quot;https://macsouverain.com/content/images/2026/07/capture-bouncers-list-crowdsec-premiere-ligne-siem-souverain-1.png&quot; class=&quot;kg-image&quot; loading=&quot;lazy&quot; alt=&quot;Sortie de cscli bouncers list : le bouncer firewall enregistré, valide, avec une dernière activité récente.&quot;&gt;
&lt;/figure&gt;
&lt;hr&gt;
&lt;h2 id=&quot;étape-3-vérifier-que-ça-mord&quot;&gt;Étape 3, vérifier que ça mord&lt;/h2&gt;
&lt;p&gt;Trois commandes pour t’assurer que la machine tourne, et une pour la mettre à l’épreuve sans attendre une vraie attaque.&lt;/p&gt;
&lt;p&gt;D’abord la vue d’ensemble.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; cscli&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; metrics&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Elle t’affiche combien de lignes de logs le moteur a lues, par source, et combien de fois chaque scénario s’est déclenché. Si les compteurs de lecture bougent, ton moteur voit bien tes journaux. S’ils restent à zéro, il ne lit rien, et là c’est un problème de source à régler avant d’aller plus loin.&lt;/p&gt;
&lt;p&gt;Ensuite les décisions en cours, la liste noire vivante. Ajoute le drapeau &lt;code&gt;-a&lt;/code&gt;, sinon CrowdSec ne t’affiche que tes décisions locales et masque les IP tirées du réseau communautaire.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; cscli&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; decisions&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; list&lt;/span&gt;&lt;span style=&quot;color:#005CC5&quot;&gt; -a&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Sur une machine exposée depuis quelques heures, elle n’est déjà pas vide, entre tes propres blocages et la liste communautaire téléchargée. Chaque ligne, une IP, le scénario qui l’a fait tomber, la durée restante.&lt;/p&gt;
&lt;p&gt;Regarde la colonne Source. Les lignes &lt;code&gt;CAPI&lt;/code&gt;, ce sont les cadeaux de la communauté, des IP que tu n’as jamais vues toquer chez toi et qui sont déjà refoulées. La ligne &lt;code&gt;crowdsec&lt;/code&gt; en gras, c’est la tienne, un scanner que ton propre serveur a chopé en plein http-probing et banni tout seul, trois heures au coin. Le collectif et le local, côte à côte, dans la même liste noire.&lt;/p&gt;
&lt;figure class=&quot;kg-card kg-image-card&quot;&gt;
&lt;img src=&quot;https://macsouverain.com/content/images/2026/07/capture-decisions-list-crowdsec-premiere-ligne-siem-souverain-1.png&quot; class=&quot;kg-image&quot; loading=&quot;lazy&quot; alt=&quot;Sortie réelle de cscli decisions list -a : la ligne locale en gras, un attaquant repéré par ton serveur, au milieu des décisions communautaires CAPI.&quot;&gt;
&lt;/figure&gt;
&lt;p&gt;Enfin, l’épreuve. Plutôt que d’attendre un attaquant, tu fabriques une décision de test sur une IP bidon.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; cscli&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; decisions&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; add&lt;/span&gt;&lt;span style=&quot;color:#005CC5&quot;&gt; --ip&lt;/span&gt;&lt;span style=&quot;color:#005CC5&quot;&gt; 192.0.2.1&lt;/span&gt;&lt;span style=&quot;color:#005CC5&quot;&gt; --duration&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; 4h&lt;/span&gt;&lt;span style=&quot;color:#005CC5&quot;&gt; --reason&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; &quot;test blocage&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; cscli&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; decisions&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; list&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;L’IP &lt;code&gt;192.0.2.1&lt;/code&gt; appartient à une plage réservée à la documentation, elle ne bloquera personne de réel. Tu la vois apparaître dans la liste, le bouncer la pousse dans ton pare-feu. Nettoie derrière toi une fois le test concluant.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; cscli&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; decisions&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; delete&lt;/span&gt;&lt;span style=&quot;color:#005CC5&quot;&gt; --ip&lt;/span&gt;&lt;span style=&quot;color:#005CC5&quot;&gt; 192.0.2.1&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Si l’ajout, l’affichage et la suppression s’enchaînent proprement, ta chaîne moteur-décision-bouncer est opérationnelle de bout en bout.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;étape-4-le-signal-communautaire-ce-qui-sort-et-ce-qui-reste&quot;&gt;Étape 4, le signal communautaire, ce qui sort et ce qui reste&lt;/h2&gt;
&lt;p&gt;C’est là que CrowdSec change d’échelle, et c’est aussi le seul endroit où la souveraineté demande une phrase d’honnêteté, alors posons-la sans détour.&lt;/p&gt;
&lt;p&gt;Par défaut, ton moteur est inscrit à l’&lt;strong&gt;API centrale communautaire&lt;/strong&gt;. Tu peux le vérifier.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; cscli&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; capi&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; status&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Cet échange fonctionne dans les deux sens, et c’est important de savoir exactement quoi. &lt;strong&gt;Ce qui sort de chez toi&lt;/strong&gt;, quand tu bloques une IP, c’est un signal minimal, l’adresse IP fautive, le scénario déclenché et l’horodatage. &lt;strong&gt;Ce qui ne sort jamais&lt;/strong&gt;, ce sont tes journaux, tes noms de machines, tes utilisateurs, le contenu de quoi que ce soit. CrowdSec partage la conclusion « cette IP attaque », pas la matière première qui t’a permis d’y arriver. &lt;strong&gt;Ce qui rentre&lt;/strong&gt;, c’est la liste communautaire, l’agrégat anonymisé de ces signaux à l’échelle de tout le réseau.&lt;/p&gt;
&lt;p&gt;C’est un compromis, et il est net. Tu échanges l’adresse d’attaquants, une donnée qui n’est pas la tienne mais celle de tes agresseurs, contre une protection collective que tu ne pourrais jamais construire seul. Le moteur, lui, reste &lt;strong&gt;auto-hébergé chez toi&lt;/strong&gt;, aucun tiers ne pilote tes blocages, aucune décision ne dépend d’un service distant qui pourrait être coupé. Tu peux même te désinscrire du partage et tourner en pur local, tu gardes ta défense, tu perds seulement la liste communautaire. Le curseur est entre tes mains, comme toujours dans cette série.&lt;/p&gt;
&lt;p&gt;Si tu veux une console web pour visualiser tes alertes, CrowdSec en propose une, gratuite, où tu relies ton moteur avec &lt;code&gt;sudo cscli console enroll &amp;#x3C;ta-clé&gt;&lt;/code&gt;. Facultatif, et hébergé par CrowdSec, donc à peser selon ta ligne. Ton vrai tableau de bord, de toute façon, c’est Wazuh, et c’est l’étape suivante.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;étape-5-faire-remonter-crowdsec-dans-wazuh&quot;&gt;Étape 5, faire remonter CrowdSec dans Wazuh&lt;/h2&gt;
&lt;p&gt;Ton pare-feu bloque, très bien. Mais pour l’instant ton SIEM ne le sait pas. CrowdSec agit dans son coin, Wazuh regarde ailleurs. On les branche, pour que chaque décision CrowdSec devienne une alerte visible dans ton tableau de bord unique.&lt;/p&gt;
&lt;p&gt;Le principe est simple et propre. CrowdSec sait &lt;strong&gt;écrire ses alertes dans un fichier&lt;/strong&gt;, et Wazuh sait &lt;strong&gt;lire un fichier de logs&lt;/strong&gt;. On fait se rencontrer les deux.&lt;/p&gt;
&lt;p&gt;Côté CrowdSec, tu actives le plugin de notification par fichier. Il existe déjà, tu l’édites dans &lt;code&gt;/etc/crowdsec/notifications/file.yaml&lt;/code&gt; pour qu’il écrive au format JSON, une alerte par ligne.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#22863A&quot;&gt;type&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt;file&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#22863A&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt;file_default&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#22863A&quot;&gt;log_level&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt;info&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#22863A&quot;&gt;format&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#D73A49&quot;&gt;|&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#032F62&quot;&gt;  {{range . -}}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#032F62&quot;&gt;   { &quot;crowdsec&quot;: { &quot;program&quot;: &quot;crowdsec&quot;, &quot;alert&quot;: {{. | toJson }} }}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#032F62&quot;&gt;  {{ end -}}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#22863A&quot;&gt;log_path&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt;&quot;/var/log/crowdsec/crowdsec_alerts.json&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#22863A&quot;&gt;rotate&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#22863A&quot;&gt;  enabled&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#005CC5&quot;&gt;true&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#22863A&quot;&gt;  max_size&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#005CC5&quot;&gt;500&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#22863A&quot;&gt;  compress&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#005CC5&quot;&gt;true&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Puis tu déclares ce canal dans &lt;code&gt;/etc/crowdsec/profiles.yaml&lt;/code&gt;, pour que le moteur y envoie ses alertes.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#22863A&quot;&gt;notifications&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt;file_default&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Un détail qui compte. Le tutoriel officiel de CrowdSec écrit ce fichier dans &lt;code&gt;/tmp&lt;/code&gt;, qui est vidé à chaque redémarrage de la machine. On le pose plutôt dans &lt;code&gt;/var/log/crowdsec/&lt;/code&gt;, pour que ton historique d’alertes survive à un reboot. Un redémarrage du service &lt;code&gt;crowdsec&lt;/code&gt;, et le fichier &lt;code&gt;/var/log/crowdsec/crowdsec_alerts.json&lt;/code&gt; se remplit à chaque décision.&lt;/p&gt;
&lt;p&gt;Côté Wazuh, tu dis à l’agent local, celui de l’épisode 3 déjà installé sur ce serveur, de lire ce fichier. Tu ajoutes ce bloc à sa configuration, idéalement via la configuration partagée du groupe pour ne l’écrire qu’une fois.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;xml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;localfile&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;  &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;location&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;/var/log/crowdsec/crowdsec_alerts.json&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;location&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;  &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;log_format&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;json&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;log_format&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;  &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;label&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;crowdsec&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;label&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;localfile&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Tu reconnais la logique du &lt;code&gt;&amp;#x3C;localfile&gt;&lt;/code&gt;, c’est exactement le mécanisme par lequel Wazuh avale n’importe quelle source de journaux. Le format &lt;code&gt;json&lt;/code&gt; lui dit de parser chaque ligne comme un objet structuré, et tes champs &lt;code&gt;crowdsec.alert.*&lt;/code&gt; deviennent interrogeables dans le dashboard.&lt;/p&gt;
&lt;figure class=&quot;kg-card kg-image-card&quot;&gt;
&lt;img src=&quot;https://macsouverain.com/content/images/2026/07/capture-wazuh-alert-crowdsec-premiere-ligne-siem-souverain-1.png&quot; class=&quot;kg-image&quot; loading=&quot;lazy&quot; alt=&quot;Une alerte CrowdSec remontée dans le dashboard Wazuh Discover : un ban sur le scénario crowdsecurity/ssh-bf, avec tous ses champs crowdsec.alert dépliés et interrogeables.&quot;&gt;
&lt;/figure&gt;
&lt;p&gt;Redémarre l’agent Wazuh, et la boucle de la série se referme. Une IP attaque, CrowdSec la bloque, écrit l’alerte, l’agent Wazuh la lit, le manager la remonte, elle s’affiche dans ton tableau de bord à côté de tout le reste. Ton SIEM ne voit plus seulement les attaques, il voit ses propres ripostes.&lt;/p&gt;
&lt;p&gt;Une note de version, parce qu’elle compte. Cette intégration par plugin fichier suppose une version récente du moteur et de Wazuh. Vérifie que ton CrowdSec est en 1.6.3 ou au-dessus et que ton Wazuh est en 4.9.0 ou au-dessus, les versions à partir desquelles cette intégration par plugin fichier est officiellement supportée. Tu tournes sur du Wazuh 4.x, cette intégration ne dépend pas de la future 5.0, elle marche sur ta stack actuelle.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;si-ça-ne-marche-pas&quot;&gt;Si ça ne marche pas&lt;/h2&gt;
&lt;p&gt;Le déploiement de CrowdSec est direct, et il coince presque toujours aux mêmes endroits. Voici les vrais, dans l’ordre où tu les rencontreras.&lt;/p&gt;
&lt;h3 id=&quot;problème-cscli-metrics-affiche-zéro-ligne-lue&quot;&gt;Problème, &lt;code&gt;cscli metrics&lt;/code&gt; affiche zéro ligne lue&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Cause probable,&lt;/strong&gt; le moteur ne trouve pas tes journaux, ou n’a pas la collection correspondant à ton service. Il tourne, mais il lit dans le vide.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Solution,&lt;/strong&gt; vérifie que la source de logs existe bien au chemin attendu et que la collection du service est installée avec &lt;code&gt;sudo cscli collections list&lt;/code&gt;. Ajoute la collection manquante, puis redémarre le service &lt;code&gt;crowdsec&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&quot;problème-une-ip-est-décidée-mais-rien-nest-bloqué&quot;&gt;Problème, une IP est décidée mais rien n’est bloqué&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Cause probable,&lt;/strong&gt; le bouncer n’est pas là, ou ne parle pas au moteur. Le moteur décide dans son coin, personne n’applique.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Solution,&lt;/strong&gt; &lt;code&gt;sudo cscli bouncers list&lt;/code&gt; doit montrer ton bouncer firewall avec une activité récente. S’il est absent, réinstalle le paquet du bouncer. S’il est présent mais muet, vérifie que le service du bouncer tourne.&lt;/p&gt;
&lt;h3 id=&quot;problème-le-mauvais-backend-de-pare-feu&quot;&gt;Problème, le mauvais backend de pare-feu&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Cause probable,&lt;/strong&gt; tu as installé la variante nftables du bouncer sur une machine en iptables, ou l’inverse. Le bouncer pose ses règles dans un système que ton pare-feu n’utilise pas.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Solution,&lt;/strong&gt; identifie ton backend réel, puis installe la variante correspondante du bouncer, &lt;code&gt;crowdsec-firewall-bouncer-nftables&lt;/code&gt; ou &lt;code&gt;crowdsec-firewall-bouncer-iptables&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&quot;problème-rien-ne-remonte-dans-wazuh&quot;&gt;Problème, rien ne remonte dans Wazuh&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Cause probable,&lt;/strong&gt; attention, ce n’est en général pas un problème CrowdSec. Le fichier &lt;code&gt;/var/log/crowdsec/crowdsec_alerts.json&lt;/code&gt; se remplit, mais l’agent Wazuh ne le lit pas, ou le manager ne digère pas le format.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Solution,&lt;/strong&gt; vérifie d’abord que le fichier grossit côté CrowdSec. S’il grossit, le diagnostic est côté Wazuh, le bloc &lt;code&gt;&amp;#x3C;localfile&gt;&lt;/code&gt; et la version de l’agent, pas côté moteur. Ne réinstalle pas CrowdSec pour un souci de lecture Wazuh.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;la-liste-communautaire-fait-la-moitié-du-travail&quot;&gt;La liste communautaire fait la moitié du travail&lt;/h2&gt;
&lt;p&gt;Un dernier mot, parce que c’est le point qu’on sous-estime toujours au départ. Le jour où tu installes CrowdSec, tu t’attends à ce qu’il apprenne lentement, à ce qu’il faille des semaines de trafic pour qu’il devienne utile. Faux.&lt;/p&gt;
&lt;p&gt;Dès la première synchronisation, tu télécharges la liste communautaire, et ton &lt;code&gt;cscli decisions list -a&lt;/code&gt; se peuple d’IP que tu n’as jamais vues. Des attaquants repérés ailleurs, déjà refoulés chez toi. Tu bénéficies du travail de dizaines de milliers d’autres serveurs avant d’avoir subi ta première attaque.&lt;/p&gt;
&lt;p&gt;Ce n’est pas magique, c’est du volume. Chaque serveur qui remonte un signal renforce la défense de tous les autres. C’est exactement le modèle que le SaaS américain te vend cher et sous sa juridiction, sauf qu’ici il est open source, auto-hébergé, et le signal partagé se limite à l’adresse de tes agresseurs.&lt;/p&gt;
&lt;p&gt;Le tournant est franchi. Là où ton SIEM se contentait de constater, il refoule.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;pour-les-pressés&quot;&gt;Pour les pressés&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Ce que fait cet article.&lt;/strong&gt; On installe CrowdSec sur le VPS durci pour bloquer en amont les IP malveillantes, connues localement comme signalées par le réseau communautaire. Le moteur lit les journaux et décide, le bouncer firewall applique le blocage sur nftables ou iptables, et chaque décision remonte dans Wazuh via un fichier d’alertes lu par l’agent. La défense passe de « voir » à « barrer la route ».&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Concrètement, les commandes.&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Installer le moteur : &lt;code&gt;curl -s https://install.crowdsec.net | sudo sh&lt;/code&gt; puis &lt;code&gt;sudo apt install crowdsec&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Vérifier les collections détectées : &lt;code&gt;sudo cscli collections list&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Installer le bouncer firewall selon ton backend : &lt;code&gt;sudo apt install crowdsec-firewall-bouncer-nftables&lt;/code&gt; (ou &lt;code&gt;-iptables&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Vérifier le branchement : &lt;code&gt;sudo cscli bouncers list&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Contrôler la machine : &lt;code&gt;sudo cscli metrics&lt;/code&gt; et &lt;code&gt;sudo cscli decisions list -a&lt;/code&gt; (le &lt;code&gt;-a&lt;/code&gt; pour voir aussi la liste communautaire).&lt;/li&gt;
&lt;li&gt;Tester le blocage : &lt;code&gt;sudo cscli decisions add --ip 192.0.2.1 --duration 4h --reason &quot;test&quot;&lt;/code&gt; puis &lt;code&gt;sudo cscli decisions delete --ip 192.0.2.1&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Vérifier le partage communautaire : &lt;code&gt;sudo cscli capi status&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Intégrer à Wazuh : activer le plugin fichier dans &lt;code&gt;/etc/crowdsec/notifications/file.yaml&lt;/code&gt; (sortie &lt;code&gt;/var/log/crowdsec/crowdsec_alerts.json&lt;/code&gt;), l’appeler dans &lt;code&gt;/etc/crowdsec/profiles.yaml&lt;/code&gt;, puis ajouter le bloc &lt;code&gt;&amp;#x3C;localfile&gt;&lt;/code&gt; JSON à la config de l’agent Wazuh.&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2 id=&quot;en-résumé&quot;&gt;En résumé&lt;/h2&gt;
&lt;p&gt;Tu es parti d’un SIEM qui voyait les attaques sans pouvoir les arrêter, tu repars avec une première ligne qui les refoule.&lt;/p&gt;
&lt;p&gt;Tu as &lt;strong&gt;installé le moteur CrowdSec&lt;/strong&gt; sur ton VPS durci, qui lit tes journaux et décide. Tu as &lt;strong&gt;posé le bouncer firewall&lt;/strong&gt;, qui applique ces décisions sur ton pare-feu et bloque réellement. Tu as &lt;strong&gt;branché la liste communautaire&lt;/strong&gt;, qui te protège d’attaquants que tu n’as jamais croisés, en ne partageant que l’adresse des tiens. Et tu as &lt;strong&gt;fait remonter tout ça dans Wazuh&lt;/strong&gt;, pour que ta salle de contrôle voie enfin la couche de défense réseau.&lt;/p&gt;
&lt;p&gt;Le tout reste chez toi. Le moteur est auto-hébergé, aucune décision ne dépend d’un tiers, et le seul signal qui sort, c’est l’IP de tes agresseurs. La protection collective sans la dépendance, c’est précisément le troisième chemin, le souverain, ouvert à l’épisode d’introduction.&lt;/p&gt;
&lt;p&gt;Tu bloques désormais au niveau réseau. Mais tes attaques les plus fréquentes n’arrivent pas par le port SSH, elles arrivent par la boîte mail. À l’épisode 5, on monte le filtre anti-spam et anti-hameçonnage devant ton serveur de messagerie, la porte la plus exposée de toutes.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;rappel-de-la-série&quot;&gt;Rappel de la série&lt;/h2&gt;
&lt;p&gt;Sept épisodes pour monter ta plomberie de sécurité souveraine, brique par brique.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://macsouverain.com/nis2-splunk-pourquoi-pme-siem-souverain/&quot;&gt;Épisode 0, le fondement de la série.&lt;/a&gt;&lt;/strong&gt; Pourquoi une PME a besoin d’un SIEM souverain, NIS2, RGPD, et le coût du statu quo.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://macsouverain.com/vps-durci-socle-siem-souverain/&quot;&gt;Épisode 1, le socle.&lt;/a&gt;&lt;/strong&gt; Le VPS durci hors CLOUD Act.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://macsouverain.com/wazuh-tout-en-un-siem-souverain/&quot;&gt;Épisode 2, Wazuh en tout-en-un.&lt;/a&gt;&lt;/strong&gt; Manager, indexeur et tableau de bord sur un seul nœud.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://macsouverain.com/wazuh-agents-parc-siem-souverain/&quot;&gt;Épisode 3, les agents partout.&lt;/a&gt;&lt;/strong&gt; Déploiement sur tes serveurs, Mac et Windows.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Épisode 4, la défense réseau communautaire.&lt;/strong&gt; Bloquer les attaquants connus avant qu’ils n’arrivent. Tu viens de le lire.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://macsouverain.com/rspamd-mail-siem-souverain/&quot;&gt;Épisode 5, le filtre mail.&lt;/a&gt;&lt;/strong&gt; Anti-spam et anti-hameçonnage devant ton serveur de messagerie.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://macsouverain.com/santa-controle-execution-mac-siem-souverain/&quot;&gt;Épisode 6, le contrôle d’exécution sur les Mac.&lt;/a&gt;&lt;/strong&gt; Décider quelles applications ont le droit de démarrer.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Épisode 7, alerting et coût total.&lt;/strong&gt; Notifications calibrées et bilan financier honnête face au SaaS.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;Des termes techniques ? &lt;a href=&quot;https://macsouverain.com/glossaire&quot;&gt;Consulte le glossaire.&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;</content:encoded><dc:creator>Mac Souverain</dc:creator><category>ms-pro</category><category>nis2</category><category>siem</category><category>crowdsec</category><category>securite</category><category>tutoriel</category><enclosure url="https://macsouverain.com/content/images/2026/07/feature-crowdsec-premiere-ligne-siem-souverain-1.png" length="0" type="image/png"/></item><item><title>Installe ton premier modèle d&apos;IA en local sur Mac</title><link>https://macsouverain.com/installer-premier-modele-ia-local-mac/</link><guid isPermaLink="true">https://macsouverain.com/installer-premier-modele-ia-local-mac/</guid><description>Un modèle d&apos;IA capable qui tourne 100 % offline sur ton Mac Apple Silicon, en 20 minutes et sans une ligne de commande. Installation LM Studio, choix du modèle en MLX, premier prompt, et la preuve finale, couper le Wi-Fi.</description><pubDate>Mon, 06 Jul 2026 06:14:39 GMT</pubDate><content:encoded>&lt;p&gt;Dans l’article précédent, on a posé le décor. Ton accès à un modèle d’IA distant peut être coupé du jour au lendemain, par une décision arbitraire, et la seule chose qui continue de tourner ce matin-là, ben… c’est plus rien.&lt;/p&gt;
&lt;p&gt;On a également dressé la carte de ce qu’un Mac Apple Silicon fait tourner en local, du petit modèle qui trie tes notes, au gros modèle qui rédige.&lt;/p&gt;
&lt;p&gt;C’était le pourquoi. Voici le comment.&lt;/p&gt;
&lt;p&gt;Bonne nouvelle d’entrée : tu n’as besoin d’aucune compétence technique, d’aucune ligne de commande, et d’aucun matériel supplémentaire. Si tu lis ces lignes sur un Mac récent, tu as déjà tout. Compte une vingtaine de minutes, la plupart passées à regarder une barre de téléchargement avancer.&lt;/p&gt;
&lt;p&gt;Au bout, un modèle capable, qui répond entièrement chez toi. Et pour te le prouver, à la toute fin, on coupera le Wi-Fi.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;À lire : &lt;a href=&quot;https://macsouverain.com/ton-ia-peut-etre-eteinte-monte-la-tienne/&quot;&gt;Ton IA peut être éteinte par les US, monte la tienne&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&quot;ce-quil-te-faut&quot;&gt;Ce qu’il te faut&lt;/h2&gt;
&lt;p&gt;Trois choses, et tu les as probablement déjà.&lt;/p&gt;
&lt;p&gt;Un &lt;strong&gt;Mac Apple Silicon&lt;/strong&gt;, c’est-à-dire une puce M1 à M5. La quasi-totalité des Mac grand public vendus depuis fin 2020 en sont équipés. Si tu as un Mac Intel, cette méthode ne s’applique pas, l’inférence locale efficace repose sur la mémoire unifiée d’Apple Silicon.&lt;/p&gt;
&lt;p&gt;Une version de &lt;strong&gt;macOS raisonnablement récente&lt;/strong&gt;, Sonoma (14) ou plus récent pour l’outil qu’on va utiliser. Si tu n’as pas mis à jour depuis un moment, c’est le moment.&lt;/p&gt;
&lt;p&gt;De la &lt;strong&gt;RAM&lt;/strong&gt;, et c’est là que se joue le choix du modèle. Rappel express de l’article précédent : sur un Mac à 16 Go, une fois le système servi, il te reste 8 à 10 Go réellement utiles pour l’IA, de quoi faire tourner un modèle de 7 à 8 milliards de paramètres.&lt;/p&gt;
&lt;p&gt;Sur un 32 Go, tu montes une classe au-dessus, jusqu’à un modèle de 24 milliards de paramètres. La règle d’or, ne jamais choisir un modèle qui remplit tout le budget disponible, sinon la machine se met à ramer ou plante.&lt;/p&gt;
&lt;p&gt;Si tu veux le détail du budget RAM et la carte complète des modèles par taille, tout est dans l’article précédent. Ici, on installe.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;loutil--lm-studio-zéro-terminal&quot;&gt;L’outil : LM Studio, zéro terminal&lt;/h2&gt;
&lt;p&gt;Il existe plusieurs façons de faire tourner un modèle en local. Pour un premier pas, une seule mérite d’être en vedette : &lt;strong&gt;LM Studio&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;C’est une application de bureau classique, avec des fenêtres, des boutons et un champ de recherche. Tu télécharges tes modèles depuis une bibliothèque intégrée, tu cliques, tu discutes. Aucune ligne de commande, aucun fichier de configuration à éditer, aucune manipulation ésotérique. C’est l’IA locale présentée comme une app normale, et pour débuter c’est exactement ce qu’il faut.&lt;/p&gt;
&lt;p&gt;LM Studio est &lt;strong&gt;gratuit&lt;/strong&gt;, pour un usage personnel comme professionnel. Et sur Mac Apple Silicon, il embarque le meilleur moteur possible, on y revient dans deux minutes.&lt;/p&gt;
&lt;p&gt;Les curieux et les gourmands ont d’autres options, Ollama en ligne de commande, MLX pour aller au ras du métal. On les évoque en fin d’article, une fois que tu auras déjà un modèle qui tourne. Chaque chose en son temps.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;installer-lm-studio&quot;&gt;Installer LM Studio&lt;/h2&gt;
&lt;p&gt;Rien de plus qu’une app Mac ordinaire.&lt;/p&gt;
&lt;p&gt;Rends-toi sur &lt;a href=&quot;https://lmstudio.ai&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;lmstudio.ai&lt;/a&gt; et télécharge la version pour Mac. Le site détecte ta machine et te propose le bon build, celui pour Apple Silicon. Tu récupères un fichier &lt;code&gt;.dmg&lt;/code&gt;, le format d’installation habituel sur Mac.&lt;/p&gt;
&lt;figure class=&quot;kg-card kg-image-card&quot;&gt;
&lt;img src=&quot;https://macsouverain.com/content/images/2026/07/capture-01-page-telechargement-installer-premier-modele-ia-local-mac-2.png&quot; class=&quot;kg-image&quot; loading=&quot;lazy&quot; alt=&quot;La page de téléchargement de LM Studio, qui détecte automatiquement ton Mac Apple Silicon.&quot;&gt;
&lt;/figure&gt;
&lt;p&gt;Ouvre le &lt;code&gt;.dmg&lt;/code&gt; téléchargé. Une fenêtre s’affiche avec l’icône de LM Studio et un raccourci vers ton dossier Applications. Glisse l’icône sur le dossier Applications, exactement comme pour n’importe quelle app. C’est tout, rien à cocher, rien à configurer.&lt;/p&gt;
&lt;figure class=&quot;kg-card kg-image-card&quot;&gt;
&lt;img src=&quot;https://macsouverain.com/content/images/2026/07/capture-02-dmg-vers-applications-installer-premier-modele-ia-local-mac-2.png&quot; class=&quot;kg-image&quot; loading=&quot;lazy&quot; alt=&quot;La fenêtre du .dmg, tu glisses l&amp;#x27;icône LM Studio sur le dossier Applications.&quot;&gt;
&lt;/figure&gt;
&lt;p&gt;Lance LM Studio depuis ton Launchpad ou ton dossier Applications. Au premier démarrage, macOS peut te demander de confirmer l’ouverture d’une app téléchargée sur Internet, tu confirmes. L’application s’ouvre sur un écran d’accueil qui te propose de choisir un premier modèle. On y va.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;choisir-et-télécharger-ton-premier-modèle&quot;&gt;Choisir et télécharger ton premier modèle&lt;/h2&gt;
&lt;p&gt;C’est l’étape qui compte, et celle où on va être précis, parce que tous les modèles ne se valent pas et que le bon choix dépend de ta RAM.&lt;/p&gt;
&lt;p&gt;Reprends le pick souverain de l’article précédent. Sur un Mac à &lt;strong&gt;16 Go&lt;/strong&gt;, vise &lt;strong&gt;Qwen2.5 7B&lt;/strong&gt;, un modèle sous licence Apache 2.0, vraiment libre, qui fait tourner l’essentiel du quotidien. Sur un Mac à &lt;strong&gt;32 Go&lt;/strong&gt;, vise &lt;strong&gt;Mistral Small&lt;/strong&gt;, un modèle de 24 milliards de paramètres, européen et lui aussi sous Apache 2.0, taillé pour la rédaction soutenue et l’analyse de longs documents.&lt;/p&gt;
&lt;p&gt;Dans LM Studio, ouvre l’onglet de recherche, l’icône en forme de loupe dans la barre latérale, et tape le nom du modèle. La bibliothèque est connectée à Hugging Face, la grande logithèque des modèles ouverts, tu vas donc voir apparaître plusieurs variantes du même modèle. C’est normal, et c’est là qu’il faut savoir lire.&lt;/p&gt;
&lt;figure class=&quot;kg-card kg-image-card&quot;&gt;
&lt;img src=&quot;https://macsouverain.com/content/images/2026/07/capture-03-discover-recherche-installer-premier-modele-ia-local-mac-2.png&quot; class=&quot;kg-image&quot; loading=&quot;lazy&quot; alt=&quot;L&amp;#x27;onglet Discover de LM Studio, pour chercher et télécharger des modèles depuis Hugging Face.&quot;&gt;
&lt;/figure&gt;
&lt;p&gt;Deux informations à décoder sur chaque variante.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Le format.&lt;/strong&gt; Tu vas croiser deux mots, &lt;strong&gt;MLX&lt;/strong&gt; et &lt;strong&gt;GGUF&lt;/strong&gt;. Retiens simplement ceci : MLX, le framework de calcul maison d’Apple, est le moteur optimisé pour la mémoire unifiée d’Apple Silicon. Sur ton Mac, une version MLX tourne nettement plus vite que la même en GGUF, à qualité égale.&lt;/p&gt;
&lt;p&gt;LM Studio embarque ce moteur MLX, autant l’exploiter. &lt;strong&gt;Prends la version MLX du modèle dès qu’elle existe.&lt;/strong&gt; Si un modèle n’existe qu’en GGUF, ce n’est pas grave, ça marche aussi, juste un peu moins vite.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;La quantification.&lt;/strong&gt; Tu vas voir des étiquettes comme &lt;code&gt;4bit&lt;/code&gt;, &lt;code&gt;Q4&lt;/code&gt;, &lt;code&gt;Q4_K_M&lt;/code&gt;, &lt;code&gt;Q8&lt;/code&gt;. C’est le degré de compression du modèle. Un modèle brut pèse une fortune en mémoire, la quantification réduit la précision de ses poids pour le faire tenir dans ta RAM, au prix d’une perte de qualité minime.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q4, ou 4bit, est le bon compromis pour débuter&lt;/strong&gt;, il divise le poids du fichier par environ quatre par rapport au modèle non compressé, sans que tu voies vraiment la différence à l’usage. Q8 est plus fidèle mais deux fois plus lourd, garde-le pour plus tard si tu as de la marge.&lt;/p&gt;
&lt;p&gt;Concrètement, ce que tu télécharges :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Sur 16 Go, &lt;strong&gt;Qwen2.5 7B en MLX 4bit&lt;/strong&gt; pèse environ &lt;strong&gt;4,3 Go&lt;/strong&gt;. Il rentre large.&lt;/li&gt;
&lt;li&gt;Sur 32 Go, &lt;strong&gt;Mistral Small 24B en MLX 4bit&lt;/strong&gt; pèse &lt;strong&gt;autour de 13 à 14 Go&lt;/strong&gt;. Il rentre dans ta marge sans te ruiner la machine.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Choisis la bonne variante, MLX et 4bit, et clique sur télécharger. Une barre de progression apparaît, tu peux suivre l’avancement dans l’onglet des téléchargements. C’est le moment d’aller te faire un café, le fichier fait plusieurs gigas.&lt;/p&gt;
&lt;figure class=&quot;kg-card kg-image-card&quot;&gt;
&lt;img src=&quot;https://macsouverain.com/content/images/2026/07/capture-04-picker-modele-mlx-installer-premier-modele-ia-local-mac-2.png&quot; class=&quot;kg-image&quot; loading=&quot;lazy&quot; alt=&quot;Qwen2.5 7B Instruct en variante MLX, quantification 4bit, 4 Go.&quot;&gt;
&lt;/figure&gt;
&lt;p&gt;Un mot sur les noms de version. Les modèles évoluent, Mistral Small en est déjà à une révision plus récente que celle nommée dans l’article précédent. Ne te formalise pas sur le numéro exact, prends la dernière &lt;strong&gt;Mistral Small 24B&lt;/strong&gt; proposée en MLX dans LM Studio, ce sera la bonne.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;ton-premier-prompt-puis-coupe-le-wi-fi&quot;&gt;Ton premier prompt, puis coupe le Wi-Fi&lt;/h2&gt;
&lt;p&gt;Le modèle est téléchargé. Place au moment de vérité.&lt;/p&gt;
&lt;p&gt;Ouvre l’onglet &lt;strong&gt;Chat&lt;/strong&gt;, l’icône en forme de bulle dans la barre latérale. En haut de la fenêtre, un menu déroulant te propose de charger un modèle, sélectionne celui que tu viens de télécharger. LM Studio le charge en mémoire, quelques secondes, et t’affiche un champ de saisie familier, une conversation, comme avec n’importe quel assistant.&lt;/p&gt;
&lt;figure class=&quot;kg-card kg-image-card&quot;&gt;
&lt;img src=&quot;https://macsouverain.com/content/images/2026/07/capture-05-modele-charge-installer-premier-modele-ia-local-mac-2.png&quot; class=&quot;kg-image&quot; loading=&quot;lazy&quot; alt=&quot;Le modèle sélectionné et chargé en mémoire dans l&amp;#x27;onglet Chat.&quot;&gt;
&lt;/figure&gt;
&lt;p&gt;Si LM Studio te propose un choix de moteur, assure-toi qu’il est bien sur &lt;strong&gt;MLX&lt;/strong&gt;. C’est en général automatique quand tu as pris une variante MLX, mais un coup d’œil ne coûte rien.&lt;/p&gt;
&lt;p&gt;Tape ton premier prompt. N’importe quoi, une vraie tâche de préférence, pour sentir ce que ça donne. « Résume-moi ce texte en trois points », « rédige-moi un mail de relance poli », « explique-moi la différence entre deux notions ». Le modèle réfléchit une poignée de secondes, puis répond, mot après mot, entièrement depuis ta machine.&lt;/p&gt;
&lt;figure class=&quot;kg-card kg-image-card&quot;&gt;
&lt;img src=&quot;https://macsouverain.com/content/images/2026/07/capture-06-premier-prompt-reponse-installer-premier-modele-ia-local-mac-2.png&quot; class=&quot;kg-image&quot; loading=&quot;lazy&quot; alt=&quot;Un premier prompt, la réponse générée entièrement en local par le modèle.&quot;&gt;
&lt;/figure&gt;
&lt;p&gt;Et maintenant, la démonstration qui referme la boucle de l’article précédent.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Coupe le Wi-Fi.&lt;/strong&gt; Clique sur l’icône Wi-Fi dans ta barre de menus et désactive-le, ou passe par Réglages Système. Ta machine est désormais hors ligne, coupée d’Internet, débranchée du monde. Repose une question au modèle.&lt;/p&gt;
&lt;p&gt;Il répond.&lt;/p&gt;
&lt;p&gt;Voilà. Aucune requête n’est partie, aucun octet de ton texte n’a quitté ton Mac, et pourtant ça marche. C’est ça, concrètement, un modèle qui tourne chez toi. Le matin où on coupe le robinet distant, celui-là continue de couler. Tu peux rallumer le Wi-Fi, la démonstration est faite.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;trois-réglages-qui-changent-tout&quot;&gt;Trois réglages qui changent tout&lt;/h2&gt;
&lt;p&gt;Ton modèle tourne. Trois boutons méritent que tu saches à quoi ils servent, parce qu’ils font la différence entre une machine fluide et une machine qui rame.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;La longueur de contexte.&lt;/strong&gt; C’est la quantité de texte que le modèle peut garder en tête d’un coup, ta question plus sa réponse plus tout ce que tu lui as donné à lire. Elle se règle au chargement du modèle, exprimée en tokens, dans le panneau de configuration. Une valeur élevée te permet de lui soumettre de longs documents, mais elle consomme de la RAM en proportion. Si ton Mac peine, réduis-la. Si tu veux lui faire avaler un long PDF, augmente-la, en gardant un œil sur ta mémoire.&lt;/p&gt;
&lt;figure class=&quot;kg-card kg-image-card&quot;&gt;
&lt;img src=&quot;https://macsouverain.com/content/images/2026/07/capture-07-reglages-contexte-installer-premier-modele-ia-local-mac-2.png&quot; class=&quot;kg-image&quot; loading=&quot;lazy&quot; alt=&quot;Le réglage de la longueur de contexte (Context Length) du modèle.&quot;&gt;
&lt;/figure&gt;
&lt;p&gt;&lt;strong&gt;La quantification.&lt;/strong&gt; On en a parlé au téléchargement, c’est le levier qualité contre poids. Si ton modèle tient à l’étroit dans ta RAM, une quantification plus agressive (Q4 plutôt que Q8) le fait tenir. Si tu as de la marge et que tu veux le meilleur rendu, une quantification plus légère améliore la qualité. Tu ajustes en téléchargeant une autre variante du modèle, c’est le seul point où il faut repasser par la case téléchargement.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Décharger le modèle.&lt;/strong&gt; Tant qu’un modèle est chargé, il occupe ta RAM, même si tu ne l’utilises pas. Quand tu as fini, décharge-le, le bouton d’éjection dans le sélecteur de modèle libère la mémoire d’un coup. Réflexe utile si tu enchaînes sur un travail lourd, montage, code, machine virtuelle, et que tu veux récupérer tes gigas. Fermer la fenêtre ne suffit pas toujours, décharge explicitement.&lt;/p&gt;
&lt;figure class=&quot;kg-card kg-image-card&quot;&gt;
&lt;img src=&quot;https://macsouverain.com/content/images/2026/07/capture-08-ejection-modele-installer-premier-modele-ia-local-mac-2.png&quot; class=&quot;kg-image&quot; loading=&quot;lazy&quot; alt=&quot;Le bouton d&amp;#x27;éjection dans le sélecteur de modèle, pour décharger le modèle et libérer la RAM.&quot;&gt;
&lt;/figure&gt;
&lt;hr&gt;
&lt;h2 id=&quot;pour-aller-plus-loin&quot;&gt;Pour aller plus loin&lt;/h2&gt;
&lt;p&gt;Tu as un modèle qui tourne, tu as passé ton premier prompt hors ligne. Le reste, c’est du bonus, pour le jour où l’envie te prend de creuser.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ollama, pour les curieux du terminal.&lt;/strong&gt; Si la ligne de commande ne te fait pas peur, &lt;a href=&quot;https://ollama.com&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Ollama&lt;/a&gt; fait tourner un modèle en une seule commande. Tu installes l’app, tu ouvres le Terminal, tu tapes &lt;code&gt;ollama run mistral-small:24b&lt;/code&gt;, et il télécharge le modèle puis te met en conversation, directement dans le terminal. C’est plus dépouillé que LM Studio, mais redoutablement efficace, et ça ouvre la porte à l’automatisation, brancher un modèle local sur tes propres scripts via une API locale. Ollama tire lui aussi parti d’Apple Silicon en s’appuyant sur MLX.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;MLX en direct, pour les gourmands.&lt;/strong&gt; Le moteur que LM Studio utilise sous le capot, &lt;a href=&quot;https://github.com/ml-explore/mlx&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;MLX&lt;/a&gt;, est un framework Apple que tu peux piloter toi-même, avec sa boîte à outils &lt;code&gt;mlx-lm&lt;/code&gt;. C’est le terrain de jeu de qui veut exploiter au maximum sa mémoire unifiée, tester des quantifications maison, ou faire tourner des modèles à peine sortis. Réservé à ceux que la mécanique fine amuse, mais c’est là que se trouve la performance brute sur Mac.&lt;/p&gt;
&lt;p&gt;Pour la grande majorité des usages, tu n’iras jamais plus loin que LM Studio, et c’est parfaitement bien ainsi.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Récapitulons ce que tu viens de faire. Tu as installé une app gratuite, téléchargé un modèle en MLX taillé pour ta RAM, passé un premier prompt, et vérifié Wi-Fi coupé que rien ne sortait de ta machine. Vingt minutes, zéro ligne de commande, zéro dépendance à un modèle qu’un tiers IA peut fermer.&lt;/p&gt;
&lt;p&gt;Ce modèle est à toi. Personne ne peut te le couper, te le facturer à la requête, ou décider un matin que ta nationalité ne lui convient pas. Il ne remplacera pas le meilleur modèle distant sur les tâches les plus dures, on l’a dit, et ce n’est pas le but. Son intérêt, c’est qu’il est là, chez toi, tout le temps, pour l’essentiel de ce que tu fais.&lt;/p&gt;
&lt;p&gt;Le socle est posé. La suite, c’est de t’en servir pour de vrai, pour toutes les tâches que tu peux.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;À lire ensuite : &lt;a href=&quot;https://macsouverain.com/mets-ton-ia-locale-au-travail/&quot;&gt;Mets ton IA locale au travail, sans le cloud&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;À lire : &lt;a href=&quot;https://macsouverain.com/38-apple-intelligence-ce-qui-sort-de-ton-mac/&quot;&gt;Apple Intelligence : ce qui sort vraiment de ton Mac&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&quot;sources&quot;&gt;Sources&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;L’outil&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://lmstudio.ai&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;LM Studio&lt;/a&gt;, l’application de bureau pour exécuter des modèles en local, gratuite, avec moteur MLX embarqué sur Apple Silicon.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://lmstudio.ai/docs/app/system-requirements&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;LM Studio, configuration requise&lt;/a&gt;, Apple Silicon M1 à M4 et macOS 14 ou plus récent, 16 Go de RAM recommandés.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Les modèles&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://huggingface.co/lmstudio-community/Qwen2.5-7B-Instruct-MLX-4bit&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Qwen2.5 7B Instruct, MLX 4bit&lt;/a&gt;, 4,28 Go, licence Apache 2.0, le pick d’un Mac à 16 Go.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://huggingface.co/lmstudio-community/Mistral-Small-3.2-24B-Instruct-2506-MLX-4bit&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Mistral Small 24B, MLX 4bit&lt;/a&gt;, environ 13 Go, licence Apache 2.0, le pick d’un Mac à 32 Go.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Pour aller plus loin&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://ollama.com&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Ollama&lt;/a&gt;, exécuter un modèle en une commande, avec API locale.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/ml-explore/mlx&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Apple MLX&lt;/a&gt;, le framework optimisé pour la mémoire unifiée d’Apple Silicon.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;Des termes techniques ? &lt;a href=&quot;https://macsouverain.com/glossaire/&quot;&gt;Consulte le glossaire.&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;</content:encoded><dc:creator>Mac Souverain</dc:creator><category>ia</category><category>modele-local</category><category>macos</category><category>apple-silicon</category><category>lm-studio</category><category>mlx</category><category>tutoriels</category><enclosure url="https://macsouverain.com/content/images/2026/07/feature-installer-premier-modele-ia-local-mac-2.png" length="0" type="image/png"/></item><item><title>Wazuh 5.0 débarque, ton SIEM maison évolue</title><link>https://macsouverain.com/radar-wazuh-5-beta-publique/</link><guid isPermaLink="true">https://macsouverain.com/radar-wazuh-5-beta-publique/</guid><description>Wazuh 5.0 en bêta publique, sortie fin juin/début juillet. Filebeat vire, cluster par défaut, nouveau moteur. Ton install 4.x va évoluer. Pas de panique, on t&apos;explique tout.</description><pubDate>Thu, 02 Jul 2026 07:22:47 GMT</pubDate><content:encoded>&lt;div class=&quot;radar-summary&quot;&gt;
&lt;p&gt;Wazuh 5.0 débarque en bêta publique et refond son architecture, Filebeat dégage, cluster par défaut, nouveau moteur. Si tu as monté ton SIEM avec notre série, ton install 4.x tourne toujours, la montée en 5.0 ne se fera pas à l’aveugle.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ce que ça change pour toi&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; Repère ta version avec &lt;code&gt;wazuh-control info&lt;/code&gt;, les 4.11 et récentes reçoivent encore des correctifs.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2.&lt;/strong&gt; Snapshot ta VM et sauvegarde &lt;code&gt;/var/ossec/etc/&lt;/code&gt; avant toute tentative de passage en 5.0.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3.&lt;/strong&gt; Attends une 5.0.x stable (5.0.1 ou 5.0.2) avant de migrer, on met la série SIEM à jour à ce moment-là, guide de migration inclus.&lt;/p&gt;
&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;Si tu as monté ton SIEM maison en suivant l’épisode 2/7 de la série SIEM souverain, prépare-toi : Wazuh 5.0 arrive en bêta publique et casse plusieurs briques d’un coup. Pas de panique, mais bien regarder avant de mettre à jour à l’aveugle. Et on met la série d’articles &lt;a href=&quot;https://macsouverain.com/nis2-splunk-pourquoi-pme-siem-souverain/&quot;&gt;SIEM&lt;/a&gt; à jour le moment venu.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;le-fait&quot;&gt;Le fait&lt;/h2&gt;
&lt;p&gt;Wazuh vient de publier la bêta publique de sa version 5.0, avec une sortie stable estimée fin juin ou début juillet 2026. Ce n’est pas un simple bump de version, c’est une refonte architecturale.&lt;/p&gt;
&lt;p&gt;Ce qui change, concrètement : Filebeat disparaît, remplacé par un indexer-connector natif intégré au manager. Chaque serveur Wazuh devient un nœud de cluster par défaut, même en install mono-serveur. Le vieux moteur analysisd, qui traitait les logs et déclenchait les règles, est remplacé par un nouveau moteur. La détection de vulnérabilités bascule côté Wazuh Indexer, centralisée. Et le RBAC, la gestion fine des droits, est entièrement retravaillé.&lt;/p&gt;
&lt;p&gt;Conséquence directe pour MacSouverain : l’épisode 2/7 de la série SIEM souverain, qui documente l’architecture 4.x pas à pas, sera partiellement obsolète dès la sortie de 5.0. On met la série à jour quand la 5.0 sera stable, pas avant.&lt;/p&gt;
&lt;h2 id=&quot;pourquoi-ça-compte-pour-toi&quot;&gt;Pourquoi ça compte pour toi&lt;/h2&gt;
&lt;p&gt;Si tu as suivi le guide épisode 2/7 de la série SIEM souverain pour monter ton propre SIEM à la maison, tu tournes probablement sur une 4.x. Bonne nouvelle, ton install continue de marcher, personne ne va te débrancher. Mauvaise nouvelle, la mise à jour vers 5.0 ne sera pas un simple &lt;code&gt;apt upgrade&lt;/code&gt; sans lire la doc. Filebeat qui saute, ça veut dire que ton pipeline de logs change de plomberie. Le cluster par défaut, ça change la conf initiale même si tu restes sur une seule machine.&lt;/p&gt;
&lt;p&gt;Traduction pratique : si tu comptais mettre à jour dès la sortie, prends une heure pour lire les release notes et fais un snapshot avant. Si tu es sur une install stable qui te sert au quotidien, attends une ou deux versions correctives, laisse les early adopters essuyer les plâtres.&lt;/p&gt;
&lt;h2 id=&quot;ce-que-ça-change-pour-toi&quot;&gt;Ce que ça change pour toi&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; Note quelle version de Wazuh tu tournes actuellement. Sur ton manager, &lt;code&gt;wazuh-control info&lt;/code&gt; ou consulte le dashboard. Si tu es en 4.11 ou récent, tu es sur la branche qui reçoit encore des correctifs.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2.&lt;/strong&gt; Avant toute tentative de mise à jour vers 5.0, snapshot ta VM ou sauvegarde ta config &lt;code&gt;/var/ossec/etc/&lt;/code&gt; et l’état de ton Wazuh Indexer. Un rollback propre te sauve la mise si le nouveau moteur ne digère pas tes règles custom.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3.&lt;/strong&gt; Attends la version stable 5.0.x (au moins 5.0.1 ou 5.0.2) avant de migrer une install en production perso. La bêta, c’est pour tester sur une VM jetable, pas sur celle qui surveille ton réseau tous les jours. A surveiller : la publication officielle du guide de migration 4.x → 5.0 par Wazuh, et la refonte à venir de l’épisode 2/7 de la série SIEM souverain côté MacSouverain.&lt;/p&gt;
&lt;h2 id=&quot;sources&quot;&gt;Sources&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/wazuh/wazuh/discussions/34029&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Wazuh 5.0 Public Beta Discussion (GitHub)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content:encoded><dc:creator>Mac Souverain</dc:creator><category>radar</category><category>radar-analyse</category><category>wazuh</category><category>siem</category><category>auto-hebergement</category><category>souverainete</category></item><item><title>Chat Control : l&apos;UE joue le sort de ton chiffrement</title><link>https://macsouverain.com/radar-csar-chat-control-trilogue-final/</link><guid isPermaLink="true">https://macsouverain.com/radar-csar-chat-control-trilogue-final/</guid><pubDate>Wed, 01 Jul 2026 13:46:25 GMT</pubDate><content:encoded>&lt;div class=&quot;radar-summary&quot;&gt;
&lt;p&gt;Le 29 juin, l’UE a tenu le 5e et dernier trilogue sur Chat Control 2.0 (CSAR). Enjeu : un scanning de masse de tes messages privés avant chiffrement, contre un Parlement qui défend l’E2E. L’issue se joue maintenant et décidera si WhatsApp, Signal &amp;#x26; iMessage restent réellement chiffrés en Europe.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ce que tu dois surveiller&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; La publication de l’accord (ou de l’échec) du trilogue et la présence, ou non, d’une exemption explicite du chiffrement de bout en bout.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2.&lt;/strong&gt; Le retour de « Chat Control 1.0 » (scanning volontaire prolongé) que Metsola menace de rouvrir en parallèle : un cheval de Troie si le 2.0 cale.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3.&lt;/strong&gt; La vérification d’âge obligatoire, qui tue l’anonymat en ligne bien au-delà de la lutte contre le CSAM.&lt;/p&gt;
&lt;/div&gt;
&lt;h2 id=&quot;ce-qui-sest-passé-le-29-juin&quot;&gt;Ce qui s’est passé le 29 juin&lt;/h2&gt;
&lt;p&gt;Sous présidence chypriote, le Conseil de l’UE a réuni le 29 juin ce qui était annoncé comme le &lt;strong&gt;cinquième et dernier trilogue&lt;/strong&gt; sur le règlement CSAR, le texte que tout le monde appelle « Chat Control 2.0 ». Objectif affiché de la présidence : arracher un accord politique avant la trêve estivale.&lt;/p&gt;
&lt;p&gt;La ligne de fracture n’a pas bougé. D’un côté, un texte du Conseil qui &lt;strong&gt;codifie un scanning de masse&lt;/strong&gt; des communications privées via des « ordres de détection », un dispositif que le propre service juridique du Conseil juge contraire à l’article 7 de la Charte des droits fondamentaux. De l’autre, un Parlement qui, le 26 mars 2026, a rejeté le scan de masse à une seule voix (307 contre 306) et s’accroche à la &lt;strong&gt;protection du chiffrement de bout en bout&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;À l’heure où on écrit, aucune source officielle n’a publié le résultat de ce trilogue : ni accord, ni échec confirmé. La présidence chypriote pousse pour une adoption formelle en juillet, mais le blocage sur le chiffrement peut encore tout faire dérailler. C’est précisément ce silence qu’il faut surveiller de près dans les prochains jours.&lt;/p&gt;
&lt;h2 id=&quot;pourquoi-ça-te-concerne&quot;&gt;Pourquoi ça te concerne&lt;/h2&gt;
&lt;p&gt;Le scanning « côté client » impose d’inspecter tes messages &lt;strong&gt;sur ton appareil, avant&lt;/strong&gt; qu’ils ne soient chiffrés. La crypto de WhatsApp, Signal ou iMessage n’est pas cassée, elle est vidée de son sens : ton message est lu en clair sur ton téléphone avant de partir. Et ce point d’inspection ne reste jamais réservé aux « gentils », il est exploitable par n’importe quel attaquant qui met la main dessus.&lt;/p&gt;
&lt;p&gt;S’ajoute la &lt;strong&gt;vérification d’âge obligatoire&lt;/strong&gt;, qui exige d’associer une identité réelle à ton compte de messagerie. C’est la fin de l’anonymat par défaut, vendu sous prétexte de protection de l’enfance.&lt;/p&gt;
&lt;h2 id=&quot;ce-que-tu-peux-faire&quot;&gt;Ce que tu peux faire&lt;/h2&gt;
&lt;p&gt;Rien à installer aujourd’hui : c’est un signal politique, pas une faille produit. Mais garde Signal en messagerie de repli, surveille les positions de ton eurodéputé, et suis EDRi / Patrick Breyer pour l’issue réelle. Dès qu’elle sera publiée, on mettra à jour nos articles qui traitent le sujet.&lt;/p&gt;</content:encoded><dc:creator>Mac Souverain</dc:creator><category>radar</category><category>radar-signal</category><category>souverainete</category><category>chiffrement</category><category>ue</category></item><item><title>Déploie Wazuh partout, le SIEM voit enfin ton réseau</title><link>https://macsouverain.com/wazuh-agents-parc-siem-souverain/</link><guid isPermaLink="true">https://macsouverain.com/wazuh-agents-parc-siem-souverain/</guid><description>Enrôler les agents Wazuh sur tes serveurs Linux, tes Mac et tes postes Windows, avec remontée des logs par le Tailnet, jamais par l&apos;internet ouvert.</description><pubDate>Wed, 01 Jul 2026 12:50:41 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;MAJ août 2026.&lt;/strong&gt; La branche stable est passée à Wazuh 4.14.7 le 29 juillet. Les commandes ci-dessous nomment encore l’agent 4.14.5, remplace le numéro par 4.14.7 ou récupère le dernier .pkg/.msi sur la page des paquets Wazuh.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;À l’épisode précédent, tu as monté &lt;a href=&quot;https://macsouverain.com/wazuh-tout-en-un-siem-souverain/&quot;&gt;une console de sécurité qui tourne&lt;/a&gt;. Wazuh en tout-en-un sur ton VPS durci, manager, indexeur et tableau de bord sur un seul nœud, dashboard verrouillé en Tailnet-only. Une belle machine. Qui, pour l’instant, ne voit qu’une seule chose : elle-même.&lt;/p&gt;
&lt;p&gt;C’est déjà utile, ton serveur s’auto-surveille, valide ton durcissement, remonte ses propres CVE. Mais un SIEM qui ne regarde que le serveur sur lequel il tourne, c’est une caméra braquée sur sa propre boîte. Aujourd’hui, on la retourne vers le reste de la pièce.&lt;/p&gt;
&lt;p&gt;On va &lt;strong&gt;déployer les agents Wazuh sur ton parc&lt;/strong&gt;. Tes serveurs Linux, tes Mac, tes postes Windows. Chaque machine reçoit une sonde qui collecte ses journaux, ses événements de sécurité et l’intégrité de ses fichiers, et fait remonter tout ça au manager. C’est le moment où ton SIEM passe de myope à panoramique.&lt;/p&gt;
&lt;p&gt;Un point non négociable, posé dès l’épisode 1 et qui commande tout ce chapitre. &lt;strong&gt;Cette remontée passe par le Tailnet, jamais par l’internet ouvert.&lt;/strong&gt; Le manager n’ouvre ses oreilles que sur ton maillage privé. Un agent qui n’est pas dans ton Tailnet ne parle à rien.&lt;/p&gt;
&lt;p&gt;Cette stack, je l’utilise au quotidien. Les commandes qui suivent sont celles que tu vas taper toi-même, dans l’ordre, sur ton manager puis sur chaque machine à surveiller.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;avant-de-commencer&quot;&gt;Avant de commencer&lt;/h2&gt;
&lt;p&gt;Trois choses à avoir en tête avant la première commande.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ce qu’il te faut.&lt;/strong&gt; Le manager Wazuh de l’épisode 2, opérationnel. Un accès administrateur sur chaque machine à enrôler. Et surtout, &lt;strong&gt;chaque machine à surveiller doit être membre de ton Tailnet&lt;/strong&gt;, exactement comme ton manager. C’est le prérequis structurant de cet épisode. Le &lt;code&gt;tailscale up&lt;/code&gt; vu à l’épisode 1, tu le rejoues sur chaque endpoint. Sans ça, rien ne remonte.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ce que ça change.&lt;/strong&gt; À la fin, ton dashboard ne listera plus un seul agent, mais autant que tu auras de machines. Chacune remonte ses logs, son audit de configuration, ses vulnérabilités et l’intégrité de ses fichiers, au même endroit, sous ton œil unique.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ce que ça ne change pas.&lt;/strong&gt; Un agent &lt;strong&gt;observe&lt;/strong&gt;, il ne bloque rien. Il te dit qu’une application a démarré, qu’un fichier a changé, qu’une connexion a échoué. Décider quelles applications ont le droit de se lancer sur tes Mac, ça viendra, c’est un autre outil, un autre épisode. Ici, on regarde. On ne barre pas encore la route.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;ouvrir-les-bonnes-portes-et-seulement-celles-là&quot;&gt;Ouvrir les bonnes portes, et seulement celles-là&lt;/h2&gt;
&lt;p&gt;Avant de toucher au moindre endpoint, un geste sur le manager. Jusqu’ici, ton serveur n’écoutait le monde extérieur sur rien, et le dashboard était replié sur le Tailnet. Les agents distants, eux, ont besoin de joindre le manager sur deux ports.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Le port 1515&lt;/strong&gt;, pour l’&lt;strong&gt;enrôlement&lt;/strong&gt;. C’est la poignée de main initiale, chiffrée, par laquelle un nouvel agent se présente et reçoit sa clé d’authentification.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Le port 1514&lt;/strong&gt;, pour la &lt;strong&gt;remontée&lt;/strong&gt; des logs et des événements, une fois l’agent enrôlé.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Et c’est exactement là que se joue la souveraineté de toute la série. Ces deux ports, on les ouvre &lt;strong&gt;uniquement sur l’interface Tailscale&lt;/strong&gt;, jamais en global.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; ufw&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; allow&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; in&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; on&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; tailscale0&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; to&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; any&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; port&lt;/span&gt;&lt;span style=&quot;color:#005CC5&quot;&gt; 1514&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; proto&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; tcp&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; ufw&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; allow&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; in&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; on&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; tailscale0&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; to&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; any&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; port&lt;/span&gt;&lt;span style=&quot;color:#005CC5&quot;&gt; 1515&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; proto&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; tcp&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Tu reconnais le geste, c’est celui de SSH à l’épisode 1, celui du dashboard à l’épisode 2. On autorise sur &lt;code&gt;tailscale0&lt;/code&gt;, ton maillage chiffré, et nulle part ailleurs. Le piège, toujours le même, ce serait de taper &lt;code&gt;sudo ufw allow 1514/tcp&lt;/code&gt; tout court. Cette commande-là offre ton SIEM aux scanners du monde entier. La nôtre le garde invisible.&lt;/p&gt;
&lt;p&gt;Vérifie l’état de ton pare-feu.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; ufw&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; status&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Tu dois voir tes deux nouvelles règles portant bien la mention &lt;code&gt;on tailscale0&lt;/code&gt;. Si un &lt;code&gt;1514/tcp&lt;/code&gt; global traîne, retire-le sans hésiter, c’est une brèche.&lt;/p&gt;
&lt;p&gt;Dernière chose à noter, l’adresse Tailscale de ton manager, celle que chaque agent devra viser.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;tailscale&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; ip&lt;/span&gt;&lt;span style=&quot;color:#005CC5&quot;&gt; -4&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;C’est cette adresse, et pas l’IP publique du VPS, que tu passeras aux agents. L’IP publique n’écoute rien sur ces ports, de toute façon. Dans tout ce qui suit, je la note &lt;code&gt;&amp;#x3C;IP_TAILSCALE_DU_MANAGER&gt;&lt;/code&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;étape-1-enrôler-un-serveur-linux&quot;&gt;Étape 1, enrôler un serveur Linux&lt;/h2&gt;
&lt;p&gt;On commence par le plus simple, un serveur Ubuntu ou Debian. Trois temps, ajouter le dépôt Wazuh, installer l’agent en lui donnant l’adresse du manager, le démarrer.&lt;/p&gt;
&lt;p&gt;D’abord le dépôt officiel.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; apt-get&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; install&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; gnupg&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; apt-transport-https&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;curl&lt;/span&gt;&lt;span style=&quot;color:#005CC5&quot;&gt; -s&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; https://packages.wazuh.com/key/GPG-KEY-WAZUH&lt;/span&gt;&lt;span style=&quot;color:#D73A49&quot;&gt; |&lt;/span&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt; sudo&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; gpg&lt;/span&gt;&lt;span style=&quot;color:#005CC5&quot;&gt; --no-default-keyring&lt;/span&gt;&lt;span style=&quot;color:#005CC5&quot;&gt; --keyring&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; gnupg-ring:/usr/share/keyrings/wazuh.gpg&lt;/span&gt;&lt;span style=&quot;color:#005CC5&quot;&gt; --import&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt; &amp;#x26;&amp;#x26; &lt;/span&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; chmod&lt;/span&gt;&lt;span style=&quot;color:#005CC5&quot;&gt; 644&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; /usr/share/keyrings/wazuh.gpg&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#005CC5&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; &quot;deb [signed-by=/usr/share/keyrings/wazuh.gpg] https://packages.wazuh.com/4.x/apt/ stable main&quot;&lt;/span&gt;&lt;span style=&quot;color:#D73A49&quot;&gt; |&lt;/span&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt; sudo&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; tee&lt;/span&gt;&lt;span style=&quot;color:#005CC5&quot;&gt; -a&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; /etc/apt/sources.list.d/wazuh.list&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; apt-get&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; update&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Rien d’ésotérique. On importe la clé de signature du dépôt, on déclare le dépôt Wazuh, on rafraîchit la liste des paquets. C’est la routine APT habituelle.&lt;/p&gt;
&lt;p&gt;Puis l’installation, avec l’astuce qui fait tout le travail. En préfixant la commande d’installation par la variable &lt;code&gt;WAZUH_MANAGER&lt;/code&gt;, tu dis au paquet vers qui se tourner. L’agent s’enrôle tout seul auprès de ce manager pendant l’installation.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; WAZUH_MANAGER=&quot;&amp;#x3C;IP_TAILSCALE_DU_MANAGER&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; WAZUH_AGENT_GROUP=&quot;linux&quot;&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; apt-get&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; install&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; wazuh-agent&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Le &lt;code&gt;WAZUH_AGENT_GROUP=&quot;linux&quot;&lt;/code&gt; range d’emblée cette machine dans un groupe nommé &lt;code&gt;linux&lt;/code&gt;. On verra plus bas à quoi servent les groupes, retiens juste que c’est le bon moment pour les assigner.&lt;/p&gt;
&lt;p&gt;Enfin, on démarre le service et on l’active au boot.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; systemctl&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; daemon-reload&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; systemctl&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; enable&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; wazuh-agent&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; systemctl&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; start&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; wazuh-agent&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Et voilà, ton serveur Linux remonte. Si tu tournes sur du RHEL, de l’Alma ou du Rocky, le principe est identique, tu remplaces le dépôt APT par le dépôt YUM et &lt;code&gt;apt-get install&lt;/code&gt; par &lt;code&gt;dnf install&lt;/code&gt;, la variable &lt;code&gt;WAZUH_MANAGER&lt;/code&gt; fonctionne pareil.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;étape-2-enrôler-un-mac&quot;&gt;Étape 2, enrôler un Mac&lt;/h2&gt;
&lt;p&gt;Le Mac, c’est là que ça devient intéressant, parce que macOS a ses propres règles du jeu. Commençons par le déploiement, la subtilité vient juste après.&lt;/p&gt;
&lt;p&gt;L’agent macOS se livre en paquet &lt;code&gt;.pkg&lt;/code&gt;, et il en existe deux versions, une pour les Mac Apple Silicon et une pour les vieux Mac Intel. Sur un parc récent, c’est l’Apple Silicon.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;curl&lt;/span&gt;&lt;span style=&quot;color:#005CC5&quot;&gt; -O&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; https://packages.wazuh.com/4.x/macos/wazuh-agent-4.14.5-1.arm64.pkg&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#005CC5&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; &quot;WAZUH_MANAGER=&apos;&amp;#x3C;IP_TAILSCALE_DU_MANAGER&gt;&apos; &amp;#x26;&amp;#x26; WAZUH_AGENT_GROUP=&apos;macos&apos;&quot;&lt;/span&gt;&lt;span style=&quot;color:#D73A49&quot;&gt; &gt;&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; /tmp/wazuh_envs&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; installer&lt;/span&gt;&lt;span style=&quot;color:#005CC5&quot;&gt; -pkg&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; wazuh-agent-4.14.5-1.arm64.pkg&lt;/span&gt;&lt;span style=&quot;color:#005CC5&quot;&gt; -target&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; /&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Le mécanisme change un peu de forme mais pas de fond. Sur macOS, les variables de déploiement ne se collent pas devant la commande, elles s’écrivent dans un fichier temporaire, &lt;code&gt;/tmp/wazuh_envs&lt;/code&gt;, que l’installateur lit au passage. Le résultat est le même, l’agent connaît son manager et son groupe. Pour un Mac Intel, tu remplaces &lt;code&gt;arm64&lt;/code&gt; par &lt;code&gt;intel64&lt;/code&gt; dans les deux lignes qui la mentionnent.&lt;/p&gt;
&lt;p&gt;On lance ensuite l’agent.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; launchctl&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; bootstrap&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; system&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; /Library/LaunchDaemons/com.wazuh.agent.plist&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Sur macOS, l’agent vit sous &lt;code&gt;/Library/Ossec/&lt;/code&gt;, et son binaire de contrôle est &lt;code&gt;/Library/Ossec/bin/wazuh-control&lt;/code&gt;, avec les verbes &lt;code&gt;start&lt;/code&gt;, &lt;code&gt;stop&lt;/code&gt; et &lt;code&gt;status&lt;/code&gt; si tu veux le piloter à la main.&lt;/p&gt;
&lt;h3 id=&quot;la-chausse-trappe-macos-tcc-et-laccès-disque-complet&quot;&gt;La chausse-trappe macOS, TCC et l’accès disque complet&lt;/h3&gt;
&lt;p&gt;Maintenant, la vérité que la plupart des tutoriels passent sous silence. Sur macOS, ton agent va démarrer, s’enrôler, apparaître comme actif dans le dashboard, et pourtant rester &lt;strong&gt;à moitié aveugle&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;La raison tient à &lt;strong&gt;TCC&lt;/strong&gt;, pour &lt;strong&gt;Transparency, Consent and Control&lt;/strong&gt;, le système de permissions par usage d’Apple. C’est lui qui fait surgir ces fenêtres « telle application veut accéder à vos documents ». TCC filtre l’accès aux dossiers sensibles, et il ne fait pas de cadeau. Or l’agent Wazuh n’est pas une application au sens d’Apple, c’est un ensemble de binaires empaquetés. Résultat, sans autorisation explicite, il se voit refuser l’accès aux zones que TCC protège. Sa surveillance d’intégrité des fichiers tourne, mais ne voit pas ce qu’elle ne peut pas lire.&lt;/p&gt;
&lt;p&gt;La parade, c’est d’accorder à l’agent l’&lt;strong&gt;accès disque complet&lt;/strong&gt;, le Full Disk Access. Sur un parc géré, ça se fait proprement par MDM, un profil de configuration poussé par Jamf ou équivalent, qui déclare la permission une fois pour toutes sur toutes les machines. Sur une ou deux machines, ça se règle à la main dans les réglages de confidentialité. C’est un cran de plus que sur Linux, et c’est spécifique à Apple, autant le savoir avant de s’étonner que le Mac remonte moins de choses que le serveur.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;étape-3-enrôler-un-poste-windows&quot;&gt;Étape 3, enrôler un poste Windows&lt;/h2&gt;
&lt;p&gt;Windows, dernier larron. L’agent s’installe via un paquet MSI, en mode silencieux, depuis une console PowerShell ouverte en administrateur.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;powershell&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#005CC5&quot;&gt;msiexec.exe&lt;/span&gt;&lt;span style=&quot;color:#D73A49&quot;&gt; /&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;i .\wazuh&lt;/span&gt;&lt;span style=&quot;color:#D73A49&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;agent&lt;/span&gt;&lt;span style=&quot;color:#D73A49&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#005CC5&quot;&gt;4.14&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#005CC5&quot;&gt;5&lt;/span&gt;&lt;span style=&quot;color:#D73A49&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#005CC5&quot;&gt;1.&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;msi &lt;/span&gt;&lt;span style=&quot;color:#D73A49&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;q WAZUH_MANAGER&lt;/span&gt;&lt;span style=&quot;color:#D73A49&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt;&quot;&amp;#x3C;IP_TAILSCALE_DU_MANAGER&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt; WAZUH_AGENT_NAME&lt;/span&gt;&lt;span style=&quot;color:#D73A49&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt;&quot;poste-compta&quot;&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt; WAZUH_AGENT_GROUP&lt;/span&gt;&lt;span style=&quot;color:#D73A49&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt;&quot;windows&quot;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Même logique que partout, les variables passent le manager, un nom lisible pour le poste et son groupe. Le &lt;code&gt;WAZUH_AGENT_NAME&lt;/code&gt; est confortable sur Windows, où tu vas vite avoir dix postes qui se ressemblent, autant les baptiser.&lt;/p&gt;
&lt;p&gt;Puis on lance le service.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;powershell&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#005CC5&quot;&gt;Start-Service&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt; WazuhSvc&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;En CMD classique, ce serait &lt;code&gt;NET START WazuhSvc&lt;/code&gt;, au choix. L’agent s’installe sous &lt;code&gt;C:\Program Files (x86)\ossec-agent&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Ce que Windows apporte de spécifique, c’est la lecture des &lt;strong&gt;journaux d’événements Windows&lt;/strong&gt;, la fameuse triade Security, System et Application, là où atterrissent les échecs d’ouverture de session, les élévations de privilèges, les créations de comptes. Et le FIM peut y surveiller le &lt;strong&gt;registre&lt;/strong&gt;, terrain de jeu favori des malwares qui veulent survivre à un redémarrage. Ton poste Windows n’est plus une boîte noire.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;étape-4-vérifier-que-tout-remonte&quot;&gt;Étape 4, vérifier que tout remonte&lt;/h2&gt;
&lt;p&gt;Trois machines enrôlées, il est temps de s’assurer qu’elles parlent bien au manager. Retour sur le serveur Wazuh, une seule commande.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; /var/ossec/bin/agent_control&lt;/span&gt;&lt;span style=&quot;color:#005CC5&quot;&gt; -l&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Elle liste tous tes agents avec leur identifiant, leur nom et leur état. Quatre états possibles, et il faut savoir les lire.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Active&lt;/strong&gt;, l’agent est connecté et remonte. C’est ce que tu veux voir partout.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Pending&lt;/strong&gt;, il vient de s’enrôler et attend sa première poignée de main complète. Transitoire, patiente une minute.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Disconnected&lt;/strong&gt;, il était connecté et ne l’est plus. Le manager considère un agent perdu s’il n’a pas donné signe de vie depuis quinze minutes.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Never connected&lt;/strong&gt;, il s’est enrôlé mais n’a jamais réussi à remonter. C’est le symptôme classique d’un port fermé ou d’une machine hors Tailnet, on y revient plus bas.&lt;/li&gt;
&lt;/ul&gt;
&lt;figure class=&quot;kg-card kg-image-card&quot;&gt;
&lt;img src=&quot;https://macsouverain.com/content/images/2026/07/capture-agents-list-wazuh-agents-parc-siem-souverain-3.png&quot; class=&quot;kg-image&quot; loading=&quot;lazy&quot; alt=&quot;Liste des agents enrôlés et leur état de connexion, vue depuis le manager&quot;&gt;
&lt;/figure&gt;
&lt;p&gt;Le même tableau existe côté dashboard, en plus agréable à l’œil. La vue Agents t’affiche le décompte Active, Disconnected, Pending, Never connected, et la fiche de chaque machine, ses modules, sa dernière activité. C’est ta salle de contrôle, désormais peuplée.&lt;/p&gt;
&lt;figure class=&quot;kg-card kg-image-card&quot;&gt;
&lt;img src=&quot;https://macsouverain.com/content/images/2026/07/capture-agents-dashboard-wazuh-agents-parc-siem-souverain-3.png&quot; class=&quot;kg-image&quot; loading=&quot;lazy&quot; alt=&quot;Vue d&amp;#x27;ensemble des agents dans le dashboard Wazuh, décompte par état&quot;&gt;
&lt;/figure&gt;
&lt;p&gt;Et là, le basculement. Chaque machine active fait tourner, sur elle-même, exactement les modules que ton serveur faisait tourner sur lui à l’épisode 2. L’audit de configuration contre les référentiels CIS. La détection des vulnérabilités connues sur ses paquets. La surveillance d’intégrité de ses fichiers. L’analyse de ses journaux. Sauf que maintenant, ce n’est plus une machine, c’est ton parc, et tout converge vers un seul écran.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;aller-plus-loin-surveiller-un-dossier-précis&quot;&gt;Aller plus loin, surveiller un dossier précis&lt;/h2&gt;
&lt;p&gt;Par défaut, l’agent surveille déjà des répertoires système sensibles, ceux qu’un intrus aime modifier. Mais tu as sûrement un dossier qui compte plus que les autres, tes données clients, ta comptabilité, un partage métier. Tu veux savoir à la seconde près si quelqu’un y touche.&lt;/p&gt;
&lt;p&gt;C’est le rôle du &lt;strong&gt;FIM&lt;/strong&gt;, le File Integrity Monitoring, la surveillance d’intégrité des fichiers. Et plutôt que de l’éditer machine par machine, on utilise les &lt;strong&gt;groupes&lt;/strong&gt; qu’on a assignés à l’enrôlement. Un groupe partage une configuration, poussée automatiquement par le manager à tous ses membres. Tu écris une fois, ça s’applique partout.&lt;/p&gt;
&lt;p&gt;Sur le manager, tu édites le fichier de configuration partagée du groupe concerné, par exemple &lt;code&gt;/var/ossec/etc/shared/linux/agent.conf&lt;/code&gt;, et tu y déclares le répertoire à surveiller.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;xml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;syscheck&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;  &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;directories&lt;/span&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt; check_all&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt;&quot;yes&quot;&lt;/span&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt; realtime&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt;&quot;yes&quot;&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;/srv/donnees-clients&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;directories&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&amp;#x3C;/&lt;/span&gt;&lt;span style=&quot;color:#22863A&quot;&gt;syscheck&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Deux attributs à comprendre. &lt;code&gt;check_all=&quot;yes&quot;&lt;/code&gt; enregistre tout ce qui caractérise un fichier, ses empreintes cryptographiques, sa taille, son propriétaire, ses permissions, ses dates. La moindre altération est repérée. &lt;code&gt;realtime=&quot;yes&quot;&lt;/code&gt; demande une surveillance en &lt;strong&gt;temps réel&lt;/strong&gt;, l’alerte tombe à l’instant du changement, sans attendre le prochain scan.&lt;/p&gt;
&lt;p&gt;Une nuance d’honnêteté sur ce temps réel. Il n’est disponible que sur &lt;strong&gt;Linux et Windows&lt;/strong&gt;. Sur macOS, le FIM retombe sur des &lt;strong&gt;scans planifiés&lt;/strong&gt;, périodiques. Une modification entre deux passages n’est vue qu’au passage suivant. Ce n’est pas un défaut de Wazuh, c’est une contrainte de la plateforme, mais mieux vaut le savoir avant de compter sur une alerte instantanée côté Mac. Autre détail qui piège, le répertoire doit exister avant que tu redémarres l’agent, sinon il est ignoré.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;si-ça-ne-marche-pas&quot;&gt;Si ça ne marche pas&lt;/h2&gt;
&lt;p&gt;Le déploiement d’agents, c’est simple quand tout va bien, et ça a toujours la même poignée de causes quand ça coince. Voici les vraies, dans l’ordre où tu les rencontreras.&lt;/p&gt;
&lt;h3 id=&quot;problème-lagent-reste-en--never-connected&quot;&gt;Problème, l’agent reste en « Never connected »&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Cause probable,&lt;/strong&gt; dans neuf cas sur dix en ce qui nous concerne, un problème de chemin réseau. Soit les ports 1514 et 1515 ne sont pas ouverts sur &lt;code&gt;tailscale0&lt;/code&gt; côté manager, soit la machine n’est pas dans le Tailnet, soit tu as donné à l’agent l’IP publique du VPS au lieu de son IP Tailscale.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Solution,&lt;/strong&gt; vérifie les trois. Sur le manager, &lt;code&gt;sudo ufw status&lt;/code&gt; doit montrer tes règles 1514 et 1515 bien accrochées à &lt;code&gt;tailscale0&lt;/code&gt;. Sur l’endpoint, &lt;code&gt;tailscale status&lt;/code&gt; doit confirmer qu’il est bien dans le maillage. Et relis la valeur de &lt;code&gt;WAZUH_MANAGER&lt;/code&gt;, elle doit pointer sur l’adresse Tailscale du manager, pas sur son IP publique.&lt;/p&gt;
&lt;h3 id=&quot;problème-lagent-passe-de--active--à--disconnected&quot;&gt;Problème, l’agent passe de « Active » à « Disconnected »&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Cause probable,&lt;/strong&gt; il remontait, il ne remonte plus. Le manager coupe au bout de quinze minutes sans nouvelles. Souvent le service de l’agent s’est arrêté, ou la liaison Tailscale a sauté.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Solution,&lt;/strong&gt; vérifie que le service tourne. &lt;code&gt;sudo systemctl status wazuh-agent&lt;/code&gt; sur Linux, &lt;code&gt;Start-Service WazuhSvc&lt;/code&gt; sur Windows, &lt;code&gt;/Library/Ossec/bin/wazuh-control status&lt;/code&gt; sur macOS. Et jette un œil au log de l’agent, toujours au même endroit selon la plateforme, &lt;code&gt;/var/ossec/logs/ossec.log&lt;/code&gt; sur Linux, &lt;code&gt;/Library/Ossec/logs/ossec.log&lt;/code&gt; sur Mac, le dossier d’installation sur Windows.&lt;/p&gt;
&lt;h3 id=&quot;problème-le-mac-est--active--mais-ne-remonte-presque-rien&quot;&gt;Problème, le Mac est « Active » mais ne remonte presque rien&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Cause probable,&lt;/strong&gt; le fameux TCC. L’agent tourne, mais sans accès disque complet il est aveugle sur les zones protégées par macOS.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Solution,&lt;/strong&gt; accorde-lui le Full Disk Access, par MDM sur un parc géré, à la main sur une machine isolée.&lt;/p&gt;
&lt;h3 id=&quot;problème-les-agents-sont--active--mais-le-dashboard-reste-vide&quot;&gt;Problème, les agents sont « Active » mais le dashboard reste vide&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Cause probable,&lt;/strong&gt; attention, ce n’est pas un problème d’agent. Si les machines remontent bien mais que rien n’apparaît dans l’interface, le maillon qui coince est en aval, entre le manager et l’indexeur. Souvenir de l’épisode 2, c’est &lt;strong&gt;Filebeat&lt;/strong&gt; qui pousse les alertes vers l’indexeur.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Solution,&lt;/strong&gt; le diagnostic se fait côté serveur, pas côté agent. Tu vérifies que Filebeat parle bien à l’indexeur et que l’indexeur digère. Ne perds pas une heure à réinstaller des agents qui, eux, font parfaitement leur travail.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;le-premier-jour-est-bruyant-cest-normal&quot;&gt;Le premier jour est bruyant, c’est normal&lt;/h2&gt;
&lt;p&gt;Un dernier mot d’honnêteté, parce que je préfère te le dire avant que tu le découvres seul. Le jour où tu branches dix machines d’un coup, ton dashboard va &lt;strong&gt;crépiter&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Chaque poste arrive avec son audit de configuration qui remonte des dizaines d’écarts par rapport au référentiel CIS. Chaque FIM signale des fichiers parfaitement légitimes qui changent au fil de l’usage. Au début, le bruit noie le signal, et c’est déstabilisant.&lt;/p&gt;
&lt;p&gt;Ce n’est pas un bug. C’est l’état brut d’un SIEM qu’on vient d’allumer sur un parc réel. Le travail qui suit, calibrer les règles, écarter les faux positifs, régler les seuils pour n’être réveillé que quand ça compte, c’est du travail humain, pas de la magie logicielle. On l’a dit depuis l’ouverture de la série, le dur n’est pas la techno, c’est l’ajustement. Cet ajustement fin, l’alerting calibré, ce sera le bilan de l’épisode 7.&lt;/p&gt;
&lt;p&gt;Pour l’instant, savoure. Ton SIEM ne se regarde plus le nombril, il voit ton réseau.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;pour-les-pressés&quot;&gt;Pour les pressés&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Ce que fait cet article.&lt;/strong&gt; On déploie les agents Wazuh sur tout le parc, serveurs Linux, Mac, Windows, pour que chaque machine remonte ses logs, son audit de configuration, ses vulnérabilités et l’intégrité de ses fichiers au manager. Toute la remontée passe par le Tailnet, jamais par l’internet ouvert. On vérifie l’enrôlement, on étend la surveillance de fichiers, on encaisse le bruit du premier jour.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Concrètement, les commandes.&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Sur le manager, ouvrir les ports agents sur le Tailnet uniquement : &lt;code&gt;sudo ufw allow in on tailscale0 to any port 1514 proto tcp&lt;/code&gt; puis idem pour &lt;code&gt;1515&lt;/code&gt;. Jamais en global.&lt;/li&gt;
&lt;li&gt;Prérequis absolu, chaque endpoint doit être dans le Tailnet (&lt;code&gt;tailscale up&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Linux : ajouter le dépôt Wazuh, puis &lt;code&gt;sudo WAZUH_MANAGER=&quot;&amp;#x3C;IP_TAILSCALE_DU_MANAGER&gt;&quot; WAZUH_AGENT_GROUP=&quot;linux&quot; apt-get install wazuh-agent&lt;/code&gt;, puis &lt;code&gt;systemctl enable --now wazuh-agent&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;macOS : &lt;code&gt;curl -O&lt;/code&gt; le &lt;code&gt;.pkg&lt;/code&gt; arm64, écrire les variables dans &lt;code&gt;/tmp/wazuh_envs&lt;/code&gt;, &lt;code&gt;sudo installer -pkg ... -target /&lt;/code&gt;, &lt;code&gt;sudo launchctl bootstrap system /Library/LaunchDaemons/com.wazuh.agent.plist&lt;/code&gt;. Puis accorder le Full Disk Access à l’agent.&lt;/li&gt;
&lt;li&gt;Windows : &lt;code&gt;msiexec.exe /i .\wazuh-agent-4.14.5-1.msi /q WAZUH_MANAGER=&quot;&amp;#x3C;IP_TAILSCALE_DU_MANAGER&gt;&quot; WAZUH_AGENT_GROUP=&quot;windows&quot;&lt;/code&gt;, puis &lt;code&gt;Start-Service WazuhSvc&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Vérifier depuis le manager : &lt;code&gt;sudo /var/ossec/bin/agent_control -l&lt;/code&gt;, viser l’état &lt;code&gt;Active&lt;/code&gt; partout.&lt;/li&gt;
&lt;li&gt;Étendre le FIM via le groupe, dans &lt;code&gt;/var/ossec/etc/shared/&amp;#x3C;groupe&gt;/agent.conf&lt;/code&gt;, bloc &lt;code&gt;&amp;#x3C;syscheck&gt;&lt;/code&gt; avec &lt;code&gt;check_all=&quot;yes&quot; realtime=&quot;yes&quot;&lt;/code&gt; (temps réel Linux et Windows seulement, pas macOS).&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id=&quot;en-résumé&quot;&gt;En résumé&lt;/h2&gt;
&lt;p&gt;Tu es parti d’un SIEM qui ne voyait que lui-même, tu repars avec un SIEM qui voit ton parc.&lt;/p&gt;
&lt;p&gt;Tu as &lt;strong&gt;ouvert les ports agents sur le seul Tailnet&lt;/strong&gt;, 1514 et 1515 sur &lt;code&gt;tailscale0&lt;/code&gt;, jamais en public, fidèle à la promesse souveraine de la série. Tu as &lt;strong&gt;enrôlé tes trois familles de machines&lt;/strong&gt;, Linux en trois commandes, Mac en gérant la contrainte TCC, Windows en MSI silencieux. Tu as &lt;strong&gt;vérifié la remontée&lt;/strong&gt; avec &lt;code&gt;agent_control -l&lt;/code&gt; et dans le dashboard, et tu as &lt;strong&gt;étendu la surveillance d’intégrité&lt;/strong&gt; sur tes dossiers sensibles via les groupes.&lt;/p&gt;
&lt;p&gt;Chaque machine que tu branches est gratuite côté licence, c’est du 100 % open source, sans limite d’agents. Là où le SaaS américain facture au volume de logs, donc au nombre de machines, plus tu vois large, plus tu paies. Chez toi, voir large ne coûte rien.&lt;/p&gt;
&lt;p&gt;Mais tu observes. Tu vois les attaques, tu ne les arrêtes pas encore. À l’épisode 4, on ajoute la première ligne de défense active, &lt;strong&gt;CrowdSec&lt;/strong&gt;, le réseau communautaire qui bloque les attaquants connus avant même qu’ils ne frappent à ta porte. Ton SIEM commence à mordre.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;rappel-de-la-série&quot;&gt;Rappel de la série&lt;/h2&gt;
&lt;p&gt;Sept épisodes pour monter ta plomberie de sécurité souveraine, brique par brique.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://macsouverain.com/nis2-splunk-pourquoi-pme-siem-souverain/&quot;&gt;Épisode 0, le fondement de la série.&lt;/a&gt;&lt;/strong&gt; Pourquoi une PME a besoin d’un SIEM souverain, NIS2, RGPD, et le coût du statu quo.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://macsouverain.com/vps-durci-socle-siem-souverain/&quot;&gt;Épisode 1, le socle.&lt;/a&gt;&lt;/strong&gt; Le VPS durci hors CLOUD Act.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://macsouverain.com/wazuh-tout-en-un-siem-souverain/&quot;&gt;Épisode 2, Wazuh en tout-en-un.&lt;/a&gt;&lt;/strong&gt; Manager, indexeur et tableau de bord sur un seul nœud.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Épisode 3, les agents partout.&lt;/strong&gt; Déploiement sur tes serveurs, Mac et Windows. Tu viens de le lire.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://macsouverain.com/crowdsec-premiere-ligne-siem-souverain/&quot;&gt;Épisode 4, la défense réseau communautaire.&lt;/a&gt;&lt;/strong&gt; Bloquer les attaquants connus avant qu’ils n’arrivent.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://macsouverain.com/rspamd-mail-siem-souverain/&quot;&gt;Épisode 5, le filtre mail.&lt;/a&gt;&lt;/strong&gt; Anti-spam et anti-hameçonnage devant ton serveur de messagerie.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://macsouverain.com/santa-controle-execution-mac-siem-souverain/&quot;&gt;Épisode 6, le contrôle d’exécution sur les Mac.&lt;/a&gt;&lt;/strong&gt; Décider quelles applications ont le droit de démarrer.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Épisode 7, alerting et coût total.&lt;/strong&gt; Notifications calibrées et bilan financier honnête face au SaaS.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;Des termes techniques ? &lt;a href=&quot;https://macsouverain.com/glossaire&quot;&gt;Consulte le glossaire.&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;</content:encoded><dc:creator>Mac Souverain</dc:creator><category>ms-pro</category><category>nis2</category><category>siem</category><category>wazuh</category><category>securite</category><category>tutoriel</category><enclosure url="https://macsouverain.com/content/images/2026/07/feature-wazuh-agents-parc-siem-souverain-3.png" length="0" type="image/png"/></item><item><title>Wazuh en tout-en-un, ton Splunk maison pour le prix d&apos;un VPS</title><link>https://macsouverain.com/wazuh-tout-en-un-siem-souverain/</link><guid isPermaLink="true">https://macsouverain.com/wazuh-tout-en-un-siem-souverain/</guid><description>Épisode 2 de la série SIEM souverain. Installer Wazuh (manager, indexeur, dashboard) sur un seul nœud, durcir les mots de passe et le dashboard en Tailnet-only, régler le heap JVM, premiers tableaux de bord sans agents.</description><pubDate>Sat, 20 Jun 2026 13:13:52 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;MAJ août 2026.&lt;/strong&gt; La branche stable est passée à Wazuh 4.14.7 le 29 juillet, retrait du daemon déprécié wazuh-dbd, dépendances Python à jour, correctifs de synchro cluster. La commande d’install pointe sur la branche 4.14, elle te sert directement la 4.14.7, rien à changer.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;À l’épisode précédent, tu as monté &lt;a href=&quot;https://macsouverain.com/vps-durci-socle-siem-souverain/&quot;&gt;un coffre-fort vide&lt;/a&gt;. Un VPS chez un hébergeur suisse, durci jusqu’à l’os, SSH par clé, pare-feu fermé, administration repliée derrière Tailscale, sauvegardes chiffrées hors-site. Une belle machine. Qui pour l’instant… ne surveille rien !&lt;/p&gt;
&lt;p&gt;Aujourd’hui, on la remplit. On installe &lt;strong&gt;Wazuh&lt;/strong&gt;, le cerveau de toute la pile, sur ce seul nœud. Manager, indexeur et tableau de bord, les trois composants centraux d’un SIEM, sur la même machine. C’est le mode tout-en-un, et c’est exactement ce dont une PME a besoin pour démarrer.&lt;/p&gt;
&lt;p&gt;La promesse de la série tient en une phrase, on l’a posée dès l’ouverture. &lt;strong&gt;L’équivalent fonctionnel d’un Splunk, pour le prix d’un VPS.&lt;/strong&gt; À la fin de cet article, tu auras une console de sécurité qui tourne, qui voit déjà ta propre machine, et qui t’a coûté zéro euro de licence. Là où le même périmètre chez un éditeur américain se chiffre de quelques milliers à plusieurs dizaines de milliers de dollars par an, selon la taille de ton parc, avec tes journaux logés dans une juridiction très défavorable à tes intérêts.&lt;/p&gt;
&lt;p&gt;Cette stack, je l’utilise au quotidien. Les commandes qui suivent sont celles que tu vas taper toi-même, dans l’ordre, sur le serveur de l’épisode 1.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;trois-composants-une-seule-machine&quot;&gt;Trois composants, une seule machine&lt;/h2&gt;
&lt;p&gt;Avant d’installer, comprends ce que tu installes. Un SIEM Wazuh, ce n’est pas un bloc monolithique, ce sont trois rôles qui se passent le relais.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Le manager&lt;/strong&gt;, c’est le cerveau. Il reçoit les journaux, fait tourner le moteur d’analyse, corrèle les événements, applique les règles et lève les alertes. C’est lui qui décide qu’une rafale d’échecs de mot de passe à 3 heures du matin mérite qu’on te réveille.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;L’indexeur&lt;/strong&gt;, c’est la mémoire. Il stocke et indexe les alertes pour que tu puisses les rechercher, filtrer, remonter dans le temps. C’est un fork d’&lt;a href=&quot;https://opensearch.org/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;OpenSearch&lt;/a&gt;, le moteur de recherche open source, lui-même issu d’Elasticsearch. Retiens ce détail, il va revenir nous compliquer la vie de la meilleure des façons.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Le dashboard&lt;/strong&gt;, c’est la vitre. L’interface web par laquelle tu lis tout ça, accessible sur le port 443. Il interroge le manager pour la configuration et l’indexeur pour les données.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Un quatrième larron travaille dans l’ombre, &lt;strong&gt;Filebeat&lt;/strong&gt;, le tuyau qui pousse les alertes du manager vers l’indexeur. Tu n’y toucheras pas, mais quand quelque chose coince, c’est souvent lui qu’on regarde.&lt;/p&gt;
&lt;p&gt;En entreprise, ces trois composants vivent sur des machines séparées, pour encaisser le volume et tenir la haute disponibilité. Pour une PME jusqu’à une centaine de machines surveillées, c’est du gâchis. Le mode tout-en-un les pose tous les trois sur le même serveur, et c’est largement suffisant pour démarrer. La documentation officielle dimensionne d’ailleurs ce mode pour 1 à 100 agents.&lt;/p&gt;
&lt;p&gt;On reviendra plus bas sur le moment où le tout-en-un ne suffit plus. Mais pour l’instant, une seule machine, et on y va.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;linstallation-en-une-commande&quot;&gt;L’installation en une commande&lt;/h2&gt;
&lt;p&gt;Wazuh propose deux chemins. Le premier, step-by-step, installe l’indexeur, puis le manager, puis le dashboard séparément, en éditant les fichiers de configuration à la main. C’est pédagogique, c’est long, et tu n’en as pas besoin pour un mono-nœud. Le second, c’est l’assistant officiel, qui fait tout d’un coup.&lt;/p&gt;
&lt;p&gt;On prend l’assistant.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;curl&lt;/span&gt;&lt;span style=&quot;color:#005CC5&quot;&gt; -sO&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; https://packages.wazuh.com/4.14/wazuh-install.sh&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt; &amp;#x26;&amp;#x26; &lt;/span&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; bash&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; ./wazuh-install.sh&lt;/span&gt;&lt;span style=&quot;color:#005CC5&quot;&gt; -a&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Décortiquons. Le &lt;code&gt;curl -sO&lt;/code&gt; télécharge le script d’installation depuis le dépôt officiel Wazuh, branche &lt;code&gt;4.14&lt;/code&gt;. Le &lt;code&gt;sudo bash ./wazuh-install.sh -a&lt;/code&gt; le lance avec les droits administrateur, et le flag &lt;code&gt;-a&lt;/code&gt; veut dire &lt;strong&gt;all-in-one&lt;/strong&gt;, tout-en-un. C’est ce flag qui demande à l’assistant d’installer et de configurer les trois composants sur cette même machine, de générer les certificats TLS qui chiffrent leurs échanges, et de fabriquer les mots de passe.&lt;/p&gt;
&lt;p&gt;À la fin, l’assistant affiche dans la console le mot de passe du compte &lt;code&gt;admin&lt;/code&gt;. Note-le, c’est ta première clé d’entrée. Si tu l’as raté en remontant le terminal, tu le récupères proprement :&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; tar&lt;/span&gt;&lt;span style=&quot;color:#005CC5&quot;&gt; -O&lt;/span&gt;&lt;span style=&quot;color:#005CC5&quot;&gt; -xvf&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; wazuh-install-files.tar&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; wazuh-install-files/wazuh-passwords.txt&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Cette commande extrait, sans le décompresser sur le disque, le fichier qui liste tous les mots de passe générés à l’installation. On va d’ailleurs s’en occuper dans un instant, parce que des mots de passe générés par un script, c’est un point de départ, pas un point d’arrivée.&lt;/p&gt;
&lt;p&gt;Au moment où j’écris ces lignes, la version stable est la &lt;strong&gt;4.14.5&lt;/strong&gt;, sortie le 23 avril 2026. La cadence de patchs est quasi mensuelle sur la branche 4.14. L’URL d’installation pointe sur &lt;code&gt;4.14/&lt;/code&gt;, ce qui te sert toujours la dernière de la branche, donc tu n’as rien à changer tant que la 4.14 reste la stable. Si une 4.15 est sortie quand tu lis ça, vérifie la branche courante sur la &lt;a href=&quot;https://documentation.wazuh.com/current/release-notes/index-4x.html&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;page des notes de version&lt;/a&gt; avant de lancer la commande.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;le-piège-mémoire-là-où-90--des-installs-rament&quot;&gt;Le piège mémoire, là où 90 % des installs rament&lt;/h2&gt;
&lt;p&gt;Si tu ne dois retenir qu’une chose de cet épisode, c’est celle-ci. La cause numéro un des Wazuh qui rament, qui plantent, qui s’arrêtent au bout de trois jours, c’est la mémoire mal réglée sur l’indexeur.&lt;/p&gt;
&lt;p&gt;Souviens-toi, l’indexeur est un fork d’OpenSearch, qui tourne sur la &lt;strong&gt;JVM&lt;/strong&gt;, la machine virtuelle Java. Et la JVM réserve à son démarrage une zone de mémoire fixe pour travailler, qu’on appelle le &lt;strong&gt;heap&lt;/strong&gt; (le tas). Trop petit, l’indexeur étouffe sous les données. Trop grand, il prend toute la RAM et asphyxie le manager, le dashboard et l’OS qui tournent à côté sur la même machine. C’est tout l’enjeu du mononœud, trois gros consommateurs de mémoire se partagent une seule enveloppe.&lt;/p&gt;
&lt;p&gt;La règle officielle est nette, et elle est simple. &lt;strong&gt;Le heap, c’est la moitié de la RAM de la machine.&lt;/strong&gt; Et les deux bornes, minimale et maximale, doivent être identiques.&lt;/p&gt;
&lt;p&gt;Pourquoi identiques ? Parce que si tu laisses la JVM redimensionner son tas à chaud, en cours de route, elle passe son temps à réallouer de la mémoire au lieu d’indexer tes logs. En fixant le plancher et le plafond à la même valeur, tu lui dis « voilà ton bac à sable, ni plus ni moins, maintenant travaille ».&lt;/p&gt;
&lt;p&gt;Ça se règle dans un fichier, &lt;code&gt;/etc/wazuh-indexer/jvm.options&lt;/code&gt;.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; nano&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; /etc/wazuh-indexer/jvm.options&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Tu y cherches les deux lignes &lt;code&gt;-Xms&lt;/code&gt; (la borne basse) et &lt;code&gt;-Xmx&lt;/code&gt; (la borne haute), et tu les fixes à la moitié de ta RAM. Voici pourquoi l’épisode 1 t’a fait viser 12 Go de RAM et pas 8. Sur une machine de 12 Go, le heap prend 6 Go, et il reste 6 Go pour tout le reste, le manager, le dashboard, Filebeat, le système. De la marge pour respirer.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;-Xms6g&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;-Xmx6g&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Puis on redémarre l’indexeur pour qu’il prenne en compte la nouvelle valeur.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; systemctl&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; restart&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; wazuh-indexer&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Si tu as démarré sur 8 Go pour tester, ta valeur de heap est &lt;code&gt;-Xms4g&lt;/code&gt; / &lt;code&gt;-Xmx4g&lt;/code&gt;, et tu vis avec 4 Go pour le reste, c’est juste mais ça tient pour une découverte.&lt;/p&gt;
&lt;p&gt;Un dernier point pour les curieux. La règle « moitié de la RAM » a aussi un plafond absolu, ne jamais dépasser environ 32 Go de heap, au-delà la JVM perd une optimisation interne sur ses pointeurs mémoire. C’est une bonne pratique générale du moteur OpenSearch, pas une limite Wazuh spécifique, et à l’échelle d’une PME on en est très loin, donc tu peux l’oublier pour l’instant. Je te le mentionne pour que tu ne sois pas surpris si tu tombes dessus en montant un jour une grosse infra.&lt;/p&gt;
&lt;p&gt;Tant qu’on parle de mémoire, une règle voisine. &lt;strong&gt;La JVM ne doit jamais swapper.&lt;/strong&gt; Si le système se met à utiliser le disque comme mémoire d’appoint pour l’indexeur, les performances s’effondrent. Sur un VPS correctement dimensionné, avec le heap réglé à la moitié de la RAM, tu ne devrais pas swapper, mais c’est le premier réflexe de diagnostic le jour où ça rame.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;verrouiller-la-maison&quot;&gt;Verrouiller la maison&lt;/h2&gt;
&lt;p&gt;L’installation t’a livré une console fonctionnelle. Elle t’a aussi livré des mots de passe générés par un script et un dashboard qui, par défaut, ne demande qu’à être joignable. Deux choses à reprendre en main avant de t’asseoir aux commandes.&lt;/p&gt;
&lt;h3 id=&quot;changer-tous-les-mots-de-passe-par-défaut&quot;&gt;Changer tous les mots de passe par défaut&lt;/h3&gt;
&lt;p&gt;Les mots de passe générés à l’installation ne sont pas mauvais en soi, mais ils traînent dans un fichier sur le serveur, et tu n’en es pas l’auteur. La bonne hygiène, c’est de tout régénérer avec tes propres secrets. Wazuh embarque un outil pour ça, déposé par l’assistant dans l’indexeur.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; bash&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; /usr/share/wazuh-indexer/plugins/opensearch-security/tools/wazuh-passwords-tool.sh&lt;/span&gt;&lt;span style=&quot;color:#005CC5&quot;&gt; -a&lt;/span&gt;&lt;span style=&quot;color:#005CC5&quot;&gt; -A&lt;/span&gt;&lt;span style=&quot;color:#005CC5&quot;&gt; -au&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; wazuh&lt;/span&gt;&lt;span style=&quot;color:#005CC5&quot;&gt; -ap&lt;/span&gt;&lt;span style=&quot;color:#D73A49&quot;&gt; &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt;MOT_DE_PASSE_ACTUE&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt;L&lt;/span&gt;&lt;span style=&quot;color:#D73A49&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Le flag &lt;code&gt;-a&lt;/code&gt; cible tous les utilisateurs, &lt;code&gt;-A&lt;/code&gt; applique le changement, et le couple &lt;code&gt;-au&lt;/code&gt; / &lt;code&gt;-ap&lt;/code&gt; fournit l’utilisateur et le mot de passe administrateur actuels, ceux récupérés tout à l’heure. En mode tout-en-un, l’outil propage automatiquement les nouveaux mots de passe aux composants concernés, tu n’as pas à les recoller un par un.&lt;/p&gt;
&lt;p&gt;Tes nouveaux mots de passe doivent respecter une complexité minimale, &lt;strong&gt;8 à 64 caractères, au moins une majuscule, une minuscule, un chiffre, et un symbole&lt;/strong&gt; parmi &lt;code&gt;.*+?-&lt;/code&gt;. Génère-les avec ton gestionnaire de mots de passe, ne les invente pas de tête.&lt;/p&gt;
&lt;h3 id=&quot;les-certificats-déjà-là&quot;&gt;Les certificats, déjà là&lt;/h3&gt;
&lt;p&gt;Bonne nouvelle, tu n’as rien à faire côté chiffrement interne. L’assistant &lt;code&gt;-a&lt;/code&gt; a généré une petite autorité de certification maison et déposé les certificats TLS sous &lt;code&gt;/etc/wazuh-indexer/certs/&lt;/code&gt; et compagnie. Les trois composants se parlent déjà en chiffré entre eux. C’est fait, c’est propre, on n’y touche pas.&lt;/p&gt;
&lt;p&gt;Le seul effet visible, c’est qu’au premier accès au dashboard, ton navigateur affichera un avertissement de sécurité, parce que le certificat est auto-signé et non reconnu par une autorité publique. C’est normal, et pour un dashboard qui ne sera de toute façon jamais exposé au public, c’est parfaitement acceptable. Tu cliques pour continuer, et tu passes.&lt;/p&gt;
&lt;p&gt;Un mot pour anticiper la tentation. Tu pourrais vouloir un « vrai » certificat reconnu, via Let’s Encrypt. &lt;strong&gt;Surtout pas ici.&lt;/strong&gt; Let’s Encrypt valide ton certificat en vérifiant que ton serveur répond sur internet, donc en t’obligeant à ouvrir un port au monde entier. C’est l’exact contraire de ce qu’on construit depuis l’épisode 1.&lt;/p&gt;
&lt;p&gt;Si l’auto-signé te dérange vraiment, Tailscale peut émettre un certificat propre pour ton nœud sans aucune exposition publique. Mais franchement, pour une console que tu es seul à consulter, l’auto-signé suffit. On ne va pas percer le mur qu’on vient de bâtir pour faire disparaître un avertissement de navigateur.&lt;/p&gt;
&lt;h3 id=&quot;le-dashboard-invisible-depuis-internet&quot;&gt;Le dashboard, invisible depuis internet&lt;/h3&gt;
&lt;p&gt;C’est le geste de sécurité le plus important de l’épisode, et c’est celui qui sépare un SIEM souverain d’un SIEM posé sur le trottoir. Par défaut, rien ne garantit que ton dashboard reste privé. Le port 443 qui sert l’interface ne doit &lt;strong&gt;jamais&lt;/strong&gt; être joignable depuis internet.&lt;/p&gt;
&lt;p&gt;Tes tableaux de bord de sécurité, c’est la &lt;strong&gt;carte de tes faiblesses&lt;/strong&gt;, c’est précisément ce qu’un attaquant rêve de consulter.&lt;/p&gt;
&lt;p&gt;La règle de la série, posée à l’épisode 1, est inflexible. &lt;strong&gt;Aucun service public.&lt;/strong&gt; Le dashboard vit derrière Tailscale, accessible à toi seul, comme l’a fait SSH avant lui.&lt;/p&gt;
&lt;p&gt;Deux verrous, complémentaires. D’abord, on demande au dashboard de n’écouter que sur l’adresse Tailscale du serveur, pas sur toutes les interfaces. Ça se règle dans son fichier de configuration.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; nano&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; /etc/wazuh-dashboard/opensearch_dashboards.yml&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Tu y trouves la ligne &lt;code&gt;server.host&lt;/code&gt;. Si elle vaut &lt;code&gt;0.0.0.0&lt;/code&gt;, le dashboard écoute partout, y compris sur l’IP publique. À proscrire. Tu la fixes sur l’IP Tailscale de ton serveur, celle que tu récupères avec &lt;code&gt;tailscale ip -4&lt;/code&gt;, vue à l’épisode 1.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;server.host: &quot;&amp;#x3C;IP_TAILSCALE_DU_SERVEUR&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Puis tu redémarres le dashboard.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; systemctl&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; restart&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; wazuh-dashboard&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Ensuite, le pare-feu, en ceinture et bretelles. On reprend exactement le pattern de l’épisode 1 pour SSH, on autorise le port 443 uniquement sur l’interface du réseau privé, jamais en global.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; ufw&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; allow&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; in&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; on&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; tailscale0&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; to&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; any&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; port&lt;/span&gt;&lt;span style=&quot;color:#005CC5&quot;&gt; 443&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; proto&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; tcp&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Le piège à éviter, c’est de taper &lt;code&gt;sudo ufw allow 443/tcp&lt;/code&gt; tout court. Cette commande-là ouvre le dashboard au monde entier. La nôtre ne l’ouvre que sur &lt;code&gt;tailscale0&lt;/code&gt;, ton maillage chiffré. La nuance est tout sauf cosmétique, l’une expose ta console de sécurité aux scanners du monde entier, l’autre la rend invisible.&lt;/p&gt;
&lt;p&gt;Le résultat, c’est un dashboard joignable seulement par un membre de ton réseau privé. Un scan de ton IP publique ne révèle rien. Conforme à la promesse souveraine, et conforme au bon sens.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;le-tour-du-propriétaire&quot;&gt;Le tour du propriétaire&lt;/h2&gt;
&lt;p&gt;Connecte-toi. Depuis une machine membre de ton Tailnet, tu ouvres &lt;code&gt;https://&amp;#x3C;IP_TAILSCALE_DU_SERVEUR&gt;&lt;/code&gt; dans ton navigateur. Avertissement de certificat, tu passes. Login &lt;code&gt;admin&lt;/code&gt;, ton nouveau mot de passe. Tu es dans la console.&lt;/p&gt;
&lt;figure class=&quot;kg-card kg-image-card&quot;&gt;
&lt;img src=&quot;https://macsouverain.com/content/images/2026/06/capture-03-dashboard-overview-wazuh-tout-en-un-siem-souverain-1.png&quot; class=&quot;kg-image&quot; loading=&quot;lazy&quot; alt=&quot;Vue d&amp;#x27;ensemble de la console Wazuh&quot;&gt;
&lt;/figure&gt;
&lt;p&gt;&lt;em&gt;Cette capture vient d’une instance Wazuh en production, déjà peuplée de plusieurs agents. Sur ton install toute fraîche, tu ne verras pour l’instant que l’agent 000, le serveur qui se surveille lui-même.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Et là, surprise agréable, ce n’est pas vide. Tu t’attendais peut-être à un écran inerte en attendant de déployer des agents. Pas du tout. En mode tout-en-un, le serveur embarque un &lt;strong&gt;agent local&lt;/strong&gt;, sous l’identifiant 000, qui se surveille lui-même. Ta machine est déjà sous l’œil de ton propre SIEM, avant même d’avoir touché au reste de ton parc.&lt;/p&gt;
&lt;p&gt;Concrètement, tu as déjà des données et plusieurs modules qui tournent sur ce nœud.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;SCA&lt;/strong&gt;, pour &lt;strong&gt;Security Configuration Assessment&lt;/strong&gt;, l’audit de configuration. Il est actif par défaut, sans rien régler, et il scanne ta machine contre des référentiels de durcissement type CIS. Il te dit où ta config s’écarte des bonnes pratiques, un service de trop, une permission trop large, un réglage SSH oublié. Tu vas probablement y retrouver, validées noir sur blanc, les décisions de durcissement de l’épisode 1.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;La détection de vulnérabilités.&lt;/strong&gt; Wazuh inventorie les paquets installés sur la machine et les croise avec les bases de CVE connues. Si un de tes paquets traîne une faille publiée, il te le signale, avec la référence et la criticité. Une nuance d’honnêteté, contrairement au SCA et au FIM qui tournent seuls, le scan du nœud local ne se déclenche pas au premier démarrage. Il faut l’activer d’un réglage, passer &lt;code&gt;vulnerability-detection.disable_scan_manager&lt;/code&gt; à &lt;code&gt;0&lt;/code&gt; dans &lt;code&gt;/var/ossec/etc/internal_options.conf&lt;/code&gt; puis redémarrer le manager. Deux minutes, et ta propre machine est scannée elle aussi.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Le FIM&lt;/strong&gt;, &lt;strong&gt;File Integrity Monitoring&lt;/strong&gt;, la surveillance d’intégrité des fichiers. Il garde l’empreinte de tes fichiers sensibles et t’alerte si l’un d’eux change. Un fichier système modifié sans raison, c’est souvent le premier signe qu’on a un invité.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;L’analyse des logs locaux&lt;/strong&gt;, qui digère les journaux de la machine et les transforme en alertes lisibles.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;figure class=&quot;kg-card kg-image-card&quot;&gt;
&lt;img src=&quot;https://macsouverain.com/content/images/2026/06/capture-04-sca-node-wazuh-tout-en-un-siem-souverain-1.png&quot; class=&quot;kg-image&quot; loading=&quot;lazy&quot; alt=&quot;Résultats du scan SCA sur le nœud, benchmark CIS Ubuntu&quot;&gt;
&lt;/figure&gt;
&lt;p&gt;Et il y a les tableaux de bord de conformité, prêts à l’emploi. Wazuh livre des vues taguées &lt;strong&gt;PCI DSS, HIPAA, RGPD, NIST 800-53, TSC&lt;/strong&gt;, avec génération de rapports. Chaque alerte porte l’identifiant de conformité qu’elle touche, par exemple un tag &lt;code&gt;gdpr_IV_32&lt;/code&gt; qui renvoie à l’article 32 du RGPD sur la sécurité du traitement. C’est exactement le matériau dont tu as besoin pour le triptyque de notification qu’on a martelé à l’ouverture, détecter, journaliser, prouver.&lt;/p&gt;
&lt;figure class=&quot;kg-card kg-image-card&quot;&gt;
&lt;img src=&quot;https://macsouverain.com/content/images/2026/06/capture-05-gdpr-wazuh-tout-en-un-siem-souverain-1.png&quot; class=&quot;kg-image&quot; loading=&quot;lazy&quot; alt=&quot;Tableau de bord de conformité RGPD, alertes taguées par exigence&quot;&gt;
&lt;/figure&gt;
&lt;p&gt;Une honnêteté nécessaire sur NIS2, justement. Wazuh fournit toutes les briques fonctionnelles que NIS2 réclame, monitoring continu, intégrité des fichiers, analyse de vulnérabilités, contrôle de configuration, reporting. Mais il n’existe &lt;strong&gt;pas&lt;/strong&gt; de tableau de bord NIS2 prêt à cliquer comme il en existe un pour le RGPD.&lt;/p&gt;
&lt;p&gt;Pour suivre NIS2 finement, tu construiras tes propres vues, en t’appuyant sur les tags RGPD et NIST déjà présents. Wazuh te donne l’outillage de conformité, il ne te rend pas conforme tout seul. Le calibrage des règles, le réglage de la rétention, la réponse aux alertes, ça reste du travail humain. On l’a dit dès l’ouverture, le dur n’est pas la techno, c’est l’ajustement.&lt;/p&gt;
&lt;p&gt;Pour l’instant, ton SIEM se voit lui-même. Il ne voit pas encore le reste de ton parc informatique. C’est précisément l’objet de l’épisode suivant.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;quand-le-tout-en-un-ne-suffit-plus&quot;&gt;Quand le tout-en-un ne suffit plus&lt;/h2&gt;
&lt;p&gt;Le mono-nœud n’est pas magique, et je ne vais pas te vendre l’inverse. Il a un plafond, autant que tu saches où il se situe avant de t’y cogner.&lt;/p&gt;
&lt;p&gt;La métrique qui compte, c’est l’&lt;strong&gt;EPS&lt;/strong&gt;, les événements par seconde que ta machine encaisse. Un nœud bien dimensionné, de l’ordre de 16 Go de RAM et 8 vCPU, absorbe grossièrement 5 000 événements par seconde. Pour une PME jusqu’à 50 ou 100 machines surveillées, avec des journaux d’activité normaux, tu es très loin de saturer. Le tout-en-un tient largement.&lt;/p&gt;
&lt;p&gt;Le jour où tu t’en approches, le symptôme est désagréable. Quand la file d’ingestion sature, Wazuh ne ralentit pas poliment, il &lt;strong&gt;jette les événements&lt;/strong&gt; qu’il n’a pas le temps de traiter. Et un événement jeté, c’est une alerte que tu ne verras jamais. Une caméra qui arrête d’enregistrer aux heures de pointe.&lt;/p&gt;
&lt;p&gt;À ce moment-là, tu passes en multi-nœuds, le manager d’un côté, l’indexeur de l’autre, voire plusieurs de chacun. Détail contre-intuitif mais important, Wazuh &lt;strong&gt;scale mieux horizontalement que verticalement&lt;/strong&gt;. Deux nœuds à ressources moyennes valent mieux qu’un seul gros nœud. C’est un autre chantier, hors de cette série, mais tu sais désormais que la porte existe.&lt;/p&gt;
&lt;p&gt;Pour une PME qui démarre, retiens ça, le tout-en-un est parfait pour commencer, pas conçu pour l’infini. Et entre les deux, il y a beaucoup de place.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;ce-que-ça-taurait-coûté-ailleurs&quot;&gt;Ce que ça t’aurait coûté ailleurs&lt;/h2&gt;
&lt;p&gt;On a tease ce chiffrage depuis l’ouverture de la série. Le moment est venu de le poser, pour cette brique précise.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Côté Wazuh, le coût de licence est de zéro.&lt;/strong&gt; C’est du 100 % open source, sous licence GPLv2, et il n’y a aucun palier payant. Pas de limite d’agents, pas de limite d’utilisateurs, pas de limite de logs ingérés. Ta seule dépense, c’est le VPS que tu as monté à l’épisode 1, entre 15 et 30 euros par mois selon le dimensionnement, plus ton temps d’installation et de calibrage. Et c’est tout.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Côté Splunk, la facture a une autre tête.&lt;/strong&gt; Un avertissement d’abord, Splunk ne publie pas ses tarifs officiellement, donc tout ce qui suit relève de l’ordre de grandeur reconstitué par des sources secondaires sérieuses, pas du devis officiel. Avec cette réserve, le principe est simple, tu paies au volume de logs avalé chaque jour, compté en gigaoctets par jour.&lt;/p&gt;
&lt;p&gt;Reste à traduire ça pour un parc réel, parce qu’un prix au gigaoctet ne parle à personne tant qu’on ne sait pas combien de gigaoctets une PME produit. Repère utile, avec une journalisation de sécurité raisonnable, compte autour de cinquante mégaoctets de logs par poste et par jour, soit à peu près un gigaoctet par jour pour quinze à vingt postes. De là, on peut poser des montants, licence seule, en gardant Wazuh en miroir.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;15 postes&lt;/strong&gt;, environ 1 Go de logs par jour. Splunk, de l’ordre de 2 000 à 5 000 dollars par an. Wazuh, le VPS, 180 à 360 euros par an. Point.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;50 postes&lt;/strong&gt;, environ 4 à 5 Go par jour. Splunk, de l’ordre de 8 000 à 12 500 dollars par an. Wazuh, le même VPS, à l’euro près.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;100 postes&lt;/strong&gt;, environ 8 à 10 Go par jour. Splunk, de l’ordre de 15 000 à 25 000 dollars par an. Wazuh, toujours le même VPS.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Au-delà de cent postes surveillés, on change de monde des deux côtés, cluster multi-nœuds chez Wazuh, paliers à plusieurs dizaines voire centaines de milliers de dollars chez Splunk. C’est une autre échelle, hors du périmètre de cette série pensée pour la PME.&lt;/p&gt;
&lt;p&gt;La différence n’est pas qu’une histoire de montant. C’est une histoire de &lt;strong&gt;trajectoire&lt;/strong&gt;. Chez Wazuh, ton coût d’infrastructure est plat, tu ingères plus de logs, ton VPS encaisse, ta facture ne bouge pas. Chez Splunk, le compteur tourne à chaque gigaoctet supplémentaire. Plus ton SIEM voit large et profond, plus il te coûte cher, alors que voir large et profond, c’est littéralement son métier. Tu es facturé sur la qualité même de ta surveillance.&lt;/p&gt;
&lt;p&gt;Et il y a la question qui a fondé cette série, celle de la juridiction. Tes logs, ce sont les empreintes complètes de ton réseau. Chez Wazuh, ils dorment sur ta machine, en Suisse, sous ton contrôle.&lt;/p&gt;
&lt;p&gt;Chez le SaaS américain, ils sont réquisitionnables au titre du CLOUD Act. Le prix, c’est une chose. Qui détient la donnée, c’en est une autre, et c’est celle qui compte le plus.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;en-résumé&quot;&gt;En résumé&lt;/h2&gt;
&lt;p&gt;Tu es parti d’un coffre-fort vide, tu repars avec une console de sécurité qui tourne.&lt;/p&gt;
&lt;p&gt;Tu as installé &lt;strong&gt;les trois composants de Wazuh en une commande&lt;/strong&gt;, manager, indexeur et dashboard sur ton seul nœud. Tu as réglé &lt;strong&gt;le piège qui fait échouer la plupart des installs&lt;/strong&gt;, le heap de l’indexeur à la moitié de la RAM, bornes identiques, ce qui justifie les 12 Go recommandés à l’épisode 1.&lt;/p&gt;
&lt;p&gt;Tu as &lt;strong&gt;repris la main sur la sécurité&lt;/strong&gt;, mots de passe régénérés, certificats déjà en place, et surtout dashboard verrouillé en Tailnet-only, invisible depuis internet. Et tu as fait &lt;strong&gt;ton premier tour du propriétaire&lt;/strong&gt;, SCA, vulnérabilités, intégrité des fichiers, tableaux de bord RGPD, le tout sur ta propre machine, sans avoir déployé le moindre agent distant.&lt;/p&gt;
&lt;p&gt;Le tout pour zéro euro de licence, là où l’équivalent SaaS se compte de quelques milliers à plusieurs dizaines de milliers de dollars par an selon la taille de ton parc, avec tes journaux les plus sensibles logés sous une juridiction étrangère.&lt;/p&gt;
&lt;p&gt;Mais ton SIEM ne voit encore que lui-même. Il regarde sa propre machine, et c’est déjà précieux pour valider ton durcissement. Le vrai saut, c’est quand il commence à voir le reste, tes serveurs, tes Mac, tes postes Windows. C’est l’épisode 3, le déploiement des agents, le moment où ton SIEM commence vraiment à voir ton réseau.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;rappel-de-la-série&quot;&gt;Rappel de la série&lt;/h2&gt;
&lt;p&gt;Sept épisodes pour monter ta plomberie de sécurité souveraine, brique par brique.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://macsouverain.com/nis2-splunk-pourquoi-pme-siem-souverain/&quot;&gt;Épisode 0, le fondement de la série.&lt;/a&gt;&lt;/strong&gt; Pourquoi une PME a besoin d’un SIEM souverain, NIS2, RGPD, et le coût du statu quo.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://macsouverain.com/vps-durci-socle-siem-souverain/&quot;&gt;Épisode 1, le socle.&lt;/a&gt;&lt;/strong&gt; Le VPS durci hors CLOUD Act.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Épisode 2, Wazuh en tout-en-un.&lt;/strong&gt; Manager, indexeur et tableau de bord sur un seul nœud. Tu viens de le lire.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://macsouverain.com/wazuh-agents-parc-siem-souverain/&quot;&gt;Épisode 3, les agents partout.&lt;/a&gt;&lt;/strong&gt; Déploiement sur tes serveurs, Mac et Windows.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://macsouverain.com/crowdsec-premiere-ligne-siem-souverain/&quot;&gt;Épisode 4, la défense réseau communautaire.&lt;/a&gt;&lt;/strong&gt; Bloquer les attaquants connus avant qu’ils n’arrivent.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://macsouverain.com/rspamd-mail-siem-souverain/&quot;&gt;Épisode 5, le filtre mail.&lt;/a&gt;&lt;/strong&gt; Anti-spam et anti-hameçonnage devant ton serveur de messagerie.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://macsouverain.com/santa-controle-execution-mac-siem-souverain/&quot;&gt;Épisode 6, le contrôle d’exécution sur les Mac.&lt;/a&gt;&lt;/strong&gt; Décider quelles applications ont le droit de démarrer.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Épisode 7, alerting et coût total.&lt;/strong&gt; Notifications calibrées et bilan financier honnête face au SaaS.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;Des termes techniques ? &lt;a href=&quot;https://macsouverain.com/glossaire&quot;&gt;Consulte le glossaire.&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;</content:encoded><dc:creator>Mac Souverain</dc:creator><category>ms-pro</category><category>nis2</category><category>siem</category><category>wazuh</category><category>securite</category><category>tutoriels</category><enclosure url="https://macsouverain.com/content/images/2026/06/feature-wazuh-tout-en-un-siem-souverain-1.png" length="0" type="image/png"/></item><item><title>Ta position fuite par le réseau, pas par ton iPhone</title><link>https://macsouverain.com/surveillance-telecom-ss7/</link><guid isPermaLink="true">https://macsouverain.com/surveillance-telecom-ss7/</guid><description>Des sociétés de surveillance localisent n&apos;importe quel mobile via les failles d&apos;interconnexion télécom. Rien à patcher sur ton iPhone.</description><pubDate>Wed, 17 Jun 2026 13:41:39 GMT</pubDate><content:encoded>&lt;div class=&quot;radar-summary&quot;&gt;
&lt;p&gt;Le Citizen Lab a relié, dans son rapport « Bad Connection » d’avril 2026, du trafic de surveillance réel à des infrastructures d’opérateurs. Des sociétés commerciales localisent n’importe quel mobile via les failles d’interconnexion du réseau, SS7 en 2G/3G, Diameter en 4G, sans jamais toucher l’appareil. Rien à patcher sur ton iPhone : le trou est dans le réseau, pas dans iOS.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ce que tu dois surveiller&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; Aucun réglage ne bloque ce vecteur : ni mode Isolement, ni eSIM, ni Signal, ni couper la data. La seule parade, te rendre injoignable en mode avion ou téléphone éteint. Ne te crois pas couvert parce que tu chiffres tes messages.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2.&lt;/strong&gt; Passe tes codes de connexion en 2FA par application, pas par SMS. Ça ne stoppe pas la géoloc, mais ça ferme l’interception des codes via le même réseau.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3.&lt;/strong&gt; La vraie défense est structurelle, côté opérateurs et régulateurs. NIS2 et ENISA cadrent le risque, mais aucune obligation technique forte n’impose encore de sécuriser l’interconnexion.&lt;/p&gt;
&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;Le Citizen Lab a publié en avril 2026 un rapport qui relie pour la première fois du trafic de surveillance réel à des infrastructures d’opérateurs identifiées. Le principe est connu depuis dix ans, mais le constat reste dérangeant : des sociétés commerciales localisent n’importe quel mobile dans le monde sans jamais toucher à l’appareil. Ton iPhone n’y est pour rien, et c’est précisément le problème.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;le-fait&quot;&gt;Le fait&lt;/h2&gt;
&lt;p&gt;Le rapport s’appelle « Bad Connection ». Il documente des acteurs qui traquent des téléphones à travers une vingtaine de pays, plus de 1700 attaques pour l’un d’eux, dont la quasi-totalité dédiée à la géolocalisation. La cible décrite est un « VVIP » au Moyen-Orient, mais le profil habituel de ce marché est connu : journalistes, opposants, responsables politiques.&lt;/p&gt;
&lt;p&gt;La mécanique exploite les protocoles qui font dialoguer les opérateurs entre eux quand tu pars à l’étranger ou que tu changes d’antenne. Ils ont été conçus à une époque où une poignée d’opérateurs nationaux se faisaient mutuellement confiance. Aujourd’hui ils sont des milliers, et cette confiance implicite est devenue une porte d’entrée. Trois vecteurs cohabitent : SS7 sur la 2G et la 3G, Diameter sur la 4G, et une variante baptisée SIMjacker qui passe par un SMS silencieux exécuté sur ta carte SIM. Le Citizen Lab est catégorique : ce ne sont pas des bugs logiciels, mais des défauts inhérents à la conception même des télécoms mondiales.&lt;/p&gt;
&lt;p&gt;Une précision qui change tout : en général, ce n’est pas ton opérateur qui vend ta position. Il faut distinguer deux marchés. Le premier existe bel et bien : aux États-Unis, les grands opérateurs ont revendu la localisation de leurs abonnés à des courtiers de données, ce qui a valu près de 200 millions de dollars d’amendes de la FCC en 2024.&lt;/p&gt;
&lt;p&gt;Le second, le cœur de ce radar, est différent : des sociétés de surveillance comme Rayzone, Circles ou Cognyte exploitent les failles d’interconnexion en louant des points d’accès légitimes au réseau mondial, le « Global Title leasing », souvent via un petit opérateur complice. Elles interrogent à distance le réseau de ta cible, sans son consentement ni celui de son opérateur.&lt;/p&gt;
&lt;h2 id=&quot;pourquoi-ça-compte-pour-toi&quot;&gt;Pourquoi ça compte pour toi&lt;/h2&gt;
&lt;p&gt;Voilà l’angle qui dérange. Tu peux chiffrer tes messages, durcir ton Mac, fermer chaque réglage de macOS un par un, ta position physique continue de transiter par une infrastructure que tu ne maîtrises pas et sur laquelle Apple n’a aucune prise. Rien à patcher de ce côté, parce que ce n’est pas un trou dans iOS. C’est l’architecture du réseau lui-même.&lt;/p&gt;
&lt;p&gt;Du coup, la plupart des gestes barrière auxquels tu penses ne servent à rien contre ce vecteur précis, et il vaut mieux le savoir que se rassurer à bon compte. Le mode Isolement durcit ton iPhone, il ne touche pas une requête SS7 qui se passe dans le réseau. L’eSIM change le format de la carte, pas le protocole : tant qu’il y a un numéro joignable, l’exposition est identique.&lt;/p&gt;
&lt;p&gt;Signal protège le contenu de tes messages, pas les métadonnées de signalisation qui révèlent où tu es. Couper la data ou le GPS ne change rien non plus, la traque utilise l’identifiant de cellule, pas ta puce. La seule parade individuelle réellement efficace, c’est le mode avion ou le téléphone éteint, autant dire inapplicable au quotidien.&lt;/p&gt;
&lt;p&gt;Deux nuances pour ne pas te vendre de faux remparts. La 2FA par application a une vraie utilité, mais contre un autre risque : l’interception de tes codes par SMS, pas la géolocalisation. Un numéro ou une eSIM dédiés réduisent le lien entre ta position et ton identité réelle, sans rendre ce numéro moins traçable.&lt;/p&gt;
&lt;p&gt;La vraie défense, elle, est structurelle. Elle se joue chez les opérateurs et les régulateurs, avec des pare-feu de signalisation que la GSMA documente dans son guide FS.11. Ta sécurité ici ne dépend pas de toi, mais d’une infrastructure et d’un cadre légal que tu ne contrôles pas.&lt;/p&gt;
&lt;p&gt;Soyons clairs sur le risque réel : pour un particulier lambda, la probabilité d’être ciblé reste faible. Ce sujet compte par ce qu’il révèle, pas par une menace imminente sur ta personne. La souveraineté numérique ne s’arrête pas au bord de ton appareil : tant que tu as une carte SIM, ta position circule dans un réseau mondial faiblement contraint.&lt;/p&gt;
&lt;h2 id=&quot;ce-que-tu-fais-maintenant&quot;&gt;Ce que tu fais maintenant&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; Recalibre tes attentes, c’est le geste le plus utile ici. Garde Signal, le mode Isolement et tes bons réflexes, ils protègent le contenu et l’appareil, mais ne crois pas qu’ils te rendent invisible sur le réseau. Confondre les deux, c’est le piège.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2.&lt;/strong&gt; Pour les codes de connexion, abandonne le SMS et passe à la 2FA par application ou clé matérielle. Ça ne te protège pas de la géoloc, mais ça ferme l’interception des codes via le même réseau, et c’est un risque concret pour tes comptes.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3.&lt;/strong&gt; Si tu as un profil réellement exposé, journaliste, opposant politique ou avocat sur dossier sensible, le seul levier individuel sérieux est la discipline physique : en mode avion ou téléphone éteint, ton appareil n’est plus inscrit au réseau, il n’y a rien à localiser. Tu ne redeviens traçable qu’à la réinscription. Un numéro dédié cloisonne ton identité, mais reste traçable de la même façon.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;4.&lt;/strong&gt; Pour le reste, le vrai chantier n’est pas sur ton bureau. Suis le sujet côté régulateur : NIS2 et ENISA posent un cadre, mais aucune obligation technique forte n’impose encore aux opérateurs de fermer ces failles. C’est là que la pression doit porter.&lt;/p&gt;
&lt;h2 id=&quot;sources&quot;&gt;Sources&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://citizenlab.ca/research/uncovering-global-telecom-exploitation-by-covert-surveillance-actors/&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Bad Connection, Uncovering Global Telecom Exploitation by Covert Surveillance Actors, Citizen Lab, avril 2026&lt;/a&gt; (source primaire)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.enisa.europa.eu/publications/signalling-security-in-telecom-ss7-diameter-5g&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Signalling Security in Telecom SS7/Diameter/5G, ENISA&lt;/a&gt; (protocoles jugés fondamentalement faillis, recommandations UE)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.gsma.com/solutions-and-impact/technologies/security/cybersecurity-knowledge-base/cybersecurity-document-library/&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;FS.11 SS7 Interconnect Security Monitoring and Firewall Guidelines, GSMA&lt;/a&gt; (la référence pare-feu de signalisation, autorégulation industrielle)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.cbsnews.com/news/60-minutes-hacking-your-phone/&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Hacking Your Phone, 60 Minutes, CBS, 2016&lt;/a&gt; (écoute du représentant Ted Lieu via SS7, démonstration sur un élu)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://krebsonsecurity.com/2024/04/fcc-fines-major-u-s-wireless-carriers-for-selling-customer-location-data/&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;FCC Fines Major U.S. Wireless Carriers for Selling Customer Location Data, Krebs on Security, 2024&lt;/a&gt; (le marché distinct des courtiers de données, 200M USD d’amendes)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;Des termes techniques ? &lt;a href=&quot;https://macsouverain.com/glossaire/&quot;&gt;Consulte le glossaire.&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;</content:encoded><dc:creator>Mac Souverain</dc:creator><category>radar</category><category>radar-signal</category><category>surveillance</category><category>telecom</category><category>ss7</category><category>vie-privee</category></item><item><title>Ton IA peut être éteinte par les US, monte la tienne</title><link>https://macsouverain.com/ton-ia-peut-etre-eteinte-monte-la-tienne/</link><guid isPermaLink="true">https://macsouverain.com/ton-ia-peut-etre-eteinte-monte-la-tienne/</guid><description>L&apos;accès aux modèles d&apos;IA de pointe devient un levier géopolitique américain. Voici ce qui tourne en local sur un Mac, de 16 à 32 Go de RAM, et pourquoi c&apos;est ça, ton vrai socle.</description><pubDate>Wed, 17 Jun 2026 13:40:54 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Mise à jour, juillet 2026.&lt;/strong&gt; Fable 5 est de nouveau accessible, la directive a été levée. Ça ne change rien à la thèse, au contraire. Coupé hier, rendu aujourd’hui, par une décision que tu ne tiens pas : c’est exactement ça, dépendre d’un diktat étranger. Ton modèle local, lui, n’a pas besoin qu’on l’autorise.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Tu ouvres ton Mac un matin. Ton outil d’IA habituel refuse de répondre. Pas un bug, pas une panne de serveur. Un message poli t’explique que l’accès n’est plus disponible dans ta région. Tu n’as rien fait de mal. Tu paies ton abonnement. Tu es parfaitement en règle. Mais tu es du mauvais côté d’une frontière, et quelqu’un à Washington a décidé que ça suffisait.&lt;/p&gt;
&lt;p&gt;Ce n’est plus de la science-fiction. En juin 2026, le gouvernement américain a ordonné à Anthropic, par une directive de contrôle à l’export, de suspendre l’accès de tout ressortissant étranger, partout dans le monde et jusqu’à ses propres employés, à ses deux modèles les plus avancés, Mythos 5 et Fable 5.&lt;/p&gt;
&lt;p&gt;Anthropic a dû les débrancher pour l’ensemble de ses clients, et conteste la décision. L’accès à l’intelligence artificielle de frontière est en train de devenir ce que sont déjà le pétrole, les puces et le dollar, &lt;strong&gt;un levier de puissance entre les mains d’un État&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Et toi, tu es au bout du tuyau dont on vient de couper le robinet.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;la-directive-comme-révélateur&quot;&gt;La directive comme révélateur&lt;/h2&gt;
&lt;p&gt;Le réflexe, en lisant ça, c’est de penser géopolitique. Grandes manœuvres, blocs qui s’affrontent, sujets pour éditorialistes. Sauf que la coupure, elle, n’arrive pas à un bloc. Elle arrive à toi, sur ta machine, un mardi matin.&lt;/p&gt;
&lt;p&gt;L’asymétrie est totale. D’un côté, un fournisseur sous juridiction américaine, soumis aux directives de son administration, libre de modifier ses conditions d’accès du jour au lendemain. De l’autre, toi, qui as construit une partie de ta façon de travailler autour de cet outil. Tu n’as aucune prise sur la décision. Tu n’es même pas la cible. Tu es un dommage collatéral d’une politique qui ne te concerne que par ta nationalité, ou ta géolocalisation.&lt;/p&gt;
&lt;p&gt;C’est le point que la directive rend enfin visible : &lt;strong&gt;l’accès à un modèle distant n’a jamais été un acquis technique, c’est une autorisation politique.&lt;/strong&gt; Tant que rien ne bouge, l’autorisation est tacite, invisible, confortable. On finit par la confondre avec un droit. Le jour où elle est retirée, on découvre qu’on ne possédait rien. On louait.&lt;/p&gt;
&lt;p&gt;Pose-toi une seule question. Si on te coupe l’accès du jour au lendemain, qu’est-ce qui continue de tourner ? Si la réponse est « plus rien », tu n’as pas un outil de travail. Tu as une dépendance.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;ce-que-dépendre-dun-modèle-distant-coûte-vraiment&quot;&gt;Ce que dépendre d’un modèle distant coûte vraiment&lt;/h2&gt;
&lt;p&gt;Le modèle distant de frontière est génial. C’est vrai, et le reconnaître n’enlève rien à la suite. Il est plus puissant que tout ce que tu feras tourner chez toi à court terme. Il se met à jour sans que tu lèves le petit doigt. Il ne te demande ni RAM, ni installation, ni maintenance. Pour beaucoup d’usages, c’est l’outil le plus efficace du marché.&lt;/p&gt;
&lt;p&gt;Mais le confort a un prix, et ce prix n’apparaît pas sur la facture.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Chaque requête que tu envoies à un modèle distant, c’est ton texte qui quitte ta machine&lt;/strong&gt;. Tes brouillons, tes notes, tes documents, tes raisonnements en cours. Ils transitent par une infrastructure que tu ne contrôles pas, dans une juridiction qui n’est pas la tienne, soumise à des règles que tu ne votes pas. Le chiffrement en transit protège le tuyau, pas la destination. À l’arrivée, ton texte est lu en clair par la machine qui répond.&lt;/p&gt;
&lt;p&gt;Et puis il y a la dépendance de continuité, celle dont on ne parle jamais avant qu’elle ne morde. Ton accès dépend d’un abonnement, d’une politique tarifaire, d’une décision commerciale, et maintenant d’une directive d’État. Trois leviers que tu ne tiens pas, plus un quatrième que tient un gouvernement étranger, et c’est le plus dangereux. Le jour où l’un d’eux bascule, ton workflow s’arrête. Pas progressivement. D’un coup.&lt;/p&gt;
&lt;p&gt;C’est exactement le piège qu’on décrivait pour le cloud de stockage. Tes fichiers sur le serveur de quelqu’un d’autre, c’est pratique jusqu’au jour où le compte est suspendu. L’IA distante, c’est le même contrat, appliqué à ta façon de penser et de produire.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;À lire : &lt;a href=&quot;https://macsouverain.com/cloud-ordinateur-quelquun-dautre/&quot;&gt;Le cloud, c’est l’ordinateur de quelqu’un d’autre&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&quot;le-réflexe-souverain-la-carte-des-modèles-locaux&quot;&gt;Le réflexe souverain, la carte des modèles locaux&lt;/h2&gt;
&lt;p&gt;Voilà la bonne nouvelle, et elle est plus solide qu’on ne le croit. Faire tourner un modèle d’IA capable, directement sur ton Mac, n’est plus un fantasme de bricoleur. La mémoire unifiée d’Apple Silicon, celle-là même qu’Apple vend pour la fluidité de ses apps, est précisément ce qui rend l’inférence locale possible sur une machine grand public.&lt;/p&gt;
&lt;p&gt;Avant la carte, une règle de budget, parce que tout part de là.&lt;/p&gt;
&lt;p&gt;Première chose, la RAM totale n’est pas la RAM disponible. macOS et tes applications en consomment une partie en permanence. Et derrière le mot « Mac », il y a deux machines très différentes.&lt;/p&gt;
&lt;p&gt;Le Mac mini d’entrée de gamme, le plus répandu, embarque &lt;strong&gt;16 Go de RAM unifiée&lt;/strong&gt;. En comptant 6 à 8 Go pour le système et tes apps, il te reste entre 8 et 10 Go réellement utiles pour l’IA, et encore, en fermant ce qui traîne.&lt;/p&gt;
&lt;p&gt;Une machine à &lt;strong&gt;32 Go&lt;/strong&gt; suit le même principe, mais te laisse une vingtaine de gigas de marge. Dans ce budget utile doivent tenir deux choses en même temps : le &lt;strong&gt;poids&lt;/strong&gt; du modèle (le modèle lui-même) et le &lt;strong&gt;contexte&lt;/strong&gt; (ce que tu lui donnes à lire et ce qu’il génère).&lt;/p&gt;
&lt;p&gt;La règle pratique : ne jamais viser un modèle qui remplit tout le budget utile. Sur 16 Go, ça veut dire un modèle de 4 à 8 Go une fois quantifié. Sur 32 Go, tu peux monter à 14, voire 20 Go. Si tu débordes, la machine bascule sur le disque comme mémoire de secours, et là, ça rame, ou alors ça plante complètement.&lt;/p&gt;
&lt;p&gt;Voici donc la carte de ce qui tourne, du plus accessible au plus gourmand.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ce qu’un Mac à 16 Go fait déjà tourner.&lt;/strong&gt; C’est le socle accessible, et il couvre l’essentiel de ton volume quotidien.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pour le travail léger&lt;/strong&gt;, trier des emails, classer des notes, extraire ou anonymiser un texte, de tout petits modèles de 2 à 3 Go suffisent largement : Llama 3.2 3B, Gemma 3 4B, Phi-4-mini.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pour le travail général&lt;/strong&gt;, résumer un document, rédiger un brouillon, gérer ta correspondance, interroger ta propre base de notes, un modèle de 7 à 8 milliards de paramètres autour de 5 Go fait le job : Qwen2.5 7B, sous licence Apache 2.0, ou Llama 3.1 8B. C’est le cheval de trait d’un 16 Go.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pour lire un PDF scanné ou une facture&lt;/strong&gt; sans l’envoyer ailleurs, Qwen2.5-VL 7B (autour de 5 Go) ou Llama 3.2 Vision 11B passent aussi. Le plafond, c’est un modèle de 12 à 14 milliards de paramètres en quantification serrée, autour de 8 à 9 Go, comme Qwen2.5 14B : il passe, mais en fermant le reste et avec un contexte court.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Sur ces tâches répétitives et cadrées, le local ne se contente pas de faire le job, il le fait mieux&lt;/strong&gt; : zéro latence réseau, zéro requête facturée, et tes données ne bougent pas d’un millimètre.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ce que 32 Go débloque en plus.&lt;/strong&gt; Le passage à 32 Go n’est pas un luxe, c’est ce qui ouvre la catégorie au-dessus.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pour la rédaction soutenue et l’analyse&lt;/strong&gt; de longs documents, Mistral Small 3, un modèle de 24 milliards de paramètres, tient autour de 14 Go en version quantifiée et il est sous licence Apache 2.0, donc vraiment libre. Gemma 3 27B tourne autour de 16 Go.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pour le raisonnement multi-étapes&lt;/strong&gt;, les modèles de 32 milliards de paramètres passent en serrant un peu : QwQ 32B, DeepSeek-R1-distill 32B ou Qwen2.5 32B occupent 19 à 20 Go en quantification Q4. Le contexte devient serré, et sur les raisonnements les plus exigeants, l’écart avec un modèle de frontière reste réel. Le local fait beaucoup. Il ne fait pas encore tout.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Côté code&lt;/strong&gt;, Qwen2.5-Coder 32B atteint une quasi-parité avec les modèles distants pour la programmation du quotidien, compléter, expliquer, déboguer, refactoriser.&lt;/p&gt;
&lt;p&gt;Et ce qui ne passe ni sur 16 ni sur 32 Go. Les très gros modèles, Llama 3.3 70B, les modèles à 405 milliards de paramètres, DeepSeek-R1 en version complète, exigent 64 Go de RAM ou plus. Inutile de prétendre le contraire.&lt;/p&gt;
&lt;p&gt;Maintenant, la souveraineté ne se résume pas à la capacité brute. Deux autres axes comptent.&lt;/p&gt;
&lt;p&gt;Le premier, c’est la provenance. Mistral est français et européen, ce qui en fait le choix souverain naturel pour un lecteur européen. Llama, Gemma et Phi sont américains. Qwen et DeepSeek sont chinois.&lt;/p&gt;
&lt;p&gt;Une nuance s’impose ici, et elle est importante : comme les modèles tournent en local, &lt;strong&gt;aucune donnée ne sort de ta machine, quelle que soit l’origine du modèle.&lt;/strong&gt; La provenance ne joue donc pas sur l’exfiltration des données, elle joue sur la confiance, l’auditabilité, et sur le fait de ne pas mettre tous ses œufs dans un seul panier géopolitique.&lt;/p&gt;
&lt;p&gt;Faire tourner un modèle chinois en local n’envoie rien à Pékin. Choisir un modèle européen, c’est arbitrer sur l’écosystème qu’on soutient et sur ce qu’on peut inspecter, pas sur un risque de fuite.&lt;/p&gt;
&lt;p&gt;Le second axe, c’est &lt;strong&gt;la licence&lt;/strong&gt;. Tous les modèles « ouverts » ne se valent pas juridiquement. Mistral Small 3 et plusieurs Qwen sont sous Apache 2.0, une licence permissive qui te laisse vraiment libre, y compris pour un usage professionnel.&lt;/p&gt;
&lt;p&gt;La licence communautaire de Llama est utilisable, mais assortie de restrictions. Pour un socle souverain, la licence libre n’est pas un détail de juriste, c’est la garantie que personne ne peut changer les règles sous tes pieds.&lt;/p&gt;
&lt;p&gt;Mon pick souverain par défaut, en cohérence avec tout ça. Sur un 16 Go, un 7-8B fait déjà tourner l’essentiel : Qwen2.5 7B (Apache 2.0) en premier choix, ou Llama 3.1 8B. Sur un 32 Go, tu passes à &lt;strong&gt;Mistral Small 3&lt;/strong&gt; comme bête de somme quotidienne (européen, Apache 2.0), épaulé par un modèle de raisonnement 32B, QwQ ou DeepSeek-R1-distill, qu’on sort pour les analyses plus dures. Pour les faire tourner, trois outils suffisent : Ollama et LM Studio pour la simplicité, MLX pour qui veut exploiter au mieux Apple Silicon.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;À lire : &lt;a href=&quot;https://macsouverain.com/38-apple-intelligence-ce-qui-sort-de-ton-mac/&quot;&gt;Apple Intelligence, ce qui sort vraiment de ton Mac&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&quot;le-seuil-réaliste-ce-que-le-local-fait-bien&quot;&gt;Le seuil réaliste, ce que le local fait bien&lt;/h2&gt;
&lt;p&gt;Il ne s’agit pas de claquer la porte au cloud pour le plaisir. Il s’agit de savoir ce qui doit vivre chez toi, et ce qui peut, éventuellement, sortir.&lt;/p&gt;
&lt;p&gt;Le local fait très bien tout ce qui est répétitif, sensible, ou simplement quotidien. Trier, résumer, rédiger, corriger, classer, anonymiser, lire tes propres documents. Pour cette part-là de ton travail, qui est l’essentiel du volume, tu n’as besoin de personne. Ça tourne sans connexion, sans facture par requête, sans qu’une ligne de ton texte quitte ta machine.&lt;/p&gt;
&lt;p&gt;Le cloud de frontière reste gagnant pour le sommet de la pyramide, le raisonnement le plus complexe, le problème inédit où chaque point de performance compte. Mais un appoint reste un appoint. &lt;strong&gt;On n’adosse pas son travail courant à un robinet qu’un tiers peut fermer.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;La bonne posture n’est pas « tout local » ou « tout cloud ». C’est le &lt;strong&gt;cloisonnement&lt;/strong&gt;. Le local devient ta base, ce qui tourne par défaut, ce sur quoi repose ton travail courant et tout ce qui touche à des données sensibles.&lt;/p&gt;
&lt;p&gt;Le cloud devient un appoint conscient, qu’on sollicite pour un usage précis, en sachant ce qu’on lui envoie et en n’y mettant jamais ce qui ne doit pas sortir. Le jour où on te coupe l’accès cloud, tu perds un appoint. Tu ne perds pas ton socle.&lt;/p&gt;
&lt;p&gt;C’est là que l’argument boucle. Si tu lis ces lignes sur un Mac récent, tu es déjà en Apple Silicon. La mémoire unifiée qui fait tourner ces modèles, tu l’as déjà payée. Ce passage au local n’attend pas un investissement, ni une nouvelle machine, ni une compétence d’ingénieur. Il attend une décision.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;La souveraineté en matière d’IA ne se mesure pas à la puissance du modèle que tu loues. Elle se mesure à ce qui continue de tourner le matin où on te coupe l’accès.&lt;/strong&gt; Le modèle distant, c’est du confort, et de la puissance quand une tâche l’exige.&lt;/p&gt;
&lt;p&gt;Ton socle IA, c’est ce qui vit sur ta machine. Installe-en un. Fais-le tourner une fois, sur une vraie tâche, pour voir. Tu sauras alors, concrètement, ce qui te reste quand on ferme le robinet.&lt;/p&gt;
&lt;p&gt;Reste la question la plus terre à terre : comment on installe tout ça, concrètement ? C’est l’objet du prochain article, étape par étape, du téléchargement au premier prompt, sans ligne de commande indigeste.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;À lire bientôt : Installer et faire tourner ton premier modèle local sur Mac, le guide pas à pas&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&quot;sources&quot;&gt;Sources&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Le déclencheur, directive US et Anthropic&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.anthropic.com/news/fable-mythos-access&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Anthropic, Statement on the US government directive to suspend access to Fable 5 and Mythos 5&lt;/a&gt;, la déclaration officielle, Anthropic applique l’ordre d’export tout en le contestant (12 juin 2026).&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://techcrunch.com/2026/06/12/anthropics-safety-warnings-may-have-just-backfired-the-government-has-pulled-the-plug-on-its-most-powerful-ai/&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;TechCrunch, Anthropic’s safety warnings may have just backfired&lt;/a&gt;, le débranchement mondial de Fable 5 et Mythos 5 (12 juin 2026).&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.theregister.com/ai-and-ml/2026/06/15/us-clampdown-on-anthropic-models-sends-eu-sovereignty-surge-into-overdrive/5255487&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;The Register, US clampdown on Anthropic models sends EU sovereignty surge into overdrive&lt;/a&gt;, comment la coupure accélère la bascule souveraine de l’Europe, l’angle même de cet article (15 juin 2026).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Modèles open-weight cités&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://mistral.ai/news/mistral-small-3&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Mistral AI, Mistral Small 3&lt;/a&gt;, le 24B Apache 2.0, pick souverain européen (30 janvier 2025).&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://qwenlm.github.io/blog/qwen2.5/&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Qwen, Qwen2.5&lt;/a&gt;, la famille Qwen2.5, variantes 7B sous Apache 2.0.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.llama.com/llama3_1/license/&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Meta, Llama 3.1 Community License&lt;/a&gt;, licence permissive mais assortie de restrictions.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Exécution locale sur Apple Silicon&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://ollama.com&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Ollama&lt;/a&gt;, faire tourner des modèles en local, données qui ne quittent pas la machine.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://lmstudio.ai&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;LM Studio&lt;/a&gt;, app de bureau pour exécuter des LLM en privé, support MLX sur Mac.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/ml-explore/mlx&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Apple, MLX&lt;/a&gt;, le framework optimisé pour la mémoire unifiée d’Apple Silicon.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;Des termes techniques ? &lt;a href=&quot;https://macsouverain.com/glossaire/&quot;&gt;Consulte le glossaire.&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;</content:encoded><dc:creator>Mac Souverain</dc:creator><category>ia</category><category>souverainete</category><category>modele-local</category><category>macos</category><category>apple-silicon</category><category>tutoriel</category><enclosure url="https://macsouverain.com/content/images/2026/07/feature-ton-ia-peut-etre-eteinte-monte-la-tienne.png" length="0" type="image/png"/></item><item><title>Le socle de ton SIEM souverain, un VPS durci hors CLOUD Act</title><link>https://macsouverain.com/vps-durci-socle-siem-souverain/</link><guid isPermaLink="true">https://macsouverain.com/vps-durci-socle-siem-souverain/</guid><description>Épisode 1 de la série SIEM souverain. Un VPS européen hors CLOUD Act, SSH durci, surface d&apos;attaque réduite via Tailscale, sauvegardes chiffrées hors-site.</description><pubDate>Fri, 12 Jun 2026 06:11:45 GMT</pubDate><content:encoded>&lt;p&gt;Avant de détecter quoi que ce soit, &lt;strong&gt;il te faut un endroit où installer ton SIEM&lt;/strong&gt;. Une machine. Pas n’importe laquelle, pas configurée n’importe comment.&lt;/p&gt;
&lt;p&gt;Dans &lt;a href=&quot;https://macsouverain.com/nis2-splunk-pourquoi-pme-siem-souverain/&quot;&gt;l’épisode d’ouverture&lt;/a&gt;, on a posé le pourquoi. &lt;strong&gt;RGPD t’oblige déjà à détecter une violation et à la notifier en 72 heures&lt;/strong&gt;, NIS2 a élargi le filet, et ce n’est pas fini. Le SaaS américain fait le boulot mais livre tes journaux les plus sensibles, sur simple demande administrative du gouvernement US. Tout cela est extrêmement défavorable à tes intérêts, tu en conviendras.&lt;/p&gt;
&lt;p&gt;Alors comment résoudre ce dilemme ? La conclusion est simple, tu montes ton propre SIEM, conforme RGPD et NIS2, sur une infrastructure que tu contrôles totalement.&lt;/p&gt;
&lt;p&gt;Cet article-là, c’est la première brique. Le socle.&lt;/p&gt;
&lt;p&gt;Tout le reste de la série va s’empiler dessus. Wazuh à l’épisode 2, les agents à l’épisode 3, la défense réseau, le filtre mail, le contrôle d’exécution. Si le socle est bancal, toute la pile est bancale. Un SIEM qui surveille ton parc mais qui tourne sur une machine elle-même percée, c’est une caméra de surveillance branchée sur une porte grande ouverte.&lt;/p&gt;
&lt;p&gt;Cette stack que je te recommande, je l’utilise au quotidien. Je vais te montrer comment monter ton socle, dans l’ordre, avec les commandes réelles. Tu peux le reproduire aujourd’hui.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;choisir-lhébergeur-la-juridiction-avant-le-reste&quot;&gt;Choisir l’hébergeur, la juridiction avant le reste&lt;/h2&gt;
&lt;p&gt;Première décision, et c’est la plus structurante. &lt;strong&gt;Où va vivre ta machine&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;La tentation, c’est d’aller au moins cher ou au plus connu. AWS, Google Cloud, Azure. Ils sont excellents techniquement. Et ils sont tous de nationalité américaine, donc soumis au CLOUD Act, cette magnifique loi de 2018 qui permet aux autorités US de réquisitionner les données d’un fournisseur américain, où qu’elles soient stockées dans le monde, datacenter européen compris.&lt;/p&gt;
&lt;p&gt;Mettre les journaux de sécurité de ton SI là-dedans, c’est exactement le problème qu’on essaie de résoudre depuis le départ. Pour être raccord, ce qu’on cherche, c’est donc un hébergeur dont le siège, les serveurs et le capital échappent à cette exception US.&lt;/p&gt;
&lt;p&gt;Trois critères à vraiment considérer, je te les donne.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;La juridiction du siège social.&lt;/strong&gt; Une entreprise européenne sans société mère américaine n’est pas soumise au CLOUD Act. Suisse, Allemagne, France, etc. La nuance, c’est la filiale, un hébergeur européen qui a ouvert une entité aux États-Unis expose au CLOUD Act les ressources hébergées dans cette filiale. Le siège ne suffit pas, il faut regarder où vivent physiquement tes données.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;La localisation des datacenters.&lt;/strong&gt; Tes logs doivent rester sur des serveurs européens, point. Pas de réplication transatlantique « pour ta disponibilité ».&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Le prix, en dernier.&lt;/strong&gt; Un VPS pour démarrer un SIEM PME coûte entre 5 et 25 euros par mois. À ce niveau, l’écart de prix entre les opérateurs souverains est marginal. Tu ne choisis pas ton hébergeur de sécurité au centime près.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Concrètement, deux noms reviennent quand on croise ces critères.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://www.infomaniak.com/fr/hebergement/vps-cloud&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Infomaniak&lt;/a&gt;&lt;/strong&gt;, &lt;strong&gt;hébergeur suisse&lt;/strong&gt; basé à Genève, détenu à 100 % par ses fondateurs et ses salariés, sans fonds d’investissement extérieur. Serveurs exclusivement en Suisse, sous nLPD, la loi fédérale suisse de protection des données entrée en vigueur en septembre 2023, alignée sur le RGPD et reconnue par décision d’adéquation européenne.&lt;/p&gt;
&lt;p&gt;Pas de filiale américaine, hors CLOUD Act par construction, hors 5eyes, donc sans coopération étendue avec les renseignements US. En Suisse toutes les demandes de communication doivent passer par la Justice, une des juridictions les plus protectrices au monde.&lt;/p&gt;
&lt;p&gt;Leurs datacenters sont certifiés ISO 27001 et ISO 50001. C’est l’opérateur que j’utilise, sur leur gamme VPS Cloud, mais l’entrée de gamme VPS Lite peut largement suffire pour démarrer.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://www.hetzner.com/cloud/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Hetzner&lt;/a&gt;&lt;/strong&gt;, &lt;strong&gt;hébergeur allemand&lt;/strong&gt; familial fondé en 1997, rapport performance/prix imbattable en Europe, avec une gamme cloud ARM à 4,49 euros HT par mois, environ 5,40 euros TTC, au tarif du jour où j’écris ces lignes. Excellent choix, à une condition. Hetzner a ouvert des datacenters aux États-Unis en 2021, puis à Singapour en 2023. Tu dois donc provisionner ta machine exclusivement sur leurs sites européens, Falkenstein, Nuremberg ou Helsinki, pour rester hors CLOUD Act.&lt;/p&gt;
&lt;p&gt;Deux réserves honnêtes en plus, l’interface et le support sont en anglais et en allemand uniquement, et Hetzner suspend parfois les comptes jugés à risque, sans avertissement. Rien de bloquant pour un usage SIEM légitime, mais autant le savoir.&lt;/p&gt;
&lt;p&gt;Pour ce guide, je pars sur Infomaniak. La logique est identique chez Hetzner, seuls les noms d’interface changent.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;À lire bientôt : choisir son hébergeur souverain, le comparatif complet&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&quot;dimensionner-la-machine-ni-trop-ni-trop-peu&quot;&gt;Dimensionner la machine, ni trop, ni trop peu&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://documentation.wazuh.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Wazuh&lt;/a&gt;, qu’on installera à l’épisode 2, n’est pas léger. Il embarque un manager, un indexeur de logs et un tableau de bord. L’indexeur, en particulier, aime la mémoire vive.&lt;/p&gt;
&lt;p&gt;Pour une PME jusqu’à une cinquantaine de machines surveillées, le bon point de départ tient en trois chiffres.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;4 vCPU&lt;/strong&gt;, pour absorber l’indexation et les corrélations de règles sans saturer.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;8 Go de RAM&lt;/strong&gt;, le minimum sérieux pour l’indexeur Wazuh. En dessous, il rame ou s’arrête. C’est le critère qui compte le plus. &lt;strong&gt;Je recommande 12 Go&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;100 à 250 Go de SSD&lt;/strong&gt;, selon la rétention de logs que tu veux. Plus tu gardes de mois d’historique, plus il te faut d’espace. NIS2 et RGPD raisonnent en mois, prévois large.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Un VPS de ce calibre tourne autour de 15 à 30 euros par mois chez un opérateur souverain. Tu peux démarrer plus petit pour tester, mais ne descends pas sous 8 Go de RAM si tu comptes faire tourner Wazuh dessus pour de vrai.&lt;/p&gt;
&lt;p&gt;Côté système, prends une distribution Linux à support long. &lt;strong&gt;&lt;a href=&quot;https://ubuntu.com/server&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Ubuntu Server LTS&lt;/a&gt;&lt;/strong&gt; ou &lt;strong&gt;&lt;a href=&quot;https://www.debian.org/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Debian stable&lt;/a&gt;&lt;/strong&gt;. Les deux sont documentées partout, supportées des années, et c’est ce sur quoi la communauté Wazuh teste en priorité. J’utilise Ubuntu Server LTS, c’est ce que j’emploierai dans les commandes qui suivent.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;le-premier-contact-et-le-premier-durcissement&quot;&gt;Le premier contact, et le premier durcissement&lt;/h2&gt;
&lt;p&gt;Tu viens de commander ta machine. L’hébergeur t’envoie une adresse IP, un identifiant &lt;code&gt;root&lt;/code&gt; et un mot de passe. C’est le moment le plus exposé de toute la vie du serveur, un &lt;code&gt;root&lt;/code&gt; accessible par mot de passe sur une IP publique, c’est précisément ce que les bots scannent en permanence.&lt;/p&gt;
&lt;p&gt;Une précision avant de plonger. Un serveur, ça s’administre en ligne de commande, pas d’interface graphique ni de souris, le Terminal est ton seul cockpit. Rien d’intimidant, chaque commande de ce guide est courte et expliquée ligne à ligne.&lt;/p&gt;
&lt;p&gt;La première session de connexion sert à fermer cette porte. Dans l’ordre.&lt;/p&gt;
&lt;h3 id=&quot;créer-un-utilisateur-non-root&quot;&gt;Créer un utilisateur non-root&lt;/h3&gt;
&lt;p&gt;Travailler en &lt;code&gt;root&lt;/code&gt; au quotidien, c’est conduire sans ceinture. La moindre erreur de commande s’exécute avec les pleins pouvoirs. On crée un utilisateur dédié, à qui on donne le droit d’élever ses privilèges quand c’est nécessaire, via &lt;code&gt;sudo&lt;/code&gt;.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;adduser&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; mack&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;usermod&lt;/span&gt;&lt;span style=&quot;color:#005CC5&quot;&gt; -aG&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; sudo&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; mack&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Le premier &lt;code&gt;adduser&lt;/code&gt; crée le compte et demande un mot de passe. Le second l’ajoute au groupe &lt;code&gt;sudo&lt;/code&gt;, ce qui l’autorise à exécuter des commandes administrateur en les préfixant de &lt;code&gt;sudo&lt;/code&gt;. À partir de maintenant, tu te connectes avec ce compte, plus jamais en &lt;code&gt;root&lt;/code&gt; directement.&lt;/p&gt;
&lt;h3 id=&quot;passer-à-lauthentification-par-clé&quot;&gt;Passer à l’authentification par clé&lt;/h3&gt;
&lt;p&gt;Un mot de passe se devine, se force par dictionnaire, se vole. Une clé cryptographique, non. On génère une paire de clés sur ta machine locale, on installe la partie publique sur le serveur, et on désactive complètement la connexion par mot de passe.&lt;/p&gt;
&lt;p&gt;Sur ton Mac, dans le Terminal :&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;ssh-keygen&lt;/span&gt;&lt;span style=&quot;color:#005CC5&quot;&gt; -t&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; ed25519&lt;/span&gt;&lt;span style=&quot;color:#005CC5&quot;&gt; -C&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; &quot;ton-commentaire&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;ssh-copy-id&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; mack@IP_DU_SERVEUR&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;La première commande crée la paire de clés, en Ed25519, l’algorithme moderne, court et solide. La seconde copie ta clé publique dans le serveur. Teste ensuite que tu te connectes bien sans mot de passe, &lt;code&gt;ssh mack@IP_DU_SERVEUR&lt;/code&gt;. Si ça marche, on peut couper le reste.&lt;/p&gt;
&lt;h3 id=&quot;verrouiller-ssh&quot;&gt;Verrouiller SSH&lt;/h3&gt;
&lt;p&gt;C’est ici que la surface d’attaque se referme vraiment. On édite la configuration du démon SSH.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; nano&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; /etc/ssh/sshd_config&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Trois lignes à fixer, ce sont les trois qui comptent.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;PermitRootLogin no&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;PasswordAuthentication no&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;PubkeyAuthentication yes&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;PermitRootLogin no&lt;/code&gt; interdit toute connexion directe en &lt;code&gt;root&lt;/code&gt;. &lt;code&gt;PasswordAuthentication no&lt;/code&gt; désactive les mots de passe, seule ta clé ouvre la porte désormais. &lt;code&gt;PubkeyAuthentication yes&lt;/code&gt; confirme qu’on accepte les clés.&lt;/p&gt;
&lt;p&gt;Garde ta session actuelle ouverte, redémarre le service, puis teste une nouvelle connexion dans une seconde fenêtre. Une erreur de configuration SSH, et tu te retrouves verrouillé hors de ta propre machine.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; systemctl&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; restart&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; ssh&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Un piège connu des images cloud, Ubuntu y dépose souvent un fichier &lt;code&gt;/etc/ssh/sshd_config.d/50-cloud-init.conf&lt;/code&gt; contenant &lt;code&gt;PasswordAuthentication yes&lt;/code&gt;, qui écrase ta configuration. Vérifie la valeur réellement appliquée avec &lt;code&gt;sudo sshd -T | grep -i passwordauthentication&lt;/code&gt;, et si elle ressort à &lt;code&gt;yes&lt;/code&gt;, corrige ce fichier-là aussi.&lt;/p&gt;
&lt;p&gt;Trois commandes, trois lignes de config. Tu viens d’éliminer la quasi-totalité des attaques automatisées qui visent SSH. Les bots qui tentent &lt;code&gt;root&lt;/code&gt; par mot de passe frappent maintenant contre un mur.&lt;/p&gt;
&lt;h3 id=&quot;activer-les-mises-à-jour-de-sécurité-automatiques&quot;&gt;Activer les mises à jour de sécurité automatiques&lt;/h3&gt;
&lt;p&gt;Un serveur qu’on n’a pas patché est un serveur vulnérable, et personne ne se connecte tous les matins pour lancer les mises à jour à la main. On automatise les correctifs de sécurité.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; apt&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; update&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt; &amp;#x26;&amp;#x26; &lt;/span&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; apt&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; install&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; unattended-upgrades&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; dpkg-reconfigure&lt;/span&gt;&lt;span style=&quot;color:#005CC5&quot;&gt; --priority=low&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; unattended-upgrades&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Le paquet &lt;a href=&quot;https://wiki.debian.org/UnattendedUpgrades&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;&lt;code&gt;unattended-upgrades&lt;/code&gt;&lt;/a&gt; installe automatiquement les correctifs de sécurité publiés pour ta distribution, sans toucher au reste. Tes failles connues se referment toutes seules, pendant que tu dors.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;la-surface-dattaque-minimale-le-vrai-sujet-souverain&quot;&gt;La surface d’attaque minimale, le vrai sujet souverain&lt;/h2&gt;
&lt;p&gt;Le durcissement SSH, c’est le b.a.-ba. Le saut de niveau, il est ici.&lt;/p&gt;
&lt;p&gt;Le principe directeur tient en une phrase. &lt;strong&gt;Un port qui n’écoute pas ne peut pas être attaqué.&lt;/strong&gt; Chaque service exposé sur une IP publique est une porte, et chaque porte est une cible. La sécurité maximale, ce n’est pas le meilleur cadenas sur chaque porte, c’est de ne pas avoir de porte du tout.&lt;/p&gt;
&lt;p&gt;C’est exactement la logique qu’on a vue pour &lt;a href=&quot;https://macsouverain.com/apple-silicon-et-securite-ce-que-secure-enclave-change-vraiment/&quot;&gt;la Secure Enclave&lt;/a&gt;. Le composant le plus sûr est celui qui refuse de donner accès, pas celui qui le défend bien.&lt;/p&gt;
&lt;h3 id=&quot;le-pare-feu-fermer-par-défaut&quot;&gt;Le pare-feu, fermer par défaut&lt;/h3&gt;
&lt;p&gt;Sur Ubuntu, le pare-feu se gère avec &lt;a href=&quot;https://documentation.ubuntu.com/server/how-to/security/firewalls/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;&lt;code&gt;ufw&lt;/code&gt;&lt;/a&gt;. La bonne posture, c’est l’inversion, on bloque tout, puis on ouvre seulement ce qui doit l’être.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; ufw&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; default&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; deny&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; incoming&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; ufw&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; default&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; allow&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; outgoing&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; ufw&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; allow&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; 22/tcp&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; ufw&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; enable&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;default deny incoming&lt;/code&gt; refuse par principe toute connexion entrante. &lt;code&gt;default allow outgoing&lt;/code&gt; laisse ta machine joindre l’extérieur, pour les mises à jour notamment. On n’ouvre que le port 22, SSH, le strict nécessaire pour administrer la machine. Et on active.&lt;/p&gt;
&lt;p&gt;À ce stade, &lt;strong&gt;ton serveur ne présente plus qu’une seule porte SSH par clé&lt;/strong&gt;. C’est déjà un profil radicalement plus discret que 90 % des VPS en production.&lt;/p&gt;
&lt;h3 id=&quot;tailscale-et-lip-publique-disparaît&quot;&gt;Tailscale, et l’IP publique disparaît&lt;/h3&gt;
&lt;p&gt;On peut faire mieux. Bien mieux. Plutôt que d’ouvrir SSH sur l’IP publique, même par clé, on le retire complètement de la vue d’internet et on l’expose uniquement sur un réseau privé chiffré.&lt;/p&gt;
&lt;p&gt;C’est le rôle de &lt;strong&gt;&lt;a href=&quot;https://tailscale.com/kb/1017/install&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Tailscale&lt;/a&gt;&lt;/strong&gt;. Tailscale crée un &lt;a href=&quot;https://tailscale.com/blog/how-tailscale-works&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;maillage privé&lt;/a&gt; entre tes appareils, par-dessus &lt;a href=&quot;https://www.wireguard.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;WireGuard&lt;/a&gt;, le protocole de tunnel moderne. Tes machines se voient entre elles via des adresses privées, comme si elles étaient sur le même réseau local, alors qu’elles sont éparpillées entre un datacenter suisse, ton bureau et chez toi. Le reste d’internet, lui, ne voit rien.&lt;/p&gt;
&lt;p&gt;Voici le flux concret. Tu installes Tailscale sur le serveur et sur ton Mac. Les deux rejoignent ton réseau privé. Ton Mac obtient une adresse Tailscale, le serveur aussi. Tu te connectes en SSH au serveur via son adresse Tailscale, pas via son IP publique. Et tu refermes le port 22 sur l’IP publique. Désormais, pour atteindre SSH, il faut déjà être membre de ton réseau privé. Un attaquant sur internet ne voit même plus que le port existe.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;curl&lt;/span&gt;&lt;span style=&quot;color:#005CC5&quot;&gt; -fsSL&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; https://tailscale.com/install.sh&lt;/span&gt;&lt;span style=&quot;color:#D73A49&quot;&gt; |&lt;/span&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt; sh&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; tailscale&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; up&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;La commande affiche un lien, tu l’ouvres dans ton navigateur, tu authentifies la machine, elle rejoint ton réseau. Répète sur ton Mac. Récupère l’adresse Tailscale du serveur :&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;tailscale&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; ip&lt;/span&gt;&lt;span style=&quot;color:#005CC5&quot;&gt; -4&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Teste la connexion SSH via cette adresse privée. Une fois que ça marche, on referme le port 22 public :&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; ufw&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; delete&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; allow&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; 22/tcp&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; ufw&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; allow&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; in&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; on&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; tailscale0&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; to&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; any&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; port&lt;/span&gt;&lt;span style=&quot;color:#005CC5&quot;&gt; 22&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; proto&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; tcp&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;La première ligne retire l’ouverture de SSH sur toutes les interfaces. La seconde le rouvre uniquement sur l’interface &lt;code&gt;tailscale0&lt;/code&gt;, ton réseau privé. SSH n’écoute plus que sur le maillage chiffré.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Le résultat, c’est une machine dont la seule porte d’administration est invisible depuis internet&lt;/strong&gt;. Pas verrouillée, invisible. Un scan de ports sur ton IP publique ne révèle rien d’exploitable.&lt;/p&gt;
&lt;p&gt;Pour la suite de la série, c’est aussi par ce maillage que tes agents Wazuh remonteront leurs logs vers le serveur, sans jamais transiter par l’internet ouvert. Le socle réseau qu’on pose aujourd’hui sert toute la pile.&lt;/p&gt;
&lt;h3 id=&quot;et-les-services-qui-doivent-rester-publics&quot;&gt;Et les services qui doivent rester publics ?&lt;/h3&gt;
&lt;p&gt;Tout ne peut pas vivre derrière le réseau privé. Si ton serveur héberge un site web ou un service qui doit être joignable par n’importe qui, ce service-là doit écouter sur l’IP publique. C’est inévitable.&lt;/p&gt;
&lt;p&gt;La règle, alors, n’est pas « zéro port public » mais « zéro port public &lt;strong&gt;inutile&lt;/strong&gt; ». Tu ouvres exactement ce que le service exige, ni plus. Un site web, c’est le port 443 en HTTPS, et le port 80 le temps de renouveler les certificats. Rien d’autre. Tout le reste, administration, bases de données, tableaux de bord internes, reste sur Tailscale.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pour notre socle SIEM,&lt;/strong&gt; à ce stade, la bonne réponse est simple. &lt;strong&gt;Aucun service public&lt;/strong&gt;. Le serveur n’expose rien au monde. Wazuh, qu’on installera ensuite, vit entièrement derrière Tailscale, accessible à toi seul.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;les-sauvegardes-chiffrées-hors-site&quot;&gt;Les sauvegardes, chiffrées hors-site&lt;/h2&gt;
&lt;p&gt;Un serveur durci n’est pas un serveur immortel. Un datacenter peut prendre feu, on l’a vu avec OVH Strasbourg en mars 2021, des clients sans sauvegarde ont tout perdu. Un ransomware peut malgré tout passer sur une de tes machines de prod. Un doigt qui glisse sur une mauvaise commande peut effacer une base.&lt;/p&gt;
&lt;p&gt;La règle est non négociable. &lt;strong&gt;Tes sauvegardes vivent ailleurs que sur la machine qu’elles protègent, et elles sont chiffrées avant de partir.&lt;/strong&gt; Chiffrées par toi, sur ta machine, avant l’envoi. Pas chiffrées par le fournisseur de stockage, par toi. Comme ça, même l’hébergeur du backup ne peut pas lire ce qu’il stocke.&lt;/p&gt;
&lt;p&gt;L’outil que j’utilise, c’est &lt;strong&gt;&lt;a href=&quot;https://kopia.io/docs/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Kopia&lt;/a&gt;&lt;/strong&gt;. Open source, rapide, et il fait exactement ce qu’on veut, chiffrement côté client avant transfert, déduplication pour ne pas exploser ton volume de stockage, et envoi vers un stockage compatible S3.&lt;/p&gt;
&lt;p&gt;Et le stockage hors-site, je le prends chez &lt;strong&gt;&lt;a href=&quot;https://www.infomaniak.com/fr/swiss-backup&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Swiss Backup&lt;/a&gt;&lt;/strong&gt;, l’offre de sauvegarde d’Infomaniak. Même logique de souveraineté que pour le VPS, serveurs suisses, hors CLOUD Act, et un endpoint S3 standard que Kopia consomme directement.&lt;/p&gt;
&lt;p&gt;Le flux, concrètement. Kopia tourne sur ton serveur. Une fois par jour, ou plusieurs, il prend un instantané des dossiers qui comptent, ta configuration système, tes données Wazuh, tes logs.&lt;/p&gt;
&lt;p&gt;Il chiffre cet instantané localement, avec une clé que toi seul détiens. Puis il l’envoie chez Swiss Backup. Le jour où le serveur meurt, tu provisionnes une nouvelle machine, tu réinstalles Kopia, tu pointes vers le dépôt distant avec ta clé, et tu restaures.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;curl&lt;/span&gt;&lt;span style=&quot;color:#005CC5&quot;&gt; -s&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; https://kopia.io/signing-key&lt;/span&gt;&lt;span style=&quot;color:#D73A49&quot;&gt; |&lt;/span&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt; sudo&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; gpg&lt;/span&gt;&lt;span style=&quot;color:#005CC5&quot;&gt; --dearmor&lt;/span&gt;&lt;span style=&quot;color:#005CC5&quot;&gt; -o&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; /usr/share/keyrings/kopia-keyring.gpg&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#005CC5&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; &quot;deb [signed-by=/usr/share/keyrings/kopia-keyring.gpg] http://packages.kopia.io/apt/ stable main&quot;&lt;/span&gt;&lt;span style=&quot;color:#D73A49&quot;&gt; |&lt;/span&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt; sudo&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; tee&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; /etc/apt/sources.list.d/kopia.list&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; apt&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; update&lt;/span&gt;&lt;span style=&quot;color:#24292E&quot;&gt; &amp;#x26;&amp;#x26; &lt;/span&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; apt&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; install&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; kopia&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;kopia&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; repository&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; create&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; s3&lt;/span&gt;&lt;span style=&quot;color:#005CC5&quot;&gt; \&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#005CC5&quot;&gt;  --bucket=TON_BUCKET&lt;/span&gt;&lt;span style=&quot;color:#005CC5&quot;&gt; \&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#005CC5&quot;&gt;  --endpoint=s3.swiss-backup.infomaniak.com&lt;/span&gt;&lt;span style=&quot;color:#005CC5&quot;&gt; \&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#005CC5&quot;&gt;  --access-key=TA_CLE&lt;/span&gt;&lt;span style=&quot;color:#005CC5&quot;&gt; \&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#005CC5&quot;&gt;  --secret-access-key=TON_SECRET&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Les trois premières lignes installent Kopia depuis son dépôt officiel. La dernière commande crée le dépôt chiffré sur le stockage distant, en reprenant l’endpoint exact affiché dans ta console Swiss Backup, il varie selon le cluster qui t’est attribué. Kopia te demande une phrase de passe au moment de la création, c’est la clé de chiffrement de tout ton dépôt. &lt;strong&gt;Note-la ailleurs que sur le serveur.&lt;/strong&gt; Si tu la perds, tes sauvegardes sont définitivement illisibles, y compris pour toi. C’est le prix du chiffrement côté client, et c’est exactement ce qu’on veut.&lt;/p&gt;
&lt;p&gt;Reste à automatiser. On crée un instantané quotidien des dossiers critiques, puis on planifie le tout avec une tâche &lt;code&gt;cron&lt;/code&gt;.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-light&quot; style=&quot;background-color:#fff;color:#24292e; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6F42C1&quot;&gt;kopia&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; snapshot&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; create&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; /etc&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; /home&lt;/span&gt;&lt;span style=&quot;color:#032F62&quot;&gt; /var/log&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Cette commande capture l’instant présent des trois dossiers. Tu la planifies pour qu’elle s’exécute chaque nuit, et tu vérifies de temps en temps que tes instantanés sont bien là avec &lt;code&gt;kopia snapshot list&lt;/code&gt;. Une sauvegarde qu’on ne teste jamais n’est pas une sauvegarde, c’est un espoir. Il faudra donc prévoir trimestriellement une restauration test de tes données.&lt;/p&gt;
&lt;p&gt;Ce socle de sauvegarde servira tout le reste de la série. Chaque brique qu’on ajoutera, Wazuh et ses données, les règles que tu calibreras, sera capturée dans le même instantané chiffré, hors-site, le jour où tu en auras besoin.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;en-résumé&quot;&gt;En résumé&lt;/h2&gt;
&lt;p&gt;Le socle, c’est quatre gestes qui se tiennent.&lt;/p&gt;
&lt;p&gt;Tu as choisi &lt;strong&gt;un hébergeur dont la juridiction te protège&lt;/strong&gt;, pas seulement dont le datacenter est en Europe. &lt;strong&gt;Tu as durci l’accès&lt;/strong&gt;, utilisateur non-root, clé à la place du mot de passe, &lt;code&gt;root&lt;/code&gt; interdit, correctifs automatiques. &lt;strong&gt;Tu as réduit la surface d’attaque à rien&lt;/strong&gt;, pare-feu fermé par défaut, administration repliée derrière un réseau privé chiffré, plus aucune porte inutile face à internet. Et &lt;strong&gt;tu as posé des sauvegardes chiffrées hors-site&lt;/strong&gt;, illisibles pour quiconque n’a pas ta clé, prêtes pour le jour où.&lt;/p&gt;
&lt;p&gt;Aucune de ces étapes n’est compliquée. Prises &lt;strong&gt;ensemble, elles transforment une machine de location en un coffre-fort que tu contrôles&lt;/strong&gt;. C’est l’inverse exact de ce que tu signes chez un SaaS américain, où la donnée est à toi mais l’infrastructure et la juridiction sont à un autre.&lt;/p&gt;
&lt;p&gt;Un après-midi de travail. Pas un week-end.&lt;/p&gt;
&lt;p&gt;Le socle est en place. À l’épisode 2, on remplit le coffre. Wazuh en mode tout-en-un, le manager, l’indexeur et le tableau de bord sur ce seul nœud. L’équivalent fonctionnel d’un Splunk, pour le prix du VPS que tu viens de monter. Ton SIEM commence à exister.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;rappel-de-la-série&quot;&gt;Rappel de la série&lt;/h2&gt;
&lt;p&gt;Sept épisodes pour monter ta plomberie de sécurité souveraine, brique par brique.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://macsouverain.com/nis2-splunk-pourquoi-pme-siem-souverain/&quot;&gt;Épisode 0, le fondement de la série.&lt;/a&gt;&lt;/strong&gt; Pourquoi une PME a besoin d’un SIEM souverain, NIS2, RGPD, et le coût du statu quo.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Épisode 1, le socle.&lt;/strong&gt; Le VPS durci hors CLOUD Act. Tu viens de le lire.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://macsouverain.com/wazuh-tout-en-un-siem-souverain/&quot;&gt;Épisode 2, Wazuh en tout-en-un.&lt;/a&gt;&lt;/strong&gt; Manager, indexeur et tableau de bord sur un seul nœud.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://macsouverain.com/wazuh-agents-parc-siem-souverain/&quot;&gt;Épisode 3, les agents partout.&lt;/a&gt;&lt;/strong&gt; Déploiement sur tes serveurs, Mac et Windows.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://macsouverain.com/crowdsec-premiere-ligne-siem-souverain/&quot;&gt;Épisode 4, la défense réseau communautaire.&lt;/a&gt;&lt;/strong&gt; Bloquer les attaquants connus avant qu’ils n’arrivent.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://macsouverain.com/rspamd-mail-siem-souverain/&quot;&gt;Épisode 5, le filtre mail.&lt;/a&gt;&lt;/strong&gt; Anti-spam et anti-hameçonnage devant ton serveur de messagerie.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://macsouverain.com/santa-controle-execution-mac-siem-souverain/&quot;&gt;Épisode 6, le contrôle d’exécution sur les Mac.&lt;/a&gt;&lt;/strong&gt; Décider quelles applications ont le droit de démarrer.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Épisode 7, alerting et coût total.&lt;/strong&gt; Notifications calibrées et bilan financier honnête face au SaaS.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;Des termes techniques ? &lt;a href=&quot;https://macsouverain.com/glossaire&quot;&gt;Consulte le glossaire.&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;</content:encoded><dc:creator>Mac Souverain</dc:creator><category>ms-pro</category><category>nis2</category><category>siem</category><category>vps</category><category>securite</category><category>tutoriel</category><enclosure url="https://macsouverain.com/content/images/2026/06/feature-vps-durci-socle-siem-souverain-1.png" length="0" type="image/png"/></item><item><title>Siri AI bloqué dans l&apos;UE, confidentialité signée Google</title><link>https://macsouverain.com/siri-ai-blocage-ue/</link><guid isPermaLink="true">https://macsouverain.com/siri-ai-blocage-ue/</guid><description>Apple lance Siri AI à la WWDC, mais le bloque sur iPhone et iPad dans l&apos;UE. Une plateforme vendue confidentielle, construite sur Google Gemini. Décryptage.</description><pubDate>Wed, 10 Jun 2026 13:32:51 GMT</pubDate><content:encoded>&lt;div class=&quot;radar-summary&quot;&gt;
&lt;p&gt;&lt;strong&gt;Apple lance Siri AI à la WWDC&lt;/strong&gt;, mais le bloque sur iPhone et iPad dans l’UE au nom du DMA. La Commission répond que c’est le choix d’Apple, pas une obligation. Cerise sur le gâteau, &lt;strong&gt;cette plateforme « confidentielle »&lt;/strong&gt; &lt;strong&gt;s’appuie&lt;/strong&gt; en partie &lt;strong&gt;sur Google Gemini&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ce que ça change pour toi&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; &lt;strong&gt;En Europe, pas de Siri AI sur iPhone ni iPad&lt;/strong&gt;. Mais sans assistant IA cloud, ton appareil est plus sûr : tu perds une fonction, pas une protection.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2.&lt;/strong&gt; &lt;strong&gt;Pour le sensible, reste local&lt;/strong&gt; et active Advanced Data Protection sur iCloud. Pour l’email chiffré, Proton Mail, pas iCloud Mail.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3.&lt;/strong&gt; &lt;strong&gt;Pose-toi la vraie question&lt;/strong&gt; : confier ton assistant le plus intime à une chaîne Apple plus Google, c’est passer d’une garantie technique à une promesse contractuelle.&lt;/p&gt;
&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;Apple a dévoilé Siri AI à la WWDC, sa nouvelle plateforme d’assistant vocal. Deux détails coincent : elle est construite en partie sur Google Gemini, et elle ne sortira pas sur iPhone ni iPad dans l’Union européenne. La confidentialité, version Cupertino, devient un argument de blocage.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;le-fait&quot;&gt;Le fait&lt;/h2&gt;
&lt;p&gt;Le 8 juin 2026, à la WWDC, Apple a présenté Siri AI, la refonte tant attendue de son assistant vocal et la fondation annoncée de sa prochaine génération de produits, y compris de futurs appareils portables. Le cœur de la plateforme repose sur une architecture hybride : les tâches locales tournent sur les modèles maison d’Apple, mais l’intelligence cloud s’appuie sur un modèle Gemini sur-mesure de Google, pour un contrat estimé autour d’un milliard de dollars par an selon plusieurs sources de presse.&lt;/p&gt;
&lt;p&gt;Le hic, c’est la géographie. Apple a annoncé que Siri AI ne sera pas disponible sur iPhone ni iPad dans l’Union européenne avec iOS 27 et iPadOS 27. Les utilisateurs européens y auront accès sur macOS 27 et visionOS 27, mais ni sur iPhone, ni sur iPad, ni sur l’Apple Watch, watchOS 27 dépendant d’un iPhone appairé doté de Siri AI. Apple invoque le Digital Markets Act (DMA) et ses exigences d’interopérabilité, affirmant que les régulateurs ont rejeté ses propositions de mise en conformité, dont un cadre baptisé Trusted System Agent censé ouvrir l’accès aux assistants concurrents tout en préservant ses standards de sécurité.&lt;/p&gt;
&lt;p&gt;La Commission conteste le cadrage. Pour son porte-parole Thomas Regnier, la décision de ne pas déployer Siri AI dans l’UE est « celle d’Apple et d’Apple seule », rien dans le DMA n’empêchant le lancement d’un nouveau produit. Le marché, lui, a tranché à sa manière : l’action Apple a reculé d’environ 2 % le jour de l’annonce, puis de 3 % le lendemain. Note de prudence : iOS 27 et iPadOS 27 sont à ce stade des annonces, pas des builds stables. Le calendrier de sortie comme le périmètre du blocage peuvent encore bouger.&lt;/p&gt;
&lt;h2 id=&quot;pourquoi-ça-compte-pour-toi&quot;&gt;Pourquoi ça compte pour toi&lt;/h2&gt;
&lt;p&gt;Si tu es en Europe, le message est clair : ton iPhone et ton iPad n’auront pas la fonction phare des prochains OS. Avant de pester contre Bruxelles, regarde ce qui se joue vraiment. Apple présente la confidentialité comme la raison pour laquelle elle ne peut pas se plier aux demandes d’interopérabilité.&lt;/p&gt;
&lt;p&gt;La Commission répond que personne n’oblige Apple à brider son produit. Les deux versions ne sont pas symétriques, et le site officiel n’a pas le monopole de la vérité ici, mais une chose est sûre : la confidentialité est devenue un argument de négociation autant qu’une promesse technique.&lt;/p&gt;
&lt;p&gt;L’ironie mérite qu’on s’y arrête. Apple vend Siri AI comme respectueux de ta vie privée, tout en confiant le traitement cloud à Google, c’est-à-dire à l’entreprise dont le modèle économique repose sur l’exploitation des données. Apple jure que son architecture cloisonne tout via son Private Cloud Compute, que Google ne voit rien, que les requêtes sont anonymisées. C’est plausible sur le papier, et Apple a un historique sérieux sur le sujet. Mais tu passes d’une promesse vérifiable, le tout-sur-l’appareil, à une promesse contractuelle, le fait que ton partenaire et son sous-traitant tiennent parole. Ce n’est pas le même niveau de garantie.&lt;/p&gt;
&lt;p&gt;Le fond du dossier dépasse Siri. On assiste à une fragmentation des écosystèmes numériques par juridiction. Une même version d’iOS n’offrira pas les mêmes fonctions à Paris, New York ou Pékin. La souveraineté, pour toi utilisateur, ne se joue plus seulement dans le chiffrement, mais dans le fait que ton appareil dépend désormais d’un bras de fer entre un industriel américain, un régulateur européen et un fournisseur d’IA tiers.&lt;/p&gt;
&lt;h2 id=&quot;ce-que-ça-change-pour-toi&quot;&gt;Ce que ça change pour toi&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; Ne confonds pas absence de Siri AI et perte de confidentialité. Ton iPhone sans assistant IA cloud reste parfaitement fonctionnel, et il est plus sûr. Le « manque » est une fonction, pas une protection en moins.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2.&lt;/strong&gt; Pour les requêtes sensibles, garde le réflexe local. Active Advanced Data Protection sur iCloud (Réglages &gt; Apple Account &gt; iCloud &gt; Protection avancée des données) pour chiffrer tes backups de bout en bout. Rappel : l’ADP ne couvre ni iCloud Mail, ni Contacts, ni Calendrier. Pour l’email réellement chiffré, c’est Proton Mail ou Tuta, par exemple.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3.&lt;/strong&gt; Surveille la suite, sans t’y noyer. Le périmètre du blocage et le calendrier UE bougeront. Ce qui compte n’est pas la date de sortie, mais la question de fond : es-tu prêt à confier ton assistant le plus intime à une chaîne Apple plus Google, sur une promesse contractuelle ?&lt;/p&gt;
&lt;h2 id=&quot;sources&quot;&gt;Sources&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://techcrunch.com/2026/06/08/apples-long-awaited-ai-siri-overhaul-is-finally-here/&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;https://techcrunch.com/2026/06/08/apples-long-awaited-ai-siri-overhaul-is-finally-here/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.bloomberg.com/news/articles/2026-06-08/apple-delays-siri-ai-for-iphone-users-in-eu-says-regulators-refusing-to-engage&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;https://www.bloomberg.com/news/articles/2026-06-08/apple-delays-siri-ai-for-iphone-users-in-eu-says-regulators-refusing-to-engage&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://appleinsider.com/articles/26/06/09/why-apples-new-siri-ai-may-never-come-to-the-eu&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;https://appleinsider.com/articles/26/06/09/why-apples-new-siri-ai-may-never-come-to-the-eu&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.phonearena.com/news/apple-was-simply-unable-to-develop-interoperability-solutions-the-eu-strikes-back_id180994&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;https://www.phonearena.com/news/apple-was-simply-unable-to-develop-interoperability-solutions-the-eu-strikes-back_id180994&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.macrumors.com/guide/wwdc-2026-what-to-expect/&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;https://www.macrumors.com/guide/wwdc-2026-what-to-expect/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;</content:encoded><dc:creator>Mac Souverain</dc:creator><category>radar</category><category>radar-analyse</category><category>apple</category><category>siri</category><category>ia</category><category>dma</category><category>reglementation</category><category>google</category><category>gemini</category><category>confidentialite</category></item><item><title>Certificat OpenAI compromis, mets à jour ChatGPT Mac avant le 12 juin</title><link>https://macsouverain.com/chatgpt-mac-breach/</link><guid isPermaLink="true">https://macsouverain.com/chatgpt-mac-breach/</guid><description>ChatGPT, Codex et Atlas sur Mac, mise à jour obligatoire avant le 12 juin 2026. Certificat OpenAI révoqué après attaque supply-chain npm.</description><pubDate>Sat, 06 Jun 2026 07:58:44 GMT</pubDate><content:encoded>&lt;div class=&quot;radar-summary&quot;&gt;
&lt;p&gt;Si tu utilises ChatGPT, Codex ou Atlas en app native sur ton Mac, tu as jusqu’au &lt;strong&gt;12 juin 2026&lt;/strong&gt; pour mettre à jour. Le certificat de signature d’OpenAI a été compromis via une attaque supply-chain sur npm. Au-delà, ton app refuse de démarrer.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ce que tu dois faire&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; Ouvre ChatGPT.app, Paramètres → À propos. Mise à jour si version ≤ 1.2026.125. Idem Codex App (≤ 26.506.31421), Codex CLI (≤ 0.130.0), Atlas (≤ 1.2026.119.1).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2.&lt;/strong&gt; Téléchargement officiel uniquement, &lt;code&gt;chatgpt.com/download&lt;/code&gt; ou App Store. Pas de miroir, pas de lien partagé.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3.&lt;/strong&gt; iOS, Windows, Android, rien à faire, OpenAI re-signe côté serveur. Mac uniquement.&lt;/p&gt;
&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;Tu utilises ChatGPT, Codex ou Atlas en app native sur ton Mac. Le 12 juin, dans quelques jours, ces apps refusent de démarrer si tu n’as pas mis à jour. Pas un bug, une révocation de certificat suite à une attaque supply-chain. Voilà ce qu’il s’est passé et ce que tu fais.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;le-fait&quot;&gt;Le fait&lt;/h2&gt;
&lt;p&gt;Le 11 mai 2026, en six minutes, un collectif baptisé TeamPCP publie 84 versions piégées de 42 paquets &lt;code&gt;@tanstack/*&lt;/code&gt; sur npm. Deux postes salariés d’OpenAI consomment l’un de ces paquets le soir même. Le malware embarqué, &lt;strong&gt;Mini Shai-Hulud&lt;/strong&gt;, exfiltre des credentials qui ouvrent l’accès à des dépôts internes contenant les outils de signature de code OpenAI. Pas la production, pas les conversations utilisateurs, pas les modèles. Les clés qui servent à prouver à macOS qu’une app vient bien d’OpenAI.&lt;/p&gt;
&lt;p&gt;OpenAI &lt;a href=&quot;https://openai.com/index/our-response-to-the-tanstack-npm-supply-chain-attack/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;a communiqué publiquement&lt;/a&gt; le 13 mai 2026. Le certificat compromis sera &lt;strong&gt;révoqué le 12 juin 2026&lt;/strong&gt;. Côté Apple, ça veut dire que Gatekeeper et la notarisation refuseront toute version signée avec l’ancien certificat. Concrètement, les versions affectées,&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;ChatGPT Desktop&lt;/strong&gt; ≤ 1.2026.125&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Codex App&lt;/strong&gt; ≤ 26.506.31421&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Codex CLI&lt;/strong&gt; ≤ 0.130.0&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Atlas&lt;/strong&gt; (navigateur OpenAI) ≤ 1.2026.119.1&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ne se lanceront plus à partir du 12 juin. iOS et Windows, eux, sont re-signés côté serveur. Pas d’action utilisateur.&lt;/p&gt;
&lt;p&gt;Le code source du worm a été rendu public par TeamPCP le 12 mai, avec un défi criminel de &lt;strong&gt;1 000 dollars&lt;/strong&gt; sur BreachForums pour la plus grosse attaque supply-chain réalisée avec leur outil. Pas une bug bounty défensive, une prime offensive. La référence CVE est &lt;strong&gt;CVE-2026-45321&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id=&quot;pourquoi-ça-compte-pour-toi&quot;&gt;Pourquoi ça compte pour toi&lt;/h2&gt;
&lt;p&gt;Tu n’as rien fait de mal et tu dois quand même agir. C’est l’essence d’une attaque supply-chain. Ton hygiène utilisateur peut être impeccable, si l’éditeur de l’app que tu as installée se fait compromettre quatre étages plus haut, sur une dépendance npm que tu ne sauras jamais nommer, tu hérites du problème. Le certificat compromis, le mécanisme de signature révoqué, l’app qui ne démarre plus, tout ça arrive chez toi sans que tu aies cliqué quoi que ce soit.&lt;/p&gt;
&lt;p&gt;La bonne nouvelle, c’est que le mécanisme de révocation fonctionne. Gatekeeper et la notarisation Apple sont précisément conçus pour ça : empêcher un attaquant d’utiliser un certificat volé pour signer du malware en aval. OpenAI fait son travail en révoquant proprement. Apple fait son travail en bloquant. Le système tient. OpenAI a communiqué publiquement dès la détection, dates précises, versions explicites, sans détour. Ce n’est pas la norme du secteur.&lt;/p&gt;
&lt;p&gt;La mauvaise nouvelle, c’est que ça pose une question doctrinale qui dépasse OpenAI. Une app native sur ton Mac, c’est du code qui tourne en local avec un certificat de confiance, un canal de mise à jour automatique, des permissions système, et tout un réseau de dépendances en amont sur lequel tu n’as aucune visibilité. Quand l’une de ces dépendances se fait piéger, et ça arrive &lt;strong&gt;à toutes&lt;/strong&gt;, le problème descend jusqu’à toi.&lt;/p&gt;
&lt;h2 id=&quot;ce-que-tu-fais-maintenant&quot;&gt;Ce que tu fais maintenant&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; Ouvre &lt;strong&gt;ChatGPT.app&lt;/strong&gt;, va dans &lt;strong&gt;Paramètres → À propos&lt;/strong&gt;. Si tu es en 1.2026.125 ou antérieure, lance la mise à jour. Si rien ne s’affiche, télécharge directement depuis &lt;a href=&quot;https://chatgpt.com/download&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;chatgpt.com/download&lt;/a&gt;. Jamais un miroir, jamais un lien partagé.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2.&lt;/strong&gt; Si tu utilises &lt;strong&gt;Codex App&lt;/strong&gt; ou &lt;strong&gt;Codex CLI&lt;/strong&gt;, même vérification. CLI : &lt;code&gt;codex --version&lt;/code&gt; puis &lt;code&gt;npm update -g @openai/codex&lt;/code&gt; ou réinstall propre. Pour &lt;strong&gt;Atlas&lt;/strong&gt;, mise à jour intégrée.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3.&lt;/strong&gt; Vérifie que macOS est à jour, Gatekeeper renforcé sur Sequoia 15.x et Sonoma 14.7+. Les anciennes versions sont plus laxistes sur la vérification de notarisation au lancement.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;4.&lt;/strong&gt; Profite du créneau pour te poser la question doctrinale : qu’est-ce que l’app ChatGPT native t’apporte vraiment que &lt;a href=&quot;https://chatgpt.com&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;chatgpt.com dans Safari&lt;/a&gt; ne t’apporte pas ? Dictée système, raccourcis clavier, intégration spotlight, OK. Si tu ne te sers d’aucun des trois, le navigateur réduit ta surface d’attaque. Pas de certificat de signature à gérer, pas de mise à jour silencieuse, pas de code persistant en local. Le réflexe vaut pour &lt;strong&gt;Claude Desktop&lt;/strong&gt;, &lt;strong&gt;Perplexity&lt;/strong&gt;, &lt;strong&gt;Mistral Le Chat&lt;/strong&gt; et toutes les apps IA tierces que tu as installées sans trop savoir pourquoi. Une app native sur ton Mac, c’est une dette de sécurité. Parfois justifiée, parfois pas.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;À lire aussi, &lt;a href=&quot;https://macsouverain.com/anthropic-mcp-rce-design-flaw-avril-2026/&quot;&gt;Anthropic MCP, faille de design qui ouvre RCE&lt;/a&gt;. Même logique, code IA tiers qui descend en exécution locale dangereuse.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;sources&quot;&gt;Sources&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://openai.com/index/our-response-to-the-tanstack-npm-supply-chain-attack/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;OpenAI, Our response to the TanStack npm supply chain attack&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://9to5mac.com/2026/06/02/psa-a-security-breach-means-you-must-update-the-chatgpt-mac-app/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;9to5Mac, PSA, you must update the ChatGPT Mac app&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://thehackernews.com/2026/05/tanstack-supply-chain-attack-hits-two.html&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;The Hacker News, TanStack supply chain attack hits two OpenAI employees&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.tenable.com/blog/mini-shai-hulud-frequently-asked-questions&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Tenable, Mini Shai-Hulud CVE-2026-45321 FAQ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://tanstack.com/blog/npm-supply-chain-compromise-postmortem&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;TanStack, postmortem npm supply-chain compromise&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.zataz.com/openai-change-ses-certificats-apres-le-hack-tanstack/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;ZATAZ, OpenAI change ses certificats après le hack TanStack&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;</content:encoded><dc:creator>Mac Souverain</dc:creator><category>radar</category><category>radar-alerte</category><category>openai</category><category>chatgpt</category><category>supply-chain</category><category>code-signing</category><category>macos</category><category>ia</category><category>cybersec</category></item><item><title>Monte ton SIEM PME souverain, conformité RGPD/NIS2 sans CLOUD Act</title><link>https://macsouverain.com/nis2-splunk-pourquoi-pme-siem-souverain/</link><guid isPermaLink="true">https://macsouverain.com/nis2-splunk-pourquoi-pme-siem-souverain/</guid><description>RGPD t&apos;oblige déjà à détecter une violation en 72 h. NIS2 vient d&apos;élargir le filet × 30. Monter ton SIEM aujourd&apos;hui, c&apos;est la sécu maintenant et la conformité amortie avant qu&apos;elle te tombe dessus.</description><pubDate>Fri, 05 Jun 2026 12:00:56 GMT</pubDate><content:encoded>&lt;p&gt;Tu n’as pas de SIEM. Tu te dis que ce n’est pas pour toi, que ta PME est trop petite ou hors secteur régulé, donc sous le radar des grandes obligations cyber. Tu te trompes sur deux temps.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Maintenant, RGPD.&lt;/strong&gt; Depuis 2018, toute entreprise qui traite des données personnelles doit notifier la CNIL d’une violation sous &lt;strong&gt;72 heures&lt;/strong&gt;. C’est l’article 33. Pas une recommandation, une obligation. Notifier en 72 heures, ça veut dire que tu sais qu’il s’est produit quelque chose, que tu peux le caractériser, que tu disposes des journaux pour remonter la chaîne. Sans un système qui centralise tes logs et lève des alertes, cette obligation est inapplicable. Tu es en infraction la première fois qu’un ransomware passe.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Demain, l’élargissement.&lt;/strong&gt; NIS2 vient de multiplier par trente le nombre d’entités françaises soumises à des obligations cyber renforcées, de 500 à environ 15 000. DORA est applicable depuis janvier 2025 pour le secteur financier élargi, sous-traitants compris. Le Cyber Resilience Act s’applique pleinement à partir de décembre 2027 à tout produit avec composant numérique vendu en UE. NIS3 n’est pas votée, le calendrier indicatif vise la fin 2027. Mais la trajectoire est lisible, tous les deux à trois ans le filet s’élargit. Parier que ta PME restera hors champ en 2028 ou 2029, c’est parier contre Bruxelles et contre la jurisprudence RGPD qui n’a cessé de durcir.&lt;/p&gt;
&lt;p&gt;Le mot qui revient dans tous ces textes, c’est SIEM, pour &lt;strong&gt;Security Information and Event Management&lt;/strong&gt;, gestion centralisée des événements de sécurité. Ils ne le nomment jamais, mais ils te le rendent impossible à éviter. Détecter un incident, conserver des journaux exploitables, notifier le régulateur dans des délais courts, ce sont les fonctions d’un SIEM.&lt;/p&gt;
&lt;p&gt;Et c’est quoi, concrètement, un SIEM ? Imagine la vidéosurveillance de ton magasin, mais pour ton informatique. Chaque serveur, chaque pare-feu, chaque poste de travail, chaque boîte mail produit en permanence un journal de ce qui s’y passe. Qui s’est connecté, à quelle heure, depuis où, quel fichier a été ouvert, quel processus a démarré.&lt;/p&gt;
&lt;p&gt;Un SIEM, c’est le système qui ramène tous ces journaux au même endroit, les conserve plusieurs mois, et lève une alerte quand il détecte un comportement suspect.&lt;/p&gt;
&lt;p&gt;Un compte qui se connecte à 3 heures du matin depuis le Pakistan, dix mille fichiers chiffrés en deux minutes, une rafale d’échecs de mot de passe sur le compte du dirigeant, ce sont des signaux qu’un humain ne verra jamais à l’œil nu sur un parc de cinquante machines.&lt;/p&gt;
&lt;p&gt;Le SIEM les voit, les recoupe, et te prévient. Derrière ce sigle de consultant se cache un assemblage très concret, qu’on démonte plus loin dans cet article.&lt;/p&gt;
&lt;p&gt;Le problème, c’est ce qu’on te vend aujourd’hui sous ce nom. &lt;a href=&quot;https://www.splunk.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;&lt;strong&gt;Splunk&lt;/strong&gt;&lt;/a&gt;, &lt;a href=&quot;https://learn.microsoft.com/azure/sentinel/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;&lt;strong&gt;Microsoft Sentinel&lt;/strong&gt;&lt;/a&gt;, &lt;a href=&quot;https://www.crowdstrike.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;&lt;strong&gt;CrowdStrike&lt;/strong&gt;&lt;/a&gt;. Sur le ticket d’entrée d’une PME modeste, les tarifs paraissent accessibles, mais la facture grimpe avec chaque gigaoctet et chaque poste, on fait les comptes complets en fin de série. Et le prix n’est même pas le pire. Ces produits stockent tes journaux d’incident dans une juridiction qui n’est pas la tienne, sous CLOUD Act. La vraie question, c’est qui détient tes données les plus sensibles.&lt;/p&gt;
&lt;p&gt;Il existe un troisième chemin. Le souverain. C’est celui de cette série d’articles.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;nis2-en-cinq-minutes-et-pourquoi-ça-te-concerne-même-hors-périmètre&quot;&gt;NIS2 en cinq minutes, et pourquoi ça te concerne même hors périmètre&lt;/h2&gt;
&lt;p&gt;NIS2, c’est la directive européenne sur la sécurité des réseaux et des systèmes d’information, qui remplace NIS1. NIS1 concernait environ 500 entités françaises. NIS2 en concerne &lt;strong&gt;autour de 15 000&lt;/strong&gt;, réparties sur dix-huit secteurs. La santé, l’énergie, les transports, le numérique, les services financiers, l’agroalimentaire, les déchets, la fabrication. Si ton entreprise dépasse &lt;strong&gt;50 salariés ou 10 millions d’euros de chiffre d’affaires&lt;/strong&gt; dans l’un de ces secteurs, tu es directement concerné. Probablement comme « entité importante », parfois comme « entité essentielle » selon ta taille et ta criticité.&lt;/p&gt;
&lt;p&gt;Si tu es plus petit ou hors secteur listé, tu n’es pas pour autant tranquille. &lt;strong&gt;Deux mécanismes te rattrapent.&lt;/strong&gt; D’abord la chaîne d’approvisionnement, l’article 21 oblige les entités NIS2 à évaluer la cyber-résilience de leurs sous-traitants. Si tu vends du service ou du logiciel à une PME de 60 personnes dans la santé ou la finance, elle va te demander tes preuves. Pas de SIEM, pas de contrat. Ensuite la trajectoire réglementaire elle-même, NIS3 est en préparation à la Commission, le périmètre s’élargit toujours d’une révision à l’autre.&lt;/p&gt;
&lt;p&gt;Le cœur du dispositif, c’est &lt;strong&gt;l’article 21&lt;/strong&gt;. Dix catégories de mesures minimales, analyse des risques, gestion des incidents, journalisation, continuité, formation, chiffrement, contrôle d’accès, sécurité de la chaîne d’approvisionnement. Et l’obligation de notification, en trois temps, &lt;strong&gt;alerte précoce sous 24 heures, notification structurée sous 72 heures, rapport final sous 30 jours&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Le triptyque vaut pour NIS2 comme pour RGPD, sans socle de détection et de journalisation, l’obligation est inapplicable.&lt;/p&gt;
&lt;p&gt;L’article 20 ajoute le détail qui change tout pour le dirigeant. &lt;strong&gt;La responsabilité pèse sur la personne physique qui dirige.&lt;/strong&gt; Pas sur le DSI, ni sur le prestataire. Sur toi.&lt;/p&gt;
&lt;p&gt;Côté sanctions, c’est calibré pour faire mal. Entité essentielle, jusqu’à &lt;strong&gt;10 millions d’euros ou 2 % du chiffre d’affaires mondial&lt;/strong&gt;, le plus élevé des deux. Entité importante, jusqu’à 7 millions d’euros ou 1,4 % du CA mondial. Pour une PME à 30 millions de CA, on parle d’une sanction maximale de plusieurs centaines de milliers d’euros.&lt;/p&gt;
&lt;p&gt;La loi du 30 avril 2025 transpose NIS2 en droit français. Les décrets d’application et le périmètre exact des entités concernées se précisent au fil de 2026. Tant que c’est flou tu te dis que tu as le temps, mais la directive s’applique déjà, la jurisprudence va se construire sur les premiers contentieux. La question est quand, pas si.&lt;/p&gt;
&lt;p&gt;On a déjà vu dans &lt;a href=&quot;https://macsouverain.com/nis2-csar-contradiction-ue-chiffrement-surveillance/&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;un article précédent&lt;/a&gt; comment NIS2 contredit CSAR sur le chiffrement. Ici, on regarde l’autre obligation, celle qui devient concrète pour ton infrastructure, &lt;strong&gt;détecter, journaliser, notifier&lt;/strong&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;tu-as-trois-options-et-deux-dentre-elles-sont-mauvaises&quot;&gt;Tu as trois options, et deux d’entre elles sont mauvaises&lt;/h2&gt;
&lt;h3 id=&quot;option-1-le-saas-américain&quot;&gt;Option 1, le SaaS américain&lt;/h3&gt;
&lt;p&gt;Splunk, Microsoft Sentinel, CrowdStrike, &lt;a href=&quot;https://www.datadoghq.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Datadog&lt;/a&gt;, &lt;a href=&quot;https://www.elastic.co/cloud&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Elastic Cloud&lt;/a&gt;. Ils marchent. Ils sont matures. Et sur le prix d’entrée d’une PME modeste, ils ne sont pas hors de portée. Le piège est ailleurs.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Microsoft Sentinel&lt;/strong&gt; facture autour de &lt;strong&gt;4,30 dollars du gigaoctet ingéré&lt;/strong&gt; en région East US, dans le modèle de facturation simplifié qui combine ingestion Log Analytics et analyse Sentinel. &lt;strong&gt;CrowdStrike Falcon&lt;/strong&gt; facture par endpoint, entre &lt;strong&gt;60 et 185 dollars par poste et par an&lt;/strong&gt; selon le niveau, Go, Pro, Enterprise ou Complete. &lt;strong&gt;Splunk&lt;/strong&gt; est plus opaque, l’éditeur ne publie pas ses tarifs, mais les sources secondaires sérieuses convergent autour de &lt;strong&gt;8 000 à 12 500 dollars par an&lt;/strong&gt; pour un ticket d’entrée de 5 gigaoctets de logs par jour, licence seule, en Cloud ou en Enterprise auto-hébergé.&lt;/p&gt;
&lt;p&gt;Prenons une PME de 50 employés qui génère cinq gigaoctets de logs par jour. Sur Microsoft Sentinel, environ &lt;strong&gt;7 800 dollars par an&lt;/strong&gt;. Sur CrowdStrike Falcon Pro pour 50 endpoints, environ &lt;strong&gt;5 000 dollars par an&lt;/strong&gt;. Sur Splunk Cloud à l’entrée, environ &lt;strong&gt;8 000 dollars par an&lt;/strong&gt;. Soyons honnêtes, &lt;strong&gt;13 000 dollars par an pour Sentinel et CrowdStrike combinés, sur une PME à 10 millions de CA, c’est 0,13 % du chiffre d’affaires&lt;/strong&gt;. Le coût d’entrée n’est pas l’obstacle.&lt;/p&gt;
&lt;p&gt;L’obstacle, c’est ce que tu signes en même temps. &lt;strong&gt;Tes logs partent aux États-Unis&lt;/strong&gt;, ou chez une filiale européenne d’une société américaine. Le &lt;strong&gt;CLOUD Act&lt;/strong&gt;, voté en 2018, permet aux autorités américaines de réquisitionner ces données auprès du fournisseur, même stockées physiquement en Europe. Microsoft Irlande, Splunk Cloud, CrowdStrike, tous y sont soumis via leur société mère.&lt;/p&gt;
&lt;p&gt;Et tes logs d’incident, ce ne sont pas n’importe quelles données. Ce sont &lt;strong&gt;les empreintes complètes de ton réseau&lt;/strong&gt;, les noms d’utilisateurs, les flux applicatifs, les comportements internes, les vulnérabilités exposées au moment de l’attaque. Le matériau le plus sensible que produit ton SI. Le confier à un fournisseur réquisitionnable par une juridiction étrangère, c’est un risque opérationnel réel.&lt;/p&gt;
&lt;p&gt;Le &lt;strong&gt;Data Privacy Framework&lt;/strong&gt;, le pont juridique UE-US, a survécu en première instance devant le Tribunal de l’UE en septembre 2025. Il est &lt;strong&gt;en appel devant la CJUE depuis le 31 octobre 2025&lt;/strong&gt;. La CNIL, dans sa décision de février 2025 sur l’hébergement de santé, est nette, &lt;em&gt;le seul marqueur reconnu pour matérialiser un cloud souverain reste la qualification SecNumCloud&lt;/em&gt;. Aucun des trois SaaS cités ne l’a.&lt;/p&gt;
&lt;p&gt;Un dernier point. Le coût d’entrée raisonnable, c’est aujourd’hui. La mécanique de facturation s’aggrave avec ta croissance. Chaque gigaoctet ingéré en plus est facturé, chaque endpoint additionnel aussi. À 50 gigaoctets de logs par jour, le ticket Sentinel passe au-dessus de &lt;strong&gt;78 000 dollars par an&lt;/strong&gt;, Splunk grimpe en proportion selon le mode de licence. Tu signes un prix d’entrée modeste, tu signes en même temps un verrou tarifaire qui se referme au fur et à mesure que ton SIEM voit plus large et plus profond.&lt;/p&gt;
&lt;p&gt;Conclusion, tu paies un prix raisonnable pour la plomberie aujourd’hui, en livrant la donnée la plus stratégique de ton SI dans une juridiction qui n’est pas la tienne, dans un cadre légal défavorable, avec un compteur qui tourne contre toi à chaque extension de périmètre.&lt;/p&gt;
&lt;h3 id=&quot;option-2-ne-rien-faire&quot;&gt;Option 2, ne rien faire&lt;/h3&gt;
&lt;p&gt;C’est tentant. C’est la stratégie la plus répandue chez les PME, qu’elles soient ou non dans le périmètre NIS2. Attendre. Voir. Espérer.&lt;/p&gt;
&lt;p&gt;Le calcul est mauvais sur trois plans. &lt;strong&gt;RGPD aujourd’hui&lt;/strong&gt;, la CNIL a déjà sanctionné des PME pour défaut de notification, l’absence de moyen de détection est aggravante. &lt;strong&gt;NIS2 demain&lt;/strong&gt; si tu y entres par chaîne d’approvisionnement ou par révision, la sanction maximale pour une entité essentielle dépasse celle du RGPD, &lt;strong&gt;la responsabilité personnelle du dirigeant&lt;/strong&gt; existe noir sur blanc. &lt;strong&gt;Ransomware n’importe quand&lt;/strong&gt;, chiffrement de la production, rançon, perte d’exploitation, c’est un autre ordre de grandeur que la mise en conformité.&lt;/p&gt;
&lt;p&gt;Ne rien faire, ce n’est pas économiser. C’est repousser, en risquant d’aggraver la facture finale.&lt;/p&gt;
&lt;h3 id=&quot;option-3-le-souverain-auto-hébergé&quot;&gt;Option 3, le souverain auto-hébergé&lt;/h3&gt;
&lt;p&gt;Tu construis ton SIEM avec des briques open source matures, déployées sur une infrastructure que tu contrôles. Quatre briques, quatre rôles complémentaires.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://wazuh.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;&lt;strong&gt;Wazuh&lt;/strong&gt;&lt;/a&gt;, c’est le cerveau du dispositif, la plateforme centrale qui ramène tous les journaux au même endroit, les stocke, les analyse et lève les alertes. C’est ton « Splunk maison ».&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.crowdsec.net/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;&lt;strong&gt;CrowdSec&lt;/strong&gt;&lt;/a&gt;, c’est le videur à l’entrée. Une défense réseau communautaire qui bloque automatiquement les adresses IP déjà repérées comme attaquantes par les autres utilisateurs du réseau. Quand un bot scanne mille sites avant le tien, il est blacklisté avant d’arriver chez toi.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://rspamd.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;&lt;strong&gt;Rspamd&lt;/strong&gt;&lt;/a&gt;, c’est le filtre devant ton serveur mail. Il intercepte spams et tentatives d’hameçonnage avant qu’ils n’atteignent les boîtes de tes salariés. Le mail reste le vecteur n°1 des intrusions PME, c’est là que la prévention paie le plus.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://northpole.security/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;&lt;strong&gt;Santa&lt;/strong&gt;&lt;/a&gt;, c’est le contrôleur d’exécution sur tes Mac. Il décide quelles applications ont le droit de démarrer sur chaque poste, selon une liste blanche que tu construis. Un ransomware téléchargé par erreur ne peut pas s’exécuter, parce qu’il n’est pas signé par un éditeur que tu as approuvé. C’est la brique qui transforme un Mac d’usage courant en poste durci, sans que l’utilisateur n’ait à changer ses habitudes.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Aucune de ces briques n’est expérimentale. Wazuh est utilisé par des entreprises du Fortune 100. CrowdSec, société française fondée en 2019, agrège 10 millions de signaux par jour, partagés par plus de 70 000 utilisateurs dans 190 pays. Rspamd équipe Mailcow, Zimbra, Mailu, qui font référence. Santa, développé à l’origine chez Google et maintenu désormais par North Pole Security, tourne en production chez Figma.&lt;/p&gt;
&lt;p&gt;Le coût, c’est un VPS correctement dimensionné, le temps d’installation, et une compétence interne que tu construis. Pas zéro, mais sans commune mesure avec les chiffres précédents.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;ce-quest-vraiment-un-siem-pour-quelquun-qui-ne-fait-pas-de-blue-team&quot;&gt;Ce qu’est vraiment un SIEM, pour quelqu’un qui ne fait pas de blue team&lt;/h2&gt;
&lt;p&gt;Le mot fait peur. Il sent les écrans noirs, les équipes 24/7 et les analystes qui parlent un dialecte que ton DSI ne comprend pas. Une fois démythifié, c’est plus simple.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Un SIEM, c’est de la plomberie.&lt;/strong&gt; Pas un produit, un assemblage. Quatre fonctions qui s’enchaînent :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Collecter&lt;/strong&gt; les journaux de tes équipements, serveurs, pare-feu, postes de travail, applications, boîtes mail. Tout ce qui produit un log, tu le ramènes au même endroit.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Centraliser et conserver&lt;/strong&gt; ces journaux dans un format exploitable, avec une rétention qui te permet d’enquêter sur un incident remontant à plusieurs mois.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Détecter&lt;/strong&gt; les comportements anormaux. Un compte qui se connecte à 3 heures du matin depuis un pays inhabituel, une rafale d’échecs d’authentification, un processus qui modifie 10 000 fichiers en une minute.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Alerter&lt;/strong&gt; et garder la trace, pour ta notification ANSSI sous 24 heures, et pour ton rapport final sous 30 jours.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;C’est tout. Aucune magie. Un système qui voit, qui se souvient, et qui crie quand quelque chose cloche.&lt;/p&gt;
&lt;p&gt;Le travail dur n’est pas la technologie, c’est l’ajustement. Quelles règles tu actives, quels seuils tu calibres, à qui tu envoies l’alerte, comment tu réponds. C’est la même chose sur Splunk ou sur Wazuh. Et c’est cette compétence interne que tu vas construire dans cette série.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;en-résumé&quot;&gt;En résumé&lt;/h2&gt;
&lt;p&gt;Monter ton SIEM en 2026 te paie sur deux horizons.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Court terme, c’est de la sécu opérationnelle.&lt;/strong&gt; Un ransomware détecté en heures au lieu de semaines, une exfiltration interceptée avant la rançon, une violation RGPD que tu peux caractériser et notifier dans les délais. Ce ROI-là ne dépend d’aucun texte qui n’est pas encore voté, il est immédiat.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Moyen terme, c’est de la conformité amortie.&lt;/strong&gt; Tu construis l’infrastructure et la compétence interne &lt;em&gt;avant&lt;/em&gt; que l’obligation te tombe sur ta tête. Tes concurrents la monteront sous contrainte, dans l’urgence, à trois fois le prix d’un consultant en mission flash. Tu auras pris cinq ans d’avance sur eux pour le prix de quelques week-ends étalés sur un trimestre.&lt;/p&gt;
&lt;p&gt;Le SaaS US fait le boulot et n’est pas hors de prix sur le ticket d’entrée. Il livre juste tes données les plus stratégiques dans une juridiction défavorable, et te verrouille dans un modèle où chaque gigaoctet de plus est facturé. L’auto-hébergé demande un investissement initial en temps. Au bout, tu es maître de la donnée, du coût marginal et du calendrier de mise en conformité. La souveraineté réelle contre un peu de ton temps, que l’on va veiller à optimiser lors de nos articles.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;sept-épisodes-pour-monter-ta-plomberie&quot;&gt;Sept épisodes pour monter ta plomberie&lt;/h2&gt;
&lt;p&gt;C’est la stack que j’utilise en production. Pas un fantasme de blogueur, une infrastructure qui tourne au quotidien, qui détecte, qui journalise, qui notifie. Sept épisodes, sept briques :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://macsouverain.com/vps-durci-socle-siem-souverain/&quot;&gt;Épisode 1, le socle.&lt;/a&gt;&lt;/strong&gt; Un VPS durci, sur un hébergeur européen hors emprise américaine. Choix de l’opérateur, configuration de base, surface d’attaque minimale, sauvegardes chiffrées hors-site.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://macsouverain.com/wazuh-tout-en-un-siem-souverain/&quot;&gt;Épisode 2, Wazuh en mode tout-en-un.&lt;/a&gt;&lt;/strong&gt; Installation du manager, de l’indexeur, du dashboard sur un seul nœud. Durcissement, premiers tableaux de bord. L’équivalent fonctionnel d’un Splunk pour le prix d’un VPS.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://macsouverain.com/wazuh-agents-parc-siem-souverain/&quot;&gt;Épisode 3, les agents partout.&lt;/a&gt;&lt;/strong&gt; Déploiement des agents Wazuh sur tes serveurs, Mac et Windows. Collecte des logs système, des événements de sécurité, des activités fichiers. Le moment où ton SIEM commence à voir.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://macsouverain.com/crowdsec-premiere-ligne-siem-souverain/&quot;&gt;Épisode 4, CrowdSec en première ligne.&lt;/a&gt;&lt;/strong&gt; La défense réseau communautaire qui bloque les attaquants connus avant qu’ils n’atteignent tes services. Intégration Wazuh, partage des signaux.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://macsouverain.com/rspamd-mail-siem-souverain/&quot;&gt;Épisode 5, Rspamd pour le mail.&lt;/a&gt;&lt;/strong&gt; Le filtre anti-spam et anti-phishing qui se branche devant ton serveur mail, ou s’intègre à ta solution existante. Détection d’hameçonnage, journalisation dans Wazuh.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://macsouverain.com/santa-controle-execution-mac-siem-souverain/&quot;&gt;Épisode 6, Santa sur les Mac.&lt;/a&gt;&lt;/strong&gt; Contrôle d’exécution sur les postes Apple. Fork North Pole Security, le projet activement maintenu depuis que Google a passé la main en 2024. Lockdown progressif, intégration Wazuh.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://macsouverain.com/alerting-cout-total-siem-souverain/&quot;&gt;Épisode 7, alerting et coût total.&lt;/a&gt;&lt;/strong&gt; Notifications calibrées, escalade, bilan financier honnête, comparaison épisode par épisode avec ce qu’aurait coûté l’équivalent SaaS.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Les liens s’allument au fil des publications, reviens te brancher sur les nouveaux épisodes dès qu’ils sortent.&lt;/p&gt;
&lt;p&gt;Chaque épisode est autonome. Tu peux t’arrêter au 3 et avoir déjà couvert l’essentiel de NIS2. Tu peux pousser jusqu’au 7 et avoir une stack qui n’a rien à envier à celles des grandes entreprises.&lt;/p&gt;</content:encoded><dc:creator>Mac Souverain</dc:creator><category>ms-pro</category><category>nis2</category><category>siem</category><category>securite</category><category>tutoriel</category><enclosure url="https://macsouverain.com/content/images/2026/06/feature-nis2-splunk-pourquoi-pme-siem-souverain-1.png" length="0" type="image/png"/></item><item><title>Apple Intelligence : ce qui sort vraiment de ton Mac</title><link>https://macsouverain.com/38-apple-intelligence-ce-qui-sort-de-ton-mac/</link><guid isPermaLink="true">https://macsouverain.com/38-apple-intelligence-ce-qui-sort-de-ton-mac/</guid><description>Ton Mac a basculé Apple Intelligence sur ON sans te prévenir. Trois couches de traitement, une seule reste chez toi. Et le piège du compte OpenAI lié, lui, personne ne te le dit.</description><pubDate>Thu, 28 May 2026 07:48:57 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Mise à jour du 21 juin 2026.&lt;/strong&gt; Depuis le 8 juin 2026, PCC ne tourne plus seulement sur du silicium Apple : pour les requêtes les plus lourdes (agentic, raisonnement complexe), Apple bascule sur du matériel Google Cloud, GPU NVIDIA, CPU Intel et puce Titan. Apple jure que les cinq garanties tiennent, qu’il garde le contrôle logiciel et que Google ne voit rien en clair. Sans doute. Mais l’argument grand public « tout reste chez Apple » vient de tomber : c’est désormais aussi du fer Google, sous garanties Apple.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Tu as mis à jour ton Mac. Tu as accepté les CGU sans lire (comme tout le monde). Quelques semaines plus tard, tu réalises que le toggle « Apple Intelligence » est sur ON, alors que tu l’avais coupé. Ce n’est pas une hallucination : depuis macOS 15.3 sorti le 27 janvier 2025, &lt;strong&gt;Apple Intelligence est passé d’opt-in à opt-out.&lt;/strong&gt; Et une partie des utilisateurs qui l’avaient désactivé l’ont retrouvée réactivée après 15.3.1, bug confirmé par MacRumors et 9to5Mac, inconsistant d’un appareil à l’autre. Pas une règle systémique, mais assez fréquent pour que tu vérifies après chaque update.&lt;/p&gt;
&lt;p&gt;C’est le moment de comprendre ce qui se passe quand tu cliques « Summarize » sur un mail un peu long. Parce qu’entre ton Neural Engine et un data center californien, il y a trois couches de traitement. &lt;strong&gt;Une seule reste vraiment chez toi.&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;pourquoi-cette-question-nest-pas-anodine&quot;&gt;Pourquoi cette question n’est pas anodine&lt;/h2&gt;
&lt;p&gt;Apple vend Apple Intelligence comme une IA « privacy-first ». Le slogan est partout sur le site produit : aware of your personal information without collecting your personal information. C’est techniquement vrai pour une partie du périmètre, et techniquement faux pour le reste.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Une IA générative, par construction, a besoin de calcul.&lt;/strong&gt; Quand le modèle qui tourne sur ton Mac ne suffit plus, la requête sort. Soit vers des serveurs Apple, soit vers ceux d’OpenAI. Dans les deux cas, &lt;strong&gt;ton texte quitte ta machine.&lt;/strong&gt; La question n’est pas de savoir si ça sort. C’est de savoir où, sous quelles garanties, et comment Apple t’en informe (spoiler : mal).&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;couche-1--le-modèle-local-ce-qui-reste-vraiment-chez-toi&quot;&gt;Couche 1 : le modèle local, ce qui reste vraiment chez toi&lt;/h2&gt;
&lt;p&gt;Sur Apple Silicon (M1 et plus), Apple fait tourner un modèle fondation d’environ 3,18 milliards de paramètres. Quantifié 2 bits par poids via Quantization-Aware-Training, footprint mémoire d’environ 1 Go, KV-cache partagé qui économise 37,5 % de RAM. Le calcul se fait sur le Neural Engine, le GPU et le CPU de la puce, jamais sur un serveur.&lt;/p&gt;
&lt;p&gt;Concrètement, voilà ce qui reste 100 % local :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Writing Tools&lt;/strong&gt; version courte : Proofread, Rewrite, Summarize sur des textes courts&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Smart Reply&lt;/strong&gt; dans Mail et Messages&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Résumés de notifications&lt;/strong&gt; et Priority Notifications&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Résumés Mail courts&lt;/strong&gt; dans la liste de la boîte de réception&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Genmoji&lt;/strong&gt; (génération d’emoji custom)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Image Playground&lt;/strong&gt; (Animation, Illustration, Sketch)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Image Wand&lt;/strong&gt; dans Notes&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Siri basique&lt;/strong&gt; (compréhension, type-to-Siri)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Clean Up Photos&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Pour ces usages, &lt;strong&gt;ton texte ne quitte pas l’Apple Silicon.&lt;/strong&gt; Aucun log, aucun serveur, aucune télémétrie de contenu. C’est le périmètre honnête de la promesse Apple, et il est réel.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Le problème commence quand tu demandes autre chose.&lt;/strong&gt; Long résumé d’un thread Mail de 80 messages, Composition d’un texte généré, raisonnement Siri multi-étapes : &lt;strong&gt;ton Mac sait qu’il ne tiendra pas la charge. Il bascule.&lt;/strong&gt; Et Apple n’affiche aucun voyant pour te le signaler.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;couche-2--private-cloud-compute-lenclave-californienne&quot;&gt;Couche 2 : Private Cloud Compute, l’enclave californienne&lt;/h2&gt;
&lt;p&gt;C’est l’angle marketing fort d’Apple. PCC tourne sur du custom-silicon Apple dans leurs data centers, avec cinq garanties techniques mises en avant dans la doc Security Research :&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Stateless computation&lt;/strong&gt; : ton texte est utilisé pour répondre, jamais conservé après la requête.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Enforceable guarantees&lt;/strong&gt; : les protections sont techniquement appliquées, pas contractuellement promises. Un admin Apple ne peut pas désactiver le mécanisme.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;No privileged runtime access&lt;/strong&gt; : pas de shell distant, pas de debug interactif. Apple ne peut pas extraire tes données, même volontairement.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Non-targetability&lt;/strong&gt; : un attaquant ne peut pas router ta requête vers un nœud compromis spécifique. La diffusion des requêtes vers les nœuds est aléatoire et attestée.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Verifiable transparency&lt;/strong&gt; : chaque build de production publié dans un log cryptographiquement append-only, images binaires disponibles pour inspection externe pendant 90 jours.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Apple a poussé son code serveur PCC sur GitHub, ouvert un environnement de recherche aux chercheurs externes, et mis sur la table un bug bounty d’un million de dollars. C’est, à ce jour, la stack cloud IA la plus auditable du marché.&lt;/p&gt;
&lt;p&gt;Maintenant les nuances, parce qu’il y en a.&lt;/p&gt;
&lt;p&gt;Trail of Bits, dans son analyse du 14 juin 2024, rappelle un point que le marketing Apple efface volontiers : &lt;em&gt;« the data is decrypted on Apple’s server »&lt;/em&gt;. &lt;strong&gt;PCC n’est pas du chiffrement homomorphe&lt;/strong&gt; (la techno qui ferait calculer un modèle sur des données chiffrées sans jamais les déchiffrer). C’est une enclave durcie, signée, attestée, mais &lt;strong&gt;ton texte est bien déchiffré côté Apple&lt;/strong&gt; le temps du calcul. La sécurité repose sur l’intégrité de l’enclave et la signature des binaires, pas sur une magie cryptographique. Apple est honnête là-dessus dans la doc technique. Le slogan grand public, lui, laisse penser le contraire.&lt;/p&gt;
&lt;p&gt;Deuxième nuance, plus inconfortable. Matthew Green, cryptographe à Johns Hopkins, sur Mastodon en juin 2024 : &lt;em&gt;« Apple does not have explicit plans to announce when your data is going off-device for Private Compute, and you won’t opt into this or necessarily even be told it’s happening »&lt;/em&gt;. Traduction : &lt;strong&gt;tu ne sais jamais si le résumé de ton mail est resté sur ton M2&lt;/strong&gt; ou s’il a fait un aller-retour en Californie. &lt;strong&gt;Aucun indicateur visuel, aucune notification&lt;/strong&gt;, aucun journal côté utilisateur. La transparence d’Apple est cryptographiquement vérifiable mais visuellement invisible.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;couche-3--chatgpt-lopt-in-et-son-piège&quot;&gt;Couche 3 : ChatGPT, l’opt-in et son piège&lt;/h2&gt;
&lt;p&gt;ChatGPT est greffé sur Apple Intelligence depuis macOS 15.2. Désactivé par défaut, activable explicitement dans &lt;code&gt;Apple Intelligence &amp;#x26; Siri → Extensions → ChatGPT&lt;/code&gt;. Quand tu l’actives, Apple ajoute deux protections par-dessus le contrat OpenAI standard :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Ton IP est masquée&lt;/strong&gt; par le relai Apple (verbatim Apple Legal : &lt;em&gt;« your IP address is obscured from ChatGPT »&lt;/em&gt;). Une localisation approximée passe, pour la conformité légale et l’anti-fraude.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;No-logs et no-training&lt;/strong&gt; côté OpenAI, &lt;em&gt;à condition que tu n’aies pas lié ton compte OpenAI&lt;/em&gt;. Apple Legal : OpenAI &lt;em&gt;« must process your information solely for the purpose of fulfilling your request », « not store your information », « must not use your information to improve or train its models »&lt;/em&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Lis bien la conditionnelle. &lt;strong&gt;Si tu lies &lt;em&gt;n’importe quel&lt;/em&gt; compte OpenAI&lt;/strong&gt; (gratuit, Plus, Pro, Team) pour récupérer ton historique ou accéder à GPT-5, &lt;strong&gt;tu sors immédiatement du contrat Apple&lt;/strong&gt; et tu retombes sous les CGU standard d’OpenAI. Logs, historique de conversation, entraînement potentiel, le tout sous juridiction US. Apple le mentionne dans le texte legal, en petit, après trois paragraphes. La majorité des utilisateurs lient leur compte sans réaliser qu’ils viennent de désactiver la protection qui les a fait choisir Apple.&lt;/p&gt;
&lt;p&gt;Deuxième détail. &lt;strong&gt;Le toggle « Confirm ChatGPT Requests » est sur ON par défaut&lt;/strong&gt; : Siri te demande validation avant d’envoyer le texte. Tu peux le couper. Mais surtout, si tu commences ta requête vocale par « Ask ChatGPT… », la confirmation est court-circuitée. C’est un raccourci documenté côté Apple, qui contourne le seul garde-fou visible du dispositif. Photos et fichiers gardent la confirmation, eux, dans tous les cas.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;les-quatre-toggles-à-vérifier&quot;&gt;Les quatre toggles à vérifier&lt;/h2&gt;
&lt;p&gt;Quatre chemins à connaître sur Sequoia 15.x et Tahoe 26. Les intitulés anglais sont garantis (testés par Apple Support sur Mac US), les français sont les libellés que tu verras vraisemblablement, à confirmer sur ton Mac.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1. Le master Apple Intelligence&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;System Settings → Apple Intelligence &amp;#x26; Siri&lt;/code&gt; (toggle en haut du panneau).&lt;br&gt;
État par défaut depuis macOS 15.3 : &lt;strong&gt;ON&lt;/strong&gt; sur les Mac compatibles. Cas documentés de réactivation sur 15.3.1 (bug, pas design). Rare ensuite, mais revérifie après chaque update. À couper si tu ne veux rien, vraiment rien.&lt;/p&gt;
&lt;figure class=&quot;kg-card kg-image-card&quot;&gt;
&lt;img src=&quot;https://macsouverain.com/content/images/2026/06/capture-02-apple-intelligence-master-prepub-38-apple-intelligence-ce-qui-sort-de-1.png&quot; class=&quot;kg-image&quot; loading=&quot;lazy&quot; alt=&quot;Réglages Système, panneau Apple Intelligence et Siri, toggle master Apple Intelligence&quot;&gt;
&lt;/figure&gt;
&lt;p&gt;&lt;strong&gt;2. ChatGPT master&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;System Settings → Apple Intelligence &amp;#x26; Siri → Extensions → ChatGPT → Use ChatGPT&lt;/code&gt;.&lt;br&gt;
État par défaut : OFF. Active uniquement si tu en veux, et surtout : ne lie pas ton compte OpenAI.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3. Confirm ChatGPT Requests&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;System Settings → Apple Intelligence &amp;#x26; Siri → Extensions → ChatGPT → Confirm ChatGPT Requests&lt;/code&gt;.&lt;br&gt;
État par défaut : ON. Laisse-le. La friction de confirmation est ton seul indicateur visuel qu’une requête part hors de ton Mac.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;4. Improve Siri &amp;#x26; Dictation&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;System Settings → Privacy &amp;#x26; Security → Analytics &amp;#x26; Improvements → Improve Siri &amp;#x26; Dictation&lt;/code&gt;.&lt;br&gt;
État par défaut : OFF. Vérifie qu’il est resté à OFF. C’est lui qui décide si Apple stocke des extraits audio de tes interactions Siri pour relecture humaine. Identifiant aléatoire, rotation pluri-horaire, pas de lien Apple ID, ils insistent. Tu choisis de leur faire confiance ou pas.&lt;/p&gt;
&lt;figure class=&quot;kg-card kg-image-card&quot;&gt;
&lt;img src=&quot;https://macsouverain.com/content/images/2026/06/capture-03-improve-siri-dictation-prepub-38-apple-intelligence-ce-qui-sort-de-to-1.png&quot; class=&quot;kg-image&quot; loading=&quot;lazy&quot; alt=&quot;Réglages Système, Analyse et améliorations, toggle Améliorer Siri et la dictée&quot;&gt;
&lt;/figure&gt;
&lt;hr&gt;
&lt;h2 id=&quot;apple-microsoft-google--qui-fait-quoi&quot;&gt;Apple, Microsoft, Google : qui fait quoi&lt;/h2&gt;
&lt;p&gt;Cinq critères qui comptent pour quelqu’un qui se pose la question de la souveraineté. Verdict acteur par acteur.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Apple Intelligence.&lt;/strong&gt; Local par défaut, oui : modèle 3 B on-device, bascule PCC explicite pour les requêtes lourdes. Attestation cryptographique publique, oui : transparency log, environnement de recherche dédié (VRE), code serveur publié sur GitHub. Opt-in cloud, mi-figue mi-raisin : PCC implicite et invisible, ChatGPT explicite et confirmé à chaque requête. LLM tiers intégré, OpenAI ChatGPT, opt-in, OFF par défaut, no-logs tant que tu ne lies pas ton compte. Juridiction serveurs, USA, data centers Apple custom-silicon.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Microsoft Copilot+ / Recall.&lt;/strong&gt; Local par défaut, partiel : Recall fait ses snapshots en local et ne les envoie jamais au cloud, Copilot général tourne dans Azure. Attestation publique, non : chiffrement VBS local plus TPM, pas d’audit serveur opposable. Opt-in cloud, dépend de la feature : Recall purement local, Copilot général cloud par design, l’utilisateur ne distingue pas toujours laquelle déclenche quoi. LLM tiers intégré, Azure OpenAI GPT-4, intégration commerciale sans opt-in séparé. Juridiction serveurs, USA plus régions Azure globales.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Google Gemini.&lt;/strong&gt; Local par défaut, non : cloud Google par défaut, Gemini Nano local existe mais reste limité aux Pixel haut de gamme. Attestation publique, non. Opt-in cloud, c’est l’inverse, cloud par défaut, opt-out partiel via Activity, et tu perds des features au passage. LLM tiers intégré, aucun, stack Google verrouillée. Juridiction serveurs, EEE/Suisse via Google Ireland pour les comptes EU, reste du monde via Google LLC (USA).&lt;/p&gt;
&lt;p&gt;Une lecture rapide : sur ce dossier précis, Apple fait mieux. Recall version 2025 est solide en local mais reste un vecteur d’attaque sur shared device (Kevin Beaumont l’a documenté en boucle). Gemini conserve un sous-ensemble des chats jusqu’à trois ans pour relecture humaine, même quand tu coupes l’activité. Apple est le seul à publier son code serveur et à payer un million de dollars à qui le casse.&lt;/p&gt;
&lt;p&gt;Apple a dépensé un million de dollars à se faire casser. Les autres ont dépensé un million de dollars en spots TV. Ça ne fait pas de PCC une E2EE. Ça en fait l’option cloud IA la moins opaque du marché en 2026.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;le-verdict-mack&quot;&gt;Le verdict Mack&lt;/h2&gt;
&lt;p&gt;Apple a construit l’architecture IA cloud la plus auditable du marché grand public. C’est un fait. Trail of Bits, Matthew Green et Schneier le reconnaissent, chacun à sa manière, tout en pointant ce qui cloche.&lt;/p&gt;
&lt;p&gt;Ce qui cloche, c’est trois décisions UX qui trahissent &lt;strong&gt;une intention marketing supérieure à l’intention privacy&lt;/strong&gt; : l’opt-out par défaut depuis 15.3, l’absence totale d’indicateur visuel quand une requête bascule en PCC, et le piège silencieux du compte OpenAI lié. Aucun de ces trois points n’est un bug. &lt;strong&gt;Ce sont des choix.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Ce que tu peux raisonnablement faire : couper le master si tu n’as pas l’usage, garder le toggle de confirmation ChatGPT sur ON si tu l’utilises, &lt;strong&gt;ne jamais lier ton compte OpenAI&lt;/strong&gt;, vérifier Improve Siri &amp;#x26; Dictation après chaque update majeure. C’est cinq minutes de réglages, à refaire deux ou trois fois par an.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;À lire aussi : &lt;a href=&quot;https://macsouverain.com/cloud-ordinateur-quelquun-dautre&quot;&gt;Le cloud, c’est l’ordinateur de quelqu’un d’autre&lt;/a&gt;, &lt;a href=&quot;https://macsouverain.com/privacy-macos-les-parametres-a-changer-immediatement&quot;&gt;Privacy macOS : les paramètres à changer immédiatement&lt;/a&gt; et &lt;a href=&quot;https://macsouverain.com/convergence-libertes-numeriques&quot;&gt;Convergence des libertés numériques&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;sources&quot;&gt;Sources&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Apple, sources primaires&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://machinelearning.apple.com/research/introducing-apple-foundation-models&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Apple Machine Learning Research, Introducing Apple’s On-Device and Server Foundation Models&lt;/a&gt;, publication officielle des spécifications du modèle on-device (10 juin 2024).&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://machinelearning.apple.com/research/apple-foundation-models-tech-report-2025&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Apple Machine Learning Research, Foundation Models Tech Report 2025&lt;/a&gt; et &lt;a href=&quot;https://arxiv.org/abs/2507.13575&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;arXiv 2507.13575&lt;/a&gt;, détails techniques 2-bit QAT, PT-MoE, 15 langues (17 juillet 2025).&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://security.apple.com/blog/private-cloud-compute/&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Apple Security Research, Private Cloud Compute : A new frontier for AI privacy in the cloud&lt;/a&gt; et &lt;a href=&quot;https://security.apple.com/blog/pcc-security-research/&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Security research on PCC&lt;/a&gt;, la doc PCC complète et le bug bounty.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.apple.com/legal/privacy/data/en/chatgpt-extension/&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Apple Legal, ChatGPT Extension and Privacy&lt;/a&gt; et &lt;a href=&quot;https://support.apple.com/guide/mac-help/use-chatgpt-with-apple-intelligence-mchlfc5cf131/mac&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Apple Support, Use ChatGPT with Apple Intelligence on Mac&lt;/a&gt;, source de référence pour l’IP masking et le no-logs conditionnel.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Analyses indépendantes&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.trailofbits.com/2024/06/14/pcc-bold-step-forward-not-without-flaws/&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Trail of Bits, PCC : a bold step forward, not without flaws&lt;/a&gt;, cabinet de sécurité reconnu, l’analyse technique la plus citée sur les limites de PCC (« data decrypted on Apple’s server »).&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://threadreaderapp.com/thread/1800291897245835616.html&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Matthew Green, thread Mastodon/X sur PCC&lt;/a&gt;, cryptographe à Johns Hopkins University, sur l’absence d’indicateur visuel quand une requête bascule en PCC.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://doublepulsar.com/microsoft-recall-on-copilot-pc-testing-the-security-and-privacy-implications-ddb296093b6c&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Kevin Beaumont (DoublePulsar), Microsoft Recall privacy implications&lt;/a&gt;, expert sécurité Windows, sur les risques résiduels de Recall version 2025.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.macrumors.com/2025/01/21/macos-sequoia-15-3-apple-intelligence-opt-out/&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;MacRumors, macOS 15.3 enables Apple Intelligence automatically&lt;/a&gt;, couverture du basculement opt-in vers opt-out (21 janvier 2025).&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://ironcorelabs.com/blog/2024/apple-chatgpt-privacy-issues/&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;IronCore Labs, Privacy Guide to Apple Intelligence with ChatGPT&lt;/a&gt;, pour le piège du compte OpenAI lié.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Comparatif IA concurrents&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://support.microsoft.com/en-us/windows/privacy-and-control-over-your-recall-experience-d404f672-7647-41e5-886c-a3c59680af15&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Microsoft Support, Privacy and control over your Recall experience&lt;/a&gt;, la doc officielle de Recall après relance avril 2025.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://support.google.com/gemini/answer/13594961?hl=en&quot; rel=&quot;noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Google Gemini Apps Privacy Hub&lt;/a&gt;, la doc Google sur la rétention, l’activité et la relecture humaine.&lt;/li&gt;
&lt;/ul&gt;</content:encoded><dc:creator>Mac Souverain</dc:creator><category>apple-intelligence</category><category>confidentialite</category><category>apple</category><category>ia</category><enclosure url="https://macsouverain.com/content/images/2026/06/feature-38-apple-intelligence-ce-qui-sort-de-ton-mac-1.png" length="0" type="image/png"/></item></channel></rss>