Информационная безопасность мобильных систем – Цифровая экономика

Информационная безопасность мобильных систем

В настоящее время мобильные устройства являются неотъемлемой частью повседневной жизни и представляют собой полноценный рабочий инструмент, центр развлечений и средство управления личными финансами.

Широчайшие функциональные возможности и наличие личных и корпоративных данных служат причиной, по которой злоумышленники заинтересованы получить доступ к информации.

Операционные системы (ОС) для мобильных устройств обладает хорошо организованными защитными механизмами, но имеет ряд уязвимостей, что позволяет злоумышленникам получить несанкционированный доступ к ней.

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

Обратимся к наиболее распространённым на данный момент мобильным устройствам, которые работают под управлением операционной системы Android.

Анализ использования мобильных устройств.

В настоящее время мобильные устройства являются неотъемлемой частью повседневной жизни. Проведенные опросы указывают на широкое распространение мобильных устройств4 : более половины взрослого населения России (60,8%) имеют хотя бы одно устройство, а почти каждый третий (29,3%) – сразу два.

Мобильные устройства популярны среди различных категорий пользователей и используются для различных целей. Самыми популярными видами использования мобильных устройств являются: ведение списка контактов (друзья, знакомые, коллеги) (77,7%), проверка (получение, чтение) электронной почты (70,8%), веб-серфинг (63,8%), ведение электронного ежедневника (33,5%) и совершение покупок в Интернете (23,4%).

По данным исследования Фонда «Общественное Мнение»[1] в середине 2022 года суточная аудитория интернета (ответившие, что выходили в Сеть в последние сутки) составила 60% взрослых россиян, недельная – 67%, месячная – 70%. При этом больше половины аудитории (52% от всех пользователей российского сегмента интернета) использует мобильные устройства наряду с компьютерами, а пятая часть (19%) и вовсе выходит в интернет только с них[2].

По данным статистики портала Livelnternet[3] в декабре 2022 года на долю пользователей мобильных устройств, пришлось около 70% от всех пользователей интернета или 128,5 млн. посетителей российских сайтов. Лидером среди используемых мобильных устройств являются устройства, работающие под управлением ОС Android (92,4 млн. пользователей или 72% от общего числа пользователей мобильного интернета). Особо следует отметить стремительный рост количества пользователей мобильных устройств за последние несколько лет: с 77 млн. пользователей в июне 2022 года до 128,5 млн. в декабре 2022 года (или в 1,7 раза), в то время как общее количество пользователей выросло с 145 млн. до 185,7 млн. (или 1,3 раза).

По данным отчета GfK Crossmedia Landscape 2022[4] россияне проводят в социальных сетях почти треть всего своего онлайн-времени (32% или почти 20 часов в месяц). Наибольший охват аудитории имеют социальные сети и поисковые системы. Почти 10-ю часть своего времени, проведенного в Интернет, пользователи тратят на покупки товаров (по оценке GfK, сегодня более 24 млн. россиян в возрасте 16- 55 лет делают покупки в интернете).

При этом отмечается рост доли заказов с мобильных устройств. Так, по данным совместного исследования GfK и Яндекс.Маркет[5], к сентябрю 2022 г. на мобильные устройства приходится 17% заказов в российских интернет-магазинах и 22% заказов в сегменте трансграничной торговли (при этом через мобильные приложения соответственно осуществляется 27% и 80% покупок).

Наиболее популярные категории для покупки в интернете – одежда и обувь, косметика и парфюмерия. Покупатели этих категорий – преимущественно женщины. При этом планшетом, как и компьютером, пользуются преимущественно из дома, а смартфоном – везде[6][7].

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

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

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

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

На конец октября 2022 года в iOS Арр Store и Google Play предлагалось более 2 млн. и более 3,5 млн. мобильных приложений соот-

460 тг

ветственно . Кроме того, число новых приложении продолжает расти в геометрической прогрессии. Так за октябрь 2022 года в iOS Арр Store вышло около 50 000 новых приложений, а в Google Play добавилось свыше 150000. В 2022 г. объем мировой индустрии мобильных приложений составил 1,3 трлн. долл. К 2021 г. этот рынок вырастет почти в 5 раз до 6,3 трлн. долл, (этому будут способствовать инновации и переход от физических операций к мобильным).

Доход разработчиков мобильных приложений обеспечивается с помощью следующих бизнес-моделей: платной установки приложений, покупки в приложении и размещении рекламы в приложении.

