Some checks failed
Published content check / validate (push) Failing after 21s
В статью добавлен раздел о том, что лежит в панельном образе МОС от 26 октября 2026: uds-system-agent 3.1.0, mos-identify 4.3 и dit-support 1.8.368 есть, пакета mesh-agent-lesson-log нет. Раздел «Что делать» переписан в пошаговую инструкцию для администратора: проверка, сохранение следов, обратимая остановка, удаление, проверка результата и чего делать не стоит. Владелец адреса из версии 0.1.3 подтверждён через RDAP, добавлен источник про пересказы в Telegram с оговоркой об их оценках. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
317 lines
56 KiB
Markdown
317 lines
56 KiB
Markdown
---
|
||
date: 2026-11-04
|
||
tags:
|
||
- школы
|
||
- москва
|
||
- слежка
|
||
- приватность
|
||
- аудиозапись
|
||
- телеметрия
|
||
- мос
|
||
- дит
|
||
aliases:
|
||
- Прослушка в школах Москвы
|
||
- mesh-agent-lesson-log что это
|
||
- Интерактивные панели записывают звук в классе
|
||
- Как удалить mesh-agent-lesson-log
|
||
- uds-system-agent что это
|
||
- МОС Московская электронная школа телеметрия
|
||
- Мостех панель микрофон аудиозапись уроков
|
||
- ДИТ Москвы записывает уроки
|
||
description: "Что известно о скрытой аудиозаписи на интерактивных панелях московских школ: пакет mesh-agent-lesson-log, сервер ДИТ, что проверено и как это убрать."
|
||
image: attachments/moscow-schools-audio-recording-header.jpg
|
||
link: https://zona.media/news/2026/11/03/shkola-proslushka
|
||
---
|
||
|
||
> [!mirror] Резервное зеркало
|
||
> Актуальная версия этой страницы — на основной вики: [jzesawgjsz.zapret.moe/moscow-schools-audio-recording-november-2026](https://jzesawgjsz.zapret.moe/moscow-schools-audio-recording-november-2026)
|
||
|
||
# 🎙 Прослушка в московских школах: что делает mesh-agent-lesson-log на интерактивных панелях и что в этом проверено
|
||
|
||
![[moscow-schools-audio-recording-header.jpg]]
|
||
|
||
> [!info] О чём заметка
|
||
> 3 ноября 2026 года независимый исследователь опубликовал разбор пакета `mesh-agent-lesson-log`, который, по его данным, стоит на интерактивных панелях московских школ и по команде сервера записывает звук в классе. «Медиазона» скачала тот же пакет и подтвердила выводы разбора. Здесь собрано, что именно делает программа, чем отличаются две её версии, что проверено при подготовке заметки, а что остаётся утверждением авторов, и что с этим можно сделать.
|
||
|
||
> [!warning] Что установлено, а что нет
|
||
> Разбор пакета, его конфигурации и подписи можно повторить на любом компьютере, и при подготовке заметки это сделано (см. раздел «Что проверено»). Не проверено и опирается на слова автора исследования и анонимного источника «Медиазоны»: на скольких панелях это стоит, ведётся ли запись каждый день, куда записи уходят после школьного сервера и кто их слушает. Департамент информационных технологий Москвы на запрос «Медиазоны» не ответил.
|
||
|
||
## TL;DR
|
||
|
||
- 3 ноября 2026 года вышел [разбор пакета mesh-agent-lesson-log](https://ravyn-hollow.github.io/mesh-agent-lesson-log/) от человека, который работает в одной из московских школ; [«Медиазона» скачала пакет и подтвердила выводы](https://zona.media/news/2026/11/03/shkola-proslushka).
|
||
- Пакет ставит фоновую службу: она сама запускается, раз в 10 минут спрашивает сервер на `school.mos.ru`, по заданию пишет звук из класса и отправляет файл на школьный сервер `MEDIASTG`. Версия 1.1.0 умеет снимать mute с микрофона на время записи.
|
||
- Между версиями 0.1.3 (июль 2026) и 1.1.0 (октябрь 2026) из пакета пропали цифровая подпись, уведомление на экране и слово «запись» в описании.
|
||
- Хэши, подпись, состав и бинарные файлы обоих пакетов при подготовке заметки сверены и совпали с разбором. Поведение на живой панели и судьба записей после школьного сервера не проверены.
|
||
- Школьные образы МОС в открытом реестре помечены как «со встроенной телеметрией»: в панельном образе при проверке нашлись `uds-system-agent`, `mos-identify` и `dit-support`, а агента записи нет, его ставят отдельно. Автор разбора советует удалить два пакета, но последствия для техподдержки не выяснены.
|
||
|
||
## Что случилось 3 ноября 2026
|
||
|
||
3 ноября в открытом доступе появился [разбор на GitHub Pages](https://ravyn-hollow.github.io/mesh-agent-lesson-log/) и [репозиторий с файлами доказательств](https://github.com/ravyn-hollow/mesh-agent-lesson-log): оба rpm-пакета, их конфигурации, юниты службы, фотографии журналов установки с трёх панелей. Автор [работает в московской школе](https://zona.media/news/2026/11/03/shkola-proslushka) и сам осматривал одну из панелей. Заголовок разбора идёт дальше, чем приведённые в нём данные: «на большинстве панелей». Три панели из разных школ показывают одну и ту же историю установок, но сколько их всего, разбор не считает.
|
||
|
||
В 16:03 (время указано на странице новости) [вышла новость «Медиазоны»](https://zona.media/news/2026/11/03/shkola-proslushka) с заголовком о «модуле для скрытой аудиозаписи». Издание тоже скачало пакет и пишет, что подтвердило выводы исследования. В 18:25 новость дополнили двумя фактами: комментарием источника и тем, что вечером 3 ноября ссылка на пакет перестала открываться. По разбору, файл версии 1.1.0 лежал в облаке `mostech-cloud.mos.ru`, которое принадлежит ДИТ, и был удалён после публикаций в СМИ. Автор успел сохранить копию, поэтому проверить пакет по-прежнему можно.
|
||
|
||
## Что такое МОС, ДИТ и интерактивные панели
|
||
|
||
За последние годы московские классы получили ноутбуки, моноблоки и интерактивные панели. Закупает технику Департамент информационных технологий Москвы (ДИТ), а сами школы подчиняются Департаменту образования и науки. По [данным «Медиазоны»](https://zona.media/news/2026/11/03/shkola-proslushka), с 2022 года компьютеры и панели в школах столицы работают на операционной системе «Московской электронной школы» (МОС): это дистрибутив Linux на пакетной базе ROSA, [его образы лежат в открытом реестре](https://hub.mos.ru/mos/iso) на платформе `hub.mos.ru` («Мос.Хаб», по описанию разбора, совместная разработка ДИТ).
|
||
|
||
Интерактивная панель заменяет в классе меловую или маркерную доску: это большой сенсорный экран, к которому подключён встроенный компьютерный модуль. [Сообщество школьных администраторов it-help-school.ru](https://it-help-school.ru/%D0%9F%D0%B0%D0%BD%D0%B5%D0%BB%D1%8C_%D0%9C%D0%BE%D1%81%D1%82%D0%B5%D1%85) описывает панели «Мостех» как экран на Android со встроенным модулем, где работает МОС. Новые панели, по словам автора разбора, приходят с МОС уже установленной.
|
||
|
||
![[moscow-schools-panel-mostech-no-signal.png]]
|
||
|
||
*Интерактивная панель «Мостех» в классе. На экране сообщение «No signal», значок в центре изображает встроенный компьютерный модуль. Снимок из материалов исследования.*
|
||
|
||
Программы в такой системе ставятся пакетами: файлами `.rpm`, которые устанавливает и удаляет команда `dnf`. Она же хранит журнал: `dnf history` показывает, какую команду когда выполнили. Этот журнал и стал главным вещественным доказательством, потому что по нему видно, как на панель попал нужный пакет.
|
||
|
||
Есть и второй, более раннего происхождения элемент: пакет `uds-system-agent`. Он входит в школьную сборку МОС на каждом компьютере и работает как канал удалённого администрирования: по словам автора разбора, через него массово меняли обои рабочего стола, чтобы рекламировать городские события. Пока речь шла об обоях, вреда в этом не видели. По версии автора разбора, через тот же канал в августе 2026 года на панели начали ставить пакет с другой задачей: журналы `dnf` показывают, что в это время `uds-system-agent` обновлялся, а следом ставился новый пакет.
|
||
|
||
## Что делает пакет mesh-agent-lesson-log
|
||
|
||
Название пакета можно перевести как «агент журнала урока». Установленный в систему, он состоит из программы `/usr/bin/mesh-agent-lesson-log`, конфигурации `/etc/mesh-agent/config.json`, описания службы для `systemd` и пресета. Программа написана на языке Go: версия 0.1.3 собрана на Go 1.25.11, версия 1.1.0 на Go 1.26.5. В пакете нет исходного кода, но у бинарных файлов сохранились имена функций, и по ним читается поведение.
|
||
|
||
![[moscow-schools-agent-pipeline.png]]
|
||
|
||
### Запуск без участия администратора
|
||
|
||
Пресет `systemd` (`90-mesh-agent-lesson-log.preset`) состоит из одной строки `enable mesh-agent-lesson-log.service`. Это значит, что после установки служба включается сама, и никто не должен её запускать. Служба работает от отдельного пользователя `mesh-agent`, у которого нет оболочки (`/sbin/nologin`) и есть дополнительная группа `audio`: именно она даёт доступ к микрофонам. В описании службы стоят `Restart=always` и `RestartSec=10`, то есть упавшая программа поднимается через 10 секунд.
|
||
|
||
Проще говоря: после установки пакета на панели начинает работать невидимая для учителя программа, у которой есть право слушать микрофон и которая сама перезапускается, если её остановить.
|
||
|
||
### Как приходит задание
|
||
|
||
Программа не записывает звук непрерывно: она ждёт заданий от сервера. В версии 1.1.0 в конфигурации указан адрес `https://school.mos.ru/api/speech-analytics/internal/v1/agent`, интервал опроса 600 секунд. В пути виден сегмент `speech-analytics`, то есть «речевая аналитика». Серверу программа показывается встроенным ключом доступа: [по разбору, он вшит в бинарный файл и дословно записан в README пакета](https://ravyn-hollow.github.io/mesh-agent-lesson-log/). Ключ здесь не приводится: он не нужен для понимания схемы, и повторять его в открытой заметке незачем.
|
||
|
||
Задание может быть отменено и самим сервером: в бинарном файле версии 1.1.0 есть строка «recording cancelled because job was removed by server». Статусы заданий (`SCHEDULED`, `RECORDING`, `UPLOADING`, `UPLOAD_FAILURE`) прописаны в обеих версиях.
|
||
|
||
### Как записывается звук и куда он идёт
|
||
|
||
Запись делает стандартная программа `arecord`, сжатие в формат OPUS выполняет `ffmpeg`. Программа сама выбирает микрофон: по именам функций она различает USB-устройства и встроенные звуковые карты и оценивает уровень сигнала записи. В версии 1.1.0 добавлена ещё одна возможность. В бинарном файле есть функции `temporaryUnmute`, `readMuteState` и `probeWithTemporaryUnmute`. По описанию автора, программа на время записи снимает с микрофона mute (программное выключение звука) через переключатели ALSA, то есть выключенный в системе микрофон записи не останавливает. Как именно эти функции вызываются, без запуска программы проверить нельзя, поэтому формулировка остаётся описанием автора разбора.
|
||
|
||
Готовый файл программа отправляет на общую сетевую папку `MEDIASTG` (по протоколу SMB, порт 445, имя папки `in`) либо загружает по HTTP как форму с полями `file` и `metadata`. Обе возможности есть в строках бинарного файла. По разбору, `MEDIASTG` это сервер загрузки в самом школьном здании, подконтрольный ДИТ. Локальная копия на панели после отправки удаляется: в конфигурации стоит срок хранения успешных записей 24 часа, а в строках есть `cleanup: job=%s deleted`. В версии 0.1.3 есть и строка `local recording was discarded`: по разбору, при запуске остатки прежних записей отбрасываются; в 1.1.0 такой строки нет.
|
||
|
||
### Что собирается кроме звука
|
||
|
||
Программа собирает сведения об устройстве, операционной системе и сетевых интерфейсах, включая MAC-адрес шлюза (аппаратный адрес маршрутизатора в школьной сети). Это видно по именам функций `collectDeviceInfo`, `collectNetworkInterfaces` и `collectOSInfo`, а в версии 1.1.0 ещё и `readUDSAgentID`: по разбору, она читает идентификатор агента `uds-system-agent`, то есть связывает запись с этой панелью в системе удалённого администрирования.
|
||
|
||
## Две версии: что изменилось с июля по октябрь
|
||
|
||
В разборе две версии: ранняя 0.1.3 и актуальная 1.1.0. По тому же разбору, 0.1.3 в школах массово не ставили, а на панелях стоят более поздние сборки.
|
||
|
||
![[moscow-schools-agent-versions-before-after.png]]
|
||
|
||
Подпись пакета важна по такой причине. Цифровая подпись показывает, что пакет собрал владелец определённого ключа, и менеджер пакетов проверяет её автоматически. По разбору, ключ МОС прописан как доверенный в каждой установке системы: он лежит в пакете `mostech-repos-keys` официального репозитория, а отпечаток можно сверить по приведённым там командам. Версия 0.1.3 подписана этим ключом, принадлежащим `abf@os.mos.ru`, то есть сборочной инфраструктуре МОС. У версии 1.1.0 подписи нет совсем. Установке это, скорее всего, не мешает: [по документации dnf](https://dnf.readthedocs.io/en/latest/conf_ref.html) параметр проверки подписи для локальных файлов (`localpkg_gpgcheck`) по умолчанию выключен, хотя итог зависит и от политики безопасности rpm на конкретной машине, а в журналах пакет ставится именно из локального файла в `/tmp`. Зато подпись перестала быть доказательством, что пакет собран в доверенной сборке.
|
||
|
||
Метаданные поменялись тоже. По данным разбора, в 0.1.3 краткое описание было «Агент для аудиозаписи урока», а в 1.1.0 оно стало «Агент обеспечивает проведение урока», и слово «запись» из описания исчезло. В английских полях заголовка при подготовке заметки прочитано соответствующее: «audio recording of the lesson» у 0.1.3 и «lesson delivery» у 1.1.0. Из пакета ушёл и скрипт `kde-notify`, который показывал на рабочем столе уведомление о начале записи; в 1.1.0 его нет, и об этой функции в строках бинарного файла не осталось упоминаний. В конфигурации сервер заданий сменился: в 0.1.3 это был голый IP-адрес хостинга по открытому HTTP с опросом раз в 30 секунд (по данным разбора, адрес принадлежит сети Selectel), в 1.1.0 это `school.mos.ru` по HTTPS с опросом раз в 10 минут. Автор разбора читает переход на адрес московского портала как признак того, что задачи теперь идут через инфраструктуру ДИТ; прямых доказательств этого, кроме самого адреса, в пакете нет.
|
||
|
||
Авторы разбора обращают внимание ещё на одну деталь: README версии 1.1.0, по стилю текста, написан нейросетью, и попал в распространяемый пакет, судя по всему, случайно, потому что в нём указан рабочий ключ доступа.
|
||
|
||
## Как пакет попал на панели
|
||
|
||
В разборе опубликованы фотографии вывода `dnf history` с трёх панелей из разных школ. На каждой видна одна и та же цепочка: пакет ставится командой `install -y` из файла в каталоге `/tmp`, и после установки файл оттуда исчезает. Такого набора действий нет в обычной жизни администратора: он не берёт пакет из репозитория, а получает файл по сети и сразу ставит его. Рядом с этими строками видны переустановки `uds-system-agent`, а также пакетов `mos-identify` и `dit-support`.
|
||
|
||
![[moscow-schools-dnf-history-panel-1.jpg]]
|
||
|
||
*Журнал `dnf history` первой панели. Имена пользователей и дни в датах закрыты автором разбора.*
|
||
|
||
Цепочка версий на фотографиях читается так: сначала `0.1.7`, затем файл без указания версии, дальше `1.0.1`, `1.0.2`, обновление `up -y`, `1.1.0-1`, откат на `1.0.2` (в журнале первой панели он помечен как Downgrade) и окончательно `1.1.0-2`. Даты установок в журналах относятся к промежутку с августа по октябрь 2026 года, точные дни закрыты. Одинаковые цепочки на трёх машинах указывают, как пишет автор, на массовую установку по сценарию, а не вручную: администратор вряд ли трижды в точности повторил бы откат и повторную установку.
|
||
|
||
![[moscow-schools-dnf-history-panel-2.jpg]]
|
||
|
||
![[moscow-schools-dnf-history-panel-3.jpg]]
|
||
|
||
![[moscow-schools-agent-timeline.png]]
|
||
|
||
При очном осмотре одной из панелей автор нашёл каталог заданий `/var/lib/cloudcom/agent/jobs`: он указан в конфигурации как место записей. Почти все папки в нём были пустыми, самая старая создана 16 октября 2026 года, а в последней лежал аудиофайл. Это единичное наблюдение по одной панели; оно показывает, что программа хотя бы один раз записала звук, но не говорит о частоте и объёме.
|
||
|
||
## Привязка записи к кабинету
|
||
|
||
Ещё одна деталь связана с тем, как панель вводят в эксплуатацию. По описанию исследования, при установке МОС на интерактивную панель запускается приложение регистрации устройства, и техник должен указать, к какой школе, корпусу и кабинету относится техника. В исследовании показаны скриншоты этого приложения на чистой установке МОС 12 в виртуальной машине: на вкладке «Идентификация устройства» стоят поля «ЕКИС организации», «Номер или наименование образовательной организации» и «Номер или название или адрес корпуса», а на вкладке «Имя компьютера» имя собирается из номеров школы, корпуса, кабинета и устройства.
|
||
|
||
![[moscow-schools-mos-identify-device-tab.png]]
|
||
|
||
![[moscow-schools-mos-identify-computer-name-tab.png]]
|
||
|
||
*Приложение регистрации устройства `mos-identify` на чистой установке МОС в виртуальной машине. Снимки опубликованы автором разбора.*
|
||
|
||
Отсюда автор делает вывод, что у каждой панели в общей базе есть адрес вплоть до кабинета, и у каждой записи есть источник с известным местом. Это логичный вывод, но он остаётся выводом: сама программа передаёт серверу идентификатор агента, сведения об устройстве и MAC-адрес шлюза, а то, как сервер сопоставляет их с кабинетом, из пакета не видно. Источник «Медиазоны» в сфере московского образования [описал то же самое со своей стороны](https://zona.media/news/2026/11/03/shkola-proslushka): вся техника расписана по кабинетам и ответственным, а система автоматически сопоставляет, кого и в какое время записывают.
|
||
|
||
## Что говорят ДИТ и осведомлённые люди
|
||
|
||
ДИТ Москвы на запрос «Медиазоны» не ответил, и другого публичного комментария ведомства в проверенных источниках нет. Единственное объяснение звучит со слов анонимного источника издания: официально функция нужна, чтобы сопоставлять календарно-тематическое планирование с тем, что фактически преподаётся на уроке. По словам того же собеседника, записи изначально собирались обрабатывать нейросетью, но результат пока неудовлетворительный, и систему будут дообучать с участием людей. Это слова одного человека без имени, подтверждения из других источников нет.
|
||
|
||
Тот же источник сказал, что интерактивные панели не единственные устройства со звукозаписью: аналогичные функции есть и в ноутбуках экосистемы «Мостех». Проверкой это не подтверждено, и в разборе пакета речь идёт только о панелях.
|
||
|
||
Что касается уведомления людей, автор разбора пишет, что ни персонал, ни учеников официально не предупреждали. По его данным, администрация школ, похоже, знает об этом неофициально: один из учителей в переписке спрашивал коллег, правда ли, что новые доски пишут то, что происходит на уроке, и добавил, что накануне директор говорил им о том, что доски настроены на запись звука. Это передача слов из исследования, самой переписки заметка не видела.
|
||
|
||
## Что проверено при подготовке заметки
|
||
|
||
При подготовке заметки опубликованные в репозитории исследователя файлы были скачаны и разобраны на хосте без запуска чего-либо из пакетов. Хэши сверены, структура rpm прочитана собственным разбором заголовка, а подпись проверена программой `gpg` в пустой связке ключей с официальным ключом МОС.
|
||
|
||
| Утверждение | Результат |
|
||
|---|---|
|
||
| SHA-256 обоих rpm и файла ключа `RPM-GPG-KEY-MOS` совпадают с опубликованными | подтверждено |
|
||
| Версия 0.1.3 подписана ключом `F307F3F0F3EB3B9CA9EC4EF2507EEA45722F23CD` (`abf@os.mos.ru`) | подтверждено: подпись EdDSA верна, время подписи 17:59:03 по Москве 18 июля 2026 |
|
||
| Та же подпись на заголовке версии 1.1.0 | не проходит (контрольная проверка, показывает, что проверка различает пакеты) |
|
||
| У версии 1.1.0 нет подписи | подтверждено: в заголовке остались только контрольные суммы SHA1 и SHA256 |
|
||
| Время сборки и имена сборочных машин | подтверждено: 18 июля 2026 (`mos-hz6phq`) и 9 октября 2026 (`mos-nd2jsf`) |
|
||
| Службе дан автозапуск, пользователь `mesh-agent`, группа `audio`, перезапуск через 10 секунд | подтверждено по файлам пакета |
|
||
| Адреса, интервалы опроса и пути в конфигурациях | подтверждено |
|
||
| У 0.1.3 есть функции уведомления (`notifyRecordingStart`, скрипт `kde-notify`), нет `temporaryUnmute` | подтверждено по строкам бинарного файла |
|
||
| У 1.1.0 нет уведомления, есть `temporaryUnmute`, `readMuteState`, `probeWithTemporaryUnmute` | подтверждено по строкам бинарного файла |
|
||
| Принадлежность ключа `abf@os.mos.ru` официальному репозиторию МОС | не проверено: `os.mos.ru` с хоста не открывается, отпечаток сверен только с файлом из репозитория исследователя |
|
||
| Исходный код по адресу из метаданных обоих пакетов (`hub.mos.ru/mos/cloudcom/mesh-agent`) | недоступен посторонним: адрес перенаправляет на страницу входа, программный интерфейс отвечает «Project Not Found» |
|
||
| Владелец IP-адреса из версии 0.1.3 | подтверждено через RDAP регистратора RIPE: сеть SELECTEL-NET, Россия (обычный `whois` с хоста не отвечает) |
|
||
| SHA-256 панельного образа МОС | подтверждено: совпал с указанным в реестре |
|
||
| В панельном образе есть `uds-system-agent`, `mos-identify`, `dit-support` и нет `mesh-agent-lesson-log` | подтверждено по базе rpm и списку файлов образа |
|
||
| Запись на живой панели, объём и частота | не проверено: нужна сама панель |
|
||
| Объяснение ДИТ и обработка записей нейросетью | не проверено: слова анонимного источника |
|
||
|
||
Воспроизвести проверку можно и на любом компьютере. Файлы лежат [в репозитории исследователя](https://github.com/ravyn-hollow/mesh-agent-lesson-log), порядок в разборе такой:
|
||
|
||
```bash
|
||
sha256sum mesh-agent-lesson-log-*.rpm
|
||
mkdir /tmp/clean-rpmdb
|
||
rpm --dbpath /tmp/clean-rpmdb --import RPM-GPG-KEY-MOS
|
||
rpm --dbpath /tmp/clean-rpmdb -K mesh-agent-lesson-log-1.1.0-2.gitea3ac2.1.x86_64.rpm
|
||
mkdir ex && cd ex
|
||
rpm2cpio ../mesh-agent-lesson-log-1.1.0-2.gitea3ac2.1.x86_64.rpm | cpio -idmv
|
||
cat etc/mesh-agent/config.json
|
||
```
|
||
|
||
Распаковывать пакет достаточно, запускать программу из него не нужно, и делать этого не стоит.
|
||
|
||
## Где взять образы МОС и как их сверить
|
||
|
||
README открытого реестра `hub.mos.ru/mos/iso` делит образы на три. [Образ «для всех пользователей»](https://hub.mos.ru/mos/iso/-/packages/33) назван «без телеметрии, без техподдержки ДИТ». Два школьных образа названы «с встроенной телеметрией и системой техподдержки ДИТ»: [для компьютеров и ноутбуков](https://hub.mos.ru/mos/iso/-/packages/37) и [для интерактивных панелей](https://hub.mos.ru/mos/iso/-/packages/38). Зеркало с теми же файлами и предыдущим релизом лежит [на Яндекс.Диске](https://disk.yandex.ru/d/q4zw63ceVznX5A). Все три образа октября 2026 собраны 26 октября, [список изменений сборки лежит в реестре](https://hub.mos.ru/mos/iso/-/blob/main/CHANGELOG.md).
|
||
|
||
| Образ | Для кого | Размер | SHA-256 по данным реестра |
|
||
|---|---|---|---|
|
||
| `MOS_2021.1_MOS-V_x86_64_261026.iso` | все пользователи, без телеметрии | 5,54 ГБ | `7738ede5e05d58ef5cb24c73df1b7f714b90dd192e0f2e80addb4e8712df2c51` |
|
||
| `MOS_2021.1_MOS-D_x86_64_261026.iso` | школьные компьютеры и ноутбуки | 5,76 ГБ | `4cdbbb2752fa90c12ad8f38fe6acbec99d1136c601bc39c0d475db17f0e6fa40` |
|
||
| `MOS_2021.1_MOS-P_x86_64_261026.iso` | школьные интерактивные панели | 5,76 ГБ | `01576452d83a99ea1828a82e96f096a664d9619565c081b73d77eece97d23bc7` |
|
||
| `MOS-D_x86_64_240201.iso` (предыдущий релиз, зеркало) | школьные компьютеры, февраль 2024 | 4,69 ГБ | `38b3e2b61c56ea9038f35a24fbff8f623c974f5a28ccc38ef4455d8ee70a15a5` |
|
||
|
||
Контрольная сумма панельного образа пересчитана на хосте и совпала с указанной в реестре; суммы остальных трёх образов взяты из ответов API реестра и Яндекс.Диска и целиком не пересчитывались.
|
||
|
||
### Что лежит в панельном образе
|
||
|
||
Панельный образ скачан целиком и прочитан без запуска и без подключения к системе хоста: по списку файлов и по базе пакетов rpm. Он устроен как загрузочный диск, внутри которого лежит корневая система (файл `LiveOS/squashfs.img` с вложенным образом ext4 на 3377 пакетов).
|
||
|
||
В базе есть три пакета, о которых говорит разбор: `uds-system-agent` 3.1.0 (в описании «Client for UDS»), `mos-identify` 4.3 (идентификация устройства в МОС) и `dit-support` 1.8.368 (в описании «Cloud-Based Solution for Remote Access to Any Desktop», то есть облачное решение для удалённого доступа к рабочему столу). Службе `uds-system-agent` пресет `enable` включает автозапуск, при сбое она перезапускается через 5 секунд, а в её описании не указан пользователь, поэтому по умолчанию в `systemd` она работает от root; это следует из файла службы, сам запуск не проверялся. В конфигурации агента прописан адрес `mostech-uds.mos.ru` и путь `/uds/api/devices/register`: судя по пути, агент регистрирует устройство на этом сервере. Приложение `mos-identify` запускается при входе пользователя в систему (запись в `/etc/xdg/mos/autostart`). Значения секретных полей конфигурации здесь не приводятся.
|
||
|
||
Пакета `mesh-agent-lesson-log` в образе нет: его нет в базе rpm, а в списке файлов не встречаются ни `mesh-agent`, ни `cloudcom`, ни `speech-analytics`. Образ собран 26 октября, когда версия 1.1.0 уже существовала (её собрали 9 октября), так что отсутствие агента не объясняется тем, что его ещё не было. Это согласуется с разбором: агента записи в чистый образ не кладут, его ставят отдельно файлом из `/tmp`, а канал для этого, `uds-system-agent`, в школьном образе уже стоит. Из этого не следует, что агента нет на каждой панели, и тем более ничего не сказано о том, как работает установка на живых панелях. Образ «для всех пользователей» без телеметрии не открывали: то, что в нём нет `uds-system-agent`, остаётся словами README реестра.
|
||
|
||
## Как проверить панель и убрать агент: инструкция для администратора
|
||
|
||
Все команды ниже предназначены для человека, у которого есть права администратора на панели и разрешение школы на такие действия. Это стандартные команды для систем на rpm, они взяты из разбора и документации; на живой панели при подготовке заметки они не запускались, потому что панели под рукой не было. Каждый шаг можно остановить: первые три ничего не удаляют.
|
||
|
||
### Шаг 1. Проверить, стоит ли агент
|
||
|
||
Эти команды только читают состояние и ничего не меняют. Если пакет не установлен, `rpm` ответит `is not installed`, а остальные команды сообщат, что службы нет.
|
||
|
||
```bash
|
||
rpm -q mesh-agent-lesson-log uds-system-agent
|
||
rpm -qi mesh-agent-lesson-log
|
||
systemctl is-enabled mesh-agent-lesson-log
|
||
systemctl status mesh-agent-lesson-log --no-pager
|
||
dnf history
|
||
ls -l /var/lib/cloudcom/agent/jobs
|
||
```
|
||
|
||
`rpm -qi` покажет версию и строку `Signature`: у 0.1.3 в ней будет ключ, у 1.1.0 по разбору её не будет (`(none)`). `dnf history` покажет, когда и какой командой ставили пакет; прав администратора он не требует. Папка `jobs` это место заданий из конфигурации: если в ней есть подпапки, программа создавала задания записи, а даты подпапок покажут когда.
|
||
|
||
### Шаг 2. Сохранить следы до удаления
|
||
|
||
После удаления восстановить историю будет нельзя, поэтому сначала сфотографируйте экран с выводом `rpm -qi` и `dnf history` и перепишите версию пакета и даты. Сам конфигурационный файл `/etc/mesh-agent/config.json` можно сохранить как текст: в версии 1.1.0 в нём есть адрес сервера заданий и сетевой папки. Сами аудиозаписи копировать на личные устройства не нужно: это записи голосов людей, и у них должен быть законный владелец.
|
||
|
||
### Шаг 3. Остановить службу без удаления
|
||
|
||
Это обратимо: служба перестанет работать и не запустится при следующей загрузке, но пакет останется на месте. В описании службы стоит `Restart=always`, но этот параметр срабатывает только при сбое, а после явной остановки программа не поднимается.
|
||
|
||
```bash
|
||
sudo systemctl disable --now mesh-agent-lesson-log.service
|
||
systemctl is-active mesh-agent-lesson-log
|
||
```
|
||
|
||
Ответ `inactive` значит, что служба остановлена.
|
||
|
||
### Шаг 4. Удалить пакет
|
||
|
||
Удаление убирает файлы пакета: программу, конфигурацию и описание службы. Служебный пользователь `mesh-agent` и каталог `/var/lib/cloudcom` при этом могут остаться, потому что их создают отдельные механизмы системы, а не файлы пакета. Что из них удалять и когда, решает администрация школы, но делать это стоит только после шага 2.
|
||
|
||
```bash
|
||
sudo dnf remove mesh-agent-lesson-log
|
||
```
|
||
|
||
Автор разбора советует удалить сразу два пакета одной командой:
|
||
|
||
```bash
|
||
sudo dnf -y remove mesh-agent-lesson-log uds-system-agent
|
||
```
|
||
|
||
`mesh-agent-lesson-log` это сам агент записи, а `uds-system-agent` школьный канал удалённого администрирования, через который агент по журналам ставился: в образе он работает от root, а по конфигурации регистрирует устройство на `mostech-uds.mos.ru`. Если снять только агента, а канал оставить, пакет теоретически могут поставить снова: журналы показывают, что он устанавливался и переустанавливался удалённо. Это вывод из журналов, а не проверенный факт. Но удаление `uds-system-agent` одновременно отключает ДИТ от удалённого управления панелью, а это решение шире самой записи. Дополнительно автор называет `mos-identify` (приложение регистрации устройства) и `dit-support` (приложение техподдержки, судя по описанию, для удалённого доступа к рабочему столу). Это рекомендация автора исследования, а не инструкция ДИТ. Что станет с техподдержкой и гарантией, если снять эти пакеты, не выяснено. По данным разбора, нормативных документов, которые требовали бы ставить на школьные компьютеры систему удалённого управления или агент записи, не нашлось; это тоже утверждение автора, юридической оценки заметка не даёт.
|
||
|
||
### Шаг 5. Убедиться, что агент не вернулся
|
||
|
||
Сразу после удаления проверьте, что пакета и процесса нет, и что в истории появилась запись об удалении. Затем повторите проверку через несколько дней и после перезагрузки: если в `dnf history` вдруг появилась новая установка, пакет поставили удалённо, и это важный факт для разговора со школой.
|
||
|
||
```bash
|
||
rpm -q mesh-agent-lesson-log
|
||
systemctl status mesh-agent-lesson-log --no-pager
|
||
pgrep -a mesh-agent
|
||
dnf history
|
||
```
|
||
|
||
Ответ `is not installed`, сообщение о том, что службы не существует, и пустой вывод `pgrep` значат, что агента нет.
|
||
|
||
### Чего делать не стоит
|
||
|
||
- Подбирать или обходить пароль администратора и взламывать школьную технику. Это может нарушить правила школы и закончиться разбирательством, а выяснить главное не поможет: удалять пакеты должен тот, у кого на это есть право.
|
||
- Выключать микрофон в настройках звука и считать это защитой. По описанию автора разбора, версия 1.1.0 на время записи снимает mute сама, поэтому выключенный в системе микрофон записи не останавливает.
|
||
- Стирать журналы, историю `dnf` или папку заданий до того, как зафиксированы данные. Это следы, которые нужны для вопроса к школе.
|
||
- Копировать аудиозаписи себе или публиковать их: это записи людей, в том числе детей.
|
||
- Без прав администратора можно лишь физически отключить внешний USB-микрофон или встроенный, если у панели есть аппаратный выключатель. По именам функций программа выбирает устройство из доступных, и без устройства записывать нечего, но это предположение, оно не проверялось.
|
||
|
||
### Если прав администратора нет
|
||
|
||
Учитель или родитель не обязаны ничего удалять сами. Проверить наличие агента без прав можно командой `dnf history`, а дальше стоит задать вопрос школе.
|
||
|
||
Разбор уже разошёлся по блогам, и вместе с ним ходят упрощённые инструкции для учителей. [Пост в канале kresik001 от 3 ноября 2026 года](https://t.me/kresik001/2160) пересказывает исследование почти дословно и новых данных не добавляет: фразы вроде «записывает несанкционированно» и вопрос к ДИТ, «что вы записываете и куда кладёте данные», это оценка и риторика автора канала, а не результат проверки. В пересказах для читателей советуют проверять панель командой `dnf history`: она не требует прав администратора, и в журнале видно, ставился ли пакет. Для удаления нужна команда `sudo dnf remove`, а значит пароль администратора; подбирать или обходить доступ к школьной технике не стоит, потому что это может нарушить правила школы и закончиться разбирательством, не помогая выяснить главное. Не стоит и называть запись урока «биометрическими данными»: ни разбор, ни «Медиазона» этого не утверждают, а правовая квалификация записи требует отдельной оценки, которой заметка не даёт.
|
||
|
||
Если вы родитель или учитель и хотите разобраться официально, разумно задать школе письменный вопрос: стоит ли на панелях агент записи, на каком основании, кто получает записи и как долго их хранят. Ни на один из этих вопросов открытые источники пока ответа не дают.
|
||
|
||
## Не только микрофон: ещё два сигнала из школ
|
||
|
||
Две вещи из той же осени относятся к цифровому следу школьников, но с аудиозаписью не связаны, поэтому здесь даны кратко и с оговорками. Первая: [katyusha.org от 26 октября 2026 года](https://katyusha.org/obrazovanie/vneurochka-unichtozhaet-obrazovanie-kak-dopolnitelnyie-zanyatiya-prevratili-v-obyazalovku-razlagayushhuyu-mozgi-i-sobirayushhuyu-czifrovoe-dose-na-nashix-shkolnikov.html) описывает информационное письмо Минпросвещения от 1 сентября 2026 года, которое расписывает внеурочные занятия на каждый день недели. Издание пишет, что в 7–11 классах после уроков набегает до двух-трёх часов занятий в день, а с 1 ноября вводится курс «Искусственный интеллект и информационная безопасность». Текст публицистический, оценки вроде «обязаловка, собирающая цифровое досье» принадлежат авторам издания, а расчёты нагрузки опираются на СанПиН 1.2.3685-21 в их трактовке; письмо при подготовке заметки не открывалось.
|
||
|
||
Вторая: фотография монитора с открытой страницей `edutest.obrnadzor.gov.ru` («Система тестирования», адрес заканчивается на `#task-27`), которая попала к автору заметки без пояснений. В видимой части таблицы ученик отмечает отношение к 19 субкультурам, от исторических реконструкторов и косплееров до «колумбайнеров (скулшутеров)» и уличных группировок, и среди столбцов есть «Я принадлежу к этой субкультуре». Кто снимал, когда и в какой школе, неизвестно, а по самой фотографии нельзя установить, кто и зачем собирает ответы, поэтому делать выводы о цели такого опроса рано.
|
||
|
||
![[moscow-schools-edutest-subcultures-survey.png]]
|
||
|
||
*Фотография экрана с опросом о субкультурах на странице edutest.obrnadzor.gov.ru. Источник и дата съёмки не установлены.*
|
||
|
||
## Источники
|
||
|
||
- [«Медиазона», 3 ноября 2026 — В интерактивных панелях московских школ нашли модуль для скрытой аудиозаписи](https://zona.media/news/2026/11/03/shkola-proslushka)
|
||
- [ravyn-hollow — разбор пакета mesh-agent-lesson-log (GitHub Pages)](https://ravyn-hollow.github.io/mesh-agent-lesson-log/)
|
||
- [ravyn-hollow — репозиторий с пакетами, конфигурациями и фотографиями (GitHub)](https://github.com/ravyn-hollow/mesh-agent-lesson-log)
|
||
- [МОС, реестр образов hub.mos.ru/mos/iso — README, три образа](https://hub.mos.ru/mos/iso)
|
||
- [МОС, образ для всех пользователей (пакет 33)](https://hub.mos.ru/mos/iso/-/packages/33)
|
||
- [МОС, образ для школьных компьютеров и ноутбуков (пакет 37)](https://hub.mos.ru/mos/iso/-/packages/37)
|
||
- [МОС, образ для школьных интерактивных панелей (пакет 38)](https://hub.mos.ru/mos/iso/-/packages/38)
|
||
- [МОС, журнал изменений сборок](https://hub.mos.ru/mos/iso/-/blob/main/CHANGELOG.md)
|
||
- [Зеркало образов МОС на Яндекс.Диске](https://disk.yandex.ru/d/q4zw63ceVznX5A)
|
||
- [it-help-school.ru — Панель Мостех](https://it-help-school.ru/%D0%9F%D0%B0%D0%BD%D0%B5%D0%BB%D1%8C_%D0%9C%D0%BE%D1%81%D1%82%D0%B5%D1%85)
|
||
- [Документация dnf — параметр localpkg_gpgcheck](https://dnf.readthedocs.io/en/latest/conf_ref.html)
|
||
- [Telegram-канал kresik001, 3 ноября 2026 — «Немного технической конспирологии вам в ленту»](https://t.me/kresik001/2160)
|
||
- [katyusha.org, 26 октября 2026 — Внеурочка уничтожает образование](https://katyusha.org/obrazovanie/vneurochka-unichtozhaet-obrazovanie-kak-dopolnitelnyie-zanyatiya-prevratili-v-obyazalovku-razlagayushhuyu-mozgi-i-sobirayushhuyu-czifrovoe-dose-na-nashix-shkolnikov.html)
|
||
|
||
## 📚 См. также
|
||
|
||
- [[nuc/00-overview|Сертификаты Минцифры (НУЦ)]] — ещё один пример государственного программного обеспечения на устройствах пользователей и риски доверенного корня
|
||
- [[Localhost-tracking-Meta-Yandex-SOCKS5|Localhost-атака Meta и Яндекса]] — как приложения собирают данные о человеке без его заметного участия
|
||
- [[banks-malware-scan-2027|Проверка устройства клиента банком]] — какие сведения об устройстве собирают приложения и как ограничить им доступ
|
||
|
||
---
|
||
|
||
> [!quote] 🤖 Эти статьи открыты — можно обучать на них ИИ
|
||
> При желании вы можете натренировать ИИ на наших статьях. Исходное форматирование доступно в Forgejo: [исходник этой заметки](https://cwdnvtsqdc.zapret.moe/zapretdiscordyoutube/todo/src/branch/main/moscow-schools-audio-recording-november-2026.md) · [скачать весь репозиторий одним zip-архивом](https://cwdnvtsqdc.zapret.moe/zapretdiscordyoutube/todo/archive/main.zip).
|