Почему важно защищать мобильные приложения

Почему важно защищать мобильные приложения

Свыше 83 % мобильных приложений от российских разработчиков содержат критические уязвимости, за счёт которых злоумышленники могут проникнуть в информационные системы, получить доступ к конфиденциальным данным и совершать действия от имени пользователей.

 

 

 

 

 

 

  1. Введение
  2. Мобильное приложение — полноценный игрок
  3. Хакеры найдут что украсть
  4. Операционная система не защитит
  5. Под угрозой все клиенты
  6. Магазинам приложений неинтересна безопасность
  7. Репутации нужна защита
  8. Выводы

Введение

В рамках исследования защищённости мобильных приложений от российских разработчиков наша команда проверила 790 продуктов из разных отраслей и нашла в них 12 383 уязвимости. Часть проблем связана с сетевым взаимодействием, с помощью этих брешей злоумышленники могут реализовать атаку «внедрённый посредник» (Man-in-the-Middle). В следующую категорию входят ошибки конфигурации: у 31 % приложений отсутствует или находится на недостаточном уровне обфускация исходного кода, 37 % Android-продуктов позволяют создавать резервную копию данных. Ещё одна группа включает в себя уязвимости связанные с некорректным хранением конфиденциальной информации, ключей и сертификатов.

Специалисты Positive Technologies в течение 2022 года изучили 25 пар приложений для iOS и Android и выявили в них 216 уязвимостей. Наибольшую долю (14 %) составили проблемы относящиеся к хранению данных пользователей в открытом виде. По 9 % пришлось на уязвимости связанные с контролем целостности приложений и содержанием конфиденциальной информации в коде. Третье место заняли проблемы из категории проверок на недоверенное окружение (8 %).

Результаты аналитических исследований подтверждают, что компании уделяют недостаточно внимания безопасности мобильных приложений. Это упрощает задачи злоумышленникам. Например, специалисты Microsoft нашли в приложении TikTok для Android уязвимость, которая позволяла хакерам мгновенно получать доступ к чужим аккаунтам после того, как пользователи нажимали на специальную ссылку. 

В этой статье мы разберём основные аргументы, доказывающие, что мобильные приложения нуждаются в защите не меньше другого ПО.

Мобильное приложение — полноценный игрок

Среди безопасников распространено мнение, что мобильное приложение — это лишь витрина данных для серверной части, поэтому защищать здесь нечего. В какой-то степени так и есть: мобильный продукт, как и веб-часть, выполняется на устройстве пользователя и демонстрирует данные, которые поступают с сервера. Но то, что находится на стороне пользователя в таком продукте, значительно отличается от содержимого приложения в браузере. Это нужно учитывать, поскольку популярность мобильных приложений продолжает стремительно расти: россияне в первом квартале 2022 года проводили в них около пяти часов в день, что на 35 % больше по сравнению с первым кварталом 2019 года. Основываясь на этой тенденции, разработчики стараются оперативно создавать и совершенствовать мобильные продукты. Когда функциональность нужно реализовать срочно, а серверная сторона неспособна быстро поддержать изменения, важные данные могут сохраняться локально, кешироваться, иногда используется локальная аутентификация. При этом каждое десятое приложение для Android хранит пароли в открытом виде.

Таким образом, мобильное приложение уже нельзя назвать простой витриной данных, сегодня это полноценная сложная система с подходами к разработке, собственной архитектурой, потоками данных, асинхронными операциями. Поэтому к такому приложению нужно относиться как к отдельному продукту или важному компоненту системы. К нему необходимо применять те же требования по безопасности, которые действуют по отношению к серверной части. Их нужно лишь адаптировать под специфику продукта. К тому же, серверная часть и мобильное приложение часто работают в тесной связке, поэтому безопасность одного компонента зависит от защищённости другого.

Хакеры найдут что украсть

Конфиденциальные данные, которые мобильные приложения зачастую хранят локально, могут открыть многие двери перед злоумышленниками. Мобильные продукты часто содержат в своём коде или в сохраняемой на устройствах информации логины и пароли от технических учётных записей, данные тестовых серверов, ключи от сторонних сервисов. Последние используются, например, для интеграции с соцсетями, рассылки пуш-уведомлений, оплаты. Зачастую ключи обладают большими привилегиями, которые чрезмерны для клиентского взаимодействия. Иногда разработчики оставляют их и другие данные просто по ошибке. Однажды наша команда обнаружила в мобильном продукте скрипты сборки и файл с зависимостями, в котором были версии всех библиотек, включённых в приложение, адреса систем CI / CD и внутренних стендов и даже контакты разработчиков в Telegram.

Стоит отметить, что в коде веб-приложений такую информацию можно встретить крайне редко. Несмотря на то что они, так же как и мобильные приложения, выполняются на устройствах пользователей, никто не сохраняет конфиденциальные данные в хранилище браузера. Но к мобильным продуктам разработчики почему-то относятся иначе — и напрасно. Злоумышленникам не составит труда найти и изучить строки из файлов приложений или выполнить декомпиляцию кода продуктов на Android. Все найденные или полученные с помощью простых манипуляций конфиденциальные данные могут использоваться для совершения атак разного масштаба.

Операционная система не защитит

Согласно аналитическим данным, приведённым в начале статьи, разработчики продолжают сохранять и кешировать значительную часть пользовательской информации в незащищённом виде — в песочнице приложений. Многие компании считают, что извлечь данные из песочницы невозможно, поскольку она защищена механизмами безопасности операционной системы и доступ к данным разрешён только для одного приложения.