Согласно данным компании Арр Annie[8], в 2022 г., по сравнению с 2022 г., мировые загрузки выросли на 15%, проведенное в приложениях время увеличилось на 25%, что принесло издателям на 40% больше дохода в магазинах приложений Google Play и iOS Арр Store. Ожидается, что в 2022 году мировой совокупный показатель затрат пользователей в магазинах приложений превысит отметку $100 млрд. По мере перехода индустрии приложений в более зрелую стадию предполагается распространение модели подписки, что позволит значительно увеличить доходы разработчиков мобильных приложений.

Также отмечается стремительный рост мобильных розничных продаж (ритейла) по всему миру[9]. В 2022 г. на мобильную сферу приходилось 44% интернет-трафика ритейлеров и 31% их продаж. Прогнозируется, что по итогам 2022 г. объем рынка мобильной коммерции составит 2,36 млрд. долл, и к 2021 году может достичь 6 трлн. долл.

Мобильный ритейл носит разноплановый характер, тем не менее, приложения мобильного ритейла можно условно отнести к одной из следующих категорий: 1) совмещающие онлайн и офлайн каналы; 2) изначально цифровые. В первую группу входят приложения компаний со значительным присутствием в офлайн-торговле, таких как М-видео, Улмарт и др., а во вторую – приложения, ориентированные на онлайн- торговлю, такие как Amazon, OZON и т.д.

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

Ожидается, что рынок рекламы в мобильных приложениях в 2022 году во всем мире обгонит доходы от продажи приложений. Если в 2022 г. рекламные доходы в этом сегменте составили 72 млрд. долл, против 82 млрд. долл, продаж самих приложений, то уже в 2022 г. соотношение изменится: 82 млрд. долл, против 101,4 млрд, долл., а в 2021 г. – 139 млрд. долл, против 201,1 млрд. долл.

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

Применение мобильных технологий в бизнесе позволяет ускорить, облегчить и удешевить бизнес-процессы, помогая достигать основных целей бизнеса: получить прирост выручки, снизить издержки, привлечь новых клиентов, повышение статуса и компетентности компании в глазах клиентов и т.д.[11][12].

Спрос на использование мобильных устройств, как ключевого элемента информационной инфраструктуры предприятия, привел к появлению класса информационных систем, поддерживающих возможность использования мобильных устройств в корпоративных деловых процессах, – систем управления корпоративной мобильной средой (Enterprise Mobility Management, EMM)46 . Реализация таких систем основана на интеграции данных аппаратных средств в ИТ-системы и в среды обеспечения безопасности на всех этапах управления жизненным циклом ИТ.

Организации могут использовать ЕММ-решения для выполнения следующих задач своих пользователей: 1) конфигурирование и настройка мобильных устройств, а также управление жизненным циклом приложений, необходимых для использования в бизнес-процессах предприятия; 2) аудит, отслеживание и подготовка отчетов об использовании мобильных устройств и установленных приложений, их конфигурации, настройках, и т.д.; 3) защита данных; 4) поддержка пользователей, устранение проблем с мобильными устройствами с помощью инвентаризации, аналитики и удаленных действий.

Решение указанных задач основано на следующих технических возможностях EMM: 1) на управлении мобильными устройствами (Mobile device management, MDM) – зависящем от платформы наборе сервисов и технологий управления жизненным циклом, который обеспечивает инвентаризацию, управление конфигурацией ОС, подготовку и удаление устройств, удаленное удаление и удаленный просмотр / контроль для устранения неполадок; 2) на управлении мобильными приложениями (Mobile application management, МАМ) – наборе сервисов и технологий управления и контроля для отдельных приложений (которые доставляются либо через хранилище корпоративных приложений, либо с использованием собственных API-интерфейсов ОС), а затем управляются локально на устройствах через консоль ЕММ; 3) на управлении идентификацией (Mobile identity management, MIM) – наборе сервисов и технологий управления идентификацией и доступом (для оценки решений о доступе может использоваться SIM-карта мобильного устройства, а также контекстуальная информация: местоположение, время и т.д.); 4) на управлении мобильным контентом (Mobile content management, MCM) – наборе сервисов и технологий управления распространением контента с помощью мобильных устройств, в том числе: а) принудительное применение политик безопасности (не зависящих от устройства ключи шифрования, аутентификации, правил обмена файлами, на копирование и вставку) для отдельных файлов; б) соблюдение правил для распространения, замены и удаления на основе push-файлов; в) мобильную совместимость для сторонних систем управления правами, а также инфраструктуры защиты корпоративных данных (DLP) и корпоративных цифровых прав (EDRM); 5) на политике сдерживания (Containment) – наборе сервисов и технологий инкапсуляции MDM, МАМ, MIM и / или МСМ в специальные изолированные от персональных приложений и других пользователей среды.

Объём продаж на мировом рынке решений ЕММ оценивался в 2022 году в 1,4 млрд, долл., предполагается, что в 2022 году он увеличится до 1,8 млрд, долл., а к концу 2021 года составит 3,8 млрд, долл.[13]

