CommunityRecherche & Datenanalysegithub.com

byteratio/security-sweep

Untersucht, ob ein Projekt (oder jedes Repository auf dem Rechner) bekannten und aktiv ausgenutzten Abhängigkeitslücken ausgesetzt ist. Kombiniert eine deterministische, pro-Ökosystem durchgeführte Prüfung (npm audit, govulncheck, pip-audit, osv-scanner) mit aktuellen Web-Recherchen zu Supply-Chain-Vorfällen und prüft direkt die Lockfiles der Projekte – der führende Indikator, den `npm audit` übersieht. Verwenden Sie diesen Skill, wenn der Benutzer fragt: „Sicherheit untersuchen“, „Auf verwundbare Abhängigkeiten prüfen“, „Sind wir von <einer benannten CVE / einem Paket-Kompromiss> betroffen?“, „Projekte auf Supply-Chain-Probleme scannen“ oder einen wiederkehrenden Sicherheitsscan wünscht.

Was ist security-sweep?

Der Security-Sweep-Skill beantwortet die Frage: Sind diese Projekte einer Abhängigkeitslücke ausgesetzt, die gerade jetzt relevant ist? „Relevant“ bedeutet entweder katalogisiert und erreichbar oder ein aktueller Vorfall, der sich noch nicht vollständig in den Prüfdatenbanken niedergeschlagen hat. Der Mehrwert gegenüber einem einfachen `npm audit` liegt in der Recherche-Ebene: Datenbanken hinken Offenlegungen hinterher, und bösartige Paketvorfälle werden oft durch Löschen der Pakete behoben (keine abfragbare Warnung). Daher kombiniert dieser Sweep deterministische Tools mit Live-Recherchen zu aktuell ausgenutzten Schwachstellen und prüft die Lockfiles direkt auf diese Namen – das schnellste zuverlässige Signal, das kein Prüfwerkzeug liefert. Standardmäßig ist der Skill schreibgeschützt: Er untersucht und berichtet, schlägt aber nur Reparaturen vor, ohne eigenmächtig Versionen zu erhöhen (die Builds zerstören können). Der Skill erkennt gängige Lockfiles (npm, Go, Python, Swift/SPM), führt eine Basisprüfung mit ökosystemspezifischen Tools durch, recherchiert aktiv im Web nach Bedrohungen und gleicht die Paketnamen direkt mit den Lockfiles ab, um einen aktuellen Bericht mit klarer Bewertung (exponiert, klar, unsicher) und konkreten Abhilfemaßnahmen zu erstellen.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/byteratio/skills/tree/main/plugins/hechtch-skills/skills/security-sweep

Installed? Explore more Recherche & Datenanalyse skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Sicherheitsscan

Beantworte eine Frage gut: Sind diese Projekte einer Abhängigkeitslücke ausgesetzt, die gerade jetzt relevant ist? „Relevant“ bedeutet entweder katalogisiert und erreichbar oder ein aktueller Vorfall, der sich noch nicht vollständig in den Prüfdatenbanken niedergeschlagen hat.

Der Mehrwert gegenüber einem einfachen npm audit liegt in der Recherche-Ebene. Beratungsdatenbanken hinken Offenlegungen hinterher, und Vorfälle mit bösartigen Paketen werden oft durch Löschen der Pakete behoben (es gibt keine abfragbare Warnung). Daher kombiniert dieser Scan die deterministischen Werkzeuge mit Live-Recherchen zu aktuell ausgenutzten Schwachstellen und prüft die Lockfile direkt auf diese Namen – das schnellste zuverlässige Signal, das kein Prüfwerkzeug liefert.

Standardmäßig schreibgeschützt: Dies untersucht und berichtet. Schlagen Sie nur Reparaturen vor; wenden Sie keine Versions-Upgrades ohne Zustimmung des Benutzers an (sie können Builds zerstören).

Wann verwenden

  • „Sicherheit untersuchen“ / „Auf verwundbare Abhängigkeiten prüfen“ / „Einen Sicherheitsscan durchführen.“
  • „Sind wir von <einer benannten CVE, GHSA oder einem Paket-Kompromiss-Vorfall> betroffen?“ – der Benutzer hat etwas gelesen und möchte wissen, ob er exponiert ist.
  • Eine regelmäßige Überprüfung (kombinieren mit dem schedule-Skill für einen wiederkehrenden Cloud-Scan – siehe Ende).

Schritt 1 – Umfang

