Savoir s’arrêter : la réponse

Pour faire suite au billet de janvier 2020 “Savoir s’arrêter : le courrier‘, voici le courrier de la Cour d’Appel de mon ressort judiciaire que j’ai reçu fin novembre 2020 :

Monsieur,

J’ai l’honneur de vous notifier, en application des dispositions de la loi du 29 juin 1971 modifiée par la loi du 11 février 2004 et du décret du 23 décembre 2004 modifié relatifs aux experts judiciaires que l’assemblée générale de la cour d’appel de [Tandaloor] réunie le 13 novembre 2020, a constaté votre souhait de ne pas renouveler votre inscription et procédé à la suppression de celle-ci sur la liste des experts judiciaires établie pour l’année 2021.

Les décisions prises pour l’établissement des listes d’experts ne peuvent donner lieu qu’à un recours devant la Cour de cassation en application de l’article 20 du décret n°2004-1463 modifié.

Ce recours doit être formé dans un délai d’un mois, à compter de la présente notification par déclaration au greffe de la cour de cassation ou par lettre recommandée avec demande d’avis de réception adressée au greffe de la cour de cassation.

Je vous prie d’agréer, Monsieur, l’expression de mes salutations distinguées.

P/Le procureur général
Mme [Gowachin]
Substitut Général

Comme mon courrier de décembre 2019 n’a pu être pris en compte qu’en novembre 2020, à partir de ce soir, officiellement, je ne suis donc plus expert judiciaire. Je suis fier d’avoir apporté mon concours à la Justice, accompli mes missions, fait mes rapports,
et donné mon avis en mon honneur et en ma conscience. Je l’ai fait en toute indépendance, de mon mieux et en gardant ma liberté de parole et d’esprit.

Je laisse la place à plus jeunes et plus compétents que moi.

Mais je continuerai à m’exprimer ici, sur tous les sujets, y compris sur ceux de l’expertise judiciaire, n’en déplaise aux vieux cons.

Je profite de ce billet du 31 décembre pour vous souhaiter à tous de bonnes fêtes et, avec quelques heures d’avance, une bonne année 2021.

Malgré tout.

Awk awk awk

Pour retirer les lignes en doublon dans un fichier texte contenant beaucoup de lignes (voir le billet “Dictionnaire français pour hashcat“), j’ai utilisé la commande suivante :

cat toto.txt | sort | uniq > pas-de-doublons.txt

où toto.txt est un fichier texte d’environ 20 Go et où le fichier pas-de-doublons.txt résultant ne fait plus que 311 Mo. La commande met 1h30 à s’exécuter sur mon ordinateur.

Un internaute m’a fait remarquer en commentaire sur mon GitHub que cette commande pouvait être avantageusement remplacée par la commande suivante :

cat toto.txt | awk '!x[$0]++' > pas-de-doublons.txt

Mais avant d’essayer la commande awk sur mon ordinateur, je voulais la comprendre. Et à ma grande surprise, je n’ai pas réussi à trouver d’explications sur cet usage particulièrement concis sur internet (spoiler : j’ai mal cherché). J’ai donc demandé de l’aide sur Twitter où @CyrilBrulebois m’a fourni une explication en quelques secondes : https://unix.stackexchange.com/questions/159695/how-does-awk-a0-work

Je vais détailler ici l’explication, pour pouvoir m’y référer plus tard, quand ma mémoire me fera défaut.

awk est une commande très puissante, c’est un langage de programmation a elle tout seule qui permet une recherche de chaînes et l’exécution d’actions sur les lignes sélectionnées. Elle est utile pour récupérer de l’information, générer des rapports, transformer des données entre autres (source funix.org).

!x[$0]++ est à interpréter de la manière suivante :

$0 contient une ligne complète du fichier toto.txt

x[] est un tableau associatif. Pour en savoir plus, lire cet article sur les tableaux en bash. Il reçoit en argument autre chose que des entiers de 0 à N comme un tableau habituel. Il peut recevoir une chaîne de caractère.

x[$0] regarde si la valeur de la clé $0 est déjà présente dans le tableau associatif x[]. Si elle ne s’y trouve pas, une chaîne de caractère vide est placée dans x[$0]. Dans tous les cas, x[$0] retourne son contenu.

Lequel des deux opérateurs “!” ou “++” est-il prioritaire sur l’autre ? Il s’agit de vérifier la précédence de ces deux opérateurs. Le tableau que l’on trouve par exemple dans ce document, nous indique que ++ est prioritaire sur “!”. Mais comme il est situé à droite de x[$0] (post-incrément), il faut d’abord évaluer le contenu de x[$0], considéré comme un entier (1ère action de “++”), passer cette évaluation à l’opérateur “!”, puis l’incrémenter de 1 (2e action de “++”).

Donc si la ligne contenue dans $0 vient d’apparaître pour la première fois, x[$0] contient une chaîne de caractère vide considérée comme équivalente à 0, et x[$0] retourne 0 (= faux), puis passe à 1. Sinon x[$0] retourne N (= non nul = vrai), puis passe à N+1.

Comme !x[$0]++ est la négation de x[$0]++, il suffit d’inverser le résultat du paragraphe précédent : si la ligne contenue dans $0 vient d’apparaître pour la première fois, !x[$0] retourne 1 (= non nul = vrai), puis x[$0] passe à 1. Sinon !x[$0] retourne 0 (= faux), puis x[$0] passe à N+1.

