Некорректное использование операционной системыЭта уязвимость встречается чаще других. При разработке на любой платформе, будь то Android или iOS, нельзя отступать от конкретных требований по обеспечению безопасности. Но иногда разработчики либо пренебрегают этими правилами, либо допускают ошибки.
Приведенные ниже примеры нарушений протоколов безопасности приводят к возможности неавторизованного доступа к устройству:
- искаженное применение функций iOS Touch ID;
- неправильное использование iOS Keychain, когда пароли хранятся не в защищённом месте, а в базе приложения;
- некорректное использование разрешений платформы;
- открытые запросы в Android, позволяющие неавторизованное выполнение.
Все эти уязвимости устраняются на серверной стороне. Нужно использовать его правильные настройки. А также применить безопасный подход при написании кода. Поможет и запрет на взаимодействие приложений между собой, ограничение доступа к файлам. Для цепочки ключей iOS нужен строгий класс защиты.
Риск утечки личной информацииПричины, по которым она может произойти: потеря или кража устройства, атака вредоносных ПО. Но практически все приложения имеют доступ к личным данным.
Как тогда избежать утечки информации?
Во время тестирования приложения выяснять, какая информация о пользователе обрабатывается, и ккак она взаимодействует с API. Так можно определить эффективность шифрования, сберечь код от взлома.
Во время сохранения данных можно использовать дополнительные методы аутентификации. Это могут быть звуковые сигналы при авторизации.
Незащищённые сообщения и текстыКогда текст не шифруется во время передачи, любой может его прочесть. Перехват трафика происходит при помощи прокси-сервера, взлома WiFi, вредоносного ПО.
Обмен данными между приложениями должен проходить через сеть безопасно, с использованием сервера. Во время шифрования целесообразно использовать надёжные центры сертификации (CA). А также оповещать пользователей о том, что обнаружен поддельный SSL/TLS сертификат, или цепочка сертификатов прервалась.
Обход аутентификацииМожет осуществляться через некорректные сервисные запросы сервером. То есть, приложение не проверяет достоверную информацию о пользователе. Особенно во время передачи конфиденциальных данных.
Чтобы злоумышленники не получили дополнительные разрешения и не смогли воспользоваться информацией, необходимо передать выполнение аутентификации на сторону сервера и разрешить скачивать приложение только после успешной проверки данных о пользователе. Также необходимо применять мультифакторную аутентификацию и при этом использовать сложные PIN-коды/пароли.
Слабая криптографияМожет быть скомпрометирована при недостаточном алгоритме шифрования, а также неправильной организации процесса криптографии. Взлом данных происходит, когда не используют встроенный процесс шифрования кода, некорректно управляют цифровыми ключами, применяют неправильные протоколы шифрования. Это приводит к потере информации с устройства.
При криптографии нужно использовать стандарты, рекомендованные NIST – Национальным институтом стандартов и технологий. А также не хранить на устройстве конфиденциальную информацию.
Упрощённая авторизация У администраторов могут быть дополнительные разрешения к пользовательским данным. Упрощённые способы авторизации дают возможность хакерам использовать эти привилегии для кражи информации.
Процесс авторизации необходимо совершать сервером при каждом запросе пользователя, а также запрашивать у него информацию из других систем, а не только с устройства.
Неправильная реализация кода клиентаХакер использует данные, наблюдая за тем, как отвечает приложение. Это приводит к тому, что снижается производительность устройства, а память быстрее расходуется. Так как это не ошибки сервера, то исправлять их нужно в коде локально.
Неправильная реализация кода клиента также приводит к некорректной работе форматирующих строк, избыточному заполнению памяти, неадекватному вторжению и работе сторонних библиотек, дистанционному внедрению кода. Ошибки кода исправляют частичным переписыванием.
Как еще устранить уязвимость? При помощи автоматизированных инструментов тестировать заполнение буфера и использование памяти, создавать понятный исходный код, документировать. Для его написания использовать согласованные шаблоны.
Использование поддельных версий приложений. Вредоносное содержимое, встроенное в файл, приводит к несанкционированному доступу к устройству. Такие приложения крадут личные данные. Размещаются они в сторонних магазинах или насильственно присылаются на устройство.
Изначально само приложение должно реагировать на внедрение посторонних программ. Необходимо усиливать методы проверки приложений рядом способов: введением цифровых подписей пользователя, усилением кода и тд.
Разбор приложения хакерами для анализа кодаЭта уязвимость особенно опасна. Она полностью способна изменить код и включить в приложение вредоносную функцию. Хакеры используют инструменты: Hopper, IDA Pro, и другие. Затем опять скомпилируют приложения, чтобы использовать его для своих целей.
Устранить уязвимость можно лишь в том случае, если помешать хакерам произвести деобфускацию кода, которую они выполняют при помощи указанных инструментов.
Заложенная разработчиками дополнительная функциональность приложенияСоздаёт лишние уязвимости в приложении. Хакеры самостоятельно, без участия пользователей, используют эти программы. Исследуют функционал бэкенд-части, затем совершают атаки.
Чтобы устранить уязвимость, нужно проанализировать безопасность кода. Убедиться, что в настройках приложения нет скрытых переключателей, а логи не содержат дополнительных инструкций для работы сервера.