Как тестировать подозрительные .apk в эмуляторе Android без интернета

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

Разберём по шагам, как это сделать правильно: от подготовки эмулятора до анализа поведения приложения. Без теории про вирусы в общем — только практика.

Зачем вообще отключать интернет

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

Отключение интернета решает сразу несколько задач:

  • Приложение не может отправлять данные на серверы разработчика или злоумышленника.
  • Не может загружать дополнительные компоненты или обновления после установки.
  • Не может получать команды управления удалённо.
  • Вы видите, какие именно сетевые запросы оно пытается выполнить — это уже информативно.

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

Какой эмулятор выбрать

Здесь всё зависит от ваших задач и уровня подготовки. Три основных варианта:

Эмулятор Подходит для Сложность настройки Отключение интернета
Android Studio (AVD) Полноценный анализ, отладка, работа с логами Средняя — нужно установить IDE Через настройки AVD или команды
Genymotion Быстрый запуск, удобный интерфейс, много настроек устройства Низкая Отключение сетевого адаптера в настройках
Nox App Player Простой запуск .apk, привычный интерфейс как на телефоне Низкая Через системные настройки Android внутри эмулятора

Если вам нужно просто запустить файл и посмотреть, что происходит — Nox или аналогичный лёгкий эмулятор подойдёт быстрее. Если нужен детальный анализ с логами и возможностью подключить инструменты вроде Frida или сниффера — ставьте Android Studio с AVD.

Подготовка эмулятора по шагам

Шаг 1. Создайте виртуальное устройство

В Android Studio: Tools → Device Manager → Create Device. Выберите модель (подойдёт любая, например Pixel 6), скачайте системный образ. Рекомендую брать образы с Google Play — они ближе к реальному устройству. Если не нужен Google Play — можно взять образ без него, он легче.

В Genymotion: просто добавьте новое устройство из списка доступных. Там всё проще, буквально три клика.

Шаг 2. Установите систему и запустите эмулятор

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

Шаг 3. Отключите интернет

Это ключевой момент. Есть несколько способов, и надёжнее использовать их в комбинации:

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

Способ 2: внутри самого Android. Зайдите в Настройки → Сеть и интернет → Мобильная сеть и выключите «Мобильные данные». Также выключите Wi-Fi. В эмуляторе Wi-Fi обычно и так не работает как на реальном устройстве, но для надёжности стоит проверить.

Способ 3: через ADB. Если эмулятор уже запущен, можно выполнить команду:

adb shell svc wifi disable && adb shell svc data disable

Это отключит Wi-Fi и мобильные данные программно. Удобно, если нужно быстро переключать состояние.

Способ 4: файрвол на уровне системы. В эмуляторе можно настроить перенаправление всего трафика в никуда через iptables, но это уже продвинутый уровень. Для большинства случаев первых трёх способов достаточно.

Шаг 4. Проверьте, что интернет действительно отключён

Не полагайтесь на то, что «вроде отключил». Проверьте. Откройте браузер внутри эмулятора и попробуйте открыть любой сайт. Если ничего не загружается — хорошо. Также можно через ADB выполнить:

adb shell ping -c 1 google.com

Если в ответ вы получите таймаут или «Network is unreachable» — интернет отключён корректно.

Установка подозрительного .apk

Скопируйте файл .apk на эмулятор. Самый простой способ — через ADB:

adb install suspicious_app.apk

Если приложение уже находится на хост-машине, можно просто перетащить файл в окно эмулятора — в большинстве современных эмуляторов это работает.

После установки не запускайте приложение сразу. Сначала посмотрите, какие разрешения оно запрашивает. Зайдите в Настройки → Приложения → [имя приложения] → Разрешения. Если калькурулятор запрашивает доступ к контактам и SMS — это повод насторожиться ещё до первого запуска.

Что смотреть после запуска

Запустите приложение и понаблюдайте. Вот на что обращать внимание:

  1. Запрос разрешений при первом запуске. Сравните запрашиваемые разрешения с тем, что делает приложение. Фонарик не нужен доступ к микрофону. Игра не нужна в чтении SMS.
  2. Интерфейс. Есть ли он вообще? Некоторые вредоносные приложения запускаются, делают свою работу и закрываются без какого-либо интерфейса. Если приложение открылось и сразу закрылось — это тревожный знак.
  3. Фоновая активность. Проверьте, не появилось ли приложение в списке работающих в фоне. Настройки → Приложения → Показать системные → посмотрите, не висит ли оно там.
  4. Попытки сетевых запросов. Даже при отключённом интернете приложение может пытаться отправить запросы. Если вы используете Android Studio, посмотрите вкладку Logcat — там будут видны ошибки подключения и адреса, на которые приложение пытается отправить данные.
  5. Изменения в системе. Появились ли новые файлы, изменились ли настройки, появились ли новые приложения? Проверить можно через файловый менеджер или через ADB.

Как увидеть сетевые запросы без интернета

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

