Мобильные устройства все чаще становятся целями злоумышленников. Анализ подозрительных бинарников на Android требует надёжных средств изоляции, чтобы не повредить ОС и личные данные. В этом материале мы покажем, как с помощью podman в окружении Termux создать лёгкие контейнеры, аналогичные Docker, но без необходимости привилегированного доступа к ядру.
Почему именно Termux?
Termux – это полноценный терминал Linux для Android, предоставляющий пакетный менеджер pkg и доступ к большинству утилит GNU. Он работает в пользовательском пространстве, не требует root‑прав и позволяет запускать скрипты, компилировать код и, что особенно важно, управлять контейнерами через podman.
Установка podman в Termux
pkg update && pkg upgrade -y
pkg install root-repo
pkg install podman
# Проверка установки
podman --version
После установки podman мы получаем полностью совместимый с OCI API движок, который работает в режиме rootless – идеальный вариант для мобильных устройств.
Создание базового контейнера
В качестве отправной точки удобно взять лёгкий дистрибутив alpine. Он занимает минимум места и содержит только самые необходимые утилиты.
# Скачиваем образ Alpine
podman pull alpine:latest
# Создаём и сразу же входим в интерактивный контейнер
podman run -it --name sandbox alpine sh
Внутри контейнера вы окажетесь в обычной оболочке sh, где можно установить любые дополнительные пакеты, например strace или gdb для динамического анализа.
Настройка изоляции и ограничений
Podman позволяет задать ограничения на ресурсы и права доступа без привилегий root:
# Запуск контейнера с ограничением CPU и памяти
podman run -d \
--name sandbox \
--cpus 0.5 \
--memory 256m \
-v /data/data/com.termux/files/home/malware:/malware:ro \
alpine:latest sleep infinity
# Ограничиваем сетевой доступ (полностью отключаем)
podman network create --disable-dns sandbox-net
podman run --network sandbox-net ...
Опция -v …:ro монтирует директорию с подозрительным бинарником в контейнер в режиме только для чтения, а отключение сети гарантирует, что вредоносный код не сможет установить внешние соединения.
Запуск подозрительного бинарника
После того как контейнер подготовлен, копируем файл в него и исполняем в изолированной среде.
# Копируем файл в уже запущенный контейнер
podman cp /data/data/com.termux/files/home/malware.bin sandbox:/tmp/
# Запускаем бинарник с трассировкой системных вызовов
podman exec -it sandbox strace -f -o /tmp/trace.log /tmp/malware.bin
# Просмотр полученного лога
podman exec -it sandbox cat /tmp/trace.log
Если требуется более глубокий анализ, можно установить в контейнер gdb или radare2 и продолжить отладку.
Сохранение и удаление контейнеров
После завершения работы контейнер можно сохранить как образ для последующего использования или полностью удалить, чтобы освободить место.
# Сохранить состояние контейнера в образ
podman commit sandbox sandbox-image:latest
# Удалить контейнер и образ
podman rm -f sandbox
podman rmi sandbox-image:latest
Практические рекомендации
- Всегда используйте режим
--read-onlyдля томов, содержащих подозрительные файлы. - Отключайте сетевые интерфейсы, если анализ не требует доступа к Интернету.
- Ограничивайте ресурсы (
--cpus,--memory) – это снизит риск «вывода» вредоносного кода в систему. - Регулярно очищайте неиспользуемые образы:
podman system prune -a.
Заключение
Комбинация Termux и podman предоставляет мощный, лёгкий и полностью пользовательский способ создания изолированных контейнеров на Android‑устройствах. Это решение позволяет безопасно выполнять и исследовать подозрительные бинарники без риска компрометации основной системы.
Если вам требуется профессиональная настройка окружения, автоматизация анализа вредоносного кода или консультации по кибербезопасности, обратитесь в RybinskLab. Мы предлагаем:
- Разработку кастомных скриптов и CI/CD pipeline для мобильного анализа.
- Обучающие воркшопы и индивидуальные консультации.
- Аудит мобильных приложений и построение безопасных инфраструктур.
Свяжитесь с нами через официальный сайт или Telegram‑канал, и наши эксперты помогут вывести ваш процесс анализа на новый уровень.