Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #94, ОКТЯБРЬ 2006 г.

Некролог на Web-Money Keeper

Крис Касперски

Хакер, номер #094, стр. 094-062-4


.rdata:1021ED08 aPci_datecrt db '&pci_datecrt=',0 ; DATA XREF: sub_100901C0+F6Fo

.rdata:1021ED18 aPci_modeTest db '&pci_mode=test',0 ; DATA XREF: sub_100901C0+FFFo

Семейство сток, гнездящихся вокруг слова «pci», наводит на мысль, что Keeper опрашивает PCI-шину для получения списка подключенных устройств. Сканер шины это действительно подтверждает, а в дампе памяти обнаруживаются идентификационные строки всех периферийных устройств.

Поскольку виртуальные машины, в частности VM Ware, несут на своем борту довольно специфический набор оборудования и выделяют MAC-адреса из фиксированного пула адресов, становится ясно, как система распознает факт наличия виртуальной машины. Она просто сравнивает конфигурацию пользовательского оборудования с конфигурацией виртуальной машины, и, если они совпадают, электронный кошелек закрывается без предупреждений. Причем сравнение происходит не на клиентской, а на серверной стороне! То есть Keeper не просто опрашивает PCI-шину, но еще и передает эти данные в сеть, где они, по всей видимости, заносятся в банк данных, представляющий огромный интерес для спецслужб различных стран.

Штатные средства VM Ware не позволяют менять ни MAC-адреса, ни конфигурацию оборудования (в новых версиях вроде бы сделаны некоторые шаги в этом направлении, но не слишком радикальные). К счастью, есть неофициальная заплатка, позволяющая менять все, что угодно: http://honeynet.rstack.org/tools/vmpatch.c. Эксперименты подтверждают: после изменения конфигурации Keeper перестает распознавать VM Ware, и электронный кошелек больше не «палится».

В текстовых строках можно ковыряться до бесконечности. Это настоящий Клондайк, раскрывающий зловредные намерения Keeper'а хуже любого предателя. На месте разработчиков я бы обязательно их зашифровал, а то как-то несерьезно получается.

Как вам нравится следующее? Keeper динамически создает драйвер citio.sys (на NT/W2K/XP)/citio.vxd (на 9x), тут же его загружает в память, а после удаляет:

Ссылки на неопознанный драйвер, обнаруженные в Keeper'e

.rdata:10222D5C aSystem32Driver db 'system32\drivers\citio.sys',0

.rdata:10222D78 aFileName db '\\.\citio',0

.rdata:10222D8C aSystemCitio_vx db 'system\citio.vxd',0

.rdata:10222DA0 a_Citio_vxd db '\\.\CITIO.VXD',0

С самим драйвером я не разбирался. Выяснил только, что он имеет размер 4048 байт и, по сообщениям на форумах, часто является источником многих проблем. Тут уже дело не в конфиденциальности, а в надежности и стабильности работы. Мастерить драйвера — это вам не прикладные программы писать. Малейшая небрежность/неосторожность превращается в сплошной геморрой. Зачем пускать к себе на компьютер заведомо некорректно написанную программу?!

«Источники, приближенные к кругам разработчиков» сообщили, что все эти драйвера вставлены вовсе не из-за пакости или желания навредить пользователю. Напротив! Они охраняют Keeper от нехороших программ, крадущих электронную наличность. Как говорится, все на благо пользователя, даже если это благо идет ему вопреки. Я повторяю еще раз: нормально спроектированный платежный клиент работает исключительно на прикладном уровне, а не вгрызается в систему, как бульдозер в асфальт. Если на компьютер проникла зловредная программа, захватившая администраторские права (а такие права заполучить очень легко), она может вытворять с Keeper'ом все, что угодно, и никакие драйвера не в состоянии ее остановить, поскольку, после того как зловредная программа загрузит свой собственный драйвер, она уровняет свои шансы с Keeper'ом, а в противостоянии двух драйверов обороняющаяся сторона всегда обречена на поражение.

Назад на стр. 094-062-3  Содержание  Вперед на стр. 094-062-5