На самом деле это не так: всё, что хранится или проверяется локально, можно получить или обойти. Есть как минимум три способа, которые позволят злоумышленникам завладеть конфиденциальной информацией. Для этого можно использовать облачные и локальные резервные копии или проэксплуатировать уязвимости приложения, которые дают возможность читать файлы из песочницы. Также извлечь данные получится с помощью прав суперпользователя (root) или доступа с обходом ограничений (jailbreak) на устройствах, поскольку не все приложения способны определить запуск в скомпрометированной среде.

Не стоит забывать и о том, что далеко не все технологии и инструменты шифрования, которые используются для безопасного хранения данных на устройстве, способны эффективно справиться со своей задачей. Изучая разные инструменты, мы часто встречаем ключи, которые «зашиты» в исходном коде, обнаруживаем их в соседних файлах рядом с зашифрованными данными, сталкиваемся с другими проблемами, связанными с некорректным применением шифрования и хеширования.

Под угрозой все клиенты

По мнению многих безопасников, риски минимальны, а значит, безопасность не важна, если под угрозой находится только один клиент, который пользуется скачанным приложением. Но важно помнить, что подразделения ИБ в первую очередь работают для того, чтобы защищать данные и деньги всех пользователей без исключения. Кроме того, если угроза касается одного клиента, это ещё не значит, что её реализация будет практически незаметной для компании. Например, злоумышленники могут украсть у ВИП-пользователя крупную сумму денег — это скажется на показателях отдела и не покроется никакими рисками.

Теперь посмотрим на этот аргумент под другим углом: представим, что в приложении появилась проблема, позволяющая получать личные данные клиента, которые можно использовать для дальнейших атак. Действительно, в данном случае уязвимость касается одного пользователя. Но у приложения много клиентов, и каждый из них потенциально может стать жертвой. Известно немало инцидентов, когда внутри легитимных сервисов или качественных копий обнаруживалась дополнительная функциональность для получения данных из других приложений. Вспомним, например, инцидент с поддельным приложением Clubhouse для Android. Оно выполняло все функции оригинального продукта, а заодно пыталось украсть учётные данные для входа в 458 сервисов.

Таким образом, если злоумышленники найдут в мобильном приложении уязвимость, это позволит им атаковать многих пользователей и тем самым нанести компании значительный финансовый и репутационный ущерб. Чтобы реализовать масштабный инцидент, они могут использовать сторонние сервисы или социальную инженерию, а также вредоносные программы, эксплуатирующие различные бреши в продуктах — такое ПО зачастую создают для популярных приложений.

Магазинам приложений неинтересна безопасность

Магазины защищают лишь себя и анализируют только то, что им выгодно. В частности, маркетплейсам важно убедиться, чтобы приложение не было вредоносной программой или её модификацией и не нарушало установленных правил. Также они обращают внимание на корректность описаний продуктов и качество приложенных скриншотов.

В рамках эксперимента наша команда загрузила на один маркетплейс вредоносное приложение, заменяющее собой Google Photo. Мы создали его на основе уязвимого продукта специально для CTF-соревнований (Capture the Flag). В названии пакета было слово «malware». Магазин опубликовал приложение за 15–20 минут, никаких уведомлений об уязвимостях не поступало — в целом есть большие сомнения, что за это время можно провести качественные проверки.

Магазины Samsung Galaxy Store и Huawei AppGallery заявляют, что перед публикацией проверяют приложения на уязвимости. Но подробной информации о проверках, методах и критериях анализа нигде нет. Кроме этого, в самих приложениях маркетплейсов время от времени обнаруживают проблемы. Например, в 2022 году в Samsung Galaxy Store были найдены уязвимости, которые позволяли устанавливать на устройства жертв любые приложения из этого магазина или перенаправлять пользователей на «заражённые» сайты.

Репутации нужна защита

Репутационные риски достойны внимания хотя бы потому, что способны повлиять сразу на три области: финансовые показатели компании, отток клиентов и спрос со стороны кадров. Последнее в условиях дефицита ИБ-специалистов имеет особую значимость. Статья о небезопасности сервисов компании, опубликованная на каком-нибудь популярном ресурсе, может наделать столько шума, что все три «кита» пойдут ко дну, организации придётся долго оправдываться и восстанавливать репутацию.

В рамках исследования, о котором мы говорили в начале, мы нашли 10 приложений с уязвимостью, которая позволяет отправлять пуш-уведомления на все устройства, где установлен продукт. Злоумышленники могли от имени бренда разослать пользователям сообщения с любым текстом, заголовком, картинкой и другими доступными элементами. Эта схема подходит для атак на базе социальной инженерии, направленных на кражу денег или данных. Её удобно использовать для отправки рекламы конкурентов, уведомлений о взломе приложения, сообщений с высказываниями против правительства. В зависимости от фантазии и целей злоумышленников возможны разные варианты, и все они способны привести к крайне неприятным последствиям.

Выводы

Безопасность ИТ-системы определяется её наименее защищённым компонентом. Нельзя допускать, чтобы самым слабым звеном было мобильное приложение. Современный мобильный продукт представляет собой полноценную сложную систему, которая зачастую содержит много ценной для злоумышленников информации. К тому же она выполняется на чужих устройствах, то есть в неблагоприятной среде. Если хакеры получат доступ к конфиденциальным данным, под ударом могут оказаться миллионы пользователей, для компании это обернётся крупными финансовыми и репутационными потерями. Поэтому мобильное приложение необходимо защищать так же, как и любое другое ПО. Добиться высокого уровня безопасности помогут специальные ИБ-инструменты и выстроенный с их помощью комплексный процесс анализа защищённости на всех этапах разработки.

Полезные ссылки: 
Anti-Malware Яндекс ДзенПодписывайтесь на канал "Anti-Malware" в Telegram, чтобы первыми узнавать о новостях и наших эксклюзивных материалах по информационной безопасности.

RSS: Новые статьи на Anti-Malware.ru