ПРОБЛЕМЫ БЕЗОПАСНОСТИ МОБИЛЬНЫХ УСТРОЙСТВ, СИСТЕМ И ПРИЛОЖЕНИЙ
Часть 5
Угрозы и уязвимости мобильных приложений
В современном мире организации и физические лица все больше полагаются на мобильные программные приложения для поддержки своих критически важных деловых инициатив. Это означает, что защищенность мобильных приложений должна быть главным приоритетом стратегии безопасности бизнес – процессов организаций и частных лиц, использующих технологию мобильных транзакций, включая банковскую.
С ростом популярности разработки мобильных приложений, повышается их капиталоёмкость, а вместе с этим и желание злоумышленников перевести эти капиталы на свои счета. Многие современные мобильные программы предполагают внутренние покупки, а также отправку SMS на платные номера, именно эти лазейки могут использовать хакеры. Одно дело, сколько стоит создание мобильного приложения, а другое – сколько будет стоить сделать его безопасным. Механизмов взлома и вытаскивания денег из мобильных устройств чрезвычайно много, каждый год появляются новые алгоритмы, но вместе с тем растёт и сила противодействия, способная своевременно бороться с угрозами. В наименьшей степени этим тенденциям подвержены закрытые системы, в частности IOS, поскольку архитектура её выполнена так, что в ней практически невозможно появление вирусов.
Помимо всего прочего, разработка приложений для iPhon – затея, в целом, не из дешёвых, куда проще прописать вредоносный код для других систем. Проще и уязвимее разработка приложений для Android, цены на неё, впрочем, также ниже. Особенно остро встаёт проблема эффективной защиты при работе с закрытой почтой или банковскими приложениями, где любое хищение данных может повлечь за собой колоссальные риски и финансовые потери. Разработчики усложняют процедуру авторизации в таких программах, вводя дополнительные проверки подлинности, однако, здесь важно не перейти ту хрупкую грань, когда процедура входа в аккаунт окажется слишком трудоёмкой и неудобной.
Исследования, проведенные IBM X-Force, наглядно демонстрируют значительный процент уязвимостей, относящийся к мобильным и WEB–приложениям [8]. Для эффективной защиты своих мобильных приложений организациям необходимо проводить широкомасштабное тестирование поддерживающего ПО и самих приложений. Тестирование и проверка на ранних этапах внедрения мобильной технологии помогут уменьшить затраты на обеспечение безопасности.
Решения в области обеспечения безопасности приложений должны быть направлены на решения следующих задач:
– Повышения эффективности управления программами обеспечения безопасности приложений;
– Анализа исходного кода, WEB – и мобильных приложений на наличие уязвимостей;
– Автоматизации результатов статического и динамического тестирования приложений;
–Управления тестированием приложений, отчетами и политиками с помощью одной консоли, в том числе тестированием методом "прозрачного ящика" (разновидность интерактивного тестирования безопасности приложений (IAST).
Классификация приложений для мобильных устройств.
Приложения для мобильных устройств можно классифицировать по множеству критериев, но в контексте безопасности приложений нас интересуют следующие: по месту расположения приложения и по типу используемой технологии передачи данных.
По месту расположения приложения:
SIM-приложения – приложение на SIM-карте, написанное в соответствии со стандартом SIM Application Toolkit (STK);
Web-приложения – специальная версия Web-сайта;
мобильные приложения – приложения, разработанные для определенной мобильной ОС с использованием специализированного API, устанавливаемого в смартфон.
По типу используемой технологии взаимодействия с сервером:
Сетевые приложения – используют собственный протокол общения поверх TCP/IP, например HTTP;
SMS-приложения – приложения на основе SMS (Short Messaging Service);
Приложение обменивается с сервером информацией с помощью коротких текстовых сообщений;
USSD-приложения – приложения на основе USSD (Unstructured Supplementary Service Data). Сервис основывается на передаче коротких сообщений, схожих с SMS, но имеет ряд отличий;
IVR-приложения – приложения, базирующиеся на технологии IVR (Interactive Voice Response). Система основана на заранее записанных голосовых сообщениях и тональном наборе.
Именно приложения, разработанные для определенной мобильной ОС с использованием специализированного API, устанавливаемые в смартфон или иной гаджет для взаимодействия с соответствующим сервисом, сейчас наиболее распространены, так как полностью используют возможности мобильного устройства и имеют наиболее дружественный пользовательский интерфейс.
Оценка уровня защищённости некоторых приложений.
Компания Viaforensics провела уникальное исследование в сфере оценки защищённости мобильных приложений, которое дало в итоге достаточно интересные данные. Исследователи этой компании отобрали случайным образом 30 популярных программ мобильных приложений и подвергли их серьёзной проверке на надёжность. В результате порядка четверти заявленных решений вскрыты путём взлома и были названы небезопасными. Специалисты смогли с помощью внешних воздействий вытащить из памяти устройств сохранённые Pin-коды и номера кредитных карт. Также в ряде случаев удалось обеспечить несанкционированный доступ к истории платежей. Безусловно, подобная ситуация выглядит довольно плачевной, по понятным причинам Viaforensics не сообщает, о каких именно приложениях идёт речь.
Эксперты аналитической компании Digital Security также отмечают существование множества способов прорыва через системы безопасности мобильных приложений [9]. Среди них манипуляции с каналами данных, возможности скрытого внедрения SQL-операторов, некорректные права доступа и многое другое. Сегодня разработка приложения для мобильных телефонов делается под заказчика в сжатые сроки, поэтому исполнители не успевают уделять достаточное внимание вопросам безопасности.
Зная типовые подходы нарушителей к взлому, можно быть несколько более уверенным в защите своего устройства, поскольку на данный момент эти приёмы более или менее фиксированы, большинство схем ожидаемы. Если вы ищете, где заказать разработку IOS-приложений, в частности для финансовых операций, обращайте внимание лишь на проверенных программистов, готовых взяться за создание мощной системы безопасного доступа. Желательно, чтобы решение было изначально прописано так, чтобы типовые алгоритмы обмана на нём просто не работали. При работе приложения данные могут передаваться по каналам связи в открытом виде, хорошим антидотом в этом случае будет постоянное шифрование данных, что нередко используется в продвинутых программах. Также полноценная система безопасности должна всё время обновляться.
Приложения на каждой платформе имеют как свою специфику написания, так и свои специфичные угрозы, реализация которых может привести как к краже личных данных, в том числе банковских, так и к проникновению в корпоративную сеть.
Digital Security провела аудит безопасности клиентской части приложений на следующих мобильных платформах [9]:
Google Android;
Apple iOS (iPhone/iPad);
Java (J2ME/Java ME);
Windows Phone.
Типовые угрозы.
Были выявлены типовые угрозы для мобильных приложений включающие в себя:
– Секретные данные в открытом виде;
– Небезопасные каналы передачи информации;
– Наличие отладочного кода;
– Внедрение SQL-операторов;
– Межсайтовый скриптинг (XSS);
– Отсутствие проверок входящих данных;
– Неправильная расстановка прав доступа;
– Слабая криптография.
Методика аудита и содержание работ.
Методика аудита безопасности клиентской части мобильного приложения, разработанная исследовательским центром Digital Security, основана на опыте анализа защищенности различных по функциональности и сложности приложений, таких как ERP-системы, автоматизированные банковские системы, банк-клиенты, веб-приложения, системы управления базами данных и др. Подход к анализу основан на общепризнанных методах исследования приложений, описанных в таких документах, как PCI DSS Requirements and Security Assessment Procedures, OWASP Testing Guide, PA-DSS Requirement and Security Assessment Procedures, и доработан с учетом практического исследовательского опыта DSecRG.
Этапы работы.
Процесс анализа приложения состоит из нескольких базовых этапов:
– Анализ архитектуры клиентской части приложения;
– Составление модели угроз;
– Аудит безопасности кода;
– Стресс-тестирование (fuzzing);
– Реализация угроз в соответствии с логикой приложения.
Экспертный анализ уязвимости мобильных банковских приложений.
Компания «Инфосистемы Джет» обнародовала аналитический отчет по уязвимостям мобильных банковских приложений, функционирующих под управлением iOS, Android и Windows Phone [10]. Результаты исследования показали, что 98% программ имеют уязвимости и 40% из них обладают уязвимостями критического характера.
Отчет основан на данных, полученных экспертами компании в ходе обследования 58 банковских приложений. Был проведен статический и динамический анализ исходного кода продуктов. Эксперты «Инфосистемы Джет» оценили уровень безопасности межсетевого взаимодействия между мобильным приложением и WEB-сервисом, а также настройки защищенного соединения.
«При обследовании мы ориентировались на самые злободневные уязвимости, которым подвержены мобильные банковские приложения. В их числе атаки класса Man-In-The-Middle («человек посередине») и целый ряд брешей, позволяющих злоумышленникам совершать кражи конфиденциальных данных пользователей банковских систем различными способами», – пояснил Георгий Гарбузов, руководитель отдела консалтинга Центра информационной безопасности компании «Инфосистемы Джет».
Выяснилось, что в каждом пятом (22%) из протестированных мобильных банковских приложений используются незащищенные протоколы передач информации, а в каждом четвертом (25%) производится небезопасная аутентификация WEB-сервера. В 87% продуктов специалистами была выявлена недостаточная защита пакета приложения и его компонентов, в 78% – отсутствие проверок наличия несанкционированного привилегированного доступа к мобильному устройству. Больше всего критичных «дыр» было обнаружено в Android-приложениях, меньше всего – в программных решениях, работающих в среде iOS.
Подтвердилась тенденция, отмеченная экспертами в традиционных ежегодных отчетах в области безопасности систем дистанционного банковского обслуживания (ДБО) [11]. Разработчики мобильных банк-клиентов не уделяют достаточного внимания вопросам безопасности приложений, не следуют руководствам по безопасной разработке. Зачастую отсутствуют процессы разработки безопасного кода и архитектуры. Оказалось, что все рассмотренные приложения содержат хотя бы одну уязвимость, позволяющую либо перехватить данные, передающиеся между клиентом и сервером, либо напрямую эксплуатировать уязвимости устройства и самого мобильного приложения. Так, 35% мобильных банков для iOS и 15% мобильных банков для Android содержат уязвимости, связанные с некорректной работой SSL, а это означает возможность перехвата критичных платежных данных с помощью атаки "человек посередине". 22% приложений для iOS потенциально уязвимы к SQL-инъекции, что создает риск кражи всей информации о платежах с помощью нескольких несложных запросов. 70% приложений для iOS и 20% приложений для Android потенциально уязвимы к XSS - одной из самых популярных атак, позволяющей ввести в заблуждение пользователя мобильного банк-клиента и таким образом, например, украсть его аутентификационные данные. 45% приложений для iOS потенциально уязвимы к ХХЕ-атакам, особенно опасным для устройств, подвергнутым столь популярной в России операции jailbreak. Около 22% приложений для Android неправильно используют механизмы межпроцессного взаимодействия, тем самым фактически позволяя сторонним приложениям обращаться к критичным банковским данным [11].
Защита.
Необходимо использовать криптографические возможности устройства, шифрование критичных данных и при необходимости возможность удаленной очистки данных, а также проводить анализ защищенности приложения, который поможет выявить возможные утечки критичных данных и некорректное использование шифрования.
Атака.
Для атаки через вредоносное приложение нарушителю необходимо установить вредоносное приложение, используя методы социальной инженерии или атаку Drive-by-Download.
После установки вредоносного приложения злоумышленник может поднять свои привилегии в системе, используя эксплойт для уязвимости в ОС смартфона, и получить удаленный доступ к устройству с полными правами доступа, что приведет к полной компрометации устройства: злоумышленник сможет украсть критичные данные пользователя мобильного банкинга или подменять данные платежных операций.
Защита.
Необходимо обновлять ПО на устройстве, использовать программные средства защиты и повышать осведомленность пользователей в вопросах ИБ.
Атаки на канал связи.
В ходе классической атаки "человек посередине" перехватываются данные между устройством клиента и сервером. Для этого необходимо находиться в одной сети с жертвой, например в публичной сети Wi-Fi, или использовать поддельные беспроводные точки доступа и поддельные базовые станции. Предпосылки – уязвимость в мобильном приложении, некорректная работа с шифрованием передаваемых данных или полное отсутствие шифрования данных. Самый распространенный пример – неправильная работа с SSL. В результате злоумышленник может прослушивать и подменять передаваемые данные, что может в итоге привести к краже денежных средств со счета клиента.
Защита.
Правильная реализация работы с SSL. Также рекомендуется в мобильном приложении при подключении к серверу доверять только SSL-сертификату банка. Это поможет в случае компрометации корневого центра сертификации.
Стоит также отметить, что jailbreak устройства (iOS) или наличие root-доступа на устройстве (Android) пользователя значительно снижает уровень защищенности устройства и упрощает атаку для злоумышленника.
Выводы:
Приложения для мобильных платформ подвержены как старым общеизвестным угрозам, так и новым, еще не изученным до конца. Растет уровень распространения вредоносных приложений для Android.
Угрозы безопасности мобильных банков создают риски компрометации критичных данных пользователей, хищения денежных средств и нанесения ущерба репутации банка.
Разработчики мобильных банк-клиентов не уделяют достаточного внимания вопросам безопасности приложения, не следуют руководствам по безопасной разработке. У разработчиков зачастую отсутствуют процессы разработки безопасного кода и архитектуры.
Рекомендации.
Осведомлять программистов о вопросах безопасности;
Закладывать безопасность в архитектуру;
Проводить аудит кода;
Проводить анализ защищенности приложения;
Применять параметры компилятора, связанные с безопасностью;
Контролировать распространение приложения в сети Интернет;
Быстро закрывать уязвимости и выпускать обновления.
Приведенное выше показывает, что мобильные банки содержат уязвимости и недостатки, которые могут привести к хищению денежных средств. Уровень защищенности мобильных банков в большинстве случаев не превосходит уровня защищенности обычных мобильных приложений, в то время как связанные с ними риски подразумевают повышенные требования по безопасности.
Современные средства защиты для мобильных устройств – антивирусы, MDM-решения и т.д. – могут сократить риск, но не решить весь спектр проблем. Безопасность должна внедряться еще на этапе проектирования системы и присутствовать на всех этапах жизненного цикла программы, включая этап разработки и внедрения. Необходимо осуществлять аудит кода, анализ защищенности приложения, тестирование на проникновение.
Риски при использовании мобильного банкинга обратно пропорциональны защищенности приложения. Поэтому необходим комплексный аудит защищенности мобильных банковских приложений.
Рекомендации.
1. Осведомлять программистов о вопросах безопасности.
2. Закладывать безопасность в архитектуру.
3. Проводить аудит кода.
4. Проводить анализ защищенности приложения.
5. Применять параметры компилятора, связанные с безопасностью.
6. Контролировать распространение приложения в сети Интернет.
7. Быстро закрывать уязвимости и выпускать обновления.
Литература
Якушин Петр. Безопасность мобильного предприятия// Открытые системы № 01, 2013.
Аналитический Центр InfoWatch. Глобальное исследование утечек корпоративной информации и конфиденциальных данных, 2014.
Шетько Николай. Взлом сотовых сетей GSM: расставляем точки над «i»// ET CETERA – серия цифровых журналов, распространяемых по подписке № 32, 2013.
Коржов Валерий. Скорость и безопасность в LTE// «Сети/network world» №6, 2012.
802.11i-2004 – IEEE Standard for Local and Metropolitan Area Networks– Specific requirements – Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) specifications: Amendment 6: Medium Access Control (MAC) Security Enhancements, 2004.
Белорусов Д.И. Wi-Fi – сети и угрозы информационной безопасности/ Д.И. Белорусов, М.С. Корешков // СПЕЦИАЛЬНАЯ ТЕХНИКА № 6, 2009; с. 2-6.
Трифонов Дмитрий. Как взламывают корпоративный Wi-Fi: новые возможности. [Электр. рес. ]// Исследовательский центр Positive Technologies. URL: http://www.securitylab.ru/analytics/471816.php.