При этом отмечается, что функциональные возможности ЕММ- решений при первичном внедрении востребованы заказчиками в среднем не более чем на 10%, наиболее продвинутые заказчики развертывают ЕММ-решения, обладающие 30-40% функциональных возможностей. Модули MIM, МСМ и Containment внедряет небольшое количество компаний, а все пять модулей – единицы[14].

Использование работниками, деловыми партнерами и другими пользователями собственных мобильных устройств при работе с корпоративными ресурсами (далее – консьюмеризация ИТ, Consumerization of IT) несет дополнительные выгоды для бизнеса: экономию затрат на приобретение и обслуживание мобильных устройств, обеспечение более надежной защиты личной конфиденциальной информации и повышение мобильности работников[15]. Предоставление возможности доступа к актуальной корпоративной информации из любого места обеспечивает высокую эффективность операционной деятельности, удобство работы и как следствие удовлетворенность сотрудников работой[16].

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

Консьюмеризация ИТ может осуществляться в различных режимах: BYOD («Bring Your Own Device», «принести своё собственное устройство»), BYOT («Bring Your Own Technology», «принесите свою собственную технологию»), BYOPC («Bring Your Own Personal Computer», «принесите свой собственный персональный компьютер») и BYOP («Bring Your Own Phone», «принесите свой собственный телефон»).

Ключевые тенденции, связанные с применением BYOD, были исследованы аналитиками Crowd Research Partners[17]. В качестве причин, побуждающих предприятия использовать BYOD, выступают факторы, связанные с персоналом: повышение мобильности сотрудников (63% от общего числа респондентов), рост удовлетворения сотрудников (56%) и рост производительности (55%) сотрудников. Следует отметить, что данные факторы оказались важнее, чем снижение затрат (47%), безопасность (39 %) и конфиденциальность информации сотрудников (12%).

Подавляющее большинство организаций предоставляют BYOD работникам (76% от общего числа респондентов), а также подрядчикам – 23%, партнёрам – 16% и клиентам – 14%.

Самым популярным типом мобильных приложений, включенным в BYOD, является управление электронной почтой, календарем и контактами (84% от общего числа респондентов). Доступ к корпоративным документам предоставляют 45% респондентов, доступ к корпоративной сети – 43%, доступ к видеоконференциям – 35%, доступ к файлам – 33%, доступ к приложениям SaaS – 28%, доступ к удаленному рабочему столу – 14% и т.д.

Apple iOS и Google Android лидируют среди поддерживаемых мобильных платформ BYOD (соответственно 77% и 75% от общего числа респондентов).

Уровень организационной поддержки пользователей BYOD варьируется. Специальную поддержку без выделения в отдельный бизнес-процесс предоставляют 32% организаций, ограниченную поддержку – 27%, не оказывает никакой поддержки (возлагают ответственность за поддержку на собственников мобильных устройств) – 23%, полную поддержку осуществляет 15%.

Средства управления мобильными устройствами (MDM) использует 43% организаций, средства Endpoint Security Tools- 28% и Network Access Controls (NAC) – 27%.

Проблемы безопасности мобильных устройств (на примере мобильных устройств под управлением операционной системы Android).

Обеспечение информационной безопасности является серьезной проблемой использования мобильных устройств, как в частной жизни, так и в бизнесе.

Следует отметить, что 70,7% пользователей мобильных устройств, так или иначе, хранят на своем мобильном устройстве конфиденциальную информацию (большинство пользователей (68,1%) вносят в свои мобильные устройства личную информацию (персональные данные и/или приватную информацию своих друзей и коллег, а также личную и/или деловую переписку); корпоративные конфиденциальные документы и интеллектуальную собственность компании хранят 16,5% и 14,9% соответственно, 12,2% используют портативную технику для хранения приватных данных клиентов и/или партнеров фирмы)[18].

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

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

В дальнейшем мы акцентируем наше внимание на мобильных устройствах, которые находятся под управлением операционной системы Android, как наиболее распространённых на данный момент.

Согласно данным статистики CVE Details[19] за 2022 год Android стал лидером по числу обнаруженных уязвимостей (523 ошибок против 125 в 2022 году). В основном данные уязвимости были связанны повышением привилегий (39,8%) и отказа в обслуживании (25%). Также важно отметить, что среди 523 обнаруженных ошибок, 254 имели рейтинг уязвимости CVSS (Common Vulnerability Scoring System) на уровне 9 баллов или выше, что на практике означает очень высокую степень опасности. За 2022 год было выявлено 841 уязвимость (рисунок 35).