Lege fest, was gescannt werden soll. Standardmäßig das aktuelle Projekt; biete einen Scan über mehrere Repos an, wenn die Formulierung des Benutzers breit gefasst ist („unsere Projekte“, „alles“, „die gesamte Flotte“).

  • Aktuelles Projekt: das Repo, in dem du dich befindest.
  • Mehrere Repos: Liste die benachbarten Repos neben dem aktuellen auf – d.h. das übergeordnete Verzeichnis des aktuellen Git-Roots (normalerweise ~/projects/*/ oder ~/src/*/). Bestätige das Verzeichnis mit dem Benutzer, bevor du es durchläufst, anstatt es anzunehmen; eine falsche Annahme verschwendet einen langen Scan. Erkenne für jedes Repo die Ökosysteme anhand des Manifests (unten), führe nacheinander einen Scan durch und berichte pro Projekt.

Schritt 2 – Ökosysteme erkennen und Lockfiles lokalisieren

Pro Projekt ist ein Ökosystem vorhanden, wenn seine Lockfile existiert:

ÖkosystemManifest / LockfileÜblicher Speicherort
npmpackage-lock.jsonfrontend/ oder Repo-Root
Gogo.mod / go.sumbackend/ oder Repo-Root
Pythonpoetry.lock, requirements.txt, uv.lockRepo-Root
Swift/SPMPackage.resolvedios/ oder ein .xcodeproj

Die Lockfile – nicht das Manifest – wird gescannt: Sie fixiert die exakten transitiven Versionen, die tatsächlich installiert sind.

Schritt 3 – Deterministische Basisprüfung (pro Ökosystem)

Führe die eigenen Werkzeuge des Ökosystems aus. Diese erfassen alles, was bereits in den Beratungsdatenbanken ist. Bevorzuge Werkzeuge mit Reachability-Analyse (sie melden nur Schwachstellen, die dein Code tatsächlich erreichen kann), sofern verfügbar.

  • npm: cd <dir> && npm audit --omit=dev --audit-level=high (was an Benutzer ausgeliefert wird) und ein einfaches npm audit (alles, informativ). Keine Reachability – übermeldet; gewichte Produktions-Funde.
  • Go: govulncheck ./... – hat eine Reachability-Analyse (meldet nur Schwachstellen in aufgerufenem Code); einmalig installieren mit go install golang.org/x/vuln/cmd/govulncheck@latest. Der Goldstandard dieser Werkzeuge.
  • Python: pip-audit (oder pip-audit -r requirements.txt).
  • Jedes Ökosystem oder wenn ein Werkzeug fehlt: osv-scanner gegen die Lockfile, ausgeführt in einem Container, damit nichts installiert werden muss: <runtime> run --rm -v "$PWD:/src:ro" ghcr.io/google/osv-scanner:latest scan --lockfile=/src/<lockfile>. Breiteste Datenbank; der Fallback für Swift/SPM, das dünne Erstanbieter-Werkzeuge hat.

Erfasse, was jedes meldet. Unterscheide Produktion/erreichbar von Dev/Build-Zeit – ein hoher Eintrag in einem Build-Werkzeug, das niemals ausgeliefert wird, ist nicht dasselbe wie in einer Laufzeit-Abhängigkeit.

Schritt 4 – Aktuelle Bedrohungslandschaft recherchieren (der Mehrwert)

Das kann ein reiner Audit nicht leisten. Verwende WebSearch / WebFetch, um herauszufinden, was derzeit aktiv ist, und bringe die Namen dann zu Schritt 5 zurück.

  • Aktuelle Supply-Chain-Vorfälle in den Ökosystemen des Projekts: Suche nach aktuellen npm-/PyPI-/Go-Kompromittierungen und Malware-Kampagnen; überprüfe die GitHub Advisory Database (github.com/advisories) und OSV (osv.dev) auf kürzlich veröffentlichte Einträge, die Pakete betreffen, die du in Schritt 2 gesehen hast.
  • Wenn der Benutzer eine bestimmte CVE / GHSA / einen bestimmten Vorfall genannt hat, rufe die maßgebliche Beratungsmeldung ab und extrahiere die exakten betroffenen Paketnamen und Versionsbereiche – das wird dann gegen die Lockfile abgeglichen.
  • Bevorzuge Primärquellen (die Beratungsmeldung, der Beitrag des Maintainers, die Sicherheitsmitteilung der Registry) gegenüber zusammenfassenden Headlines; notiere, wenn etwas unbestätigt ist.

Halte es aktuell: Datumsstempel für jede Behauptung, und gib an, was dein Recherchezeitfenster war (z.B. „aktive Vorfälle, die in den letzten ~8 Wochen offengelegt wurden“).

Schritt 5 – Namen direkt gegen die Lockfile abgleichen

Für jedes in Schritt 4 gefundene Paket warte nicht auf das Prüfwerkzeug – überprüfe den gefixten Baum selbst. Dies ist der führende Indikator-Schritt:

# npm
cd <dir> && npm ls <package>
grep -n '"<package>"' package-lock.json
# Go
grep -n '<module-path>' go.sum
# Python
grep -in '<package>' poetry.lock requirements.txt uv.lock 2>/dev/null
# Swift
grep -rn '<package>' --include=Package.resolved .

