Mini Demo: SAST, SCA, Secret Scanning, SBOM ve Signing ile Güvenli Pipeline
Küçük bir demo repo üzerinde security gate modelinin hangi kanıtları ürettiğini adım adım görmek.
Mini Demo: SAST, SCA, Secret Scanning, SBOM ve Signing ile Güvenli Pipeline
Küçük bir demo repo üzerinde security gate modelinin hangi kanıtları ürettiğini adım adım görmek.


Gitleaks secret scanning çıktısı.

Container scanning çıktısı.

Cosign imzalama/doğrulama çıktısı.

Demo pipeline güvenlik özeti.
Demo senaryosu
Modeli yalnızca kavramsal bırakmamak için küçük ölçekli bir demo sistem üzerinden düşündüm: web API, Dockerfile, bağımlılık dosyası ve örnek IaC yapılandırması. Amaç kusursuz üretim pipeline’ı kurmak değil; her gate’in nasıl kanıt ürettiğini göstermek.
Akış checkout, secret scan, SAST, SCA, IaC scan, build, unit test, container scan, SBOM üretimi, artifact signing, provenance doğrulama, policy gate ve release summary adımlarından oluşur.
Örnek GitHub Actions akışı
Aşağıdaki örnek, Medium için sadeleştirilmiş bir pipeline iskeletidir. Gerçek kullanımda organization policy, runner güvenliği, secret yönetimi ve artifact saklama politikaları ayrıca ele alınmalıdır.
name: secure-ci
on:
pull_request:
push:
branches: [main]
jobs:
security-gates:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Secret scanning
run: gitleaks detect --report-format json --report-path reports/gitleaks.json
- name: SAST
run: semgrep ci --json --output reports/semgrep.json
- name: Container scan
run: trivy image demo:${{ github.sha }} --format json --output reports/container.json
- name: Generate SBOM
run: syft demo:${{ github.sha }} -o cyclonedx-json > reports/sbom.json
- name: Sign artifact
run: cosign sign --yes demo:${{ github.sha }}
- name: Verify policy gate
run: conftest test reports --policy policy
Policy-as-Code örneği
Policy tarafında amaç her aracın çıktısını tek bir karar noktasında birleştirmektir.
package cicd.gates
default allow = false
deny[msg] if {
input.gitleaks.new_secret_count > 0
msg := "Yeni sır tespit edildi"
}
deny[msg] if {
input.sbom.present == false
msg := "SBOM eksik"
}
deny[msg] if {
input.provenance.verified == false
msg := "Provenance doğrulanamadı"
}
allow if {
count(deny) == 0
}
Bu demodan çıkarılacak mesaj
Araç çıktıları tek tek değerlidir; fakat asıl değer bunların release kararında birleşmesidir. Gitleaks, Trivy, Syft, Cosign veya Conftest ayrı raporlar üretir. SSDF-to-Gates yaklaşımı bu raporları gate evidence haline getirir.
메타데이터
- post_id
- e046785b32fb
- slug
- mini-demo-sast-sca-secret-scanning-sbom-ve-signing-ile-güvenli-pipeline-e046785b32fb
- url
- https://medium.com/@oguzhnkrdg/mini-demo-sast-sca-secret-scanning-sbom-ve-signing-ile-g%C3%BCvenli-pipeline-e046785b32fb
- canonical_url
- https://medium.com/@oguzhnkrdg/mini-demo-sast-sca-secret-scanning-sbom-ve-signing-ile-g%C3%BCvenli-pipeline-e046785b32fb
- author_url
- https://medium.com/@oguzhnkrdg
- status
- ok
- fetched_at
- 2026-06-21 09:28:28