1 Востаннє редагувалося Очі.завидющі (06.02.2013 15:55:57)

Тема: Безпека онлайн-банкінга очима кодера

Першоджерело: http://covetouzeyez.blog.net.ua/2013/02/06/bezpeka-onlajn-bankinha-ochyma-kodera/

1. Вступ
    Метою написання цього тютора є злоба і ненависть до BIFIT`а бажання відкрити очі кліентів онлайн банкінга (далі скорочено до ОБ) на низький рівень захисту їх банківських рахунків. Я теж користуюсь послугами ОБ за допомогою ПО iBank BIFIT`а та з подивом дізнався, як легко злодій може викрасти ключі від мого рахунку. Сподіваюсь, що після прочитання цієї статті клієнти ОБ стануть більш обачні. Можливо ця стаття викличе увагу банківських менеджерів(та служби безпеки :-)) і вони стануть приділяти більше уваги інформуванню клієнтів про ризики використання ОБ. Усе тут написане не є великим секретом для BIFIT`а/Банків/програмістів, які з цим стикалися. Мета статті - наочно показати вразливість, а не використати її, тому долучений до статті код не надсилає награбоване на пошту/адмінку :-)
   
2. Огдяд ПЗ Клієнт-Банк для ОБ від компанії BIFIT
    Команія BIFIT є лідером на пострадянському просторі в сфері розробки та впровадження ПЗ для ОБ. Ось що про це написано на російському сайті команії:

На 1 января 2012 года система «iBank 2» внедрена и промышленно эксплуатируется в 837 российских банках и филиалах, успешно обслуживая более 650 тысяч корпоративных и более 450 тысяч частных клиентов.

Команія пропонує наступні різновиди ПЗ:
* PC-Банкінг
* Інтернет-банкінг
    Інші сервіси спецефічні та рідко використовуються (Enterprise-Банкінг(интеграція з 1С), SMS-Банкінг, Phone-Банкінг). В якості сховища ключів «iBank 2» використовує файли(), чіп-карти і токени. В цій статті ми обмежимося розглядом вразливостей ОБ на прикладі Інтернет-банкінга (PC-Банкінг працює так само) з використанням файлів в якості сховища ключів на платформі Windows х86. Також я впевенений в наявності вразливостей в інших версіях банкінга та носіїв ключів за допомогою MITM атаки, але лінь копатися без винагороди детальних досліджень поки не робив.

3. Середовище виконання клієнтського ПО «iBank 2» для ОБ
    Не є секретом, що найбільш розповсюджені десктопні ОС з сімейства Windows. Вони мають велику кількість "фіч", що плачевно впливає на її безпеку. Хоча найбільш кричущі дірки залатані/залишилися в минулому, накшталт RPC DCOM, прямого доступа до портів вводу\виводу і адресного простору ядра з користувцьких додатків (Windows 9x/ME), але важкий баласт сумісності з вже існуючим ПО не дає майкрософту можливості кардинально змінити своє ставлення до проблем безпеки. Головна фіча це майже рутові права простого користувача, з якої випливають інші фічі: можливість читати/писати з/у адресний простір чужого процесса, завантаження(інжект) своєї DLL в будь-який процес і система віконних повідомлень, що була успадкована від Windows 3.11 і яка легко перехоплюється. Хоча більшість проблем вирішується встановленням стронніх программ, але "зі-скрині" безпека системи залишає бажати кращого. Користувача доять майкрософт, антивирусні компанії і хакери (одночасно!) тому змінювати стан речей нікому не вигідно. А банковські службовці або мовчать про можливі ризики використання ОБ, або ж змушують підписати кабальну угоду, в якій знімають з себе відповідальність за безпеку ваших грошей.
    ПЗ «iBank 2» (тобто його клієнтська частина), написане на Java і виконуються в JavaVM SE, яка, в свою чергу, є простим користувацьким додатком для Windows.
   
4. Код, що використовує вразливості
    Проект складається з 2х частин: DLL, що виконується в адресному просторі JavaVM SE, з основним функціоналом і EXE, який містить детектор вікна банківського клієнта з "інтерфейсом" (іконка в треї з єдиним пунктом меню - "Exit"). Код написаний на Assembler (FASM). FASM мій улюблений асм компілятор і на це є безліч причин. Головні - безкоштовний, швидкий, має зручного вбудованого редактора, підтримку x86-64, потужну макромову та вбудованго лінкера, а також INTEL синтаксис, до якого я звик. Єдиний недолік фасма - відсутність багатьох важливих "хидерів" у зрівнянні з пакетом MASM32. Для EXE я використав PureBasic.
   
    Алгоритм роботи:
    * ідентифікація ПО «iBank 2» в JavaVM SE
    * інжект нашої DLL в JavaVM SE
    * запис кейлогером усіх натиснення клавіш
    * перехоплення WinAPI GetFileAttributesExW
    * в новому обробнику GetFileAttributesExW перевіряємо усі файли на сигнатуру "iBKS" на початку файла
    * під час закриття вікна записуємо результати роботи сесії ПО «iBank 2» (скріншот, натиснення клавіш, файлове сховище ключів)
    * відкримаємо "награбоване" в теці

5. Як протестувати код?

Заходимо на сайт BIFIT`a, клікаємо на "Дистрибутивы" й читаємо:

