Автор: Кристин Джеквони (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. Это руководство поможет убедиться, что ваше приложение не подвержено наиболее распространенным уязвимостям безопасности. Удачи вам, хакеры! Обсудить статью в форуме |