Termux – мощный терминальный эмулятор для Android, позволяющий использовать привычные Linux‑утилиты непосредственно на мобильном устройстве. В статье мы покажем, как с его помощью выполнить базовый аудит безопасности: собрать системные логи, проанализировать права установленных приложений и проверить целостность критических файлов.
1. Подготовка рабочей среды
Для начала необходимо установить базовый набор пакетов и обеспечить доступ к привилегиям root (если устройство рутовано).
pkg update && pkg upgrade -y
pkg install -y git python nano curl wget tar proot
# Установка утилит для анализа прав и хешей
pkg install -y busybox findutils coreutils perl
# Если требуется работа с SELinux
pkg install -y setools
Если ваш телефон имеет root, запустите Termux с привилегиями:
su -c "termux-chroot"
Без root некоторые операции (например, чтение /data) будут ограничены, но большинство задач всё равно выполнимы.
2. Сбор системных логов
Логи – основной источник информации о том, что происходило на устройстве. Основные источники:
logcat– журнал событий Android.dmesg– ядро Linux.system logsв/data/misc/logd(требует root).
Создадим директорию для хранения результатов аудита:
mkdir -p ~/audit/{logs,permissions,integrity}
Соберём logcat за последние 5 минут:
logcat -d -t 5m > ~/audit/logs/logcat_$(date +%Y%m%d_%H%M%S).txt
Сохраним вывод dmesg:
dmesg > ~/audit/logs/dmesg_$(date +%Y%m%d_%H%M%S).txt
Если есть доступ к /data/misc/logd, скопируем их:
if [ -d /data/misc/logd ]; then
cp -r /data/misc/logd/* ~/audit/logs/root_logs/
fi
3. Анализ прав приложений
Для оценки риска необходимо понять, какие привилегии запрашивают установленные пакеты. Информация доступна через dumpsys package и pm list packages -f.
Получим список всех пакетов с их путями:
pm list packages -f > ~/audit/permissions/package_list.txt
Сформируем CSV‑таблицу с набором прав каждого приложения:
printf "Package,Permission
" > ~/audit/permissions/permissions.csv
for pkg in $(pm list packages -3 | cut -d':' -f2); do
perms=$(dumpsys package $pkg | grep "android.permission" | tr -d '\t' | paste -sd "," -)
echo "$pkg,$perms" >> ~/audit/permissions/permissions.csv
done
Выделим подозрительные комбинации (например, READ_PHONE_STATE + WRITE_EXTERNAL_STORAGE) с помощью awk:
awk -F',' '/READ_PHONE_STATE/ && /WRITE_EXTERNAL_STORAGE/ {print $1}' ~/audit/permissions/permissions.csv > ~/audit/permissions/suspicious.txt
Для устройств с SELinux можно проверить контекст приложений:
seinfo -t | grep -i "app" > ~/audit/permissions/selinux_contexts.txt
4. Проверка целостности файлов
Контроль целостности критических компонентов (бинарники, библиотеки, конфигурационные файлы) позволяет обнаружить посторонние модификации.
Создадим эталонный список хешей (SHA‑256) для системных каталогов:
find /system /vendor -type f -exec sha256sum {} \; > ~/audit/integrity/base_hashes.txt
Через некоторое время (или после обновления) сравним текущие хеши с эталоном:
find /system /vendor -type f -exec sha256sum {} \; > ~/audit/integrity/current_hashes.txt
# Вывод различий
diff -u ~/audit/integrity/base_hashes.txt ~/audit/integrity/current_hashes.txt > ~/audit/integrity/diff_report.txt
Для более гибкой проверки можно использовать tripwire (установим из репозитория):
pkg install -y tripwire
twadmin --init
tripwire --check > ~/audit/integrity/tripwire_report.txt
Отчёт tripwire_report.txt покажет все изменения, включая добавленные, удалённые и изменённые файлы.
5. Автоматизация и формирование отчёта
Скрипт, объединяющий все шаги, упрощает регулярный аудит. Ниже пример простого bash‑скрипта audit.sh:
#!/data/data/com.termux/files/usr/bin/bash
set -e
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
OUT=~/audit/run_${TIMESTAMP}
mkdir -p $OUT/{logs,permissions,integrity}
# Логи
logcat -d -t 5m > $OUT/logs/logcat.txt
dmesg > $OUT/logs/dmesg.txt
# Права
pm list packages -f > $OUT/permissions/package_list.txt
printf "Package,Permission
" > $OUT/permissions/permissions.csv
for pkg in $(pm list packages -3 | cut -d':' -f2); do
perms=$(dumpsys package $pkg | grep "android.permission" | tr -d '\t' | paste -sd "," -)
echo "$pkg,$perms" >> $OUT/permissions/permissions.csv
done
awk -F',' '/READ_PHONE_STATE/ && /WRITE_EXTERNAL_STORAGE/ {print $1}' $OUT/permissions/permissions.csv > $OUT/permissions/suspicious.txt
# Целостность
find /system /vendor -type f -exec sha256sum {} \; > $OUT/integrity/current_hashes.txt
if [ -f ~/audit/integrity/base_hashes.txt ]; then
diff -u ~/audit/integrity/base_hashes.txt $OUT/integrity/current_hashes.txt > $OUT/integrity/diff_report.txt || true
fi
# Архивируем результат
tar -czf ~/audit/audit_${TIMESTAMP}.tar.gz -C $OUT .
Запуск bash audit.sh создаст архив с полным набором данных, готовый к последующей аналитике.
6. Заключение
Termux предоставляет полноценный набор инструментов для самостоятельного аудита Android‑устройства без необходимости подключать его к ПК. С помощью описанных методов можно быстро собрать логи, проанализировать права приложений и проверить целостность системных файлов, получив полную картину текущего уровня безопасности.
Если вам требуется более глубокий анализ, написание кастомных правил для tripwire, интеграция с SIEM‑системами или проведение внешних пенетрационных тестов, команда RybinskLab готова помочь. Мы предоставляем услуги по аудиту мобильных платформ, разработке безопасных CI/CD‑конвейеров и обучению персонала лучшим практикам мобильной кибербезопасности.