Биохакеры закодировали зловред в ДНК, чтобы атаковать софт для секвенирования генома

    При секвенировании генома молекулы ДНК могут отбиваться. Молекулы способны нанести компьютеру ответный удар, заразив программу, которая пытается их прочитать. Такова идея исследователей из Университета Вашингтона, которые закодировали эксплоит в участке ДНК. Впервые в мире они доказали, что можно удалённо заразить компьютер через ДНК.

    На фотографии слева — пробирка с сотнями миллиардов копий эксплоита, закодированного в синтетических молекулах ДНК, которые способны заразить компьютерную систему после секвенирования и обработки.

    В последние пять лет стоимость секвенирования генома упала со $100 000 до менее $1000, что стимулировало научные исследования в сфере геномики и целую плеяду коммерческих сервисов, которые предлагают проанализировать ваше геном для разных целей: построение генетического дерева, поиск предков, анализ физических способностей, предрасположенности к разным видам спорта и физической активности, изучение совместимых микроорганизмов в кишечном тракте и многое другое. Авторы научной работы уверены, что при секвенировании генома недостаточное внимание уделяется безопасности: в этой области просто ещё не столкнулись с вредоносными программами, которые атакуют непосредственно через геном. Теперь такой вектор атаки нужно принимать в расчёт.

    Секвенирование генома начинает использоваться в прикладных дисциплинах, таких как криминалистическая экспертиза и архивное хранение данных, поэтому следует изучить вопросы безопасности, прежде чем секвенирование станет массово применяться.

    Исследователи написали эксплоит, а затем синтезировали такую последовательность ДНК, которая после секвенирования и обработки генерирует файл с эксплоитом. Будучи загруженным в уязвимую программу, этот файл открывает сокет для удалённого управления системой.

    Исследование не имеет практической пользы, потому что авторы не взламывали конкретную программу-секвенсер, которой пользуются биологи. Вместо этого они сами модифицировали программу fqzcomp версии 4.6 (утилита сжатия последовательностей ДНК), добавив известную уязвимость в её исходный код. Тем не менее, это не противоречит тому факту, что в настоящих программах тоже имеются уязвимости. Главное, учёным удалось доказать, что заражение компьютера действительно возможно через образец биологического материала.

    Для изменения в исходный код fqzcomp нужно было добавить 54 строчки на C++ и удалить 127 строчек. Модифицированная версия программы обрабатывала ДНК, используя простую двухбитную схему: четыре нуклеотида кодировались как два бита: A как 00, C как 01, G как 10, а T как 11.

    Кроме внедрения эксплоита в программу и перевода на двухбитную обработку, исследователи также отключили известные функции безопасности в операционной системе, в том числе систему рандомизации памяти ASLR, а также защиту от переполнения стека.

    Сам эксплоит (показан на иллюстрации в левом окне) имел размер 94 байта и кодировался 376 нуклеотидами. Эту последовательность загрузили в сервис для синтеза биологических молекул IDT gBlocks. Первая попытка синтезировать ДНК с эксплоитом оказалась неудачной.



    Проблем оказалось несколько. В молекуле было слишком много повторяющихся последовательностей, что не рекомендуется при синтезе. В одном месте было 13 подряд нуклеотидов T, что очень трудно синтезировать. Кроме того, по всей длине было недостаточно пар GC, которые укрепляют молекулу. В конце концов, эксплоит оказался слишком длинным для секвенирования.

    Но исследователям удалось преодолеть все сложности, они уменьшили длину эксплоита до 43 байт и получили приемлемое количество последовательностей CG, потому что текст эксплоита состоит преимущественно из строчных букв (01 в ASCII соответствует нуклеотиду C). Номер порта в эксплоите по этой причине изменили с 3 (ATAT) на 9 (ATGC). Получившуюся последовательность загрузили в сервис синтеза IDT gBlocks, который берёт $89 за синтез до 500 базовых пар.



    Доказав теоретическую возможность атаки, исследователи изучили безопасность программ, которые используются для секвенирования и анализа ДНК. Всего было изучено 13 известных биологических программ с открытым исходным кодом, написанных на C/C++. Их безопасность сравнили со стандартным софтом, который обычно подвергается атакам злоумышленников, таким как веб-серверы и удалённые шеллы. Выяснилось, что у биологических программ гораздо больше потенциально опасных вызовов функций (таких как strcpy).



    Удалось найти также переполнения буфера в трёх программах (fastx-toolkit, samtools и SOAPdenovo2). Через такие баги можно вызвать сбой программы. Зная, что подобные сбои часто конвертируются в рабочие эксплоиты, авторы остановились на этом.

    Презентация научной работы (pdf) состоится 17 августа 2017 года на 26-м симпозиуме по безопасности USENIX Security Symposium.
    Поделиться публикацией
    Ой, у вас баннер убежал!

    Ну. И что?
    Реклама
    Комментарии 45
      +5
      Хм. А что, программы для секвенирования ДНК, после того, как выполняют это самое секвенирование, пытаются запустить ДНК на выполнение?
      Я понимаю, что такое атака через переполнение буфера, но в то, что подобное как-то применимо в реальности в случае с ДНК, чесслово, не верю.
        +3
        Ну они специально создали уязвимость и специально ее эксплуатировали. Что доказывает чисто теоретически возможность.

        На то они и ученые: ставят гипотезы, проверяют, доказывают. Результат: возможно, очень сложно, маловероятно.
          +1
          Сам пропатчил, сам установил, сам страдаешь.
          0
          Меня всегда беспокоил этот вопрос с обратной стороны. А именно, неоднократно предлагалось использовать ДНК в качестве накопителя для хранения произвольной информации. Допустим, у нас будет такое хранилище, и тогда, чисто теоретически, если мы на него запишем определенным образом сформированный файл (например в составе картинки из кэша браузера), а какой-то организм каким-то образом «параллельно перенесет» в себя нужную последовательность и «запустит на выполнение» своим ядром, то это будет потенциально опасно рендерингом например от какого-нибудь устойчивого к антибиотикам организма до… дальше сами додумайте ))

          p.s. Согласен, допущений очень много, но в принципе не намного больше, чем в сабжевой статье.
            +1
            то это будет потенциально опасно рендерингом например от какого-нибудь устойчивого к антибиотикам организма

            Я думаю, вероятность того, что бактерии сами выработают резистентность к антибиотикам, на несколько порядков выше, чем того, что они сопрут чью-то гифку из ДНК-накопителя, и случайно в ней окажется нужная последовательность.
            –1
            Да нормально.
            Шаг 1: ищешь рабочие дырки в опен-сорсе. Находишь.
            Шаг 2: синтезируешь днк по сиквенсу.
            Шаг 3: Ищешь среди коммерсов, которые потенциально используют этот опен-сорц, тех, кто секвенирует за денюжку. Шлёшь им образец, получаешь шелл-код. Профит.

            CSRF найти проще. Но и уровень внимательности к безопасности на этом фронте настолько низкий, что такой шелл не найдут примерно никогда, если сидеть тихой сапой и тупо сливать данные куда-то.
              0
              Видео-файлы, в теории, тоже никто не запускает на исполнение, их читают и обрабатывают. Но, тем не менее, code execution эксплойты в медиа-библиотеках периодически всплывают.
              +2
              Исследование не имеет практической пользы, потому что авторы не взламывали конкретную программу-секвенсер, которой пользуются биологи. Вместо этого они сами модифицировали программу fqzcomp версии 4.6 (утилита сжатия последовательностей ДНК), добавив известную уязвимость в её исходный код.

              Че-то мне это напоминает африканский/молдавский/подставьте-что-то-еще вирус, который просит сам себя распространить и удалить че-то важное.

              Ждем серьезных исследований по поводу того, что можно взломать телефон через камеру или микрофон (если, конечно, заранее туда эксплоит внедрить).
                +1
                Ждем серьезных исследований по поводу того, что можно взломать телефон через камеру или микрофон (если, конечно, заранее туда эксплоит внедрить).
                Уже есть.
                +4
                Будущее — При задержании у подозреваемого в днк было обнаружено 10 гб порнобаннеров и эксплоитов.
                  +3
                  Хорошо, что его поймали. А то, он мог передать эти гены своим потомкам, которые, из-за них бы подвергались гонениям. Я даже не знаю, как правильно назвать подобную дискриминацию.
                  +9
                  image
                    +1
                    А через штрихкод на упаковке товара они не пробовали взламывать кассы супермаркета? Теоретически такое тоже возможно…
                      +2

                      В штрих-код эксплойт не завернешь, он фиксированного размера. Вот QR-код — да, уже вектор атаки, и да, пробуют уже ломать.

                        0
                        У меня на Nokia 5800 есть программа, которая считывает QR и открывает стандартный браузер с сылкой из этого кода. Уже отличный вариант загрузки эксплойта
                          0
                          Есть такая тема, как данные на более чем одном штрих-коде. Первый сообщает, что будут еще данные, последующие продолжают.
                          И если разработчик про это не знал, думал, что фиксированный размер, драйвер может сам накопить длинный буфер и перетереть выделенное место с переполнением.
                            +1

                            Что-то такое припоминаю (на кассе сканер штрих-кода подсоединён, как клавиатура), но там надо целую пачку штрих-кодов предъявлять было.

                        0

                        Сколько же времени уйдет, чтобы пересобрать эксплойт, если в нем потребуется подставить другие адреса в памяти для обхода ASLR...

                          0
                          Золотое правило: «не доверяй входящим данным» — в очередной раз доказало свое существование. Ничего нового. Просто другой носитель.
                            0
                            … что можно удалённо заразить компьютер через ДНК
                            (philosoraptor.jpg)
                            А считается ли заражением компьютера через ДНК допуск к нему криворукого пользователя?
                              +1
                              Либо я ничего не понял, либо статья «не в жилу»… фотографии, если честно, как с «желто-прессной» рекламы…
                              Секвентор, может выдать последовательность нуклеотидов, в обычный текстовый файл(raw), там может быть все что угодно. Но программа функционирует не в секвенаторе, а на компьютере. Любая сегодняшняя программа секвенирования может в лучшем случае интерпретировать значения выданного секвенатором, сделать например выравнивание и определить что за организм ей подсунули или прочитать значение конкретного снипа.
                              Что-то я не слышал про программы, которые могут компилировать что-либо исполняемое…
                              Конечно, если предварительно через сеть туда внедрить вирус, который модифицирует программу коренным образом, то и с сиквенсных последовательностей можно что угодно считать, но встает вопрос, зачем тогда секвенатор...??
                                +1
                                Тут вообще получается комичная ситуация.
                                Учёные изменили программу (опять же вопрос, что там поменяли), отключили кучу в ОС, а потом говорят: «Трагедия, через ДНК можно компьютер заразить». Таким путём можно всё-что угодно через всё что угодно заразить. Чтобы этого не было защиты и ставят.
                                Аналогично можно сказать, что на самолёт можно бомбу пронести… только для этого нужно убрать металлодетекторы, досмотр и охранников.
                                  +1
                                  Не учёные говорят, а журналисты. Даже не журналисты, а Ализар, что как бы должно было насторожить с самого начала.
                                0
                                Я не совсем понял, что именно «хакеры доказали»? Что любое вычислительное устройство так или иначе оцифровывающее информацию — потенциально уязвимо? Так это вроде бы и так все знали. Что обычно разработчики софта для научного оборудования мало беспокоятся о безопасности? Тоже не новость.

                                Но потенциальная уязвимость не означает наличия реальной уязвимости.
                                  0
                                  Научной ценности, по-моему, не представляет. (И так очевидно, что такое возможно.)
                                  Но, может, подстегнёт разработчиков программ (их руководство) писать аккуратнее (быть требовательнее).
                                  Если б хоть какой-то настоящий секвенсер взломали.
                                    +2
                                    я так понимаю, основной посыл «мы умеем кодировать в ДНК любой byte array, что б звучало резонансней — пусть это будет зловред».
                                    Я б на месте ученых выбрал, в качестве исходника, коды запуска ракет Северной Кореи. «В лабораторных условиях, нам удалось вживить в ДНК и потом успешно применить код-ключ запуска ракеты земля-земля, направленной на Вашингтон»
                                      +1

                                      Это еще что.


                                      Я вполне убедительно докажу, что компьютер можно заразить через огурец (нужно только модифицировать по камеры и добавить известную уязвимость), а человека может убить соловьиный свист (нужно только добавить в управление движком машины известную уязвимость).


                                      Ещё я только что выяснил, что можно заразить смартфон постукиванием по столу рядом с ним, нужно только в программу обработки данных с сенсора...


                                      Я к чему, статьи писать? Грант дадут, как думаете?

                                        +1
                                        Не понимаю комментаторов. Эксперимент был поставлен чтобы показать принципиальную возможность такой атаки, а тут все в комментах собрались «умники» с шутеечками. Штука важная, подобные вещи делают в разных областях, со стороны многие вещи из науки могут показаться либо банальщиной либо пустой тратой времени.
                                        Но все же я считаю этот эксперимент полезным. Доказана принципиальная возможность взлома, через известный заранее занесенный эксплойт. И это повод внимательней отнестись к безопасности и общей работе с ДНК в будущем, ведь обычно взламывают через дыры которые мы не знаем.
                                          0
                                          Отлично понимаю комментаторов. Упражнения в остроумии, основа интернет комментирования.
                                            +1
                                            Так ведь статья — ни о чем. Все и так знают, что если есть какая бы то ни было обработка входных данных, то возможна уязвимость, но реальной уязвимости эти «хакеры» не нашли, потому специально ее создали.

                                            Приводя аналогию: «мы взяли ПРЕДМЕТ и сами ударили себя им по голове. Все получилось. Вывод — ПРЕДМЕТ потенциально может быть использован для удара по голове».
                                            0

                                            как я понял, ученые доказали возможность взаимодействия "условного ИИ" и "условного организма". Если так, возможен ли теоретический переход "организм"-"ии"-"организм"? когда уже "Подождите, Ваше днк обновляется, процесс может занять несколько месяцев. Не размножайте и не отключайте тело"?

                                              +1
                                              как я понял, ученые доказали возможность взаимодействия «условного ИИ» и «условного организма».

                                              Нет. Ученые с помощью сложного и дорогого эксперимента доказали, что если вместо флешки взять ДНК и девайс для чтения ДНК, то если на ДНК записать то же, что и на флешку, и потом прочесть, то оно будет работать так же, как если это прочесть с флешки. Например, если вы на ДНК запишете фото котика, то прочтете фото котика. А если эксплойт, то прочтете эксплойт, ну а потом вам надо его, конечно же, запустить в подходящей среде. И тогда вас поразит эксплойт из ДНК. Конечно, статью они в журналах опубликуют. Но вы не находите научную ценность данного эксперимента несколько сомнительной?
                                                0

                                                не нашел аргументов для Вашего категоричного "нет", простите за дилетанство (сложное и дорогое — это относительно). Я правильно Вас понял, что ДНК может выступать носителем информации, с которой можно ее (информацию) считать и записать в другую ДНК (подготовленную)? возможна ли такая ситуация, что мою днк считывает ии, находит уязвимости, находит в базе данных "лечащую" днк, выписывает оттуда процедуру "лечения", записывает ее в мою днк и моя днк… обновляется?

                                                  0
                                                  Эта ситуация возможна (см. генетическая терапия), но ни к ИИ, ни к описанному в статье отношения не имеет. Кстати, первые эксперименты над раковыми больными в этой области начались как раз этим летом.
                                                    0
                                                    Да, спасибо, чуть ниже мне это разжевали. Стараюсь следить за всеми этими генетическими терапиями. Так уже хотелось бы в будущее: находят новую болезнь — вычисляют «добродел» на уровне генов и высылают всем обновления. Хотелось бы дожить.
                                                    +1
                                                    Я правильно Вас понял, что ДНК может выступать носителем информации, с которой можно ее (информацию) считать и записать в другую ДНК (подготовленную)?

                                                    Речь в статье шла не о записи чего-то из ДНК в ДНК, а о том, что если переписывать с ДНК информацию в компьютер (есть такая процедура, секвенирование называется), то если в ДНК засунуть вредоносный код, а программа для секвенирования будет иметь уязвимость для выполнения этого кода, то можно заразить компьютер. Поскольку о существовании уязвимостей в программах для секвенирования авторам было неизвестно, равно как и о коде в ДНК, который способен их заразить, они состряпали программу с уязвимостью, написали под неё код в ДНК, ну и уязвили её.
                                                    «Теоретически из пистолета можно поразить танк, если попасть в нужное отверстие, ведущее прямо к боекомплекту. Поскольку мы не знаем про такие отверстия, давайте возьмем танк, снимем с него броню, а вот тут подвяжем килограмм тротила. И выстрелим в него. О-па, смотрите, мы поразили танк из пистолета!»
                                                      0
                                                      Спасибо! В таком свете статья из серии «британские ученые подтвердили...». Хотя, как знать, Гейм тоже Шнобеля сначала получил. Блин, даже взгрустнулось, что никакой ИИ в ближайшем будущем не будет корректировать ДНК на опережение. Будем полагаться на матушку-природу… эх, всем совокупляться.
                                                –1
                                                Сейчас это может и казаться странно и не возможно, но я считаю что за лет еще так 5 это будет прививочное дело взлома например автоматизированных систем с помощью таких атак
                                                  +1
                                                  Зачем бы автоматизированным системам считывать ДНК пользователей?
                                                    –1
                                                    Вообще то, так как сейчас большой аспект ставят на биометрической защите данных, но все что защищается можно взломать, по этому такие технологии в своем роде также будут появляться. Я не веду до того что система будет качать тупо ДНК пользователей — это не к чему.
                                                      +1
                                                      Так может, предложить этим парням попробовать закодировать эксплойт в отпечатке пальца, или там в радужной оболочке глаза?
                                                        0
                                                        Почему я должен что-то предлагать, если я считаю иначе чем остальные, то это не нормально?
                                                        Я считаю что мир меняется и что все возможно.
                                                          0
                                                          Почему я должен что-то предлагать

                                                          Так надо. Идите и предлагайте, а не разводите тут демагогию.

                                                          если я считаю иначе чем остальные, то это не нормально

                                                          Нормально. Также абсолютно нормально, если остальные на это будут обращать внимание, спорить с вами, иронизировать, и вообще угнетать вас, наивного выскочку, всеми доступными способами.
                                                          Это была краткая лекция о том, как устроен этот несправедливый мир. А теперь шагом марш к тем парням предлагать им кодировать эксплойт в палец и глаз.
                                                            0
                                                            Демагогию никто не разводит. Просто выражаю свое мнение.
                                                            Я прекрасно понимаю, как и кто ставится к разной подаче информации и к разным мнениям.

                                                Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                                Самое читаемое