29

Олег Никифоров "Тестирование трафика мобильных приложений: кейсы и инструменты"

Embed Size (px)

Citation preview

Page 1: Олег Никифоров "Тестирование трафика мобильных приложений: кейсы и инструменты"
Page 2: Олег Никифоров "Тестирование трафика мобильных приложений: кейсы и инструменты"

whoami

Тестирование трафика мобильных приложений: кейсы и инструменты @ddr3ams #mobicode2016

Page 3: Олег Никифоров "Тестирование трафика мобильных приложений: кейсы и инструменты"

Структура доклада1. Особенности мобайл трафика2. “REST”3. Структура HTTP запроса / ответа4. Что такое снифферы5. Зачем снифферы нужны6. Почему Burp Suite, чем он отличается от других7. Практика

Тестирование трафика мобильных приложений: кейсы и инструменты @ddr3ams #mobicode2016

Page 4: Олег Никифоров "Тестирование трафика мобильных приложений: кейсы и инструменты"

Особенности трафика мобильных приложений- Нужны тулзы для просмотра

- Очень много разных запросов (сервер, статистика, реклама, etc.) - нужно

фильтровать

- Запросы отсылаются в фоне

- Связь по WiFi/3G/LTE

Тестирование трафика мобильных приложений: кейсы и инструменты @ddr3ams #mobicode2016

Page 5: Олег Никифоров "Тестирование трафика мобильных приложений: кейсы и инструменты"

Client => SOAP/REST => Server

Application layer via HTTP/HTTPS

Тестирование трафика мобильных приложений: кейсы и инструменты @ddr3ams #mobicode2016

Page 6: Олег Никифоров "Тестирование трафика мобильных приложений: кейсы и инструменты"

SOAP vs REST

Тестирование трафика мобильных приложений: кейсы и инструменты @ddr3ams #mobicode2016

Page 7: Олег Никифоров "Тестирование трафика мобильных приложений: кейсы и инструменты"

SOAP vs REST

Тестирование трафика мобильных приложений: кейсы и инструменты @ddr3ams #mobicode2016

Page 8: Олег Никифоров "Тестирование трафика мобильных приложений: кейсы и инструменты"

RESTful vs. “RESTful”

Тестирование трафика мобильных приложений: кейсы и инструменты @ddr3ams #mobicode2016

Page 9: Олег Никифоров "Тестирование трафика мобильных приложений: кейсы и инструменты"

Структура запроса: метод GET

Тестирование трафика мобильных приложений: кейсы и инструменты @ddr3ams #mobicode2016

Page 10: Олег Никифоров "Тестирование трафика мобильных приложений: кейсы и инструменты"

Тестирование трафика мобильных приложений: кейсы и инструменты @ddr3ams #mobicode2016

Page 11: Олег Никифоров "Тестирование трафика мобильных приложений: кейсы и инструменты"

Структура запроса: метод POST

Тестирование трафика мобильных приложений: кейсы и инструменты @ddr3ams #mobicode2016

Page 12: Олег Никифоров "Тестирование трафика мобильных приложений: кейсы и инструменты"

Тестирование трафика мобильных приложений: кейсы и инструменты @ddr3ams #mobicode2016

Page 13: Олег Никифоров "Тестирование трафика мобильных приложений: кейсы и инструменты"

Структура ответа

Тестирование трафика мобильных приложений: кейсы и инструменты @ddr3ams #mobicode2016

Page 14: Олег Никифоров "Тестирование трафика мобильных приложений: кейсы и инструменты"

Тестирование трафика мобильных приложений: кейсы и инструменты @ddr3ams #mobicode2016

Page 15: Олег Никифоров "Тестирование трафика мобильных приложений: кейсы и инструменты"

Статус коды

Тестирование трафика мобильных приложений: кейсы и инструменты @ddr3ams #mobicode2016

Page 16: Олег Никифоров "Тестирование трафика мобильных приложений: кейсы и инструменты"

Что такое снифферыСниффер - сетевой анализатор трафика,

который пропускает через себя пакеты

и выводит связку запрос-ответ

в читабельном виде

В качестве снифферов используются разные

приложения: Fiddler, Charles Proxy, Burp Suite, TcpCatcher, etc.

Тестирование трафика мобильных приложений: кейсы и инструменты @ddr3ams #mobicode2016

Page 17: Олег Никифоров "Тестирование трафика мобильных приложений: кейсы и инструменты"

ЗАЧЕМ???

Тестирование трафика мобильных приложений: кейсы и инструменты @ddr3ams #mobicode2016

Page 18: Олег Никифоров "Тестирование трафика мобильных приложений: кейсы и инструменты"

Зачем: мониторинг без вмешательства в данныеВалидация запросов:

- Url- Заголовки- Параметры (название/значение)

Валидация ответов:

- Заголовки- Тело (формат, структура, параметры)

Симуляция time-out

Тестирование трафика мобильных приложений: кейсы и инструменты @ddr3ams #mobicode2016