Компания «БИФИТ» выявила случаи использования злоумышленниками демонстрационных точек входа (ключей электронной подписи демонстрационных клиентов), предоставляемых банками на своих сайтах для ознакомления клиентов с системой «iBank 2».

Злоумышленники используют доступ к системе от имени демонстрационных клиентов для тестирования и отладки вредоносных программ, создаваемых с целью хищения средств клиентов.

В связи с этим компания «БИФИТ» закрыла демонстрационный доступ к тестовому экземпляру системы «iBank 2» и заблокировала соответствующие ключи проверки подписи демонстрационных клиентов, а также убрала из свободного доступа все дистрибутивы системы «iBank 2» и документацию.

Для получения дистрибутивов, пакетов обновления системы и документации обращайтесь в службу сопровождения компании «БИФИТ» по электронной почте: support@bifit.com.

Здавалося б, що мені саме час зайти на сайт свого банку й використати свій ключ од рахунку (котрого в вас може й не бути), але iBank використовується в багатьох фінансових установах, котрі не так параноїдально ставляться до своєї безпеки. На час написання статті відкритим залишається УкрСібБанк https://my.ukrsibbank.com/ua/sme/operat … ess/login/

Пізніше додам посилання на гітхаб

Post's attachments

iBankRobbing.rar 20.38 kb, 852 downloads since 2013-01-24 

Подякували: leofun01, Анатолій2

2

Re: Безпека онлайн-банкінга очима кодера

Зручність обернено пропорційна безпеці. Піти до відділення - незручно, а керувати рахунком удома через Інтернет - небезпечно. Здійснювати транзакції в НСМЕП - безпечно, а магнітними картками - зручно. Так що тут питання пріоритетів, а не "зрячості" клієнтів. :)

А цю диво-програмку на практиці перевіряли? На своєму рахунку, наприклад...

Очі.завидющі написав:

Пізніше додам посилання на гітхаб

Якщо хочете поділитися кодом - ліпше постіть його безпосередньо на Форумі: для того є зручне форматування тегами. Головне тільки, щоб унаслідок цього у Форуму та форумчан не виникло проблем із законодавством. :)

3

Re: Безпека онлайн-банкінга очима кодера

Так, прогу писав я і на власному рахунку перевіряв (а раніше на демо стенді БІФІТа). Прога сигналізує про свої дії MessageBox`ами, тому "за призначенням" її використати важко людині, що не програмує. Так, додам код у пост.

4

Re: Безпека онлайн-банкінга очима кодера

Очі.завидющі написав:

Так, прогу писав я і на власному рахунку перевіряв (а раніше на демо стенді БІФІТа). Прога сигналізує про свої дії MessageBox`ами, тому "за призначенням" її використати важко людині, що не програмує. Так, додам код у пост.

"За призначенням" - це ламати чужі рахунки? :-D

Re: Безпека онлайн-банкінга очима кодера

А не старшно Вам таку інфу викладати так відкрито ?

6

Re: Безпека онлайн-банкінга очима кодера

Якщо б я зараз працював із цією темою, то наврядчи б викладав в паблік. По-друге інфа мяко кажучи не дуже актуальна - кожного дня з'являються десятки набагато страшніших троянів, аніж моя демка.

7

Re: Безпека онлайн-банкінга очима кодера

І ще пару слів у бік БІФІТа...
http://www.ixbt.com/news/soft/index.shtml?16/66/53

8

Re: Безпека онлайн-банкінга очима кодера

