Злом і захист WebMoney

Всупереч усім запевненням розробників, система WebMoney катастрофічно ненадійна і розкривається буквально нігтем. Існує безліч черв'яків, троянів і хакерських груп, що спеціалізуються на викраденні електронних гаманців, крадіжки яких набули масового характеру. Хочете дізнатися, як це робиться і як убезпечити себе?

Вступ

Почнемо з того, чого не може бути. Ніяких "генераторів WebMoney" не існує і не може існувати в принципі. Уся готівка зберігатися на центральному сервері оператора, а електронні гаманці представляють лише засіб доступу до неї. Грубо кажучи, від того, що ви сгенеріруете комбінацію цифр для кодового замка, гроші і коштовності в сейфі ще не з'являться. І хоча існує можливість підібрати шифр до чужого сейфу, ймовірність відкрити його без допомоги власника (гусари! Про паяльник ми пам'ятаємо, але мовчимо) настільки мала, що про це навіть не варто і говорити!

А ось вкрасти чужу комбінацію цілком реально! Саме цим "генератори WebMoney" і займаються. Вони або роблять дублікат з електронного гаманця і передають їх зловмисникові, або приховано викликають Keeper'а і здійснюють переклад на свій рахунок. Аналогічним чином діють віруси і троянські програми. Також відзначені і цілеспрямовані атаки на конкретну жертву. Чи можна від них захиститися? Система WebMoney, розроблена неспеціалістами, спочатку проектувалася без оглядки на безпеку і, хоча останнім часом з'явився цілий комплекс "протипожежних" заходів, пріляпанних заднім числом, положення залишається критичним. Користувачі плутаються в системах захисту, служба підтримки дає досить туманні і розпливчасті рекомендації (оновити Windows, налаштувати брандмауер і т.д.), а тим часом крадіжки електронних гаманців тривають.

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

Але про все по порядку. Не будемо поспішати вперед і сунути лазерний диск в дисковод, тим більше що останній нам ще знадобиться.

Вони з'являються з мороку, знімають всі електронні гроші і йдуть в нікуди

Малюнок 1. Вони з'являються з мороку, знімають всі електронні гроші і йдуть в нікуди.

ЩО МОЖНА І ЩО НЕ МОЖНА (зречення)

Експериментувати (в освітніх цілях) можна тільки зі своїм власним електронним гаманцем або з гаманцями осіб, які дали письмовий дозвіл. Несанкціоноване втручання в чужі системи і гаманці категорично неприпустимо!

Вони ловлять тих, хто з'являється з мороку, і відводять в той світ, звідки вже немає вороття

Малюнок 2. Вони ловлять тих, хто з'являється з мороку, і відводять в той світ, звідки вже немає вороття.

Початок почав або класична місіонерська

Система WebMoney є своєрідним аналогом звичайних банківських чеків, а це означає, що для здійснення платежів нам в обов'язковому порядку необхідно попередньо зареєструватися на центральному сервері оператора і відкрити рахунок, що вже є величезним недоліком, ну да ладно.

Йдемо на www.webmoney.ru, викачуємо програму Keeper Classic, запускаємо її (до речі, змусити працювати через Proxy-сервер це диво науково-інженерної думки мені так і не вдалося, довелося піднімати NAT і МАПП 2802 порт), заповнюємо реєстраційні дані (від ліхтаря або чесно), придумуємо собі будь-який пароль до смаку, після чого програма приступає до генерації секретного ключа і просить нас посмикати миша і натискати клавіші. Це необхідно для того, щоб отримати дійсно випадкові дані, як ніби пседослучаний генератор на основі таймера тут не годиться. На тлі загальної незахищеності системи хизуватися словами RSA, RC5, MD4, MD5, SSL просто нерозумно. Втім, психологічний розрахунок розробників мені цілком зрозумілий. Якщо секретний ключ буде генеруватися за долі секунди - який користувач в нього повірить?

Вона нізвідки не з'являється, нікого не ловить, а просто сидить і паяє

Малюнок 3. Вона нізвідки не з'являється, нікого не ловить, а просто сидить і паяє.

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

Ще створюється файл * .pwm, який зберігає відомості про наших гаманцях (поточний баланс, історія операцій і т.д.). В принципі він необов'язковий, адже вся інформація розташована на центральному сервері оператора. Keeper може працювати і без * .pwm файлу, автоматично довантажуючи дані з мережі, правда тільки за останні три дні. Власне кажучи, * .kwm файл теж необов'язковий і його можна відновити. Для цього необхідно знати пароль, мати доступ до поштової скриньки, вказаною при реєстрації, а також нотаріально завірена заява, що ти не лось (докладніше про це можна прочитати тут: http://www.owebmoney.ru/returnkey.shtml). Чисто теоретично, хакер може хакнуть наші грошики тільки на основі пароля, але практично це дуже клопітно й небезпечно.

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

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

Виставляємо жертві лівий, але правдоподібний рахунок

Малюнок 4. Виставляємо жертві лівий, але правдоподібний рахунок - раптом так оплатить?

А ось крадіжка kwm-файлів процвітає. За замовчуванням ключі зберігаються в keys.kwm, але, в принципі, ім'я файлу може бути будь-яким, як, втім, і розширення. Більшість хакерів і троянських програм виробляє тупий пошук по масці * .kwm, тому перейменування файлу ключів в dontreadme.txt до деякої міри збільшує нашу захищеність, однак просунуті хакери можуть залізти в реєстр, де Keeper зберігає свої настройки і підглянути шлях до файлу. Ще можна шукати по його вмісту, скануючи всі файли (правда, це займе багато часу і викличе підозрілу дискову активність). Гурмани напевно перехоплять виклик API-функції CreateFile, що показує, які файли відкриває Keeper. І навіть якщо формат налаштувань реєстру в наступних версіях буде змінений, варіант з CreateFile продовжить працювати (hint: якби розробники не були ідіотами, вони б створили кілька файлів з ключами - один справжній, всі інші - сторожові датчики, при зверненні до яких лунає сигнал тривоги).

Ховаємо kwm-файл подалі від хакерів

Малюнок 5. Ховаємо kwm-файл подалі від хакерів.

За замовчуванням розмір файлу ключів складає 1.2 Мбайт (в акурат, на дискету), але при бажанні його можна збільшити аж до 100 Мбайт. Це ускладнює крадіжку ключа з передачею по Інтернет, і, в общем-то, не створює ніяких нездоланних незручностей. 100 Мбайт - це половина mini CD-R, один Zip-100M або два CD-R у форматі бізнес-карти. Звичайно, швидкодія системи до деякої міри впаде (величезний файл так відразу і не прочитаєш), проте безпека коштує того. Чи не варто? За локальної мережі потягти 100 Мбайт не проблема, по DSL модему або кабельному інтернету - теж. І навіть ганебний за нинішніми мірками модем на 33600 передасть цей файл за ~ 70 годин. Не так вже й багато, якщо згадувати, що практично ніхто з користувачів не перегенерірует ключі кожен день. Розрізавши файл на дрібні шматочки, що передаються у фоновому режимі, затягнути його за дві-три тижні цілком реально, хоча це буде самий тупий і неперспективний шлях.

Якщо хакер проник в чужу систему (а потрапити в неї можна різними шляхами), йому нічого не варто завантажити файл в пам'ять, відкрити гаманець, перевести гроші на свій рахунок і грохнути жорсткий диск, щоб жертва не змогла увійти в Інтернет і поскаржитися, кому слід . До речі, на рахунок "поскаржитися". Варіантів не так вже й багато і допомоги чекати немає звідки. Ну, хіба що від господа бога (if you're real god, return my money, you sic fuck) та на братків. Якщо доступ до WMID у нас ще є (що за тупий хакер попався!), Можна визначити WMID, на який були переведені гроші, зайти на сайт Арбітражного Сервісу (http://arbitrage.webmoney.ru/), оплатити арбітражний збір (а для цього необхідно мати WebMoney, яких у нас дочиста поцупив зловмисник) і заблокувати хакерський гаманець. Тільки якщо хакери не лось, гроші за лічені хвилини будуть перекинуті на e-gold або будь-яким іншим шляхом виведені із системи, так що на його гаманці їх не виявиться і блокувати буде особливо і нема чого. До речі кажучи, гаманці з початковим або персональним атестатом блокується тільки за рішенням арбітражної комісії, тобто досить взяти атестат і ... Ось тільки не треба говорити, що власники атестатів крадіжкою не займаються, оскільки повідомляють свої паспортні дані. Агащазблін! Таки свої? Видачею атестатів зараз займаються всі кому не лінь і сподіватися, що всі вони люди чесні, сумлінні і непідкупні, просто наївно, тим більше, коли мова йде про гроші, нехай навіть електронних. Людина, який намірився викрасти $ 100.000 (а чому б і ні), отримає без проблем не тільки фіговий атестат, але ще і фальшивий паспорт на додачу. Ну і кого з цього атестату потім шукати ?! Якщо навіть співробітники МВС підробляють паспорти на потоці, про що не раз говорило TV (а це вже кримінал), то що говорити про "атестатах", у яких взагалі немає ніякого юридичного статусу ?!

Втім, ситуація з перекиданням крадених грошей через кілька гаманців все-таки розглядалася розробниками, і вони ретельно поневолили про ... зловмисників! Судіть самі. Жертві після подачі вже згаданого позову слід звернутися до Адміністратора Арбітражного Сервісу (WMID 937717494180, [email protected]), і попросити його простежити весь ланцюжок. Вся "принадність" в тому, що Адміністратор працює тільки з понеділка по п'ятницю з 10 до 18 годин по Москві. Ми, мовляв, не служба порятунку і теж спати хочемо. Дуже хороша платіжна система, скажу я вам !!! При тому, що виведення грошей з системи здійснюється практично миттєво і рахунок йде на хвилини, адміністратор, бачте, хоче спатоньки. Я не зрозумів, це студентська общага або платіжна система ?! Хіба важко при мільйонних оборотах (про яких реклама не перестає згадувати) найняти кілька людей для цілодобової підтримки ?! Адже мова в даному випадку йде про гроші! Природно, для хакерів найбезпечніше здійснювати крадіжки або опівночі, або на вихідних. Але це добре, залишимо порожні слова і познайомимося з Keeper'ом ближче.

Keeper зовні і зсередини

Ось тут деякі захоплюються, як розробником вдалося так багато втиснути в обсяг Keeper'a ( "не знаю як ви, а я щиро вклоняюся перед тими, хто в 2 мегабайта дистрибутива Keeper Classic примудрився вкласти таку" смачну "начинку, та ще й красиво упакувати це справа зовні ", http://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-код, який набагато складніше аналізувати код.

WebMoney.exe (~ 180 Кбайт) - це тільки "пускалка" і в ній немає нічого цікавого, проте аналізувати код його все-таки варто. Хоча б для того, щоб посміятися над розробниками і оцінити їх кваліфікацію.

Keeper Classic в дизассемблера

Малюнок 6. Keeper Classic в дизассемблера.

Отже, будемо вважати, що на комп'ютер з встановленим Keeper'ом впроваджений хакерський код, що виконується з одними привілеями (домовимося, що адміністраторських прав нам не дали і, хоча підвищити свої привілеї з користувача до system в W2K / XP, в общем-то, не проблема, не кажучи вже про 9x, де ніякого поділу привілеїв зроду не було, будемо діяти в спартанських умовах, наближених до бойових). Що ми можемо вдіяти? У нас два шляхи. Попередньо аналізувати код Keeper'а, відновити протокол обміну з сервером, дочекатися, коли буде вставлений носій, на якому лежить секретний ключ і ... далі фантазуйте самі. Особисто мені колупатися в Keeper'е лінь. Дизасемблювання - це копітка справа і на відновлення протоколу обміну може піти не один тиждень. Використання сніфферов істотно скорочує цей термін, проте все одно "влом". Набагато простіше і ефективніше красти гроші руками самого Keeper'а. Встановлюємо шпигуна, що перехоплює клавіатурний ввід, чекаємо введення WMID або визначаємо його іншими шляхами, адже WMID ні для кого секретом не є (перший спосіб, в основному, використовується вірусами, другий - хороший при цілеспрямованої атаки), потім в один "прекрасний" момент ( після 18 годин або в вихідний день) відключаємо висновок на екран, запусків WebMoney.exe і шляхом емуляції клавіатурний-мишачого введення справах все, що ми хотіли. Наприклад, поповнюємо гаманець жертви. А чому б і ні?! Ми ж адже ламаємо свій власний гаманець, вірно? Ось його і поповнимо! Ми ж не бандити які, а чесні хакери!

Техніка емуляції введення детально описана в "Записках мищ'х'а", електронну версію якої можна безкоштовно зжувати з мого мищ'х'іного ftp-сервера ftp://nezumi.org.ru/ (тільки нагадую, що він доступний не весь час), до того ж в 67 номері Хакера була опублікована стаття "Ломка WebMoney" в якій все це описано. Так що не будемо розводити демагогію і жувати гуму по сто разів. Відзначимо лише загальний механізм. Спочатку ми знаходимо вікно Keeper'а викликом функції FindWindow або EnumWindows і визначаємо його дескриптор. Потім, використовуючи EnumWindows перераховуємо дочірні вікна, що належать елементам управління (кнопок, рядках редагування і т.д.). Посилаючи елементам управління різноманітні повідомлення (це можна зробити за допомогою функції SendMessage) ми легко візьмемо їх під свій контроль. Відключення виведення на екран здійснюється або перехопленням служб GDI (реалізується складно, але діє на ура), або розташуванням поверх Keeper'а відволікаючого вікна, наприклад, вікна браузера з порнографічної картинкою. Так багато всякого тут можна придумати!

Проблема в тому, що, починаючи з деякого часу, тупа емуляція перестала діяти. Keeper обзавівся так званими "літаючими цифрами". На зразок тих, що використовується для запобігання автоматичної реєстрації на багатьох сайтах. Перш ніж зробити якийсь платіж, необхідно ввести три графічних цифри, які випадковим чином з'являються на екрані. Ідея, звичайно, цікава, та ось запозичена вона явно невпопад. Важке дитинство, паскудний освіту, глибоке похмілля. А голова-то бо-бо. Втім, голова тут ні до чого. Все одно їй думати нікому. Прийомам безпеки розробників явно не вчили. Уривчасті знання в стилі "тут зубрив, а тут дівчину танцював, а тут мене рушили цеглою" так і пруть з усіх сторін.

Захист Keeper-a

Малюнок 7. Захист Keeper'а "літаючими цифрами".

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

А ось ще одна широко розрекламована фішка - підтвердження авторизації по e-mail. На недосвідчений погляд все виглядає залізно - перш, ніж з нашим рахунком вдасться що б там не було зробити, необхідно ввести код, який прийде по e-mail. Якщо хакер упреться * .kwm файл, він залишиться з носом, а ми - з грошима. Адже доступу до нашого поштової скриньки він не отримає. Логіка залізна, але неправильна. Поштові скриньки ламаються не так вже й складно (конкретні прийоми злому наведені в безлічі книг і статей, так що не буду повторюватися), до того ж, якщо хакер вкрав * .kwm файл, він потягне і пароль на e-mail. Виняток становить, мабуть, лише крадіжка смарт-карт і змінних носіїв з ключами, але ... така крадіжка, як правило, здійснюється або близькими людьми, які можуть поиметь і e-mail, або грабіжниками, які отримали фізичний доступ до змінного носія, що зберігається , як правило, в безпосередній близькості від комп'ютера. Ну і що їм варто вкрасти ще й пароль на скриньку?

Гаразд, а як щодо блокування всіх IP-адрес, крім свого? Почнемо з того, що в локальних мережах захоплення чужого адреси не є непереборною проблемою. Той же, хто сидить на Dial-Up'е, як правило, отримує динамічні IP адреси, які виділяються із загального пулу. Прописувати їх - задовбали, та й будь-який клієнт того ж провайдера буде авторизований без проблем. Але це не важливо. Ніякому хакеру зберігати у себе чужий гаманець нахрен не потрібно. Він просто зніме гроші руками Keeper'а, запущеного на комп'ютері жертви, який напевно має правильний IP і ніяка "блокування" його не зупиняє!

Захисні заходи, пропоновані розробниками, можна перераховувати дуже довго. Практично всі вони орієнтовані на крадіжку * .kwm файлу з подальшою передачею його по мережі. Чомусь розробники думають, що це єдиний спосіб злому, хоча це далеко не так. Ще вони радять "правильно" налаштувати брандмауер, щоб запобігти витоку інформації і регулярно латати систему, щоб не проникли ні хакери, ні черви. Ну, на рахунок брандмауерів вони явно погарячкували. Досить сходити на популярний сайт http://www.firewallleaktester.com/, щоб переконатися, що існують атаки, що пробивають все персональні брандмауери. Я також писав про це в "Записках дослідника комп'ютерних вірусів", фрагменти якої можна скачати з ftp://nezumi.org.ru/ , там же лежить готовий демонстраційний код.

Тепер розберемося з оновленнями. Багато сайтів, що приймають оплату через WebMoney працюють тільки з IE, тому що використовують ActiveX. І хоча для альтернативних бразузерах типу Опери і Лисиця випущені плагіни, працюють вони абияк і в реальності доводиться використовувати саме IE, кількість дірок в якому гідно книги рекордів Гіннеса. Тобто, творці WebMoney самі підсаджують нас на дірявий браузер, і при цьому ще дбайливо рекомендують - не забудь вчасно оновитися, мовляв. А може, мені ще й підлогу змінити ?! Так що, проблема не в користувачів. Проблема в мізках розробником (точніше, в їх повній відсутності). Проблема в концепції всієї системи. Проблема в принциповій уразливості протоколу передачі грошей і незахищеності Keeper'а. Чорт візьми, скільки років вже існують алгоритми генерації "одноразових" ключів, при якому красти просто годі й нічим. Але чому про них знаю я - зовсім далекий від криптографії і фінансових махінацій мищ'х - але не знають розробники платіжної системи ?! Понаприймали незрозуміло кого ...

Keeper light або боротьба з сертифікатами

Небезпечність класичного Keeper'а - загальноприйнятий факт, але Light все ще вважається досить захищеним: "У Keeper Classic файл з ключами можна по частинах перетягати, email можна зламати і т.д. Ключі, що зберігаються на змінному носії, троян може переписати на вінчестер в момент, коли дискета або CD вставлені. тобто, теоретично можливо дістатися до грошей, хоча при дотриманні всіх запобіжних заходів - вкрай складно. Але Light з не експортуються сертифікатом дає 100% -ву гарантію безпеки "(http://owebmoney.ru/ cafe / index.php? showtopic = 108).

Звучить заманливо, але як із цим справи на практиці? Спробуємо розібратися. Почнемо з питання - як все-таки працює Keeper Light? Дуже просто. Секретний ключ тепер зберігається не в * .kwm файлі, а в спеціальному сертифікаті, а все управління йде через Web-інтерфейс за спеціальними криптографічним протоколам.

Де браузер зберігає сертифікати? Залежить від самого браузера. Наприклад, Mozilla - в каталозі "./mozilla/defaul/<blahblahblah>/cert8.db", а ось IE, запущений під керуванням Windows XP Professional, використовує досить навороченную систему. Сертифікати з відкритими ключами зберігаються в персональному (personal) сховище, розташованому в каталозі Documents-n-Settings \ <username> \ Application-Data \ Microsoft \ SystemCertificates \ My \ Certificates, яка вільна для доступу всім бажаючим (адже це відкрита інформація!) . Сертифікати користувача розташовані в його профілі. Закриті ключі зберігаються в каталозі Documents-n- Settings \ <username> \ Application Data \ Microsoft \ Crypto \ RSA. Всі файли, розташовані тут, автоматично шифруються випадковим симетричним ключем - основним ключем користувача (user's master key), довжиною в 64 символу. Основний ключ генерується за алгоритмом Triple DES на основі призначеного для користувача пароля, з яким він входить в систему.

Що значить вся ця теоретична бодяга в практичному плані? А то, що поцупити сертифікат з закритим ключем з-під Windows XP не вдасться! Тобто, поцупити щось вдасться, але толку від цього буде нуль, оскільки на чужому комп'ютері він просто не буде працювати! (На те він і закритий сертифікат!). Правда, його можна експортувати, навіть не володіючи жодними особливими привілеями. Розпатрали програму Менеджера Сертифікатів, якщо не знаєте як. Власне кажучи, для перенесення сертифікатів з комп'ютера на комп'ютер Keeper Light використовує експортований сертифікат, який зберігається в файлах з розширенням .pfx. Їх можна зустріти як на зовнішніх носіях, так і на жорстких дисках. Ось тільки тут є одне "але". Експортований сертифікат закритий паролем, який призначається користувачем, і, щоб його імпортувати в свою систему, необхідно або закинути клавіатурного шпигуна, або спробувати розкрити пароль методом перебору. Але перше занадто помітно, друге - довго, тому крадіжка сертифікатів не набула великого поширення.

Запит пароля при імпорті сертифіката

Малюнок 8. Запит пароля при імпорті сертифіката.

Чи означає це, що Keeper Light захищений? Ні і ще раз ні!!! Якщо Keeper Classic можна захистити хоча б теоретично (встановити драйвер, що забезпечує прямий клавіатурний ввід, що відтинає емулятори і стежить за цілісністю Keeper'а і самого себе), то Keeper Light працює через браузер, "цілісність" якого неможливо контролювати в принципі!

Перше, що спадає на думку - це вже згадана емуляція. Говоримо "start https://light.webmoney.ru", тим або іншим способом ховаємо вікно браузера (досить просто отримати його дескриптор і можна малювати поверх нього, що попало) емуляціях послідовність натискання клавіш для поповнення електронного гаманця. Діє залізно і невідворотно. Єдиний мінус - кожен тип (і, можливо, версія) браузера вимагає свого підходу, але можна зупинитися тільки на IE 5/6, як на найбільш популярному.

З іншими браузерами ще простіше. Беремо вихідні Лиса і створюємо хакерський міні-браузер на їх основі, який нічого не виводить на екран, але з гаманцями працює тільки так. Правда, серед користувачів WebMoney шанувальників Лисиця не так вже й багато, але це все ж краще, ніж зовсім нічого. До речі, нехай прихильники IE не відчувають себе в безпеці. Вихідні тексти W2K були вкрадені вже давно і створити свій клон IE на їх основі цілком реально, не кажучи вже про те, що IE - це просто набір DCOM-об'єктів і зібрати свій браузер на їх основі зможе навіть початківець.

Keeper Light

Малюнок 9. Keeper Light - це просто WEB-інтерфейс, що дозволяє працювати з гаманцем через будь-який браузер.

А що, якщо імпортувати сертифікат перед кожним відкриттям гаманця, а потім видаляти його зі сховища? Дійсно, це до певної міри збільшить захищеність, однак хакерська програма може або чекати появи вікна "WebMoney Keeper :: Light Edition", що сигналізує про те, що ви увійшли до системи, або шпигувати за клавішами, передаючи секретний пароль разом з сертифікатом по мережі. Так що, електронні гроші все одно залишаються в делікатній ситуації!

Авторизація по стільниковому телефону - надійна?

Останнім писком моди стала система авторизація за допомогою стільникового телефону. При реєстрації в службі ENUM (http://enum.ru/) нам на мобільник заставляється спеціальний Java-додаток (також зване мідлетом), яке називає себе Enum Client. Він приймає п'ятизначні числа (наприклад, 09652) і генерує на їх основі відповідь, причому алгоритм генерації унікальний для кожного користувача. Якщо немає стільникового телефону - підійде Pocket PC або будь-яке інше пристрій з підтримкою Java (наприклад, настільний PC, тільки сенсу в ньому буде трохи).

Послідовність операцій при активації платежу через стільниковий телефон або КПК

Малюнок 10. Послідовність операцій при активації платежу через стільниковий телефон або КПК.

Служба ENUM дозволяє здійснювати покупки через сервіс Merchant (https://merchant.webmoney.ru /) взагалі не вдаючись до Keeper'у - ні до класичного, ні до наділеного. Вважається, що зламати електронний гаманець і викрасти готівку в цьому випадку вже не вдасться: "Шахраї та вирусописатели використовують Інтернет для крадіжки з наших комп'ютерів цінної інформації. Але яку б захист ми не винайшли - файрволли, антивіруси, антікейлогери, антітрояни, сертифікати - завжди є теоретична ймовірність її обходу і крадіжки паролів (або ключів Кіпера, наприклад) з комп'ютера, тому що і хакери, і захисні інструменти використовують ОДИН і ТОЙ ЖЕ канал - Інтернет. і проблема Інтернету полягає в тому, що немає іншого, альтернативного каналу зберігання-передачі інформації. Так ось, ENUM цю проблему вирішує. він надає нам той самий інший канал. Хакер може влізти на ваш комп'ютер, "підсадити" троянський вірус, але він не зможе влізти в ваш мобільний телефон. Вгадати ж, за яким унікальному для кожного користувача алгоритму Enum Client з одного числа отримує інше, теж не можна "(http://owebmoney.ru/enum.shtml).

Логотип системи ENUM

Малюнок 11. Логотип системи ENUM.

служба Merchant

Малюнок 12. Служба Merchant.

Чи справді це так? Як то кажуть, "якщо не можна, але дуже хочеться, то все-таки можна". Додатковий "канал зв'язку" і справді багато разів посилює безпеку, але говорити про принципову неможливість злому - передчасно. Почнемо з того, що алгоритм генерації номерів для всіх користувачів все-таки єдиний (дізассембліруйте мидлет, якщо не вірите), тільки ключ генерації різний і підібрати його цілком можливо. Досить перехопити один-єдиний відгук для даної комбінації цифр. Відновлення ключа не займе багато часу і троянської програми це цілком під силу. Сподіваюся, не потрібно пояснювати, як вважати комбінацію цифр з вікна редагування.

До того ж, стільникові телефони містять купу дірок. ІК-протоколи і Блакитний Зуб буквально кишать ними. Журнал "Хакер" неодноразово писав про це. Якщо жертва має стільниковий телефон або КПК, то, можливо, вона має і адаптер Блакитного Зуба або ІК, який тримає постійно включеним. Зловмисник може передавати телефону будь-які AT-команди, виконувати мидлети або зчитувати їх вміст. А що?! Можна приколотися і написати вірус, який викрадає електронні гаманці і передає їх через стільниковий телефон! В обхід всіх брандмауерів! Ось вам і додатковий канал зв'язку!

Втім, все це причіпки старого мищ'х'астного хакера. Настрій просто погане. Йде дощ, і від депресії рятує тільки Sirenia (дуже потужна готична група з далекої Норвегії - рекомендую). Якщо тверезо дивитися правді в очі (в такі червоні мищ'х'іние очі - маленькі, немов намистинки), необхідно визнати, що хакнуть ENUM дуже складно, так що певний сенс в ньому все-таки є. Але це не означає, що можна заводити електронний гаманець і сміливо класти на нього $ 100.000. Тоді точно зламають!

Активація платежуАктивація платежуАктивація платежу

Малюнок 13. Активація платежу по стільниковому телефону через систему ENUM.

Як ламають обмінники

Злом обмінників не входить в наші плани (свій власний обмінник має далеко не кожен, а ламати чужі - незаконно), тому відзначимо лише основні пункти. З хакерської точки зору обмінник представляє сайт, як правило, керований PHP і працює під Linux / BSD / NT.

Ось через помилки в PHP-скриптах їх частіше за все і ламають. Також деякі Web-програмісти залишають "чорний хід" на той випадок якщо їм раптом захочеться їсти, а їсти буде нічого. Рідше ламають вісь. Найбільша кількість дірок, природно, має NT і всі похідні від неї системи (в тому числі і хвалений Windows 2003 Server). Linux і BSD поламати трохи складніше, але ... якщо взяти сканер безпеки (наприклад, X-Spider), то можна виявити, що на багатьох з них стоїть корявий SendMail або проржавілий Apache. Переповнення буфера, засилання shell-коду і сервер в наших руках!

Робоче місце хакера

Малюнок 14. Робоче місце хакера.

висновок

Злом WebMoney - це не міф, а сувора реальність і убезпечити себе на 100% не можна, навіть якщо ви експерт з безпеки. Завжди існує ризик підхопити вірусу через ще невідому дірку в операційній системі або браузері, причому, якщо від втрати оперативних даних на вінчестері рятує резервування, від розкриття конфіденційних даних - фізична відключення Інтранета від Мережі, то від крадіжки електронних грошей не рятує ніщо!

Sireina

Малюнок 15. Sireina - готична хакерська музика, що ковбасить мищ'х'а.