# Результаты проверки Any AV 0.1.1 Дата: **06.11.2026**. Проверка выполнена на Linux amd64, Go 1.26.10. Это инженерный MVP, а не подтверждение промышленной эффективности антивируса. | Проверка | Результат | |---|---| | `go test -race ./...` | PASS, гонок не выявлено | | `go vet ./...` | PASS | | Кросс-сборка клиентов | PASS: Linux/Windows/macOS, amd64/arm64 | | Кросс-сборка сервера | PASS: Linux amd64/arm64 | | `bash scripts/smoke.sh` | PASS, реальные собранные бинарники и временный loopback-сервер | | `bash scripts/test-network-ns.sh` | PASS, nftables 1.0.9, отдельные user/network namespaces | | systemd units | PASS: `systemd-analyze --root verify`; это проверка unit-файлов, службы не устанавливались | | Bash/Python-сценарии | Синтаксис проверен; административный CLI и smoke выполнены | | `python3 scripts/check-installers.py` | PASS: восемь EXE/PKG/DEB/RPM, обе архитектуры; вложенные клиентские бинарники побайтно совпадают со сборкой | | `python3 scripts/test-linux-package.py` | PASS: настоящий dpkg в одноразовом chroot; install/remove/reinstall/отказ удаления и failed-upgrade, сохранение карантина | | Первоначальная настройка | PASS в smoke: подменённый бинарник не создаёт ready; повторная попытка использует прежнее место и включает готовность только после проверки подписи | ## Что проверялось - Активация, подпись лицензии и проверка онлайн; конкурентные попытки занять единственное место дают ровно одну успешную активацию. - Неавторизованные API-запросы отклоняются; статус не раскрывает ключи и хеши токенов. Повторный писатель state и повторная инициализация не допускаются. - Подпись баз и обновлений, подмена payload, откат sequence, повтор sequence с другим содержимым. Последняя рабочая база сохраняется при отказе обновления. - Передача клиентского бинарника по подписанному manifest, размер/SHA-256, запрет перезаписи существующего файла, обнаружение изменения бинарника. Скачивание будущей версии не подменяет закреплённый эталон уже установленной программы. - Полный SHA-256 файла и байтовая сигнатура, пересекающая границу 64 KiB; пропуск oversized/необычных файлов. Открытие конечного symlink запрещается; открытие FIFO не блокирует Unix-сканер при подмене файла. - EICAR: 68 байт, SHA-256 `275a021bbfb6489e54d471899f7db9d1663fc695ec2fe2a2c4538aabf651fd0f`. Проверяется только безопасный стандартный тестовый файл. - Зашифрованный карантин, отсутствие открытого содержимого в записи, восстановление исходных байтов, запрет перезаписи, отказ при изменении authenticated metadata. Изменившийся после обнаружения источник не удаляется. - Локальный clamd INSTREAM: передача байтов и ответ FOUND; удалённый незащищённый TCP запрещён. Отмена запроса прерывает зависший clamd, чтобы не задерживать разрешённое обслуживание. - HTTP/CONNECT: блокировка доменов/поддоменов, адресов IPv4/IPv6 и IPv4-mapped, приватных назначений и запрещённых портов. Разрешённые HTTP-запросы и CONNECT-туннель проходят; proxy credentials не передаются upstream. - Реальные пакеты в новом namespace: nft input/output блокируют IPv4/IPv6, разрешённые соединения проходят, повторное применение не дублирует правила. Подменённая база не меняет установленные правила. Удаление только тестовой таблицы восстанавливает соединение; namespace очищается при завершении. - Подписанное обслуживание: правильное устройство/действие/срок, однократность, запрет повторного использования и чужого устройства, настоящая остановка работающего агента и подтверждение уникального запроса. Разрешение остановки нельзя использовать как разрешение удаления. - Отзыв устройства закрывает его серверные операции. Локальный сканер с ранее проверенной базой продолжает работать. ## Размещение и домен **https://av.any-cloud.ru/**: опубликована статическая страница с демонстрацией и дистрибутивами; отдельный сертификат Let's Encrypt для этого имени. Nginx обслуживает только публичные файлы; `/v1/` возвращает 404. Постоянный сервер лицензирования/обновлений и endpoint-служба на сервере разработки не установлены. Общий системный firewall, маршруты и существующие SIEM/Any Firewall не изменялись. Испытания сканера используют временные файлы и loopback, nft — отдельный namespace. Пакетные сценарии испытаны в одноразовом chroot с неактивными заглушками `systemctl` и `nft`, без установки защиты на рабочий хост. ## Обязательные незакрытые проверки 1. Linux: полноценная установка службы на отдельной VM, нагрузка, сон/перезапуск, длительное обновление, корректное обслуживание и попытки отключения обычным пользователем. 2. Windows/macOS: настоящий запуск клиента и установщиков, разрешения ОС, SCM/launchd, native Windows Firewall, обновление/удаление и совместимость с существующей защитой. Сейчас подтверждена кросс-компиляция, а не работа на этих ОС. 3. Защита при открытии/запуске, системная сеть macOS, подписанные нативные драйверы/extensions и усиленная самозащита от администратора — ещё не реализованы. Это обязательные цели следующего этапа. 4. Реальные базы угроз, независимые испытания покрытия/ложных срабатываний, архивы, память и поведенческие сценарии, нагрузка на сервер/endpoint, RBAC/MFA и ротация ключей. Первичная собственная база содержит тестовые индикаторы. Результат EICAR и отладочных сетевых тестов нельзя использовать как показатель обнаружения реального вредоносного ПО. ## Проверка форматов установщиков DEB: метаданные и извлечение через `dpkg-deb`, настоящий цикл dpkg в изолированном chroot. RPM: метаданные/скрипты через `rpm`, payload через libarchive. EXE: NSIS разбирается 7-Zip, вложенный PE проверен на AMD64/ARM64. PKG: контрольные суммы XAR, внутренний `#AnyAV.pkg`, PackageInfo, BOMStore, cpio payload/scripts и Mach-O CPU, приложения настройки/удаления. Эти проверки не заменяют запуск установщиков Windows/macOS и системных служб в VM. Схемы форматов: [Debian maintainer scripts](https://www.debian.org/doc/debian-policy/ch-maintainerscripts.html), [Apple Distribution XML](https://developer.apple.com/library/archive/documentation/DeveloperTools/Reference/DistributionDefinitionRef/Chapters/Distribution_XML_Ref.html). ## Исправление macOS PKG r2 (06.11.2026) Пользовательский снимок штатного macOS Installer подтвердил дефект первой ревизии: HTML-фрагмент страницы «Введение» выводился как обычный текст. Проверка контейнера и архитектуры не проверяла отображение ресурсов и пропустила дефект. В новой ревизии страницы welcome/readme/conclusion — полноценные RTF-документы с Unicode-экранированием кириллицы и согласованными MIME `text/rtf`/UTI `public.rtf`. Проверка PKG теперь отклоняет старые HTML-фрагменты и проверяет формат документов. Новые файлы имеют отдельные URL с `-r2.pkg`; версия клиентского бинарника и его подписываемые байты не меняются. Проверка RTF на Linux не заменяет окончательную проверку интерфейса Installer на macOS. `make test-packaging`: PASS, три регрессионные проверки. Независимый читатель LibreOffice в одноразовом профиле прочитал RTF-страницы с сохранением русского текста, спецсимволов и Unicode. Проверены отказ старому HTML-фрагменту и неверному MIME, внутренние ссылки на документы. `check-installers.py` проверил новые PKG обеих архитектур и соответствие вложенных бинарников прежней сборке. Go race/vet и CLI smoke также прошли; окно штатного macOS Installer на Linux не запускалось.