Termux – мощный эмулятор терминала для Android, позволяющий запускать полноценные Linux‑утилиты. Однако, как и любой инструмент, работающий в пользовательском пространстве, он может стать мишенью нежелательного доступа. В этой статье рассматриваются три уровня защиты, доступные в Android: SELinux, AppArmor и традиционные политики безопасности Linux.
Почему защита важна?
Устройства Android часто используют общедоступные сети, а Termux может запускать скрипты с правами обычного пользователя. Если вредоносный код получит доступ к Termux, он может:
- Получить доступ к файлам пользователя и конфиденциальным данным.
- Использовать ресурсы устройства для майнинга, спама или атак.
- Эскалировать привилегии через уязвимости ядра.
Поэтому необходимо убедиться, что система контроля доступа (MAC) правильно настроена и что вы применяете лучшие практики Linux‑безопасности.
SELinux в Android
С Android 4.3 по умолчанию включён SELinux в режиме enforcing. Он использует политики, определяющие, какие операции может выполнять каждый процесс.
Проверка текущего режима
getenforce
Если вывод Enforcing, политика применяется строго.
Отладка и временное переключение
Для отладки иногда требуется переключить режим в Permissive. Делать это следует только на устройстве с рут‑доступом.
su -c "setenforce 0"
После завершения отладки верните режим обратно:
su -c "setenforce 1"
Контекст Termux
Процессы Termux работают в контексте u:r:untrusted_app:s0:c512,c768 (значения могут отличаться). Чтобы увидеть контекст конкретного процесса:
ps -Z | grep termux
Если необходимо изменить контекст (например, для доступа к определённым файлам), используйте chcon:
chcon -t sdcard_rw /sdcard/Downloads/secret.txt
Будьте осторожны: изменение контекстов может нарушить работу приложений.
AppArmor – дополнительный слой контроля
Некоторые кастомные прошивки (например, LineageOS) включают AppArmor. Он работает по принципу профилей, привязываемых к исполняемым файлам.
Проверка статуса
aa-status
Команда покажет, какие профили активны и находятся в режиме enforced или complain.
Создание простого профиля для Termux
Для демонстрации создадим профиль, ограничивающий доступ к сети.
# /etc/apparmor.d/usr.bin.termux
#include <abstractions/base>
/usr/bin/termux {
# Разрешаем чтение файлов в домашней директории
/data/data/com.termux/files/** r,
# Запрещаем любые сетевые операции
network inet deny,
}
После создания профиля загрузите его:
apparmor_parser -r /etc/apparmor.d/usr.bin.termux
Теперь Termux будет работать без сетевых соединений, пока профиль включён.
Традиционные политики безопасности Linux
Помимо MAC‑механизмов, в Termux доступны стандартные инструменты контроля доступа:
chmodиchown– управление правами доступа к файлам.umask– задаёт маску прав по умолчанию для новых файлов.setfacl/getfacl– расширенные списки контроля доступа.
Пример безопасных прав для скриптов
# Запретить исполнение скриптов другими пользователями
chmod 700 myscript.sh
# Установить umask так, чтобы новые файлы создавались с 600
umask 077
Ограничение доступа к внешним хранилищам
Android ограничивает прямой доступ к /sdcard. Чтобы обеспечить изоляцию, используйте termux-setup-storage, который создаёт привязку к /storage/emulated/0. После этого можно задать права доступа:
chmod 750 /data/data/com.termux/files/home/shared
Практические рекомендации по защите Termux
- Проверяйте статус SELinux – убедитесь, что он работает в режиме
Enforcing. - Не запускайте Termux от root – это снижает риск эскалации привилегий.
- Ограничьте сетевой доступ с помощью
iptablesвнутри Termux или профилей AppArmor. - Регулярно обновляйте пакеты – используйте
pkg upgradeдля получения последних патчей. - Используйте виртуальные окружения (
python -m venv,nodeenv) для изоляции зависимостей. - Контролируйте права файлов – минимизируйте права
777, используйтеchmodиumask. - Включайте проверку целостности скриптов – подписи GPG или контрольные суммы.
Инструменты мониторинга и аудита
Для своевременного обнаружения попыток несанкционированного доступа можно использовать:
auditd– собирает события SELinux и системные вызовы.logcat– выводит системные логи Android, где отображаются сообщения SELinux.busybox syslogd– простой syslog‑демон для записи событий в файл.
Пример настройки аудита для доступа к домашней директории Termux:
# /etc/audit/rules.d/termux.rules
-w /data/data/com.termux/files/home -p rwxa -k termux_home
После добавления правила запустите:
service auditd restart
Просмотр событий:
ausearch -k termux_home
Заключение
Защита Termux – это сочетание нескольких уровней: системный контроль доступа SELinux, профили AppArmor (если поддерживается) и традиционные Linux‑политики. При правильной настройке вы получаете надёжный «песочницу», в которой можно безопасно запускать скрипты, развивать проекты и использовать сеть без риска компрометации устройства.
Если вам нужна профессиональная настройка безопасного окружения в Termux, аудит текущих политик или разработка кастомных профилей SELinux/AppArmor – специалисты RybinskLab готовы помочь. Мы предоставляем услуги по hardening Android‑устройств, настройке CI/CD в Termux и обучению безопасному использованию мобильных Linux‑инструментов.