Растет число вредоносных приложений, эксплуатирующих различные уязвимости ОС Android. Так, компания Kaspersky Lab по итогам 2022 года заявила о росте более чем в три раза числа выявленных вредоносных приложений (8,5 млн. установленных пакетов против 2,5

млн. в 2022 году), эксплуатирующих различные уязвимости ОС Android. Кроме того, было заявлено о предотвращении более чем 50 миллионов атак в месяц с их использованием к концу 2022 года473 474. В 2022 году количество вредоносных приложений для Android за год увеличилось на 6% и составило 27% от всех выявленных вредоносных

, ~474

приложении для всех платформ и всех приложении .

Количество выявленных уязвимостей ОС Android и iOS

Рисунок 35. Количество выявленных уязвимостей ОС Android и iOS

В 2022 году из-за зараженных троянцами мобильных приложений пользователи столкнулись с агрессивной рекламой, атаками вымогателей и кражей денег посредством SMS- и WAP-биллинга. В мобильных вредоносных приложениях использовались новые приемы для обхода защитных технологий[20][21][22].

Многие зараженные приложения были доступны во внушающих доверие магазинах, таких как Google Play Store47 . Например, троянец Dvmap (Trojan.AndroidOS.Dvmap.a), внедрявший вредоносный код в системные библиотеки, скачивался из магазина Google Play более 50 000 раз. Троянцем Ztorg было заражено почти 100 приложений, одно из которых было установлено пользователями из Google Play Store более миллиона раз. Все эти приложения получали root-права, используя старые и давно известные уязвимости на устройствах, где не были установлены обновления безопасности.

Отсюда можно сделать не утешительный вывод: существует определенная проблема с обновлением ОС Android на мобильных устройствах конечных пользователей, которая препятствует устранению найденных уязвимостей. Причина появления данной проблемы заключается в том, что многие компании партнеры Google – производители мобильных устройств не заинтересованы в своевременном обновлении свои продуктов, несмотря на ежемесячные пакеты исправлений, которые выпускает Google. По приблизительным оценкам, 68% всех устройств Android не имеет возможности получить обновления[23][24].

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

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

Обзор встроенных и сторонних механизмов защиты в ОС Android.

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

ОС Android представляет из себя модульную операционную систему, состоящую из отдельных взаимосвязанных относительно простых модулей. Особенности архитектуры ОС Android определяются спецификой её применения: установка на мобильные устройства разных производителей.

Основными модулями ОС Android являются: ядро (Linux Kernel), уровень аппаратных абстракций HAL (Hardware Abstraction Layer), набор библиотек и среда исполнения (исполняющая система), каркас программ (Java API FrameWork) и уровень системных и пользовательских приложений. Модули перечислены в порядке следования от нижнего уровня архитектуры к верхнему.

Ядро (Linux Kernel) является основой модульного строения операционной системы и координирует выполнение большинства её базовых операций: управление памятью, энергосистемой и процессами, обеспечение безопасности, работу с сетью и драйверами и т.д.

Ядро ОС Android представляет собой «усеченное» ядро ОС Linux, которое дополнено возможностями, необходимыми для эффективного управления питанием и ресурсами (так как это требуется для мобильных устройств, которые обычно работают от своего аккумулятора).

Уровень аппаратных абстракций (HAL) представляет собой созданный производителями мобильных устройств слой программного обеспечения, который скрывает (или абстрагирует) особенности и различия аппаратных компонентов от верхних уровней операционной системы.

HAL состоит из нескольких библиотечных модулей, каждый из которых реализует интерфейс для определенного типа аппаратного омпонента (например, камера, bluetooth и т.д.).

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

Среда исполнения (Android Runtime) включает в себя библиотеки ядра, за счет которых обеспечивается значительная часть низкоуровневой функциональности и виртуальную машину, позволяющую запускать приложения, реализованные на языке Java.

Библиотеки ядра содержат базовые библиотеки Java, необходимые для работы Java API Framework и запуска приложений.

Архитектура среды исполнения реализована таким образом, что каждое приложение запускается в своем экземпляре виртуальной машины, что позволяет обеспечить их изоляцию друг от друга (если сработает код с ошибками или вредоносное программное обеспечение, то они не смогут вывести из строя ОС).

Для устройств под управлением Android до версии 5.0 для выполнения программ, написанных на языке программирования Java, использовалась регистровая виртуальная машина Dalvik, оптимизированная для низкого потребления памяти. Для устройств под управлением Android версии 5.0 и выше- более быстрый ART (Android Runtime).

Для исполнения программы на виртуальной машине выполняется компиляция Java-классов в исполняемые файлы с расширением .dex, которые включаются в состав пакета установки .арк.

