Разработка сайта для Вашего бизнеса. Веб дизайн. Дизайн логотипа, фирменного стиля, рекламная фотография . Комплексный рекламный креатив.

Ralex. We do the work.
На рынке с 1999го года. Средняя ценовая категория. Ориентация на эффективность решений.
Ознакомтесь с нашим портфолио
Узнайте больше о услугах
Свяжитесь с нами:
E-mail: [email protected]
Tel: (044) 587 - 84 - 78
Custom web design & дизайн и разработка сайта "под ключ"
Креативный, эффективный дизайн. Система управления сайтом (СУС).
Custom flexible разработка систем электронной коммерции
Система e-commerce разрабатывается под индивидуальные потребности. Гибкая функциональность.
Search Engine Optimzation & оптимизация под поисковые системы (SEO)
Постоянная оптимизация и мониторинг сайта в поисковых системах. Достигаем результата быстро и эффективно
Custom logo design & дизайн логотипа и фирменного стиля
Многолетний опыт. Огромное портфолио. Уникальное предложение и цена.
профессиональная рекламная фотография
креативно, смело, качественно
Custom logo design & рекламный креатив. дизайн рекламы
Многолетний опыт. Огромное портфолио. Уникальное предложение и цена.

Пентестінг додатків iPhone - частина 1

  1. Ввідна інформація
  2. Моделі поширення додатків
  3. Поширення в межах одного пристрою:
  4. Поширення Ad Hoc:
  5. Поширення всередині фірми (in-house):
  6. Поширення "по повітрю" (Over the air):
  7. Поширення через App Store:
  8. Тестування на проникнення
  9. підготовка:
  10. Інструменти для пентестінга:
  11. Аналіз трафіку додатки
  12. Налаштування проксі

Наша взаимовыгодная связь https://banwar.org/

Мета статті - розглянути всю методологію пентестінга додатків на реальному пристрої (під управлінням iOS 5), а не на симуляторі.

Автор: satishb3

У даній статті розглядаються прийоми і інструменти, які допоможуть фахівцям в області інформаційної безпеки зрозуміти методи тестування на проникнення (пентестінга) додатків iPhone. Мета статті - розглянути всю методологію пентестінга додатків на реальному пристрої (під управлінням iOS 5), а не на симуляторі.

Ввідна інформація

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

iPhone надає програмістам платформу для розробки трьох типів додатків.

  1. Веб-додатки - використовують технології JavaScript, CSS і HTML5
  2. Нативні iOS-додатки - розробляються на Objective-C і використовують Cocoa touch API
  3. Гібридні додатки - нативні додатки з вбудованими веб-елементами

Дана стаття присвячена методології пентестінга нативних iOS-додатків. Однак, деякі розглянуті тут методи можуть застосовуватися і до в веб-додатків iOS.

Моделі поширення додатків

Розробники iOS використовують середу Apple Xcode і тестують свої додатки на симуляторі iOS. Симулятор створює лише наближене подобу операційної системи, в якому відсутні багато можливостей і функції, доступні на реальних пристроях. Симулятор iOS компілює iOS-додатки в локальний нативний код на відміну від емулятора Android, який компілює додатки в ARM-інструкції. Хоча симулятори надають основні можливості для розробки і тестування, для багатьох додатків, що вимагають використання всієї потужності обладнання, максимальної продуктивності та всіх доступних на реальних пристроях функцій, коштів симулятора виявляється недостатньо. Щоб протестувати такі додатки на реальних пристроях, розробникам доводиться користуватися списками програму розробників iOS (iOS Developer Program), адже iPhone дозволяє запускати тільки код, підписаний Apple. Механізм примусового підписування коду, реалізований в iOS, вимагає, щоб весь нативний код, що виконується на пристрої, був підписаний відомим або довіреною сертифікатом. Учаснику програми розробників Apple видає підписаний профіль (provisioning profile), який використовується для настройки системи і дозволяє виконання коду, підписаного сертифікатом розробника. Розробники можуть підписатися на програму індивідуально, або від імені компанії або навчального закладу.

На основі профілю можна виділити 5 моделей поширення додатків.

Поширення в межах одного пристрою:

Профіль розробника (development) прив'язаний до унікальним ідентифікатором пристрою, UUID. Цей профіль дозволяє запускати додатки розробника на одному конкретному пристрої. На інших пристроях цей профіль не має сили. Дана модель використовується для тестування на єдиному пристрої.

Поширення Ad Hoc:

Профілі Ad Hoc прив'язані до унікальних ідентифікаторів групи з не більше, ніж ста пристроїв. Крім iPhone, в групу можуть входити пристрої iPad і iPod touch. Розробник повинен надати ідентифікатори пристроїв в процесі отримання підписки. Ця модель дозволяє розробникам тестувати свої програми на широкому діапазоні пристроїв.

Поширення всередині фірми (in-house):

Корпоративні профілі дозволяють установку додатків на пристрої без прив'язки до UUID. Дана модель, як правило, використовується компаніями для поширення додатки між своїми співробітниками.

Поширення "по повітрю" (Over the air):

Дана модель дозволяє розробникам компанії передавати додатки окремим користувачам своєї організації через e-mail або викладаючи додаток на веб-сервер. Головна проблема даного типу поширення в тому, що якщо хто-то, не має відношення до даної організації, отримає доступ до заслання, він теж зможе встановити відповідну програму.

Поширення через App Store:

Це централізований механізм поширення програм із підписами Apple. Розробник відправляє додаток на сервер Apple, після чого Apple перевіряє додаток на відповідність стандартам App Store. Після підтвердження відповідності стандартам Apple перепідписує додаток своїм сертифікатом і робить можливим його завантаження через App Store.

Тестування на проникнення

Даний розділ більшою мірою присвячений iOS-додатків, а не операційної системи iPhone. Проте, безпеку ОС і безпеку додатків iPhone взаємопов'язані. Тому розуміння платформи iOS і методів забезпечення її безпеки допоможе пентестерам належним чином оцінити безпеку додатків iPhone.

В ході оцінки безпеки додатки iPhone варто проаналізувати:

  • трафік додатка
  • проблеми приватності
  • Локальна пам'ять даних
  • кешування
  • Реверс-інжиніринг
  • Некерований код
  • URL-схеми
  • Push-повідомлення

підготовка:

Симулятор НЕ відтворює точну копію середовища пристрої, і тому всі методи пентестінга, викладені в даній статті, мають на увазі запуск на фізичному пристрої. Всі подальші демонстрації будуть проводитися на iPhone 4 під керуванням iOS 5.

Щоб здійснити тестування на проникнення, знадобиться встановити на пристрій кілька утиліт. Apple не схвалює використання даних інструментів. Обмеження, пов'язані з примусовою підписом коду, не дозволять встановити необхідні утиліти безпосередньо. Щоб обійти обмеження, доведеться виконати джейлбрейк пристрою. Джейлбрейк дасть повний доступ до пристрою і дозволить нам запускати не підписав Apple код. Після джейлбрейка необхідні непідписані програми можна завантажити з Cydia.

Cydia - це аналог App Store для непідписаних додатків. Джейлбрейк піддає ваш iPhone великому ризику, оскільки пристрій тепер дозволяє запуск будь-якої програми, що не схваленого Apple: серед таких додатків можуть виявитися і шкідливі. Хоча ми можемо оцінити безпеку застосування на що не зазнали джейлбрейку iPhone, оцінка в такому випадку буде неповною. Джейлбрейк полегшує роботу пентестера і допомагає забезпечити стовідсоткове покриття додатки.

Для джейлбрейка iPhone можна використовувати інструменти на зразок Pwnage, readsn0w і greenposi0n.

Інструменти для пентестінга:

Завантажте з Cydia і встановіть перераховані нижче програми:

  • OpenSSH - дозволяє підключатися до iPhone по SSH
  • Adv-cmds - містить набір команд для роботи з процесами: ps, kill, finger ...
  • Sqlite3 - клієнт бази даних Sqlite
  • GNU Debugger - відладчик для аналізу під час виконання і реверс-інженерії
  • Syslogd - засіб перегляду журналів iPhone
  • Veency - засіб віддаленого управління iPhone з робочої станції (на якій повинен стояти veency-клієнт)
  • Tcpdump - захоплення мережевого трафіку телефону
  • com.ericasadun.utlities - утиліти для перегляду файлів plist
  • Grep - утиліта для пошуку
  • Odcctools: otool - утиліта для перегляду об'єктних файлів
  • Crackulous - розшифровує додатків iPhone
  • Hackulous - установник розшифрованих додатків

