DevSecOps, güvenliği yazılım geliştirme sürecinin her aşamasına entegre eden bir yaklaşımdır. Kod imzalama, 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 imzalama 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 imzalama (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.