Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #61, ДЕКАБРЬ 2005 г.

Кража электронных денег

Крис Касперски ака мыщъх

Спецвыпуск: Хакер, номер #061, стр. 061-064-5


Техника эмуляции ввода подробно описана в "Записках мыщъх'а", электронную версию которой можно бесплатно сжевать с ftp-сервера nezumi.org.ru (доступен не круглосуточно). Так что не будем разводить демагогию и жевать резину по сто раз. Отметим лишь общий механизм.

Сначала нужно найти окно Keeper'а вызовом функции FindWindow или EnumWindows и определить его дескриптор. Затем, используя EnumWindows, перечислить дочерние окна, принадлежащие элементам управления (кнопкам, строкам редактирования и т.д.). Посылая элементам управления разнообразные сообщения (с помощью функции SendMessage), их легко взять под свой контроль. Для отключения вывода - либо перехватить службы GDI (реализуется сложно, но действует на ура), либо расположить поверх Keeper'а отвлекающее окно, например окно браузера с порнографической картинкой :). Да много всякого тут можно придумать.

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

Почему "летающие цифры" действуют на web-серверах? Только потому что, во-первых, защитный код находится вне пределов досягаемости хакера, а во-вторых, потому что защита нацелена исключительно на роботов, а не на людей. Для охраны mail.ru от спамеров и вандалов такой меры более чем достаточно, а для Keeper'а - решительно нет! В существующих версиях Keeper'а летающие цифры элементарно распознаются простейшим OCR, а он свободно умещается в сотню килобайт (при использовании готовых библиотек). Хакерскому коду ничего не стоит захватить кусочек экрана и отправить его дежурящему у монитора хакеру, чтобы тот распознал их самостоятельно.

В-третьих, эта защита отключается бит-хаком, то есть правкой машинного кода Keeper'а.

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

В-пятых, даже если защита будет ужесточена, в запасе у хакеров останется расшифровка протокола обмена и создание своих собственных клиентов без всяких там цифр.

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

Назад на стр. 061-064-4  Содержание  Вперед на стр. 061-064-6