Bonjour,
Sous unix, il existe une commande qui s'appelle cksum. Elle calcule et affiche le checksum d'un fichier. L'algorithme utilisé est un CRC, lequel, je ne sais pas encore mais je ne pense pas que cela soit un problème.
L'idée serait d'intégrer une fonction de controle basique (et c'est volontairement que je reste dans un registre basique) dans un script afin que si le checksum n'est pas correct, c'est que le script a été modifié et qu'il ne doit donc pas être exécuté.
Pour cela, il est toujours possible de mettre à côté du script le checksum calculé et si le checksum du script ne correspond pas au contenu du fichier associé, c'est pas bon. Le problème, c'est que cette fonction ajoute un fichier au script et que cela complexifie la gestion de version.
Une autre idée à laquelle je pense, c'est le CRC des trames ethernet. Crc(Trame + CRC) = 0 (ou autre valeur connue, peut importe).
L'idée serait d'intégrer dans le fichier une chaine de caractères (forcément des commentaires afin de ne pas perturber le script) de manière à ce que le calcul du CRC par la programme cksum donne 0 (ou autre valeur connue).
Ainsi, le script lors de son exécution vérifie son CRC, s'il vaut 0, il peut continuer, s'il est différent de 0, il sort parce qu'il a été modifié.
Pensez vous qu'il soit possible d'intégrer ce genre de contôle "minimaliste" afin d'empêcher des modifications non désirées. Dans mon cas de figure, les droits Unix ne peuvent pas s'appliquer car tout le monde est "root", c'est comme cela.
Il est clair que si je devais modifier le script, je commencerais par mettre en commentaire le contrôle du CRC et le tour est joué mais j'ai affaire avec des personnes qui bidouillent les scripts, pas des hackers, donc ce contrôle suffirait. S'ils suppriment l'appel au contrôle CRC, c'est une autre volonté, ils entrent volontairement dans le registre "hacker".
Merci d'avance pour vos idées et remarques
Partager