Якщо є питання стосовно загроз онлайн банкінгу - задавайте :)

9

Re: Безпека онлайн-банкінга очима кодера

А що з того якщо онлайн банкінг ще перевіряється через мобільний телефон?
як зняти гроші якщо у тебе немає номера

10

Re: Безпека онлайн-банкінга очима кодера

Цікаве питання, але це досить легко в наших умовах) Діяти тут треба за іншою методою. Вразливість телефонної перевірки полягає в тому, що банк надсилає лише контрольний номер, який ви маєте увести у форму.
Тобто троян слідкує за вашими діями з рахунком,і як тільки ви надсилаєте гроші, він підміняє суму і напрямок платежу, як в вихідному повідомленні до банка, так і на екрані (вам здаватиметься що все гут). І коли людина введе в форму код, що їй надіслав банк, то вона перерахує гроші не собі. Класична MITM - Monkey-In-The-Middle (укр. мавпа всередині) атака.

Подякували: leofun011

11

Re: Безпека онлайн-банкінга очима кодера

хммм ну не знаю у мене в приваті, все йде перше в "гаманець" а звідти вже переводиться куди треба, а гаманець я так зрозумів формується на сервері, так що звідти уже як троян поміняє рахунки? Це хіба при передачі даних на "гаманець" міняти рахунки і суми, але тоді попалишся з першого разу, і по рахунку куди пішли гроші тебе вичислять з першого разу, хто це такий мудрий.  Так що якось не цікаво (((

12

Re: Безпека онлайн-банкінга очима кодера

Так що якось не цікаво (((

Не цікаво тому що ви думаєте що це не реально.  =)

Подякували: Chemist-i1

13 Востаннє редагувалося Chemist-i (14.06.2013 16:32:53)

Re: Безпека онлайн-банкінга очима кодера

monoxrom написав:

і по рахунку куди пішли гроші тебе вичислять з першого разу

Ага, вичислять, особливо якщо то переказ у швейцарський банк =)

14

Re: Безпека онлайн-банкінга очима кодера

Я знаю одну приказку "жадність фраєра згубила" всі ці злодії рано чи пізно попадуться... Недавно був у мене бухгалтерський ноутбук, на ньому сидів шпіон, щось перекодоване зі світу KGB, знімало скріншоти, логи клавіатури, не бачилося ніякими антивірусами (на virustotal.com) Коротше хакери захотіли зняти з рахунку фірми 300 000 грн і це їх попалило, бо з банку передзвонили і спитали чи ви точно хочете переказати такі гроші? :)

Re: Безпека онлайн-банкінга очима кодера

monoxrom написав:

Коротше хакери злодії захотіли зняти з рахунку фірми 300 000 грн і це їх попалило

Вставлю свої пять копійок.
monoxrom, не плутайте хакерів та злодіїв.

Подякували: Chemist-i, leofun013

16

Re: Безпека онлайн-банкінга очима кодера

Це хіба при передачі даних на "гаманець" міняти рахунки і суми, але тоді попалишся з першого разу, і по рахунку куди пішли гроші тебе вичислять з першого разу

Розкрию трішки професійних таємниць :p
1) Все робити набагато леше, якщо керівництво відділення банку на твоєму боці
2) Підставні особи набагато ускладнюють деанонімізацію

17

Re: Безпека онлайн-банкінга очима кодера

Це хіба при передачі даних на "гаманець" міняти рахунки і суми, але тоді попалишся з першого разу, і по рахунку куди пішли гроші тебе вичислять з першого разу, хто це такий мудрий.  Так що якось не цікаво (((

не вчіть очей завидющих. imho, він знає шо робить)

18

Re: Безпека онлайн-банкінга очима кодера

А іноді не треба й онлайн-банкінгових дірок... Скіммінг - просто й ефективно! :)

19 Востаннє редагувалося Очі.завидющі (15.06.2013 11:53:24)

Re: Безпека онлайн-банкінга очима кодера

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

20

Re: Безпека онлайн-банкінга очима кодера

Очі.завидющі написав:

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

Те, що МС та Віза оголосили про свою пухнастість щодо магнітних карт, ще не означає, що всі карти різко тепер чіпові. Чіпи дорожчі, і не всі банки можуть собі дозволити таке. Зате магнітки в Україні в ходу (щоправда, тільки у межах країни - у ЄС не приймуть їх).