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

Теперь наступает новая эра, кибер-паразитов. Вместо того, чтобы красть данные или
творить crash, kill & destroy, они эксплуатируют
саму сущность, благодаря которой существует Интернет. И превращают миллиарды компьютеров всемирной паутины в одну гигантскую вычислительную
систему... Идея объединить компьютеры в сети для создания единого сверхмощного вычислительного комплекса не новость. Она успела себя оправдать для решения вполне легальных задач. Например, когда 2001 году террористы стали рассылать по почте поры Сибирской язвы, биологи призвали на помощь целую армию добровольцев, чтобы найти противоядие, те согласились перебрать 3.5 миллиарда вариантов, загрузив в свои машины программу, которая начинала работать, как только процессоры переходили в режим ожидания.
Всего за 24 дня этот «распределенный» компьютер запротоколировал 5436 лет машинного времени, выделив 12 тысяч вероятных кандидатов в препараты. 

Не ведаю, что делаю 

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

Проекты в области распределенных вычислений буквально наводнили сеть: уже сейчас их более сотни. А поскольку загружаемая программа работает в фоновом режиме, часто в виде хранителя экрана, пользователи могут ее и не замечать. Вы можете исследовать лекарства от рака, моделировать события в ускорителе элементарных частиц или просматривать радиосигналы из космоса в поисках внеземного разума и одновременно читать электронную почту или печатать доклад. Распределенные вычисления привлекли и бизнес - сообщество. По оценкам United Devices, компании из Техаса, разрабатывающей программы,
которые заставляют компьютеры в сети работать сообща, спрос на продукцию фирмы растет по экспоненте. Среди потенциальных пользователей
- нефтяные компании, банки и фармацевтические фирмы. Им необходимо анализировать огромные объемы данных, рассчитывать финансовые риски и создавать новые лекарства. Желающих заняться поиском
лекарства от рака хоть отбавляй. Но не многие согласны участвовать в проектах, имеющих чисто коммерческое приложение. Единственный способ привлечь на свою сторону пользователей компьютеров – предложить им деньги или же встроить программное средство для решения распределенных вычислений в уже существующие продукты.
Но есть еще один вариант. Что если некий злоумышленник для решения сложнейшей вычислительной задачи втихаря сумеет поработить некое количество хостов в сети? И ни кому не заплатит...

От перемены мест слагаемых сумма – меняется

На протяжении последних нескольких лет специалисты допускали, что подпольная деятельность компьютера возможна. Только доказать это не получалось. И вот в 2001 году два исследователя из Университета Нотр – Дам, штат Индиана, наконец- то сообразили, в чем дело. Физик Барабази и специалист по компьютерным технологиям Фри обратили внимание на протокол
TCP (Transport Control Protocol). TCP – один из ключевых компонентов коммуникационной системы Интернета
(мы не раз рассказывали о нем и потому
пройдись поиском по Хакеру и вспомни все,
что мы писали). Среди инструкций – контрольная сумма TCP , позволяющая узнать, было ли цифровое сообщение искажено в процессе передачи Перед отправкой сообщения от одного компьютера другому TCP преобразует его в последовательность 16 – битных «слов». Затем рассчитывает контрольную сумму, которая представляет собой 16 – битное дополнение суммы всех 16 – битных «слов» контролируемой информации. Полученное значение прикрепляется к началу последовательности. Когда принимающий хост получает сообщение
он также вычисляет контрольную сумму. И если значения совпадают, хост считает сообщение полноценным и выдает подтверждение о приеме. Несовпадение принятой и рассчитанной контрольных сумм означает, что в процессе передачи сообщение было искажено. В этом
случае  его просто игнорируют. Если же отправитель не получит подтверждения от получателя в течении некоторого времени, сообщение вновь будет отправлено.
Фри задумал скомпоновать сообщение таким образом,
чтобы истинная контрольная сумма и последующие подтверждение сигнализировали о верном решении вычислительной задачи. Для этого в каждый пакет он добавил по одному возможному решению. Затем намеренно
изменял биты сообщения так, чтобы контрольная сумма была истинной только в случаи верного решения. Если от конкретного хоста не поступало сообщения, ученый знал, что возможное решение, которое ему было направлено, неправильное. И наоборот: получив подтверждение. Фри мог определить, какое из решений верное
(более подробно об этом вы можете прочитать тут). 

Грабят!!!!!!!

