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

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


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

Меня зовут Николай Анисеня, я руковожу отделом перспективных технологий в компании Positive Technologies, занимаюсь безопасностью мобильных приложений. Об этом и не только пишу в телеграм-канале @xyuriti.

Программированием я увлекся еще в подростковом возрасте: мы с другом модифицировали различные игровые файлы — переозвучивали, меняли текст (это в принципе все, на что нам хватало навыков в 12 лет). Позже я узнал, что есть специальность «компьютерная безопасность», и решил, что однозначно хочу поступить именно туда — притягивал романтический образ хакера. Уже будучи студентом познакомился с ребятами из студенческой CTF-команды SiBears, которые каждую неделю устраивали лекции и тренировки по практической безопасности. Стал ходить к ним на занятия, даже, было дело, ночевал в универе во время соревнований (большинство соревнований тогда проводились днем в США, а у нас в Сибири это была глубокая ночь, и мы могли поучаствовать в них онлайн).

Через два года я вошел в основной состав команды и поехал на свои первые очные соревнования RuCTF в Екатеринбург. Там познакомился с русскоязычным сообществом в ИБ, узнал о профессии пентестера, и мои цели на будущее скорректировались: я решил стать специалистом в области offensive security.

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

Когда в 2014 году в Томске компания Positive Technologies решила открыть свой филиал, мне предложили попробовать пройти собеседование на хакера, но вакансий на веб в компании не оказалось, зато были вакансии на мобильные приложения. Я решил попробовать, за пару недель подготовился и прошел. Так я оказался в Positive Technologies, где и до сих пор работаю в теме мобилок.

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

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

  • как правило, API мобильных приложений защищены слабее, чем API веб-приложений;

  • по моим ощущениям, разработчики 90% мобильных приложений вообще никак не защищают свой код от анализа, а это необходимый этап поиска уязвимостей, создания клонов или просто изучения тонкостей реализации тех или иных функций приложения;

  • обработка deeplink — наиболее распространенная точка входа для атаки на приложения.

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

  • различные недостатки конфигурации: разрешен бэкап, захардкоженные ключи, токены, адреса, пароли;

  • отсутствие защиты от анализа кода: запуск на устройствах с jailbreak (root), возможность перепаковки;

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

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

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

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

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

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

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

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

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

  • мобильный телефон нередко является роутером и может маршрутизировать трафик вредоносов в корпоративную сеть, если у вас установлен рабочий VPN. Банальное сканирование уже не выглядит чем-то сложным в этом случае;

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

Насколько мне известно, закон не позволяет включать личные устройства сотрудников в скоуп для проведения пентеста. Однако этот закон совершенно точно не останавливает злоумышленников, и кто знает, как часто они пользуются подобными свойствами мобильных устройств для проведения атак на компании?

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

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

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

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

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

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

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

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

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

Считаю, что у ИИ, в частности больших языковых моделей (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* и в целом уязвимостью не являлась. В разделе Terms and Conditions соглашение открывалось в WebView по HTTP (без шифрования), из которого можно было выйти на произвольный веб-сайт. Открытие произвольного сайта внутри WebView — уязвимость с низкой степенью риска, и тут злоумышленнику надо было находиться в одной сети с жертвой, чтобы подменить страницу на свою в целях фишинга (в WebView жертва не видит адреса страницы и думает, что взаимодействует с приложением, а не с сайтом внутри него). Но так как минимальное баунти у Instagram было 500$, столько мне и заплатили даже за такую слабую багу.

* Instagram принадлежит компании Meta Inc., которая признана экстремистской и запрещена в РФ

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

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

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

Начните с OWASP Top 10 Mobile. Если у вас есть понимание основ веб-безопасности, будет сильно проще вкатиться в мобилки, начав с server-side. Осваивать iOS проще после Android, так как многие вещи сделаны по аналогии.

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

Читайте профильные блоги, например PT SWARM и блог моего бывшего коллеги Сергея Тошина, который является топовым хакером Android-приложений и основал свою компанию Oversecured — я сам у него многому научился.


Автор интервью телеграм-канал AUTHORITY

На вопросы отвечал руководитель отдела перспективных технологий Positive Technologies Николай Анисеня (SbX | Security by Xyurity)

Комментарии (0)