VPN + SOCKS А безопасно ли?

Тема в разделе "АНОНИМНОСТЬ В ИНТЕРНЕТЕ", создана пользователем plas, 5 фев 2010.

  1. plas

    plas New Member

    Сообщения:
    10
    Симпатии:
    0
    Безопасность webmoney

    Много споров и подозрений в интеренете по поводу этой программы,
    многие говорят что она шпионит за пользователями, даже небезызвесный
    Крис Касперски написал статью про неё и называлась она Некролог на
    WebMoney. Очень нелестно высказываются о ней и другие прользователи.
    Чтож, лучше один раз увидеть чем сто раз услышать, и исследовать
    программу решил и я. Немного забегая вперед могу сказать что не все
    так и плохо, как бы там не расписывали другие люди. В том же некрологе
    программка была расписана как нечто ужасное, но на самом деле это не
    более чем преувеличиения. Итак, приступим.
    С сайта вебмани был загружен дистриб проги и успешно установлен на
    комп. При установке были включены файловый монитор и монитор реестра,
    ничего скрытно она не делает, все что произошло было аккуратно записано
    в лог установки и свободно для чтения.
    Следующий этап - осмотр того что нам собственно поставили, а файлов
    там не слишком и много:
    - KeeperID.exe (285 kb)
    - WebMoney.exe (178 kb)
    - WMClient.dll (2.8 mb)
    - WMDispatcher.exe ( 73 kb)
    - прочие файлы (анинстал, папки с сертификатами и bexth.dll)
    KeeperID и WebMoney запакованы AsProtect ом, но не самой последней
    версии, и если это было бы необходимо - можно было распаковать.
    Наиболее крупным файлом в поставке был WMClient.dll и именно он
    и содержит все основные функции программы, а ехе являлись лишь
    хостом для этой длл. Сама длл ничем не запакована. Рассмотрим что же
    в действительности делает она.
    Миф 1. Она получает мой mac-адрес!
    Да получает, ну и что? Получение идет абсолютно открыто - подгружается
    библиотека netapi32 и затем вызывается стандартная функция NetBIOS для
    получения информации о мак-адресе, никаких сокрытий тут не ведется, да и
    если вы так боитесь своего мак адреса - ну поменяйте его! В настройках
    устройства у большинства сетевых плат есть небольшой пунктик позволяющий
    поменять адрес на любой другой. К тому же, исследуя протокол обмена
    вебмани с сервером не было найдено передачи мак-адреса в числом виде, так
    что это всего лишь мифы. Ну а про протокол обмена будет чуть позже.
    Миф 2. Она получает все о моих PCI девайсах!
    О боже, Крис Касперски как так можно было заявлять, эти текстовые
    строки начинающиеся с pci не относятся к PCI девайсам никаким местом. Ведь
    ясно видно что

    .rdata:1021ECBC aPci_pursedest db '&pci_pursedest=',0
    (цитата из статьи Некролог..., адреса сохранены)

    является частью какого то GET запроса, а не строкой позволяющей получить
    или вывести информацию о девайсах. К тому же, если глянуть юрл'ы в самой
    программе то можно увидеть такое:




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

    Миф 3. Она ставит драйвера в мою систему!
    Да там есть два драйвера - это winio.sys и citio.sys, но они отнюдь
    не выворачивают вашу систему наизнанку в поисках ид всяких устройств и
    не оставляют скрытых меток на жестком диске. После детального рассмотрения
    было выяснено что драйверы устанавливаются во время ввода пароля с
    клавиатуры т.е. блокируют клавиатурные шпионы в системе. Стоит ради
    интереса заметить что сделано все это очень культурно - через сабклассинг
    окон, что позволяет в принципе защитить любое окошко от перехвата инфы.
    Так что в этом пункте стоит только похвалить разработчиков за красивое
    решение.

    Миф 4. Она получает списки процессов и модулей!
    Ну в очередной раз не стоит судить о книге по обложке и стоит
    разобратся чтоже она делает с этим списком и когда. Вызывается процедура
    сбора инфы по хуку, а сам хук ставится на события мыши и клавиатуры. Но,
    если детально рассмотреть все что она с ними делает то все становится
    очень безобидно. В начале процедуры идет вызов:

    .text:100B555D lea eax, [ebp+PerformanceCount]
    .text:100B5560 push eax ; lpPerformanceCount
    .text:100B5561 call ds:QueryPerformanceCounter

    Сразу навевается мысль о неком подобии рандом генератора и используют его
    явно не для шифрования, так как это было бы безумием. После этого идет
    полоса комманд вычисления с плавающей точкой:

    .text:100B55C5 fild [ebp+var_18]
    .text:100B55C8 sub esp, 8 ; double
    .text:100B55CB fstp [esp+30h+var_30]
    .text:100B55CE call __scalb
    .text:100B55D3 fstp [ebp+var_20]
    .text:100B55D6 add esp, 0Ch
    .text:100B55D9 push 2 ; __int32
    .text:100B55DB mov eax, dword_10213D04
    .text:100B55E0 sub eax, dword_10213CFC
    .text:100B55E6 mov [ebp+var_24], eax
    .text:100B55E9 fild [ebp+var_24]
    .text:100B55EC sub esp, 8 ; double
    .text:100B55EF fstp [esp+30h+var_30]
    .text:100B55F2 call __scalb
    .text:100B55F7 add esp, 0Ch
    .text:100B55FA fadd [ebp+var_20]
    .text:100B55FD sub esp, 8 ; x
    .text:100B5600 fstp [esp+2Ch+var_30+4]
    .text:100B5603 call _sqrt_
    .text:100B5608 add esp, 8
    .text:100B560B fcomp ds:dbl_101DD7A8
    .text:100B5611 fnstsw ax
    .text:100B5613 test ah, 41h
    ...

    Такое баловство также подразумевает некие операции со случайными числами,
    практически сразу после этого идет вызов функции, которая в свою очередь
    собирает многостардальный дамп процессов и памяти:

    .text:100B5639 mov ecx, obj_processes
    .text:100B563F call GetAllProcesses

    А внутри этой функции нас ожидает приятный сюрприз:

    .text:100B5C5C mov ecx, [ebp+procs_buf]
    .text:100B5C5F call GetProcsMods
    .text:100B5C64 mov [ebp+var_4], eax
    .text:100B5C67 mov edx, [ebp+var_4]
    .text:100B5C6A push edx
    .text:100B5C6B mov ecx, [ebp+procs_buf]
    .text:100B5C6E call CalcMD4OnBuff
    .text:100B5C73 push Hooks_doRemove
    .text:100B5C75 mov ecx, [ebp+procs_buf]
    .text:100B5C78 call Hooks_Control

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

    Миф 5. Она использует DeviceIOControl!
    Чтож, начнем с того зачем вообще эта функция, дабы не лезть со
    всякими заявлениями по поводу низкоуровнего обращения к hdd. Функция
    эта действительно предназначена для посылки IO кода некому устройству.
    Но обратите внимание, что программа не просто так импортирует эту функцию,
    она использует собственные драйвера и та функция как раз отправляет
    данные именно этим драйверам, а не жестким дискам
    и прочим девайсам. Ну и опять же дабы не быть голословным посмотрим из
    каких функций они вызываются:

    ...
    .text:1008DEAA push 80000000h ; dwDesiredAccess
    .text:1008DEAF push offset FileName ; .citio
    .text:1008DEB4 call ds:CreateFileA
    ...
    .text:1008DF0E push eax ; lpInBuffer
    .text:1008DF0F push 80002078h ; dwIoControlCode
    .text:1008DF14 mov ecx, [ebp+hObject]
    .text:1008DF17 push ecx ; hDevice
    .text:1008DF18 call dseviceIoControl
    ...

    Как видно из сорца идет открытие драйвера и передача буфера ему и к
    великому сожалению не явлется шпионской деятельностью Такие же
    разочарования нас ждут по адресам 1008E232, 1017C488, 1017C588, 1017C68E,
    1017C7B2 и 1017C906. Но это не все места где используется данная функция,
    так же она испольуется в 10084FED, 10085367, 100858A1, 10085C28 и 10085CDC.
    На первый взгляд выглядят они просто ужасающе - рядом есть два кросс
    референса на строку .PhysicalDrive%d и .Scsi%d ну и естественно
    первая мысль которая крадется в голову это чтение и запись на диск всякого
    компромата в виде меток или чтение инфы о серийных номерах диска! Но если
    успокоится и довести дело до конца, что не было сделано в той же статье
    Некролога..., то можно с уверенностью утверждать - ничего плохого наш
    муравей не делает. Используется данные не для шпонства за пользователями,
    а просто чтобы создать некий HardwareID и потом передать его на сервер
    активации приложений. А отправлется это дело на:



    И тут же рядом с этим линком видим шаблон запроса:

    .rdata:101D7E28 agact db '<GetActivationKey.request><login></login><ProductID></Produc'
    .rdata:101D7E28 db 'tID><HardwareID></HardwareID><sign></sign></GetActivationKey'
    .rdata:101D7E28 db '.request>',0

    Делаем вывод что это еще один страшный миф о шпионстве вебмани.

    Миф 6. Неспецифированный протокол
    Ну это совсем не обоснованый пункт, непонятно вообще откуда он
    взялся, если даже просто мимолетно взглянуть на код и на строки, то ясно
    можно увидеть обычнейший xm
  2. xA! | Kill yourself

    xA! | Kill yourself Member

    Сообщения:
    700
    Симпатии:
    0
    ребята вы хоть смотрите по соответствующим разделам есть ли уже данный материал или нет
  3. ob00m

    ob00m Member

    Сообщения:
    308
    Симпатии:
    0
    Отпиши модерам пусть название топика сменят =))

Поделиться этой страницей