RSS лента

SAWWA

Кража электронных денег (частное мнение)

Оценить эту запись
24.11.2013 в 04:38 (2857 Показов)
Крис Касперски ака мыщъх (no e-mail)

Спецвыпуск: Хакер, номер #061, стр. 061-064-1
Взлом и защита WebMoney
Вопреки всем заверениям разработчиков, система WebMoney катастрофически ненадежна и вскрывается буквально ногтем. Существует множество червей, троянов и хакерских групп, специализирующихся на похищении электронных кошельков, кражи которых приняли массовый характер.

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

Украсть же чужую комбинацию вполне реально! Именно этим и занимаются "генераторы WebMoney", которые либо делают дубликат электронного кошелька и передают его злоумышленнику, либо скрыто вызывают Keeper и осуществляют перевод на свой счет. Аналогичным образом действуют вирусы и троянские программы. Можно ли защититься от них?

Система WebMoney, разработанная неспециалистами, изначально проектировалась без оглядки на безопасность. Несмотря на то, что в последнее время появился целый комплекс "противопожарных" мер, приляпанных задним числом, положение остается критическим. Пользователи путаются в системах защиты, служба поддержки дает довольно туманные и расплывчатые рекомендации (обновить Windows, настроить брандмауэр и т.д.), а тем временем кражи электронных кошельков продолжаются.

Мы не ставим перед собой задачу научить кого бы то ни было воровать, мы просто хотим показать и доказать (!), что система WebMoney действительно очень ненадежна и проектировалась даже не задницей (к ней все-таки примыкает спинной мозг), а неизвестно чем. Здесь не будет ни расплывчатых слов (чтобы нас не обвинили в клевете), ни конкретных рекомендаций. Мы не даем готовых атакующих программ и не говорим, какие именно байтики нужно хакнуть, но гарантируем, что весь необходимый хакерский инструментарий может быть создан с нуля за одну ночь - святое для хакеров время!

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

Идем на www.webmoney.ru, скачиваем программу Keeper Classic, запускам ее (так и не удалось заставить это чудо научно-инженерной мысли работать через Proxy-сервер, пришлось поднимать NAT и маппить 2802-й порт), заполняем регистрационные данные (от фонаря или честно), придумываем себе любой пароль по вкусу, после чего программа приступает к генерации секретного ключа и просит подергать мышь и понажимать клавиши. Все это проделано ради получения действительно случайных данных - как будто псевдослучайный генератор на основе таймера здесь не годится. На фоне общей незащищенности системы бравировать словами RSA, RC5, MD4, MD5 и SSL просто глупо. Впрочем, психологический расчет разработчиков вполне понятен. Если секретный ключ будет генерироваться за доли секунды, какой пользователь в него поверит?

По завершении регистрации нам присваивается уникальный 12-значный идентификатор WMID (Web Money ID) и пара сгенерированных ключей. Открытый ключ передается на центральный сервер оператора WebMoney, а секретный сохраняется в файле с расширением *.kwm (Key of Web Money), который может быть расположен на жестком диске, сменном носителе или смарт-карте. Как видишь, обыкновенная несимметричная криптография типа PGP.

Плюс ко всему создается файл *.pwm, хранящий сведения о кошельках (текущий баланс, история операций и т.д.). В принципе он необязателен, так как вся информация расположена на центральном сервере оператора. Keeper может работать и без PWM-файла, автоматически подгружая данные из Сети, правда, только за последние три дня. Собственно, KWM-файл тоже необязателен и его можно восстановить, для чего необходимо знать пароль, иметь доступ к почтовому ящику, указанному при регистрации, а также нотариально заверенное заявление, что ты не лось (подробнее об этом по ссылке www.owebmoney.ru/returnkey.shtml). Чисто теоретически, хакер может хакнуть твои денежки только на основе пароля, но практически – для него это слишком хлопотно и небезопасно.

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

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

Кража KWM-файлов процветает. По умолчанию ключи сохраняются в keys.kwm, но в принципе имя файла может быть любым, как, впрочем, и расширение. Большинство хакеров и троянских программ производит тупой поиск по маске *.kwm, поэтому переименование файла ключей в dontreadme.txt до некоторой степени увеличивает защищенность. Однако продвинутые хакеры могут залезть в реестр, где Keeper хранит свои настройки, и подсмотреть путь к файлу. Еще можно искать по его содержимому, сканируя все файлы (правда, это займет много времени и вызовет подозрительную дисковую активность). Гурманы наверняка перехватят вызов API-функции CreateFile, показывающей, какие файлы открывает Keeper. И даже если формат настроек реестра в последующих версиях будет изменен, вариант с CreateFile продолжит работать. Хинт: если бы разработчики не были идиотами, они бы создали несколько файлов с ключами: один подлинный, все остальные - сторожевые датчики, при обращении к которым раздается сигнал тревоги .

По умолчанию размер файла ключей составляет 1,2 Мб (на дискету), но при желании его можно увеличить вплоть до 100 Мб, что затруднит кражу ключа с передачей по интернету и не создаст никаких непреодолимых неудобств. 100 Мб - это половина mini CD-R, один Zip-100M или два CD-R в формате бизнес-карты. Конечно, быстродействие системы в некоторой степени упадет (огромный файл так сразу и не прочтешь), но безопасность стоит того. Или не стоит? Утащить 100 Мб по локальной сети - не проблема, по DSL-модему или кабельному интернету - тоже. И даже позорный по нынешним меркам модем на 33600 передаст этот файл за ~70 часов. Не так уж и много, если вспомнить, что практически никто из пользователей не перегенерирует ключи каждый день. Разрезав файл на мелкие кусочки, передаваемые в фоновом режиме, вполне реально утащить его за две-три недели, хотя это будет самый тупой и неперспективный путь.