На iPhone немає терміналу для перегляду структури папок. Встановивши OpenSSH, ми можемо з'єднуватися з SSH-сервером телефону через будь-який SSH-клієнт ( Putty , CyberDuck , WinScp і т.п.). Це дає нам можливість переміщатися по папках файлової системи iPhone і запускати команди. За замовчуванням на iPhone два користувача: mobile і root. Всі додатки, встановлені на телефоні, запускаються з правами користувача mobile. Але, використовуючи SSH, ми можемо увійти від імені root і отримати повний доступ до пристрою. За замовчуванням обидва аккаунта (і root, і mobile) мають пароль "alpine".

Зауважимо, що в цілях безпеки SSH-пароль на вашому пристрої слід змінити.

Якщо ваш iPhone і ваша робоча станція підключені до однієї мережі Wi-Fi, ви можете увійти в iPhone по SSH безпосередньо, ввівши в терміналі робочої станції IP-адреса і логін / пароль.

Отримання SSH-доступу до iPhone через Wi-Fi:

ssh root @ iPhoneIP
password: alpine

В іншому випадку ви все одно зможете отримати SSH-доступ, але вам знадобиться USB-кабель і додаток iPhone tunnel (яке можна завантажити тут: http://code.google.com/p/iphonetunnel-usbmuxconnectbyport/ ).

SSH to iPhone over USB cable -

Отримання SSH-доступу до iPhone через USB:

./iphone_tunnel -lport 2222 ssh -p 2222 [email protected] password: alpine

Після установки SSH-з'єднання ми зможемо запускати команди на iPhone безпосередньо. Оскільки iOS - не що інше, як урізана версія MacOS, на iPhone працюють багато команд MacOS.

Аналіз трафіку додатки

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

Додатки iPhone можуть передавати дані на сервер, використовуючи будь-який з наступних механізмів обміну інформацією:

  • Передача даних відкритим текстом, наприклад, за протоколом http
  • Зашифрований канал, наприклад, https
  • Спеціальні протоколи або низькорівневі потоки

Хоча на дворі 2013 рік, багато додатків все ще використовують протоколи на зразок http, в яких інформація передається в незахищеному вигляді. У загальному випадку мобільні додатки більш уразливі до MITM-атакам (атакам типу "людина-посередині"), оскільки, як правило, передають дані по Wi-Fi. Зловмисник, який має доступ до тієї ж точки Wi-Fi, може використовувати інструменти на зразок FireSheep для викрадення сесій користувача. Оскільки протоколи передачі незахищеною інформації уразливі до MITM-атакам, додатки, що передають конфіденційні дані, повинні використовувати захищені протоколи, наприклад, https. В ході пентестінга необхідно з'ясувати, чи передає додаток будь-яку конфіденційну інформацію в незашифрованому вигляді. Щоб здійснити захоплення трафіку, потрібно поміняти на iPhone настройки проксі-сервера. Дані настройки дозволять пропускати трафік телефону через вказаний проксі-сервер.

Налаштування проксі

На наступних знімках екрана показано, як змусити iPhone пропускати весь трафік через робочу станцію з IP-адресою 192.168.1.4, яка виступає в ролі проксі.

  1. Зайдіть в додаток налаштувань
  2. Зайдіть в додаток налаштувань

  3. Увімкніть Wi-Fi
  4. Увімкніть Wi-Fi

  5. Виберіть мережу та натисніть на відповідну обраної мережі синю стрілку
  6. Виберіть мережу та натисніть на відповідну обраної мережі синю стрілку

  7. Виберіть опцію "Manual" і введіть IP проксі-сервера (в даному випадку - 192.168.1.4)
  8. 4)

  9. На вашій робочій станції відкрийте Open Burp Suite і зайдіть у вкладку Proxy-> Options. Додайте прослуховувач проксі в якому відключіть опцію "loopback only", включіть "support invisible" і вкажіть порт 8080.
  10. Додайте прослуховувач проксі в якому відключіть опцію loopback only, включіть support invisible і вкажіть порт 8080

  11. Тепер весь HTTP-трафік iPhone, що генерується як веб-браузером, так і іншими додатками, буде направлятися на вашу робочу станцію і відображатися у вікні Burp Suite.