Dalvik использует JIT-компиляцию (во время выполнения приложения), ART компилирует приложение во время его установки. Для обеспечения обратной совместимости ART использует тот же байт- код, что и Dalvik.

Набор библиотек (Native C/C Libraries) предназначен для построения кода многих базовых компонентов и сервисов ОС Android, таких как ART и HAL.

Библиотеки выполняют следующие функции: 1) предоставляют реализованные алгоритмы для вышележащих уровней; 2) обеспечивают поддержку файловых форматов; 3) осуществляют кодирование и декодирование информации; 4) выполняют организацию отображения графики и т.д.

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

Java API Framework- программная платформа, определяющая структуру программной системы. Диктует правила построения архитектуры системных и пользовательских приложений.

Представляет собой строительные блоки необходимые для создания приложений для Android, что упрощает их разработку, за счет повторного использования основных системных компонентов и сервисов.

Java API Framework включает в себя: 1) макеты элементов пользовательского интерфейса (кнопок, полей, списков и т.д.) (View System); 2) различные менеджеры (менеджер ресурсов (Resource Manager,), обеспечивающий доступ к таким ресурсам как рисунки, шрифты, цветовые палитры т. д.; диспетчер уведомлений (Notification

Manager), который позволяет всем приложениям отображать пользовательские предупреждения в строке состояния; диспетчер активностей (Activity Manager), который управляет жизненным циклом приложений и т.д.); 3) поставщики контента (Content Providers), которые представляют собой стандартный интерфейс для объединения данных (например, из другого приложения) в одном процессе с кодом, который выполняется в другом процессе.

Уровень программ (приложений) представляет набор предустановленных базовых системных программ и прикладных программ пользователя, которые он может инсталлировать самостоятельно, используя, в том числе, встроенный облачный сервис с каталогом приложений.

Пользовательское приложение состоит из четырех видов компонентов (Activity, Service, Content provider, Broadcast receiver) и не содержит единой точки входа. Компоненты приложений взаимодействуют друг с другом с помощью специальных сообщений, называемых Intent.

Компоненты под названием Activity определяют пользовательский интерфейс. Как правило, используется один компонент Activity для описания одного экрана приложения. Activity может запустить другое Activity, передав параметры с помощью механизма Intent. Во время работы только одно Activity может работать и обрабатывать пользовательский ввод, остальные на это время остаются замороженными или уничтожаются, в зависимости от выбранного режима работы приложения.

Компоненты под названием Service производят фоновую обработку. Когда Activity нужно выполнить какую-то операцию, например загрузку файла или проигрывание музыки, и продолжить работу, когда пользователь перешел в другое приложение или свернул текущее, приложение запускает сервис, цель которого – выполнение этой операции. Разработчики могут использовать Service в качестве приложения- демона, стартующего во время загрузки системы. Компонент Service, как правило, поддерживает RPC (Remote Procedure Call), поэтому другие компоненты системы могут обращаться к нему.

Компонент Content provider сохраняет и обменивается данными, используя интерфейс реляционных баз данных. Каждый Content provider содержит уникальный URI для данных и обрабатывает запросы к нему в виде очередей SQL (Select, Insert, Delete).

Компоненты Broadcast receiver выступают в роли ящиков для сообщений от других приложений.

Для запуска компонента приложения системе Android необходимо знать, что компонент существует. Для этого она читает файл AndroidManifest.xml приложения (файл манифеста). В этом файле, который должен находиться в корневой папке приложения, должны быть объявлены все компоненты приложения.

Помимо объявления компонентов приложения, манифест служит и для других целей, среди которых: 1) указание всех полномочий пользователя, которые требуются приложению, например разрешения на доступ в Интернет или на чтение контактов пользователя; 2) объявление минимального уровня API, требуемого приложению, с учетом того, какие API-интерфейсы оно использует; 3) объявление аппаратных и программных функций, которые нужны приложению или используются им, например камеры, службы Bluetooth или сенсорного экрана; 4) указание библиотек API, с которыми необходимо связать приложение (отличные от API-интерфейсов платформы Android), например библиотеки Google Maps; и другое.

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

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

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

В реализации Android эта философия в некоторой степени непосредственно выражена через идентификаторы пользователей. Когда устанавливается приложение Android, для него создается новый уникальный пользовательский идентификатор системы Linux (UID) и весь его код запускается с привилегиями этого пользователя. Используемые в Linux идентификаторы пользователей создают, таким образом, песочницу для каждого приложения с их собственной изолированной областью файловой системы точно так же, как они создают песочницы для пользователей на настольной системе. Иными словами, в ОС Android используется уже существующая в Linux возможность, но новым способом. В результате достигается более надежная изоляция.

