Une couche Hardware | Matériel indétectable

BlackBeard SEE

Sharing Exclusive Experiences
Premium
Inscription
29 Août 2016
Messages
411
Réactions
173
Points
688
Bonjour à tous & bienvenue dans ce nouveau tutoriel !

INTRODUCTION

Aujourd'hui nous allons voir comment rendre notre matériel indétectable.
Il va sans dire que pour quelqu'un qui n'a aucune connaissance du monde du hardware et qui ne saurais distinguer un téléphone d'un smartphone, la lecture sera aussi ardue que l'écriture l'a été pour moi qui n'y connaissait de prime abord pas grand-chose…

Je vous cache pas que ça a donné un peu du grand n'importe quoi au début et j'ai flingué beaucoup de matériel pour en arriver à ces conclusions.

Note : Dans cet exemple, pour effectuer les manipulations, je vais utiliser un linux quelconque avec ses packages de bases, vous pouvez en faire de même pour les tests de configuration.

[1] L’ENVIRONNEMENT

Tout d'abord, il est nécessaire de déterminer ce que vous comptez utiliser pour aller sur tor.
Un smartphone ? Un ordinateur portable ? Une tour de bureau ? Nous allons voir ici que le choix le plus évident reste le plus sûr.

LE SMARTPHONE

Un téléphone portable tactile contenant un mini-OS généralement de type « android » semble alléchant à première vue, car il fournit la possibilité de se connecter de n'importe où au monde pourvus qu'il y ai un réseau GSM de seconde génération au minimum.
Néanmoins, les réseaux téléphoniques sont conçus sous la forme de cellules plus au moins grosses sur toute la surface du globe terrestre, il est donc possible de retracer un téléphone à partir de son émission cellulaire de manière très précise.
De plus, même si android est un système « libre », on lui reproche d'être contrôlé par google dont il dépend dans les faits (et ça n'est pas une bonne nouvelle).
Nous n'avons donc pas la possibilité de maîtriser correctement le système android pour protéger notre anonymat, et je pense qu'il est inutile de parler des systèmes comme iOS ou Windows phone puisque eux ne font même pas mine d'être open-source.
Dans ces conditions, utiliser une application comme orbot pour aller sur le réseau tor est suicidaire (ou plus métaphoriquement « exhibitionniste »).
Enfin, certain libristes pourront me parler de firefox OS, répliquant, ou encore cyanogenMod, et à ceux là, je répondrais : montrez moi un OS comme répliquant qui parvient à établir une connexion au réseau téléphonique a partir d'une SIM non-insu du commerce sans passer par le hardware en comptant sur son silence et on pourra parler.

LA TABLETTE

La tablette étant du point de vue hardware très semblable à un gros smartphone, et en sachant qu'elle utilise quasiment les mêmes OS, le discours à tenir à son égard est le même que celui pour le smartphone.

L'ORDINATEUR PORTABLE

Un ordinateur portable, semble quand à lui très intéressant car il peut, comme un smartphone, se connecter à internet d'un peu partout sans trop de difficulté, de plus, on peut y coupler l'accès à internet de son smartphone (de nombreux tutoriel existent sur le clear web pour cela).
Sans compter qu'il est beaucoup plus maniable et qu'on peut y placer l'OS qui nous conviendrais le plus sans soucis majeur.
Néanmoins, nous pouvons remarquer que la plupart des mouchards actuels ont été montés sur des ordinateurs portables, comme le plus célèbre Computer Trace.
Cela pour une raison simple : un ordinateur portable est beaucoup plus dur à démonter qu'un ordinateur fixe, l'intégration de mouchards ou de backdoor dedans est donc plus sûre et il y a moins de risque que quelqu'un aille y fourrer son nez.
En définitif, utiliser un ordinateur portable peut passer, mais c'est une solution beaucoup moins viable que le reste.

L'ORDINATEUR FIXE

La tour de bureau possède l'avantage indéniable d'être démontable de A à Z, ce qui signifie modifiable de A à Z.
C'est dans cette optique que la suite de ce tutoriel sera écrit, donc si vous choisissez une autre solution que celle-ci, l'utilité de la suite de ce tutoriel vous sera amoindri.
Il est beaucoup plus difficile de placer un mouchard sur un ordinateur fixe, il possède quasiment tout les avantages d'un ordinateur portable (sauf la portabilité).

LES MICRO-ORDINATEURS

Vous avez sans-doute déjà entendu parler des Raspberry Pi ?
Ces petites ordinateurs pas plus gros que votre pied et qui ont une puissance suffisante pour faire tourner un linux sans soucis.
Tout d'abord, sachez que le hardware de ces machines est encore trop closed-source pour le moment, ils ne diffèrent donc pas d'un ordinateur portable pour une raison simple : ils sont plus qu'une simple carte mère, ils constituent un cœur de système et une backdoor est donc a peu près à placer dessus que sur un ordinateur portable.
Néanmoins, à l'avenir, si leur hardware devient plus accessible, ils seront une solution plus intéressante, et à ce moment là, MinnowBoard, Raspberry Pi ou Beagleboard envahiront nos maisons.
Enfin, leur utilité en tant que routeur a déjà été démontré, donc sachez que vous en aurez peut-être utilité dans la couche réseau (le dernier tutoriel que je ferais dans cette lignée).

[2] LA COMPOSITION D'UN ORDINATEUR SUR

Ici, nous allons voir comment prendre des composants qui nous garantiront une sécurité maximal.
Il faut bien comprendre pour commencer que chaque partie du PC peut être démonté pour subir un examen approfondi séparé.

LA CARTE-MÈRE

