`

СПЕЦИАЛЬНЫЕ
ПАРТНЕРЫ
ПРОЕКТА

Архив номеров

Как изменилось финансирование ИТ-направления в вашей организации?

Best CIO

Определение наиболее профессиональных ИТ-управленцев, лидеров и экспертов в своих отраслях

Человек года

Кто внес наибольший вклад в развитие украинского ИТ-рынка.

Продукт года

Награды «Продукт года» еженедельника «Компьютерное обозрение» за наиболее выдающиеся ИТ-товары

 

И целого мира мало...

0 
 

Год назад компьютерная общественность начала с возмущением и волнением обсуждать одну из работ Николаса Уивера (Nicholas C. Weaver), ученого, работающего в Калифорнийском университете, который изобрел новую методологию написания Internet-"червей", способную обеспечить автору подобного монстра контроль над всеми уязвимыми серверами Глобальной Сети за 8 минут. Недавно Брэндон Уили (Brandon Wiley), являющийся в настоящее время координатором проекта Tristero, опубликовал статью, где описал потенциальный вирус, основанный на технологии сетей класса peer-to-peer.
Атака

"Червь", описанный в работе Уили "Curious Yellow: первый "червь", использующий координированную тактику", на первом этапе будет распространяться согласно механизму, изобретенному Уивером -- Warhol worm -- и дополненному Станифордом (Staniford), Гримом (Grim) и Джонкменом (Jonkman) -- Flash worm.

Вначале, путем сканирования Internet, создается полный список уязвимых серверов, т. е. узлов, содержащих ПО без необходимых "заплаток", корректирующих известные пробелы в безопасности. Потом несколько экземпляров "червя", снабженных фрагментами этого списка, отправляются в Сеть: они начинают размножаться, постепенно заселяя узлы, упомянутые в списке. При этом изначально внушительных размеров "адресный справочник" делится между отдельными копиями программы, так что вскоре фрагменты становятся совсем небольшими и практически незаметными при пересылке. В случае Flash worm роль "справочной" службы для сообщества "червей" сыграют несколько серверов, обеспеченных мощными каналами связи и копиями списка. Хорошо подготовленная атака завершится полным успехом спустя 15 секунд после ее начала -- устрашающая перспектива.

Curious Yellow фактически является надстройкой над Warhol worm (или Flash worm), позволяющей эффективнее организовать взаимодействие между отдельными узлами "сети "червей"", образованной в конце первого этапа заражения. Под "сетью "червей""(worm network) здесь и далее подразумевается совокупность узлов Internet, находящихся под управлением копий "червя", которые поддерживают связь между собой, образуя инфраструктуру со своей системой адресации и маршрутизации. Традиционные "черви" используют стратегию, названную Уили "жадной", следующее поколение будет действовать более сдержанно. Каждый новый экземпляр "червя" займется атакой только одного узла из отведенного ему диапазона адресов.

Причем программу не потребуется снабжать полным набором "отмычек" (exploits) на все случаи жизни, поэтому размер отдельного "червя" будет невелик, а его активность в Сети -- минимальной. Все необходимые сведения о потенциальных жертвах и новый код для модификации процедуры проникновения он получает от других копий "червя". Более того, владелец "сети "червей""может за считанные секунды внести какие-либо изменения в функциональность программы или расширить ее возможности. По предварительным оценкам, на распространение патча из единственной точки входа на всю "сеть" потребуется менее 15 секунд!

Однако как наладить взаимодействие огромного множества копий программы, учитывая необходимость тщательно скрывать сам факт наличия коммуникаций? Для начала следует разработать какую-то систему адресации. Уили предлагает использовать для этих целей распределенную хэш-таблицу (Distributed Hash Tables или DHT), а точнее, ее модификацию, называющуюся Chord (см. "Хэши и хорды: проще, чем вы думали"). С ее помощью удается случайным образом распределить рабочее пространство (адреса жертв) между экземплярами "червя" без перекрытия зон влияния и обеспечить наиболее краткий путь коммуникаций между любыми двумя узлами сети.

Максимальное количество транзитных узлов (hops) между двумя любыми участниками сети, содержащей миллион узлов, при использовании архитектуры DHT Chord, не превышает 23. Количество соседей, IP-адреса которых "червю" надо знать, чтобы сеть оставалась цельной и стабильной, не превышает 20. Еще одна версия DHT -- Anonymous Chord (Achord) -- позволяет максимально осложнить задачу выявления всех членов сети.

Благодаря высокой скорости распространения информации модернизация кода "червя" должна опережать обновление ПО (в том числе и антивирусного) на зараженных компьютерах. Однако уязвимым местом Curious Yellow остается надежность и секретность коммуникаций. Анализируя трафик, специалисты по безопасности смогут определить стратегию "червя", выявить членов его "сети" и даже отыскать автора. Эффективной защитой против перехвата является обыкновенное шифрование сообщений, однако даже исключительно статистический анализ активности может указать на точку начала распространения очередного патча и, следовательно, на автора. Чтобы такого не произошло, придется маскировать отсылку значимых сообщений, создавая постоянный "белый шум" из сообщений-"пустышек".

Хэши и хорды: проще, чем вы думали

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

В компьютерной вирусологии хэши используются еще со времен сенсационного материала Николаса Уивера. Предсказанный им новый тип Internet-"червей" прибегал к хэш-функции для распределения пространства IP-адресов между отдельными экземплярами "червя" так, чтобы программа не демонстрировала в ходе сканирования характерного для вирусов поведения. Последние, как правило, методично и последовательно проверяют массивы адресов, что давно используется для их обнаружения. Хэш позволяет получить "однородное" индексное пространство, каждому элементу которого сопоставляется уникальный псевдослучайный IP-адрес. Поэтому "последовательное" сканирование хэш-таблицы не приводит к последовательному сканированию адресного пространства Internet.

Впрочем, наука не стоит на месте, и группа исследователей из проекта Oxygen предложила особый вариант хэш-функции, получивший имя Chord. Главная задача, стоявшая перед учеными, -- упростить операцию поиска узла в сети peer-to-peer. Здесь каждый узел хранит в специальной таблице-массиве только IP-адреса своих последователей, индексы которых вычисляются по специальной формуле. Таким образом, "адресная книга" невелика и представляет собой координаты узлов, отстоящих на все большее расстояние друг от друга в хэш-пространстве.

Как поступает узел, когда ему надо соединиться с другим участником сети peer-to-peer? Он проверяет, находится ли номер узла в его хэш-таблице, если нет -- отсылает запрос узлу, номер которого меньше искомого, но наиболее близок к нему. Чтобы повысить производительность алгоритма, каждая успешная операция поиска кэшируется на всех узлах, лежащих на пути сделанного запроса. Считается, что существует большая вероятность пересечения путей прохождения удачных запросов от различных узлов к одному искомому элементу Сети.


Весь мир в кармане

Что следует ожидать от человека, получившего столь значительный контроль над всей Сетью? Самый простой, хотя и крайне неумный, способ использовать Curious Yellow -- уничтожить данные сразу на всех доступных компьютерах. Чуть более сообразительный хакер примется за организацию DDOS-атак на неугодные серверы. Еще проще блокировать доступ к некоторым сайтам непосредственно на зараженных клиентских ПК. Таким же образом можно глобально "подменять" содержимое Web-страниц или выполнять переадресацию запросов.

Однако существуют и гораздо более заманчивые способы использования "сети "червей"" -- для скрытого распространения информации, получения секретных файлов в целях промышленного или международного шпионажа, подмены документов. В конечном счете, Curious Yellow в состоянии заменить суперкомпьютер или колоссальное хранилище данных.


Умри, но не сегодня...

Противостоять Curious Yellow сумеет лишь Curious Blue. Уили предлагает создать аналогичного "червя", однако ориентированного на уничтожение своего собрата. Только децентрализованная сеть peer-to-peer, обладающая сходной скоростью и надежностью распространения обновлений, сможет бороться с "червем", контролирующим значительную часть Internet.

С помощью Curious Blue будет вестись поиск секретного ключа, принадлежащего автору Curious Yellow. Его обнаружение не только позволит взять под контроль вредоносную "сеть "червей"", но и укажет на вероятное местожительство преступника. Хотя чтобы выявить автора, не обязательно искать ключ -- достаточно отслеживать новые патчи. Тот компьютер, на котором новый код появился впервые, -- или ПК владельца "червя" или его ближайший сосед.

Впрочем, хорошо, если в результате контратаки управление окажется в руках специалиста по безопасности, а что если новым владельцем станет хакер-конкурент? Завершая свою статью, Уили как раз и приводит подобный пример. Речь идет о программе обмена музыкальными файлами Kazaa, имеющей около двух с половиной миллионов поклонников, а точнее, об одной из ее подсистем -- Altnet -- отвечающей за автоматическое распространение патчей. Kazaa не является оригинальным продуктом и базируется на платформе FastTrack. И предшественник системы -- Morpheus -- как раз и был уничтожен путем внедрения в программу вредоносного патча, созданного владельцами Kazaa.


Худшее, что могло случиться

Разгоревшаяся вокруг статьи Уили дискуссия иногда приносит любопытные плоды -- забавные, фантастичные, но все же наводящие на размышления. Биологи и вирусологи легко обнаружили сходство новой концепции с поведением реально существующих бактерий и вирусов. В частности, бактерии туберкулеза являют собой отличный пример скоординированной стратегии. На первой стадии они постепенно заселяют организм, не проявляя враждебности и не стремясь к бурному росту. Однако когда концентрация бактерий достигает определенного уровня, популяция начинает активно размножаться, нанося значительный ущерб организму и отчаянно пытаясь преодолеть защитные механизмы.

Схожести добавляет и тот факт, что реальные вирусы, как и Curious Yellow, не ставят своей целью уничтожение носителя. На самом деле проблемы возникают только тогда, когда вирус пытается выйти за пределы привычного ареала. В некоторых случаях он сразу погибает и становится безвредным, однако иногда размножается и заселяет организм, что и приводит к разрушению клеток и тому, что мы называем "заболеванием".

Конечным итогом проведенной аналогии является предположение, что новые интеллектуальные компьютерные "черви" благодаря наличию каналов коммуникации постепенно превратятся в самостоятельно "мутирующие" программы. В результате получится нечто вроде примитивной популяции саморазмножающихся и самосовершенствующихся виртуальных "существ". У многих такое развитие событий ассоциируется с сюжетом знаменитого "Терминатора", однако реальный "интеллект" даже очень сложного компьютерного "червя" вряд ли достигнет уровня бациллы. Впрочем, недостаток "ума" не мешает биологическим вирусам успешно атаковать и брать верх над столь сложным и совершенным созданием природы, как человек.
0 
 

Напечатать Отправить другу

Читайте также

 
 
IDC
Реклама

  •  Home  •  Рынок  •  ИТ-директор  •  CloudComputing  •  Hard  •  Soft  •  Сети  •  Безопасность  •  Наука  •  IoT