๐Ÿ’พHardware Hacking

Sites / Vidรฉos:

Introduction

ร€ l'intรฉrieur d'un appareil intรฉgrรฉ se trouve une carte de circuit imprimรฉ (PCB) qui comprend les composants matรฉriels suivants : processeur, mรฉmoire volatile, mรฉmoire non volatile, composants analogiques et interfaces externes.

  1. Le processeur est intรฉgrรฉ dans un System on a Chip (SoC) ici au centre. Un processeur (ou unitรฉ centrale de calcul, UCC ; en anglais central processing unit, CPU) est un composant prรฉsent dans de nombreux dispositifs รฉlectroniques qui exรฉcute les instructions machine des programmes informatiques. Avec la mรฉmoire, c'est notamment l'une des fonctions qui existent depuis les premiers ordinateurs. Un processeur construit en un seul circuit intรฉgrรฉ est un microprocesseur.

  2. Gรฉnรฉralement implรฉmentรฉ dans des puces de RAM dynamique (DRAM), la mรฉmoire volatile est la mรฉmoire que le processeur utilise pendant qu'il est en action. Son contenu est perdu lorsque l'appareil s'รฉteint.

  3. A l'inverse, la mรฉmoire non volatile est l'endroit oรน le pรฉriphรฉrique intรฉgrรฉ stocke les donnรฉes qui doivent persister aprรจs la mise hors tension de l'appareil. Le stockage en mรฉmoire peut prendre la forme d'EEPROM (Electrically Erasable Programmable Read-Only Memory), de mรฉmoire flash ou mรชme de carte SD et disques durs.

Bien que peu intรฉressant pour la sรฉcuritรฉ en soi, sur un circuit imprimรฉ typique, les composants analogiques sont tous les petites parties noires, brunes et bleues qui ne ressemblent pas ร  une puce et peuvent avoir des "รฉtiquettes" commenรงant par "C", "R" ou "L".

Possibles composants du SoC

Le SoC peut contenir les รฉlรฉments suivants:

  • Un ou plusieurs (micro)processeurs + des pรฉripheriques

  • De la mรฉmoire volatile

  • De la mรฉmoire non-volatile

  • Des bus internes

Chacun de ces composants font partie de la surface d'attaque pour un attaquant et sont donc a prendre en compte.

Software

Le software est une collection structurรฉe d'instructions CPU et de donnรฉes qu'un processus exรฉcute. Il peut contenir aucun ou plusieurs de ces รฉlรฉments:

  • Un Initial Boot Code: Il s'agit d'une liste d'instructions exรฉcutรฉes au demarrage de l'appareil, le code de dรฉmarrage initial est gรฉnรฉrรฉ par le processeur et stockรฉ en ROM. La fonction principale du code ROM de dรฉmarrage est de prรฉparez le processeur principal pour exรฉcuter le code qui suit.

  • Le bootloader: Le chargeur de dรฉmarrage initialise le systรจme aprรจs l'exรฉcution du code ROM de dรฉmarrage. Il peut fournir des fonctionnalitรฉs pour le provisionnement d'un appareil ou dรฉbogage. รŠtre le premier code mutable ร  s'exรฉcuter sur un appareil en fait ainsi une cible attrayante pour un pirate.

Thรฉoriquement, la crรฉation de cette chaรฎne de confiance semble assez sรปre, mais peut รชtre vulnรฉrable ร  un certain nombre d'attaques, allant de l'exploitation de faiblesse de vรฉrification ร  l'injection de fautes en passant par les attaques de synchronisation, etc.

ressource: https://www.youtube.com/watch?v=B9J8qjuxysQ

  • TEE (Trusted Environment Execution): est une zone sรฉcurisรฉe d'un processeur principal . Il garantit que le code et les donnรฉes chargรฉs ร  l'intรฉrieur sont protรฉgรฉs en matiรจre de confidentialitรฉ et d'intรฉgritรฉ.

Pas trรจs commun dans l'IoT, plutรดt dans les appareils mobiles et tablettes.

  • Firmware: Dans un systรจme informatique, un firmware (ou micrologiciel) est un programme intรฉgrรฉ dans un matรฉriel informatique (ordinateur, photocopieur, automate (API, APS), disque dur, routeur, appareil photo numรฉrique, etc.) pour qu'il puisse fonctionner.

Un systรจme informatique ne possรฉde pas forcรฉment un firmware. Cependant, il est possible que plusieurs composants de ce mรชme systรจme eux en possรจdent(Une carte wifi par exemple).

  • OS (Operating System): En informatique, un systรจme d'exploitation est un ensemble de programmes qui dirige l'utilisation des ressources d'un ordinateur par des logiciels applicatifs.

    Il reรงoit des demandes d'utilisation des ressources de l'ordinateur, ressources de stockage de mรฉmoire (par exemple des accรจs ร  la mรฉmoire vive, aux disques durs), ressources de calcul du processeur central, ressources de communication vers des pรฉriphรฉriques (pour parfois demander des ressources de calcul au GPU par exemple ou tout autre carte d'extension) ou via le rรฉseau de la part des logiciels applicatifs. Le systรจme d'exploitation gรจre les demandes ainsi que les ressources nรฉcessaires รฉvitant les interfรฉrences entre les logiciels.

Derniรจre mise ร  jour