Vergleiche dann die gefixte Version mit dem betroffenen Bereich aus der Beratungsmeldung. Drei Ergebnisse pro Name: exponiert (vorhanden und im Bereich), klar (nicht vorhanden oder vorhanden, aber außerhalb des Bereichs), unsicher (transitive Version, die nicht vollständig aufgelöst werden konnte – tiefer graben oder markieren).

Schritt 6 – Bericht

Pro Projekt führe mit dem Befund, dann den Beweisen:

  • Exponiert – Paket, gefixte Version, Beratungsmeldung/Vorfall, ob es produktionserreichbar ist, und eine konkrete Abhilfemaßnahme (gezielter Versions-Upgrade; niemals ein blindes npm audit fix). Wenn eine kompromittierte Version möglicherweise installiert wurde, weise darauf hin, dass ihr Postinstall-Skript bereits ausgeführt worden sein könnte – der Hauptgrund, warum ein ignore-scripts-Standard wichtig ist.
  • Klar – die recherchierten aktiven Bedrohungen wurden überprüft und sind nicht vorhanden. Sage, was überprüft wurde, damit „klar“ etwas bedeutet.
  • Unsicher / nicht abgedeckt – Ökosysteme mit dünnen Werkzeugen (Swift), unaufgelöste transitive Abhängigkeiten oder Recherchen, die einen Bereich nicht bestätigen konnten. Benenne die Lücke, anstatt vollständige Abdeckung zu implizieren.

Gib nicht vor, alles gefunden zu haben. Gib das Zeitfenster und die tatsächlich gescannten Ökosysteme an.

Kombinieren

  • Wiederkehrender Scan: Übergib die Vorgehensweise dieses Skills an den schedule-Skill für einen wöchentlichen Cloud-Lauf über die Repos, sodass ein neuer Vorstand innerhalb von Tagen erkannt wird, anstatt erst, wenn jemand das nächste Mal daran denkt.
  • Vor einem Release oder einem Push: Führe einen eingeschränkten Scan eines einzelnen Projekts durch. Er passt natürlich zu einem make audit / make secret-scan Pre-Push-Schritt, falls das Projekt einen solchen hat.

Anmerkungen

  • Prüfwerkzeuge sind nachlaufende Indikatoren; die Nachrichten und Schritt 4 dieses Skills sind die führenden. Wenn diese widersprüchlich sind – die Recherche sagt, ein Paket sei kompromittiert, aber die Werkzeuge schweigen – vertraue der direkten Lockfile-Prüfung und behandle es als live.
  • npm audit meldet die Schwere der Beratungsmeldung, nicht deine Ausnutzbarkeit (keine Reachability-Analyse) – es übermeldet. govulncheck ist das Gegenteil und das Modell, das bevorzugt werden sollte, wenn ein Ökosystem es anbietet.
  • Dieser Skill beantwortet die Exposition. Abhilfemaßnahmen (Versions-Upgrades, Fixierung, npm rebuild für eine spezielle Script-Ausnahme) sind ein separater, vom Benutzer genehmigter Schritt – zeige die Lösung an, wende sie nicht unaufgefordert an.

Individual skills in this repo

This repo contains 5 individual skills — each has its own dedicated page.

byteratio/example-skill

Template skill for this marketplace. Use as a starting point when adding a new skill — copy this plugin directory, rename it, and replace this description with the specific trigger conditions for your skill (what the user says or does that should invoke it).

byteratio/iphone-dev

Conventions for native iPhone app development — SwiftUI + SwiftData local-first apps, XcodeGen project generation, CLI-only build/test/deploy loops (simulator by default, signed device deploys via devicectl), XCTest with visible coverage, and the free-personal-team signing gotchas. Use when creating an iOS/iPhone app, adding iOS targets or Makefile loops to a project, debugging Xcode signing/provisioning/deploy problems, or porting an existing app's logic into a native Swift client.

byteratio/kanban-plans

Track multi-session plans on a locally-running kanban board (github.com/hechtch/kanban) via its agent REST API. Claim a plan, move it through todo/doing/blocked/awaiting_merge/done, leave notes, and set the git branch. Use at the start of any non-trivial multi-session plan, when resuming such a plan, or when the user asks what's on the board or where a plan stands.

byteratio/password-generator

Generates secure, memorable passwords using 3 random dictionary words with leet-speak substitutions. Use when the user asks to generate a password, create a new password, or needs a secure passphrase.

byteratio/ux-agents

Scaffold persona-based UX testing agents for a web app — project-scoped .claude/agents/<persona>-ux.md files that drive a real browser via Playwright, walk user journeys as a specific persona, and report tagged friction findings. Use when setting up UX review automation, when the user asks what a specific user segment would think of the app, or after the user accepts an offer to add persona testing.

Verwandte Skills