Таким образом, безопасность приложений в Android выстраивается вокруг UID-идентификаторов. В Android предопределено несколько стандартных UID-идентификаторов для низкоуровневых частей системы, но большинство приложений получают UID динамическим путем при первой начальной загрузке или во время установки из диапазона UID идентификаторов приложений. Например, наиболее распространенные UID-назначения в Android являются: 0 – Root, 1000- основная система (процесс system_server), 1001- телефонные службы и др.

Однако у приложения есть варианты предоставления своих данных другим приложениям и доступа к системным службам: 1) приложение может запросить разрешение на доступ к данным устройства, например к контактам пользователя, SMS-сообщениям, подключаемой карте памяти (SD-карте), камере, Bluetooth и др.; 2) двум приложениям можно назначить один идентификатор пользователя Linux (в этом случае каждый из них сможет обращаться к файлам другого приложения и для экономии ресурсов системы также можно сделать так, чтобы приложения с одинаковым идентификатором пользователя выполнялись в одном процессе Linux и использовали одну виртуальную машину).

Широко известной формой управления доступом в ОС Android являются разрешения, даваемые приложениям. Разрешениями называются четко определенные возможности, которые могут быть предоставлены приложению во время его исполнения.

Начиная с Android API 23, разрешения бывает двух типов: обычные (normal) и опасные (dangerous). Обычные разрешения – это те, которые не несут прямой угрозы конфиденциальности пользователя. К ним относятся разрешения на доступ к интернету и сетевым соединениям, доступ к беспроводным модулям, управлению оповещениями, звуком и т.д. К опасным относятся разрешения на доступ к календарю, камере, контактам, местоположению, микрофону, звонкам, смс, датчикам, а также разрешение на чтение и запись данных во внешнюю память устройства.

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

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

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

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

Единственный способ взаимодействия процессов в ОС Android заключается в применении механизма Binder IPC (механизма межпроцессного взаимодействия), который предоставляет возможность синхронно и асинхронно запрашивать методы удаленных объектов так, будто они локальные, обмениваться файловыми дескрипторами между процессами, получать автоматическое оповещение в случае, если IPC определенного процесса был прерван, и т.д.

Взаимодействие между процессами организовано по синхронной клиент-серверной модели. Клиент инициирует соединение и ждет ответа со стороны сервера, то есть взаимодействие между клиентом и сервером происходит последовательно. Это позволяет разработчику вызывать удаленные методы, как будто они находятся в одном процессе.

Все сторонние и встроенные системные программы в ОС Android для мобильных устройств должны быть подписаны их разработчиком; так как это АРК файлы с расширением формата Ява пакета JAR, то метод подписания кода используется на основе JAR подписания. ОС использует подпись АРК для того, чтобы убедиться, что обновления для программы приходят от того же автора, и для того, чтобы установить доверительные отношения между программами. Обе эти функции безопасности реализуются путем сравнения сертификатов подписи.

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

Многопользовательский режим предоставляет возможность использовать устройство нескольким пользователями и при этом у каждого присутствует свое отведенное пространство, ресурсы, которые недоступны остальным.

Мандатное управление доступом является функцией SELinux и вносит дополнительный уровень безопасности в ОС для мобильных устройств. Данный уровень конфигурируется с помощью общесистемных политик безопасности, он обеспечивает дополнительные возможности управления тем, как пользователи и программы получают доступ, как к собственным, так и предоставляемым системой данным, причем это делается в фоновом режиме для пользователей. В техническом плане данная функция позволяет создавать политики, определяющие виды взаимодействий, разрешенные и не разрешенные для каждого процесса в рамках общего контекста безопасности. SELinux настроена на работу в факультативном режиме, в котором не обеспечивается применение политик, а нарушения только заносятся в журнал[25].

Системные обновления предполагают получение регулярных обновлений ОС Android. Проверенный загрузчик предполагает приоритетное получение приложений через облачный сервис Google Play, где приложение проходит процедуру проверки безопасности.

В качестве сторонних механизмов защиты ОС Android можно привести использование антивирусных программ.

Обзор, анализ и классификация угроз и уязвимостей ОС Android.

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

Предпосылками к появлению угроз Android являются: открытость платформы, фрагментация платформы и человеческий фактор, основными угрозами – вирусы и вредоносное ПО, использующее те или иные уязвимости платформы[26].

Уязвимости ОС Android могут быть классифицированы по нескольким признакам: по месту возникновения (проявления); по типам недостатков ИС (причинам возникновения); по характеру последствий от реализации атак; по версии ОС и т.д.

По месту возникновения (проявления) уязвимостей различают: уязвимости компонентов операционной системы (Linux Komel, HAL, Native C/C Libraries, Android Runtime, Java API Framework, System Apps), уязвимости пользовательских приложений и их внешних компонентов (сетей, интернет-серверов, баз данных)481 482. Структура уязвимостей ОС Android (по месту возникновения) приведена на рисунке 36.

