We detected you are likely not from a Russian-speaking region. Would you like to switch to the international version of the site?

  Назад к списку статей

Интеграция инструментов статического анализа кода в Termux для проверки уязвимостей Android‑приложений

Подробное руководство по установке и использованию популярных средств статического анализа в Termux для аудита Android‑приложений. Пошаговые инструкции, примеры и рекомендации от экспертов RybinskLab.

Android‑приложения часто становятся целью злоумышленников, поэтому своевременный аудит кода – обязательный этап разработки. Статический анализ позволяет выявлять уязвимости без запуска приложения, а Termux предоставляет полноценный Linux‑терминал прямо на мобильном устройстве. В этой статье мы рассмотрим, как собрать набор популярных анализаторов в Termux и использовать их для проверки APK‑файлов.

Почему именно Termux?

  • Полный набор пакетов apt/pkg, совместимых с Debian/Ubuntu.
  • Поддержка Python, Java, Node.js – всех языков, необходимых для Android‑инструментов.
  • Возможность автоматизации через скрипты Bash и интеграции с CI/CD.

Подготовка окружения

Перед установкой анализаторов обновим репозитории и установим базовые зависимости:

pkg update && pkg upgrade -y
pkg install -y git python wget curl unzip openjdk-17 zipalign

Для работы некоторых инструментов понадобится pip и npm:

pip install --upgrade pip
pkg install -y nodejs

Набор инструментов статического анализа

Мы выбрали проверенные решения, которые легко собрать в Termux:

  • MobSF (Mobile Security Framework) – комплексный сканер, поддерживает как статический, так и динамический анализ.
  • AndroBugs – легковесный сканер на Python, ищет типичные уязвимости.
  • QARK (Quick Android Review Kit) – генерирует эксплойты на основе найденных проблем.
  • SpotBugs + FindSecurityBugs – статический анализатор Java‑кода.
  • PMD – проверка качества кода и обнаружение потенциальных багов.
  • Android Lint – встроенный в SDK набор правил.

Установка и запуск MobSF

MobSF работает как веб‑приложение, поэтому потребуется установить virtualenv и зависимости Python.

# Клонируем репозиторий
git clone https://github.com/MobSF/Mobile-Security-Framework-MobSF.git ~/mobsf
cd ~/mobsf
# Создаём виртуальное окружение
python -m venv venv
source venv/bin/activate
# Устанавливаем зависимости
pip install -r requirements.txt
# Запускаем сервер
./run.sh

После старта откройте в браузере http://127.0.0.1:8000 и загрузите APK для анализа.

Установка AndroBugs

git clone https://github.com/AndroBugs/AndroBugs_Framework.git ~/androbugs
cd ~/androbugs
pip install -r requirements.txt

Запуск анализа:

python androbugs.py -f /path/to/app.apk -o report.html

Установка QARK

git clone https://github.com/linkedin/qark.git ~/qark
cd ~/qark
./gradlew clean build

Анализ APK:

python qark/qark.py -i /path/to/app.apk -o ~/qark_report

SpotBugs + FindSecurityBugs

pkg install -y wget
wget https://repo1.maven.org/maven2/com/github/spotbugs/spotbugs/4.8.3/spotbugs-4.8.3.tgz -O /tmp/spotbugs.tgz
tar -xzf /tmp/spotbugs.tgz -C $HOME
wget https://github.com/find-sec-bugs/find-sec-bugs/releases/download/v1.12.0/findsecbugs-plugin-1.12.0.jar -O $HOME/spotbugs/plugins/findsecbugs.jar

Запуск анализа Java‑кода, полученного из декомпиляции APK (см. ниже):

$HOME/spotbugs/bin/spotbugs -textui -pluginList $HOME/spotbugs/plugins/findsecbugs.jar -output spotbugs_report.txt -project myproject

Декомпиляция APK и подготовка исходников

Для Java‑анализаторов необходимо получить исходники. Самый простой способ – использовать apktool и jadx:

