Исходная ситуация В компании около 150 рабочих станций на Windows 10-11 Pro. Часть компьютеров периодически бывает без доступа к сети и домену, поэтому собрать единый снимок состояния и проверить базовые требования безопасности через облачные/серверные агенты не получается. Нужно готовое десктоп-приложение, которое запускается локально (без установки или с MSI по выбору), собирает данные и формирует отчёт для передачи в ИБ-отдел. Техническая среда и предметная область - ОС: Windows 10-11 x64 - Язык и стек: C# .NET 8 (WPF) или .NET 8 + WinUI 3 (предпочтительнее WPF из-за совместимости) - Доступ к данным: WMI/CIM, Windows Registry, Event Log, netsh, auditpol, PowerShell через runspace (без внешних зависимостей) - Ограничения: работать без прав администратора там, где это возможно, и явно показывать, какие проверки требуют повышенных прав Что должно получиться Готовая программа с GUI и CLI-режимом, которая выполняет локальный аудит по профилю проверок, показывает прогресс, сохраняет результаты в JSON и формирует читабельный отчёт (PDF или DOCX) с итоговым статусом и найденными несоответствиями. Функциональные требования - Профиль проверок задаётся файлом конфигурации (YAML или JSON) и поддерживает включение-выключение модулей - Сбор инвентаря: версия ОС, имя ПК, домен/рабочая группа, CPU/RAM/диски, список установленных обновлений (KB), список установленных программ (Uninstall keys), активные сетевые интерфейсы и IP, состояние BitLocker по томам - Проверки безопасности (минимальный набор): состояние встроенного брандмауэра по профилям, статус Defender (если доступно), статус UAC, политика паролей (через local security policy где возможно), наличие RDP и его настройки (включён/выключен, NLA), состояние автозапуска для ключевых точек (Run/RunOnce), список локальных администраторов - Логи: выборочно выгружать последние N событий из Security и System по заданным фильтрам (уровень/ID/период), с защитой от зависаний - Экспорт: - JSON с полной структурой данных - Отчёт PDF или DOCX с разделами: сводка, инвентарь, проверки, логи, список проблем - Подпись отчёта: вычисление SHA-256 хэша всех экспортированных файлов и запись в отдельный manifest.txt - CLI: запуск без GUI с параметрами: путь к профилю, каталог вывода, формат отчёта, таймауты Нефункциональные требования и ограничения - Время выполнения на типовом ПК: до 3 минут при профиле по умолчанию - Не использовать сторонние коммерческие библиотеки, допускаются только бесплатные NuGet-пакеты с permissive лицензией (MIT/Apache/BSD) - Приложение должно корректно работать при отключённом интернете - Локализация: интерфейс и отчёт на RU Измеримые критерии приёмки 1) На 3 тестовых машинах (Win10, Win11, Win11 без админ-прав) программа запускается и завершает аудит без крашей, выдаёт понятные сообщения о недоступных проверках 2) JSON проходит валидацию по предоставленной схеме (схему нужно разработать и приложить в проект) 3) Отчёт содержит сводную таблицу: количество проверок, количество пройдено, количество предупреждений, количество ошибок 4) При повторном запуске на той же машине с тем же профилем структура JSON стабильна, а отличия только в полях, зависящих от времени/логов 5) CLI-режим возвращает ненулевой код выхода при наличии ошибок уровня error (настраиваемо в профиле) Этапы выполнения - Проектирование структуры данных и схемы JSON, прототип модулей сбора - Реализация модульной системы проверок и UI/CLI - Экспорт JSON и генерация отчёта, manifest с хэшами - Тестирование на разных правах и фиксация таймаутов/обработки ошибок, сборка релиза Результаты, которые должны быть переданы - Исходники в репозитории (Git), инструкция сборки - Готовый релиз: portable zip и опционально MSI - Пример профиля проверок и пример выходных файлов