API anahtarı ve diğer secret’ları kod, e-posta, ticket, wiki veya düz metin yapılandırmada tutmayın. Önce envanter ve sahiplik kurun; merkezi secrets manager veya uygun donanım destekli kasa kullanın; uygulamalara mümkünse kısa ömürlü ve dinamik kimlik bilgisi verin; en az yetki, ortam ayrımı, otomatik rotasyon, kullanım logu ve sızıntı halinde iptal–yenileme süreci uygulayın. Secret değeri kadar onu üreten, dağıtan, kullanan ve kaldıran yaşam döngüsü de korunmalıdır.
Secret yalnız parola değildir; makine kimlikleri de aynı yaşam döngüsüne tabidir
Kurumsal ortamlarda API anahtarı, OAuth client secret, erişim tokenı, veritabanı parolası, SSH anahtarı, TLS özel anahtarı, imzalama anahtarı, webhook secret’ı, şifreleme anahtarı ve servis hesabı bilgileri secret kapsamına girer. Sertifika public olabilir; fakat özel anahtarı kritik sırdır. Her secret’ın koruma gereksinimi, sağlayabildiği yetki ve ele geçirilmesi halinde oluşacak etkiyle belirlenir.
| Secret türü | Yaygın kullanım | Ele geçirilme etkisi |
|---|---|---|
| API anahtarı | Hizmet çağrısı | Yetkisiz işlem ve maliyet |
| OAuth token | Kullanıcı/uygulama yetkisi | Veri erişimi ve hesap devralma |
| Özel anahtar | İmza, TLS, SSH | Taklit, çözme veya sistem erişimi |
| Veritabanı parolası | Uygulama bağlantısı | Veri sızıntısı ve değişiklik |
| Webhook secret | Mesaj doğrulama | Sahte olay ve komut |
En büyük risk, secret’ın kopyalanabilir ve görünmez biçimde yayılmasıdır
Secret’lar kaynak koduna, Git geçmişine, konteyner imajına, CI loguna, ekran görüntüsüne, destek kaydına veya geliştirici cihazına girebilir. Bir değer silinse bile geçmiş commit, yedek ve loglarda kalabilir. Uzun ömürlü ve geniş yetkili secret, ele geçirildiğinde saldırgana uzun süreli ve zor fark edilen erişim sağlar.
- Kaynak kod ve yapılandırmada düz metin secret
- Üretim ve testte aynı anahtarın kullanılması
- Paylaşılan servis hesapları
- Sahibi ve son kullanma tarihi olmayan anahtarlar
- Secret değerinin log veya hata mesajında görünmesi
- Rotasyonun uygulamayı kesmesi nedeniyle ertelenmesi
- Alt yüklenici ve CI/CD sistemlerinin gereğinden fazla secret görmesi
- Sızıntı sonrası yalnız parolayı değiştirmek, token ve oturumları açık bırakmak
Envanter, secret değerini değil kimlik ve kullanım bağlamını kaydetmelidir
Merkezi envanterde secret’ın kendisi değil; benzersiz kimliği, türü, sahibi, kullanan uygulama, ortam, yetki kapsamı, saklandığı kasa, oluşturma–son kullanma tarihi, rotasyon yöntemi, bağımlılıklar ve acil iptal prosedürü tutulur. Sahipsiz ve kullanılmayan secret’lar kapatılmalıdır.
| Envanter alanı | Karar amacı | Kanıt |
|---|---|---|
| Sahip | Kim yeniler ve iptal eder? | Uygulama/iş sahibi |
| Yetki | Ne yapabilir? | Rol ve scope listesi |
| Ortam | Nerede geçerli? | Dev/test/prod ayrımı |
| Ömür | Ne zaman yenilenir? | TTL/son kullanma |
| Bağımlılık | Rotasyon neyi etkiler? | Servis ve dağıtım haritası |
Merkezi secrets manager erişimi sınırlar, ancak tek başına güvenliği garanti etmez
CISA, secrets manager kullanımının parolalar, API anahtarları ve diğer kimlik bilgilerinin merkezi yönetimini desteklediğini belirtir. Merkezi kasa; şifreleme, erişim politikası, audit logu, sürüm, rotasyon ve uygulama entegrasyonu sağlar. Ancak kasanın yönetici yetkisi, kök anahtarları, yedekleri ve erişim politikaları da korunmalıdır. Secret’ların tamamını okuyabilen tek hesap yeni bir yoğunlaşma riski yaratır.
Merkezi koruma
Secret değeri kod ve kullanıcıdan ayrılır.
Makine doğrulama
Uygulama, sabit parola yerine çalışma kimliğiyle kasaya erişir.
En az yetki
Her iş yükü yalnız gerekli secret’ı okuyabilir.
Kanıt
Okuma, değiştirme ve yönetici işlemleri izlenir.
Secret mümkünse çalışma anında ve kısa ömürlü verilmelidir
Bir secret’ı ortam değişkenine koymak, kaynak koddan daha iyi olabilir; fakat süreç listesi, crash dump veya yanlış loglama yoluyla sızabilir. Mümkün olduğunda uygulama kimliğiyle kasa erişimi, kısa ömürlü token, dinamik veritabanı kullanıcısı, iş yükü kimliği veya sertifika tabanlı doğrulama tercih edilir. Secret yalnız gerektiği anda alınmalı, bellekte ve logda gereksiz tutulmamalıdır.
- Uygulamaya kalıcı master secret vermeyin.
- İş yükünü platform kimliğiyle doğrulayın.
- Görev süresi kadar geçerli token üretin.
- Secret değerini uygulama loglarından maskeleyin.
- Hata mesajlarında bağlantı dizesini göstermeyin.
- Cache süresini ve bellek temizliğini tanımlayın.
- Secret erişimi başarısızsa güvenli duruş belirleyin.
Ortam, uygulama ve işlem yetkileri birbirinden ayrılmalıdır
Geliştirme anahtarı üretimde geçerli olmamalı; okuma için kullanılan anahtar yazma veya yönetim yetkisi taşımamalıdır. Paylaşılan anahtar yerine uygulama veya iş yükü başına kimlik, gerektiğinde tenant veya müşteri ayrımı kullanılmalıdır. Scope, IP, ağ, kaynak, işlem sayısı ve zaman koşulları ek sınır oluşturabilir.
Rotasyon planlı, test edilmiş ve kesintisiz uygulanabilir olmalıdır
Rotasyon takvimsel olabilir; ancak rol değişikliği, tedarikçi ayrılığı, sızıntı şüphesi, algoritma değişikliği veya sistem geçişi de rotasyonu tetikler. Güvenli süreç yeni secret üretme, iki değerin kısa süre birlikte geçerli olması, bağımlılıkların güncellenmesi, eski değerin iptali ve kullanımın doğrulanmasını içerir.
| Aşama | Kontrol | Başarısızlık riski |
|---|---|---|
| Üret | Güçlü ve yetkisi sınırlı değer | Zayıf/yanlış kapsam |
| Dağıt | Otomatik ve kayıtlı güncelleme | Elle kopyalama |
| Geçiş | Çift anahtar veya sürüm desteği | Kesinti |
| İptal | Eski anahtarın kullanımı durur | Gölge erişim |
| Doğrula | Log ve sağlık kontrolü | Eksik bağımlılık |
CI/CD ve geliştirici akışı secret sızıntısını baştan önlemelidir
CISA yazılım tedarik zinciri rehberleri, parola, API anahtarı ve özel sertifika gibi secret’ların pipeline ve kaynak kodda korunmasını vurgular. Pre-commit tarama, repository secret scanning, build log maskeleme, imaj katmanı inceleme, branch koruma ve ayrılmış deploy kimlikleri birlikte kullanılmalıdır.
- Örnek `.env` dosyasında gerçek değer bulunmamalı.
- Fork ve pull request süreçleri üretim secret’ına erişmemeli.
- Build işi yalnız gerekli ortam secret’ını görmeli.
- Üçüncü taraf action/plugin sürümleri sabitlenmeli ve incelenmeli.
- Artifact ve konteyner imajı secret kalıntısı için taranmalı.
- Geliştiriciye break-glass erişimi süreli ve kayıtlı verilmeli.
Sızıntı şüphesinde önce iptal, sonra kök neden ve kapsam analizi yapılmalıdır
Secret’ın public repository, log, e-posta veya kötü amaçlı paket tarafından görülmüş olabileceği durumda yalnız dosyadan silmek yeterli değildir. Değer derhal iptal edilmeli veya döndürülmeli; onunla üretilen token ve oturumlar sonlandırılmalı; kullanım logları incelenmeli; yetki kapsamındaki kaynaklar kontrol edilmeli ve aynı değerin kopyaları aranmalıdır.
- İlgili secret ve türetilmiş oturumları iptal edin.
- Geçici yeni değer ve sınırlı yetki uygulayın.
- İlk sızıntı zamanı ve kullanım kapsamını belirleyin.
- Repository geçmişi, imaj, log ve yedekleri tarayın.
- Yetkisiz işlem veya veri erişimini inceleyin.
- Kök nedeni; süreç, araç ve yetki düzeyinde düzeltin.
- Benzer secret’lar için toplu risk taraması yapın.
Olay metriği yalnız sızan anahtar sayısı değil; tespit süresi, iptal süresi, otomatik rotasyon kapsamı ve yetkisiz işlem etkisiyle ölçülmelidir.
Kaynaklar ve gözden geçirme notu
Bu rehberde değişebilir veya teknik iddialar için öncelikle resmî kurum, ürün geliştiricisi ve birincil araştırma kaynakları kullanılmıştır. Bağlantılar 27 Temmuz 2026 tarihinde gözden geçirilmiştir.
- 01NIST SP 800-57 Part 1 Rev. 5 — Recommendation for Key Management
Kriptografik anahtar yaşam döngüsü, koruma ve yönetim ilkelerini açıklar.
- 02NIST SP 800-53 Rev. 5 — Security and Privacy Controls
Kimlik bilgisi, anahtar, erişim ve sistem kontrolleri için kurumsal kontrol kataloğu sunar.
- 03CISA — Securing the Software Supply Chain for Developers
API anahtarı, parola ve özel sertifikaların yazılım geliştirme zincirinde korunmasını ele alır.
- 04CISA — Cloud Security Technical Reference Architecture v2
API anahtarı ve secret yönetimi için bulut güvenliği yaklaşımını açıklar.
- 05CISA — Cloud Secrets Management Stores
Merkezi secrets manager kullanımını ve bu kasalara yönelik saldırı risklerini açıklar.