Ссылки для упрощенного доступа

logo-print

О сходстве между работой генетика и хакера


Александр Костинский: Каждодневно ленты новостей говорят о достижениях генетиков. Не меньше сообщений о различных компьютерных вирусах, поражающих компьютерные сети по всему миру. Цифровые эпидемии распространяются благодаря тому, что опытные программисты, их еще называют хакерами, находят уязвимости в закрытых программах с миллионами строчек кода, таких как Microsoft Windows. Казалось бы, генетика и хакерство - совершенно разные области. Но как ни странно, работа современного генетика очень похожа на работу хакера, ведь генетик тоже пытается методом проб и ошибок понять коды сложнейших информационных устройств, таких как молекулы ДНК или РНК. Причем код РНК и ДНК принципиально закрыт, и не много надежд, что когда-нибудь удастся получить документацию от самого разработчика.

Сегодня в студии Радио Свобода о сходстве между работой генетика и хакера будут говорить мои коллеги - Александр Сергеев, обозреватель "Новостей науки", и профессиональный программист, редактор программы "Образование" Владимир Губайловский.

Вначале Александр Сергеев уточнит тему нашей передачи.

Александр Сергеев: Я бы это сформулировал так: мы будем говорить о неожиданной аналогии между деятельностью генетиков, генных инженеров, которые работают в лабораториях на сложнейшей аппаратуре с молекулами ДНК и работой хакеров.

Александр Костинский: Которые работают с программами?

Александр Сергеев: Да, сидят дома, и на своих компьютерах работают с программами. При этом мы привыкли к тому, что генетики - это здорово, это самая передовая, серьезная наука: то один ген нашли, то другой, то смогли выпустить новый генно-модифицированный продукт, то нашли ген, связанный с определенной болезнью, и ищут способ, как его ликвидировать или, наоборот, перенастроить.

Александр Костинский: Конечно, стволовые клетки.

Александр Сергеев: Это сейчас основное, пиковое направление. И в то же время оказывается, что их деятельность в чем-то по структуре, не по применяемым техническим средствам, а именно по структуре деятельности, по характеру языка очень напоминает деятельность хакеров - людей, который расшифровывают компьютерный код, компьютерные программы...

Александр Костинский: Внутреннее устройство которых они не знают.

Александр Сергеев: Очень часто не знают. Это люди, у которых нет доступа к исходным текстам. Они начинают разбираться, как работают программы, модифицировать их и получать нужные им продукты, взламывать их, находить в них "дыры", ошибки. Оказывается, что эта аналогия далеко не поверхностна, а имеет под собой достаточно серьезные основания.

Александр Костинский: Наверное, потому, что молекула ДНК - это тоже запись огромной зашифрованной информации.

Александр Сергеев: Это первое, что приходит в голову, как аналогия: ДНК, как запись генетического кода и компьютер, в памяти которого записан код программы.

Александр Костинский: После записи программа может работать.

Александр Сергеев: Естественно. Так же как генетическая запись в ДНК тоже может работать, порождая клетки и организмы. Как устроена компьютерная память? Это ячейки, созданные на полупроводниковом кристалле, каждая из которых может находиться в одном из двух состояний, только, способы создать два разные состояния.

Александр Костинский: На винчестере?

Александр Сергеев: Или на винчестере. Бывают магнитные способы записи - там намагничено вверх или вниз; бывают электрические: есть заряд - нет заряда; бывают другие способы: есть ток - нет тока. Это не важно. Два состояния. Так вот, молекула ДНК состоит тоже из элементов, которые собраны в одну длинную цепочку, как ячейки памяти в компьютере.

Александр Костинский: В спираль.

Александр Сергеев: Да, длинная-длинная линейная молекула, которая свернута в двойную спираль и еще неким образом сложена для компактности. Она состоит из элементов, которые называют нуклеотидами. Эти нуклеотиды как бы сцеплены один за другим в определенной последовательности. Нуклеотидов в одной молекуле ДНК могут быть сотни миллионов.

Александр Костинский: Сотни миллионов в одной молекуле?

Александр Сергеев: Сотни миллионов в одной молекуле ДНК. Но сами нуклеотиды бывают всего четырех разных видов.

Александр Костинский: Как они называются?

Александр Сергеев: Они называются: аденин, тимин, цитозин и гуанин. Всего четыре разных типа нуклеотидов.

Александр Костинский: А можно представить биологическую информацию в компьютерном виде?