Dit autrement, !x[$0]++ retourne :
– vrai si $0 contient une ligne non déjà vue, puis incrémente x[$0]
– faux si $0 contient une ligne déjà vue, puis incrémente x[$0]

Enfin, le comportement par défaut de awk est d’imprimer $0 en cas d’évaluation à vrai, et de ne rien faire dans le cas contraire. Toutes les lignes déjà vues disparaissent. Le fichier résultant ne possède pas de lignes en doublon.

La commande recommandée fait donc bien ce qu’elle est sensée faire, et elle le fait plus vite : 15mn sur mon ordinateur au lieu d’1h30 avec la commande “sort | uniq”…

Par contre, elle fonctionne bien parce que mon fichier texte initial contient beaucoup de doublons (le fichier final fait 311 Mo) et ne sature pas la mémoire de mon ordinateur. J’ai eu moins de chance avec un fichier texte de 15 Go recommandé par @CyrilleFranchet, et qui contient peu de doublons… Ça a fait exploser en vol ma machine. Comme quoi, la lisibilité a ses avantages ^^. Cette commande awk est donc à utiliser avec un œil sur l’évolution de l’occupation de la mémoire vive.

Pour aller plus loin : grep – sed – awk, exemples avancés

Rien ne vaut que le silence

J’ai fait mon service militaire en Allemagne dans un régiment français de transmission dont la devise était “Rien ne vaut que le silence”. Je trouvais cette devise étrange pour des soldats responsables des transmissions, aussi, entre deux exercices destinés à aguerrir les plus faibles, j’ai posé la question au sergent de ma compagnie. Voici ce qu’il m’avait répondu :

“Les transmetteurs sont parachutés derrière les lignes ennemis et doivent rester discrets. Avant de rendre compte, les transmetteurs observent l’ennemi et écoutent ses transmissions”, m’a-t-il expliqué, avant de m’envoyer préparer l’arrivée des beaux jours.

Aujourd’hui, je suis tombé sur une citation du poète Rumi : “Plus vous êtes silencieux, plus vous êtes capable d’entendre.” D’après ce que j’ai pu comprendre, le sens profond de cette citation est que nous sommes invités à méditer pour observer notre cœur spirituel et reconnaître la vérité ultime (Rumi était un poète mystique persan qui a profondément influencé le soufisme). D’après lui, le silence mental nous donne un aperçu profond, et Rumi nous encourage à faire taire notre esprit pour entendre la vérité.

Il se trouve que cette citation de Rumi est traduite en anglais par “the quieter you are, the more you are able to hear”, et que cette phrase est la devise de la distribution Back track 5″, qui s’appelle aujourd’hui Kali Linux, et qui est spécialisée dans la sécurité informatique.

La devise existait en deux versions, la deuxième étant : “the quieter you become, the more your are able to hear”, que je traduis par “plus vous devenez silencieux, plus vous êtes capables d’écouter”.

Mais au fond de mon cœur, la meilleure traduction serait “Rien ne vaut que le silence”.

Je vous laisse, j’ai des magnifiques fonds d’écran Kali à aller admirer.

Dictionnaire français pour hashcat

Dans la droite ligne du billet précédent, et toujours à la demande d’un collègue ayant perdu le mot de passe d’un fichier pro Excel, j’avais besoin d’un fichier de mots français susceptibles d’être utilisés comme mot de passe.

Il y a toute une littérature sur “comment choisir un bon mot de passe”, et une partie non négligeable de mon travail actuel consiste à expliquer aux gens les consignes de base de la sécurité informatique. Je dois reconnaître que c’est passionnant, mais que la base de la base de la base n’est pas toujours comprise malgré des trésors de pédagogie.

Si les politiques de choix d’un mot de passe se sont durcies au fil du temps, et qu’il est difficile aujourd’hui de créer un compte informatique sans devoir prendre un mot de passe d’au moins 12 signes dont des minuscules, des majuscules, des chiffres et/ou des caractères spéciaux, que se passe-t-il quand l’utilisateur PEUT choisir le mot de passe qu’il veut, par exemple pour limiter l’accès à un fichier Excel ? La réponse est simple : mon expérience de la casse de mot de passe pour les besoins de la justice m’a montré que la plupart des personnes choisissent un mot courant, éventuellement suivi par un nombre, parfois complété par un point d’exclamation.

Quand aucune politique de sécurité n’est imposée, le choix préféré des français est donc : mot courant [ + année] [ + ! ]

Avant de procéder à une attaque par force brute, ie en essayant toutes les combinaisons possibles, et après avoir testé les mots de passe “évidents” (date de naissance, nom de l’utilisateur, prénom de son partenaire et de ses enfants, date de mariage, etc.), une bonne méthode est donc l’attaque par dictionnaire, ou plutôt en bon français, “l’attaque par liste de mots”.

Il existe sur internet une grande quantité de listes de mots, toutes aussi intéressantes les unes que les autres, mais je n’ai pas trouvé une liste de mots courants français, incluant les noms des régions, départements, villes, villages, hameaux et lieux dits, incluant aussi les mots d’argots, le vieux français, les différents patois, le langage “jeune”, les prénoms français, les petits noms donnés aux animaux, etc. Le tout intégrant les magnifiques caractères spécifiques du clavier français (le plus courant) é è ç à ù €, mais aussi tous les autres â ê ŷ û î ô ä ë ÿ ü ï ö Ä Ë Ÿ Ü Ï Ö etc.

