Выбрать главу

Предпринятое тут же расследование позволило выявить драйвер, постоянно сидящий в оперативной памяти, перехватывающий все системные вызовы и подменяющий некоторые из них вызовом команд из папки $sys$. Комплект файлов в папке-невидимке, как выяснилось, разработан британской фирмой First 4 Internet, а дополнительный розыск в Сети показал, что эта компания делает программные средства DRM-защиты контента для аудиодисков Sony BMG. Тут-то и стало ясно, что неведомый руткит появился после того, как Рассинович послушал на компьютере изданный Sony компакт-диск с альбомом кантри-рокового дуэта Van Zant.

Чтобы защитить аудиотреки от нелегального копирования, на дисках Sony BMG с некоторых пор прописывается собственный программный плейер, устанавливаемый при первой же попытке послушать диск через компьютерный привод. Этот плейер позволяет сделать ограниченное количество резервных копий, а также сам управляет сжатием аудиотреков (препятствуя созданию бесконтрольных MP3; если какой-то процесс пытается получить доступ к треку в обход плейера Sony, то следящий за этим драйвер сразу подмешивает в аудиопоток помехи). Вся программа защиты называется XCP, или Extended Copy Protection, встраивается в аудиодиски Sony примерно с начала 2005 года, и что она реально делает с компьютером - никому было неведомо, пока не нашелся въедливый Рассинович.

Выяснились же вещи весьма неприятные. Для воспрепятствования обходу средств защиты программа XCP применяет резидентный драйвер, удаление которого для обычного пользователя Windows оказывается весьма нетривиальной задачей. В реестр Windows драйвер встроен весьма замысловатым образом, так что его удаление нарушает целую цепочку программных вызовов, в результате чего привод CD-ROM перестает работать. На дисках же Sony никакого деинсталлятора для XCP нет, так что от драйвера XCP в памяти машины просто так уже не избавиться. Разве что полной переустановкой ОС. Есть, конечно, еще один способ - вступить в личную переписку с Sony, которая пришлет по запросу инструкцию с описанием шагов, необходимых для деинсталляции, но они подразумевают подключение компьютера к серверу компании и занесение адреса отправителя в маркетинговые листы рассылки.

Блог-публикация Рассиновичем всех этих открытий подняла большой шум в Интернете и компьютерных СМИ. Специалистам по компьютерной безопасности совершенно очевидно, что в борьбе с пиратством Sony перегнула палку, взяв на вооружение весьма опасный инструментарий вирусописателей. Например, пользуясь уже установленными драйверами XCP, создатели зловредных кодов могут называть свои файлы именами, начинающимися на $sys$[Кстати несколько троянцев, использующих эту методику маскировки, уже выловлены антивирусными компаниями], и таким образом делать их невидимыми для антивирусных средств («шапка-невидимка» XCP закрывает любой файл, процесс или ключ реестра с именем на $sys$). Или, как отметили аналитики финской антивирусной компании F-Secure, если другой музыкальный лейбл последует примеру японской корпорации, то в оперативной памяти появятся сразу два низкоуровневых драйвера-перехватчика, которые неизбежно вступят в конфликт и обрушат систему.

Столкнувшись с недовольством публики своими новациями, Sony, разумеется, была вынуждена отреагировать. Но сделала это весьма своеобразно - разместив у себя на сайте веб-страницу, помогающую всем желающим установить специальный Service Pack, который - нет, не удаляет XCP - осуществляет «разоблачение» (decloaking), то есть делает видимыми папку и файлы технологии защиты («разоблачение», как предполагается, должно отпугнуть от $sys$ вирусописателей). При этом первая версия сервис-пака тянула на 3,5 Мбайт, а для установки требовала activeX (то есть наличия браузера Internet Explorer). Реакцию публики на подобное безобразие представить нетрудно. Получив очередную порцию язвительных комментариев, компания выпустила еще несколько версий «разоблачителя», последний из которых (на момент отправки номера в печать - Service Pack 2a) вроде бы все же деинсталлирует XCP. Одновременно аналогичные инструменты выложили и антивирусные фирмы, до этого почему-то XCP не замечавшие.