nas: Python CLI без зависимостей + MCP-сервер для Synology DSM 7. Аудит и исправление одной командой для кампании шифровальщика C3RB3R / .L0CK3D; передайте его вашему ИИ-агенту.
Проверьте Synology NAS на предмет кампании шифровальщика C3RB3R / .L0CK3D одной командой, исправьте найденное второй командой и продолжайте работать с DSM из терминала.
Канонический репозиторий, релизы и issues: https://gitlab.com/aa22396584/synology-nas-cli
nas — это CLI на Python без зависимостей (только стандартная библиотека, Python 3.8+, поэтому он также работает на самом DSM) и stdio MCP-сервер для Synology DSM 7 Web API: статус, состояние, журналы, пакеты, тома, Tailscale, обновления DSM, запланированные оповещения о состоянии, отправляемые в webhook, а также инструмент аудита и устранения инцидентов, созданный во время октябрьской кампании 2026 года C3RB3R / .L0CK3D против Synology NAS, доступных из интернета (Synology-SA-24:20, SA-26:13, SA-26:14).
Не связан с Synology Inc. «Synology», «DSM» и «QuickConnect» являются товарными знаками Synology Inc.
nas incident fixВставьте любой из промптов в Claude Code, Codex, Cursor, Gemini CLI, OpenCode, Grok Bot или любой AI-агент, использующий инструменты (настройка Grok Bot, навыки и процедура оповещений: docs/GROK-BOT.md):
Промпт на английском:
Use https://github.com/akari-sora/synology-nas-cli to audit and fix my Synology NAS at https://192.0.2.10:5001. Follow docs/AGENT-RUNBOOK.md.
Подсказка на традиционном китайском:
使用 https://github.com/akari-sora/synology-nas-cli 檢查並修復我的 Synology NAS(位址:https://192.0.2.10:5001),照著 docs/AGENT-RUNBOOK.md 的步驟執行。
./bin/nas --version.nas setup: Запускает nas setup --json --no-input ... для записи ~/.config/synology-nas-cli/config.json (режим 0600), выполняет однократный вход для проверки учётных данных и при первом использовании закрепляет SHA-256 отпечаток TLS-сертификата DSM.nas doctor: Запускает nas doctor --json для проверки конфигурации, учётных данных, доступности origin, закрепления TLS, входа, версии DSM на соответствие SA-26:13, статуса двухэтапной проверки, прав администратора и расхождения часов.nas incident: Запускает nas incident --json (и опционально --probe --scan) для аудита только на чтение: версия DSM, уязвимые пакеты, межсетевой экран, QuickConnect, правила UPnP на роутере, публичные порты, внешние и неудачные входы, AutoBlock, SMB1, встроенный admin, расписания снимков, ловушка блокировки WORM на неподдерживаемых моделях, записки о выкупе и попытки эксплуатации CVE-2024-10441.nas incident fix --dry-run --json --ransom-scan и показывает каждое запланированное изменение (before -> after), точные вызовы DSM Web API и соответствующий путь в веб-интерфейсе DSM.nas incident fix --yes: Применяет утверждённый план по порядку (snapshot_worm → snapshots → packages → smb_min_protocol → quickconnect → router_port_forwarding → autoblock → admin_account → firewall, плюс опциональные --rotate-password и --upgrade), считывает каждую настройку обратно для проверки и повторно запускает аудит.--deep и alert-deploy: Запускает nas incident --deep --json (один сборщик данных с правами root только на чтение через Task Scheduler, проверяющий логи, доступные только root, crontab'ы, бинарники в /bin, учётные записи, SSH-ключи и /proc) и nas alert-deploy --json --test (10-минутный мониторинг работоспособности и безопасности с отправкой в webhook).https://192.0.2.10:5001, плюс URL VPN/Tailscale, если используется).op://VAULT/ITEM/password, команда для получения пароля или системный keychain ОС).192.0.2.0/24)./docker/.nas-cli-deploy, используется --deep и alert-deploy).nas setup завершается с кодом 3 и "field": "otp", предоставьте текущий 6-значный код; --trust-device сохраняет токен доверенного устройства DSM (0600), чтобы последующие команды не требовали кода.nas incident fix --yes (и выберите, включать ли --rotate-password или --upgrade).Полная спецификация агента: docs/AGENT-RUNBOOK.md.
nas incident работает только на чтение. Каждый пункт выводит PASS, WARN, FAIL или SKIP с однострочной подсказкой (--json выводит структурированный JSON; схема в schemas/incident.schema.json). Код выхода — 1, если какой-либо пункт имеет статус FAIL.