Stuklijst
fremforge is bewust transparant over de tools onder elke beheersmaatregel. Klanten die onder BSI C5, ISO 27001, BaFin of door ENISA gereguleerde review vallen, hebben het audittraject op toolniveau nodig, en we hebben liever dat je in onze broncode kunt zoeken dan dat je een black box moet reverse-engineeren.
Deze pagina is de gezaghebbende inventaris. De kortere tabel in het overzicht van beveiligingsfuncties is een subset als snelle referentie; deze is het volledige overzicht: versies, bronnen waaruit wordt opgehaald, waar elke component draait, de supply-chain-attestatie die erbij hoort, en de licentie.
Integriteit van de supply chain
Elke afhankelijkheid, elk container-image en elke binary in deze inventaris valt onder de upstream-contactregel van fremforge:
- Code die op GitHub wordt gehost, loopt via de native pull-mirror van Forgejo op
frem.sh/<canonical-org>/<repo>(synchronisatie elke 8 uur). Workflows van klanten dieuses: actions/checkout@v4oplossen, komen uit opfrem.sh/actions/checkout: geen directe fetch van github.com op het kritieke pad van de klant. - Container-images (docker.io / ghcr.io / quay.io / public.ecr.aws) worden gecachet via een interne EU-mirror. Productiemanifesten verwijzen nooit rechtstreeks naar een upstream-registry.
- Releasebinaries die niet als OCI worden geleverd (bijv.
opengrep,cosign), worden verpakt in kleine cache-images die vanaf dezelfde interne EU-mirror worden geleverd. Renovate volgt de upstream-versie van de GitHub-release en opent wekelijks een PR met de update.
CI controleert Dockerfiles en manifesten op elke verwijzing die de mirror zou omzeilen, zodat elke upstream-afhankelijkheid via de cache in de EU wordt opgelost en niet rechtstreeks uit een publieke registry.
CI- en supply-chain-tools
| Tool | Versie | Waar gebruikt | Licentie | Bron |
|---|---|---|---|---|
| Forgejo | v15.x | Repositoryhosting, codereview, runnerprotocol van Actions, SSO-authenticatiebronnen | GPLv3 | Interne EU-mirror (fremforge-build) |
| forgejo-runner (act_runner) | v13.2.0 | Registratie van een kortlevende runner op een ECS-VM per commit | MIT | Interne EU-mirror |
| Gitleaks | v8.x | Secretscan bij pre-receive | MIT | Interne EU-mirror |
| OpenGrep | v1.22 | SAST op elke PR (FOSS-opvolger van Semgrep, na de licentiewijziging) | LGPLv2.1 | Interne EU-mirror |
| Trivy | v0.74 | Imagescan in de CI van klanten + CVE-controle van wat in het runner-image is ingebakken | Apache 2.0 | Interne EU-mirror |
| osv-scanner | Nieuwste | CVE/GHSA-scan van afhankelijkheden bij een PR | Apache 2.0 | Interne EU-mirror |
| Syft | Nieuwste | CycloneDX 1.6- en SPDX 2.3-SBOM’s bij elke PR-scan (beide worden bij inname geaccepteerd) | Apache 2.0 | Interne EU-mirror |
| cosign | Nieuwste | Images ondertekenen en verifiëren (CI van klanten via cosign-verify.yaml) | Apache 2.0 | Interne EU-mirror |
| Fulcio | v1.8.5 (Helm 2.9.0) | Zelf gehoste CA voor codeondertekening op sign.frem.sh. Root-CA in T Cloud Public DEW KMS (FIPS 140-2 Level 3 HSM). NIET de publieke Sigstore Fulcio: fremforge draait zijn eigen | Apache 2.0 | Interne EU-mirror |
| Sigstore TSA | Nieuwste | RFC 3161-timestampautoriteit op tsa.frem.sh. Sleutel in DEW KMS. NIET de publieke Sigstore TSA | Apache 2.0 | Interne EU-mirror |
| gitsign | Nieuwste | Git-client van de klant; aan OIDC gebonden commitondertekening tegen de lokale Fulcio | Apache 2.0 | Installatie bij de klant (brew install sigstore/tap/gitsign) |
| Renovate | Nieuwste | Gehoste bot voor afhankelijkheidsupdates, cron elke 15 minuten, per repository uit te zetten | AGPLv3 | Interne EU-mirror |
| kaniko | Nieuwste | Rootless containerbuild in workflows van klanten (alternatief voor BuildKit als de klant niet privileged kan draaien) | Apache 2.0 | Interne EU-mirror |
| ClamAV | Nieuwste | Malwarescan van uploads (LFS-objecten, bijlagen, package-uploads) en de opt-in-scan van de dependency proxy. De signatuurbronnen staan onder Detectie-inhoud | GPLv2 | Interne EU-mirror |
| scorecard | Nieuwste | Wekelijkse OpenSSF-best-practicerun per repository | Apache 2.0 | Interne EU-mirror |
openssl + python3 (stdlib) | n.v.t. | Verificatie aan klantzijde van publicatie-attestaties die fremforge uitgeeft. De DSSE-envelopes zijn ondertekend met een kale Ed25519-sleutel, dus verificatie is een klein recept met curl/jq/openssl/python3 (zie SLSA-provenance), niet upstream slsa-verifier | — | Standaardtools van de distributie |
Detectie-inhoud
De regels, advisorydatabases en malwaresignaturen waartegen de scanners matchen. Elk ervan is vastgepind of wordt vernieuwd met de getoonde frequentie, en geen ervan wordt door een scan opgehaald terwijl die draait.
| Inhoud | Gebruikt door | Licentie | Bron |
|---|---|---|---|
| GitLab sast-rules, alleen de mappen per taal (C#, Go, Java, JavaScript, Python, Scala) | SAST, en /opt/sast-rules in het gehoste runner-image | MIT; de Go-regels Apache-2.0 (afgeleid van gosec). De rest van de upstream-repository, met inhoud onder andere licenties, wordt bij de build verwijderd, en de build mislukt als een behouden bestand een andere licentie heeft dan MIT, Apache-2.0 of BSD | Pull-mirror op frem.sh, vastgepinde commit |
0xdea semgrep-rules, rules/c | SAST voor C en C++ | MIT | Pull-mirror op frem.sh, vastgepinde commit |
| SAST-regels van fremforge | SAST voor JavaScript en TypeScript, Python, Bash, PHP, Ruby, Rust, Kotlin en Swift | MIT | Broncode van fremforge |
Kwetsbaarheidsdatabases van Trivy (trivy-db, trivy-java-db) | Scannen van container-images, trivy fs op pull requests | Apache-2.0 voor de databasebuild; elk record behoudt de voorwaarden van zijn bron (GitHub Advisory Database, beveiligingsdata van Red Hat en SUSE: CC-BY-4.0) | Interne EU-mirror, dagelijks vernieuwd |
| OSV-database, offline kopie | Scannen van afhankelijkheden, kwaadaardige packages, packagebeleid, audits van de dependency proxy | CC-BY-4.0; elk record behoudt de voorwaarden van zijn bron | Interne mirror van de OSV-export, dagelijks vernieuwd |
| Go-kwetsbaarheidsdatabase | Bereikbaarheid voor Go (govulncheck) | CC-BY-4.0 | De Go-export van de OSV-mirror, dagelijks vernieuwd |
| GitHub Advisory Database | Via OSV en de Trivy-databases | CC-BY-4.0 | Via de OSV- en Trivy-mirrors |
| Signaturen van SaneSecurity | ClamAV-malwarescan | Voorwaarden van SaneSecurity: gratis, gefinancierd door donaties | Een publieke SaneSecurity-mirror, elke 4 uur |
| YARA-Forge Core | ClamAV-malwarescan | Detection Rule License 1.1; commercieel gebruik toegestaan met naamsvermelding van de auteurs van de regels | Elke 4 uur, upstream wekelijkse releases |
| Signaturen van Linux Malware Detect | ClamAV-malwarescan | GPLv2 | Elke 4 uur, upstream dagelijks |
| EICAR-testsignatuur | Rooktest van de malwarescan | Vrij te gebruiken (EICAR) | Statisch, meegeleverd met de scanner |
Platformfundament
| Laag | Tool / leverancier | Waar gebruikt | Licentie / positie |
|---|---|---|---|
| Containerregistry | T Cloud Public SWR | Alle images van fremforge. Enige bron voor pulls tijdens runtime; mirror voor elke upstream-registry | Leverancier (Deutsche Telekom, eu-de) |
| Kubernetes | T Cloud Public CCE Turbo (Cloud Native Network 2.0) | Platformworkloads (Forgejo, control-plane-monolith, jobs). ENI + Security Group per pod via Yangtse CNI. CI-runners draaien hier niet, zie de ECS-rij hieronder | Leverancier (Deutsche Telekom, eu-de) |
| Rekenkracht voor gehoste CI-runners | T Cloud Public ECS (kortlevende VM per commit) | Eén kortlevende ECS-VM per commit/PR; eigen kernel (geïsoleerd door de hypervisor), na de job opgeruimd; VPC Security Group per VM (geen inkomend verkeer, VM-naar-VM geweigerd, uitgaand verkeer via de tegen SSRF beschermde runnerproxy) | Leverancier (Deutsche Telekom, eu-de) |
| Objectopslag (operator) | T Cloud Public OBS | WORM-anker van de auditketen, SBOM-archief, data-export, OpenTofu-state | Leverancier (Deutsche Telekom, eu-de) |
| Relationele database | T Cloud Public RDS (PostgreSQL 15) | API-state, tabellen voor tenants en bevindingen, auditketen | Leverancier (Deutsche Telekom, eu-de) |
| In-memory cache | T Cloud Public DCS Redis | Tellers voor rate limits, gezien-IP bij tokenuitwisseling, sessiecache | Leverancier (Deutsche Telekom, eu-de) |
| Sleutelbeheer | T Cloud Public DEW | MASTER_ENCRYPTION_KEY, Fulcio-root-CA, ondertekeningssleutel van de TSA | Leverancier (FIPS 140-2 Level 3 HSM, Duitsland) |
| Function-as-a-service | T Cloud Public FunctionGraph | Geplande cron- en opruimworkloads | Leverancier (Deutsche Telekom, eu-de) |
| Log- en metriekenlaag | T Cloud Public LTS + CES | Applicatielogs, alarmen op trefwoorden, SLO-metrieken | Leverancier (Deutsche Telekom, eu-de) |
| Edge / CDN | Bunny CDN | TLS-terminatie, caching aan de EU-edge, edge-regels, ondergrens voor rate limits | Leverancier (hoofdkantoor in Slovenië, in de EU gevestigd, geen Amerikaanse subverwerker) |
| Transactionele e-mail | Lettermint | Authenticatiemails, factuurberichten, meldingen | Leverancier (NL, AVG-conform gevestigd) |
| Operationele mailbox | mailbox.org | Inkomende beheermail op *@frem.sh | Leverancier (Duitsland) |
| Betalingsverwerking | Mollie | Kaart + SEPA-incasso | Leverancier (NL, AVG-conform gevestigd) |
| Boekhouding | Dinero | Facturen uitgeven + boekhouding | Leverancier (DK, AVG-conform gevestigd) |
| Externe uptimeprobe | updown.io | Beschikbaarheidsprobes van buiten het netwerk (API, Forgejo, Kuma, marketing, Authentik) | Leverancier (FR) |
Elke leverancier op deze lijst is contractueel in de EU gevestigd, zonder Amerikaanse subverwerker in het datapad. De volledige DPA en keten van subverwerkers staan op de trustpagina.
Wat we bewust niet gebruiken
| Leverancier / tool die we vermijden | Waarom |
|---|---|
| github.com (direct) | EU-soevereiniteit + Schrems II + de upstream-contactregel. Uitsluitend via mirrors. |
| GitHub Advanced Security (CodeQL enz.) | Propriëtaire detectieregels die je niet kunt auditen. Wij gebruiken OpenGrep + Trivy + osv-scanner: allemaal OSS, allemaal te auditen. |
| Microsoft 365, Entra, Defender | Idem. Het product fremforge heeft geen enkele Microsoft-voetafdruk. (De bedrijfs-IT van fremverk is een aparte identiteitswereld.) |
| Publieke Sigstore Fulcio/Rekor (sigstore.dev) | Gehost in de VS; het verificatiepad zou buiten de EU gaan. Wij draaien onze eigen Fulcio + TSA in eu-de met de root-CA in DEW KMS. Bewust geen Rekor / transparantielog: tijdstempels verankerd in de TSA zijn in plaats daarvan de integriteitsprimitief. |
| AWS, GCP, Azure | Onder controle van Amerikaanse clouds. T Cloud Public wordt door Deutsche Telekom beheerd op een van Huawei afgeleide stack; de OpenTofu-provider is de voor OTC onderhouden fork (opentelekomcloud/opentelekomcloud, nooit huaweicloud/huaweicloud). |
| Cloudflare, Fastly, Akamai | Edge onder controle van Amerikaanse clouds. Bunny CDN heeft zijn hoofdkantoor in de EU en is contractueel in de EU gevestigd. |
| Assets geladen via de CDN’s van Google Fonts, jsDelivr, unpkg | Een CDN van derden stelt verkeerspatronen bloot aan edges in de VS. Alle fonts/JS/CSS worden zelf gehost op www.frem.sh/fonts/ via Bunny EU. |
| Langlevende inloggegevens van serviceaccounts in workflows van klanten | OIDC-tokenfederatie (workflow-OIDC) + agent-native authenticatie vervangen ze. Langlevende sleutels zijn een opt-in-pad dat wordt uitgefaseerd, met een banner die dat meldt. |
Hoe je deze BoM in je eigen auditdossier gebruikt
Voor een antwoord op een RFP of een leveranciersvragenlijst: link rechtstreeks naar deze pagina. De URL is stabiel: https://docs.frem.sh/security/bill-of-materials/.
Voor bewijs voor BSI C5 of ISO 27001: vraag security@frem.sh om de gedateerde PDF-momentopname. Op verzoek kunnen we ook een SBOM in CycloneDX-formaat van het platform zelf maken (niet alleen per release), handig om transitieve CVE’s te matchen.
Voor doorlopende verificatie: elke release van elke fremforge-component publiceert een CycloneDX-SBOM die met Syft is gegenereerd, en de SLSA-L2-provenance aan klantzijde pint de digest van elk geattesteerd asset vast. De provenance is een met Ed25519 ondertekende DSSE/in-toto-envelope (<asset>.intoto.jsonl); verifieer hem tegen de gepubliceerde trust root van fremforge met het recept met curl/jq/openssl/python3 in SLSA-provenance.
Afwijkingen: deze BoM wordt op dit moment met de hand bijgehouden. Stuur security@frem.sh een bericht als je vóór een audit een actuele momentopname nodig hebt.
Gerelateerd
- Trustpagina: DPA, lijst van subverwerkers, compliance-attestaties.
- Kennisgevingen van derden voor het runner-image: licentiekennisgevingen, het bronaanbod voor opengrep, en naamsvermelding voor advisorydata en malwaresignaturen.
- Beveiligingsfuncties in één oogopslag: wat elke tool precies doet, met deeplinks.
- SBOM’s: hoe SBOM’s in CycloneDX/SPDX aan klantzijde worden gegenereerd.
- SLSA-provenance: hoe de publicatie-attestatie aan serverzijde wordt ondertekend met de Ed25519-sleutel van het platform, hoe je hem verifieert, en waarom hij bewust niet als SLSA-niveau wordt beschreven.
- Melden van kwetsbaarheden:
security@frem.sh, SLA van 24 uur voor de ontvangstbevestiging.