La carte mère est un élément sur lequel nous n'avons malheureusement pas trop de possibilités, mais par principe de sécurité, préférez les cartes mère actuelles qui contiennent tout les chipset dont vos outils pourraient avoir besoin.
Vous ne serez ainsi pas repérable par une absence de gestion de techno récentes.

Sous Unix, il existe une commande qui se nomme dmidecode qui vous permet de récupérer un grand nombre d'information sur votre carte mère, voici les références pour l'utiliser efficacement :

LA MÉMOIRE VIVE

En mémoire vive, les dernière génération de RAM sont également à préférer afin de ne pas souffrir de bugs de RAM fatigué, mais il peut-être beaucoup plus intéressant de prendre de la RAM ECC, car bien que ces barrettes de RAM soient plus chers, elles ont des fonctions de correction d'erreurs qui empêchent un bon nombre d'intrusion basés sur des failles logiciels par attaque dans la mémoire.
Il y a une autre chose à prendre en compte dans l'achat de la RAM, c'est sa résistance aux attaques par cold-boot.

Ces attaques consistes à intervenir physiquement sur l'ordinateur et à geler la RAM avec par exemple de l'azote liquide pour en récupérer le contenu.
Cela permet de récupérer tout ce qui est conservé dans la RAM sans trop de difficulté, par exemple les mots de passe VeraCrypt/dm-crypt, keepass...

Voici un exemple de dégradation de mémoire RAM qui n'est plus sous tension avec le temps :
1472635195-coldboot01.png
(5 secondes, 30 secondes, 60 secondes, et enfin 5 minutes)

La probabilité qu'on puisse effectuer une attaque de ce genre sur votre RAM est très faible mais si vous voulez aller loin, vous pouvez prendre cela en compte ( ).

LA CARTE GRAPHIQUE


Théoriquement, je vous dirais de ne pas en acheter, mais il est fort probable que vous en ayez par défaut alors nous allons partir du principe que vous devez en choisir une.
Tout d'abord, rappelons que le principe d'une carte graphique est d'accélérer le traitement de calcule concernant les parties graphiques de l'ordinateur grâce à des systèmes spécialement conçus pour cela.
Outre l'utilité de pouvoir jouer à des jeux vidéo, ce qui pour le moment nous concerne peu, ces fonctionnalités peuvent être détournés pour par exemple faire des calcules mathématiques normalement très longs :


Alors du coup, si vous choisissez une carte plutôt grand publique, vous aurez quelque chose d'optimisé pour le graphisme, mais je serais plutôt partisan de prendre une carte optimisé pour le calcule scientifique (comme AMD en faisaient à une époque), afin de bénéficier d'avantage certains pour le hacking (et pour la suite).
Si vous le pouvez, choisissez ainsi une ATI qui sont des cartes optimisé pour le calcule scientifique qui vous seront utiles pour la cryptographie.

Rappelons enfin que les cartes graphiques sont sujettes à une faille que l'on nomme le rowhammer, qui est une faille permettant de récupérer les info de la carte graphique sans consentement, il faut donc bien prendre garde à ce niveau à la façon dont on va construire son système par la suite.

Je rappel toutefois que dans toutes les carte mère actuelles, vous avez normalement un chipset de carte graphique qui suffit à faire tourner les interfaces graphique normales que nous aurons à utiliser dans la prochaine partie de ce long tutoriel. ;)
Cela signifie que si vous ne souhaitez prendre aucun risque, ne prenez pas de carte graphique.

LA CARTE RÉSEAU

Vous aurez par la suite la possibilité de vous connecter en ethernet ou en wifi et il faudra bien choisir en fonction des situation car votre carte possède souvent des caractéristiques uniques.

Si vous avez une carte réseau qui ne soit pas qu'ethernet incluse directement dans votre carte mère, regardez si vous pouvez changer son adresse mac sans soucis à l'aide de macchanger :

Si vous constatez que vous ne pouvez pas (ce qui est rare), vous avez le choix entre changer de carte mère ou acheter une PCI wifi/ethernet, une carte réseau spécifique a ajouter soit-même.

Utilisez la commande « lspci » sous unix pour savoir avec quoi est compatible vos bus PCI (et surtout combien vous en avez) sur votre ordinateur et achetez une carte réseau correspondante (en général, les intel Centrino ne pose pas de problème au niveau de la MAC, et les alpha awush, Edimax et Wistron non plus).

LA RNG

Le générateur de nombre aléatoire (ou Random Number Generator) est une des plus grosses problématiques auxquelles nous pouvons avoir affaire actuellement.

Pour faire simple, chaque carte mère possède un True RNG mais les TRNG des cartes mère peuvent être backdoorisés et cela comporte de gros risque de sécurité du point de vue de la cryptographique où l'aléatoire pur est vital.

Du coup, certaines personne estiment avoir besoin de TRNG externes à leurs ordinateurs.
Mais le problème se pose également sur les TRNG s'ils sont issu de matériel propriétaire, aussi l'un des meilleurs espoir que nous puissions avoir actuellement à ce niveau c'est ce genre d'outils :
Ainsi que de quoi tenter de créer vos propres RNG :


