Argentum

Projekte, die den nachfolgenden Best Practices folgen, können sich freiwillig selbst zertifizieren und zeigen, dass sie einen Core-Infrastruktur-Initiative-/OpenSSF-Badge erhalten haben.

Es gibt keine Auswahl an Praktiken, die garantieren können, dass Software niemals Fehler oder Schwachstellen hat. Selbst formale Methoden können fehlschlagen, wenn die Spezifikationen oder Annahmen falsch sind. Auch gibt es keine Auswahl an Praktiken, die garantieren können, dass ein Projekt eine gesunde und gut funktionierende Entwicklungsgemeinschaft erhalten wird. Allerdings können Best Practices dabei helfen, die Ergebnisse von Projekten zu verbessern. Zum Beispiel ermöglichen einige Praktiken die Mehrpersonen-Überprüfung vor der Freigabe, die sowohl helfen können ansonsten schwer zu findende technische Schwachstellen zu finden und gleichzeitig dazu beitragen Vertrauen und den Wunsch nach wiederholter Zusammenarbeit zwischen Entwicklern verschiedener Unternehmen zu schaffen. Um ein Badge zu verdienen, müssen alle MÜSSEN und MÜSSEN NICHT Kriterien erfüllt sein, alle SOLLTEN Kriterien müssen erfüllt sein oder eine Rechtfertigung enthalten, und alle EMPFHOLEN Kriterien müssen erfüllt sein oder nicht (wir wollen sie zumindest berücksichtigt wissen). Wenn lediglich ein allgemeiner Kommentar angebeben werden soll, keine direkte Begründung, dann ist das erlaubt, wenn der Text mit "//" und einem Leerzeichen beginnt. Feedback ist willkommen auf derGitHub-Website als Issue oder Pull-Request. Es gibt auch eine E-Mail-Liste für allgemeine Diskussionen.