Je me suis alors souvenu qu’il était possible de récupérer tout le contenu de Wikipédia pour pouvoir en disposer hors ligne. J’ai donc récupéré TOUT le Wikipédia francophone sur mon ordinateur, et je l’ai trié pour ne garder qu’un mot par ligne, puis j’ai éliminé les doublons. En comptant les essais/erreurs et les différents tâtonnements, il m’a fallu une journée pour disposer d’une magnifique liste de mots courant utilisés par les Français…

Puis j’ai utilisé la commande hashcat suivante :

hashcat -m 9500 -a 0 -w 3 --username --status --session=toto hashExcel.txt wikipedia.fr.txt

Environ 20mn plus tard, l’ordinateur me fournissait le mot de passe utilisé : un village des Alpes dont le nom fait 10 caractères.

Si vous aussi vous voulez briller auprès de vos collègues, vous pouvez utiliser cette méthode, à condition d’en donner le crédit “au blogueur dont le nom est presque celui d’une bière de l’Égypte antique” en vous rendant sur mon Github : https://github.com/Zythom/french-wikipedia-word-list. Cette saine lecture vous fera réviser vos codes ASCII et la base octale ^^.

Si par contre vous voulez compliquer la tâche des casseurs de mot de passe, ajoutez un “µ” ou un “>” dans votre mot de passe, ou mieux : générez le aléatoirement avec votre KeePass et installez l’extension “Kee Password Manager” dans votre navigateur.

Mais chacun fait ce qu’il veut.

Cracker un mot de passe

Dans le cadre de mon travail, j’ai parfois besoin de cracker un mot de passe, soit parce que la personne qui a protégé le fichier est partie et n’a pas laissé le mot de passe à ses collègues, soit parce que le propriétaire du scellé judiciaire n’est pas très coopératif…

Il y a une grande quantité d’articles sur internet pour guider un RSSI débutant ou un expert judiciaire qui serait dans le besoin. J’ai déjà d’ailleurs écrit en 2013 un billet (qui reste valable) sur quelques uns des outils que j’ai utilisés.

Vous le savez, j’ai une passion pour les réseaux de neurones et je continue, malgré le peu de temps et de forces qu’il me reste, à étudier les algorithmes de ce que l’on appelle aujourd’hui le deep learning.

Je suis des cours en ligne, j’achète des livres, je teste sur du matériel que je bricole, mais j’exploite aussi les ressources auxquelles je peux accéder dans le cloud.

C’est un petit retour d’expérience que je vais faire ici, destiné à des informaticiens auxquels leur entreprise ne fournit pas les moyens adéquats (je pense à la justice par exemple), ou à des étudiants.

Attention : il n’est pas inutile de rappeler que toute utilisation illégale de ce type d’outils entraîne votre responsabilité juridique. Si vous cherchez à intercepter le mot de passe de votre patron, ou faire une bonne blague à votre collègue, passez votre chemin. Si vous êtes administrateur réseau, vérifiez avant vos tests que vous avez l’approbation et le soutien de votre hiérarchie, ce qui ne coule pas de source. Enfin, chers parents, ou chers enfants, la récupération des mots de passe des membres de votre famille pour s’en servir à leur insu est réprimandée par la loi.

Enfin, les ressources mises à disposition gratuitement sur le cloud dont je vais parler sont destinées avant tout à un usage de recherche et d’apprentissage. Elles sont donc à utiliser avec modération, car mutualisées.

Il vous faut un compte Google, s’y connecter et aller sur https://colab.research.google.com/

Créez un nouveau notebook en donnant un nom quelconque, puis allez dans le menu “Exécution / Modifier le type d’exécution” et choisir “GPU”.

Vous allez pouvoir saisir des commandes GNU/Linux Ubuntu, en les faisant précéder du caractère “!”, comme par exemple : !pwd

Pour exécuter une commande (une fois celle-ci saisie), il suffit de cliquer sur “play”.

Pour installer hashcat :

!git clone https://github.com/hashcat/hashcat.git && cd hashcat && make && make install

Pour uploader un fichier de hash :

from google.colab import files
uploaded = files.upload()

Pour installer un dictionnaire français (très basique) :

!apt install wfrench

Pour installer un gros dictionnaire :

!wget https://www.outpost9.com/files/wordlists/dic-0294.zip
!unzip dic-0294.zip

Exemple de commande hashcat (attaque par dictionnaire) :

!hashcat -m 9500 -a 0 --username --status hash.txt /usr/share/dict/french -r/usr/local/share/doc/hashcat/rules/best64.rule

Exemple de commande hashcat (attaque par brute force avec tous les mots de passe de moins de 8 caractères en minuscule) :

!hashcat -m 9500 -a 3 --username --status -i --increment-min 1 --increment-max 8 -1 ?l hash.txt ?1?1?1?1?1?1?1?1

A utiliser avec modération. Au bout de 12h de calculs, la commande est arrêtée, et Sundar Pichai vous appelle personnellement.

Pour plus d’informations :
https://hashcat.net/wiki/
https://www.kali-linux.fr/forum/index.php?topic=2476.0
https://www.outpost9.com/files/WordLists.html

