• [^] # Re: Non il ne faut jamais faire confiance à personne

    Posté par . En réponse au message USB Keyboard. Évalué à 7.

    Si effectivement on veut neutraliser ce genre d'attaque il suffit d'écrire des règles udev voir ici
    pour n'autoriser que ton clavier sur l'usb par exemple (faut penser à mettre la souris aussi peut être), on peut affiner les régles udev pour n'autoriser que le numéro de série que d'un clavier précis et sont branchement sur un port usb précis du système.

    Pour ma part, j’ai bricolé quelque chose avec udev, en me basant non pas sur un numéro de série, mais sur le postulat que les périphériques USB d’entrée (claviers, souris et assimilés) « légitimes » sont ceux qui sont déjà branchés lors du démarrage, et seulement ceux-là (je connecte et déconnecte fréquemment des clefs USB à n’importe quel moment une fois le système démarré, mais jamais des claviers et des souris).

    Partant de ce principe, à la fin de l’initialisation du système (donc une fois que tous les périphériques « légitimes » ont été détectés), j’ajoute la règle Udev suivante :

    ACTION=="add", SUBSYSTEM=="input", SUBSYSTEMS=="usb", ATTRS{authorized}==1, ENV{PARID}="$id", RUN+="/bin/sh -c 'echo 0 >/sys/bus/usb/devices/$env{PARID}/authorized'"
    

    qui désactive automatiquement tout nouveau périphérique USB d’entrée, et je recharge Udev — le « truc » est que recharger les règles Udev n’a pas d’effet sur les périphériques déjà connectés, seulement sur ceux qui seront branchés plus tard, donc les périphériques qui étaient déjà là au démarrage ne seront pas touchés. Les autres types de périphériques (clefs USB notamment) ne sont pas affectés non plus, du fait de la sélection sur le SUBSYSTEM=="input".