Güvenlik Araçlarını Yaygınlaştırma: 'Sürünme, Yürüme, Koşma' Ç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 yapıların ç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/taahhütte tarama, bulguları kaydet | Veri toplama, kuralları ayarlama, yanlış pozitifleri bastırma; yapılar her zaman geçer |
| Yürüme Açık (Bildirim Modu, uyarılar) | Geliştiriciler PR’lerde/IDE’lerde uyarılar görür | PR dekorasyonu/IDE eklentilerini etkinleştir | Geliştiriciler uygulanabilir geri bildirim alır, güven oluşturur, sorunları gönüllü olarak düzeltir |
| Koşma Kapalı (Blok Modu) | Yüksek/kritik sorunlarda yapılar engellenir | Kalite kapılarını etkinleştir, yeni kritik bulgular üzerinde yapıyı engelle | Yeni güvenlik açıklarının üretime ulaşmasını önler; geliştiriciler başarısızlıklara saygı gösterir |
Giriş: Neden “Büyük Patlama” Yayılımları Başarısız Olur
Bir DevSecOps projesi “Büyük Patlama” yayılımıyla 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, 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ı ve bu da hayal kırıklığına ve araca olan güvenin kaybolmasına yol açtı. Bu senaryo, riskleri vurgulamakta ve neden daha kademeli bir yaklaşımın gerekli olduğunu göstermektedir.
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 sürdürmek 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 bu, Sürünme, Yürüme, Koşma çerçevesinin özüdür.
Son yapılan ç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, azaltılmış 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: Sürünme (Görünürlük ve Temel Belirleme)
Amaç: Geliştirici iş akışlarını kesintiye uğratmadan mevcut teknik borcunuzu tamamen görünür hale getirin. Ö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 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 itme veya taahhütte 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 kontrol paneline kaydeder.
💡 Profesyonel İpucu: Tarayıcınızı dikkatlice ayarlamak için bu aşamayı 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ına ve kural yapılandırmalarını dağıtımları etkilemeden iyileştirmesine olanak tanır.
Aşama 2: Yürüme (Geri Bildirim ve Eğitim)
Amaç: Geliştiricilere, geliştirme ilerlemesini engellemeden günlük iş akışlarına entegre edilmiş eyleme geçirilebilir, zamanında güvenlik geri bildirimi sağlamak.
- Gürültü azaltıldıktan sonra, bulguları geliştiricilere görünür hale getirin. Aracı Fail Open modunda tutun, ancak uyarıları etkinleştirerek Notify Mode’a geçin.
- Yapılandırma: Geri bildirimi Pull Request dekorasyonu (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: Satır 42’de sabit kodlanmış gizli anahtar tanıtıldı.”
Geliştiriciler, sorunu hemen çözmeyi veya yanlış pozitifleri daha sonra çözmek üzere belgelemeyi seçebilir.
Neden bu önemli: Bu aşama, güvenlik ve geliştiriciler arasında güven oluşturur. Güvenlik, bir kapı bekçisi değil, işbirlikçi bir rehber olarak görülür. 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. ‘Yüksek bulgu içermeyen ilk PR birleşimi’ gibi hızlı başarı hikayelerini paylaşmak, ivme kazandırır ve daha fazla geliştiriciyi gönüllü düzeltmelere yönlendirir.
Aşama 3: Çalıştır (Kapı ve Zorlayıcı)
Amaç: Yeni yüksek riskli güvenlik açıklarının üretime ulaşmasını güvenlik kapılarını zorlayarak önlemek.
- Geliştiricileri ayarladıktan ve eğittikten sonra, kritik sorunlarla yapıları engelleyerek politikaları zorlayan Yapı Kırıcılar veya Kalite Kapıları’nı etkinleştirin.
- Yapılandırma: Aracı, Yüksek ve Kritik şiddetteki güvenlik açıklarıyla yapıları durdurmak için Kapalı Modda Başarısız olacak şekilde ayarlayın. Orta ve düşük şiddetteki sorunlar aşırı kesintiyi önlemek için uyarı olarak kalır.
- Önemli nüans: Mevcut değişikliklerle (örneğin, mevcut PR’de) tanıtılan yeni güvenlik açıklarını engellemeyi düşünün, mevcut sorunları zamanla giderilecek bekleyen öğeler olarak takip ederken.
- Sonuç: Örneğin, bir geliştirici kritik bir SQL Enjeksiyonu güvenlik açığı tanıtırsa, yapı başarısız olur ve düzeltilene veya belgelenmiş bir muafiyet 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 eder, onlarla savaşmak yerine.
Sıradaki
Yapıları engellemek için 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 keşfedeceğiz.
Sıkça Sorulan Sorular (SSS)
“Sürün, Yürü, Koş” çerçevesi nedir?
Yeni güvenlik araçlarını kullanmaya başlamanın basit adım adım yolu, sorunlara neden olmadan. İlk olarak, bilgileri sessizce toplarsınız (Sürün). Sonra, geliştiricilere sorunları gösterirsiniz, böylece öğrenip düzeltebilirler (Yürüyün). Son olarak, kötü kodu engelleyerek yazılımınızı güvende tutarsınız (Koşun). Bu, ekiplerin güvenlik araçlarını sorunsuz bir şekilde benimsemelerine ve süreç boyunca 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 neden olabilir ve projeleri yavaşlatabilir. 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, Sürün aşaması birkaç hafta sürerken yeterli veri toplarsınız. Yürüyün 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ş 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. Geliştiricileri rahatsız etmeden veri toplarken ve sorunlar hakkında onları eğitirken Sürün ve Yürüyün aşamalarında bunu kullanın.