Mettre une GTX1060 dans un PC de 2005, une gageure…

La formation du RSSI

L’ANSSI a publié un panorama des métiers de la cybersécurité 2020. Assez naturellement, je suis allé lire la fiche consacrée au RSSI (pages 10 à 13). A la partie “formation recommandée”, il est écrit : “Bac + 5 avec une spécialisation en cybersécurité”.

Je disconviens respectueusement.

Premier point : il manque une connaissance approfondie des rouages de l’entreprise. En discutant aux Assises de la Cybersécurité 2020 avec Mathieu Rigotto (qui m’autorise à le citer), celui-ci me faisait remarquer qu’un bon RSSI devrait aussi avoir un MBA. En effet, la maîtrise en administration des affaires est le diplôme international d’études supérieures du plus haut niveau dans le domaine de la conduite globale des affaires : stratégie, marketing, finances, ressources humaines et management (source Wikipédia).

Je rencontre souvent deux types de RSSI : un expert technique pour qui les challenges sécurité n’ont aucun secret, ou un diplomate fin négociateur pour qui les exigences métiers n’ont aucun secret. Deux profils assez différents.

Le premier est un Snipper, le deuxième est un Général.

Pour être un bon Général, il n’est pas nécessaire d’être un bon Snipper (mais c’est un cheminement possible). Et pour être un bon Snipper, il n’est pas nécessaire d’être un bon Général (mais c’est un cheminement également possible).

Les deux profils cohabitent donc, et à mon avis, la meilleure formation, c’est la somme des deux : le meilleur RSSI doit donc avoir une solide formation technique, complétée par une bonne vision méthodologique, mais aussi une solide formation orientée sur les besoins des métiers de l’entreprise. Un ingénieur informatique avec spécialisation en cybersécurité ayant complété sa formation par un MBA.

Un RSSI ne doit pas produire une analyse de risque basée uniquement sur l’aspect technique, comme par exemple, “cette application est trouée de toute part, je m’oppose à ce qu’elle soit utilisée”. Il doit aussi intégrer le besoin métier, voire le besoin stratégique de l’entreprise. Ainsi, par exemple : “notre percée sur ce marché dépend de la rapidité avec laquelle nous allons pouvoir le conquérir, au besoin avec une application trouée de toute part”.

Et ça, c’est BEAUCOUP plus difficile à assumer.

Deuxième point de désaccord : bac + 5. En effet, beaucoup de jeunes arrêtent les études supérieures avant, pour un tas de raisons. Ils commencent à travailler dés le bac (ou avant), ou à bac+2 ou +3. Pourtant, la connaissance ne s’acquière pas uniquement sur les bancs de l’école, fut-elle supérieure, ou de l’université. Vous pouvez apprendre dans l’entreprise, avec l’aide des collègues, des anciens, sur le tas confronté aux projets, dans les livres, ou tout simplement en faisant de la veille.

Cela peut paraître contradictoire avec mon premier point, où j’évoquais le diplôme d’ingénieur et le MBA, mais pas du tout : il y a une équivalence naturelle avec l’expérience acquise en entreprise (enfin qui devrait être naturelle si les recruteurs étaient moins fermés). Il y aurait tellement à écrire sur le problème des diplômes en France…

Bref, il y a longtemps, mes professeurs vantaient les avantages des formations technico-commerciales, de même aujourd’hui, je conseille une solide expérience technique, assortie à une très bonne connaissance de la conduite des affaires. L’une complète l’autre, pour envisager être un bon RSSI. Savoir capturer le drapeau n’est pas forcément nécessaire, ni suffisant.

Mon PC dans le Cloud

Comme vous le savez sans doute si vous me suivez sur Twitter, ou si vous avez lu l’épilogue de ma série de billet “25 ans dans une startup”, je travaille en région parisienne trois jours par semaine et je suis deux jours en télétravail dans ma province profonde (mais belle). Je précise que cette organisation a été mise en place AVANT le confinement de mars 2020, car j’ai la chance d’avoir un employeur moderne. J’en ai fait le bilan dans ce billet consacré au télétravail.

Mon employeur a mis à ma disposition un ordinateur portable qui me suit partout, et j’ai un ordinateur fixe personnel chez moi dans ma province profonde (mais belle) ET un ordinateur personnel chez moi dans ma “coquette petite studette en souplex” de région parisienne. J’ai également installé une VM privée sur mon ordinateur professionnel.

Cela fait donc 3 ordinateurs privés sur lesquels je veux retrouver les mêmes outils, les mêmes habitudes, les emails déjà lus, les mêmes partages de fichiers, etc.

Tout allait bien dans le meilleur des mondes, mais j’étais un peu agacé parfois de devoir synchroniser à la main une configuration, installer trois fois un nouveau logiciel, et maintenir des partages de fichiers en toute sécurité. N’était-il pas possible de simplifier un peu tout cela ?

J’écoutais, de plus en plus séduit, l’appel des sirènes du Cloud. Je voyais passer dans ma veille technologique des appels appuyés en direction des gamers pour qu’ils basculent leurs configurations vers des solutions telles que Google Stadia, Nvidia Geforce Now, xCloud de Xbox ou PlayStation Now. Des gamers ! Alors, pourquoi pas un petit PC perso avec sa petite configuration aux petits oignons ?