Page 19: Олег Никифоров "Тестирование трафика мобильных приложений: кейсы и инструменты"

Зачем: манипуляция даннымиПодмена контента в запросе:

● Url,

● Значения параметров,

● Значения заголовков

Подмена контента в ответе:

● Значения параметров,

● Значения заголовков,

● Ссылки на медиа файлы (фото, аудио, видео))

Тестирование трафика мобильных приложений: кейсы и инструменты @ddr3ams #mobicode2016

Page 20: Олег Никифоров "Тестирование трафика мобильных приложений: кейсы и инструменты"

Позитивные сценарии● Изменить user status на лету: free/paid, approved/not approved

● Loadmore с произвольным количеством элементов:○ быстро проверить нагрузку (загрузить много айтемов);○ проверить отображение конца списка;○ проверить вызов loadmore на граничных значениях

Тестирование трафика мобильных приложений: кейсы и инструменты @ddr3ams #mobicode2016

Page 21: Олег Никифоров "Тестирование трафика мобильных приложений: кейсы и инструменты"

Негативные сценарии● Изменения значений параметров для обхода локальной валидации

● Вызов серверных ошибок для проверки их обработки на клиенте:○ пустые required fields;○ ошибочные данные;○ неверный токен авторизации

● Вызов ошибок в аппе путем подмены ответа от сервера:○ пустые параметры в ответе;○ невалидные значения (string вместо int и т.д.);○ невалидная структура ответа

Тестирование трафика мобильных приложений: кейсы и инструменты @ddr3ams #mobicode2016

Page 22: Олег Никифоров "Тестирование трафика мобильных приложений: кейсы и инструменты"

Почему Burp?Плюсы и минусы:

+ Бесплатный+ Scope+ Удобный UI+ Многофункциональный+ Кроссплатформенный (Java application)+ Много пользовательских дополнений - Не позволяет менять параметры соединения- Бесплатная версия не позволяет сохранить/загрузить сессию (но

позволяет делать экспорт)

Тестирование трафика мобильных приложений: кейсы и инструменты @ddr3ams #mobicode2016

Page 23: Олег Никифоров "Тестирование трафика мобильных приложений: кейсы и инструменты"

Party time!Untappd - соц сеть для любителей пива:

- Можно добавлять пиво- Заводить друзей- Писать отзывы

Чем полезно:

- Авторизация- Таблицы- Картинки- Понятное API

Тестирование трафика мобильных приложений: кейсы и инструменты @ddr3ams #mobicode2016

Page 24: Олег Никифоров "Тестирование трафика мобильных приложений: кейсы и инструменты"

Плюсы использования

● Возможность эмулировать тайм-ауты

соединения

● Возможность эмулировать серверные

ошибки

● Возможность манипулировать данными

как в запросе, так и в ответе

Тестирование трафика мобильных приложений: кейсы и инструменты @ddr3ams #mobicode2016

Page 25: Олег Никифоров "Тестирование трафика мобильных приложений: кейсы и инструменты"

Минусы использования

● Если не выключить прокси когда

выключен сниффер – запросы не

будут работать (фон)

● Увеличивается время на операцию

запрос – ответ

Тестирование трафика мобильных приложений: кейсы и инструменты @ddr3ams #mobicode2016

Page 26: Олег Никифоров "Тестирование трафика мобильных приложений: кейсы и инструменты"

Краткая инструкция по подключениюiOS:

- WiFi: Settings > Network > HTTP PROXY: Manual, Server (your ip) + Port

- Mobile: custom mobileconfig file (https://iphone.flexserve.net): custom APN name + Server and Port

Android:

- WiFi: - Settings > Modify network > Advanced options > Proxy: Manual, Proxy

hostname (your ip) + Proxy port- ProxyDroid

- Mobile: Settings > Cellular Networks > Access Point Names > edit access point and set Proxy and Port

Тестирование трафика мобильных приложений: кейсы и инструменты @ddr3ams #mobicode2016

Page 27: Олег Никифоров "Тестирование трафика мобильных приложений: кейсы и инструменты"

О чем я умолчал

Как настроить Burp Suite и установить сертификат

Как обойти защиту от MiTM

Тестирование трафика мобильных приложений: кейсы и инструменты @ddr3ams #mobicode2016

Page 28: Олег Никифоров "Тестирование трафика мобильных приложений: кейсы и инструменты"

Полезные ссылки

https://portswigger.net/burp/

https://jsonformatter.curiousconcept.com/

https://jqplay.org/

https://nabla-c0d3.github.io/blog/2015/12/01/burp-ios9-ats/

Тестирование трафика мобильных приложений: кейсы и инструменты @ddr3ams #mobicode2016

Page 29: Олег Никифоров "Тестирование трафика мобильных приложений: кейсы и инструменты"

Q&A

Skype: navisnobilite

Twitter: ddr3ams

Тестирование трафика мобильных приложений: кейсы и инструменты @ddr3ams #mobicode2016