Олег Никифоров "Тестирование трафика мобильных...
TRANSCRIPT
whoami
Тестирование трафика мобильных приложений: кейсы и инструменты @ddr3ams #mobicode2016
Структура доклада1. Особенности мобайл трафика2. “REST”3. Структура HTTP запроса / ответа4. Что такое снифферы5. Зачем снифферы нужны6. Почему Burp Suite, чем он отличается от других7. Практика
Тестирование трафика мобильных приложений: кейсы и инструменты @ddr3ams #mobicode2016
Особенности трафика мобильных приложений- Нужны тулзы для просмотра
- Очень много разных запросов (сервер, статистика, реклама, etc.) - нужно
фильтровать
- Запросы отсылаются в фоне
- Связь по WiFi/3G/LTE
Тестирование трафика мобильных приложений: кейсы и инструменты @ddr3ams #mobicode2016
Client => SOAP/REST => Server
Application layer via HTTP/HTTPS
Тестирование трафика мобильных приложений: кейсы и инструменты @ddr3ams #mobicode2016
SOAP vs REST
Тестирование трафика мобильных приложений: кейсы и инструменты @ddr3ams #mobicode2016
SOAP vs REST
Тестирование трафика мобильных приложений: кейсы и инструменты @ddr3ams #mobicode2016
RESTful vs. “RESTful”
Тестирование трафика мобильных приложений: кейсы и инструменты @ddr3ams #mobicode2016
Структура запроса: метод GET
Тестирование трафика мобильных приложений: кейсы и инструменты @ddr3ams #mobicode2016
Тестирование трафика мобильных приложений: кейсы и инструменты @ddr3ams #mobicode2016
Структура запроса: метод POST
Тестирование трафика мобильных приложений: кейсы и инструменты @ddr3ams #mobicode2016
Тестирование трафика мобильных приложений: кейсы и инструменты @ddr3ams #mobicode2016
Структура ответа
Тестирование трафика мобильных приложений: кейсы и инструменты @ddr3ams #mobicode2016
Тестирование трафика мобильных приложений: кейсы и инструменты @ddr3ams #mobicode2016
Статус коды
Тестирование трафика мобильных приложений: кейсы и инструменты @ddr3ams #mobicode2016
Что такое снифферыСниффер - сетевой анализатор трафика,
который пропускает через себя пакеты
и выводит связку запрос-ответ
в читабельном виде
В качестве снифферов используются разные
приложения: Fiddler, Charles Proxy, Burp Suite, TcpCatcher, etc.
Тестирование трафика мобильных приложений: кейсы и инструменты @ddr3ams #mobicode2016
ЗАЧЕМ???
Тестирование трафика мобильных приложений: кейсы и инструменты @ddr3ams #mobicode2016
Зачем: мониторинг без вмешательства в данныеВалидация запросов:
- Url- Заголовки- Параметры (название/значение)
Валидация ответов:
- Заголовки- Тело (формат, структура, параметры)
Симуляция time-out
Тестирование трафика мобильных приложений: кейсы и инструменты @ddr3ams #mobicode2016
Зачем: манипуляция даннымиПодмена контента в запросе:
● Url,
● Значения параметров,
● Значения заголовков
Подмена контента в ответе:
● Значения параметров,
● Значения заголовков,
● Ссылки на медиа файлы (фото, аудио, видео))
Тестирование трафика мобильных приложений: кейсы и инструменты @ddr3ams #mobicode2016
Позитивные сценарии● Изменить user status на лету: free/paid, approved/not approved
● Loadmore с произвольным количеством элементов:○ быстро проверить нагрузку (загрузить много айтемов);○ проверить отображение конца списка;○ проверить вызов loadmore на граничных значениях
Тестирование трафика мобильных приложений: кейсы и инструменты @ddr3ams #mobicode2016
Негативные сценарии● Изменения значений параметров для обхода локальной валидации
● Вызов серверных ошибок для проверки их обработки на клиенте:○ пустые required fields;○ ошибочные данные;○ неверный токен авторизации
● Вызов ошибок в аппе путем подмены ответа от сервера:○ пустые параметры в ответе;○ невалидные значения (string вместо int и т.д.);○ невалидная структура ответа
Тестирование трафика мобильных приложений: кейсы и инструменты @ddr3ams #mobicode2016
Почему Burp?Плюсы и минусы:
+ Бесплатный+ Scope+ Удобный UI+ Многофункциональный+ Кроссплатформенный (Java application)+ Много пользовательских дополнений - Не позволяет менять параметры соединения- Бесплатная версия не позволяет сохранить/загрузить сессию (но
позволяет делать экспорт)
Тестирование трафика мобильных приложений: кейсы и инструменты @ddr3ams #mobicode2016
Party time!Untappd - соц сеть для любителей пива:
- Можно добавлять пиво- Заводить друзей- Писать отзывы
Чем полезно:
- Авторизация- Таблицы- Картинки- Понятное API
Тестирование трафика мобильных приложений: кейсы и инструменты @ddr3ams #mobicode2016
Плюсы использования
● Возможность эмулировать тайм-ауты
соединения
● Возможность эмулировать серверные
ошибки
● Возможность манипулировать данными
как в запросе, так и в ответе
Тестирование трафика мобильных приложений: кейсы и инструменты @ddr3ams #mobicode2016
Минусы использования
● Если не выключить прокси когда
выключен сниффер – запросы не
будут работать (фон)
● Увеличивается время на операцию
запрос – ответ
Тестирование трафика мобильных приложений: кейсы и инструменты @ddr3ams #mobicode2016
Краткая инструкция по подключению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
О чем я умолчал
Как настроить Burp Suite и установить сертификат
Как обойти защиту от MiTM
Тестирование трафика мобильных приложений: кейсы и инструменты @ddr3ams #mobicode2016
Полезные ссылки
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
Q&A
Skype: navisnobilite
Twitter: ddr3ams
Тестирование трафика мобильных приложений: кейсы и инструменты @ddr3ams #mobicode2016