Oui mais et ma vie privée dans tout cela ? Et le coût ? Et la sécurité ? Après tout, le Cloud, ce n’est rien d’autre qu’un datacenter géré par quelqu’un d’autre et accessible de partout depuis un accès internet. Il faut se poser les bonnes questions : qui fera les sauvegardes, les mises à jour de sécurité, les montées de version des logiciels et des OS, qui sera “root” sur mes données ?

Autant de questions auxquelles il m’a bien fallu répondre pour l’hébergement de ce blog : après avoir testé l’autohébergement d’un WordPress sur YunoHost, j’ai préféré et choisi la location d’un VPS chez OVH, avec son offre Kimsufi à 3,59€ par mois. Je fais régulièrement un backup (et des tests) sur le WordPress de mon YunoHost. Je présenterai mon usage de la fantastique solution YunoHost dans un billet qui lui sera dédiée.

Oui MAIS : faire héberger un blog, ce n’est pas tout à fait la même chose que de faire héberger la totalité d’un ordinateur personnel… Et après avoir étudié les coûts, les solutions proposées, les risques, le coût des sauvegardes et la sécurité, voici ce que j’ai choisi.

A cause des coûts, j’ai abandonné la notion de “datacenter géré par quelqu’un d’autre” pour ne garder que celle de “accessible de partout depuis un accès internet”. Comme les solutions de type TeamViewer demandent de confier la partie sécurité à quelqu’un d’autre, j’ai donc choisi l’autohébergement complet de ma solution :

J’ai viré de mon ordinateur professionnel, la VM privée que j’y avait installé. J’ai entièrement réinstallé l’ordinateur personnel de ma coquette studette souplex pour n’y laisser que le système d’exploitation (Linux Mint, mais cela aurait aussi bien pu être Windows). Je n’ai conservé qu’un seul ordinateur personnel : celui qui se trouve chez moi.

J’y ai installé le logiciel NoMachine qui est ce que j’ai trouvé de plus efficace pour gérer deux écrans, les périphériques USB et le son à distance.

J’ai configuré le Wake On Line du PC de la manière suivante :
– dans le BIOS, j’ai activé “démarrage sur périphérique PCI-E” ;
– dans l’OS Linux Mint, j’ai activé le WoL avec la commande : sudo ethtool -s enp3s0 wol g

Depuis un PC distant, j’accède de manière chiffré à mon réseau privé grâce à OpenVPN en me connectant sur mon serveur NAS (qui fait tourner le service VPN), puis dans ce canal sécurisé je me connecte en ssh à ma VM Debian (voir le billet “Mon matériel”)

J’allume (depuis cette VM) mon PC perso avec la commande : wakeonlan -i IP -p 9 MAC où IP est l’adresse de broadcast de mon réseau privé et MAC l’adresse MAC du PC perso que je veux allumer.

Une fois démarré, j’y accède avec le client NoMachine (à travers le canal chiffré OpenVPN), et j’utilise mon “PC dans le Cloud” 🙂

Comme il est sous GNU/Linux, je peux si je veux le laisser allumer plusieurs jours sans surprise, si par exemple je lance sur ma carte graphique des calculs durant plusieurs jours.

Quelques remarques avant de vous laisser la parole en commentaire (je suis curieux de connaître vos solutions) :
– la solution NoMachine est vraiment puissante et efficace dans sa gestion des débits internet concernant les graphismes. Seul défaut relevé pour l’instant, elle ne gère pas ma Yubikey USB.
– l’accès par OpenVPN / ssh pour WoL / client NoMachine fonctionne également sous Android ou sur iPhone (pour la commande ssh sur iPhone, j’utilise l’excellente application a-shell).

Et vous, comment accédez-vous à un PC privé à distance ?

Source image https://www.pinterest.fr/pin/471963235926834775

Le réseau sans filtre

Cette histoire est fictive, inventée, les personnages sont imaginaires, le billet est écrit suite à un commentaire du billet précédent. Ça m’a donné cette idée d’une histoire qui pourrait être vraie. Ou pas.

Je m’appelle Brendan Barnes, je suis informaticien dans une PME, et il m’est arrivé un truc pas possible, que j’en ai pas dormi de la nuit suivante… J’étais au fond de mon lit quand on a sonné à la porte. Un peu vaseux, je me demande ce qu’il se passe, et d’abord, quelle heure est-il ? 6h05 du matin ! Mais qu’est-ce qu’il se passe me dit ma femme ? Je vais voir, lui répondis-je. J’ouvre la fenêtre de la chambre et je passe la tête pour regarder en bas dans la rue qui sonne à la porte. Je vois un groupe de personne, dont deux policiers. Ils me demandent de descendre leur ouvrir la porte…

J’enfile vite fait un peignoir, préviens ma femme de se lever rapidement car la police est en bas, et je descend les escaliers, en essayant de ne pas réveiller les enfants.

“Bonjour Monsieur Barnes, Maître Malicorne, Huissier de justice, je viens procéder à une perquisition. Je suis accompagné d’un expert judiciaire informatique, d’un serrurier et de la force publique autorisée par le juge d’instruction, comme écrit sur ce document. Je vous remercie de nous laisser entrer sans opposition comme la loi vous y oblige.”

