Початкова ситуація У компанії близько 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) - Додаток має коректно працювати при відключеному інтернеті - Локалізація: інтерфейс та звіт на UK Вимірні критерії приймання 1) На 3 тестових машинах (Win10, Win11, Win11 без адмін-прав) програма запускається і завершує аудит без фарб, видає зрозумілі повідомлення про недоступні перевірки 2) JSON проходить валідацію за наданою схемою (схему потрібно розробити та додати до проекту) 3) Звіт містить зведену таблицю: кількість перевірок, кількість пройдено, кількість попереджень, кількість помилок 4) При повторному запуску на тій же машині з тим же профілем структура JSON стабільна, а відмінності тільки в полях, що залежать від часу/логів 5) CLI-режим повертає ненульовий код виходу за наявності помилок рівня error (настроюється в профілі) Етапи виконання - Проектування структури даних та схеми JSON, прототип модулів збору - Реалізація модульної системи перевірок та UI/CLI - Експорт JSON та генерація звіту, manifest з хешами - Тестування на різних правах та фіксація таймаутів/обробки помилок, складання релізу Результати, які мають бути передані - Вихідники в репозиторії (Git), інструкція збирання - Готовий реліз: portable zip та опціонально MSI - Приклад профілю перевірок та приклад вихідних файлів