Ausgangssituation Das Windows-Entwicklungsteam verwendet einen internen Satz von SDKs und CLI-Dienstprogrammen, die als ZIP/MSI verteilt und regelmäßig aktualisiert werden. Derzeit werden Integritätsprüfungen manuell mithilfe von Wiki-Notizen durchgeführt, weshalb nicht signierte oder geänderte Binärdateien sowie „verlorene“ Versionen ohne transparenten Inhalt regelmäßig im Build landen. Technisches Umfeld und Fachgebiet - Windows 10/11 x64 - .NET 8 Desktop (WPF oder WinUI 3) oder C++/Qt – zur Auswahl, aber das Ergebnis muss ein fertiges Desktop-Programm mit einem Installationsprogramm sein - Repositorys/Artefakte: lokaler Ordner, Netzwerkfreigabe (UNC) sowie heruntergeladenes ZIP/MSI - Validierungen: SHA-256/SHA-512, Authenticode (WinVerifyTrust), grundlegende Zertifikatkettenvalidierung, SBOM-Sammlung (CycloneDX oder SPDX) basierend auf Paketinhalten Was muss getan werden (mehrere Schritte) 1) Analyse des Lieferformats und der Lieferregeln - Die Eingabe umfasst 10-15 Standardpakete (ZIP/MSI) und ein Beispiel aktueller Regeln in Tabellenform (erwartete Dateien, Masken, Versionen, Signaturanforderungen) – Es ist notwendig, das Regelschema in der Anwendungskonfiguration zu klären und zu korrigieren: gültige Namen/Masken, erforderliche Dateien, gültige Zertifikataussteller, Mindestversionen, Ausnahmen 2) Entwicklung einer Desktop-Anwendung - Die Anwendung wählt die Quelle (Ordner/UNC-/ZIP-/MSI-Datei) aus, entpackt sie in einen temporären Bereich, erstellt einen Dateibaum und führt Prüfungen durch - Erstellt einen Bericht in zwei Arten: für Menschen lesbar (PDF- oder HTML-Datei) und maschinenlesbar (JSON). - Unterstützt Regelprofile (z. B. Dev/CI/Release) mit Switching - Verfügt über einen Modus „Zwei Pakete vergleichen“ – zeigt den Unterschied in Dateien, Hashes, Signaturen und Versionen an 3) Durchführung von Kontrollen - Hashing jeder Datei und Vergleich mit dem Standard, falls einer angegeben ist - Authenticode-Prüfung für PE-Dateien: Signaturstatus, Aussteller, Gültigkeitsdauer des Zertifikats zum Zeitpunkt der Signatur, ggf. Zeitstempel - Für nicht signierte Dateien oder mit einem Signaturfehler - eine separate Liste mit der Ursache - Versionsprüfung für EXE/DLL über FileVersionInfo und Vergleich mit Regeln - SBOM: Generieren Sie eine Liste von Dateien mit Metadaten (Pfad, Größe, Hash, Version, sofern zutreffend), packen Sie sie in CycloneDX/SPDX JSON; Eine vereinfachte Version ist ohne Abhängigkeitsanalyse zulässig, jedoch mit den richtigen Schema- und Komponenten-IDs auf Datei-/Paketebene 4) Verpackung und Lieferung - Erstellen Sie ein fertiges Installationsprogramm (MSIX oder MSI/WiX oder Squirrel – Ihre Wahl) und eine tragbare Version - Diagnoseprotokolle (Protokolldatei) und klare Fehlermeldungen - Kurze Anleitung (README auf Russisch) zum Hinzufügen/Ändern von Regeln und zum Durchführen der Prüfung Einschränkungen - Alles sollte offline funktionieren, ohne externe Cloud-Dienste – Sie können nicht verlangen, dass der Benutzer starke Abhängigkeiten installiert (außer der Standard-.NET-Desktop-Runtime, wenn .NET ausgewählt ist). - Bei einer Paketgröße von bis zu 3 GB und 50.000 Dateien sollte die Prüfung auf einem i7/16GB/SSD-PC 7 Minuten dauern, der Fortschritt sollte angezeigt werden - Temporäre Dateien sollten auch bei Fehlern automatisch gelöscht werden Messbare Akzeptanzkriterien - Bei den bereitgestellten Testpaketen liefert die Anwendung bei wiederholten Ausführungen die gleichen Ergebnisse, der JSON-Bericht ist gültig und entspricht dem vereinbarten Schema - Bei 5 vorbereiteten Fällen (signierte Datei, unsigniert, Signatur mit abgelaufenem Zertifikat ohne Zeitstempel, Signatur mit Zeitstempel, Datei mit falscher Version) ordnet die Anwendung den Status korrekt ein und gibt den Grund im Bericht an - Der Modus zum Vergleichen zweier Pakete zeigt das Minimum an: hinzugefügte/gelöschte/geänderte Dateien, Hash-Änderungen, Änderungen des Signaturstatus, Versionsänderungen - Das Installationsprogramm installiert und entfernt die Anwendung ohne Müll, die portable Version läuft ohne Installation Was wird bereitgestellt - Eine Reihe von Test-ZIP/MSI (über Link/Archiv), aktuelle Regeltabelle, Liste vertrauenswürdiger Herausgeber, Beispiele erwarteter Berichte (in beliebiger Form) Erwartetes Ergebnis Ein vorgefertigtes Desktop-Programm für Windows, Quellcode, Regelkonfigurationen, Installationsprogramm und tragbare Assembly sowie ein Mindestsatz an Autotests für die Prüflogik (mindestens Unit-Tests zum Parsen von Regeln und zum Klassifizieren von Signaturstatus).