Et me voilà avec cinq personnes entassées dans mon hall d’entrée, et qui attendent le visage sombre que l’huissier finisse de me lire des papiers auxquels je n’entends rien. Mes pensées virevoltent et mon cerveau est bloqué en mode “MAIS QU’EST-CE QUE C’EST QUE CE CAUCHEMAR”.

Heureusement, H., ma femme, vient me sortir de ma paralysie en criant fort à propos : “MAIS QUI ÊTES-VOUS QU’EST-CE QUE VOUS FAITES LA FAITES MOINS DE BRUIT VOUS ALLEZ RÉVEILLER LES ENFANTS !”

Les enfants sont effectivement bien réveillés, debout dans les escaliers, et pleurent à chaudes larmes : le cauchemar est devenu bien réel.

Une fois les enfants et ma femme calmés, tous les adultes se sont retrouvés entassés dans mon bureau-bazar et l’expert judiciaire a commencé à regarder le contenu des différents supports : les disques durs des ordinateurs de la maison, y compris ceux des consoles de jeux, de la box, puis il a exploré le réseau informatique. Il a repéré les Raspberry Pi et NAS sur lesquels j’héberge tous les services de la maison. Il semblait aussi très intéressé par le parefeu que j’ai mis en place sur mon ordinateur. Puis il a lancé la copie des différents disques durs où je stocke les données de la maison…

Je me suis senti dépossédé de toute ma vie privée.

Les copies numériques vers les disques durs de l’expert ont pris des heures. Pendant tout ce temps là, j’ai pu prendre conscience des raisons pour lesquelles j’en étais là. Les policiers étaient partis, le serrurier aussi. Les enfants étaient à l’école et j’avais convaincu mon épouse d’aller à son travail. Je restais seul avec l’huissier et l’expert judiciaire.

L’expert judiciaire avait l’air d’un brave bougre. Il m’a donné quelques unes des clés de ma situation.

Depuis des années, je télécharge des trucs sur internet : des films, des programmes, des jeux… Je connais tous les trucs pour échapper aux radars des autorités. Au fur et à mesure que les “ayant trop de droits” ont obtenu du législateur des lois allant toujours plus dans le sens de leurs intérêts, j’ai du m’adapter pour éviter les pièges. Après avoir abandonné eDonkey pour télécharger les trucs que la communauté se partage sur cet espace de liberté qu’est internet, je me suis rabattu sur des outils plus sûrs pour récupérer les derniers films du box office et les cracks des logiciels que j’installe sur les ordinateurs des enfants : j’ai investi dans un VPN qui me permet de contourner les décisions débiles des multinationales du cinéma qui se sont découpées le monde en zone de marché où elles imposent les prix qu’elles veulent. Souvenez vous des DVD qu’on achetait lors d’un voyage et dont on découvrait un peu stupéfait qu’on ne pouvait pas les lire sur notre lecteur DVD de salon, sans le “dézoner” !

Alors, j’ai continué à récupérer des jeux crackés, des films rippés, des clés d’activation et des patchs de contournement des DRM, via Tor, via I2P, via FreeNet et consorts.

Plus le monde impitoyable des copyrights et des brevets logiciels cherchait à imposer ses lois (et réussissait auprès des législateurs du monde entier), plus je jubilais derrière mon écran. HADOPI, mon Amour.

Et là, un expert judiciaire qui s’ennuie dans mon bureau pendant la copie de toutes mes données, m’explique que j’ai un gros trou dans la raquette, que depuis le remplacement de ma box par la nouvelle version plus performante, je ne peux plus désactiver l’option IPv6, que tous mes équipements disposent maintenant d’une adresse IPv6 locale et globale qui leur permet d’accéder directement à internet, que le parefeu intégré à ma box est très permissif concernant IPv6 “pour que ça marche”, que le parefeu de mon PC est parfaitement étanche pour une configuration IPv4 mais pas pour une configuration IPv6, que j’ai bien déactivé la configuration IPv6 de ma carte réseau, mais pas celle de mes équipements, que mon VPN utilise les DNS de ma box…

Bref, il m’explique ce que je sais déjà : à 40 ans, je n’ai jamais appris pendant mes études les détails, la gestion et les subtilités d’une configuration IPv6. Mes profs continuent d’ailleurs pour la plupart à enseigner les classes C des réseaux IP. Donc, je sais qu’IPv6, c’est l’avenir, que les adresses sont des trucs qui ressemblent à 2001:db8:0:85a3::ac1f:8001, et qu’au boulot personne ne veut en entendre parler, parce que c’est déjà difficile de maîtriser nos équipements IPv4 avec le spanning tree, les broadcasts, les VLAN, DNS et DHCP, pour ne pas en plus doubler la gestion avec IPv6.

Et là, maintenant, je paye le prix fort pour mon serveur Xpenology qui discute en IPv6 avec Synology Corp concernant ses statistiques de fonctionnement, pour mon serveur qui discute en IPv6 avec HP Corp de son iLO dont la clé a été récupérée via Google Corp, pour ma console Xbox qui discute en IPv6 avec Microsoft Corp du catalogue de jeux piratés que j’utilise.

Et je vais aussi payer au prix fort pour les centaines de DVD rippés stockés en clair sur mon serveur multimédia familial que ce salaud d’expert judiciaire est en train de copier.

Parefeu non homologué AFNOR non validé DGA

Mon matériel

Machine de calcul, fleuron de mon petit musée personnel – Photo Zythom