Pour le moment, nous n'avons pas besoin d'aussi grande quantité d'aléatoire que ça et on peut donc gaspiller d'autre ressource par sécurité donc on peut se contenter du TRNG de la carte mère (et nous verrons qu'il est possible dans la partie OS de se prémunir aisément face à cela).

Sachez cependant qu'il existe sous linux une commande « rngtest » qui permet d'évaluer un minimum la source d'aléatoire de l'ordinateur grâce à des normes d'analyse très précise.
Exemple d'utilisation : cat /dev/random | rngtest -c 4000

LE DISQUE DUR

Pour commencer, faisons le tour des types de disque dur existants.

D'abord, il y a les classiques disques dur SATA que je recommanderais car étant les plus simples à manipuler et étant ceux avec lesquels nous sommes le plus rodés.

Ensuite, il y a les disques dur SAS, que je recommande aussi, généralement utilisés par les entreprises, ce sont des SATA conçus avec des systèmes plus performants permettant une meilleur correction d'erreur en cas de problème sur le disque dur.
Cela signifie donc qu'ils sont idéals pour une utilisation courant où vous redoutez la perte de donnée, et leur durée de vie est bien plus grande.

Enfin, il y a les disques dur SSD, que je recommande moins car ils sont très nouveaux et , leur particularité est d'être beaucoup plus rapides que les autres car composés de cellule de 2 à 8 bits et non bit par bit.
Je les recommande uniquement pour le stockage d'un système d'exploitation de préférence amnésique et encore, si vous aimez prendre des risques, car les systèmes d’effacement de donnée dessus sont réellement encore très peu fonctionnels.

Pour ce qui est des disques dur USB et E-SATA, vous pouvez les considérer de la même façon que les SATA.
Nous parleront des NAS et des espaces de stockage réseau dans la couche réseau, ici, ils ne sont pas le sujet.

Le nombre de tour/minute est aussi un élément à prendre en compte sur le disque dur pour une raison simple.
Si vous avez besoin de tout effacer dans l'urgence plus vous avez un nombre de tout/minute élevé, plus votre ordinateur pourra effacer tout rapidement.
Personnellement, au-delà de 10 000 tours/minutes, j'estime que c'est suffisant.

Avant de parler du format du disque dur, on va s'intéresser quelque minutes à ses technologie internes.
Un disque dur HDD donne accès à des zones de stockage via une zone spéciale contenant des adresses LBA, cette zone se nomme le MBR (Master Boot Record).
Il est très important de vérifier les adresses LBA ainsi que le MBR avant de commencer à utiliser un disque dur afin de s'assurer qu'il n'est pas infecté ou cassé, pour cela, je vous recommande d'utiliser .
Via ses options avancés, vous installez GRUB2, puis vous faite un partitionnage et éventuellement l'installation de votre système d'exploitation.
Si vous soupçonnez fortement votre MBR, je vous recommande , la commande dd devrais vous permettre de l'extraire pour l'analyser.

Et si jamais vous avez encore des soucis, jetez un œil avec , vous découvrirez peut-être des EBR, et ce logiciel a le bon goût d'être très bien traduit en français.

Concernant le format du disque dur, il est recommandé d'éviter NTFS pour plusieurs raisons : d'abord, il est développé par microsoft windows, ensuite il contient un certain nombre d'ajouts comme des timestamps ou des logs comme USN et TxF.
Si vous savez que vous allez devoir utiliser ce disque dur avec beaucoup d'OS différents, par dépit je vous recommande le FAT32, bien qu'il soit de la même trempe que le NTFS, il contient légèrement moins d'indicateurs de le NTFS.
Si vous pouvez, idéalement, faites des partitions ext3 ou ext4, cela vous permettra en plus d'ajouter des container LUKS pour chiffrer vos données dans un gros coffre fort.

Pour plus d'info sur les disques dur et leurs problématiques en forensics, je vous renvoie .

Pour finir, afin de vous éviter de devoir demander à une entreprise spécialisé de récupérer les données perdu de votre disque dur cassé, je vous conseille d'utiliser un lecteur de données SMART qui vous indiquera (moyennant un peu d'apprentissage de son utilisation), si votre disque dur risque de vous lâcher prochainement et donc s'il serais sage de le remplacer rapidement.
Si tout est "OK", vous pouvez dormir sur vos deux oreilles à ce niveau.

LE PORT SD/MICRO-SD

Il peut y avoir une entrée SD ou microSD sur votre ordinateur qui peut vous amener à penser qu'il serais intéressant de mettre un OS anonyme comme tails dessus et de le faire tourner de la sorte.
Vous seriez avantagé en cas de besoin de destruction rapide car il vous suffira alors de sortir la carte SD de votre ordinateur puis de la détruire irréversiblement pour être tiré d'affaire.

Cependant, la technologie Secure Digital (SD) utilise comme système de stockage des NAND qui sont un système également utilisé par les SSD (donc forensics possible).
Vous ne devez donc en utiliser, comme pour les SSD uniquement pour un système d'exploitation amnésique et utiliser un autre stockage si vous voulez avoir une partie persistante.

LA BATTERIE

Si jamais l'électricité de vôtre maison est coupé, vous devez avoir une batterie raccordé à votre ordinateur et une autre pour votre routeur (ou box).
Sinon, il suffira à une personne qui vous soupçonne de faire sauter les plombs de votre maison et de voir si vous venez brusquement de couper votre connexion à tor pour vous démasquer.

Nous parleront plus précisément de ces problématiques de visibilité dans la vie réelle dans la couche réseau.

LE RESTE

Je passe volontairement sur les ventitrad, divers ventilateurs, le lecteur de CD, la batterie, les ports USB, etc.
Cela ne semble pas constituer pour le moment des éléments qui importent pour votre anonymat.

[3] DE LA QUESTION DU REVERSE ENGINEERING HARDWARE + DIVERS ASTUCES