Відзначимо, що в якості альтернативи burp можна використовувати Charles proxy .

Дані настройки проксі працюють і для https-трафіку. Однак захоплення https-трафіку додатків iPhone являє більш складну процедуру. При спілкуванні по протоколу SSL додатки, створені на основі браузера, автоматично перевіряють сертифікат сервера. Однак, в нативних додатках iOS відповідальність за перевірку сертифікатів сервера лежить на розробнику. Помилки в коді перевірки сертифікатів можуть привести до того, що додаток буде приймати будь-який сертифікат. Атакуючий може скористатися такою вразливістю для проведення MITM-атаки на основі підроблених сертифікатів.

Однією з поширених помилок, що виникають при розробці додатків iPhone, є виклик методу allowanyhttpscertificateforhost (NSURLRequest) або continueWithoutCredentialForAuthenticationChallenge (NSURLConnection). Програми, що використовують дані функції, будуть приймати будь-який сертифікат, в тому числі випущений нецільовим сервером. Причому користувачі програми навіть не побачать відповідного попередження. Тому в ході пентестінга потрібно з'ясувати, чи перевіряє додаток сертифікати належним чином. При належної перевірки в разі отримання некоректного сертифіката додаток відображає повідомлення про помилку. Крім того, після отримання некоректного сертифіката додаток не дасть користувачеві продовжити роботу.

Щоб захоплювати SSL-трафік додатків в ході пентестінга, перш за все потрібно додати CA-сертифікат проксі-сервера в список довірених сертифікатів iPhone. Оскільки даний сертифікат стає довіреною, програма не буде відображати повідомлення про помилку при його отриманні, що дозволить нам захоплювати його https-трафік. Подібний метод можна застосовувати і до інших протоколах, що використовують цифрові СЕРТФІКАТА.

Дане відео демонструє захоплення https-трафіку додатки.

Крім протоколів http і https, додатки iPhone можуть використовувати менш поширені протоколи або низькорівневий API обміну інформацією через сокети (NSStreams, CFStreams). У цих випадках MITM-методи, згадані вище, для захоплення трафіку неспроможні. Щоб захопити трафік таких додатків, завантажте з Cydia і встановіть утиліту tcpdump. Після установки tcpdump запустіть дані команди для підключення до iPhone по SSH і записи захопленого трафіку в файл з розширенням pcap.

ssh root @ iphone-IP
password: alpine
tcpdump -w traffic.pcap

Далі встановіть з'єднання з iPhone за допомогою SSH-клієнта з графічним інтерфейсом на кшталт Cyberduck. Перейдіть в потрібну папку і скопіюйте недавно створений файл з розширенням pcap на свою робочу станцію. Відкрийте файл в перехоплювачі пакетів, наприклад, в Wireshark. Тепер ви можете проаналізувати трафік і визначити використовуваний протокол. Ті ж методи можна використовувати для додатків, які ігнорують настройки проксі. Для перенаправлення трафіку таких додатків можна використовувати DNS-спуфинг.

Налаштувавши захоплення трафіку, можна приступати до пентестінгу серверної частини програми: шукати SQL-ін'єкції, недоліки аутентифікації, авторизації, управління сесіями, шифрування і безліч інших вразливостей, специфічних для веб-додатків.

Це перша частина серії статей про пентестінге додатків iPhone. У другій частині я розгляну проблеми приватності і локального сховища даних.

Категории
  • Биология
  • Математика
  • Краеведению
  • Лечебная
  • Наука
  • Физике
  • Природоведение
  • Информатика
  • Новости

  • Новости
    https://banwar.org/
    Наша взаимовыгодная связь https://banwar.org/. Запустив новый сайт, "Пари Матч" обещает своим клиентам незабываемый опыт и возможность выиграть крупные суммы.


    Наши клиенты
    Клиенты

    Быстрая связь

    Тел.: (044) 587-84-78
    E-mail: [email protected]

    Имя:
    E-mail:
    Телефон:
    Вопрос\Комментарий: