
Lors du séquençage du génome, les molécules d'ADN peuvent être battues. Les molécules peuvent attaquer un ordinateur en infectant un programme qui essaie de les lire. C'est l'idée des chercheurs de l'Université de Washington qui ont
codé un exploit dans un patch d'ADN . Pour la première fois dans le monde, ils ont prouvé que vous pouvez infecter un ordinateur à distance via l'ADN.
Sur la photo de gauche est un tube à essai avec des centaines de milliards de copies d'un exploit encodé dans des molécules d'ADN synthétique qui peuvent infecter un système informatique après séquençage et traitement.
Au cours des cinq dernières années, le coût du séquençage du génome est passé de 100 000 $ à moins de 1 000 $, ce qui a stimulé la recherche scientifique dans le domaine de la génomique et une multitude de services commerciaux qui proposent d'analyser votre génome à différentes fins: construction d'un arbre génétique, recherche d'ancêtres, analyse des capacités physiques, prédispositions à divers sports et activités physiques, l'étude de micro-organismes compatibles dans le tractus intestinal et bien plus encore. Les auteurs des travaux scientifiques sont convaincus que lors du séquençage du génome, une attention insuffisante est accordée à la sécurité: dans ce domaine, ils n'ont pas encore rencontré de malware qui attaque directement à travers le génome. Maintenant, un tel vecteur d'attaque doit être pris en compte.
Le séquençage du génome commence à être utilisé dans des disciplines appliquées telles que la médecine légale et l'archivage des données, de sorte que les problèmes de sécurité doivent être explorés avant que le séquençage puisse être appliqué massivement.
Les chercheurs ont écrit un exploit puis ont synthétisé une séquence d'ADN qui, après séquençage et traitement, génère un fichier d'exploit. Lorsqu'il est chargé dans un programme vulnérable, ce fichier ouvre un socket pour le contrôle à distance du système.
L'étude n'est d'aucune utilité pratique, car les auteurs ne sont pas entrés dans un programme séquenceur spécifique que les biologistes utilisent. Au lieu de cela, ils ont eux-mêmes modifié le programme
fqzcomp version 4.6 (utilitaire de compression de séquence d'ADN), ajoutant une vulnérabilité connue à son code source. Cependant, cela ne contredit pas le fait que ces programmes présentent également des vulnérabilités. Plus important encore, les scientifiques ont pu prouver qu'une infection informatique est vraiment possible grâce à un échantillon de matériel biologique.
Pour modifier le code source de
fqzcomp
vous avez dû ajouter 54 lignes en C ++ et supprimer 127 lignes. Une version modifiée du programme a traité l'ADN en utilisant un schéma simple à deux bits: quatre nucléotides ont été codés en deux bits: A comme 00, C comme 01, G comme 10 et T comme 11.
En plus d'introduire l'exploit dans le programme et de le transférer vers un traitement à deux bits, les chercheurs ont également désactivé des fonctions de sécurité bien connues dans le système d'exploitation, y compris le système de randomisation de la mémoire ASLR, ainsi que la protection contre les débordements de pile.
L'exploit lui-même (montré dans l'illustration dans la fenêtre de gauche) avait une taille de 94 octets et était codé par 376 nucléotides. Cette séquence a été téléchargée sur le service de synthèse de molécules biologiques IDT gBlocks. La première tentative de synthétiser l'ADN avec un exploit a été infructueuse.

Il y avait plusieurs problèmes. Il y avait trop de séquences répétitives dans la molécule, ce qui n'est pas recommandé pour la synthèse. À un endroit, il y avait 13 nucléotides T consécutifs, ce qui est très difficile à synthétiser. De plus, il n'y avait pas assez de paires GC sur toute la longueur pour renforcer la molécule. Au final, l'exploit était trop long pour le séquençage.
Mais les chercheurs ont réussi à surmonter toutes les difficultés, ils ont réduit la longueur d'exploit à 43 octets et ont obtenu un nombre acceptable de séquences CG, car le texte d'exploit se compose principalement de lettres minuscules (01 en ASCII correspond au nucléotide C). Pour cette raison, le numéro de port dans l'exploit a été changé de 3 (ATAT) à 9 (ATGC). La séquence résultante a été téléchargée sur le service de synthèse IDT gBlocks, qui prend 89 $ pour la synthèse de jusqu'à 500 paires de bases.

Ayant prouvé la possibilité théorique d'une attaque, les chercheurs ont étudié la sécurité des programmes utilisés pour le séquençage et l'analyse de l'ADN. Au total, 13 programmes biologiques open source bien connus écrits en C / C ++ ont été étudiés. Leur sécurité a été comparée à un logiciel standard, qui est généralement attaqué par des utilisateurs malveillants, tels que des serveurs Web et des shells distants. Il s'est avéré que les programmes biologiques ont des appels de fonction potentiellement plus dangereux (comme
strcpy
).

Nous avons réussi à trouver des dépassements de tampon dans trois programmes (fastx-toolkit, samtools et SOAPdenovo2). Grâce à ces bogues, vous pouvez provoquer un plantage du programme. Sachant que de telles défaillances sont souvent converties en exploits opérationnels, les auteurs se sont installés là -dessus.
La présentation des
travaux scientifiques (pdf) se tiendra le 17 août 2017 lors du 26e
USENIX Security Symposium .