Je sais que certains d'entre vous seront sans doute déçus de ne pas en trouver dans ce tutoriel mais je ne peut que vous expliquer que c'est justifié.
Pour ceux qui ne savent pas ce que c'est, sachez simplement qu'il s'agit du désassemblage de matériel électronique afin d'en comprendre totalement le fonctionnement.
Cela pourrais être utile dans le cadre de ce tutoriel afin de débusquer les divers possibles backdoor se trouvant sur notre matériel électronique.

Seulement il y a plusieurs problèmes à cela.

Tout d'abord, il faut bien comprendre que sur la plupart des composants que l'on pourrais examiner, il est possible de trouver des éléments suspects, mais il est impossible de les corriger directement dans le hardware, en particulier quand cela est rangé dans un bloc de mémoire statiques comme la DRAM ou la SRAM.

Ensuite, il faut bien comprendre qu'il est bien moins onéreux et complexe de régler ce genre de problème à l'aide du système d'exploitation, c'est donc sur le prochain tutoriel que beaucoup de problématiques hardware ici relativement peu examinés seront abordés en détail.
Enfin, le matériel d'extraction et de modification hardware est à la fois complexe et onéreux, et les divers outils qu'on peut utiliser comme le célèbre binwalk sont des éléments malheureusement balbutiants.
Comme astuce, pour le moment, je vous recommande de jeter un œil au projet CHIPSEC qui vise à créer un analyseur de PC déterminant si le hardware est plus sûr et bien configuré ou non.


UN MOT SUR L'OVERCLOCKING

Déjà, on va casser une idée reçu : l'overclocking, on peut toujours en faire, sur tout les processeurs.
Récemment, j'ai eu besoin d'overclocker un i7 et j'ai augmenté ses capacité de 73% par exemple.

Donc, pour commencer, sachez qu'il est possible pour n'importe quel programme de déterminer les caractéristiques du processeur.
En effet, il existe une instruction en assembleur nommé RDTSC qui sert à déterminer le temps d’horloge.
Il suffit donc de la lancer deux fois pour déterminer le temps d'horloge entre deux instructions.
Voici un code d'exemple pour les curieux :
Code:
#include <stdio.h>#include <stdint.h>[/SIZE][/FONT][/LEFT]
[FONT=Josefin Sans][SIZE=5]
[LEFT]int main(int argc, char **argv[]) {
     uint64_t msr1;
     uint64_t msr2;
 
     asm volatile ( "rdtsc\n\t"    // Returns the time in EDX:EAX.
             "shl $32, %%rdx\n\t"  // Shift the upper bits left.
             "or %%rdx, %0"        // 'Or' in the lower bits.
             : "=a" (msr1)
             :
             : "rdx");
 
     // Do other work...
 
     // Reprint the timestamp
     asm volatile ( "rdtsc\n\t"    // Returns the time in EDX:EAX.
             "shl $32, %%rdx\n\t"  // Shift the upper bits left.
             "or %%rdx, %0"        // 'Or' in the lower bits.
             : "=a" (msr2)
             :
             : "rdx");
 
     printf("msr: %llx\n", msr1);
     printf("msr: %llx\n", msr2);

}

Donc, avec ça, on peut s'accorder à savoir qu'un expert en processeur est en mesure de déterminer approximativement votre processeur via les temps d'exécution d'instruction (bien évidemment, il doit pour cela avoir la main sur une partie de votre environnement).

A ce niveau, l'overclocking peut être intéressant pour tromper les experts.
Cela dis, afin de ne pas attirer l'attention, n'overclockez jamais un CPU de dernière génération a fond, sinon vous deviendrez aisément identifiable.
Je vous recommande plutôt par exemple d'acheter un i5 et de l'overclocker jusqu'au niveau d'un i7, ce qui trompera ceux qui voudront s'en prendre à vous de la sorte.

Concernant le CPU par contre, vous pouvez overclocker comme bon vous semble car le CPU est beaucoup plus identifiable, et l'overclocker permet de le protéger de choses comme les attaques par rowhammer. ;)

Vous trouverez de très bonnes documentations là dessus sur le web, c'est une pratique légale.
Pour linux, je vous recommande par ailleurs ce logiciel :

Et enfin, pour les débutants :
Ne modifier qu'un tout petit peu la fréquence de votre CPU dans le Bios.

Et pour confirmés :
Modifiez la fréquence et le voltage comme il vous plaira.

Je suis désolé de ne pouvoir fournir plus sur ce turoriel qu'un genre de « guide » de construction d'un ordinateur un minimum protégé mais les recherche en RE hardware sont encore trop peu avancées pour fournir des solutions solides et intéressantes, il en va de même pour l'Open-Hardware, l'équivalent hardware de l'open-source.
Je laisse toutefois ici, comme une bouteille à la mer, divers projets et recherches hardware qui donneront peut-être à certains la vocation de se pencher sur le sujet bien plus profondément et peut-être nous fournir des solutions concrète autrement plus avancées.

Donc voilà le topic touche à sa fin, si vous avez des questions ou autres, n'hésitez pas a me contacté par message ou alors créé un topic et taguez moi dedans afin de partagé toutes réponse a votre question pour d'autres personne ayant la même difficulté.

Passez une excellente journée sur :RG:

Smoky
 

Moostik'

Conseillé Hardware
Premium
Inscription
29 Novembre 2014
Messages
7 516
Réactions
1 769
Points
11 691
Bonjour à tous & bienvenue dans ce nouveau tutoriel !

INTRODUCTION

Aujourd'hui nous allons voir comment rendre notre matériel indétectable.
Il va sans dire que pour quelqu'un qui n'a aucune connaissance du monde du hardware et qui ne saurais distinguer un téléphone d'un smartphone, la lecture sera aussi ardue que l'écriture l'a été pour moi qui n'y connaissait de prime abord pas grand-chose…