Места возникновения уязвимостей ОС Android

Рисунок 36. Места возникновения уязвимостей ОС Android48

Tan D. J. J. et al. Securing Android: A Survey, Taxonomy, and Challenges // ACM Computing Surveys (CSUR). 2022. Vol. 47. № 4. P. 58.

4 2 Mohammed J. Khan. Mobile App Security-Audit Framework. [Электронный ресурс]. // SACA Journal Volume 4, 2022.

Уязвимости Linux Komel присущи всем ОС, основанным на той же версии ядра Linux, что и ОС Android. Эксплойты, использующие уязвимости в ядре, могут получить данные пользователя или права администратора системы. Повысив привилегии процесса до прав администратора системы, вредоносная программа может отключить систему безопасности Android, вставить в существующие программы вредоносный код и установить руткит. Примеры уязвимостей повышения привилегии описаны в ряде научных и прикладных работ

Проведенный анализ показывает, что на данный компонент приходится 30% всех выявленных уязвимостей в ОС Android. При этом около половины уязвимостей данного компонента может быть использованы без помощи пользователя, при этом 65% их них могут быть использованы злоумышленником удаленно (общая доля таких уязвимостей составляет около 8% от всех уязвимостей ОС Android).

Уязвимости Linux Komel имеют высокую степень влияния на конфиденциальность (87%,), целостность (79%.) и доступность информации (77%), размешенной на мобильном устройстве. Критическими для безопасности являются 20% уязвимостей, высокую опасность имеют еще 60%.

Уязвимости HAL обусловлены добавлением в ОС Android протоколов, модулей и драйверов для своих устройств, в которых также могут быть уязвимости.

Соответствующие уязвимости можно эксплуатировать при непосредственной близости к устройству или при наличии физического доступа к устройству.

Примерами таких атак служат атака типа «отказ в обслуживании» на технологию Wi-Fi Direct, кража данных кредитных карт с помощью NFC, исполнение удаленного кода через Bluetooth, установка вредоносного приложения без ведома пользователя через adb с помощью механизма бэкапов и т.д.

Проведенный анализ показывает, что на данный компонент приходится 24% всех выявленных уязвимостей в ОС Android. При этом 85% уязвимостей данного компонента могут быть использованы только при участии пользователя. [27][28][29]

Уязвимости HAL имеют высокую степень влияния на конфиденциальность (87%,), целостность (83%.) и доступность информации (98%), размешенной на мобильном устройстве. Критическими для безопасности являются 6% уязвимостей, высокую опасность имеют еще 78%.

Уязвимости Native C/C Libraries, как привило, связаны с широко известными уязвимостями утечек памяти в низкоуровневых языках (например, в С и C )[30].

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

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

Проведенный анализ показывает, что на данный компонент приходится 25% всех выявленных уязвимостей в ОС Android. При этом 25% уязвимостей данного компонента могут быть использованы только без участия пользователя (в т.ч. 75% с применением удаленного доступа).

Уязвимости Native C/C Libraries имеют высокую степень влияния на конфиденциальность (68%,), целостность (55%.) и доступность информации (77%), размешенной на мобильном устройстве. Критическими для безопасности являются 10% уязвимостей, высокую опасность имеют еще 55%.

Уязвимости Android Runtime относятся как Dalvik так и ART, который пришел ему на смену. Также к данной категории относятся уязвимости, связанные с взаимодействием между различными компонентами приложений.

Анализ данных уязвимостей приведен в следующих работах[31][32] 489. Проведенный анализ показывает, что на данный компонент приходится менее 1% всех выявленных уязвимостей в ОС Android.

Уязвимости Java API Framework также занимают незначительную долю в общем их количестве (не более 5%). При этом высокоопасных уязвимостей по данным проведенного анализа не более 40% из них.

Уязвимости системных приложений обусловлены в первую очередь выпуском производителями различных мобильных устройств, встроенных в ОС приложений и сервисов.

Например, в октябре 2022 года был обнаружен скрытый бэкдор в прошивках Foxconn. Анализ системных сервисов, приведенный в статье49 , показывает, что в них содержится от 65 до 85% уязвимостей конкретных устройств, обнаруженных во всей системе. К тому же стоит отметить, что уязвимости, которые были обнаружены и исправлены в основной ветке Android, могут долгое время оставаться в ветках производителей устройств[33][34][35].

Проведенный анализ показывает, что на данный компонент приходится 15% всех выявленных уязвимостей в ОС Android. При этом почти 100% уязвимостей данного компонента могут быть использованы только с участим пользователя. При этом 45% уязвимостей системных приложений являются высокоопасными.

