1 декабря 2023

Кейсы

Аудит безопасности мобильных приложений

Аудит безопасности приложения страховой компании

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

Цели и задачи продукта

Главная цель аудита — это комплексное исследование защищенности мобильного приложения для Android и iOS, а также его архитектуры. Для достижения этой цели мы провели тестирование безопасности с помощью статического и динамического анализа, нашли уязвимости и оценили их критичность. 

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

Анализ, подготовка 

Мы получили последнюю сборку мобильного приложения от клиента (страховой компании), после чего проанализировали технологии, используемые в приложении, и составили план аудита. Поиск уязвимостей выполнялся методами «белого» и «черного ящика»: «белый ящик» предполагает наличие доступа к исходному коду, а «черный ящик», наоборот, имитирует действия потенциального злоумышленника, и проводится аудитором без доступа к коду. 

Для оценки защищенности наша команда опирается как на международные рейтинги уязвимостей OWASP Mobile TOP 10 и OWASP TOP 10 API Security, так и на методику проверки безопасности мобильных приложений OWASP MASVS. Это помогает приоритизировать рекомендации по степени критичности уязвимостей и исправить все ошибки, пока они не принесли бизнесу серьезные потери.

Решение  

Комплексная проверка была проведена с помощью следующих инструментов 

  • фреймворк MobSF
  • платформа для тестирования безопасности приложений Burp Suite
  • инструменты Charles Proxy, Postman, Frida, Objection, Grapefruit 

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

В проверку вошли следующие этапы: 

  1. тестирование на предмет безопасного хранения данных
  2. тестирование механизмов аутентификации
  3. тестирование безопасности передачи данных
  4. тестирование взаимодействия с платформой
  5. тестирование конфигурации сборки
  6. тестирование устойчивости к реверс-инжинирингу
  7. тестирование бизнес-логики приложения 

Для оценки уровня опасности всех найденных уязвимостей мы используем методику CVSS 3.1., которая при проверке учитывает самые важные факторы: 

30112023 3

Результаты 

В ходе аудита было выявлено 11 уязвимостей: три критичного уровня, три высокого уровня, четыре среднего и одна низкого.

30112023

Расскажем подробнее о ключевых обнаруженных уязвимостях. 

  1. В конфигурационном файле приложения мы обнаружили CLIENT_ID, CLIENT_SECRET и APIKEY, а также другие строки, которые содержат чувствительную информацию — это критичная угроза для безопасности. Злоумышленники смогут с легкостью получить доступ к любым конфиденциальным данным, если в коде хранятся ключи и секреты в открытом виде. 
  2. Отсутствие ограничений на вызов методов — еще одна критичная уязвимость. В ходе исследования мы установили, что сервер не имеет достаточной защиты от многочисленных вызовов методов. Это может привести к таким угрозам, как DDOS атака на сервер или атака «полным перебором» логинов и паролей (brute force). 
  3. Другая уязвимость, но уже высокого уровня риска это передача чувствительных данных пользователя в открытом виде при взаимодействии с сервером. Это происходит, если в приложении отсутствуют механизмы защиты канала связи и SSL Pinning. Если взломщик осуществит атаку MITM (Man-In-The-Middle), в его распоряжении окажется вся информация о пользователе: паспортные данные, номер телефона, логины, пароли и ПИН-коды.  

01122023 1

Итогом аудита безопасности стал подробный отчет с описанием уязвимостей и рекомендациями по решению. 

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