DevSecOps, güvenliği yazılım geliştirme sürecinin her aşamasına entegre eden bir yaklaşımdır. Kod İmzalama, bu yaklaşımın "delivery" aşamasındaki en kritik güvenlik kontrolüdür — yazılımın bütünlüğünü build'den dağıtıma kadar garanti eder.
🎯 Bu Rehberde:
- Shift-left kod imzalama stratejisi
- Pipeline'da imzalama adımının doğru konumu
- Secret ve anahtar yönetimi (HSM, Vault)
- Artifact signing ve verification gates
- Rollback ve incident response planları
Shift-Left Kod İmzalama
"Shift-left" yaklaşımında güvenlik kontrolleri mümkün olduğunca erken aşamaya taşınır. Kod İmzalama için bu şu anlama gelir:
| Aşama | Güvenlik Kontrolü |
|---|---|
| Code | Git commit signing (GPG/SSH), pre-commit hook'lar |
| Build | Reproducible build, build provenance kaydı |
| Test | SAST/DAST taramaları, bağımlılık güvenlik denetimi |
| Sign | ✅ Kod İmzalama (Cloud HSM ile) |
| Deploy | İmza doğrulama gate, SBOM oluşturma |
| Monitor | İmza audit logging, sertifika expiry izleme |
Pipeline'da İmzalama Adımının Konumu
İmzalama, pipeline'da tüm testler geçtikten sonra ve dağıtımdan hemen önce yapılmalıdır:
# Doğru sıralama
Build → Unit Test → Integration Test → Security Scan → ✅ SIGN → Deploy
# Yanlış sıralama (güvenlik açığı!)
Build → ✅ SIGN → Test → Deploy ← İmza sonrası test başarısız olursa?
Secret Management Best Practices
CI/CD ortamında imzalama anahtarlarını güvenli yönetmek kritiktir:
❌ Yapılmaması Gerekenler:
- PFX dosyasını Git repo'ya commit etmek
- İmzalama anahtarını environment variable olarak plaintext saklamak
- Tüm pipeline'ların aynı anahtara sınırsız erişimi olması
- Anahtar rotasyonu yapmamak
✅ En İyi Uygulamalar:
- Cloud HSM kullanın: DigiCert KeyLocker, Azure Key Vault, AWS CloudHSM
- Kısa ömürlü credential'lar: Sadece imzalama anında geçerli token
- Rol tabanlı erişim: Sadece release pipeline'ı imzalama yapabilsin
- Audit logging: Her imzalama işlemi kaydedilsin
- Separation of duties: İmzalama onayı farklı kişide olsun
Verification Gate: İmza Doğrulama
Deployment pipeline'ına imza doğrulama adımı eklemek, supply chain saldırılarını önler:
# GitHub Actions — İmza doğrulama gate
- name: Verify Code Signature
run: |
$result = signtool verify /pa /v ./output/MyApp.exe
if ($LASTEXITCODE -ne 0) {
Write-Error "Signature verification failed! Blocking deployment."
exit 1
}
Write-Host "✅ Signature verified successfully"
Sertifika Lifecycle Otomasyonu
Sertifika süresinin dolması, build pipeline'ını durdurabilir. Otomatik izleme kurun:
- Sertifika bitiş tarihinden 60 gün önce uyarı e-postası
- Sertifika bitiş tarihinden 30 gün önce kritik alarm
- Slack/Teams entegrasyonu ile anlık bildirim
- Mümkünse ACME/EST ile otomatik yenileme
Incident Response: İmzalama Anahtarı Sızması
Anahtarın ele geçirilmesi durumunda hızlı aksiyon planı:
- Sertifikayı derhal revoke edin (CA'nıza başvurun)
- Etkilenen tüm artifact'ları tespit edin
- Yeni sertifika ile yeniden imzalama yapın
- Kullanıcıları bilgilendirin ve güncelleme yayınlayın
- Root cause analizi yapın ve önlemleri güçlendirin
Sonuç
DevSecOps yaklaşımında kod imzalama, pipeline'ın güvenlik omurgasıdır. Cloud HSM tabanlı imzalama, doğru secret management ve verification gate'ler ile hem güvenlik hem de hız kaybetmeden dağıtım yapabilirsiniz.
CI/CD uyumlu Cloud kod imzalama sertifikaları için ürünlerimizi inceleyin.
İlgili makaleler
-
Sigstore ve Keyless Signing
Sigstore projesi ile anahtarsız (keyless) kod imzalama: Cosign, Fulcio ve Rekor....
-
Otomatik İmzalama için Cloud HSM Entegrasyonu
CI/CD pipeline ile cloud HSM entegrasyonu: DigiCert KeyLocker ve Certum SimplySign API kullanımı....
-
Terraform ile Sertifika Lifecycle Yönetimi
Terraform ile kod imzalama sertifikalarının otomatik yaşam döngüsü yönetimi....
-
CI/CD Pipeline'da Güvenli Sertifika Yönetimi
CI/CD ortamında kod imzalama sertifikalarının güvenli yönetimi: secrets, vault ve environment değişkenleri....
-
Jenkins Shared Library ile İmzalama
Jenkins Shared Library kullanarak tekrar kullanılabilir kod imzalama fonksiyonu oluşturma....
Bu kategoride: CI/CD Entegrasyon
- Azure DevOps Pipeline Kod İmzalama
- Azure DevOps Windows İmzalama Task
- Bitbucket Pipelines Kod İmzalama
- CI/CD Pipeline'da Güvenli Sertifika Yönetimi
- CircleCI ile Kod İmzalama Otomasyonu
- DevSecOps Pipeline'da Kod İmzalama En İyi Uygulamaları
- Docker Container Image İmzalama (Cosign)
- GitHub Actions ile Otomatik Kod İmzalama
- GitHub Actions macOS Signing Workflow
- GitHub Actions Windows Kod İmzalama Workflow
- GitLab CI/CD ile Kod İmzalama
- GPG ile Git Commit ve Tag İmzalama
- in-toto Framework ve Build Doğrulama
- Jenkins Pipeline Kod İmzalama Entegrasyonu
- Jenkins Shared Library ile İmzalama
- Kubernetes Admission Controller ve İmza Doğrulama
- Notation ile OCI Container İmzalama
- Otomatik İmzalama için Cloud HSM Entegrasyonu
- Python ile Otomatik İmzalama Aracı Geliştirme
- Sigstore ve Keyless Signing
- SSH Signing ile Git Commit İmzalama
- Terraform ile Sertifika Lifecycle Yönetimi