Александр Сергеев: Да. В обычной информатике у нас принята единица измерения бит. Бит - это ячейка, которая может находиться в двух разных состояниях: да - нет, 0 - 1. А здесь у нас ячейка может находиться в четырех разных состояниях: аденин, тимин, цитозин и гуанин. И чтобы описать четыре разных состояния, в компьютере достаточно было бы 2 битов. Таким образом, один нуклеотид по информационной емкости соответствует 2 битам. А весь геном человека, то есть последовательность всех нуклеотидов, которые содержатся во всех ДНК человека, во всех его хромосомах - чуть больше 3 миллиардов. То есть это примерно 6 миллиардов битов. Ну, если нам привычнее в байтах рассуждать (байт - 8 бит), значит, чуть-чуть меньше 1 гигабайта информации - это информационная емкость человеческого генома.

Александр Костинский: По порядку величины соответствует емкости операционной системы.

Александр Сергеев: Да. Если мы возьмем операционную систему Windows XP, установим ее на винчестере и добавим туда, может быть, Microsoft Office не в самом полном комплекте - Word, Excel, то мы как раз получим около гигабайта информации.

Александр Костинский: Вообще любопытно, что по порядку величины получается одно и то же.

Александр Сергеев: Да. Оказывается, сложность, если исчислять ее чисто информационными величинами, сейчас сложность современных операционных систем приблизилась к сложности человеческого генома. Что интересно, эта аналогия далеко не так проста, к ней можно добавить вторую. Известно, что в компьютерах есть вирусы. И название "компьютерный вирус" пришло к нам из биологии, потому что поведение компьютерного вируса во многом похоже на поведение вируса биологического.

Александр Костинский: Главное для него - делать свою копию, размножаться?

Александр Сергеев: Да. Но не просто так. Размножается любой организм. Не просто делать свою копию, а делать свою копию с использованием ресурсов чужого организма.

Александр Костинский: Он паразит?

Александр Сергеев: Вирус - это микропаразит, который проникает в систему другого организма. Причем он не просто питается чужим организмом, а проникает в его информационную систему, встраивается в нее и задействует информационную систему чужого организма для создания своих копий. Так происходит и в биологии. Вирус проникает в клетку, добирается до хромосом, до ДНК, встраивается туда - и заставляет хромосомы продуцировать новые вирусные частицы, которые потом выходят из клетки и идут в другие клетки.

Александр Костинский: Владимир Губайловский хотел добавить.

Владимир Губайловский: Компьютерный вирус и вирус биологический, естественно, имеют какой-то минимальный объем. Компьютерный вирус, должен осуществить определенный набор действий, он должен что-то уметь.

Александр Костинский: Иначе он не будет вирусом?

Владимир Губайловский: Иначе он просто не сможет выполнить свою главную функцию - он не сможет встроиться и распространяться. То есть он должен попасть в программу, перехватить управление и выполнить собственное копирование. Причем копирование выполнить таким образом, чтобы его копия тоже была работоспособна и могла опять все это повторить. Но как бы мы этот вирус ни ужимали, каким бы маленьким мы его ни делали, у него существует минимальный объем. И этот объем примерно килобайт, или немного меньше.

Александр Костинский: Меньше килобайта, уже трудновато сделать дееспособный вирус, да?

Владимир Губайловский: Уже трудно. Иначе он просто оказывается нежизнеспособным, неработоспособным, не может выполнять свою главную функцию репродукции.

Александр Костинский: А у биологических вирусов то же самое?

Александр Сергеев: Кстати говоря, самые маленькие вирусы, их правильнее называют "вироиды", по информационному объему (у них информационные РНК, аналог ДНК), имеют длину всего в несколько сотен нуклеотидов.

Александр Костинский: Порядок величины тот же самый?

Александр Сергеев: Порядок величины тот же самый. Самые маленькие вироиды такие же, как самые маленькие компьютерные вирусы.

Александр Костинский: Живые?

Александр Сергеев: Вообще говорить о том, живые вироиды или не живые, говорить очень сложно.

Александр Костинский: Любопытно, что эта информация и в компьютерных системах, и в биологических - порядка килобайта.

Александр Сергеев: Да, порядка килобайта. И тут такая вещь. Если бы большие системы были защищены так, что требовали бы больших усилий для проникновения внутрь, то они оказывались бы настолько негибкими, и неспособными к модификациям, реакциям на изменение внешних обстоятельств, что оказались бы просто нежизнеспособными. То же самое касается и программного обеспечения. Если бы операционные системы делались по жесточайшим нормам безопасности, и все бы выверялось, они бы, наверное, развивались очень медленно, не успевали бы побеждать на рынке и, возможно, оказывались бы неприспособленными к модификациям и переделкам на следующем этапе развития. Не все участки ДНК кодируют белки, только 3-4 процента, а остальное - кажется просто мусором. Там повторяются какие-то последовательности, которые никогда не воспроизводятся в виде белков...

Александр Костинский: Как и в компьютерных программах, да?

Александр Сергеев: Это, действительно, похоже на то, что происходит с очень многими программами. Возьмите Windows, и вы увидите, что там огромное количество повторяющихся блоков.