Travailler dans la sécurité informatique, même comme débutant motivé, m’a amené à analyser d’un œil neuf l’organisation informatique de la maison. Fidèle à mon souhait de partage, je vais décrire ici l’équipement que j’utilise et comment j’en suis arrivé là. Soyez indulgent et constructif : aidez-moi.

Ce billet est consacré aux réseaux et serveurs de la maison. J’aborderai plus en détail les logiciels sans doute dans un ou plusieurs autres billets.

Tout d’abord, je voudrais rappeler qu’en matière de sécurité, rien n’est terminé. Tout évolue très vite, avec des experts de haut niveau qui suivent cela de près et qui sont eux-même dépassés d’une certaine manière. La règle d’or est donc la modestie. Il ne s’agit donc pas de décrire une solution parfaite et sûre, mais l’évolution d’une informatique domestique particulière (la mienne), avec la vision d’un informaticien plein d’incertitudes.

A tout seigneur tout honneur, regardons un peu du côté du réseau. Et je devrais dire DES réseaux. En effet, suite à une panne ayant duré 30 jours chez mon prestataire fournisseur d’accès à internet (pendant laquelle j’ai mis en place en catastrophe un accès 4G partagé, accès grillé en 2 jours par mon fils adapte du streaming ^^), je dispose de deux box internet, d’un accès 4G de secours et d’une fibre “chez un ami” :
– une Freebox fibre mini 4k
– un boîtier ADSL chez OVH
– un vieux routeur DLink sur lequel on peut brancher une clé USB 4G
– une Freebox fibre Delta S “chez un ami”.

Le cœur de réseau est un switch Netgear 16 ports GS316. Celui-ci n’est pas administrable, et ne permet pas de segmenter le réseau en VLAN, mais il n’est pas cher, il est silencieux et très stable. J’ai inscrit dans ma “TODO list” son remplacement pour pouvoir isoler un peu mieux les usages et séparer le cabinet individuel de mon épouse, mon cabinet d’expertise et les données partagées familiales. Pour l’instant, tout est branché sur le même réseau filaire…
– Avantages : simplicité, partage collectif du photocopieur/imprimante/scanner, partage du serveur de sauvegarde, partage des accès internet.
– Inconvénients : la sécurité est minimale, et un device peut mettre le dawa avec un cryptovirus, tout le monde voit tout le monde… A améliorer donc.

Pendant le confinement, je me suis amusé à mettre en place un basculement automatique vers l’ADSL en cas de coupure sur la fibre, avec une VM pfSense et un choix audacieux sur les masques de réseau, mais je suis revenu dessus et pour l’instant, j’interviens à la main, y compris à distance.

Ne pas avoir mis en place de VLAN, cela n’empêche pas de vouloir segmenter un peu son réseau. Surtout quand on ne fait pas DU TOUT confiance dans ses fournisseurs d’accès internet. J’ai donc isolé les box sur des réseaux qui leur sont dédiés (chaque box vient avec son switch intégré, donc c’est facile), séparé du mien par des petits routeurs Ubiquiti ER-X (à environ 55 euros pièce). Chaque routeur est vu par la box comme étant la DMZ vers laquelle elle envoie tout son trafic, et la gestion des flux est faite depuis le routeur (qui lui m’appartient).

LE réseau le plus sensible est celui du cabinet d’avocat de mon épouse, installée en individuelle dans des locaux adjacents à la partie privative de la maison. J’ai donc séparé son ordinateur avec un troisième routeur ER-X sur lequel elle a la main pour choisir sa passerelle par défaut en cas de coupure internet. Son photocopieur/imprimante/scanner est relié à son PC en USB et au réseau domestique par sa prise Ethernet pour partage avec la maisonnée.

Le troisième réseau de la maison est le réseau Wifi. J’ai longtemps utilisé de nombreuses bornes Wifi “premiers prix”, mais suite aux différentes failles trouvées en 2019 et 2020 (KRACK, Krook, etc.) et à l’ancienneté de mes différents AP qui ne disposent pas de suivi de leur constructeur (donc pas de patchs), j’ai investi dans un groupe de 4 bornes UniFi UAP-AC-Pro qui me permettent de couvrir toute la maison, bureaux, terrasses et jardin de mon domaine (j’habite en province comme on dit à Paris). Ces bornes nécessitent un contrôleur, mais celui-ci peut être une VM et c’est le choix que j’ai fait. J’y reviendrai ci-dessous dans la partie consacrée aux serveurs. Ces bornes Wifi permettent le roaming lors des déplacements dans la maison, et diffusent deux réseaux : un réseau Wifi privatif qui accède aux NAS et un réseau Wifi “Guests” pour les visiteurs (les amis, les amis des enfants, la famille, etc.). Ce dernier ne donne accès qu’à Internet, et un QR-Code est affiché un peu partout dans la maison avec le mot de passe en clair (HADOPI même pas peur).

A propos de domaine, j’ai pour l’instant fait le choix de me passer d’un contrôleur de domaine ou d’un annuaire centralisé : les enfants sont équipés d’ordinateurs portables et de tablettes avec des comptes locaux, comme tous les ordinateurs fixes de la maison, le tout sous Windows, GNU/Linux, Android et iOS. Je réfléchis à un contrôle de l’identité plus strict, dans le cadre d’une approche “Zero trust”, mais je tâtonne encore un peu… Sur ma TODO list donc.

