Ausgangssituation Das Unternehmen verfügt über etwa 150 Workstations, auf denen Windows 10-11 Pro läuft. Einige Computer haben regelmäßig keinen Zugriff auf das Netzwerk und die Domäne, sodass es nicht möglich ist, einen einzigen Snapshot des Status zu erfassen und grundlegende Sicherheitsanforderungen über Cloud-/Server-Agenten zu überprüfen. Sie benötigen eine fertige Desktop-Anwendung, die lokal läuft (ohne Installation oder mit einem MSI Ihrer Wahl), Daten sammelt und einen Bericht zur Übermittlung an die Informationssicherheitsabteilung generiert. Technisches Umfeld und Fachgebiet - Betriebssystem: Windows 10-11 x64 - Sprache und Stack: C# .NET 8 (WPF) oder .NET 8 + WinUI 3 (WPF aus Kompatibilitätsgründen bevorzugt) - Datenzugriff: WMI/CIM, Windows Registry, Event Log, Netsh, Auditpol, PowerShell über Runspace (keine externen Abhängigkeiten) - Einschränkungen: Wenn möglich ohne Administratorrechte ausführen und deutlich zeigen, für welche Prüfungen erhöhte Rechte erforderlich sind Was soll passieren Ein vorgefertigtes Programm mit GUI- und CLI-Modus, das eine lokale Prüfung gemäß einem Prüfprofil durchführt, den Fortschritt anzeigt, die Ergebnisse in JSON speichert und einen lesbaren Bericht (PDF oder DOCX) mit dem Endstatus und den gefundenen Inkonsistenzen generiert. Funktionale Anforderungen - Das Prüfprofil wird durch eine Konfigurationsdatei (YAML oder JSON) angegeben und unterstützt das Aktivieren/Deaktivieren von Modulen - Inventarerfassung: Betriebssystemversion, PC-Name, Domäne/Arbeitsgruppe, CPU/RAM/Festplatten, Liste der installierten Updates (KB), Liste der installierten Programme (Deinstallationsschlüssel), aktive Netzwerkschnittstellen und IP, BitLocker-Status nach Volume - Sicherheitsprüfungen (Mindestsatz): integrierter Firewall-Status nach Profil, Defender-Status (falls verfügbar), UAC-Status, Passwortrichtlinie (über lokale Sicherheitsrichtlinie, sofern möglich), RDP-Präsenz und seine Einstellungen (aktiviert/deaktiviert, NLA), Autorun-Status für wichtige Punkte (Run/RunOnce), Liste der lokalen Administratoren - Protokolle: Laden Sie selektiv die letzten N Ereignisse aus „Sicherheit“ und „System“ entsprechend den angegebenen Filtern (Stufe/ID/Zeitraum) herunter, mit Schutz vor Einfrierungen - Exportieren: - JSON mit vollständiger Datenstruktur - PDF- oder DOCX-Bericht mit Abschnitten: Zusammenfassung, Inventar, Kontrollen, Protokolle, Liste der Probleme - Berichtssignatur: Berechnung des SHA-256-Hash aller exportierten Dateien und Aufzeichnung in einer separaten manifest.txt - CLI: Start ohne GUI mit Parametern: Profilpfad, Ausgabeverzeichnis, Berichtsformat, Zeitüberschreitungen Nichtfunktionale Anforderungen und Einschränkungen - Ausführungszeit auf einem typischen PC: bis zu 3 Minuten mit Standardprofil - Verwenden Sie keine kommerziellen Bibliotheken von Drittanbietern. Es sind nur kostenlose NuGet-Pakete mit einer zulässigen Lizenz zulässig (MIT/Apache/BSD). - Die Anwendung sollte ordnungsgemäß funktionieren, wenn das Internet ausgeschaltet ist - Lokalisierung: Schnittstelle und Bericht in RU Messbare Akzeptanzkriterien 1) Auf 3 Testmaschinen (Win10, Win11, Win11 ohne Admin-Rechte) startet das Programm und schließt die Prüfung ohne Abstürze ab, zeigt klare Meldungen über nicht verfügbare Prüfungen an 2) JSON wird gemäß dem bereitgestellten Schema validiert (das Schema muss entwickelt und an das Projekt angehängt werden) 3) Der Bericht enthält eine Übersichtstabelle: Anzahl der Prüfungen, Anzahl der bestandenen Prüfungen, Anzahl der Warnungen, Anzahl der Fehler 4) Beim Neustart auf demselben Computer mit demselben Profil ist die JSON-Struktur stabil und die Unterschiede bestehen nur in den zeit-/protokollabhängigen Feldern 5) Der CLI-Modus gibt einen Exit-Code ungleich Null zurück, wenn Fehler auf der Fehlerebene vorliegen (im Profil konfigurierbar). Ausführungsschritte - Design der Datenstruktur und des JSON-Schemas, Prototyp von Sammlungsmodulen - Implementierung eines modularen Systems von Prüfungen und UI/CLI - JSON-Export und Berichtserstellung, Manifest mit Hashes - Testen mit verschiedenen Rechten und Beheben von Zeitüberschreitungen/Fehlerbehandlung, Release-Build Zu vermittelnde Ergebnisse - Quellen im Repository (Git), Montageanleitung - Bereite Veröffentlichung: tragbares Zip und optionales MSI - Beispiel eines Prüfprofils und Beispielausgabedateien