Wir stellen Ihnen gerne die Informationen in mehreren Sprachen zur Verfügung, allerdings ist die englische Version maßgeblich, insbesondere wenn es Konflikte oder Inkonsistenzen zwischen den Übersetzungen gibt.
Wenn dies Ihr Projekt ist, zeigen Sie bitte Ihren Baseline-Badge-Status auf Ihrer Projektseite! Der Baseline-Badge-Status sieht so aus: Baseline-Badge-Level für Projekt 12957 ist baseline-3 So betten Sie das Baseline-Badge ein:
Sie können Ihren Baseline-Badge-Status anzeigen, indem Sie Folgendes in Ihre Markdown-Datei einbetten:
[![OpenSSF Baseline](https://www.bestpractices.dev/projects/12957/baseline)](https://www.bestpractices.dev/projects/12957)
oder indem Sie Folgendes in Ihr HTML einbetten:
<a href="https://www.bestpractices.dev/projects/12957"><img src="https://www.bestpractices.dev/projects/12957/baseline"></a>


Dies sind die Baseline Niveau 3 Kriterien. Dies sind Kriterienversion v2026.02.19.

Baseline Series: Baseline Niveau 1 Baseline Niveau 2 Baseline Niveau 3

        

 Grundlagen

  • Allgemein

    Hinweis: Andere Projekte können den selben Namen benutzen.

    Argentum is a local-first AI workspace. It runs on your own machine so your data stays with you. You can chat with AI providers you choose, route conversations through Telegram, Discord, or other channels, keep memory across sessions, and use a full desktop app instead of juggling browser tabs.

    Bitte verwenden Sie das SPDX-License-Expression-Format; Beispiele sind "Apache-2.0", "BSD-2-Clause", "BSD-3-Clause", "GPL-2.0+", "LGPL-3.0+", "MIT" und "(BSD-2-Clause OR Ruby)". Geben sie nicht die einfachen oder doppelten Anführungszeichen mit an.
    Wenn es mehr als eine Programmiersprache gibt, listen Sie sie als kommagetrennte Werte (Leerzeichen sind optional) auf und sortieren Sie sie von am häufigsten zum am wenigsten verwendeten. Wenn es eine lange Liste gibt, bitte mindestens die ersten drei häufigsten auflisten. Wenn es keine Programmiersprache gibt (z. B. ist dies nur ein Dokumentations- oder Testprojekt), verwenden Sie das einzelne Zeichen "-". Bitte verwenden Sie eine herkömmliche Großschreibung für jede Sprache, z.B. "JavaScript".
    Das Common Platform Enumeration (CPE) ist ein strukturiertes Namensschema für IT-Systeme, Software und Pakete. Es wird in diversen Systemen und Datenbanken bei der Meldung von Schwachstellen verwendet.

    Argentum runs entirely locally - no cloud subscriptions, no data leaves the machine.
    Suitable for self-hosting on desktop, server, or via Docker.

    Built with TypeScript-first approach, with Rust-based desktop client for Windows/macOS/Linux.
    Supports 8+ messaging channels to unify communication in one interface.

    Ideal for developers and power users who want an AI assistant under their own control.

 Steuerelemente 21/21

  • Steuerelemente


    Wenn einem Job Berechtigungen in einer CI/CD-Pipeline zugewiesen werden, MUSS der Quellcode oder die Konfiguration nur die minimal erforderlichen Berechtigungen für die entsprechende Aktivität zuweisen. [OSPS-AC-04.02]
    Konfigurieren Sie die CI/CD-Pipelines des Projekts so, dass sie Benutzern und Diensten standardmäßig die niedrigsten verfügbaren Berechtigungen zuweisen und Berechtigungen nur bei Bedarf für bestimmte Aufgaben erhöhen. In einigen Versionsverwaltungssystemen kann dies auf Organisations- oder Repository-Ebene möglich sein. Falls nicht, setzen Sie Berechtigungen auf der obersten Ebene der Pipeline.
    • ci.yml: contents: read (minimal)
    • codeql.yml: contents: read + security-events: write (only at job level)
    • scorecard.yml: contents: read + security-events: write (only at job level)
    • trivy.yml: contents: read
    • semgrep.yml: contents: read
    • release.yml: contents: read + id-token: write (only for Sigstore OIDC)
    • npm-version-check.yml: contents: read

    Top-level permissions are minimal; elevated only when necessary.



    CI/CD-Pipelines, die vertrauenswürdige Mitarbeitereingaben akzeptieren, MÜSSEN diese Eingaben bereinigen und validieren, bevor sie in der Pipeline verwendet werden. [OSPS-BR-01.04]
    CI/CD-Pipelines sollten alle Mitarbeitereingaben bei expliziten Workflow-Ausführungen bereinigen (in Anführungszeichen setzen, escapen oder bei erwarteten Werten beenden). Obwohl Mitarbeiter im Allgemeinen vertrauenswürdig sind, können manuelle Eingaben in einen Workflow nicht überprüft werden und könnten durch eine Kontoübernahme oder eine Insider-Bedrohung missbraucht werden.
    • security-changelog.yml: version input validated via semantic version check in generate-security-changelog.js
    • release.yml: version derived from git tag (git ref), not user-controlled
    • All user inputs are typed (string) and used via GitHub Actions environment (automatic escaping)
    • No direct shell injection possible: inputs used via ${{ }} template syntax with proper quoting
    • Version validation in script ensures only valid SemVer patterns used


    Wenn ein offizielles Release erstellt wird, MÜSSEN alle Assets innerhalb dieses Releases eindeutig mit dem Release-Identifikator oder einem anderen eindeutigen Identifikator für das Asset verknüpft sein. [OSPS-BR-02.02]
    Weisen Sie jedem vom Projekt produzierten Software-Asset einen eindeutigen Versionsidentifikator zu, der einer konsistenten Namenskonvention oder einem Nummerierungsschema folgt. Beispiele sind SemVer, CalVer oder Git Commit ID.
    • Release assets named with SemVer pattern: argentum-v0.0.7-linux-x64, argentum-cli-v0.0.7-win-x64.exe, etc.
    • Sigstore cosign bundles created alongside each binary (e.g., argentum-v0.0.7-linux-x64.cosign-bundle) - bundles contain cryptographic signature tied to GitHub OIDC issuer + repository + SHA256 hash
    • SHA256SUMS.txt maps each asset filename to its cryptographic hash
    • Release ID (tag name) associated with all assets via GitHub Releases UI
    • Tauri desktop installers include version in filename: Argentum_0.0.7_x64-setup.exe, etc.


    Das Projekt MUSS eine Richtlinie für die Verwaltung von Secrets und Zugangsdaten definieren, die vom Projekt verwendet werden. Die Richtlinie sollte Leitlinien für die Speicherung, den Zugriff und die Rotation von Secrets und Zugangsdaten enthalten. [OSPS-BR-07.02]
    Dokumentieren Sie, wie Secrets und Zugangsdaten innerhalb des Projekts verwaltet und verwendet werden. Dies sollte Details darüber enthalten, wie Secrets gespeichert werden (z.B. unter Verwendung eines Tools zur Verwaltung von Secrets), wie der Zugriff kontrolliert wird und wie Secrets rotiert oder aktualisiert werden. Stellen Sie sicher, dass sensible Informationen nicht fest im Quellcode kodiert oder in Versionsverwaltungssystemen gespeichert werden.

    SECURITY.md "Security Features" section documents:

    • AES-256-GCM encryption for credentials at rest
    • Credential manager with short-lived key rotation
    • No secrets hard-coded in source code
    • argenta.yaml (config with encrypted secrets) gitignored
    • GitHub Secrets used for CI/CD pipelines
    • Access controlled via GitHub repository permissions

    Secrets stored encrypted in config/argenta.yaml, never in version control.



    Wenn das Projekt ein Release erstellt hat, MUSS die Projektdokumentation Anweisungen zur Überprüfung der Integrität und Authentizität der Release-Assets enthalten. [OSPS-DO-03.01]
    Anweisungen im Projekt sollten Informationen über die verwendete Technologie, die auszuführenden Befehle und die erwartete Ausgabe enthalten. Vermeiden Sie nach Möglichkeit die Speicherung dieser Dokumentation am gleichen Ort wie die Build- und Release-Pipeline, um zu vermeiden, dass eine einzelne Sicherheitsverletzung sowohl die Software als auch die Dokumentation zur Überprüfung der Integrität der Software kompromittiert.

    docs/releases/v0.0.7.md includes dedicated "Verify Release Integrity" section with:

    • Technology used: SHA256 checksums + Sigstore cosign (cryptographic verification)
    • Commands to run: sha256sum --check + cosign verify-blob
    • Expected output: "<filename>: OK" for SHA256; signature verification result for cosign
    • Documentation is separate from build/release pipeline (in docs/releases/, not in .github/workflows/)
    • Both integrity (SHA256) and authenticity (Sigstore) verification methods explained


    Wenn das Projekt ein Release erstellt hat, MUSS die Projektdokumentation Anweisungen zur Überprüfung der erwarteten Identität der Person oder des Prozesses enthalten, die/der die Software-Release erstellt hat. [OSPS-DO-03.02]
    Die erwartete Identität kann in Form von Schlüssel-IDs zur Signierung, Aussteller und Identität aus einem Sigstore-Zertifikat oder ähnlichen Formen vorliegen. Vermeiden Sie nach Möglichkeit die Speicherung dieser Dokumentation am gleichen Ort wie die Build- und Release-Pipeline, um zu vermeiden, dass eine einzelne Sicherheitsverletzung sowohl die Software als auch die Dokumentation zur Überprüfung der Integrität der Software kompromittiert.

    cosign verify-blob command includes:
    --certificate-identity-regexp "https://github.com/AG064/argentum"
    --certificate-oidc-issuer https://token.actions.githubusercontent.com

    This verifies:

    • The binary was signed by GitHub Actions workflow in AG064/argentum repository
    • The OIDC issuer is token.actions.githubusercontent.com (GitHub's Sigstore issuer)
    • The certificate identity matches our repository URL

    Documentation is in docs/releases/ (separate from .github/workflows/).



    Wenn das Projekt ein Release erstellt hat, MUSS die Projektdokumentation eine beschreibende Aussage über den Umfang und die Dauer der Unterstützung für jedes Release enthalten. [OSPS-DO-04.01]
    Um den Umfang und die Dauer der Unterstützung für die veröffentlichten Software-Assets des Projekts zu kommunizieren, sollte das Projekt eine SUPPORT.md-Datei, einen "Support"-Abschnitt in SECURITY.md oder eine andere Dokumentation haben, die den Support-Lebenszyklus erklärt, einschließlich der erwarteten Dauer der Unterstützung für jedes Release, der Art der bereitgestellten Unterstützung (z.B. Fehlerkorrekturen, Sicherheitsaktualisierungen) und aller relevanten Richtlinien oder Verfahren zur Erlangung von Unterstützung.

    SUPPORT.md (or SECURITY.md "Support" section) documents:

    • Supported versions (latest stable release)
    • Support duration (security fixes only for latest major version)
    • Types of support provided (bug fixes, security updates)
    • How to get support (GitHub Issues, Security Advisories)

    Example: Only latest v0.0.x receives security updates, older versions unsupported.



    Wenn das Projekt ein Release erstellt hat, MUSS die Projektdokumentation eine beschreibende Aussage enthalten, wann Releases oder Versionen keine Sicherheitsaktualisierungen mehr erhalten werden. [OSPS-DO-05.01]
    Um den Umfang und die Dauer der Unterstützung für Sicherheitskorrekturen zu kommunizieren, sollte das Projekt eine SUPPORT.md oder eine andere Dokumentation haben, die die Richtlinien des Projekts für Sicherheitsaktualisierungen erklärt.

    SUPPORT.md "Unsupported Versions" section clearly states:

    • Versions older than the latest no longer receive security updates
    • They "likely contain unpatched security vulnerabilities"
    • Users are "strongly encouraged to upgrade"


    Während das Projekt aktiv ist, MUSS die Projektdokumentation eine Richtlinie enthalten, dass Code-Mitwirkende überprüft werden, bevor ihnen erweiterte Berechtigungen für sensible Ressourcen gewährt werden. [OSPS-GV-04.01]
    Veröffentlichen Sie eine durchsetzbare Richtlinie in der Projektdokumentation, die erfordert, dass Code-Mitwirkende überprüft und genehmigt werden, bevor ihnen erweiterte Berechtigungen für sensible Ressourcen gewährt werden, wie z.B. Merge-Genehmigung oder Zugriff auf Secrets. Es wird empfohlen, dass die Überprüfung die Feststellung einer begründbaren Identitätslinie beinhaltet, wie z.B. die Bestätigung der Zugehörigkeit des Beitragsleistenden zu einer bekannten vertrauenswürdigen Organisation.

    CONTRIBUTING.md "Pull Request Checklist" section:

    • PR requires review before merge
    • Branch protection enabled on development (require PR + 1 approval)
    • "Changes that break the build" won't get merged

    MEMBERS.md Access Inventory shows sensitive resource access only to AG064.

    Code review is enforced via GitHub branch protection settings.



    Wenn das Projekt ein Release erstellt hat, MÜSSEN alle kompilierten veröffentlichten Software-Assets mit einer Software-Stückliste (Software Bill of Materials) ausgeliefert werden. [OSPS-QA-02.02]
    Es wird empfohlen, SBOMs zum Build-Zeitpunkt automatisch mit einem Tool zu generieren, das auf Genauigkeit geprüft wurde. Dies ermöglicht es Benutzern, diese Daten auf standardisierte Weise zusammen mit anderen Projekten in ihrer Umgebung aufzunehmen.

    Release workflow includes SBOM generation using anchore/sbom-action. Outputs CycloneDX JSON format for each portable binary. SBOM files uploaded as release assets alongside binaries. Auto-generated at build time from build artifacts.



    Wenn das Projekt ein Release erstellt hat, das mehrere Quellcode-Repositorys umfasst, MÜSSEN alle Unterprojekte Sicherheitsanforderungen durchsetzen, die genauso streng oder strenger sind als die primäre Codebasis. [OSPS-QA-04.02]
    Alle zusätzlichen Unterprojekt-Code-Repositorys, die vom Projekt erstellt und in ein Release kompiliert wurden, müssen Sicherheitsanforderungen durchsetzen, die dem Status und der Absicht der jeweiligen Codebasis entsprechen. Zusätzlich zur Befolgung der entsprechenden OSPS Baseline-Anforderungen kann dies die Anforderung einer Sicherheitsüberprüfung, die Sicherstellung, dass es frei von Schwachstellen ist, und die Sicherstellung, dass es frei von bekannten Sicherheitsproblemen ist, umfassen.

    SUBPROJECTS.md documents the policy that would apply if subprojects exist:

    • "Currently, Argentum is a single monorepo with no subprojects"
    • If subprojects are added in future, each must:
      • Enforce security requirements at least as strict as main codebase
      • Have CI pipeline with SAST (CodeQL or equivalent)
      • Have dependency scanning (Trivy, osv-scanner)
      • Have Security policy (SECURITY.md, SUPPORT.md)
      • Have SBOM generation for release artifacts
      • Have signed releases (Sigstore cosign)

    This future-proofs the project for when subprojects may be created.



    Während das Projekt aktiv ist, MUSS die Dokumentation des Projekts klar dokumentieren, wann und wie Tests ausgeführt werden. [OSPS-QA-06.02]
    Fügen Sie der Beitragsdokumentation einen Abschnitt hinzu, der erklärt, wie Tests lokal und in der CI/CD-Pipeline ausgeführt werden. Die Dokumentation sollte erklären, was die Tests testen und wie die Ergebnisse interpretiert werden.

    CONTRIBUTING.md includes "Testing" section (added at line 96):

    • How to run tests locally: npm test, npm run test:unit, npm run test:integration, etc.
    • What the tests cover: table listing test suites and their purposes
    • How to interpret results: explaining pass/fail output
    • CI/CD pipeline: explains when tests run automatically


    Während das Projekt aktiv ist, MUSS die Dokumentation des Projekts eine Richtlinie enthalten, dass alle wesentlichen Änderungen an der vom Projekt produzierten Software Tests der Funktionalität in einer automatisierten Testsuite hinzufügen oder aktualisieren sollten. [OSPS-QA-06.03]
    Fügen Sie der Beitragsdokumentation einen Abschnitt hinzu, der die Richtlinie zum Hinzufügen oder Aktualisieren von Tests erklärt. Die Richtlinie sollte erklären, was eine wesentliche Änderung darstellt und welche Tests hinzugefügt oder aktualisiert werden sollten.

    CONTRIBUTING.md "Test Policy for Major Changes" section exists:

    • Defines what constitutes a major change (new features, API changes, bug fixes, security changes)
    • Specifies what tests to add: unit tests for new functionality, regression tests for bug fixes
    • States PR policy: new features require tests, regression tests required for bug fixes
    • Acknowledges current thin coverage but commits to testing for major changes


    Wenn ein Commit in den primären Branch gemacht wird, MUSS das Versionskontrollsystem des Projekts mindestens eine menschliche Genehmigung der Änderungen durch einen Nicht-Autor vor dem Zusammenführen erfordern. [OSPS-QA-07.01]
    Konfigurieren Sie das Versionskontrollsystem des Projekts so, dass mindestens eine menschliche Genehmigung der Änderungen durch einen Nicht-Autor vor dem Zusammenführen in den Release- oder primären Branch erforderlich ist. Dies kann erreicht werden, indem ein Pull-Request von mindestens einem anderen Mitarbeiter überprüft und genehmigt werden muss, bevor er zusammengeführt werden kann.

    Single-maintainer project: Argentum is maintained by one person (me, AG064) with no additional collaborators.

    Branch protection is enabled (direct pushes to development/main blocked).
    PR workflow exists and is used for all changes.
    Self-review is performed via PR process.

    However, requiring non-author human approval is impossible without a second collaborator.
    This is a project structure constraint, not a security policy failure.
    If the project grows to include additional maintainers, this requirement will be enforced.



    Wenn das Projekt ein Release erstellt hat, MUSS das Projekt eine Bedrohungsmodellierung und eine Analyse der Angriffsfläche durchführen, um Angriffe auf kritische Codepfade, Funktionen und Interaktionen innerhalb des Systems zu verstehen und sich davor zu schützen. [OSPS-SA-03.02]
    Bedrohungsmodellierung ist eine Aktivität, bei der das Projekt die Codebasis, zugehörige Prozesse und Infrastruktur, Schnittstellen, Schlüsselkomponenten betrachtet und "wie ein Hacker denkt" und darüber nachdenkt, wie das System kompromittiert werden könnte. Jede identifizierte Bedrohung wird aufgelistet, damit das Projekt dann darüber nachdenken kann, wie Lücken/Schwachstellen, die entstehen könnten, proaktiv vermieden oder geschlossen werden können. Stellen Sie sicher, dass dies für neue Funktionen oder Breaking Changes aktualisiert wird.

    SECURITY.md "Security Risks & Threat Model" section includes:

    • Threat model covering 11 categories (60+ entries) of critical code paths, functions, and interactions
    • Each threat has Likelihood/Impact/Mitigation assessment
    • "Threat Model Maintenance" section added: MUST be updated for new features/breaking changes
    • "Threat Model Review Required" note at top of section
    • docs/releases/TEMPLATE.md includes checkbox: "Verify SECURITY.md threat model reflects new features/attack paths"
    • Current threat model covers v0.0.7 release
    • Next review scheduled before v0.0.8 release


    Während das Projekt aktiv ist, MÜSSEN alle Schwachstellen in den Softwarekomponenten, die das Projekt nicht betreffen, in einem VEX-Dokument berücksichtigt werden, das den Schwachstellenbericht mit Details zur Nicht-Ausnutzbarkeit erweitert. [OSPS-VM-04.02]
    Richten Sie einen VEX-Feed ein, der den Ausnutzbarkeitsstatus bekannter Schwachstellen kommuniziert, einschließlich Bewertungsdetails oder aller vorhandenen Abhilfemaßnahmen, die verhindern, dass anfälliger Code ausgeführt wird.

    SECURITY_DEPENDENCY_NOTES.md serves as VEX (Vulnerability Exploitability eXchange) document:

    • Documents known vulnerabilities in software components (npm bundled modules)
    • Provides non-exploitability details: "The project's direct dependency is correctly overridden"
    • Specifies mitigations in place: package.json overrides ensure patched versions are used
    • Status for each vulnerability: "No additional action required - project override ensures correct version"

    Each entry shows:

    • CVE identifier
    • Location (bundled npm modules, not direct project dependency)
    • Project override in place (package.json overrides.picomatch, etc.)
    • Why not exploitable via project code
    • Mitigation: npm package.json overrides resolve to patched versions

    VEX document updated when new vulnerabilities are discovered or mitigations change.



    Während das Projekt aktiv ist, MUSS die Projektdokumentation eine Richtlinie enthalten, die einen Schwellenwert für die Behebung von SCA-Befunden in Bezug auf Schwachstellen und Lizenzen definiert. [OSPS-VM-05.01]
    Dokumentieren Sie eine Richtlinie im Projekt, die einen Schwellenwert für die Behebung von SCA-Befunden in Bezug auf Schwachstellen und Lizenzen definiert. Fügen Sie den Prozess zur Identifizierung, Priorisierung und Behebung dieser Befunde hinzu.

    SECURITY_DEPENDENCY_NOTES.md now includes "SCA Remediation Policy" section with:

    • Severity threshold table (Critical: 24h, High: 7 days, Medium: 30 days, Low: best effort)
    • License policy (allowed/prohibited licenses)
    • Process: Identify -> Prioritize -> Remediate -> Document -> Verify
    • Exceptions for bundled npm modules, RUSTSEC, false positives

    Trivy runs in CI on every push (from .github/workflows/trivy.yml).
    Process documented for handling SCA findings.



    Während das Projekt aktiv ist, MUSS die Projektdokumentation eine Richtlinie enthalten, um SCA-Verstöße vor jedem Release zu beheben. [OSPS-VM-05.02]
    Dokumentieren Sie eine Richtlinie im Projekt, um anwendbare Software Composition Analysis-Ergebnisse vor jedem Release zu beheben, und fügen Sie Statusprüfungen hinzu, die die Einhaltung dieser Richtlinie vor dem Release überprüfen.

    release.yml now includes Trivy SCA scan step:

    • Runs after build, before release artifacts are uploaded
    • Scans release artifacts for Critical/High vulnerabilities
    • Uploads results to GitHub Security tab (SARIF format)
    • Blocks release if Critical/High vulnerabilities found (exit-code: 1)
    • Policy documented in SECURITY_DEPENDENCY_NOTES.md "SCA Remediation Policy" section

    Release workflow now:

    1. Build binaries
    2. Run Trivy scan (CRITICAL/HIGH)
    3. If vulnerabilities found -> fail and block release
    4. Only proceed if scan passes


    Während das Projekt aktiv ist, MÜSSEN alle Änderungen an der Codebasis des Projekts automatisch anhand einer dokumentierten Richtlinie für bösartige Abhängigkeiten und bekannte Schwachstellen in Abhängigkeiten bewertet und dann im Falle von Verstößen blockiert werden, außer wenn sie als nicht ausnutzbar deklariert und unterdrückt wurden. [OSPS-VM-05.03]
    Erstellen Sie eine Statusprüfung im Versionskontrollsystem des Projekts, die ein Software Composition Analysis-Tool bei allen Änderungen an der Codebasis ausführt. Fordern Sie an, dass die Statusprüfung bestanden wird, bevor Änderungen zusammengeführt werden können.

    .github/workflows/dependency-scan.yml created:

    • Runs on: push to development/main AND pull requests
    • Runs npm audit --audit-level=high
    • Runs Trivy scan on entire codebase (fs mode)
    • Uploads results to GitHub Security tab (SARIF)
    • Blocks merge if Critical/High vulnerabilities found (exit 1)
    • Exceptions can be declared via .trivyignore or osv-scanner.toml

    Policy documented in SECURITY_DEPENDENCY_NOTES.md SCA Remediation Policy section:

    • Critical: 24h remediation
    • High: 7 days
    • Exceptions: documented in .trivyignore or per-CVE suppression

    Branch protection ensures this check must pass before merge.



    Während das Projekt aktiv ist, MUSS die Projektdokumentation eine Richtlinie enthalten, die einen Schwellenwert für die Behebung von SAST-Befunden definiert. [OSPS-VM-06.01]
    Dokumentieren Sie eine Richtlinie im Projekt, die einen Schwellenwert für die Behebung von Befunden aus Static Application Security Testing (SAST) definiert. Fügen Sie den Prozess zur Identifizierung, Priorisierung und Behebung dieser Befunde hinzu.

    SECURITY.md "SAST Remediation Policy" section includes:

    • Severity threshold table (Critical: 24h, High: 7 days, Medium: 30 days, Low: best effort)
    • Process: Identify (CodeQL) -> Prioritize -> Remediate -> Suppress -> Verify
    • Suppression guidelines requiring inline comments explaining why
    • Example suppression comment provided

    CodeQL runs on every push from .github/workflows/codeql.yml



    Während das Projekt aktiv ist, MÜSSEN alle Änderungen an der Codebasis des Projekts automatisch anhand einer dokumentierten Richtlinie auf Sicherheitsschwachstellen bewertet und im Falle von Verstößen blockiert werden, außer wenn sie als nicht ausnutzbar deklariert und unterdrückt wurden. [OSPS-VM-06.02]
    Erstellen Sie eine Statusprüfung im Versionskontrollsystem des Projekts, die ein Static Application Security Testing (SAST) Tool bei allen Änderungen an der Codebasis ausführt. Verlangen Sie, dass die Statusprüfung erfolgreich ist, bevor Änderungen zusammengeführt werden können.

    Branch ruleset for development includes:

    • CodeQL Analysis as required status check
    • Code scanning rule: CodeQL, Scorecard, Trivy all set to high_or_higher
    • Pull request rule: 1 approval required
    • Branch protection enforced via GitHub's ruleset API (new format)


Diese Daten sind unter der Community Data License Agreement – Permissive, Version 2.0 (CDLA-Permissive-2.0) verfügbar. Dies bedeutet, dass ein Datenempfänger die Daten mit oder ohne Änderungen weitergeben darf, solange der Datenempfänger den Text dieser Vereinbarung mit den weitergegebenen Daten zur Verfügung stellt. Bitte nennen Sie AG064 und die OpenSSF Best Practices Badge-Mitwirkenden als Urheber.

Projekt-Badge-Eintrag im Besitz von: AG064.
Eintrag erstellt: 2026-05-24 05:44:50 UTC, zuletzt aktualisiert: 2026-05-26 00:21:59 UTC. Letztes erreichtes Badge: 2026-05-25 14:37:43 UTC.