Если хакер внедрился в чужую систему (а внедриться в нее можно разными путями), ему ничего не стоит загрузить файл в память, открыть кошелек, перевести деньги на свой счет и грохнуть жесткий диск, чтобы жертва не смогла войти в интернет и пожаловаться кому следует. Кстати, насчет "пожаловаться". Вариантов не так уж много, и помощи ждать неоткуда. Если у тебя еще есть доступ к WMID (что за тупой хакер попался?), можно определить WMID, на который были переведены деньги, зайти на сайт Арбитражного Сервиса (http://arbitrage.webmoney.ru), оплатить арбитражный сбор (а для этого необходимо иметь WebMoney, которых у нас подчистую умыкнул злоумышленник) и заблокировать хакерский кошелек.

Только если хакер не лось, деньги за считанные минуты будут переброшены на e-gold или выведены из системы любым другим путем, так что на его кошельке их не окажется и блокировать будет особо нечего. Кстати, кошельки с начальным или персональным аттестатом блокируются только по решению арбитражной комиссии, то есть достаточно взять аттестат и... Только не надо думать, что владельцы аттестатов не занимаются воровством, поскольку сообщают свои паспортные данные. Выдачей аттестатов сейчас занимаются все кому не лень, и просто наивно надеяться, что все они люди честные, добросовестные и неподкупные. Тем более когда речь идет о деньгах, пусть даже электронных. Человек, который вознамерился похитить $100 000 (а почему бы и нет?), без проблем получит не только фиговый аттестат, но еще и фальшивый паспорт в придачу. Даже если сотрудники МВД подделывают паспорта на потоке, о чем не раз говорило TV (а это уже криминал), то что говорить об "аттестатах", у которых вообще нет никакого юридического статуса.

Впрочем, разработчики все-таки рассмотрели ситуацию с переброской ворованных денег через несколько кошельков, и поэтому усердно позаботились о... злоумышленниках! Суди сам. После подачи уже упомянутого иска жертве следует обратиться к Администратору Арбитражного Сервиса (WMID 937717494180, arbitrage@webmoney.ru) и попросить его проследить цепочку. Вся "прелесть" в том, что Администратор работает только с понедельника по пятницу и с 10 до 18 часов по Москве, причем вывод денег из системы осуществляется практически мгновенно, поэтому счет идет на минуты.

Кстати, еще один вопрос: "Это студенческая общага или серьезная платежная система?" Что стоило при миллионных оборотах (о которых не перестает упоминать реклама) нанять несколько человек для круглосуточной поддержки? Речь в данном случае идет о деньгах! Естественно, для хакеров безопаснее всего совершать кражи либо в полночь, либо в выходные дни.
Метки: web money Добавить / редактировать метки
Категории
Без категории

Комментарии

  1. Аватар для SAWWA
    Что внутри у Keeper'а
    Некоторые восхищаются тем, как разработчикам удалось втиснуть в объем Keeper'a так много (опусы есть на www.owebmoney.ru/clashistory.shtml). А что они, собственно, в него вместили? Конечно, в наш век, когда Hello World с трудом вмещается на лазерный диск, программы, занимающие "всего" несколько мегабайт, уже вызывают уважение .

    Основной объем (~2,2 Мб) занимает WMClient.dll, который, собственно, и есть Keeper, он же DCOM-объект, написанный на Microsoft Visual .NET с компиляцией в машинный код, ничем не упакованный и никак не препятствующий своему анализу. Здесь нет ни шифрованного, ни p-кода, ни антиотладочных приемов, ни противодействия дизассемблеру, дамперу, API-шпиону. Ничего! Бери и анализируй. Во всяком случае, версия 2.4.0.3 (на момент написания статьи) ведет себя именно так. Будь разработчики хоть малость поумнее, они либо использовали бы Microsoft Visual C++ 6 (знаменитую "шестерку") плюс любой качественный протектор (например ExeCryptor), либо откомпилировали NET-приложение в p-код, дизассемблировать который намного сложнее.
  2. Аватар для SAWWA
  3. Аватар для SAWWA
    Впрочем, если смотреть правде в глаза, необходимо признать, что хакнуть ENUM очень сложно. Но это не значит, что можно заводить электронный кошелек и смело класть на него $100 000. Тогда точно взломают!

    Кровавая война продолжается
    Взлом WebMoney - это не миф, а суровая реальность. Обезопасить себя на 100% нельзя, даже если ты эксперт по безопасности. Всегда существует риск подхватить вирус через еще не известную дыру в операционной системе или браузере. Если от потери оперативных данных на винчестере спасает резервирование, от раскрытия конфиденциальных данных - физическое отключение интранета от Сети, то от кражи электронных денег не спасает ничто!

    Что можно и что нельзя
    Экспериментировать (в образовательных целях) можно только со своим собственным электронным кошельком или с кошельками лиц, предоставивших соответствующее письменное разрешение . Несанкционированное вмешательство в чужие системы и кошельки категорически недопустимо!
Яндекс цитирования Яндекс.Метрика

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17