Владимир Губайловский: Вот о Windows. Откуда там появляется огромное количество неработающих кусков? Операционная система, если она живет достаточно долго, и декларирует поддержку старых программ, которые написаны на предыдущих версиях операционной системы...

Александр Костинский: Которые могут быть очень нужны пользователю.

Владимир Губайловский: Иначе просто с выпуском каждой версии операционная система теряла бы просто всех своих пользователей, которые работали с ее старой версией. То есть на это просто никто пойти не может. Операционная система накапливает внутри себя разные способы поддержки старых версий. И получается следующая ситуация. Огромное количество кода, который уложен в операционную систему, либо вообще не работает, либо работает в очень редких случаях. Например, когда запускается DOSовское приложение. Этот случай на сегодня просто из ряда вон выходящий. В принципе, можно себе представить человека, который никогда DOSовских программ не видел.

Александр Костинский: Легко представить.

Владимир Губайловский: И он, анализируя код Windows с чистого листа. Такой человек может подумать, что это просто обломок, который там застрял - непонятно, зачем он нужен.

Александр Костинский: И даже если его стереть с диска, то ничего не изменится.

Владимир Губайловский: Да. И человек будет убежден, что это обломок старой программы, который просто не дочистили программисты.

Александр Костинский: Итак, у нас получается, что аналогия достаточно глубокая.

А теперь давайте расскажем, есть ли аналогия в работе генетиков и в работе хакеров. Под хакерами мы понимаем не вредителей, не злостных людей, а людей, которые работают с программами, квалифицированных программистов.

Владимир Губайловский: Высококвалифицированные программисты и аналитики кода.

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

Представим себе немножечко такую мрачную ситуацию. В руки одинокого хакера попадает винчестер, на котором установлен Windows XP, еще ряд прикладных пакетов, и у него больше ничего нет, никаких инструментов, только вот эта вещь. С некоторым трудом он добивается того, что учится побитово считывать информацию с винчестера. Он видит: вставили винчестер в компьютер - все засветилось, окошки моргают, значит, какие-то программы работают осмысленно. Но когда он хочет посмотреть, как это устроено...

Александр Костинский: Он видит нули и единички.

Александр Сергеев: ...он получает только нули и единички на диске. Дальше что ему остается делать? Остается взять и начать разбираться, что за нули, что за единички там записаны. Как это сделать? Самый простой способ: взять, например, и стереть какой-то кусочек, и посмотреть, что сломается. Ага, стерли вот этот кусочек - и ничего не сломалось, и никакой информации. Может быть, это был не важный кусочек, а может быть, он просто не срабатывал в тот момент, когда мы ее тестировали?

Александр Костинский: То есть это как в обычной молекуле ДНК - мусор.

Александр Сергеев: Как в обычной ДНК. Такие эксперименты, кстати говоря, проводились. Взять участок, который лежит между генами, и, допустим, удалить его. Недавно был поставлен такой эксперимент: взяли из крысиного генома и удалили кусок в несколько миллионов нуклеотидов, не включающий гены, то есть те участки, где кодированы белки, и ждали, что что-нибудь испортится. Нет, выросла живая нормальная крыса - все нормально.

Александр Костинский: Стерли несколько миллионов?

Александр Сергеев: Несколько миллионов этих самых нуклеотидов, по сути, несколько мегабайт информации стерли, - и ничего, все работает. В Windows, кстати, тоже бывает так: затрется какой-то кусок программы, а все продолжает работать, может быть, и будет дальше работать, и никогда не наткнетесь на поломку, а может быть, потом через полгода что-то сломается и вы даже не будете знать почему. Делаются другие эксперименты. После многих таких вторжений - в одном месте поправили, в другом месте - вдруг обнаруживается, что после этой правки - раз, и отказало что-то. Ага, думают хакеры, вот это-то место как раз и отвечает за какое-то свойство, например, за цвет окна, или за его размеры, или за реакцию на нажатие "мышки".

Александр Костинский: Или за клавиатуру.

Александр Сергеев: Да. Так вот увидели, ага, вот это место связано. Давайте копать его подробнее. Попробуем не просто стереть его, а частично поменять, по 1 биту, например, или еще как-то. Потом, конечно же, начинают понимать, что есть машинный код, в этом машинном коде есть операции, каждая из них несет какой-то смысл - можно начинать мыслить блоками, то есть видеть: вот это некоторые подпрограммы, а это некоторый блок данных, в которых что-то хранится.

Александр Костинский: Так же и генетики поступают. На лентах новостей постоянно встречаешь: открыли ген, который, не знаю, действует на какую-нибудь болезнь Альцгеймера, или открыли ген, который отвечает за цвет радужки глаза. То есть что-то очень похожее на работу хакеров?