Je vous cache pas que ça a donné un peu du grand n'importe quoi au début et j'ai flingué beaucoup de matériel pour en arriver à ces conclusions.

Note : Dans cet exemple, pour effectuer les manipulations, je vais utiliser un linux quelconque avec ses packages de bases, vous pouvez en faire de même pour les tests de configuration.

[1] L’ENVIRONNEMENT

Tout d'abord, il est nécessaire de déterminer ce que vous comptez utiliser pour aller sur tor.
Un smartphone ? Un ordinateur portable ? Une tour de bureau ? Nous allons voir ici que le choix le plus évident reste le plus sûr.

LE SMARTPHONE

Un téléphone portable tactile contenant un mini-OS généralement de type « android » semble alléchant à première vue, car il fournit la possibilité de se connecter de n'importe où au monde pourvus qu'il y ai un réseau GSM de seconde génération au minimum.
Néanmoins, les réseaux téléphoniques sont conçus sous la forme de cellules plus au moins grosses sur toute la surface du globe terrestre, il est donc possible de retracer un téléphone à partir de son émission cellulaire de manière très précise.
De plus, même si android est un système « libre », on lui reproche d'être contrôlé par google dont il dépend dans les faits (et ça n'est pas une bonne nouvelle).
Nous n'avons donc pas la possibilité de maîtriser correctement le système android pour protéger notre anonymat, et je pense qu'il est inutile de parler des systèmes comme iOS ou Windows phone puisque eux ne font même pas mine d'être open-source.
Dans ces conditions, utiliser une application comme orbot pour aller sur le réseau tor est suicidaire (ou plus métaphoriquement « exhibitionniste »).
Enfin, certain libristes pourront me parler de firefox OS, répliquant, ou encore cyanogenMod, et à ceux là, je répondrais : montrez moi un OS comme répliquant qui parvient à établir une connexion au réseau téléphonique a partir d'une SIM non-insu du commerce sans passer par le hardware en comptant sur son silence et on pourra parler.

LA TABLETTE

La tablette étant du point de vue hardware très semblable à un gros smartphone, et en sachant qu'elle utilise quasiment les mêmes OS, le discours à tenir à son égard est le même que celui pour le smartphone.

L'ORDINATEUR PORTABLE

Un ordinateur portable, semble quand à lui très intéressant car il peut, comme un smartphone, se connecter à internet d'un peu partout sans trop de difficulté, de plus, on peut y coupler l'accès à internet de son smartphone (de nombreux tutoriel existent sur le clear web pour cela).
Sans compter qu'il est beaucoup plus maniable et qu'on peut y placer l'OS qui nous conviendrais le plus sans soucis majeur.
Néanmoins, nous pouvons remarquer que la plupart des mouchards actuels ont été montés sur des ordinateurs portables, comme le plus célèbre Computer Trace.
Cela pour une raison simple : un ordinateur portable est beaucoup plus dur à démonter qu'un ordinateur fixe, l'intégration de mouchards ou de backdoor dedans est donc plus sûre et il y a moins de risque que quelqu'un aille y fourrer son nez.
En définitif, utiliser un ordinateur portable peut passer, mais c'est une solution beaucoup moins viable que le reste.

L'ORDINATEUR FIXE

La tour de bureau possède l'avantage indéniable d'être démontable de A à Z, ce qui signifie modifiable de A à Z.
C'est dans cette optique que la suite de ce tutoriel sera écrit, donc si vous choisissez une autre solution que celle-ci, l'utilité de la suite de ce tutoriel vous sera amoindri.
Il est beaucoup plus difficile de placer un mouchard sur un ordinateur fixe, il possède quasiment tout les avantages d'un ordinateur portable (sauf la portabilité).

LES MICRO-ORDINATEURS

Vous avez sans-doute déjà entendu parler des Raspberry Pi ?
Ces petites ordinateurs pas plus gros que votre pied et qui ont une puissance suffisante pour faire tourner un linux sans soucis.
Tout d'abord, sachez que le hardware de ces machines est encore trop closed-source pour le moment, ils ne diffèrent donc pas d'un ordinateur portable pour une raison simple : ils sont plus qu'une simple carte mère, ils constituent un cœur de système et une backdoor est donc a peu près à placer dessus que sur un ordinateur portable.
Néanmoins, à l'avenir, si leur hardware devient plus accessible, ils seront une solution plus intéressante, et à ce moment là, MinnowBoard, Raspberry Pi ou Beagleboard envahiront nos maisons.
Enfin, leur utilité en tant que routeur a déjà été démontré, donc sachez que vous en aurez peut-être utilité dans la couche réseau (le dernier tutoriel que je ferais dans cette lignée).

[2] LA COMPOSITION D'UN ORDINATEUR SUR

Ici, nous allons voir comment prendre des composants qui nous garantiront une sécurité maximal.
Il faut bien comprendre pour commencer que chaque partie du PC peut être démonté pour subir un examen approfondi séparé.

LA CARTE-MÈRE

La carte mère est un élément sur lequel nous n'avons malheureusement pas trop de possibilités, mais par principe de sécurité, préférez les cartes mère actuelles qui contiennent tout les chipset dont vos outils pourraient avoir besoin.
Vous ne serez ainsi pas repérable par une absence de gestion de techno récentes.

Sous Unix, il existe une commande qui se nomme dmidecode qui vous permet de récupérer un grand nombre d'information sur votre carte mère, voici les références pour l'utiliser efficacement :

LA MÉMOIRE VIVE

