Безопасность Android, как за мной следили конкуренты

vish2405

Новичок
Регистрация
4/2/22
Сообщения
7
Репутация
0
Реакции
2
RUB
0
О том как за мной следили конкуренты, и что полезного я вынес из изучения и разработки приложений для людей с ограниченными возможностями.

Я работаю в продажах, а именно занимаюсь тендерами на различные крупные предприятия. Однажды я стал замечать, что мой Андройд телефон работат как-то странно. Иногда в личных сообщениях происходят какие-то анимации, похожие на скриншоты. Постоянно что-то качается и передается в интернет. А так как разработка Андройд приложений для меня всегда была интересна, я за пару ночей установил Линукс, скачал APKtools, Android ADB и другие инструменты для реверс
инженеринга и изучения моего телефона.
Глубокое погружение в логи телефона показало, что я использую некий Accessibility Service. К сожалению гугл поиск этой втроенной в Андройд функции в русском сегменте интеренета практически не упомянут. Есть 2 статьи на Хакере, и еще пару вопрос практически без ответов на StackOverflow.
Сервис показался мне интересен и я занялся чтением английской документации по разработке приложений для людей с ограниченными возможностями. Оказалось, что этот простой и мало упомянаемый публично сервис, для людей с ограниченными возможностями (особенно с плохим зрением) имеет ряд интересных функций.

Так, сервис позволяет получать содержимое экрана телефона. Причем сервис знает, что сейчас на экране вашего телефона, на какие кнопки вы нажимаете, какие поля заполняете, на каких элементах ставите фокус и какой текст выделяете… Круто?
Нет ! Это только верхушка айзберга. Сервис позволяет не только получать информацию, но и от Вашего имени совершать действия, а именно скроллить экран и нажимать на кнопки. И это совсем без Вашего участия.

Я настоятельно рекомендую проверить прямо сейчас, являетель ли вы счастливым пользователем данного сервиса. Это легко сделать зайдя в настройки телефона, выбрав “Специальные возможности” → “Установленные приложения”.

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

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

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

Дело в том, что любое приложение Андройд состоит из компонентов. Компонентами могут быть Активити (Activity), это страницы приложения, которые вы видите на экране. Так же приложение может включать в себя Сервисы (Android Service). Это то, что вы никогда не видите на экране, и что в отдельном процессе/потоке выполняется без вашего участия на телефоне.

Круто, можно захватить весь мир! - Скажете вы. Ведь можно читать экраны на любом телефоне
, еще и нажимать и скроллить.

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


Как удовлетворить инста девушку ?


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

Сказано – сделано! Тем же вечером я создал приложение InstaLikeAndComment, задача которого была избавить одну симпотичную девочку от 2-3 часового ежедневного втыкания в эти бесконечные фоточки. Оказалось, что секрет успешной страницы в накрутке именно живой аудитории и реальному взаимодействию с людьми. Никакие 10 000 ботов, подписавшиеся на вашу страницу за пол часа и за 1000 рублей не обеспечат активную тусовку на Вашей странице.

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

com.instagram.android:id/row_feed_button_like – например кнопка Лайк.

android:id/list – или динамически создаваемый контейнер с новыми фоточками.

Кнопку комментирования поста вообще не так то просто найти на экране.

Ди вообще, за одинаковые комментарии бан прилетает мгновенно.


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

Второй, сложностью является общая проблема устройств на Андройде, с которой сталкивается любой разработчик. Речь идет о поддержкке разных версий и устройств на этой операционной системе. Дело в том, что Android Jelly B, Android Oreo и Android 11 – разные операционные системы, на которых Гугл закручивало постепенно гайки. Тем не менее, все проведенные мной эксперименты осуществлены на Android 12 на моем Самсунге S10+

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


На данный момент я добился вполне себе человеческого поведения, посмотрите, как красиво выглядит процесс. Сейчас выложу видео в комментариях...


Потенциал Accessibility Service огромен.

В ближайшее время я планирую попробовать использование сервисов для парсинга данных из соц сетей. Дело в том, что стандартные API накладывают ряд колличественных ограничений на обращение к базе данных социальной сети. А вот у Андройд приложений этих ограничений практически нет. Молодые мамочки листают страницы в Инстаграм по 100 000 раз в день, и вряд ли их кто-то заблокирует.

Невероятно сильными инструментами для работы с Accessebility могут стать Alarm Manager и Job Scheduler. Это такие компоненты в Андройд, которые позволяю запускать рутинные операции раз в определенный промежуток времени. Если взять вышеупомянутый Инстаграм, то есть ряд ограничений на клики по лайкам, отправку в сообщений в директ и коментарии. Так вот, большинство этих ограничений выглядят как 60 лайков в час, 40 комментариев в час, оклоло 30 сообщений в директ, и т.д. Нам ничего не мешает запускать сервис с периодичностью раз в час, определенное количество раз в сутки и выполнять все рутинные операции в промышленных масштабах, при этом не улетая в бан.

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

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