Компьютерра - Журнал «Компьютерра» № 34 от 18 сентября 2007 года
Как бы то ни было, бизнес на пакетах вредоносных программ бурно развивается, а его анализом всерьез занялись эксперты по экономике и защите информации. Исследования показывают, что программисты обычно работают на брокеров-посредников; эти брокеры продают malware-продукты мелким криминальным структурам, а те, в свою очередь, делают бизнес с крупными преступниками. Хакеры, смыслящие в ИТ, всячески стараются не пачкать руки откровенным криминалом, за который можно легко угодить в тюрьму. Поэтому другие группы, далекие от программирования, создают сети и ИТ-компании, которые вовлечены в легальный или полулегальный бизнес, так или иначе прибегающий к malware-инструментарию.
На недавней конференции Defcon в Лас-Вегасе обзорный доклад об "Индустрии коммерческого вредоносного ПО" сделал известный новозеландский хакер и криптограф Питер Гутманн (Peter Gutmann) из Университета Окленда, имеющий давние и тесные связи с сетевым андеграундом. По сведениям Гутмана, ныне обычным делом является бизнес, когда одна фирма по заказу другой фирмы заражает шпионскими (spyware) или рекламными (adware) программами доступные ей в Интернете компьютеры всего лишь по 30 центов за штуку. Другие платные услуги практически один-в-один могут копировать услуги обычных сервис-провайдеров – вроде долгосрочной аренды или разового доступа к сетям компьютеров, уже зараженных вредоносным ПО. В качестве примеров Гутман приводит опять-таки российские реалии, где одна из криминальных групп сдавала в аренду свою раскрученную и зараженную троянцем сеть сайтов – по 4 доллара за тысячу посетителей.
Дабы скрасить столь невеселую историю, процитируем слова человека, называющего себя DCT и выступающего в Сети от имени создателей самого известного malware-пакета: "Я бы посоветовал вам использовать браузер Opera с отключенными скриптами и плагинами – чтобы однажды и вас не поймал MPack".
ОКНО ДИАЛОГА: Догнать и перегнать
Автор: Илья Щуров Voyager
Примерно год назад я был жутко горд собой. Разбираясь с установкой MediaWiki на свой сервер, я обнаружил в нем некий глюк, затем нашел соответствующую ошибку в коде, исправил ее и послал патч с исправлением разработчикам. Патч был принят (с небольшими изменениями), и теперь в движке, обслуживающем один из самых грандиозных веб-проектов нашего времени, а также десятки тысяч других сайтов, есть мой код. Целых три строчки. Неважно, что их всего три – важно, что ими пользуются миллионы людей. И осознавать это очень приятно.
Однако никакие проекты (в том числе программистские) не рождаются популярными, а становятся ими – после долгой и порой изнурительной работы "в стол". От идеи и горящих глаз "а давайте сделаем вот это!" до того момента, когда об успехах можно будет говорить вслух, обычно проходит немало времени.
Этот рассказ об одном из таких проектов. Вы вряд ли будете им пользоваться сегодня или завтра. Но есть люди, которые вкладывают свои силы и время в то, что, возможно, чуточку упростит вашу жизнь послезавтра. И этот рассказ – о них.
Задача– Наша операционка уже работает на ноутбуке XO-1 (OLPC). Загружается и показывает "синий экран смерти" – хвастается Алексей Брагин, координатор проекта ReactOS. – У Microsoft, правда, Windows тоже уже на нем работает, но они заменили там «родной» BIOS на стандартный, а это не так интересно. Мы оставили OpenFirmware и адаптируем свою систему. Правда, эти молодцы, которые делали железо, спецификацию USB-контроллера немного переиначили, и я вынужден читать их документацию и подправлять наши драйвера. Поэтому пока оно не очень работает.
Впрочем, по выражению лица видно, что прогрессом на этом направлении Алексей доволен. Он вообще полон оптимизма. Об успехах говорить не стесняется, даже если эти успехи могут вызвать у слушателя улыбку или недоумение – как с тем же "синим экраном". На обычном PC, впрочем, система работает значительно лучше – можно запустить текстовый редактор (AbiWord), браузер (Firefox) и вообще довольно внушительный список приложений. Они даже будут работать. Пока ОС не «упадет» – а это рано или поздно случится, ибо версия – "ранняя альфа", и до практического ее применения конечными пользователями еще далеко.
ReactOS – свободный «клон» Windows NT и ее потомков (в число которых входит и Vista). Иными словами, участники проекта пытаются в свободное от остальных дел время переписать "с нуля" систему, на которую гигантская корпорация потратила уже несколько десятков лет работы (и страшно подумать, сколько человеко-лет). Конечно, в такой формулировке задача выглядит столь же грандиозно, сколь и безнадежно. Впрочем, не все так плохо.
– На самом деле, эта задача сравнительно просто решается, – оптимистично замечает Алексей. – Вот смотрите: в свое время был Unix, потом появился GNU (задуманный как свободный клон Unix – И.Щ.), в котором ядра не было, а потом появился Линус, который вовремя сказал: "У меня есть ядро, совместимое с GNU". И все пошло. У нас ситуация похожая. Есть куча драйверов – практически подо все. И есть не море, а целый океан win32-софта. И мы просто делаем ядро, совместимое и с тем, и с другим.
ИсторияРешают эту "простую задачу" участники ReactOS вот уже 10 лет. Начало было положено еще в 1996 году – тогда проект назывался FreeWin95, но в конце 97-го года он был переориентирован на разработку WinNT-совместимого ядра и получил современное название.
– Нас часто спрашивают: "почему проект развивается столько времени, а прогресса пока немного?" – говорит Алексей, рассказывая об истории ReactOS. – С самого начала все было довольно интересно поставлено: были координаторы по разным областям (например: kernel coordinator, media coordinator, web coordinator, win32 subsystem coordinator и т. д.), но из-за острой нехватки людей фактически координаторы были просто разработчиками, которые с течением времени уставали и уходили. Бессменным оставался только первый координатор проекта – Джейсон Филби (Jason Filby). В начале он очень активно им занимался, ездил на выставки, налаживал связи (вообще этим он, конечно, заложил хорошую базу, даже несмотря на то, что в то время прогресс по фактической реализации был минимальный). Но вскоре время, которое он мог отдавать проекту, сильно сократилось – фактически он был только на email-связи для каких-то экстренных вопросов. Вот здесь удивительный момент – все это время проект жил и развивался сам собой, за счет энтузиазма разработчиков (грубо говоря: один сломал – другой исправил). Чисто с программистской точки зрения, это идеал для работы: выбирай то, что интересно, сроков никто не ставит, сам выбираешь способ реализации. Все бы хорошо, но в результате каждый продвигал что-то свое, и вместо того, чтобы сделать как надо, "подтачивал напильником" под то, что уже было реализовано. Взяли некоторые идеи от Windows, и сделали некое ядро – наполовину из идей NT, наполовину из своих идей. Написали для него драйверы, которые зависели от всех его глюков. И Win32 API взяли из Wine. А потом столкнулись с тем, что все это глючит, и систему невозможно развивать, потому что все сделано на примитивном уровне. Начали перерабатывать ядро – при этом полетели все драйвера – они не были рассчитаны на такую работу, их с Windows никто не тестировал.
В 2005 году несколько разработчиков, включая моего собеседника, предложили более системный подход: последовательная разработка WinNT-совместимого ядра и WinNT-совместимых драйверов. Вероятно, прогресс надо отсчитывать именно с этого момента.
– Сейчас многое приходится переделывать, – рассказывает Алексей. – С другой стороны, за прошедшее время была наработана какая-то известность, какое-то имя. Мы стараемся сохранить максимальную свободу для разработчиков, но при этом хотим, чтобы проект двигался не хаотично или по кругу, а в каком-то направлении. И без некоторого жесткого влияния здесь уже не обойтись, поэтому иногда я вынужден принимать такие решения, которые могут быть не очень популярными, но в конечном итоге работают на благо проекта.
Мы разговаривали перед выпуском очередного релиза – версии 0.3.3. Я попросил Алексея рассказать, что там будет интересного для "простого смертного":
– Улучшилась стабильность. Система не будет падать, если ее включить на пять часов, на десять часов – даже если компьютер подключен к Интернету и на нем запущен mIRC. Однако пользователям, вероятно, интереснее другое: появилось что-то вроде менеджера пакетов в Linux-системах – он скачивает из Интернета инсталлятор, распаковывает и устанавливает. Там перечислены приложения, которые заведомо работают в ReactOS – список набрался довольно внушительный и включает в себя как открытые, так и закрытые программы. Штука совсем простая (не такая, как в Debian и других Linux-дистрибутивах), но производит хорошее впечатление.
Я задумываюсь о том, что от ОС сейчас, по сути, не так много и нужно. Если стабильно работает какой-то современный браузер (тот же Firefox), то это уже дает огромные возможности. Впрочем, предположение о том, что ReactOS кто-то использует на практике, Алексей отвергает категорически: "до продакшн-стадии еще далеко". Тем не менее, пользу проект приносит – если не конечным юзерам, то сообществу разработчиков.