En mémoire vive, les dernière génération de RAM sont également à préférer afin de ne pas souffrir de bugs de RAM fatigué, mais il peut-être beaucoup plus intéressant de prendre de la RAM ECC, car bien que ces barrettes de RAM soient plus chers, elles ont des fonctions de correction d'erreurs qui empêchent un bon nombre d'intrusion basés sur des failles logiciels par attaque dans la mémoire.
Il y a une autre chose à prendre en compte dans l'achat de la RAM, c'est sa résistance aux attaques par cold-boot.

Ces attaques consistes à intervenir physiquement sur l'ordinateur et à geler la RAM avec par exemple de l'azote liquide pour en récupérer le contenu.
Cela permet de récupérer tout ce qui est conservé dans la RAM sans trop de difficulté, par exemple les mots de passe VeraCrypt/dm-crypt, keepass...

Voici un exemple de dégradation de mémoire RAM qui n'est plus sous tension avec le temps :
1472635195-coldboot01.png
(5 secondes, 30 secondes, 60 secondes, et enfin 5 minutes)

La probabilité qu'on puisse effectuer une attaque de ce genre sur votre RAM est très faible mais si vous voulez aller loin, vous pouvez prendre cela en compte ( ).

LA CARTE GRAPHIQUE


Théoriquement, je vous dirais de ne pas en acheter, mais il est fort probable que vous en ayez par défaut alors nous allons partir du principe que vous devez en choisir une.
Tout d'abord, rappelons que le principe d'une carte graphique est d'accélérer le traitement de calcule concernant les parties graphiques de l'ordinateur grâce à des systèmes spécialement conçus pour cela.
Outre l'utilité de pouvoir jouer à des jeux vidéo, ce qui pour le moment nous concerne peu, ces fonctionnalités peuvent être détournés pour par exemple faire des calcules mathématiques normalement très longs :


Alors du coup, si vous choisissez une carte plutôt grand publique, vous aurez quelque chose d'optimisé pour le graphisme, mais je serais plutôt partisan de prendre une carte optimisé pour le calcule scientifique (comme AMD en faisaient à une époque), afin de bénéficier d'avantage certains pour le hacking (et pour la suite).
Si vous le pouvez, choisissez ainsi une ATI qui sont des cartes optimisé pour le calcule scientifique qui vous seront utiles pour la cryptographie.

Rappelons enfin que les cartes graphiques sont sujettes à une faille que l'on nomme le rowhammer, qui est une faille permettant de récupérer les info de la carte graphique sans consentement, il faut donc bien prendre garde à ce niveau à la façon dont on va construire son système par la suite.

Je rappel toutefois que dans toutes les carte mère actuelles, vous avez normalement un chipset de carte graphique qui suffit à faire tourner les interfaces graphique normales que nous aurons à utiliser dans la prochaine partie de ce long tutoriel. ;)
Cela signifie que si vous ne souhaitez prendre aucun risque, ne prenez pas de carte graphique.

LA CARTE RÉSEAU

Vous aurez par la suite la possibilité de vous connecter en ethernet ou en wifi et il faudra bien choisir en fonction des situation car votre carte possède souvent des caractéristiques uniques.

Si vous avez une carte réseau qui ne soit pas qu'ethernet incluse directement dans votre carte mère, regardez si vous pouvez changer son adresse mac sans soucis à l'aide de macchanger :

Si vous constatez que vous ne pouvez pas (ce qui est rare), vous avez le choix entre changer de carte mère ou acheter une PCI wifi/ethernet, une carte réseau spécifique a ajouter soit-même.

Utilisez la commande « lspci » sous unix pour savoir avec quoi est compatible vos bus PCI (et surtout combien vous en avez) sur votre ordinateur et achetez une carte réseau correspondante (en général, les intel Centrino ne pose pas de problème au niveau de la MAC, et les alpha awush, Edimax et Wistron non plus).

LA RNG

Le générateur de nombre aléatoire (ou Random Number Generator) est une des plus grosses problématiques auxquelles nous pouvons avoir affaire actuellement.

Pour faire simple, chaque carte mère possède un True RNG mais les TRNG des cartes mère peuvent être backdoorisés et cela comporte de gros risque de sécurité du point de vue de la cryptographique où l'aléatoire pur est vital.

Du coup, certaines personne estiment avoir besoin de TRNG externes à leurs ordinateurs.
Mais le problème se pose également sur les TRNG s'ils sont issu de matériel propriétaire, aussi l'un des meilleurs espoir que nous puissions avoir actuellement à ce niveau c'est ce genre d'outils :
Ainsi que de quoi tenter de créer vos propres RNG :


