Хакеры и ДНК
АрхивУже стало привычным, что интереснейшие исследовательские результаты удается получать на стыках мало связанных, на первый взгляд, научных дисциплин.
Уже стало привычным, что интереснейшие исследовательские результаты удается получать на стыках мало связанных, на первый взгляд, научных дисциплин.
И все же всякий раз, когда аналитический инструментарий из одной области оказывается чрезвычайно эффективным и на других направлениях, остается лишь удивляться, насколько тесно все в этой жизни переплетено.
На недавней хакерской конференции ToorCon, проходившей в Сан-Диего, один из докладов был посвящен тому, сколь полезны биоинформационные методы исследования ДНК в деле обратной инженерной разработки программ с закрытыми проприетарными кодами. Докладчик Маршалл Беддоу (Marshall Beddoe), эксперт по компьютерной безопасности из фирмы Baseline Research, занимающийся анализом сетевых протоколов, однажды заинтересовался комплексом алгоритмов, которые за последние тридцать лет наработаны биологами для выявления общности между образцами молекул ДНК.
Биоинформатика занимается тем, что отыскивает в ДНК уже известные участки среди массивов неизвестных данных, а затем исследует продолжения известной последовательности. Поскольку при такой постановке задачи ДНК в основном заполнена повторяющимися и, грубо говоря, ничего не значащими фрагментами "шума", то удаление этих ненужных промежутков является общей проблемой геномики. Но та же самая картина характерна и при восстановлении сетевых протоколов на основе фирменного ПО. Типичный пример - open source-проект Samba по созданию программы, позволяющей Unix-системам взаимодействовать с файл-серверами Windows. При этом были затрачены сотни человеко-часов на анализ пакетов данных, принимаемых и выдаваемых программным обеспечением Microsoft (в частности, протоколом Server Message Block - SMB).
Для людей, занимающихся обратным восстановлением фирменных протоколов, сетевой поток данных переполнен "мусором" - обычно это реально пересылаемые данные, которые неким неочевидным образом перемежаются с информативными фрагментами, то есть подлежащими анализу последовательностями команд, указывающих, что делать с "мусором". Как свидетельствуют исследования Беддоу, базовые алгоритмы биоинформатики оказались очень полезны для удаления мусора между паттернами повторяющихся команд вскрываемого протокола.
Кроме того, генетики наработали обширный аппарат для анализа относительной степени мутаций между разными образцами ДНК. Располагая двумя последовательностями, биологи могут применять весьма изощренные алгоритмы, чтобы определить, был ли у этих фрагментов один и тот же предок. Те же самые принципы анализа Беддоу применил к последовательностям сетевых обменов данными. Подставляя в формулы, к примеру, вероятности ASCII-символов вместо нуклеотидов ДНК, хакер обнаружил, что может намного эффективнее выделять связанные друг с другом области в массиве сетевых обменов. В частности, автоматически выделяются фрагменты сетевого протокола, выполняющие схожие действия.
Наконец, генетики уже много лет занимаются проблемами визуального представления гигантских массивов данных. Соответствующие уравнения биоинформатики, используемые для формирования генеалогического дерева видов, Беддоу применил для выстраивания аналогичного дерева исследуемых протоколов. Результатом стало "филогенетическое древо" протокола SMB фирмы Microsoft, где неожиданные ветви собрались в кусты, как бы приглашая к дополнительным исследованиям связей.
Свой новый подход к обратной инженерной разработке ПО автор назвал протокольной информатикой (Protocol Informatics, www.baselineresearch.net/PI). Если исходный аналитический инструментарий для исследований Маршалл Беддоу искал сам по веб-сайтам биологов, выписывая нужные формулы со слайдов, то теперь, после знакомства ряда специалистов-генетиков с его работой, компьютерщику обещана непосредственная помощь многоопытных "смежников".