Stykliste (BoM)
fremforge er bevidst åben om værktøjerne under hver kontrol. Kunder under BSI C5, ISO 27001, BaFin eller ENISA-reguleret gennemgang har brug for et revisionsspor på værktøjsniveau, og vi vil hellere have, at du kan greppe i vores kildekode, end at du skal reverse-engineere en sort boks.
Denne side er den autoritative oversigt. Den kortere tabel i oversigten over sikkerhedsfunktioner er et udvalg til hurtigt opslag; denne her er den fulde registrering: versioner, hentekilder, hvor hver komponent kører, den supply chain-attestation, der følger med, og licensen.
Supply chain-integritet
Hver afhængighed, hvert container-image og hver binær i denne oversigt følger fremforges regel for kontakt med upstream:
- Kode hostet på GitHub kommer via Forgejos indbyggede pull-mirror på
frem.sh/<canonical-org>/<repo>(synkronisering hver 8. time). Kunde-workflows, der opløseruses: actions/checkout@v4, rammerfrem.sh/actions/checkout: der hentes intet direkte fra github.com på kundens kritiske sti. - Container-images (docker.io / ghcr.io / quay.io / public.ecr.aws) caches via et internt EU-mirror. Produktionsmanifester henviser aldrig direkte til et upstream-registry.
- Release-binærer, der ikke leveres som OCI (f.eks.
opengrep,cosign), pakkes ind i små cache-images, der serveres fra det samme interne EU-mirror. Renovate følger upstream-versionen på GitHub-releases og åbner en ugentlig PR med versionsopdateringen.
CI tjekker Dockerfile‘er og manifester for referencer, der ville gå uden om mirroret, så hver upstream-afhængighed opløses gennem den EU-placerede cache i stedet for direkte fra et offentligt registry.
CI- og supply chain-værktøjer
| Værktøj | Version | Hvor det bruges | Licens | Hentekilde |
|---|---|---|---|---|
| Forgejo | v15.x | Repo-hosting, code review, runner-protokollen for Actions, SSO-godkendelseskilder | GPLv3 | Internt EU-mirror (fremforge-build) |
| forgejo-runner (act_runner) | v13.2.0 | Registrering af kortlivede runners på en ECS-VM pr. commit | MIT | Internt EU-mirror |
| Gitleaks | v8.x | Secret-scanning ved pre-receive | MIT | Internt EU-mirror |
| OpenGrep | v1.22 | SAST på hver PR (FOSS-efterfølger til Semgrep efter licensskiftet) | LGPLv2.1 | Internt EU-mirror |
| Trivy | v0.74 | Image-scanning i kundens CI + CVE-tjek indbygget i runner-imaget | Apache 2.0 | Internt EU-mirror |
| osv-scanner | Seneste | Scanning af afhængigheder for CVE/GHSA ved PR | Apache 2.0 | Internt EU-mirror |
| Syft | Seneste | CycloneDX 1.6- og SPDX 2.3-SBOM’er ved hver PR-scanning (begge accepteres ved indlæsning) | Apache 2.0 | Internt EU-mirror |
| cosign | Seneste | Signering og verifikation af images (kundens CI via cosign-verify.yaml) | Apache 2.0 | Internt EU-mirror |
| Fulcio | v1.8.5 (Helm 2.9.0) | Selvhostet CA til kodesignering på sign.frem.sh. Rod-CA i T Cloud Public DEW KMS (FIPS 140-2 Level 3 HSM). IKKE den offentlige Sigstore Fulcio: fremforge kører sin egen | Apache 2.0 | Internt EU-mirror |
| Sigstore TSA | Seneste | RFC 3161-tidsstempelmyndighed på tsa.frem.sh. Nøgle i DEW KMS. IKKE den offentlige Sigstore TSA | Apache 2.0 | Internt EU-mirror |
| gitsign | Seneste | Kundens git-klient; OIDC-bundet commit-signering mod den lokale Fulcio | Apache 2.0 | Installeres hos kunden (brew install sigstore/tap/gitsign) |
| Renovate | Seneste | Hostet bot til opdatering af afhængigheder, cron hvert 15. minut, fravalg pr. repo | AGPLv3 | Internt EU-mirror |
| kaniko | Seneste | Rootless container-build i kunde-workflows (alternativ til BuildKit, når kunden ikke kan køre privilegeret) | Apache 2.0 | Internt EU-mirror |
| ClamAV | Seneste | Malwarescanning af uploads (LFS-objekter, vedhæftninger, pakkeuploads) og den valgfrie scanning i afhængighedsproxyen. Signaturkilderne står under Detektionsindhold | GPLv2 | Internt EU-mirror |
| scorecard | Seneste | Ugentlig kørsel af OpenSSF best practices pr. repo | Apache 2.0 | Internt EU-mirror |
openssl + python3 (stdlib) | n/a | Verifikation hos kunden af publiceringsattestationer udstedt af fremforge: DSSE-konvolutterne er signeret med en bar Ed25519-nøgle, så verifikationen er en lille opskrift med curl/jq/openssl/python3 (se SLSA-provenance), ikke upstream slsa-verifier | — | Værktøjer, der følger med distributionen |
Detektionsindhold
De regler, advisory-databaser og malwaresignaturer, scannerne matcher mod. Hver af dem er fastlåst eller opdateres med den viste kadence, og ingen af dem hentes af en scanning, mens den kører.
| Indhold | Bruges af | Licens | Hentekilde |
|---|---|---|---|
| GitLab sast-rules, kun mapperne pr. sprog (C#, Go, Java, JavaScript, Python, Scala) | SAST og /opt/sast-rules i det hostede runner-image | MIT; Go-reglerne Apache-2.0 (afledt af gosec). Resten af upstream-repositoriet, som indeholder indhold under andre licenser, slettes ved build, og buildet fejler, hvis en bevaret fil har en anden licens end MIT, Apache-2.0 eller BSD | Pull-mirror på frem.sh, fastlåst commit |
0xdea semgrep-rules, rules/c | SAST for C og C++ | MIT | Pull-mirror på frem.sh, fastlåst commit |
| fremforges SAST-regler | SAST for JavaScript og TypeScript, Python, Bash, PHP, Ruby, Rust, Kotlin og Swift | MIT | fremforges kildekode |
Trivys sårbarhedsdatabaser (trivy-db, trivy-java-db) | Scanning af container-images, trivy fs på pull requests | Apache-2.0 for databasebuildet; hver post bevarer sin kildes vilkår (GitHub Advisory Database, sikkerhedsdata fra Red Hat og SUSE: CC-BY-4.0) | Internt EU-mirror, opdateres dagligt |
| OSV-databasen, offlinekopi | Afhængighedsscanning, ondsindede pakker, pakkepolitikker, revisioner i afhængighedsproxyen | CC-BY-4.0; hver post bevarer sin kildes vilkår | Internt mirror af OSV-eksporten, opdateres dagligt |
| Gos sårbarhedsdatabase | Go-nåbarhed (govulncheck) | CC-BY-4.0 | OSV-mirrorets Go-eksport, opdateres dagligt |
| GitHub Advisory Database | Via OSV og Trivys databaser | CC-BY-4.0 | Via OSV- og Trivy-mirrorerne |
| SaneSecurity-signaturer | ClamAV-malwarescanning | SaneSecuritys vilkår: gratis, støttet af donationer | Et offentligt SaneSecurity-mirror, hver 4. time |
| YARA-Forge Core | ClamAV-malwarescanning | Detection Rule License 1.1; kommerciel brug tilladt med kreditering af regelforfatterne | Hver 4. time, upstream udgiver ugentligt |
| Linux Malware Detect-signaturer | ClamAV-malwarescanning | GPLv2 | Hver 4. time, upstream dagligt |
| EICAR-testsignatur | Røgtest af malwarescanningen | Fri brug (EICAR) | Statisk, leveres med scanneren |
Platformsfundament
| Lag | Værktøj / leverandør | Hvor det bruges | Licens / status |
|---|---|---|---|
| Container-registry | T Cloud Public SWR | Alle fremforge-images. Eneste kilde til pulls ved kørsel; mirror for hvert upstream-registry | Leverandør (Deutsche Telekom, eu-de) |
| Kubernetes | T Cloud Public CCE Turbo (Cloud Native Network 2.0) | Platformens workloads (Forgejo, kontrolplanets monolit, jobs). ENI + Security Group pr. pod via Yangtse CNI. CI-runners kører ikke her: se ECS-rækken nedenfor | Leverandør (Deutsche Telekom, eu-de) |
| Compute til hostede CI-runners | T Cloud Public ECS (kortlivet VM pr. commit) | Én kortlivet ECS-VM pr. commit/PR; dedikeret kerne (isoleret af hypervisoren), fjernes efter jobbet; VPC Security Group pr. VM (ingen indgående trafik, VM-til-VM nægtet, udgående trafik via runner-proxy med SSRF-beskyttelse) | Leverandør (Deutsche Telekom, eu-de) |
| Objektlager (operatør) | T Cloud Public OBS | WORM-anker for revisionskæden, SBOM-arkiv, dataeksport, OpenTofu-state | Leverandør (Deutsche Telekom, eu-de) |
| Relationel database | T Cloud Public RDS (PostgreSQL 15) | api-state, tabeller for lejere og fund, revisionskæde | Leverandør (Deutsche Telekom, eu-de) |
| In-memory-cache | T Cloud Public DCS Redis | Tællere til rate limiting, sete IP’er ved token-udveksling, sessionscache | Leverandør (Deutsche Telekom, eu-de) |
| Nøglehåndtering | T Cloud Public DEW | MASTER_ENCRYPTION_KEY, Fulcios rod-CA, TSA’ens signeringsnøgle | Leverandør (FIPS 140-2 Level 3 HSM, Tyskland) |
| Function-as-a-service | T Cloud Public FunctionGraph | Planlagte cron- og oprydningsworkloads | Leverandør (Deutsche Telekom, eu-de) |
| Log- og metriklag | T Cloud Public LTS + CES | Applikationslogs, alarmer på nøgleord, SLO-metrikker | Leverandør (Deutsche Telekom, eu-de) |
| Edge / CDN | Bunny CDN | TLS-terminering, caching på EU-edge, edge-regler, grundniveau for rate limiting | Leverandør (hovedkontor i Slovenien, EU-placeret, ingen amerikansk underdatabehandler) |
| Transaktionsmails | Lettermint | Godkendelsesmails, faktureringsmeddelelser, alarmer | Leverandør (NL, GDPR-placeret) |
| Driftspostkasse | mailbox.org | Indgående administrationsmail til *@frem.sh | Leverandør (Tyskland) |
| Betalingsbehandling | Mollie | Kort + SEPA Direct Debit | Leverandør (NL, GDPR-placeret) |
| Bogføring | Dinero | Udstedelse af fakturaer + regnskab | Leverandør (DK, GDPR-placeret) |
| Ekstern oppetidsmåling | updown.io | Tilgængelighedsprober uden for eget net (api, Forgejo, Kuma, marketing, Authentik) | Leverandør (FR) |
Hver leverandør på listen er kontraktligt placeret i EU uden amerikansk underdatabehandler i datastien. Den fulde databehandleraftale og kæde af underdatabehandlere står på trust-siden.
Hvad vi bevidst ikke bruger
| Fravalgt leverandør / værktøj | Hvorfor |
|---|---|
| github.com (direkte) | EU-suverænitet + Schrems II + reglen for kontakt med upstream. Udelukkende via mirror. |
| GitHub Advanced Security (CodeQL m.fl.) | Proprietære detektionsregler, du ikke kan revidere. Vi bruger OpenGrep + Trivy + osv-scanner: alt open source, alt kan revideres. |
| Microsoft 365, Entra, Defender | Samme grund. fremforge-produktet har intet Microsoft-fodaftryk. (fremverks interne IT er en separat identitetsverden.) |
| Offentlig Sigstore Fulcio/Rekor (sigstore.dev) | Hostet i USA; verifikationsstien ville gå uden for EU. Vi kører vores egen Fulcio + TSA i eu-de med rod-CA’en i DEW KMS. Ingen Rekor / transparenslog som designvalg: tidsstempling forankret i TSA’en er i stedet integritetsprimitivet. |
| AWS, GCP, Azure | Kontrolleret af amerikanske cloududbydere. T Cloud Public drives af Deutsche Telekom på en Huawei-afledt stak; OpenTofu-provideren er den fork, der vedligeholdes til OTC (opentelekomcloud/opentelekomcloud, aldrig huaweicloud/huaweicloud). |
| Cloudflare, Fastly, Akamai | Edge under amerikansk cloudkontrol. Bunny CDN har hovedkontor i EU og er kontraktligt placeret i EU. |
| Google Fonts, jsDelivr, unpkg og andre CDN-indlæste ressourcer | Et tredjeparts-CDN eksponerer trafikmønstre for edges i USA. Alle skrifttyper, JS og CSS er selvhostet på www.frem.sh/fonts/ via Bunny EU. |
| Langlivede legitimationsoplysninger til servicekonti i kunde-workflows | OIDC-tokenføderation (workflow-OIDC) + agent-nativ godkendelse erstatter dem. Langlivede nøgler er en udfaset tilvalgsvej med et udfasningsbanner. |
Sådan bruger du denne BoM i din egen revisionspakke
Til et udbudssvar eller et leverandørspørgeskema: link direkte til denne side. URL’en er stabil: https://docs.frem.sh/security/bill-of-materials/.
Til dokumentation for BSI C5 eller ISO 27001: bed security@frem.sh om det daterede PDF-øjebliksbillede. Vi kan også på forespørgsel lave en SBOM i CycloneDX-format af selve platformen (ikke kun pr. release), hvilket er nyttigt til matching af transitive CVE’er.
Til løbende verifikation: hver release af hver fremforge-komponent udgiver en CycloneDX-SBOM genereret med Syft, og SLSA-L2-provenance hos kunden fastlåser digestet for hvert attesteret aktiv. Provenance er en Ed25519-signeret DSSE- / in-toto-konvolut (<asset>.intoto.jsonl); verificér den mod fremforges udgivne tillidsrod med opskriften med curl/jq/openssl/python3 i SLSA-provenance.
Afvigelser: denne BoM vedligeholdes i dag manuelt. Skriv til security@frem.sh, hvis du har brug for et aktuelt øjebliksbillede før en revision.
Relateret
- Trust-siden: databehandleraftale, liste over underdatabehandlere, compliance-attestationer.
- Tredjepartsmeddelelser for runner-imaget: licensmeddelelser, tilbuddet om opengrep-kildekode og kreditering for advisory-data og malwaresignaturer.
- Sikkerhedsfunktioner i overblik: hvad hvert værktøj faktisk gør, med direkte links.
- SBOM’er: hvordan CycloneDX/SPDX-SBOM’er genereres hos kunden.
- SLSA-provenance: hvordan publiceringsattestationen signeres på serveren med platformens Ed25519-nøgle, hvordan du verificerer den, og hvorfor den bevidst ikke beskrives som et SLSA-niveau.
- Rapportering af sårbarheder:
security@frem.sh, SLA på 24 timer for kvittering.