После успешных испытаний в своем университете Фри и Барабази призвали на помощь коллег из Азии, Европы и Северной Америки, которым предстояло принять участие в более масштабном эксперименте. Ученые согласились предоставить свои машины для решения
традиционной задачи о коммивояжере, которая предполагает перебор всех возможных вариантов ответов, а не расчет по заданному алгоритму. Эксперимент удался. При этом ни кто из участников не заметил, что его компьютер выполняет чужие команды. «Чтобы подтвердить идею, хватило бы и нескольких машин, - говорит Фри. – Теоретически мы можем проделать то же самое с любым хостом в сети». Свой метод исследователи окрестили «паразитными расчетами». Все не так страшно, как кажется, ускакивают ученые (хотелось бы верить). Сам по себе TCP протокол не настолько совершенен, чтобы переносить большие объемы данных. «Например, мы не можем, воспользовавшись только TCP, заставить удаленную машину выполнять программные циклы, - объясняет Барбази. – Поэтому этот метод нельзя использовать для серьезной вычислительной работы». Однако ученый не исключает, что кое–кто
сумеет преодолеть и это препятствие. «Мы просто решили, что Интернет–сообщество должно обсудить все возможные варианты еще до того, как появиться эффективная технология», - говорит он. А если верить Дилу Фрисби, то паразитическая технология уже существует. Фрисби, программист, которому принадлежит веб-сайт
Hawksoft.com, начал с того, что попытался связать веб–страницы для выполнения
распределенных вычислений. Он решил использовать языки программирования Java и Java Script: почему бы ни загрузить невидимые команды и данные в компьютер ничего не подозревающего пользователя, пока он будет открывать главную страницу сайта, сообразил Фрисби. Ведь это происходит сплошь и рядом. Чтобы проиграть аудио- или видео клип с сайта, вы загружаете в свою машину программы и данные. Большинство веб – узлов предупреждает, что вы собираетесь запустить машинный код на своем компьютере. А если вас не предупредят?
Простым открытием страницы вы, сами того не ведая, превращаете свою машину в раба, причем не вашего. 

Слушаю и повинуюсь

«Вы наверное ничего не заметите. А программа и данные могут быть очень большими, - говорит Фрисби. И в самом языке Java ни чего менять не нужно» Java позволяет определить, когда пользователь собирается покинуть сайт. Значит, можно сделать так, чтобы результаты вычислений были возвращены серверу еще до того,
как соединение будет прервано. Если вы снова зайдете на сайт, ваш компьютер получит новую порцию данных для анализа. В конце 2001
года он и его коллеги создали веб страницу, которая начинала вычислять простые числа на компьютерах обратившихся к ней пользователей. «Мы продемонстрировали,
что эта задача может быть решена эффективно», - говорит Фри. «Представьте, что ваш конкурент собирается выпустить новый продукт, - рассуждает он Вы можете сделать так, что все компьютеры, которые обратятся к вашему сайту 
«завалят» конкурента запросами к несуществующим страницам». Сами пользователи не заметят ничего необычного в работе своих машин. А сайт конкурента будет выведен из строя DDoS. «Это гораздо проще, чем взламывать систему» - говорит Фрисби. Даже ребенок может добавить несколько строк кода, а потом быстро их удалить. Найти злоумышленника будет очень трудно».
В феврале 2002 года Фрисби поделился своими соображениями на форуме Slashdot.org.
Посетители сайта уверяли, что пользователь не сможет не заметить, когда его браузер неожиданно начнет потреблять все 100 процентов вычислительной мощности процессора, Фрисби возражает,
что в JavaScript есть функция, позволяющая регулировать загрузку процессора. Он даже получил сообщение из Великобритании
от одного перца, который создал сайт, содержащий скрытый код Java. В результате каждый в каждый компьютер, обратившийся к этому сайту, незаметно загружалась программа,
которая рассчитывала значение числа Пи.
Автор клянется, что никто не заметил его проделок. Жалоб на медленную работу компьютеров так же не поступало.

Don`t touch this 

 «Как только люди узнали о нем эксперименте, мы получили множество писем с гневными высказываниями типа
"не трогайте мой компьютер!", - вспоминает ученый.
Эксперты соглашаются, что открытое обсуждение проблемы паразитных расчетов повысит бдительность интернет–сообщества. Однако это может подтолкнуть коварных предпринимателей и просто хакеров по–новому взглянуть на лазейку, которую открыли Барбази и его коллеги.
«Идея воспользоваться контрольной суммой TCP гениальна сама по себе, – говорит Шульц. Потенциально в ней заложена много большая угроза, чем в языке Java, поскольку изменения в TCP невозможно отследить. Пока эта технология недостаточно эффективна для практического применения. Однако в будущем она сможет стать очень опасной».

  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    0 комментариев
    Межтекстовые Отзывы
    Посмотреть все комментарии