Pour le moment, nous n'avons pas besoin d'aussi grande quantité d'aléatoire que ça et on peut donc gaspiller d'autre ressource par sécurité donc on peut se contenter du TRNG de la carte mère (et nous verrons qu'il est possible dans la partie OS de se prémunir aisément face à cela).

Sachez cependant qu'il existe sous linux une commande « rngtest » qui permet d'évaluer un minimum la source d'aléatoire de l'ordinateur grâce à des normes d'analyse très précise.
Exemple d'utilisation : cat /dev/random | rngtest -c 4000

LE DISQUE DUR

Pour commencer, faisons le tour des types de disque dur existants.

D'abord, il y a les classiques disques dur SATA que je recommanderais car étant les plus simples à manipuler et étant ceux avec lesquels nous sommes le plus rodés.

Ensuite, il y a les disques dur SAS, que je recommande aussi, généralement utilisés par les entreprises, ce sont des SATA conçus avec des systèmes plus performants permettant une meilleur correction d'erreur en cas de problème sur le disque dur.
Cela signifie donc qu'ils sont idéals pour une utilisation courant où vous redoutez la perte de donnée, et leur durée de vie est bien plus grande.

Enfin, il y a les disques dur SSD, que je recommande moins car ils sont très nouveaux et , leur particularité est d'être beaucoup plus rapides que les autres car composés de cellule de 2 à 8 bits et non bit par bit.
Je les recommande uniquement pour le stockage d'un système d'exploitation de préférence amnésique et encore, si vous aimez prendre des risques, car les systèmes d’effacement de donnée dessus sont réellement encore très peu fonctionnels.

Pour ce qui est des disques dur USB et E-SATA, vous pouvez les considérer de la même façon que les SATA.
Nous parleront des NAS et des espaces de stockage réseau dans la couche réseau, ici, ils ne sont pas le sujet.

Le nombre de tour/minute est aussi un élément à prendre en compte sur le disque dur pour une raison simple.
Si vous avez besoin de tout effacer dans l'urgence plus vous avez un nombre de tout/minute élevé, plus votre ordinateur pourra effacer tout rapidement.
Personnellement, au-delà de 10 000 tours/minutes, j'estime que c'est suffisant.

Avant de parler du format du disque dur, on va s'intéresser quelque minutes à ses technologie internes.
Un disque dur HDD donne accès à des zones de stockage via une zone spéciale contenant des adresses LBA, cette zone se nomme le MBR (Master Boot Record).
Il est très important de vérifier les adresses LBA ainsi que le MBR avant de commencer à utiliser un disque dur afin de s'assurer qu'il n'est pas infecté ou cassé, pour cela, je vous recommande d'utiliser .
Via ses options avancés, vous installez GRUB2, puis vous faite un partitionnage et éventuellement l'installation de votre système d'exploitation.
Si vous soupçonnez fortement votre MBR, je vous recommande , la commande dd devrais vous permettre de l'extraire pour l'analyser.

Et si jamais vous avez encore des soucis, jetez un œil avec , vous découvrirez peut-être des EBR, et ce logiciel a le bon goût d'être très bien traduit en français.

Concernant le format du disque dur, il est recommandé d'éviter NTFS pour plusieurs raisons : d'abord, il est développé par microsoft windows, ensuite il contient un certain nombre d'ajouts comme des timestamps ou des logs comme USN et TxF.
Si vous savez que vous allez devoir utiliser ce disque dur avec beaucoup d'OS différents, par dépit je vous recommande le FAT32, bien qu'il soit de la même trempe que le NTFS, il contient légèrement moins d'indicateurs de le NTFS.
Si vous pouvez, idéalement, faites des partitions ext3 ou ext4, cela vous permettra en plus d'ajouter des container LUKS pour chiffrer vos données dans un gros coffre fort.

Pour plus d'info sur les disques dur et leurs problématiques en forensics, je vous renvoie .

Pour finir, afin de vous éviter de devoir demander à une entreprise spécialisé de récupérer les données perdu de votre disque dur cassé, je vous conseille d'utiliser un lecteur de données SMART qui vous indiquera (moyennant un peu d'apprentissage de son utilisation), si votre disque dur risque de vous lâcher prochainement et donc s'il serais sage de le remplacer rapidement.
Si tout est "OK", vous pouvez dormir sur vos deux oreilles à ce niveau.

LE PORT SD/MICRO-SD

Il peut y avoir une entrée SD ou microSD sur votre ordinateur qui peut vous amener à penser qu'il serais intéressant de mettre un OS anonyme comme tails dessus et de le faire tourner de la sorte.
Vous seriez avantagé en cas de besoin de destruction rapide car il vous suffira alors de sortir la carte SD de votre ordinateur puis de la détruire irréversiblement pour être tiré d'affaire.

Cependant, la technologie Secure Digital (SD) utilise comme système de stockage des NAND qui sont un système également utilisé par les SSD (donc forensics possible).
Vous ne devez donc en utiliser, comme pour les SSD uniquement pour un système d'exploitation amnésique et utiliser un autre stockage si vous voulez avoir une partie persistante.

LA BATTERIE

Si jamais l'électricité de vôtre maison est coupé, vous devez avoir une batterie raccordé à votre ordinateur et une autre pour votre routeur (ou box).
Sinon, il suffira à une personne qui vous soupçonne de faire sauter les plombs de votre maison et de voir si vous venez brusquement de couper votre connexion à tor pour vous démasquer.

Nous parleront plus précisément de ces problématiques de visibilité dans la vie réelle dans la couche réseau.

LE RESTE

Je passe volontairement sur les ventitrad, divers ventilateurs, le lecteur de CD, la batterie, les ports USB, etc.
Cela ne semble pas constituer pour le moment des éléments qui importent pour votre anonymat.

[3] DE LA QUESTION DU REVERSE ENGINEERING HARDWARE + DIVERS ASTUCES

Je sais que certains d'entre vous seront sans doute déçus de ne pas en trouver dans ce tutoriel mais je ne peut que vous expliquer que c'est justifié.
Pour ceux qui ne savent pas ce que c'est, sachez simplement qu'il s'agit du désassemblage de matériel électronique afin d'en comprendre totalement le fonctionnement.
Cela pourrais être utile dans le cadre de ce tutoriel afin de débusquer les divers possibles backdoor se trouvant sur notre matériel électronique.

Seulement il y a plusieurs problèmes à cela.

Tout d'abord, il faut bien comprendre que sur la plupart des composants que l'on pourrais examiner, il est possible de trouver des éléments suspects, mais il est impossible de les corriger directement dans le hardware, en particulier quand cela est rangé dans un bloc de mémoire statiques comme la DRAM ou la SRAM.