Lorsque c’est possible, les disques durs sont chiffrées avec Bitlocker ou le chiffrement intégré. Les données les plus sensibles sont dans des containers VeraCrypt.

Côté serveurs, il y a trois systèmes hardwares différents :
– un NAS Synology (un DS918+ avec 4 disques durs de 4To) ;
– un HP micro server Gen8 (dont j’ai parlé ici il y a longtemps), initialement sous OpenMediaVault et dont j’ai découvert pendant le confinement qu’il fonctionnait parfaitement sous VMware ESXi 6.5 et qui est dédié aux sauvegardes locales (4 disques de 6To) ;
– un Raspberry PI avec un disque dur USB de 4To, sous YunoHost, dédié à l’autohébergement et à l’externalisation des sauvegardes. Cet équipement est hébergé “chez un ami” qui a la fibre.

Le NAS Synology gère le service DHCP du réseau, ainsi que le service de partage de fichiers. Il permet également d’héberger des VM :
– une VM Debian 10 qui porte le service de contrôleur Wifi, et le service d’accès distant OpenVPN (j’ai arrêté de paramétrer les box des FAI pour faire du NAT de tous les ports dont j’ai besoin, sauf pour le port OpenVPN) ;
– une VM Pi-Hole qui porte le service DNS et les listes de filtrage publicitaire et malware.

La box Delta S permet d’héberger sous forme de VM un nœud Tor sous Debian, directement exposé sur internet.

J’ai ajouté récemment une carte RAID LSI 9240-8i dans le micro serveur HP Gen8 sous ESXi pour gérer de manière matérielle la panne éventuelle de disques durs. Je l’ai passé à cette occasion sous VMware ESXi pour m’amuser avec des VM non vitales qui soulagent le NAS familial. Il héberge entre autres une VM OpenMediaVaut pour les sauvegardes de tous les ordinateurs de la maison (et du NAS Synology), une VM Windows pour tester des trucs propres à Windows, et une VM SELKS pour surveiller un peu tout cela.

Les sauvegardes des postes fixes sont faites vers le serveur de sauvegardes HP Gen8. Les sauvegardes des données importantes (containers VeraCrypt) sont faites vers le NAS familial, qui lui-même est sauvegardé vers le serveur de sauvegardes HP Gen8. Il est également sauvegardé vers le NextCloud autohébergé sur le serveur YunoHost à l’extérieur de la maison. C’est également ce serveur NextCloud qui reçoit les sauvegardes des ordinateurs portables des enfants qui ont quitté le nid familial.

Depuis leur départ, je teste une synchronisation des photos et films familiaux du NAS vers un kDrive du cloud Infomaniak, pour un partage avec eux et préparer une transmission numérique de nos souvenirs (je ne suis pas éternel).

Pour le blog, après avoir testé l’autohébergement d’un WordPress sur YunoHost, j’ai préféré la location d’un VPS chez OVH, avec son offre Kimsufi. Je fais régulièrement un backup (et des tests) sur le WordPress de mon YunoHost.

Comme je suis souvent en déplacement professionnel et que je rechigne à installer des données personnelles sur mon ordinateur professionnel, j’ai étudié l’accès à un ordinateur personnel dans le cloud, façon Stadia, Shadow, GeForce Now, xCloud ou PlayStation Now pour les gamers. Après avoir testé différentes solutions (machine dans Azure, GCP et autres hébergeurs), j’ai choisi une solution toute simple : je me connecte avec OpenVPN à mon réseau personnel et je démarre à distance mon PC perso sur lequel j’ai installé le logiciel NoMachine.

J’ai un PC bas de gamme à base de i5 mais avec deux écrans 24″, gonflé à 16Go de mémoire et animé par une Linux Mint Cinnamon. C’est mon dernier enfant qui a récupéré ma carte graphique GTX 1060 qui fait tourner tous les jeux qu’il pratique. Du coup, je teste mes programmes utilisant CUDA sur un vieux portable disposant d’une petite carte Nvidia. Un jour, à la retraite, je m’offrirai un cluster GPU pour chauffer mes vieux os et faire tourner mes programmes de deep learning 🙂

Dans de prochains billets, j’aborderai plus en détail les logiciels, les sauvegardes et les différents outils survolés ici.

Et vous, quelles solutions pour vos réseaux/serveurs avez-vous choisies ?

L’auberge des blogueurs

J’ai la chance de pouvoir participer à une expérience d’écriture assez incroyable : plus de 60 personnes vont écrire des histoires autour du même lieu virtuel : une auberge où chacun joue un personnage avec des interactions qui vont se faire au fil du temps.

J’ai réservé pour 3 semaines de vacances à l’auberge (en vrai je ne suis pas en vacances, hein) et je vais essayer de construire un personnage de roman pour la première fois !

C’est pour moi une vraie expérience, comme pour les autres participants, donc soyez indulgents.

Je vais déserter ce lieu pour quelques jours, si vous voulez suivre l’expérience, il suffit de venir nous lire ici : https://auberge.des-blogueurs.org/

Je vous laisse découvrir mon personnage (c’est très facile) et celui des autres blogueurs. L’expérience va durer tout l’été (mais je n’ai réservé que 3 semaines). Je n’écrirai pas un billet par jour, mais je vais essayer de construire quelque chose. On verra bien 🙂

Auberge des blogueurs