November 4

Безопасность мобильных устройств: интервью с экспертом компании Positive Technologies

Приветствуем Вас на канале AUTHORITY.

Сегодня у нас в гостях руководитель отдела перспективных технологий компании Positive Technologies - Николай Анисеня.

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

А кроме этого эксперт поделился советами для начинающих специалистов.

Authority:

Добрый день. Что ж, давайте приступим.

Расскажите пару слов о себе, про свой путь, как пришли в ИБ и выбрали область мобильной безопасности?

Николай:

Меня зовут Николай Анисеня, я руковожу отделом перспективных технологий в компании Positive Technologies, занимаюсь безопасностью мобильных приложений. Об этом и не только пишу в тг-канале @xyuriti.
Программированием я увлекся еще в подростковом возрасте: мы с другом модифицировали различные игровые файлы — переозвучивали, меняли текст (это в принципе все, на что нам хватало навыков в 12 лет).
Позже я узнал, что есть специальность “компьютерная безопасность”, и решил, что однозначно хочу поступить именно туда - притягивал романтический образ хакера. Уже будучи студентом, познакомился с ребятами из студенческой CTF-команды SiBears, которые каждую неделю устраивали лекции и тренировки по практической безопасности. Стал ходить к ним на занятия, даже было дело ночевал в универе во время соревнований (большинство соревнований тогда проводились днем в США, а у нас в Сибири это была глубокая ночь и мы могли поучаствовать в них онлайн).
Через 2 года я вошел в основной состав команды и поехал на свои первые очные соревнования RuCTF в Екатеринбург. Там познакомился с русскоязычным сообществом ИБ, узнал о профессии пентестера и мои цели на будущее скорректировались – я решил стать специалистом в области offensive security.
Еще через пару лет при помощи товарищей по команде SiBears получил приглашения на свои первые фриланс-проекты по пентесту и анализу защищенности веб-приложений. И к окончанию универа у меня уже был некоторый опыт в пентесте, аудите внутрянки, веба и даже мобилок.
Когда в 2014 году в Томске компания Positive Technologies решила открыть свой филиал, мне предложили попробовать пройти собеседование на хакера, но вакансий на веб в компании не оказалось, зато были вакансии на мобильные приложения. Я решил попробовать, за пару недель подготовился и прошел. Так я оказался в Positive Technologies, где и до сих пор работаю в теме мобилок.

Authority:

Тернистый путь получился. Давайте поговорим о мобильной безопасности. Какие основные угрозы безопасности существуют для мобильных устройств по вашему мнению? Какие наиболее часто встречаются при исследованиях?

Николай:

Опираясь на личный опыт, а не на какие-то статистические данные, могу назвать основные слабые места мобильных приложений:
·        как правило, API мобильных приложений защищены слабее, чем API веб-приложений;
·        по моим ощущениям, 90% мобильных приложений вообще никак не защищают свой код от анализа, а это необходимый этап поиска уязвимостей, создания клонов или просто изучения тонкостей реализации тех или иных функций приложения;
·        обработка deeplink – наиболее распространенная точка входа для атаки на приложения.
Что чаще всего встречается при исследованиях, так это, как правило, не самые опасные уязвимости. Рассмотрим тут только уязвимости клиентской части мобильного приложения:
·        различные недостатки конфигурации: разрешен бэкап, захардкоженные ключи/токены/адреса/пароли;
·        отсутствие защиты от анализа кода: запуск на устройствах с jailbreak/root, возможность перепаковки;
·        хранение чувствительных данных, извлечь которые можно только при наличии root/jailbreak или дополнительных уязвимостей.
Все это уязвимости низкого или информационного уровня риска.
Все что касается более интересных багов — почти всегда что-то уникальное, состоящее из нескольких недостатков и требующих нескольких техник для эксплуатации. Обычно это уязвимости, связанные с межпроцессным взаимодействием.

Authority:

А какие вызовы и задачи в области мобильной безопасности вы считаете наиболее интересными и хотели бы исследовать их в будущем?

Николай:

С точки зрения атакующего, мне больше всего интересно исследовать hidden api / private api — это те функции ОС, которыми может воспользоваться приложение, но они слабо задокументированы и задуманы для использования системными приложениями. Они есть и в Android, и в iOS. Все это может сильно пополнить арсенал техник, с помощью которых можно докручивать различные недостатки до полноценных цепочек эксплуатации. Это то, что может продвинуть эту область сильно вперед.
С точки зрения безопасности приложений я понимаю, что большое упущение — это отсутствие применения даже элементарных техник защиты кода на практике. По опыту багхантеров (специалистов по поиску уязвимостей) могу сказать, что стена из более-менее сносной защиты кода сильно снижает интерес атакующего к конкретному приложению, и он с большей вероятностью переключится на какое-то другое приложение. Штурмуют эти стены только самые замотивированные, что не может не отражаться на стоимости атаки. Поэтому с моей точки зрения огромный нереализованный потенциал защиты мобилок лежит именно в области применения протекторов мобильных приложений.

Authority:

Немного коснемся корпоративной среды.

Какие на ваш взгляд риски, связанные с использованием мобильных устройств для доступа к корпоративным ресурсам, наиболее актуальны в настоящее время?

Николай:

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

Authority:

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

Актуальны ли эти атаки для мобильных устройств?

Николай:

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

Authority:

Насколько реален сценарий получения первичного доступа к инфраструктуре компании через эксплуатацию мобильного устройства?

Николай:

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

Authority:

Расскажите про инструменты и технологии, которые вы используете для тестирования безопасности мобильных устройств?

Николай:

Думаю, как и все. Декомпиляторы: jadx, hopper disassembler, IDA Pro, apktool, androguard. Средства для динамической инструментации: frida, lsposed. Для поиска уязвимостей в API приложений большинство использует burp suite. Ну а далее идут самописные инструменты поверх всего этого или какие-то ситуативные плагины и проекты на гитхабе — строго под задачу.

Authority:

Поговорим немного про ИИ. Какие методы атак с использованием ИИ вам встречались? Можете рассказать о своем опыте работы с технологиями ИИ в контексте мобильной безопасности?

Николай:

Считаю, что у ИИ, в частности — больших языковых моделей (LLM) — огромный потенциал в анализе кода. Они уже могут находить несложные уязвимости. А еще очень помогают в реверсе. Вот случай из личного опыта. Как-то в мобильном приложении я обнаружил зашитый токен от некоего сервиса, который ранее не встречал. Потратил пару часов на чтение документации и реверс, но так и не понял, как мне с помощью этого токена хоть что-то достать. На помощь пришел chatgpt, который по коду из jadx написал мне команду curl, и уже через нее я смог проэксплуатировать уязвимость.

Authority:

Встречались ли вам заложенные бэкдоры, намеренно ослабленное шифрование или что-то подобное?

Николай:

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

Authority:

Насколько сейчас реально на не рутованном устройстве получить полный контроль? Это происходит в результате эксплуатации бинарных или логических уязвимостей?

Николай:

Думаю, такие уязвимости присутствуют, но массово такие эксплойты не гуляют по интернету. И кажется все дело в том, что zero-click исполнение кода для Android и iOS стоит сейчас 2 и 1.5 миллиона долларов соответственно. Вероятно это побуждает создателей эксплоитов иногда не делать свои наработки публичными, а продавать их за хорошие деньги своеобразным брокерам уязвимостей.

Authority:

В мире разработки вредоносного ПО существует термин "бесфайловые атаки". Реально ли провести что-то подобное и закрепиться на мобильной системе без установки дополнительного приложения?

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

Николай:

Насколько я понимаю, речь идет о вредоносах, которые существуют только в оперативной памяти. Сам я с такими атаками не сталкивался, но могу предложить несколько сценариев:
·        динамическая загрузка кода. Приложение загружает часть кода по сети, а атакующий может повлиять на это через уязвимость: небезопасная передача данных (MitM) или передать URL на загрузку вредоносного кода с помощью deeplink;
·        блиц-приложения или App Clips (iOS) и Instant Apps (Android) — это приложения, которые запускаются без установки. В этом случае скачивается и запускается ровно та часть приложения, которая необходима для выполнения определенного действия: например, оплата парковки. Далее это приложение действует уже как приложение, установленное на устройстве, хоть и с урезанными правами.
Хотя реальных случаев, конечно, я привести не могу.

Authority:

Насколько сейчас полезны антивирусы на мобильных устройствах?

Николай:

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

Authority:

Не могли не пройти мимо этого вопроса. Что безопаснее - IOS или Android?

Николай:

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

Authority:

Пара слов о багбаунти.

Участвовали или почему нет, расскажите о своем опыте? Или расскажите о своей первой детектированной баге?

Николай:

Раньше участвовал. Не очень успешно, но и не совсем печально. Самая большая выплата была от Reddit - $3750 за уязвимость в Android-приложении, позволяющей угонять аккаунты через модификацию файлов в общедоступной директории.
Самая первая уязвимость была в приложении Instagram[1] и в целом уязвимостью не являлась. В разделе Terms and Conditions соглашение открывалось в WebView по http (без шифрования), из которого можно было выйти на произвольный веб-сайт. Открытие произвольного сайта внутри WebView и так уязвимость с низкой степенью риска, так тут злоумышленнику надо было находиться в одной сети с жертвой, чтобы подменить страницу на свою в целях фишинга (в webview жертва не видит адреса страницы и думает, что взаимодействует с приложением, а не с сайтом внутри него). Но так как минимальное баунти у инсты было $500, столько мне и заплатили даже за такую слабую багу.

Authority:

Какое по вашему мнению будущее ждет мобильные устройства??

Николай:

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

Authority:

И по традиции 5 советов начинающим) как стать исследователем безопасности мобильных устройств?

Николай:

Начните с OWASP Top 10 Mobile
Если у вас есть понимание основ web-безопасности, 
будет сильно проще вкатиться в мобилки, начав с server-side
Осваивать iOS проще после Android, так как многие вещи сделаны 
по аналогии
Читайте дисклозы уязвимостей по мобильным приложениям, находите 
старые версии, где уязвимость присутствовала, и воспроизводите своими 
руками — так быстрее всего прокачаетесь
Читайте профильные блоги, например, PT SWARM (https://t.me/ptswarm)
и моего бывшего коллеги Сергея Тошина, который является топ-1 хакером
Android-приложений и основал свою компанию Oversecured 
(https://oversecured.com/), я сам у него многому научился.

Authority:

Большое спасибо за уделенное время и интересную беседу!

Сегодня у нас в гостях был руководитель отдела перспективных технологий компании Positive Technologies - Николай Анисеня.

А на этом всё!! Спасибо за внимание...

Подписывайтесь на наш телеграмм - канал AUTHORITY.


[1] Продукт компании Meta, признанной, в соответствии с законодательством Российской Федерации, экстремистской организацией, запрещенной в России