pkg install -y apktool
wget https://github.com/skylot/jadx/releases/download/v1.4.0/jadx-1.4.0.zip -O /tmp/jadx.zip
unzip /tmp/jadx.zip -d $HOME/jadx

Декомпилируем APK:

apktool d /path/to/app.apk -o decoded_app
$HOME/jadx/bin/jadx -d src decoded_app/classes.dex

Полученную папку src можно передать в SpotBugs, PMD и Android Lint.

PMD и Android Lint

pkg install -y pmd
pmd -d src -R category/java/bestpractices.xml -f html -r pmd_report.html

Для Lint потребуется Android SDK:

wget https://dl.google.com/android/repository/commandlinetools-linux-8512546_latest.zip -O /tmp/cmdline-tools.zip
unzip /tmp/cmdline-tools.zip -d $HOME/Android
export ANDROID_SDK_ROOT=$HOME/Android
yes | $ANDROID_SDK_ROOT/cmdline-tools/bin/sdkmanager "platform-tools" "platforms;android-33" "build-tools;33.0.0"
$ANDROID_SDK_ROOT/cmdline-tools/latest/bin/lint --check All src

Пример полного цикла анализа

  1. Скопировать APK на устройство.
  2. Выполнить декомпиляцию (apktool + jadx).
  3. Запустить MobSF для быстрой оценки.
  4. Запустить AndroBugs и QARK для детального поиска уязвимостей.
  5. Провести Java‑анализ с SpotBugs + FindSecurityBugs, PMD и Android Lint.
  6. Собрать отчёты в единый PDF (можно использовать pandoc).

Полученный набор отчётов даст полное представление о потенциальных проблемах: открытых портах, небезопасных API, недостаточной проверке ввода и т.д.

Автоматизация и CI/CD

Скрипт Bash, объединяющий все шаги, можно добавить в репозиторий и запускать через Termux‑GitHub‑Actions или через локальный планировщик cron:

#!/usr/bin/env bash
APK=$1
# Декомпиляция
apktool d "$APK" -o decoded
jadx -d src decoded/classes.dex
# Анализ
python ~/androbugs/androbugs.py -f "$APK" -o report.html
$HOME/spotbugs/bin/spotbugs -textui -pluginList $HOME/spotbugs/plugins/findsecbugs.jar -project src -output spotbugs.txt
pmd -d src -R category/java/bestpractices.xml -f html -r pmd.html
# Объединяем отчёты
pandoc report.html spotbugs.txt pmd.html -o final_report.pdf

Такой подход позволяет интегрировать проверку безопасности в процесс сборки непосредственно на мобильном устройстве.

Лучшие практики

  • Регулярно обновляйте инструменты (git pull, pip install -U).
  • Ведите журнал найденных уязвимостей и их статуса (исправлено/отклонено).
  • Комбинируйте несколько анализаторов – каждый покрывает свои «слепые зоны».
  • Не забывайте о динамическом анализе (эмуляторы, Frida) после статического.

Заключение

Termux предоставляет всё необходимое для построения полноценного пайплайна статического анализа Android‑приложений без необходимости подключать полноценный ПК. С помощью MobSF, AndroBugs, QARK, SpotBugs и других инструментов вы получаете глубокий обзор кода, выявляете уязвимости и повышаете качество продукта.

Если вам требуется профессиональный аудит, настройка CI/CD или обучение команды безопасной разработке, специалисты RybinskLab готовы помочь. Мы предоставляем услуги по интеграции статических анализаторов, проведению комплексных тестов безопасности и разработке рекомендаций по исправлению уязвимостей.

Ссылка на определения термина «start», использованные в статье: Cambridge Dictionary, Merriam-Webster.

* Текст статьи подготовлен и структурирован с использованием технологий искусственного интеллекта. Проверен и доработан перед публикацией.

Нужна помощь с настройкой Termux, Linux и серверов?

Я оказываю ИТ-услуги: настройка серверов, автоматизация, безопасность, помощь с Linux и инфраструктурой. Материалы сайта — только в ознакомительных и образовательных целях.

Связаться со мной
Поддержать проект