Zum Hauptinhalt springen

Sicherheitsrichtlinien

Sicherheit › Richtlinien enthält die Regeln, die deine Organisation durchsetzt. Die Befundseiten zeigen, was gefunden wurde. Die Richtlinien-Tabs entscheiden, was ein Befund blockiert und was ein Push, ein Merge, ein Download oder ein Pull darf. Nur ein Owner der Organisation kann eine Richtlinie ändern, und jede Änderung wird in das Audit-Log geschrieben.

Die Tabs

TabWas er entscheidetWo es durchgesetzt wird
Push-SchutzPushes, die ein Secret enthalten, werden abgewiesen. Dieser Tab enthält die Überschreibungen und das Verhalten bei einem Scannerausfall.Jeder git push
ScannerOb SAST, Abhängigkeits-, Lizenz- und Secret-Scanning bei Pull Requests laufen und ab welchem Schweregrad die jeweilige Prüfung fehlschlägt.Die Pull-Request-Prüfungen fremforge/*
PaketrichtlinienWelche Dateien in deiner Paket-Registry heruntergeladen werden dürfen: Schwachstellenschwellen, Zulassungs- und Sperrlisten, Mindestalter, Signaturen, Ausnahmen.Registry-Downloads und der Abhängigkeits-Proxy
LizenzrichtlinieEin Satz Lizenzregeln für Pull Requests und Downloads.Die Prüfung fremforge/license-scan und Registry-Downloads
Release-AlterWie lange eine neue Version veröffentlicht sein muss, bevor sie übernommen wird. Eine Zahl für die Pull-Request-Prüfung, beide Wege der Abhängigkeits-Updates und Registry-Downloads.Die Prüfung fremforge/release-age, gehostetes Renovate, Sicherheitskorrekturen, Registry-Downloads
Image-RichtlinienDie Pull-Sperre für Images und welchen Image-Signaturen du vertraust.docker pull von frem.sh und die Prüfung fremforge/image-scan
Repository-RegelnBranch-Schutz für neue Repositorys, signierte Commits und welche Branches Actions-Workflows ausführen dürfen.Jedes Repository der Organisation
ModellscanOb eine Modelldatei, die Code ausführen kann, gemeldet oder abgewiesen wird.Uploads von Modelldateien
Unveränderliche ReleasesOb sich ein veröffentlichtes Release oder Tag nachträglich ändern kann.Releases und Container-Tags

Die Befund-Tabs zeigen Befunde; was ein Scanner tut, wird hier eingestellt. Im Tab Ausnahmen unter Befunde wird ein Befund für eine Zeit akzeptiert, mit oder ohne Genehmigung einer zweiten Person.

Scanner

Sicherheit › Richtlinien › Scanner enthält die Einstellungen jedes Scanners. Bis zum 2026-10-15 standen sie oben in dessen Befund-Tab, der jetzt zuerst seine Befunde zeigt sowie eine Zeile mit dem Zustand des Scanners und einem Link hierher.

  • SAST: an oder aus und der Schweregrad (info, warning, error), ab dem die Prüfung fremforge/sast fehlschlägt.
  • Abhängigkeiten: an oder aus und der Schweregrad (low bis critical), ab dem die Prüfung fremforge/dep-scan fehlschlägt.
  • Lizenzen: ob Pull Requests auf Lizenzen gescannt werden. Was ein Lizenzbefund bedeutet, legt die Lizenzrichtlinie fest.
  • Secret-Scanning: ob Pull Requests, die ein Secret hinzufügen, blockiert werden.
  • Container-Images: Image-Scan und Pull-Sperre liegen unter Image-Richtlinien.

Wird ein Speichern abgewiesen, etwa weil ein Schweregrad keine der Auswahlmöglichkeiten ist, kehrt die Seite zum Abschnitt des Scanners zurück und nennt den Grund. API und Terraform-Ressourcen sind unverändert: PUT /orgs/{org}/code-security/{scanner}/settings und die Ressourcen fremforge_*_settings.

Release-Alter

Sicherheit › Richtlinien › Release-Alter ist eine Zahl von Tagen, 0 bis 14, die angibt, wie lange eine neue Version veröffentlicht sein muss, bevor deine Organisation sie übernimmt. Bis zum 2026-10-16 waren das vier Einstellungen an vier Stellen. Jetzt setzt sie alle vier:

Wo sie giltWas wartet
Die Prüfung fremforge/release-ageEin automatisierter Pull Request für Abhängigkeits-Updates, der eine jüngere Version hinzufügt. Eine Korrektur, die eine geprüfte Advisory nennt, wartet stattdessen 24 Stunden (der Sicherheitskorrektur-Weg). Siehe Versions-Updates.
Versions-UpdatesGehostetes Renovate schlägt ein Routine-Update erst vor, wenn die Version so alt ist. Die eigene renovate.json eines Repositorys hat weiterhin Vorrang.
SicherheitskorrekturenEin Pull Request für eine Sicherheitskorrektur wartet, bis die korrigierte Version dieses Alter erreicht (soak_days des Wegs).
DownloadsDas Mindestalter deiner Paketrichtlinie (min_age_hours, die Tage mal 24). 0 schaltet das Download-Alter aus.

Nichts hat sich von selbst geändert. Jede Stelle hat ihren eigenen Wert behalten. Wo sie sich unterscheiden, zeigt die Seite jeden heutigen Wert und was ein Speichern setzen würde, und sie schlägt den Wert der Sicherheitskorrekturen vor. Nichts wird geschrieben, bis ein Owner speichert, und Speichern wird nur für die Zahl angeboten, deren Änderungen die Seite gezeigt hat.

Eine Korrektur für eine bekanntermaßen ausgenutzte Schwachstelle wartet weiterhin weder in der Pull-Request-Prüfung noch bei Sicherheitskorrekturen noch bei einem Download über den Abhängigkeits-Proxy. Pakete in deiner eigenen Registry warten weiterhin.

Der Sicherheitskorrektur-Weg in der Pull-Request-Prüfung

In der Prüfung fremforge/release-age wartet eine Version, die eine Schwachstelle deines Basis-Branches behebt, gleich welchen Schweregrads, 24 Stunden statt deines Release-Alters. Eine Version qualifiziert sich nur, wenn all das zutrifft:

  • Dein Basis-Branch löst eine frühere Version des Pakets auf, und der Pull Request entfernt sie.
  • Eine Advisory betrifft diese frühere Version und nennt eine korrigierte Version, die gleich der neuen ist oder darunter liegt. Ein Release, das nur behauptet, etwas zu beheben, qualifiziert sich nicht.
  • Die Advisory ist geprüft, unabhängig von ihrem Schweregrad: eine GitHub-Advisory, die GitHub geprüft hat, oder ein Eintrag aus der eigenen Datenbank des Ökosystems (RustSec, die Go-Schwachstellendatenbank, PyPA). Sie wurde mindestens 24 Stunden vor der Prüfung veröffentlicht und geprüft. Ein Paket und eine Advisory, die am selben Tag zusammen veröffentlicht wurden, qualifizieren sich also nie.
  • Kein Eintrag zu schädlichen Paketen passt auf die neue Version. Der Malware-Abgleich wird für diesen Weg nie gelockert.

Eine neue transitive Abhängigkeit, die nur die Korrektur mitgebracht hat, erhält in einem von zwei Fällen dieselben 24 Stunden:

  • Eine Advisory nennt auch sie als Korrektur, nach denselben Regeln wie oben.
  • Die Leute der Korrektur veröffentlichen sie selbst. Der npm-Benutzer, der diese Version veröffentlicht hat, muss bekannt sein und muss Maintainer der Korrektur sein. Zusätzlich muss eines davon zutreffen:
    • Jeder Maintainer der Abhängigkeit pflegt auch die Korrektur.
    • Abhängigkeit und Korrektur geben dasselbe Quell-Repository an, wie es die Pakete eines Monorepos tun.

Ein angegebenes Repository genügt allein nie. Das Feld repository in einer package.json enthält, was auch immer der Veröffentlichende dort einträgt, also kann jeder das Repository eines anderen beanspruchen. Eine Abhängigkeit, deren Veröffentlichender unbekannt ist, wartet immer.

Andernfalls wartet sie dein volles Release-Alter, und der Pull Request wartet mit. Jede andere neue Version im Pull Request behält dein Release-Alter. Der Weg macht die Prüfung nie strenger. Bei einem Release-Alter von 1 Tag oder 0 ändert sich nichts.

Der Status der Prüfung nennt jede Version, die über den Weg durchgelassen wurde, und die Advisory, die sie behebt, zum Beispiel 1 version(s) via the security-fix lane (24h): body-parser@2.4.0 fixes GHSA-…. Jede solche Version schreibt code-security.release_age.waived_security_fix_lane in das Audit-Log, mit Paket, Version, Advisorys, der Korrektur, die sie mitgebracht hat, und dem Pull Request. Downloads über den Abhängigkeits-Proxy und gehostetes Renovate behalten ihre eigenen Regeln. Pakettypen mit eigenem Mindestalter in der Paketrichtlinie behalten es, und die Seite listet sie auf. Ist die Paketrichtlinie nicht im Modus Durchsetzen, wird ein zu neuer Download nur festgehalten.

Eines ist nicht abgedeckt: Für npm, pnpm und Yarn 1 löst gehostetes Renovate die Lockfile über die Release-Alter-Sicht von fremforge auf die npm-Registry auf, die für jede Organisation 3 Tage verwendet. Mit einem längeren Release-Alter hält die Prüfung fremforge/release-age den Pull Request trotzdem zurück, bis jede Version in der Lockfile alt genug ist.

Über die API: GET/PUT /orgs/{org}/release-age (policy:read, policy:write) mit {"days": 7, "package_policy_version": 12} und POST /orgs/{org}/release-age/preview mit {"days": 7} für das, was ein PUT an jeder Stelle ändern würde. Das PUT wird gegen die Version der Paketrichtlinie geprüft, wie beim Speichern einer Paketrichtlinie, und antwortet mit 409 policy-version-conflict, wenn sie sich geändert hat. Jede Änderung schreibt security.release_age.updated in das Audit-Log, neben die Ereignisse der Einstellungen, die sie geändert hat.

Image-Richtlinien

Sicherheit › Richtlinien › Image-Richtlinien hat zwei Teile. Beide standen früher unten unter Befunde › Container-Images.

  • Scan und Pull-Sperre. Schaltet den Image-Scan ein oder aus und legt die Sperraktion fest: none, warn oder block_pull. Mit block_pull wird der Pull eines Images mit einem nicht verworfenen Befund auf oder über deiner Sperrschwelle abgewiesen, und die Prüfung fremforge/image-scan schlägt fehl. Siehe Richtlinienschalter.
  • Image-Signaturen beim Pull. Wessen cosign-Signaturen du vertraust (eine Liste vertrauenswürdiger Signierender, Schlüssel oder das öffentliche Sigstore), für welche Images das gilt und ob ein unsignierter Pull nur festgehalten (Schatten) oder abgewiesen (Durchsetzen) wird. Siehe Image-Signaturen.

Repository-Regeln

Sicherheit › Richtlinien › Repository-Regeln ist eine Seite für die Regeln, an die jedes Repository der Organisation gebunden ist.

  • Branch-Schutz (#org-baseline). Die Regel, die jedes neue Repository für seine geschützten Branches erhält: erforderliche Genehmigungen, CODEOWNERS-Review, Statusprüfungen, lineare Historie und der Rest. Beim Speichern werden die Standards sofort auf bestehende Repositorys angewendet. Siehe Branch-Schutz.
  • Commit-Signierung (#commit-signing). Eine Einstellung: Ist sie an, verlangt der Standard-Branch jedes Repositorys signierte Commits, und neue Repositorys erhalten dieselbe Anforderung über die Standards oben. Hat eine ältere Einstellung die beiden auseinanderlaufen lassen, sagt die Seite das; das Speichern der Commit-Signierung bringt sie wieder in Einklang. Siehe Signierte Commits verlangen.
  • Organisationsweite Sperre (#actions-gate): Actions nur auf geschützten Branches. Ist sie an, läuft ein Workflow nur auf einem geschützten Branch, sodass ein Push auf einen anderen Branch keinen Code mit den Secrets der Organisation ausführen kann. Siehe Actions nur auf geschützten Branches.

Die alten Adressen funktionieren weiterhin: _admin/repo-defaults sowie die Einstellungen für Commit-Signierung und Actions unter Organisation › Repositorys und Build und Deployment › Umgebungen verlinken oder leiten jetzt hierher weiter.

API und Terraform

TabAPITerraform / OpenTofu
Push-Schutz/orgs/{org}/push-protection/overrides, /orgs/{org}/push-protection/failure-modefremforge_push_protection
PaketrichtlinienGET/PUT /orgs/{org}/package-policyfremforge_package_signature_policy (die Signaturregel)
LizenzrichtlinieGET/PUT /orgs/{org}/licence-policy
Release-AlterGET/PUT /orgs/{org}/release-age, POST /orgs/{org}/release-age/preview
Image-Richtlinien/orgs/{org}/code-security/images/settings, /orgs/{org}/image-signature-policyfremforge_image_scan_settings, fremforge_image_signature_policy
Repository-Regeln/orgs/{org}/branch-defaults, PATCH /orgs/{org}/auth-policy (require_signed_commits), PUT /orgs/{org}/security/actions-policyfremforge_branch_protection_defaults, fremforge_auth_policy, fremforge_actions_policy
Unveränderliche Releasesfremforge_immutability

Die vollständige Liste mit Scopes und Feldern steht in der API-Referenz und auf der Seite Terraform-Provider.