# Экспертиза безопасности NEXON X11 + STESH/Magisk

Дата проверки: 2026-07-22.

Объекты проверки:

- официальный OTA `NEXON_X11_RTD1325_250926144031.zip`;
- распакованные `system`, `product`, `vendor`, `system_ext` и загрузочные
  разделы из официального `payload.bin`;
- фактическое состояние загруженной NEXON X11 после установки Magisk/STESH;
- APK и Magisk-модули STESH Modifier 0.2.3.

## Итог

Это не SlimBOX-прошивка. В официальной NEXON не обнаружены SlimBOX
`factoryreset.sh`, загрузка world-writable `/data/media/0/init.d` через
`run-parts` или SlimBOX-скрипт отключения Play Protect.

Несмотря на это, чистая NEXON является отладочной, а не защищенной
потребительской сборкой. После Magisk управление root стало лучше, но базовые
риски ядра/vendor/ADB/загрузчика не устранены.

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

## Критические и высокие риски

### 1. SELinux permissive - критический

Live-проверка: `getenforce` возвращает `Permissive`.

В этом режиме запреты SELinux только журналируются и не блокируются. Android
обычно использует enforcing для ограничения даже процессов с UID 0. Ошибка в
системном сервисе или приложение с root получает значительно больший радиус
действия.

### 2. Встроенный бесконтрольный su - критический

Официальный `system.img` содержит `/system/xbin/su` размером 6488 байт,
SHA-256:

```text
637FE259BB2FB5CF81EF860F3C9BC93F81376D04681E6D7400199D3AABD99424
```

До Magisk команда `su 0` выдавала UID 0 без персонального подтверждения.
Активный Magisk заменяет видимый путь на управляемый `su -> ./magisk` и хранит
решения в своей базе. Это улучшение действует только пока Magisk загружается.
Если Magisk отключен или восстановлен stock `init_boot`, штатный открытый su
возвращается. Полное устранение требует проверенной пересборки `system` и AVB,
а не только Magisk-модуля.

### 3. Сетевой ADB - высокий

Официальный vendor-init выполняет:

```text
setprop service.adb.tcp.port 1325
```

В product build.prop также находится `persist.adb.tcp.port=5555`. На живой
приставке ADB слушает `0.0.0.0:1325`, `adb_enabled=1`, сборка `ro.debuggable=1`.
Даже при наличии авторизации ключом это ненужная удаленная поверхность атаки.
Временный Magisk-root для `com.android.shell` после проверки был отозван, но
сам ADB-порт остается включенным vendor-скриптом.

### 4. Разблокированный загрузчик - высокий при физическом доступе

После установки Magisk подтверждены:

```text
ro.boot.flash.locked=0
ro.boot.vbmeta.device_state=unlocked
ro.boot.verifiedbootstate=orange
```

Разблокированный загрузчик позволяет загрузить или записать неподписанный
образ. dm-verity для системных разделов остается enforcing, но аппаратная цепь
доверия уже не гарантирует только доверенную ОС.

### 5. Устаревшие исправления безопасности - высокий

Официальный OTA сообщает security patch level `2024-03-05`. На дату проверки
актуальный Android bulletin уже имеет уровень `2026-07-05`. Это более двух лет
неполученных платформенных, kernel и SoC-исправлений.

### 6. userdebug/test-keys - высокий

Официальная сборка имеет:

```text
ro.build.type=userdebug
ro.build.tags=test-keys
ro.debuggable=1
```

Это отладочный профиль с расширенными диагностическими возможностями и более
слабой моделью доверия, чем production `user/release-keys`.

## Средние риски

### AptoideTV Mod V.R

Официальный product/preinstall содержит `AptoideTV.apk`; live-версия:
`5.1.2 Mod V.R`. Это альтернативный магазин с неустановленной цепочкой
поставки. Наличие не доказывает заражение, но существенно расширяет риск
установки неподписанных или подмененных APK. Рекомендуется удалить/отключить.

### Установка из неизвестных источников

Live-значение `install_non_market_apps=1`. После завершения настройки его
следует отключить там, где это не ломает нужный сценарий обновлений.

### STESH Modifier подписан debug-ключом

Приложение имеет постоянное разрешение Magisk-root, но текущая тестовая сборка
подписана Android debug key. Для распространения нужен отдельный закрытый
release-ключ, офлайн-хранение ключа и публикация SHA-256 каждой версии.

### Разрешения STESH TV Search

`ua.tvsearch.app` запрашивает Internet, микрофон, приблизительную геолокацию,
Wake Lock, чтение видео и `REQUEST_INSTALL_PACKAGES`. Для голосового поиска
микрофон ожидаем, но геолокацию, видео и установку APK нужно выдавать только
при реально используемой функции.

### WebView-приложения

Приложения Подписок и ТВ Боксов запрашивают только Internet и состояние сети,
но отображают удаленный контент. Их безопасность зависит от HTTPS, сервера,
редиректов и отсутствия опасного JavaScript bridge.

### Magisk-модули

Любой Magisk-модуль выполняется с root при загрузке. Текущая анимация содержит
только overlay-файл, а guard-модуль - минимальный overlay. Устанавливать другие
модули можно только после проверки источника и хэша. Ошибка модуля способна
вызвать bootloop.

## Подтвержденные положительные свойства

- Magisk 30.7 взят из официального выпуска и установлен в init_boot именно
  этой NEXON, а не donor-устройства.
- Исходный `init_boot` из OTA и сохраненный stock-образ совпадают по SHA-256.
- В неактивный `init_boot` возвращается проверенный стоковый образ, затем Magisk записывается в `init_boot` активного слота (`a` или `b`).
- `system/product/vendor` остаются read-only EROFS, dm-verity сообщает
  enforcing.
- Root для ADB shell после диагностики отозван; разрешен только STESH Modifier.
- Модификатор не запрашивает сеть, микрофон или доступ к файлам; в manifest
  только Boot Completed и Foreground Service. Однако Magisk-root важнее
  manifest-ограничений, поэтому доверие к подписи APK обязательно.
- Официальный NEXON OTA не содержит подтвержденных SlimBOX persistence-скриптов.

## Приоритетный план усиления

1. Добавить в модификатор обратимый профиль `Отключить сетевой ADB`, который
   после настройки закрывает TCP 1325 и не выдает root оболочке.
2. Удалить/отключить `cm.aptoidetv.pt` и отключить неизвестные источники.
3. Подписать STESH Modifier отдельным production release-ключом.
4. Проверить Play Protect и сертификацию устройства; не считать наличие Google
   Play доказательством сертификации.
5. Инвентаризировать владельцев остальных сетевых портов до выпуска.
6. Не переключать SELinux в enforcing одной командой: сначала собрать AVC-
   логи, подготовить vendor policy и провести отдельный boot-control тест.
7. Для реального устранения stock su подготовить отдельную пересборку
   system/AVB с аварийным откатом. Magisk overlay не решает этот риск, когда
   Magisk не загружен.
8. Использовать отдельную VLAN/гостевую Wi-Fi сеть без доступа к NAS, камерам и
   административным интерфейсам маршрутизатора.

## Вердикт

Magisk делает root заметно контролируемее штатного NEXON `su`, а наши изменения
не добавляют SlimBOX vendor-слой. Но прошивка пока остается средне-высокого
риска из-за permissive SELinux, сетевого ADB, старого security patch level,
userdebug/test-keys и разблокированного загрузчика. Называть ее безопасной или
production-ready пока нельзя.
