Безопасность мобильных устройств: интервью с экспертом компании Positive Technologies
Приветствуем Вас на канале AUTHORITY.
Сегодня у нас в гостях руководитель отдела перспективных технологий компании Positive Technologies - Николай Анисеня.
Мы поговорили с экспертом о безопасности мобильных устройств, о последних тенденциях и угрозах в области мобильной безопасности.
А кроме этого эксперт поделился советами для начинающих специалистов.
Добрый день. Что ж, давайте приступим.
Расскажите пару слов о себе, про свой путь, как пришли в ИБ и выбрали область мобильной безопасности?
Меня зовут Николай Анисеня, я руковожу отделом перспективных технологий в компании Positive Technologies, занимаюсь безопасностью мобильных приложений. Об этом и не только пишу в тг-канале @xyuriti.
Программированием я увлекся еще в подростковом возрасте: мы с другом модифицировали различные игровые файлы — переозвучивали, меняли текст (это в принципе все, на что нам хватало навыков в 12 лет).
Позже я узнал, что есть специальность “компьютерная безопасность”, и решил, что однозначно хочу поступить именно туда - притягивал романтический образ хакера. Уже будучи студентом, познакомился с ребятами из студенческой CTF-команды SiBears, которые каждую неделю устраивали лекции и тренировки по практической безопасности. Стал ходить к ним на занятия, даже было дело ночевал в универе во время соревнований (большинство соревнований тогда проводились днем в США, а у нас в Сибири это была глубокая ночь и мы могли поучаствовать в них онлайн).
Через 2 года я вошел в основной состав команды и поехал на свои первые очные соревнования RuCTF в Екатеринбург. Там познакомился с русскоязычным сообществом ИБ, узнал о профессии пентестера и мои цели на будущее скорректировались – я решил стать специалистом в области offensive security.
Еще через пару лет при помощи товарищей по команде SiBears получил приглашения на свои первые фриланс-проекты по пентесту и анализу защищенности веб-приложений. И к окончанию универа у меня уже был некоторый опыт в пентесте, аудите внутрянки, веба и даже мобилок.
Когда в 2014 году в Томске компания Positive Technologies решила открыть свой филиал, мне предложили попробовать пройти собеседование на хакера, но вакансий на веб в компании не оказалось, зато были вакансии на мобильные приложения. Я решил попробовать, за пару недель подготовился и прошел. Так я оказался в Positive Technologies, где и до сих пор работаю в теме мобилок.
Тернистый путь получился. Давайте поговорим о мобильной безопасности. Какие основные угрозы безопасности существуют для мобильных устройств по вашему мнению? Какие наиболее часто встречаются при исследованиях?
Опираясь на личный опыт, а не на какие-то статистические данные, могу назвать основные слабые места мобильных приложений:
· как правило, API мобильных приложений защищены слабее, чем API веб-приложений;
· по моим ощущениям, 90% мобильных приложений вообще никак не защищают свой код от анализа, а это необходимый этап поиска уязвимостей, создания клонов или просто изучения тонкостей реализации тех или иных функций приложения;
· обработка deeplink – наиболее распространенная точка входа для атаки на приложения.
Что чаще всего встречается при исследованиях, так это, как правило, не самые опасные уязвимости. Рассмотрим тут только уязвимости клиентской части мобильного приложения:
· различные недостатки конфигурации: разрешен бэкап, захардкоженные ключи/токены/адреса/пароли;
· отсутствие защиты от анализа кода: запуск на устройствах с jailbreak/root, возможность перепаковки;
· хранение чувствительных данных, извлечь которые можно только при наличии root/jailbreak или дополнительных уязвимостей.
Все это уязвимости низкого или информационного уровня риска.
Все что касается более интересных багов — почти всегда что-то уникальное, состоящее из нескольких недостатков и требующих нескольких техник для эксплуатации. Обычно это уязвимости, связанные с межпроцессным взаимодействием.
А какие вызовы и задачи в области мобильной безопасности вы считаете наиболее интересными и хотели бы исследовать их в будущем?
С точки зрения атакующего, мне больше всего интересно исследовать hidden api / private api — это те функции ОС, которыми может воспользоваться приложение, но они слабо задокументированы и задуманы для использования системными приложениями. Они есть и в Android, и в iOS. Все это может сильно пополнить арсенал техник, с помощью которых можно докручивать различные недостатки до полноценных цепочек эксплуатации. Это то, что может продвинуть эту область сильно вперед.
С точки зрения безопасности приложений я понимаю, что большое упущение — это отсутствие применения даже элементарных техник защиты кода на практике. По опыту багхантеров (специалистов по поиску уязвимостей) могу сказать, что стена из более-менее сносной защиты кода сильно снижает интерес атакующего к конкретному приложению, и он с большей вероятностью переключится на какое-то другое приложение. Штурмуют эти стены только самые замотивированные, что не может не отражаться на стоимости атаки. Поэтому с моей точки зрения огромный нереализованный потенциал защиты мобилок лежит именно в области применения протекторов мобильных приложений.
Немного коснемся корпоративной среды.
Какие на ваш взгляд риски, связанные с использованием мобильных устройств для доступа к корпоративным ресурсам, наиболее актуальны в настоящее время?
У мобильных устройств есть несколько свойств, делающих их идеальной целью для атаки на компанию через ее сотрудников:
· это устройство путешествует вместе с владельцем и подключается к различным сетям. Сетевой вектор атаки может быть применен в любой из них, не говоря уже о физическом. Это справедливо даже для случаев использования различных устройств для работы и личных целей;
· люди крайне редко разделяют рабочее и личное устройство, в большинстве случаев — это один и тот же девайс. На нем соседствуют корпоративные мессенджеры и пиратские игры, почта и соцсети. При наличии уязвимостей одни приложения могут атаковать другие внутри одного устройства;
· мобильный телефон нередко является роутером и может маршрутизировать трафик вредоносов в корпоративную сеть, если у вас установлен рабочий VPN. Банальное сканирование уже не выглядит чем-то сложным в этом случае;
· на мобильных телефонах почти нет мониторинга, сигнализирующего компании о вредоносной активности, особенно если эта активность проводится внутри устройства и не связана с сетью напрямую.
Насколько мне известно, закон не позволяет включать личные устройства сотрудников в скоуп для проведения пентеста. Однако этот закон совершенно точно не останавливает злоумышленников, и кто знает, как часто они пользуются подобными свойствами мобильных устройств для проведения атак на компании?
Сейчас наибольший урон бизнесу по всему миру приносят два вида вредоносного ПО: шифровальщики и стилеры (в контексте кражи данных, обладающих коммерческой тайной).
Актуальны ли эти атаки для мобильных устройств?
Я не специализируюсь на мобильных вредоносах, однако могу предположить, что бесконтрольный доступ к хранимым файлам на мобильном устройстве получить гораздо сложнее, чем на десктопах. Связано это с тем, что права на общедоступные хранилища (файлы, фото) выдаются отдельно друг от друга. Также существует изоляция внутренних хранилищ файлов приложения (контейнеризация).
Для схожего с десктопами импакта скорее всего нужен привилегированный доступ: root или jailbreak. Таких устройств в мире не много (по разным оценкам в разные года — от менее процента до 7% от общего числа устройств). Такие атаки работают за счет массовости: чем больше устройств поразили, тем больше жертв по итогу заплатят выкуп. Как видим, с массовостью могут быть проблемы.
Насколько реален сценарий получения первичного доступа к инфраструктуре компании через эксплуатацию мобильного устройства?
Такие случаи мне не известны, хотя наверняка они бывали, пусть и не случались массово. Сейчас никого не удивить работой на удаленке, как и работой с телефона. VPN, почта, мессенджеры, видеозвонки, прочие внутренние сервисы — все или часть таких приложений есть у каждого сотрудника даже небольшой компании со своей инфраструктурой. Как я уже говорил, в случае компрометации устройства или даже единичного приложения, телефон превращается в роутер, способный достучаться до корпоративной сети через включенный VPN — это как минимум сканирование сети.
Сами приложения для работы с документами, чатами, почтой и прочей корпоративной информацией тоже могут содержать уязвимости, через которые злоумышленник может получить доступ к данным или даже захватить корпоративный аккаунт. Повторюсь еще раз: хоть такие атаки мне кажутся правдоподобными, обнаружить их гораздо сложнее ввиду эксплуатации уязвимостей на стороне мобильного телефона в клиентской части приложений — такое сейчас просто не детектится.
Расскажите про инструменты и технологии, которые вы используете для тестирования безопасности мобильных устройств?
Думаю, как и все. Декомпиляторы: jadx, hopper disassembler, IDA Pro, apktool, androguard. Средства для динамической инструментации: frida, lsposed. Для поиска уязвимостей в API приложений большинство использует burp suite. Ну а далее идут самописные инструменты поверх всего этого или какие-то ситуативные плагины и проекты на гитхабе — строго под задачу.
Поговорим немного про ИИ. Какие методы атак с использованием ИИ вам встречались? Можете рассказать о своем опыте работы с технологиями ИИ в контексте мобильной безопасности?
Считаю, что у ИИ, в частности — больших языковых моделей (LLM) — огромный потенциал в анализе кода. Они уже могут находить несложные уязвимости. А еще очень помогают в реверсе. Вот случай из личного опыта. Как-то в мобильном приложении я обнаружил зашитый токен от некоего сервиса, который ранее не встречал. Потратил пару часов на чтение документации и реверс, но так и не понял, как мне с помощью этого токена хоть что-то достать. На помощь пришел chatgpt, который по коду из jadx написал мне команду curl, и уже через нее я смог проэксплуатировать уязвимость.
Встречались ли вам заложенные бэкдоры, намеренно ослабленное шифрование или что-то подобное?
Пару раз встречал неочевидный вход в дебаг-меню, в котором можно было перенастроить приложение. Самое опасное в такой перенастройке — указать свой сервер вместо оригинального. Считается ли это бэкдором — не знаю. Еще регулярно находили накрутку денег в банковских приложениях. Иногда эксплуатация была настолько простой, что невольно задумаешься, не специально ли оставили такую возможность? Но это также бездоказательно.
Насколько сейчас реально на не рутованном устройстве получить полный контроль? Это происходит в результате эксплуатации бинарных или логических уязвимостей?
Думаю, такие уязвимости присутствуют, но массово такие эксплойты не гуляют по интернету. И кажется все дело в том, что zero-click исполнение кода для Android и iOS стоит сейчас 2 и 1.5 миллиона долларов соответственно. Вероятно это побуждает создателей эксплоитов иногда не делать свои наработки публичными, а продавать их за хорошие деньги своеобразным брокерам уязвимостей.
В мире разработки вредоносного ПО существует термин "бесфайловые атаки". Реально ли провести что-то подобное и закрепиться на мобильной системе без установки дополнительного приложения?
Если да, и политика компании позволяет, расскажите об опыте обнаружения уязвимостей, приводящим к подобного рода атакам.
Насколько я понимаю, речь идет о вредоносах, которые существуют только в оперативной памяти. Сам я с такими атаками не сталкивался, но могу предложить несколько сценариев:
· динамическая загрузка кода. Приложение загружает часть кода по сети, а атакующий может повлиять на это через уязвимость: небезопасная передача данных (MitM) или передать URL на загрузку вредоносного кода с помощью deeplink;
· блиц-приложения или App Clips (iOS) и Instant Apps (Android) — это приложения, которые запускаются без установки. В этом случае скачивается и запускается ровно та часть приложения, которая необходима для выполнения определенного действия: например, оплата парковки. Далее это приложение действует уже как приложение, установленное на устройстве, хоть и с урезанными правами.
Хотя реальных случаев, конечно, я привести не могу.
Насколько сейчас полезны антивирусы на мобильных устройствах?
Да простят меня коллеги, которые занимаются антивирусами. Считаю, что на мобильных устройствах они практически бесполезны. Сигнатурный анализ еще может худо-бедно работать на Android, а вот в динамике отслеживать поведение приложений практически невозможно. Все дело в том, что мобильные ОС не дают столько привилегий приложениям, как это делают десктопные ОС.
Не могли не пройти мимо этого вопроса. Что безопаснее - IOS или Android?
И там, и там существуют уязвимости критичного уровня риска. И там, и там можно писать безопасный код. Но уязвимостей в самом Android и в приложениях под него находят больше просто ввиду открытости платформы и простоты анализа таких приложений.
Участвовали или почему нет, расскажите о своем опыте? Или расскажите о своей первой детектированной баге?
Раньше участвовал. Не очень успешно, но и не совсем печально. Самая большая выплата была от Reddit - $3750 за уязвимость в Android-приложении, позволяющей угонять аккаунты через модификацию файлов в общедоступной директории.
Самая первая уязвимость была в приложении Instagram[1] и в целом уязвимостью не являлась. В разделе Terms and Conditions соглашение открывалось в WebView по http (без шифрования), из которого можно было выйти на произвольный веб-сайт. Открытие произвольного сайта внутри WebView и так уязвимость с низкой степенью риска, так тут злоумышленнику надо было находиться в одной сети с жертвой, чтобы подменить страницу на свою в целях фишинга (в webview жертва не видит адреса страницы и думает, что взаимодействует с приложением, а не с сайтом внутри него). Но так как минимальное баунти у инсты было $500, столько мне и заплатили даже за такую слабую багу.
Какое по вашему мнению будущее ждет мобильные устройства??
Мобильные устройства из года в год обрастают новыми фичами, которые неизбежно расширяют поверхность атаки. Уверен, исследователям и багхантерам еще долгое время будет что поизучать и какие уязвимости или ошибки найти. И именно благодаря таким энтузиастам безопасность этих технологий будет «поспевать» за их бурным развитием.
И по традиции 5 советов начинающим) как стать исследователем безопасности мобильных устройств?
Начните с OWASP Top 10 Mobile
Если у вас есть понимание основ web-безопасности, будет сильно проще вкатиться в мобилки, начав с server-side
Осваивать iOS проще после Android, так как многие вещи сделаны по аналогии
Читайте дисклозы уязвимостей по мобильным приложениям, находите старые версии, где уязвимость присутствовала, и воспроизводите своими руками — так быстрее всего прокачаетесь
Читайте профильные блоги, например, PT SWARM (https://t.me/ptswarm) и моего бывшего коллеги Сергея Тошина, который является топ-1 хакером Android-приложений и основал свою компанию Oversecured (https://oversecured.com/), я сам у него многому научился.
Большое спасибо за уделенное время и интересную беседу!
Сегодня у нас в гостях был руководитель отдела перспективных технологий компании Positive Technologies - Николай Анисеня.
А на этом всё!! Спасибо за внимание...
Подписывайтесь на наш телеграмм - канал AUTHORITY.
[1] Продукт компании Meta, признанной, в соответствии с законодательством Российской Федерации, экстремистской организацией, запрещенной в России