Чому в Україні все таки є білі хакери

Ця стаття буде відповіддю на недавню публікацію Володимира Таратушка. Причин написання статті у мене було кілька. Перша — це показати, що білі хакери в Україні є. Існують вони завдяки одній з програм заохочення пошуку вразливостей, яку проводить Приватбанк. Наступна причина — це розповісти свою success story роботи з одним з найбільшим банком України в рамках даної програми. Так само я хочу показати ефективність роботи такої програми на реальному прикладі і спонукати до організації таких програм ті компанії, які з якихось причин сумніваються або не бачать в них реальних плюсів. Ну і остання причина — показати майбутнім і сьогоденням ресечер, що участь у баг-баунті програмах цікаво, етично і матеріально вигідно.

Я не вважаю себе професійним хакером, я не маю профільної освіти в галузі безпеки, у мене немає сертифікатів, я не читав талмуд специфікації TCP/IP протоколу і я не брав участь в хакатонах та інших змаганнях професійних хакерів. У той же час у мене є досвід програмування і написання різних веб-сервісів на PHP, Python, Java. І я приблизно розумію, де зазвичай програмісти допускають помилки і які аспекти безпеки ігнорують при розробці веб-додатків. Для мене цього достатньо, що б успішно знаходити уразливості самого критичного рівня.

На даний момент мій досвід як ресечера становить 3 роки. Саме стільки часу я приймаю участь у програмі пошуку вразливостей Приватбанку.

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

Отже, на даний момент у мене зібрана статистика по 55 заявленим мною вразливостей, всі з яких на даний момент закриті.

Згідно зі статистикою по статусах заявок, картина наступна:



Як видно, більшість заявок приймаються в роботу. Деякий уразливості не були відтворені розробниками банку з причини їх складності або тому, що на момент того, як вразливість брали в роботу, даний сервіс був кардинально переписаний. Так само бували дублікати, але як правило це були прості, легко обнаружимые уразливості. N/A — це означає, що з якоїсь причини я не зберіг результатів по даній заявці. Всі заявки зі статусом «прийнята» у результаті були закриті, і за них були виплачені винагороди.

Тип вразливості/атаки за класифікацією OWASP:

класифікації вразливостей видно, що найпоширеніший тип — це Broken Access Control. Це ті уразливості, які дозволяють отримати не авторизований доступ простим перебором инкерментальных значень, які задають id користувача або операції. Причина в тому, що такі уразливості легше всього виявити і вони є наслідком помилок в архітектурі додатки. Так як банк — це складна система численних внутрішніх взаємодіючих підсистем, таких як back-офіс, процесинг, антифрод, це накладає певні труднощі на реалізацію взаємодії веб-додатки з цими системами в межах прав кінцевого користувача сервісу. Це приводить до появи таких вразливостей, як доступ до виписок по карткам інших користувачів, доступ до приватних даними і в кінці кінців, до доступу до фінансових коштів користувачів.

Так само безумовно відбиток на цей рейтинг відкладають мої особисті уподобання і набір знань, якими я володію і який я використовую при пошуку вразливостей.

Тип одержуваної інформації або доступу в разі експлуатації уразливості:



Як видно за статистикою, найчастіше вдавалося отримати доступ до приватних даних (ПІБ, паспортні дані, номери карт, телефони, адреси), фінансовими даними (баланс рахунку, виписки і тд.), акаунтів в різних сервісах(як правило завдяки XSS або Open Redirect) і, що не маловажно, в 1 з 5 випадків доступ до фінансових коштів інших користувачів.

Час фікса. Це умовна величина. Так як я не володів інформацією про точний час закриття уразливості, я брав час, який минув з моменту подачі заявки і до оповіщення про плановану виплати винагороди.



Як видно, найчастіше оповіщення приходило в межах 2-х місяців, але іноді за деякими вразливостей не було відповіді по 3-4 місяці.

Ну і природно, самий цікавий момент для дослідників — це середній розмір винагороди за закритими заявками. Відразу попереджу, сума винагороди не прив'язувалася до курсу долара до середини 2015 року, тому якийсь час вона зменшувалася в доларовому еквіваленті у зв'язку зі стрімким зростанням курсу долара до гривні.



Як видно, найчастіше сума винагороди потрапляє в діапазон $50-500.

Тепер трохи деталей. Нижче я зібрав довгий список з коротким описом кожної уразливості, що б можна було скласти приблизне уявлення про критичність кожної з них:

Таблиця вразливостей
Домен Тип вразливості/атаки (OWASP) Тип доступу Короткий опис
1 privat24.privatbank.ua Broken Access Control Приватні дані Отримання критичних даних будь-карти
2 privat24.privatbank.ua Broken Access Control Приватні дані Доступ до архіву платежів користувачів
3 privat24.privatbank.ua Broken Access Control Приватні дані Доступ до приватних даних користувачів (ПІБ, паспортні дані, сума залишку та заборгованості)
4 privat24.privatbank.ua Broken Access Control Приватні дані Доступ до приватних даних користувачів (ПІБ, паспортні дані, дівоче прізвище матері)
5 privat24.privatbank.ua Broken Access Control Фінансові дані Перегляд виписок за номером карти
6 privat24.privatbank.ua Broken Access Control Фінансові операції Оплата sms розсилки з чужої картки
7 liqpay.com Broken Access Control Фінансові дані Дані за платежами клієнтів
8 napi.privatbank.ua Broken Access Control Приватні дані Отримання критичних даних чужий інтернет карти
9 napi.privatbank.ua Broken Access Control Фінансові дані Купівля авто/жд квитків за чужий карті
10 privat24.privatbank.ua Broken Access Control Фінансові операції Створення регулярного платежу за чужий карті
11 pcalendar.privatbank.ua Broken Access Control Фінансові операції Зміна статусу будь-якого регулярного платежу, нарощування, навіть якщо він був вилучений, перегляд даних по ньому
12 siteheart.com Session Variable Overloading Доступ до аккаунту Повний доступ до будь-якого запису siteheart.com
13 privat24.privatbank.ua CSRF Приватні дані Підключення телефону до смс-інформування про операції по чужій карті
14 privat24.privatbank.ua Broken Access Control Фінансові операції Створення регулярного платежу за чужий карті
15 cards.privatbank.ua XSS Доступ до аккаунту Крадіжка куки авторизованого користувача
16 privat24.privatbank.ua Broken Access Control Фінансові операції Масове поповнення мобільних телефонів з чужої картки
17 ecommerce.liqpay.com Broken Access Control Фінансові операції Платіж з чужої картки при оплаті послуг на сайті мерчанта, підключеного до ПриватБанку
18 privat24.privatbank.ua Broken Access Control Приватні дані Отримання номерів телефонів, підключених до послуги SMS-повідомлення для будь-якої карти Приватбанку
19 privat24.privatbank.ua Broken Access Control Приватні дані Перегляд інформації по комунальних платежах клієнтів приват24 (ПІБ, адресу проживання, моб. телефон, заборгованість)
20 pcalendar.privatbank.ua Broken Access Control Фінансові дані Баланс за будь карті Приватбанку
21 pcalendar.privatbank.ua Broken Access Control Фінансові операції Створення регулярного платежу за чужий карті
22 pcalendar.privatbank.ua Broken Access Control Фінансові операції Створення регулярного платежу за чужий карті
23 privat24.privatbank.ua Insecure Configuration Серверні дані Відкрита структура каталогів
24 privat24.privatbank.ua Broken Access Control Операція модифікації Отримання і зміна інтернет-ліміту по будь-якій карті Приватбанку
25 privat24.privatbank.ua Broken Access Control Фінансові дані Перегляд виписок за номером карти, присутні адреси і gps координати банкоматів і терміналів самообслуговування, якими користується клієнт
26 privat24.privatbank.ua Insecure Configuration Фінансові дані Доступні Google чеки
27 transfers.privatbank.ua Broken Access Control Фінансові дані Інформація по переказам в приват24 (PrivatMoney, Золота корона, Unistream, Western Union, Contact, Coinstar і Swift)
28 privat24.privatbank.ua Broken Access Control Фінансові операції Створення регулярного платежу за чужий карті
29 privat24.privatbank.ua Broken Access Control Приватні дані Перегляд інформації по комунальних платежах клієнтів приват24 (ПІБ, адресу проживання, моб. телефон, заборгованість)
30 privat24.privatbank.ua Broken Access Control Фінансові дані Інформація за заявками на кредитний рейтинг УБКІ (ПІБ, ІПН, дата народження, кредитний рейтинг і ін)
31 client-bank.privatbank.ua Broken Access Control Фінансові дані Отримання виписки по еквайрінгу за будь мерчантом Приватбанку
32 client-bank.privatbank.ua Broken Access Control Паролі Отримання пароля будь-якого мерчанта, зареєстрованого в приват24 в еквайринг. Крім пароля доступний номер картки для прийому платежів, назва клієнта, адресу сайту клієнта, ip адреса і ін
33 limit.pb.ua Broken Authentication and Session Management Приватні дані Детальніша інформація по клієнту (ПІБ, номери карт, телефонів, дата народження, адреси проживання і т. д.)
34 privat24.privatbank.ua Broken Access Control Приватні дані Отримати за номером карти ПІБ власника, номера телефону, терміну дії картки
35 socauth.privatbank.ua Insecure Configuration Приватні дані Детальніша інформація по клієнту (ПІБ, номери карт, телефонів, дата народження, адреси проживання і т. д.)
36 privat24.privatbank.ua Broken Authentication and Session Management Доступ до аккаунту Багаторазово вхід в приват24 за сформованою ссылке без введення статичного і отп пароля навіть після закінчення дії сесії ользователя
37 chat.sender.mobi XSS Доступ до аккаунту Крадіжка куки авторизованого користувача
38 msb.privatbank.ua XSS Доступ до аккаунту Крадіжка куки авторизованого користувача
39 mypayments.privatbank.ua Broken Authentication and Session Management Приватні дані Детальніша інформація по клієнту (ПІБ, номери карт, телефонів, дата народження, адреси проживання і т. д.)
40 privat24.privatbank.ua Broken Authentication and Session Management Фінансові дані Виписки по картах користувачів.
41 liqpay.com Broken Authentication and Session Management Доступ до аккаунту Слабка захист сесії користувача при авторизації через дзвінок на мобільний телефон
42 client-bank.privatbank.ua Broken Access Control Фінансові дані Виписки з будь-якого терміналу, підключеного до еквайрингу.
43 client-bank.privatbank.ua Broken Access Control Фінансові дані Перегляд документів юр. осіб, створених за допомогою конструктора документів
44 chat.sender.mobi XSS Доступ до аккаунту Крадіжка куки авторизованого користувача
45 bank24.privatbank.ua XSS Доступ до аккаунту Крадіжка куки авторизованого користувача
46 blago.privatbank.ua Broken Access Control Фінансові операції Уразливість дозволяє будь-якому зареєстрованому користувачеві підмінити карту будь-якого іншого користувача на свою для отримання пожертв
47 client-bank.privatbank.ua Broken Access Control Фінансові дані Інформація по чужих договорами з зарубіжними партнерами
48 client-bank.privatbank.ua Broken Access Control Приватні дані Інформація про користувачів, що мають доступ до зазначеного рахунку, а саме логін(іноді це номер телефону), ПІБ, email.
49 privat24.privatbank.ua Broken Access Control Операція модифікації Масове зміни (як мінімум зменшення) кредитних лімітів по картках клієнтів Приватбанку
50 nkk.privatbank.ua Broken Access Control Приватні дані Доступ до інформації, яку клієнт заповнює при оформленні заявки на кредит
51 privat24.privatbank.ua Redirects and forwards Доступ до аккаунту Доступ до акаунту користувача через токен, отриманий через Open Redirect
52 client-bank.privatbank.ua Broken Authentication and Session Management Доступ до аккаунту Доступ до акаунту користувача через токен, отриманий через referer на сайті статистики
53 client-bank.privatbank.ua Redirects and forwards Доступ до аккаунту Доступ до акаунту користувача через фішинг, використовуючи Open Redirect
54 client-bank.privatbank.ua Broken Authentication and Session Management Доступ до аккаунту Доступ до акаунту користувача через токен, отриманий через referer на сайті статистики
55 client-bank.privatbank.ua Broken Access Control Фінансові дані Доступ до договорів із зарубіжними партнерами клієнтів

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

Ну і наостанок, я хотів би розвіяти стійке, але помилкова думка багатьох, що з ПриватБанком краще не працювати, так як вони можуть звинуватити у зломі, як це було описано в історії з Олексієм Моховим.

Головний принцип білого хакера — це етичність. Пошук вразливостей має проводитися виключно на рекламодавців та самих рахунках «зломщиків» або їх родичів/друзів/знайомих з їх особистого дозволу. Так само, якщо пошук уразливості здійснювався в рамках баг-баунті програми, розкривати інформацію про неї варто тільки після її закриття і тільки з дозволу власника ресурсу, на якому вона була знайдена. Тоді всі ваші дії не будуть здійснювати збиток компанії і не будуть порушувати закон, а тому претензій до вас, як до досліднику, не буде.
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.