Уязвимости пользовательских приложений и их внешних компонентов обусловлены уровнем качества разработки и тестирования мобильных продуктов. К этой категории уязвимостей относится известный список Mobile OWASP-10492: 1) некорректное использование особенностей платформы, обход ограничений или неиспользование систем контроля безопасности платформы (уязвимость затрагивает системы контроля безопасности, которые являются частью мобильной операционной системы); 2) небезопасное хранение информации и непреднамеренные утечки данных; 3) небезопасная передача данных (недостаточное подтверждение достоверности источников связи, неверные версии SSL недостаточная проверка согласования, передача чувствительных данных в открытом виде (cleartext) и другие); 4) небезопасная аутентификация конечного пользователя или неверное управление сессиями (отсутствие обязательной идентификации пользователей, отсутствие проверки сессий, недостатки в управлении сессиями, слабая криптографическая стойкость); 5) в коде используются криптографические алгоритмы для передачи чувствительной информации, которые в некоторых случаях могут оказаться недостаточным средством защиты (ненадлежащее использование криптографических элементов слабой или недостаточной криптостойкости); 6) небезопасная авторизация (отсутствие обязательной проверки подлинности пользователей, недостатки процесса авторизации: валидация на стороне клиента, принудительный просмотр и т.д.); 7) низкое качество клиентского кода (недостаточный контроль входных данных, вызванный проблемами реализации технологий кода в клиентской части приложения: переполнение буфера, format string уезвимости, а также другие ошибки на уровне кода); 8) модификация кода (изменение исполняемых файлов, локальных ресурсов, перехват вызовов сторонних процессов, подмена runtime методов и динамическая модификация памяти); 9) обратная разработка (анализ бинарных файлов для определения исходного кода, библиотек, алгоритмов и других данных, что может быть использовано для обнаружения уязвимостей приложения, извлечения критичной информации, ключей шифрования или интеллектуальной собственности); 10) скрытая функциональность (включение разработчниками в код приложения скрытых функциональных возможностей, бэкдоров или другие механизмом, случаное укаазние паролей в комментариях к коду, случайное отключение двухфакторной аутентификации во время тестирования и т.д.). Многие из приведенных и им подобных уязвимостей рассмотрены в ряде работ493.

Большинство критических и опасных уязвимостей обычно находятся в мобильном бэкэнде (например, в веб-сервисах и API), а не внутри мобильного приложения.

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

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

По характеру последствий от реализации атак различают уязвимости, связанные с: удаленным выполнением кода – 21%, переполнением буфера памяти – 19%, получением привилегий – 18%, отказом в обслуживании – 15 %, раскрытием информации – 14%, повреждением памяти- 7%, обходом стандартных процедур- 6% и др. (рисунок 37)[19].

Уязвимости по характеру последствий от реализации атак

Рисунок 37. Уязвимости по характеру последствий от реализации атак

ОС Android развивается: в настоящий момент используются следующие версии продукта (таблица 12). Распределение уязвимостей ОС Android по версиям приведено на рисунке 38.

Уровень воздействия большинства уязвимостей ОС Android на основные составляющие информационной безопасности (доступность, конфиденциальность, целостность информации) можно охарактеризовать как высокий (рисунок 39).

Таблица 12

495

Статистика использования версий ОС Android (январь 2022 года)

Версия

Наименование

Год

Доля

2.3.3 – 2.3.7

Gingerbread

2022

0,4%

4.0.3 – 4.0.4

Ice Cream Sandwich

2022

0,5%

4.1.x, 4.2.x, 4.3

Jelly Bean

2022

5,6%

4.4

KitKat

2022

12,8%

5.0

Lollipop

2022

5,7%

5.1

Lollipop

2022

19,4%

6.0

Marsnmallow

2022

28,6 %

7.0

Nougat

2022

21,1 %

7.1

Nougat

2022

5,2%

8.0

Oreo

2022

0,5%

8.1

Oreo

2022

0,2%

Распределение уязвимостей ОС Android по версиям

Рисунок 38. Распределение уязвимостей ОС Android по версиям

Распределение уязвимостей ОС Android по уровню воздействия на основные составляющие информационной безопасности (доступность, конфиденциальность и целостность информации)

Рисунок 39. Распределение уязвимостей ОС Android по уровню воздействия на основные составляющие информационной безопасности (доступность, конфиденциальность и целостность информации)

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

ОС Android для мобильных устройств обладает хорошо организованными защитными механизмами, но имеет ряд уязвимостей, что позволяет злоумышленникам получить несанкционированный доступ к ней.

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

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

Читайте про операторов:  Код 902: какой оператор и регион

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *