Güvenlik Araçlarını Uygulama: 'Sürün, Yürü, Koş' Çerçevesi
Özet: Aşamalı Yaklaşım
Bu adım adım yaklaşım, güvenlik araçlarını sorunsuz bir şekilde devreye almanıza yardımcı olur ve derlemelerinizin çalışmasını sağlar. Bunu, gönderiminizi koruyan bir dizi küçük adım olarak düşünün, daha güvenilir ve güvenli bir geliştirme süreci sağlar.
| Tarama Modu | Geliştirici Etkisi | Yapılandırma / Kurulum | Amaç ve Sonuç |
|---|---|---|---|
| Tarama Açık (Denetim Modu, Uyarı yok) | Kesinti yok; geliştiricilere görünmez | Her itme/commit işleminde tarama, bulguları kaydetme | Veri toplama, kuralları ayarlama, yanlış pozitifleri bastırma; derlemeler her zaman geçer |
| Yürü Açık (Bildirim Modu, uyarılar) | Geliştiriciler PR’lerde/IDE’lerde uyarılar görür | PR dekorasyonu/IDE eklentilerini etkinleştirme | Geliştiriciler uygulanabilir geri bildirim alır, güven oluşturur, sorunları gönüllü olarak düzeltir |
| Koş Kapalı (Blok Modu) | Yüksek/kritik sorunlarda derlemeler engellenir | Kalite kapılarını etkinleştirme, yeni kritik bulgular üzerinde derlemeyi engelleme | Yeni güvenlik açıklarının üretime ulaşmasını önler; geliştiriciler başarısızlıkları saygı gösterir |
Giriş: “Büyük Patlama” Dağıtımlarının Neden Başarısız Olduğu
Bir DevSecOps projesi, “Büyük Patlama” dağıtımı ile hızla raydan çıkabilir. Bu genellikle bir ekip yeni bir SAST veya Konteyner Tarayıcı aracı aldığında ve hemen “Blok Modu”nu açtığında olur. Örneğin, XYZ Corp’daki bir yazılım geliştirme ekibi, yeni tarayıcı araçlarıyla ilk gün “Blok Modu”nu etkinleştirdi.

Bir gecede, araç acil dikkat gerektiren yüzlerce küçük güvenlik sorununu işaretledi ve bu durum, tüm geliştirme süreçlerini etkili bir şekilde durdurdu.
Geliştiriciler bu sorunları çözmek için çabalarken, kritik proje son tarihleri kaçırıldı, bu da hayal kırıklığına ve araca olan güvenin kaybına yol açtı. Bu senaryo, riskleri vurguluyor ve neden daha kademeli bir yaklaşımın gerekli olduğunu gösteriyor.
Sonuç genellikle sorunlara yol açar:
- Bozuk Yapılar: Geliştiriciler kritik düzeltmeleri dağıtamaz.
- Uyarı Yorgunluğu: Yanlış pozitiflerin seli ekibi bunaltır.
- Gölge BT: Hayal kırıklığına uğramış ekipler, işlerini devam ettirmek için güvenlik kontrollerini atlar.
Bu sorunlardan kaçınmak için, her şeyi bir anda değiştirmeye çalışmak yerine evrimsel bir yaklaşım benimseyin. İşte Yavaş Yavaş Yürüyüş Koşu çerçevesi bununla ilgilidir.
Son çalışmalar, aşamalı dağıtımları uygulayan organizasyonların dağıtım sıklığında ölçülebilir bir iyileşme ve daha hızlı hata kurtarma yaşadığını, böylece DevSecOps uygulamalarının güvenilirliğini artırdığını göstermiştir.
Bu çerçeveyi, azalan kesinti süreleri ve artan yapı başarı oranları gibi kanıtlanmış performans sonuçlarına bağlayarak, mühendislik liderlerinin değerini tanımasını sağlayabiliriz.

Aşama 1: Yavaş Yavaş (Görünürlük ve Temel Belirleme)
Amaç: Geliştirici iş akışlarını kesintiye uğratmadan mevcut teknik borcunuzun tam görünürlüğünü elde edin. Ölçülebilir başarı ve net ilerleme ölçütleri sağlamak için ilk iki hafta içinde %90 depo kapsamına ulaşmayı hedefleyin.
- Bu başlangıç aşamasında, güvenlik aracını CI/CD boru hattınıza müdahaleci olmayan bir şekilde entegre ederek veri toplamaya odaklanın.
- Yapılandırma: Aracı Audit Mode kullanarak Fail Open olarak ayarlayın—tüm bulguları geliştiricilere bildirmeden veya yapıları engellemeden kaydedin.
- Eylem: Her kod itişi veya taahhüdünde taramaları tetikleyin.
- Sonuç: Tarayıcı, kritik güvenlik açıkları tespit edilse bile tüm yapıların başarıyla geçmesine izin verirken tüm bulguları bir panoya kaydeder.
💡 Profesyonel İpucu: Bu aşamayı tarayıcınızı dikkatlice ayarlamak için kullanın. Belirli bir kural (örneğin, “Kodda Sihirli Sayılar”) aşırı gürültüye neden oluyorsa (örneğin, depolar arasında 500 kez), ilerlemeden önce eyleme geçirilebilir sorunlara odaklanmak için ayarlamayı veya geçici olarak devre dışı bırakmayı düşünün.
Neden önemli: Bu “Güvenlik Temelini” oluşturmak, güvenlik ekibinizin mevcut teknik borcun hacmini ve doğasını anlamasını ve dağıtımları etkilemeden kural yapılandırmalarını iyileştirmesini sağlar.
Aşama 2: Yürüme (Geri Bildirim ve Eğitim)
Amaç: Geliştiricilere günlük iş akışlarına entegre edilmiş, eyleme geçirilebilir, zamanında güvenlik geri bildirimi sağlamak, geliştirme ilerlemesini engellemeden.
- Gürültü azaltıldıktan sonra, bulguları geliştiricilere görünür hale getirin. Aracı Açık Hata modunda tutun, ancak uyarıları etkinleştirerek Bildirim Moduna geçin.
- Yapılandırma: Geri bildirimi Pull Request süslemesi (yorumlar) veya IDE eklentileri gibi geliştirme araçlarına entegre edin.
- Sonuç: Geliştiriciler, kod inceleme süreçlerinde gerçek zamanlı güvenlik geri bildirimi alır, örneğin “⚠️ Yüksek Ciddiyet: 42. satırda sabit kodlanmış gizli bilgi tanıtıldı.”
Geliştiriciler, sorunu hemen düzeltmeyi veya yanlış pozitifleri daha sonra çözmek üzere belgelemeyi seçebilir.
Neden bu önemli: Bu aşama, güvenlik ile geliştiriciler arasında güven oluşturur. Güvenlik, bir işbirlikçi rehber olarak görülür, bir kapı bekçisi değil. Geliştiriciler, aracın varlığına alışır ve geri bildirim döngüsü doğrudan ve uygulanabilir olduğu için sorunları gönüllü olarak düzeltmeye başlar.
Bu olumlu davranışları pekiştirmek için ekipleri erken başarıları kutlamaya teşvik edin. “Sıfır Yüksek bulgu ile birleştirilen ilk PR” gibi hızlı başarı hikayelerini paylaşmak, ivme oluşturur ve daha fazla geliştiriciyi gönüllü düzeltmelere yönlendirir.
Aşama 3: Çalıştır (Kapı ve Uygulama)
Hedef: Güvenlik kapılarını uygulayarak yeni yüksek riskli güvenlik açıklarının üretime ulaşmasını önleyin.
- Geliştiricileri ayarladıktan ve eğittikten sonra, kritik sorunlarla yapıları engelleyerek politikaları uygulayan Build Breakers veya Kalite Kapılarını etkinleştirin.
- Yapılandırma: Yüksek ve Kritik şiddetli güvenlik açıklarıyla yapıları durdurmak için aracı Kapalı Modda Başarısız olacak şekilde ayarlayın. Orta ve düşük şiddetli sorunlar, aşırı kesintiyi önlemek için uyarı olarak kalır.
- Önemli nüans: Mevcut değişikliklerle (örneğin, mevcut PR’de) getirilen yeni güvenlik açıklarını engellemeyi düşünün, mevcut sorunları zamanla düzeltilecek bekleyen öğeler olarak izleyin.
- Sonuç: Örneğin, bir geliştirici kritik bir SQL Enjeksiyonu güvenlik açığı getirirse, yapı başarısız olur ve düzeltilene veya belgelenmiş bir feragatname onaylanana kadar birleştirilemez.
Neden bu önemli: Araç ve ekip iyi ayarlanmış ve eğitilmiş olduğundan, yanlış pozitif oranı düşüktür. Geliştiriciler, yapı hatalarını gerçek güvenlik sinyalleri olarak kabul ederler, onlarla savaşmak yerine.
Sıradaki
Yapıları ne zaman engelleyeceğinize dair aşamalı bir stratejiye sahip olduğunuzda, bir sonraki adım bu araçları geliştirici verimliliğini en üst düzeye çıkarmak için nerede entegre edeceğinize karar vermektir.
Bir sonraki makalede, geliştirici IDE’lerine ve PR iş akışlarına güvenlik araçlarını sorunsuz bir şekilde yerleştirmenin, bağlam değiştirmeyi azaltmanın ve benimsemeyi artırmanın bir yolu olan Sorunsuz Güvenlik konusunu inceleyeceğiz.
Sıkça Sorulan Sorular (SSS)
“Sürünme, Yürüme, Koşma” çerçevesi nedir?
Yeni güvenlik araçlarını kullanmaya başlamanın basit bir adım adım yolu, sorun çıkarmadan gerçekleştirmektir. İlk olarak, bilgileri sessizce toplarsınız (Tarama). Sonra, geliştiricilere sorunları göstererek öğrenmelerini ve düzeltmelerini sağlarsınız (Yürüme). Son olarak, kötü kodu engelleyerek yazılımınızı güvende tutarsınız (Koşma). Bu, ekiplerin güvenlik araçlarını sorunsuz bir şekilde benimsemelerine ve bu süreçte güven kazanmalarına yardımcı olur.
Neden hemen yapıları engellememeliyiz?
Yapıları ilk günden engellerseniz, araç bir anda çok fazla sorun işaretleyebilir ve geliştiricilerin işlerini yapmalarını durdurabilir. Bu, hayal kırıklığına ve projelerin yavaşlamasına neden olabilir. Yavaş başlamak, önce gürültülü uyarıları bulup düzeltmenizi sağlar, böylece engelleme yalnızca araç doğru ve güvenilir olduğunda gerçekleşir.
Her adım ne kadar sürmelidir?
Genellikle, Tarama aşaması birkaç hafta sürer ve yeterli veri toplarsınız. Yürüme aşaması daha fazla zaman alır çünkü geliştiriciler uyarıları görmeye ve sorunları düzeltmeye alışırlar. Araç iyi ayarlandığında ve ekip kod birleştirilmeden önce sorunları düzeltmeye alıştığında yalnızca Koşma aşamasına geçin.
”Açıkta Başarısız Olma” nedir ve ne zaman kullanırız?
“Açıkta Başarısız Olma”, aracın sorunları bulduğu ancak kodun birleştirilmesini durdurmadığı anlamına gelir. Tarama ve Yürüme aşamalarında, veri toplarken ve geliştiricilere sorunlar hakkında bilgi verirken onları rahatsız etmemek için kullanın.


