Группa исслeдoвaтeлeй из Вaшингтoнскoгo унивeрситeтa прoдeмoнстрирoвaлa нoвый и вeсьмa oригинaльный спoсoб прoвeдeния вируснoй aтaки нa кoмпьютeрныe систeмы. В этoм нoвoм мeтoдe испoльзoвaлся исполняемый вредоносный код, закодированный в виде последовательности специальной синтетической ДНК, а уязвимым местом атакуемого компьютера являлось стандартное программное обеспечение, использующееся учеными и медиками для определения последовательности молекул ДНК, так называемого секвенирования. Отметим, что данный метод атаки в данное время является еще чем-то гипотетическими, тем не менее, проблемы в научном программном обеспечении могут стать достаточно серьезными реальными проблемами в будущем.
Перед тем, как приступить к разработке ДНК-метода взлома, назовем его так, исследователи провели тщательный анализ всех основных программных средств, используемых в современно биоинформатике. Большинство из этих программ являются специализированными общедоступными программами, исходный код которых находится в открытом доступе. Большая часть из этих программ, в свою очередь, написаны на языках программирования C и C++, которые, как известно, без использования некоторых приемов в программировании имеют массу уязвимых мест. В проанализированном исходном коде на каждую тысячу строк было найдено в среднем 2,005 вызовов «уязвимых» функций, в то время как в специально написанном безопасном программном обеспечении это количество не должно превышать 0,1, а лучше — стремиться к нулю.
Для проведения ДНК-атаки исследователи выбрали достаточно распространенную программу FASTQ, которая написана на языке C++. Для хранения информации в этой программе используется временный буфер фиксированного размера, вмещающий в себя цифровое представление 150 пар оснований ДНК. Этот буфер располагается в общем участке памяти, и буквально за ним следуют участки программного кода. В данной атаке использовался метод переполнения буфера, при помощи определенной уловки исследователи заставили программу считать в буфер данные 176 пар основания, 26 из которых были записаны в область программного кода. И когда программа доходила до выполнения этого кода, то происходил крах системы.
Исследователи утверждают, что вместо цифрового кода, «рушащего» систему, в последовательность ДНК можно внести более изощренный код, который позволит злоумышленникам получить контроль над вычислительной системой, организовать утечку данных и даже изменить результаты работы программы секвенирования.
«Мы рассчитали, что если область биоинформатики будет развиваться нынешним темпом, то выявленная нами проблема безопасности сможет стать реальной проблемой лет этак через десять» — рассказывает Тэдайоши Коно (Tadayoshi Kohno), профессор из Вашингтонского университета, — «И теперь разработчики научных и аналитических программ, зная о потенциальной уязвимости, смогут сразу писать свои программы так, чтобы ДНК-атака на эти программы стала попросту невозможной».