- PVSM.RU - https://www.pvsm.ru -
Во второй половине 2017 года в Google Play разработчики загружали примерно по 2800 приложений каждый день. По AppStore данные пока не удалось найти, но вряд ли во много раз меньше. Каждое из этих приложений содержит определённое количество данных (data), которые хранятся или передаются через сотовые и Wi-Fi-сети.
Источник [1]
Очевидно, что данные мобильных приложений являются основной целью злоумышленников: они не только крадут их, но и манипулируют ими в своих собственных интересах [2]. Это также сопряжено с рядом проблем, таких как поддельные и альтернативные (часто ненадёжные) приложения, вредоносное ПО, утечка данных, слабозащищённые данные или ошибки защиты данных, а также инструменты для получения доступа к данным и их дешифровке.
Меня зовут Юрий, я 10 лет занимаюсь вопросами в различных областях информационной безопасности, в том числе приватности и утечки данных. Области практического интереса — мобильная безопасность, облачные вычисления, криминалистка и управление безопасностью и доступом. Последние 7 лет выступаю на отечественных и международных конференциях (CyberCrimeForum, HackerHalted, DefCamp, NullCon, OWASP, CONFidence, Hacktivity, Hackfest, DeepSec Intelligence, HackMiami, NotaCon, BalcCon, Intelligence Sec, InfoSec NetSysAdmins, etc.), где предлагаю вниманию разработчиков небезынтересные примеры небезопасности и последствий и прошу их чуть больше задумываться о безопасности данных.
Существует много разных мнений относительно оказываемого разработчиком влияния на безопасность.
У людей есть много потребностей (личных, профессиональных, рабочих); два и более устройства и, как следствие, более одного поставщика услуг и десятки приложений для удовлетворения своих нужд. Несмотря на такую гибкость и разнообразие, разное программное обеспечение имеет много общих свойств. Например, одни и те же технологии хранения, передачи и защиты данных, даже учитывая различную реализацию, могут иметь сходство на уровне архитектурных особенностей.
Что касается механизмов безопасности, часть из них уже работает по умолчанию и не требует вмешательства разработчика, а другие — наоборот. Например, SSL/TLS, который применяется во многих приложениях, уязвим для атак Man-in-the-Middle (MITM), когда дело доходит до неправильной реализации. При этом в iOS 10 (и выше) и Android 7 (и выше) уже встроены механизмы предотвращения MITM-атак, которые также помогают избежать правительственного перехвата данных со стороны таких стран, как Казахстан и Таиланд.
Закон Казахстана [4]был принят в декабре 2014, но почти сразу один из крупных операторов опубликовал информацию на своём сайте о необходимости установки государственного корневого SSL-сертификата.
Государственные органы также взаимодействовали с представителями Mozilla, и государственный корневой сертификат считается доверенным в списке сертификатов Mozilla.
Опубликованный отчёт «Who’s That Knocking at My Door? Understanding Surveillance in Thailand [8]» информирует о том, что Microsoft предоставляет доступ к корневым сертификатам при взаимодействии с Таиландом. Согласно другим отчётам, пока так делает только Microsoft (Apple – нет), но в Таиланде 85% устройств находятся под управлением ОС Windows StatCounter [9].
Причём эти механизмы включены по умолчанию вне зависимости от действий разработчика, но по-разному реализованы. Также Android имеет полностью независимый механизм, а iOS — управляемый, что позволяет активировать работу сторонних SSL-сертификатов.
Кроме сетевых проблем, существуют и проблемы с локально хранимыми данными (внутренняя память мобильных устройств). Большинство приложений активно используют локальное хранилище для кэшированных данных, оптимизации использования сети и быстрого доступа к пользовательским данным (разговоры, файлы, мультимедиа, и т.д.). Многие из таких приложений часто хранят данные пользователей без защиты или защита слишком слабая, например, секретный ключ находится рядом с зашифрованными на нём данными.
У этой дыры в заборе есть даже своя страница на Викимапии [10]
А ведь ещё специализированные криминалистические решения, в которых активно воплощены результаты изучения этих проблем в виде запрограммированных методов доступа к данным приложений и отдельно хранимым пользовательским данным. А наличие разных проблем безопасности часто делает извлечение данных лёгким и комфортным.
Приведённые ниже рисунки содержат обобщённые результаты исследования проблем механизмов защиты для локальных и сетевых данных. Описаны лишь те механизмы, которые реализованы в рассмотренных приложениях. Другими словами, если, например, шифрование данных не реализовано, то информация не указана.
Краткое объяснение типа данных:
Большое количество приложений для хранения учётных данных, геолокации или банковской информации использует подход «хранить в открытом виде». Для ряда людей это может означать удаление приложения, как только об этом станет широко известно.
Смешение данных между приложениями (каждое приложение может содержать различные данные) обычно говорит о том, что существует вероятность компрометации дополнительных учётных записей пользователей. Например, у приложения, не являющегося соцсетью, может быть авторизация через соцсети, и используемые учётные данные (например, логин и токен при OpenID) будут сохранены в открытом виде.
Даже в рассмотренных примерах разработчики половины приложений не следуют безопасным рекомендациям относительно корректных реализаций механизмов безопасности. SSL — это самый популярный способ связи для различных приложений, и в каждом руководстве по безопасности указано, что требуется проверять сертификаты, в том числе и корневой сертификат, чтобы не допустить компрометации данных. Однако отсутствие надлежащей защиты часто помогает перехватить трафик мобильных приложений.
Многие популярные мобильные приложения, особенно игры, часто собирают огромное количество персональных данных для профилирования и персонализации владельца устройства. Сюда входят такие данные, как возраст, пол, геолокация, деятельность в социальных сетях, привычки (любимые маршруты, посещаемые заведения, музыкальные, кулинарные предпочтения) и многое другое. В этом случае существует вероятность, что по крайней мере 2, 3 или 5 приложений раскрывают максимальное количество информации о пользователе. Тем не менее сбор такой информации является нарушением требований многих документов и рекомендаций по безопасности с учётом целей и функций приложения. Проблема усугубляется тем, что пользовательские соглашения часто не отражают сути защитных механизмов или защищаемых данных или имеют неточности. А ещё их никто не читает.
читатели, расскажите друзьям, что стоит ограничивать доступ приложений к личным данным средствами операционных систем, проверять разрешения при установке и читать описания в маркетах, а также обзоры специалистов по безопасности
Использование сторонних библиотек помогает ускорить разработку и воспользоваться опытом других разработчиков в собственном приложении. Однако, такой опыт включает в себя и все проблемы, в том числе проблемы безопасности. Такая практика может фактически с точки зрения безопасности разделить защиту на две и более частей: один и тот же тип данных, например, пароль, будет найден в нескольких местах (разные пользовательские сценарии) и с разным уровнем защищённости (аналогично Facebook).
Создание приложения и его появление в маркете не означает, что цикл разработки завершён. Напротив, разработчики только начинают добавлять новые функции, исправлять ошибки в безопасности, непреднамеренно вносить и новые ошибки безопасности, удалять старые функции и т.д., что даёт возможность злоумышленникам не только обнаруживать, но и результативно использовать возникающие при этом проблемы.
Каждое приложение может быть надёжным, слабым или ненадёжным в любое время. Кроме того, обновления приложений нарушают идею получения «исправления проблем» с каждой следующей версией (новая версия может быть менее защищена, чем старая), а для некоторых приложений обновление обязательно. На практике фактические проблемы безопасности продолжают игнорироваться.
В результате образуются ошибки безопасности, которые позволяют злоумышленникам компрометировать пользователей вновь и вновь. Кажется, что чем опытнее команда разработчиков, тем меньше таких проблем должно быть в конечном продукте. Но, изучив популярные приложения, мы не увидим подобного. Это происходит потому, что они ориентированы на рабочий продукт как на первичную меру прогресса, т.е. работоспособность является показателем успеха. В то же время на примерах есть возможность убедиться, что разработчики всё-таки могут создавать надёжные приложения и поддерживать их в актуальном состоянии с точки зрения безопасности, используя правильные инструменты и наборы требований.
Автор: Yury Chemerkin
Источник [18]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/android-development/277421
Ссылки в тексте:
[1] Источник: https://www.statista.com/statistics/266210/number-of-available-applications-in-the-google-play-store/
[2] интересах: https://mobilebusinessinsights.com/2016/11/mobile-data-hackers-arent-just-stealing-it-theyre-manipulating-it/
[3] Стоит прекратить обвинять разработчиков во всех грехах безопасности: https://www.veracode.com/blog/secure-development/its-time-stop-blaming-developers-insecure-software
[4] Закон Казахстана : https://bits.blogs.nytimes.com/2015/12/03/kazakhstan-moves-to-tighten-control-of-internet-traffic/
[5] Mozilla bug report – Add Root Cert of Republic of Kazakhstan: https://bugzilla.mozilla.org/show_bug.cgi?id=1232689
[6] Mozilla CA Program (in pdf): https://bug1232689.bmoattachments.org/attachment.cgi?id=8705877
[7] Gov Cert of Kazakhstan: http://pki.gov.kz/cert/pki_rsa.cer
[8] Who’s That Knocking at My Door? Understanding Surveillance in Thailand: https://news.vice.com/story/microsoft-may-be-accidentally-helping-thailands-government-spy-on-its-citizens
[9] StatCounter: http://gs.statcounter.com/os-market-share/desktop/thailand
[10] У этой дыры в заборе есть даже своя страница на Викимапии: http://wikimapia.org/22190469/ru/%D0%94%D1%8B%D1%80%D0%B0-%D0%B2-%D0%B7%D0%B0%D0%B1%D0%BE%D1%80%D0%B5
[11] тут : https://www.owasp.org/index.php/Certificate_and_Public_Key_Pinning
[12] тут: https://www.emaro-ssl.ru/blog/ssl-pinning-for-android/
[13] Приложение Starbucks и хранение пароля в открытом виде: https://www.cvedetails.com/cve/CVE-2014-0647/
[14] Приложение Panda SM Manager iOS Application и перехват данных: http://seclists.org/fulldisclosure/2016/Mar/2
[15] Отчёт об утечке данных мобильных приложений: https://www.mgicomputers.com/virus-news/threat-report-says-1-in-50-ios-apps-could-leak-data
[16] Утечка данных через рекламные модули: https://law.yale.edu/yls-today/news/isp-privacy-lab-publishes-research-hidden-trackers
[17] Утечка данных по косвенным признакам в приложении Tinder: https://www.wired.com/story/tinder-lack-of-encryption-lets-strangers-spy-on-swipes/
[18] Источник: https://habrahabr.ru/post/353112/?utm_source=habrahabr&utm_medium=rss&utm_campaign=353112
Нажмите здесь для печати.