Ensuite, il faut bien comprendre qu'il est bien moins onéreux et complexe de régler ce genre de problème à l'aide du système d'exploitation, c'est donc sur le prochain tutoriel que beaucoup de problématiques hardware ici relativement peu examinés seront abordés en détail.
Enfin, le matériel d'extraction et de modification hardware est à la fois complexe et onéreux, et les divers outils qu'on peut utiliser comme le célèbre binwalk sont des éléments malheureusement balbutiants.
Comme astuce, pour le moment, je vous recommande de jeter un œil au projet CHIPSEC qui vise à créer un analyseur de PC déterminant si le hardware est plus sûr et bien configuré ou non.


UN MOT SUR L'OVERCLOCKING

Déjà, on va casser une idée reçu : l'overclocking, on peut toujours en faire, sur tout les processeurs.
Récemment, j'ai eu besoin d'overclocker un i7 et j'ai augmenté ses capacité de 73% par exemple.

Donc, pour commencer, sachez qu'il est possible pour n'importe quel programme de déterminer les caractéristiques du processeur.
En effet, il existe une instruction en assembleur nommé RDTSC qui sert à déterminer le temps d’horloge.
Il suffit donc de la lancer deux fois pour déterminer le temps d'horloge entre deux instructions.
Voici un code d'exemple pour les curieux :
Code:
#include <stdio.h>#include <stdint.h>[/SIZE][/FONT][/LEFT][/SIZE][/FONT][/LEFT]
[FONT=Josefin Sans][SIZE=5]
[LEFT][FONT=Josefin Sans][SIZE=5]
[LEFT]int main(int argc, char **argv[]) {
     uint64_t msr1;
     uint64_t msr2;

     asm volatile ( "rdtsc\n\t"    // Returns the time in EDX:EAX.
             "shl $32, %%rdx\n\t"  // Shift the upper bits left.
             "or %%rdx, %0"        // 'Or' in the lower bits.
             : "=a" (msr1)
             :
             : "rdx");

     // Do other work...

     // Reprint the timestamp
     asm volatile ( "rdtsc\n\t"    // Returns the time in EDX:EAX.
             "shl $32, %%rdx\n\t"  // Shift the upper bits left.
             "or %%rdx, %0"        // 'Or' in the lower bits.
             : "=a" (msr2)
             :
             : "rdx");

     printf("msr: %llx\n", msr1);
     printf("msr: %llx\n", msr2);

}


Donc, avec ça, on peut s'accorder à savoir qu'un expert en processeur est en mesure de déterminer approximativement votre processeur via les temps d'exécution d'instruction (bien évidemment, il doit pour cela avoir la main sur une partie de votre environnement).

A ce niveau, l'overclocking peut être intéressant pour tromper les experts.
Cela dis, afin de ne pas attirer l'attention, n'overclockez jamais un CPU de dernière génération a fond, sinon vous deviendrez aisément identifiable.
Je vous recommande plutôt par exemple d'acheter un i5 et de l'overclocker jusqu'au niveau d'un i7, ce qui trompera ceux qui voudront s'en prendre à vous de la sorte.

Concernant le CPU par contre, vous pouvez overclocker comme bon vous semble car le CPU est beaucoup plus identifiable, et l'overclocker permet de le protéger de choses comme les attaques par rowhammer. ;)

Vous trouverez de très bonnes documentations là dessus sur le web, c'est une pratique légale.
Pour linux, je vous recommande par ailleurs ce logiciel :

Et enfin, pour les débutants :
Ne modifier qu'un tout petit peu la fréquence de votre CPU dans le Bios.

Et pour confirmés :
Modifiez la fréquence et le voltage comme il vous plaira.

Je suis désolé de ne pouvoir fournir plus sur ce turoriel qu'un genre de « guide » de construction d'un ordinateur un minimum protégé mais les recherche en RE hardware sont encore trop peu avancées pour fournir des solutions solides et intéressantes, il en va de même pour l'Open-Hardware, l'équivalent hardware de l'open-source.
Je laisse toutefois ici, comme une bouteille à la mer, divers projets et recherches hardware qui donneront peut-être à certains la vocation de se pencher sur le sujet bien plus profondément et peut-être nous fournir des solutions concrète autrement plus avancées.

Donc voilà le topic touche à sa fin, si vous avez des questions ou autres, n'hésitez pas a me contacté par message ou alors créé un topic et taguez moi dedans afin de partagé toutes réponse a votre question pour d'autres personne ayant la même difficulté.

Passez une excellente journée sur :RG:

Smoky
J ai pas compris le but de ce topic .
 

Symness

Développeur Web | Hardware
Premium
Inscription
1 Novembre 2011
Messages
260
Réactions
226
Points
19 903
A mon sens, il faut vraiment être parano pour arriver à ce stade... Rendre son matériel indétectable, je ne vois pas l'utilité...
 

T3chN0g3n

Membre
Inscription
26 Mai 2013
Messages
136
Réactions
19
Points
9 046
Hum ça sent le copier coller à plein nez ... Et si c'est pas le cas y'a un énorme boulot pour rendre le truc claire, avec une structure et des infos cohérente, bref rendre le truc lisible. Ton intro parle de rendre son matériel indétectable, mais il n'y a rien de tout ça dans l'article ! Et tu part du principe que masquer sa config hardware c'est juste pour aller sur Tor o.O Comme tu le dit dans ton intro, si tu n'y connais "pas grand-chose" peut-être serait-il judicieux de maîtriser un peut mieux le sujet avant dans faire un article ? Parce-que là désoler mais ça donne vraiment pas envie :/
 
Haut