Η ομάδα χτένισε τον κώδικα 13 προγραμμάτων ανοιχτού κώδικα (open-source), που κάνουν αλληλούχιση και βρήκαν 11 φορές περισσότερες τρύπες ασφαλείας από ότι σε άλλου τύπου προγράμματα. Κάποια απο αυτά τρέχουν σε ακριβά συστήμα αλληλούχισης και άλλα σε υπολογιστές εργαστηρίων.
Εκμεταλλεύτηκαν ένα στάδιο στην αλληλούχιση, όπου το μηχάνημα, "μεταφράζει" τους 4 τύπους νουκλεοτιδίων από τα οποία αποτελείται κάθε αλληλουχία DNA σε δυαδικό κώδικα (binary code). Δηλαδή, για παράδειγμα, η αδενίνη (A) να μεταφράζεται σε 00, και η κυτοσίνη (C) να μεταφράζεται σε 01.
Δεν υπάρχει επαρκής ασφάλεια στα προγράμματα βιοπληροφορικής
Για να το αποδείξουν έφτιαξαν ένα μηχάνημα που με μια έκδοση του προγράμματος FASTQ, χρησιμοποιώντας τον ελεύθερο πηγαίο κώδικα της εφαρμογής και του έδωσαν συγκεκριμένο μέγεθος μνήμης (fixed-size buffer). Δεν επιτέθηκαν σε πραγματικά εργαστήρια.
Δημιούργησαν μια αλληλουχία 176 ζευγών βάσεων που όταν μεταφραζόταν ήταν ένα malware. Ο κύριος στόχος ήταν το πρόγραμμα FASTQ, που είναι γνωστό ότι διαβάζει και συμπιέζει αλληλουχίες DNA, του οποίου του έδωσαν μέγεθος προσωρινής μνήμης (fixed-size buffer), τόσο που να μπορεί να χειριστεί 150 ζεύγη βάσεων.
Η προσωρινή μνήμη (buffer), ορίζεται σε ένα πρόγραμμα και με αυτή εκτελεί τις συναρτήσεις. Οι μνήμες στατικού μεγέθους, μπορεί να υπερχειλίσουν και να προκαλέσουν καταπάτηση (override) πληροφορίας που είναι απαραίτητη για τη σωστή ροή του προγράμματος. Τότε ο χάκερ μπορεί να ξεγελάσει το σύστημα και να εκτελέσει το δικό του κώδικα.
Όταν το πρόγραμμα FASTQ πήγε να διαβάσει την αλληλουχία, προκλήθηκε επίθεση με υπερχείλιση προσωρινής μνήμης (buffer overflow). Με αυτό το malware κατάφεραν να πάρουν τον έλεγχο του υπολογιστή αλληλούχισης και να το κρασάρουν.
Εντόπισαν μεγάλο αριθμό μη ασφαλών συναρτήσεων σε σχέση με άλλα προγράμματα που τρέχουν σε web servers ή επεξεργασίας πακέτων σε δίκτυα.
Οι πιο κοινές επισφαλείς συναρτήσεις ήταν η strcat, η strcpy και η sprintf. Καθώς επίσης και το άλλο πρόβλημα που εντόπισαν στα προγράμματα ήταν ότι τους ορίζονταν μνήμη σταθερού μεγέθους (fixed-size buffers). Σε 1.000 γραμμές κώδικα βρήκαν 2.005 επισφαλείς συναρτήσεις. Ενώ σε άλλα προγράμματα με υψηλή ασφάλεια βρίσκονται μόλις 0.185 μη ασφαλείς συναρτήσεις σε 1.000 γραμμές κώδικα.
Οι ερευνητές θέλησαν να δείξουν την αναγκαιότητα της ασφάλειας. Καθώς τα δίκτυα και τα τείχη προστασίας γίνονται όλο και πιο ισχυρά, ένας επιτήδειος χάκερ του μέλλοντος θα αναζητήσει μη παραδοσιακές, αφύλακτες πόρτες εισόδου. Κάθε εργαστήριο δε διαθέτει το δικό του μηχάνημα αλληλούχισης, οπότε πρέπει να στέλνει τα δείγματά του σε εξωτερικούς συνεργάτες. Οπότε επίθεση σε μια τέτοια εταιρία θα έβαζε σε κίνδυνο τα αποτελέσματα πολλών διαφορετικών εργαστηρίων.
--
Πηγές:
- Ney, P., Koscher, K., Organick, L., Ceze, L., & Kohno, T. (2017). Computer Security, Privacy, and DNA Sequencing: Compromising Computers with Synthesized DNA, Privacy Leaks, and More.
- Computer Security and Privacy in DNA Sequencing. washington.edu