Вариант с mitmproxy или Charles Proxy. Вы настраиваете эмулятор так, чтобы весь трафик шёл через прокси-сервер на вашем компьютере. Приложение «думает», что интернет есть, отправляет запросы, а вы их видите. Настройка:

  1. Установите mitmproxy на хост-машину.
  2. В настройках эмулятора задайте прокси: IP хост-машины (обычно 10.0.2.2 для AVD) и порт прокси (по умолчанию 8080).
  3. Установите сертификат mitmproxy на эмулятор, чтобы видеть HTTPS-трафик.
  4. Запустите приложение и наблюдайте за запросами в интерфейсе прокси.

Вариант с tcpdump через ADB. Вы можете захватывать сетевой трафик прямо на эмуляторе:

adb shell tcpdump -i any -s 0 -w /sdcard/capture.pcap

Потом вытащите файл на хост и откройте в Wireshark для анализа. Вы увидите все DNS-запросы, TCP-соединения и адреса, с которыми приложение пытается связаться.

Частые ошибки при тестировании

Вот реальные ошибки, которые люди допускают и которые снижают ценность всей затеи:

  • Отключили интернет только в эмуляторе, но забыли про хост-машину. Если эмулятор работает в режиме мостовой сети, он может получить доступ в интернет через хост. Проверяйте отключение именно изнутри эмулятора, а не только в настройках виртуальной машины.
  • Используют эмулятор с root-доступом и не задумываются об этом. Многие приложения ведут себя по-разному на root-устройстве. Если вы хотите увидеть «обычное» поведение — не рутьте эмулятор. Если хотите глубокий анализ — рутьте, но помните, что картина будет отличаться.
  • Запускают приложение и сразу удаляют. Нужно дать приложению поработать. Некоторые вредоносные приложения активируются не сразу, а через какое-то время или после определённых действий пользователя.
  • Не проверяют разрешения до запуска. Это упущенная возможность понять намерения приложения ещё до того, как оно начнёт работать.
  • Тестируют на устаревшей версии Android. Если приложение использует современные API, оно может просто не запуститься на старой версии, и вы сделаете неверные выводы. Используйте актуальные образы — Android 13 или 14.

Что делать с результатами

После тестирования у вас есть несколько вариантов:

Если приложение ведёт себя нормально: не запрашивает подозрительных разрешений, не пытается отправлять данные, не делает ничего странного — скорее всего, оно безопасно. Но «скорее всего» не значит «гарантированно». Если источник .apk неизвестен, всё равно не ставьте его на основной телефон.

Если приложение подозрительно: вы видите попытки отправить данные на неизвестные серверы, запрашивает непонятные разрешения, ведёт себя скрытно — не удаляйте сразу. Сначала сохраните дамп APK через ADB (adb pull /data/app/имя_пакета), логи сетевых запросов и скриншоты. Это может пригодиться, если вы решите передать образец аналитикам или сообщить о нём.

Если вы не уверены: это нормально. Не все приложения можно «прочитать» с первого взгляда. В таком случае — не ставьте на основное устройство и не передавайте файл другим людям.

Рекомендации по безопасности

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

  • Используйте отдельный эмулятор для анализа. Не используйте тот же эмулятор, в котором у вас настроены рабочие приложения, аккаунты и данные. Создайте чистый виртуальный девайс специально для этих целей.
  • Сделайте снапшот чистого состояния. В Genymotion и некоторых других эмуляторах можно сохранить снимок системы. После тестирования подозрительного приложения вы просто откатываетесь к чистому состоянию и тестируете следующий файл.
  • Не подключайте к эмулятору свои реальные аккаунты. Если приложение попытается получить доступ к Google-аккаунту — пусть получит пустышку, а не ваш основной профиль.
  • Изолируйте эмулятор от локальной сети. Если вы работаете в офисной сети или домашней сети с общими ресурсами — убедитесь, что эмулятор не может получить доступ к другим устройствам в сети. Это особенно важно, если приложение содержит сетевые эксплойты.
  • Документируйте процесс. Записывайте, что вы делали и что видели. Даже если вам кажется, что вы запомните — не запомните. Особенно если вы тестируете несколько файлов подряд.

Когда эмулятора недостаточно

Эмулятор с отключённым интернетом — хороший первый шаг, но не панацея. Есть ситуации, когда этого мало:

  • Приложение определяет, что оно запущено в эмуляторе, и меняет поведение. Многие вредоносные программы проверяют наличие эмуляторных признаков (build.fingerprint, специфические файлы, сенсоры) и «молчат» при обнаружении.
  • Приложение использует обфускацию или анти-отладку. В таком случае простое наблюдение за поведением не даст ответов — нужен реверс-инжиниринг.
  • Приложение требует активации через сервер и без интернета вообще не работает. Вы не увидите его реального поведения.

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

Итог

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

Краткий алгоритм: создайте чистый эмулятор → отключите интернет и проверьте → установите .apk → изучите разрешения → запустите и понаблюдайте → при необходимости перехватите сетевые запросы через прокси → сделайте выводы.

Если после тестирования остались сомнения — не ставьте приложение на реальное устройство. Лучше потратить лишние полчаса на анализ, чем потом разбираться с последствиями.

Оцените статью
PEFile — Безопасность и технологии простым языком