Разделы портала

Онлайн-тренинги

.
Мобильное тестирование, часть 4: введение в тестирование мобильной безопасности
17.07.2019 00:00

Автор: Кристин Джеквони (Kristin Jackvony)
Оригинал статьи
Перевод: Ольга Алифанова

Тестирование безопасности на мобильных устройствах – сложная задача для тестировщика. В нем объединяются проблемы мобильных устройств и сложности тестирования безопасности. Вот, к примеру, ряд сложностей, о которых я узнала, исследуя вопрос:

  • Мобильные устройства изначально более безопасны по сравнению с традиционными веб-приложениями, потому что это личная вещь пользователя. Из-за этого куда сложнее "заглянуть под капот", чтобы увидеть, как работает приложение.
  • Из-за вышеописанной сложности тестирование мобильной безопасности зачастую требует инструментов, которых у среднестатистического тестировщика может и не быть под рукой – к примеру, XCode Tools или Android Studio. Тестирование безопасности на физическом устройстве может также требовать рутованного или джейл-брейк телефона (это телефон, измененный таким образом, что пользователь получает администраторские права или устраняет пользовательские ограничения. Рут-права можно получить на Android, а джейл-брейк провести для iPhone. Нет, не делайте этого со своим личным устройством).
  • Сложно найти информацию по тестированию мобильной безопасности, если вы начинающий – большая часть документации предполагает, что вы уже достаточно хорошо ориентируетесь в продвинутых концепциях тестирования безопасности или разработке мобильных приложений.

Надеюсь, что эта статья станет небольшим введением для тестировщиков, которые еще не стали экспертами в области безопасности или мобильной разработки. Давайте для начала разберем различия между тестированием безопасности веб-приложения и мобильного приложения:

  • Нативные приложения обычно создаются с использованием комплекта SDK мобильной ОС, в которой есть встроенные функции для, скажем, валидации ввода, поэтому SQL-инъекции и межсайтовый скриптинг менее вероятны.
  • Нативные приложения часто пользуются хранилищем самого устройства, а веб-приложение хранит все на сервере.
  • Нативные приложения более склонны использовать биометрические данные (например, отпечаток пальца) для авторизации.

Однако схожие с веб-приложениями уязвимости в мобильных приложениях тоже есть, и вы можете протестировать на предмет их наличия. Вот несколько примеров:

  • Если приложение требует логина и пароля для авторизации, можно убедиться, что отказ в авторизации не выдает лишней информации. К примеру, приложение не должно возвращать сообщение "Неверный пароль", потому что тогда злоумышленник узнает, что угадал с логином.
  • Можно использовать инструменты вроде Postman, чтобы проверить API-вызовы, которыми пользуется приложение, и убедиться, что заголовки запросов используют HTTPS, а не HTTP.
  • Можно протестировать на ошибки валидации. Например, если текстовое поле принимает строку длиннее аналогичного поля в базе данных, этим может воспользоваться злоумышленник для атаки переполнения буфера.

Если вы готовы к большему, вот что еще можно попробовать, тестируя мобильную безопасность:

  • Можно получить доступ к локальному хранилищу данных вашего приложения и убедиться, что данные зашифрованы. С Android это можно сделать через рутованный телефон или эмулятор и инструмент командной строки Android's ADB (Android Debug Bridge). С iPhone это делается через Xcode Tools и джейл-брейкнутый телефон, или через симулятор iPhone.
  • Можно воспользоваться инструментом тестирования безопасности – например, Burp Suite – для перехвата и исследования запросов, которые отправляет приложение. На Android вам придется использовать эмулятор, если у вас нет более старого устройства с Lollipop OS. На iPhone это можно провернуть как с физическим устройством, так и при помощи симулятора. В обоих случаях понадобится установка CA сертификата, позволяющего перехватывать запросы. Этот сертификат можно сгенерировать в самом Burp Suite.

Эти две задачи будут неплохим стартом на пути к экспертному тестированию мобильной безопасности. Если вы готовы учиться дальше, то я бы рекомендовала книгу book OWASP Mobile Security Testing Guide. Это руководство поможет убедиться, что ваше приложение не подвержено наиболее распространенным уязвимостям безопасности. Удачи вам, хакеры!

Обсудить статью в форуме