
Offline-Vergleich von CISA-KEV-Snapshots zur Überprüfung von Änderungen auf Feldebene. Kostenloser Prototyp, keine Sicherheitsbewertung. KI-unterstützte Entwicklung.
Ein Offline-Prototyp zur Änderungsüberprüfung für IT-Teams, der zwei CISA Known Exploited Vulnerabilities (KEV) JSON-Snapshots vergleicht. Er meldet hinzugefügte, entfernte und bearbeitete Datensätze, einschließlich der exakten Vorher-/Nachher-Werte für jedes geänderte Feld. Es ist ein Datenüberprüfungs-Werkzeug, keine Sicherheitsbewertung.
Kostenloser Prototyp. Keine Kunden, kein bezahlter Service oder Anspruch auf Bedarfsvalidierung. Mit KI-Unterstützung entwickelt. Nicht mit CISA verbunden oder von CISA unterstützt.
Führen Sie das untenstehende synthetische Beispiel aus oder vergleichen Sie zwei gespeicherte Snapshots des öffentlichen Katalogs. Workflow-Feedback teilen: Welche Überprüfungsaufgabe wollten Sie abschließen, und hat dies einen manuellen Schritt ersetzt? Feedback ist öffentlich und gibt Ihre GitHub-Identität preis. Fügen Sie keine privaten Asset-Inventare, Kundennamen, Anmeldedaten oder VorfallDetails hinzu. Veröffentlicht für das Apex-Projekt; KI-unterstützter Prototyp und Feedback-Sammlung. Kein bezahlter Pilot oder Zusage zu Antwortzeiten.
Eingabegrenze: Dezimal- und Exponentialform-JSON-Zahlen werden abgelehnt, auch in Erweiterungsfeldern. Ganzzahlen werden exakt beibehalten. Zukünftige Schemata funktionieren nicht garantiert. Ändern Sie keine Quellwerte, um diese Grenze zu umgehen.
Python 3.10 oder neuer. Nur Standardbibliothek. Kein Konto oder Installation erforderlich.
python3 kev_diff.py examples/before.json examples/after.json > review.json
python3 kev_diff.py examples/before.json examples/after.json --vendor 'Example Vendor' > vendor-review.json
python3 kev_diff.py examples/before.json examples/after.json --format markdown > review.md
python3 -m unittest discover -s tests -v
Der Beispielkatalog ist synthetisch, kein aktueller Schwachstellen-Feed. Er zeigt eine Hinzufügung, einen bearbeiteten Datensatz und eine Entfernung. Der bearbeitete Datensatz ändert ein Fälligkeitsdatum und ein unbekanntes Erweiterungsfeld. Im Hintergrund läuft nichts.
Für echte Daten laden Sie selbst aufeinanderfolgende JSON-Snapshots vom CISA-Katalog oder dessen offiziellem Mirror herunter und bewahren sie auf. Prüfen Sie Herkunft und Download-Daten. Übergeben Sie zuerst den früheren Snapshot. Dieses Tool ruft keine Quellen ab, stellt keine Authentizität fest, sagt nicht, ob ein Katalog vollständig ist, und beansprucht nicht, aktuell zu sein. SHA-256-Werte von Dateien unterstützen die Reproduzierbarkeit, nicht die Authentifizierung.
Führen Sie python3 -B scripts/verify_release.py aus einem Checkout aus. Es führt die mitgelieferten synthetischen Tests aus, vergleicht JSON- und Markdown-Beispiele mit mitgelieferten erwarteten Ausgaben und prüft, dass ungültige Eingaben mit doppelten Schlüsseln keinen Bericht ausgeben. Es schlägt fehl, wenn keine Tests gefunden werden. Exit 0 bedeutet, dass diese Abnahmeprüfungen bestanden wurden; Exit 1 bedeutet Fehlschlag. Es gibt eine JSON-Zusammenfassung und Hashes der aufgeführten Kern-/Beispiel- und Support-Dateien aus, ohne Daten abzurufen. Temporäre Dateien mit ungültigen Eingaben werden im temporären Verzeichnis des Betriebssystems erstellt und entfernt; der mitgelieferte Runner/die Tests bearbeiten das Checkout nicht absichtlich; -B verhindert normale Bytecode-Schreibvorgänge.
Dies führt Python-Code aus dem Checkout aus, einschließlich seiner Tests. Prüfen und vertrauen Sie diesem Code, bevor Sie ihn ausführen. Bestandene Prüfungen und Datei-Hashes sind kein Sicherheitsaudit, keine Software-Signierung, kein Nachweis der Quellenauthentizität, keine Expositionsbewertung und kein Nachweis von Kunden. Leiten Sie seine Ausgabe nicht auf Quell- oder Beispieldateien um.
JSON ist der Standard. --format markdown erzeugt eine menschenlesbare Überprüfung mit Zählungen, Snapshot-Herkunft, Grenzen, Metadatenänderungen und jedem vollständigen Vorher/Nachher-Datensatz für übereinstimmende Änderungen. Es fügt keine Analyse hinzu und ändert den Vergleich nicht. Quellwerte bleiben in JSON-Codeblöcken; ein dynamisch dimensionierter Zaun verhindert, dass eingebettete Backticks aus diesen Blöcken in gewöhnlichen Markdown-Renderern entkommen, nicht in jedem Viewer. Öffnen Sie das Markdown in einem Viewer, dem Sie vertrauen. Überprüfen Sie Berichte vor dem Teilen: vollständige Vorher/Nachher-Datensätze für übereinstimmende Änderungen, Metadatenänderungen und Vendor-Filter sind enthalten. Behalten Sie markdown_report.py neben kev_diff.py für dieses optionale Format.
added: CVE-ID nur in der übergebenen Nachher-Datei vorhanden.removed: CVE-ID nur in der Vorher-Datei vorhanden. Kein Beweis für Behebung oder Sicherheit. Eine unvollständige Nachher-Datei kann viele scheinbare Entfernungen verursachen.changed: mindestens ein Datensatzfeld unterscheidet sich. Vorher- und Nachher-Werte, Feldpräsenz-Flags und vollständige Datensätze werden beibehalten.--vendor ist eine exakte, groß-/kleinschreibungsunabhängige Übereinstimmung mit vendorProject, gegen beide Snapshots. Es ist kein Fuzzy-Matching und keine Erkennung installierter Produkte. Wenn es weggelassen wird, wird der vollständige übergebene Katalog verglichen.Leiten Sie die Ausgabe niemals auf eine der Eingabedateien um. Zum Beispiel kürzt > before.json diese Quelle, bevor Python sie lesen kann. Verwenden Sie einen neuen Ausgabedateinamen.
Exit 0 bedeutet, dass ein gültiger Vergleich erzeugt wurde, einschließlich eines Ergebnisses ohne Änderungen. Exit 2 bedeutet ungültige Eingabe oder einen Dateifehler; vom Programm wird kein Bericht ausgegeben. Wenn Sie Shell-Umleitung verwenden, kann Ihre Shell selbst bei einem Fehler eine leere Ausgabedatei erstellen, prüfen Sie daher den Exit-Code, bevor Sie einen vorherigen Bericht ersetzen.
Die gesamte Dateiverarbeitung erfolgt lokal. Keine Netzwerkanfragen, Telemetrie, Speicherkonten, automatisierten Warnmeldungen, Scans, Ausnutzung, Behebung oder Store-Integration. Von Ihnen gespeicherte Dateien verbleiben auf Ihrem Gerät. Berichte enthalten die übergebenen Datensätze und Anbieterfilter; prüfen Sie sie vor der Weitergabe. Die maximale Eingabegröße beträgt 20 MB pro Datei. Ungültiges UTF-8, doppelte JSON-Schlüssel/IDs, ungültige Datumsangaben, nicht übereinstimmende Anzahlen und umgekehrte Release-Zeitstempel werden abgelehnt. Unbekannte Felder werden beibehalten, nicht schema-validiert. Dezimal- und Exponent-Form-JSON-Zahlen an beliebiger Stelle in einem Snapshot werden explizit abgelehnt, einschließlich Erweiterungsfeldern, um ein stilles Runden von Werten zu vermeiden. Ganzzahlige JSON-Zahlen werden exakt beibehalten. Ändern Sie keine Quellwerte, um dieses Limit zu umgehen. Dies tauscht Vorwärtskompatibilität gegen Exaktheit: Ein zukünftiger offizieller Feed mit Dezimal-/Exponent-Werten wird abgelehnt, bis Unterstützung hinzugefügt wird. Erforderliche Felder folgen dem aktuellen offiziellen Schema, dies ist jedoch keine vollständige JSON-Schema-Implementierung.