Александр Сергеев: По идее, это то же самое. Есть довольно сложные биохимические реакции, которые позволяют, во-первых, считывать информацию с ДНК, а во-вторых, при еще более сложных механизмах - внедрять туда какую-то информацию. Между прочим, методы искусственного внедрения в ДНК некоторой информации основаны на вирусных технологиях. Берутся специальные вирусы, модифицируются и внедряются в клетку, после чего они сами встраивают куда надо тот кусочек гена, который им прицепили. И здесь возникает действительно довольно серьезная и глубокая аналогия. Генетики, по сути дела, занимаются прикладным биологическим хакерством. То есть они "взламывают" работающую биологическую программу. Если программисты-хакеры берут, известно кем, например Microsoft написанную программу, к исходным текстам которой у них нет доступа, и пытаются ее "ломать", в широком смысле, то есть как-то менять, модифицировать, то генетики берут программу, написанную неизвестно кем.

Александр Костинский: Нет, почему? Некоторые считают, что знают, кем написана эта программа.

Александр Сергеев: Некоторые знают, кто ее написал, а некоторые говорят, что ее создала эволюция. Как бы то ни было, у нас заведомо нет доступа к исходному коду. Если хакеры могут еще надеяться, что можно когда-нибудь украсть код у Microsoft, то в украсть исходный код генома невозможно, есть только его рабочий код.

Александр Костинский: Ну почему? Может быть, на горе Синайской кто-нибудь передаст код на винчестерной скрижали...

Александр Сергеев: Все генетики, по сути дела, занимаются вот таким прикладным хакерством. Они смотрят, что получится, если что-нибудь промодифицировать. И, между прочим, получают время от времени довольно серьезные результаты. Нашли какой-нибудь ген морозостойкости у одного растения. Взяли вирус, прицепили к нему этот ген, запустили его в клетку другого растения. Он внедрился, внес этот ген морозостойкости, вырастили из этой клетки новое растение, смотрят - действительно морозостойкость возросла. После этого начинается огромное количество проверок, а не испортилось ли что-нибудь в механизме этого растения, не стало ли оно обладать какими-то вредоносными свойствами.

Александр Костинский: То есть, на Марсе не получилось, в Антарктиде будут яблони цвести.

Александр Сергеев: И дальше выпускается генно-модифицированный вид растения. Это сейчас вполне работающая вещь. Только нужно понимать, что это своеобразная хакерская деятельность на работающем коде.

Александр Костинский: Любопытно, что в этих средах - генетиков и хакеров - возникает сходная культура. Люди занимаются неким новым видом деятельности, которого просто не было. И поэтому хотят они того или не хотят, должны заниматься словотворчеством, потому что то, что они делают, не отображено в языке.

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

Александр Сергеев: Да. Например, появление новых глаголов, обычно символизирует некие действительно прорывные направления.

Александр Костинский: "ПЦРить", например.

Александр Сергеев: Пожалуйста, "ПЦРить", да. Или "роутить". Здесь, может быть, нужно в заключение приветси небольшой пример. Генетика идет с некоторым отставанием от информационных технологий. Если информационные технологии свой бум пережили где-то в 70-90-е годы, то бум генетики начался в 90-е годы, и сейчас встает в полный рост. Если, скажем, в 70-е годы хакеры были уникальными людьми хотя бы просто потому, что компьютеров было мало, нужно было к ним получить доступ, то сейчас генетики тоже уникальные люди, которые имеют доступ к генетическим лабораториям, к установкам для PCR-реакций. Но в 80-е годы появились "персоналки", и информационные технологии стали общедоступными.

Не так давно появилось сообщение о том, что компания "Discovery", та самая, которая делает всемирно известный канал "Discovery", выпустила детскую игрушку - набор, у нас бы его назвали "Юный генетик", а на практике это установка для домашнего анализа ДНК.

Александр Костинский: Настоящих ДНК, не игрушечных?

Александр Сергеев: Да, не игрушечных. Устройство стоит 80 долларов, поставляется с комплектом реактивов, содержит в себе миниатюрную центрифугу, систему электрофореза, специальный магнитный миксер -приборы, которые вместе позволяют проводить анализ ДНК. Понятно, что не такой массовый и быстрый, как это делается на профессиональных установках. Но, в принципе, взять и просеквенировать(?) последовательность из нескольких нуклеотидов вполне возможно.

Александр Костинский: То есть генное хакерство в домашних условиях?

Александр Сергеев: Да, в домашних условиях. Детская игрушка стоимостью 80 долларов для считывания реальных ДНК. Я думаю, что еще через некоторое время кто-нибудь придумает и для записи ДНК устройство, а там, глядишь, начнется повальное генетическое хакерство.

Александр Костинский: То есть не только астрономы-любители могут помогать профессионалам, но такое впечатление, что в скором времени может появиться, армия домашних любителей генетики.

Александр Сергеев: Да, генной инженерии.

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

XS
SM
MD
LG