DevOps'yi DevSecOps'a kaydırma

Geliştirme Güvenliği uzmanlık alanını oluştururken veya modernleştirirken, bu makalede güvenliği geliştirme uygulamalarıyla tümleştirmenin geliştirici işlemlerinden (DevOps) geliştirici-güvenlik işlemlerine (DevSecOps) geçişe nasıl olanak sağladığı ve uygulamanın güvenliğinin nasıl sağlandığı açıklanır.

Modern kuruluşlar yenilik sunmak, değişen iş gereksinimlerine yanıt vermek ve rekabet avantajını korumak için hızlı yazılım geliştirmeye güvenir. DevOps, sürekli tümleştirme ve teslim aracılığıyla bu çevikliği sağlar. Ancak artan hız, yeni güvenlik risklerine de neden olur.

Sürekli yayın döngüleri, tasarım kararları ile üretim dağıtımı arasındaki süreyi kısaltarak aşağıdakiler gibi zayıflıkların üretim ortamlarına dahil olma olasılığını artırır:

  • Uygulama tasarımında zayıflıklar
  • Güvenlik açığı olan bağımlılıklar
  • Yapılandırma hataları
  • Altyapı otomasyonu açıkları
  • Kötü sır yönetimi veya hijyen.

DevOps riski

Modern DevOps ortamları, saldırı yüzeyini geliştirme, işlem hattı ve üretim sistemleri arasında genişletir. Kaynak kod depoları, işlem hatları ve otomasyon sistemleri gibi DevOps araçları, saldırganlar için yüksek değerli hedeflerdir.

Kötü amaçlı kod erken kullanıma sunulduğunda mevcut güvenlik denetimlerini geçirebilir ve üretim sistemlerine ulaşabilir.

Yaygın saldırı hedefleri şunlardır:

  • Derleme çıktılarına kötü amaçlı kod enjekte etme.
  • Geliştirici kimliklerinin veya hizmet hesaplarının güvenliğini tehlikeye atma.
  • Üretim verilerine erişme veya verileri çıkarma.

Saldırganlar genellikle erişim kazanmak için özel uygulamaları ve geliştirme ortamlarını hedefler:

  • Hassas kuruluş veya müşteri verileri.
  • Özel iş mantığı ve fikri mülkiyet.
  • Güvenliği aşılmış geliştirme sistemleri aracılığıyla üretim altyapısı.
  • Yazılım tedarik zincirinin ele geçirilmesi yoluyla aşağı akıştaki müşteriler.

Olası güvenlik riskleri aşağıdaki diyagramda özetlenir:

Diyagramda DevOps ortamları ve güvenlik tehditleri gösterilmektedir.

Uygulama ve geliştirme riski

Uygulama iş yükleri, geliştirme sırasında ortaya gelen zayıflıklar veya bunları oluşturmak ve dağıtmak için kullanılan altyapının tehlikeye atılması yoluyla tehlikeye girebilir.

Risk Hedef Olası sonuç
Uygulama tasarımı/uygulaması Tasarım veya geliştirme sırasında ortaya çıkabilecek güvenlik sorunları, iş yüklerini aşağıdaki gibi saldırı tekniklerine maruz bırakabilir:

- Yanlış giriş doğrulaması
- Güvenli olmayan kimlik doğrulaması veya yetkilendirme mantığı
- Zayıf veya yanlış uygulanan şifreleme
- Uygulama mantığı aracılığıyla hassas verilerin açığa çıkarma
Bu zayıflıklar, saldırganların şunları sağlamasına olanak tanıyabilir:

- Uygulama verilerine erişme veya verileri işleme
- Yetkisiz işlemleri yürütme
- İmplante edilmiş mantık kusurları aracılığıyla kalıcı erişimi koruyun.
Geliştirme altyapısı/otomasyonu Saldırılar şu hedeflere hedeflenebilir:

- Kaynak kod depoları
- İşlem hatları oluşturma
- Dağıtım otomasyonu
- Kod olarak altyapı (IaC) şablonları
- Uç noktalar veya hizmet kimlikleri geliştirme
Güvenliği aşmak, saldırganların şunları yapmalarına izin verebilir:

- Derleme yapıtlarına kötü amaçlı kod ekleme
- Dağıtım yapılandırmalarını değiştirme
- İmplante edilmiş mantık kusuru aracılığıyla kalıcı erişimi sürdürme
- Üretim ortamlarında kullanılan kimlik bilgilerini veya gizli anahtarları elde edin.
Geliştirme yazılımı tedarik zinciri Uygulamalar genellikle aşağıdakilere dayanır:

- Üçüncü taraf kitaplıkları
- Açık kaynak paketleri
- Konteyner imajları
- Platform hizmetleri
Bu bağımlılıklar aracılığıyla sunulan güvenlik açıkları veya kötü amaçlı kod şunları etkileyebilir:

- Kurumsal üretim iş yükleri
- Müşteri veya iş ortağı ortamları

Güvenliği geliştirme süreçleriyle tümleştirmek, bu risklerin üretim sürümüne yayılma olasılığını azaltır.

Sola kaydırma

Sola kaydırma, geliştirme yaşam döngüsünün başlarında güvenliği tümleştiren bir güvenlik mühendisliği yaklaşımıdır.

Kuruluşlar, güvenliği sürecin geç aşamalarında doğrulamak yerine onu şunlara entegre eder:

  • Öngören
  • Design
  • Gelişme
  • Operations

Bu, düzeltme maliyetini ve risk maruziyetini azaltır.

Bu yaklaşımı desteklemek için kuruluşların

  • Sorunların pahalı ve düzeltilmesi zor olduğunda geç değil, sürecin erken aşamalarında Güvenlik Geliştirme Yaşam Döngüsü (SDL) gibi yapılandırılmış en iyi yöntemleri kullanın.
  • Bu yaklaşımı sürdürmek için idareyi, riski ve uyumluluğu (GRC) geliştirme stratejisiyle tümleştirin.

DevSecOps nedir?

DevSecOps, fikir başlangıcından tasarım, geliştirme ve operasyonlara kadar DevOps'u genişleterek ve güvenliği yazılım geliştirme yaşam döngüsünün her aşamasına ekleyerek Shift Left yaklaşımını sunar.

  • Geleneksel geliştirme yaklaşımlarında, güvenlik doğrulaması genellikle yayınlanmadan önce son kalite kapısı olarak gerçekleştirildi. Bu da gecikmeler, düzeltme maliyetinin artması ve güvenlik açıklarının yaşam döngüsünün sonlarına kadar kalıcı olmasını sağladı.

  • DevSecOps, güvenliği daha önce değiştirir ve sürekli olarak geliştirme ve operasyonel süreçlere ekler.

  • DevSecOps, geliştirme, operasyon ve güvenlik ekipleri arasındaki uyuşamazlığı azaltarak bunları yenilik hızı, güvenilirlik ve güvenlik dayanıklılığıyla ilgili paylaşılan hedeflerle uyumlu hale getirerek ekiplerin en önemli sorunları erken ve sürekli olarak çözmesini sağlar.

  • DevSecOps, güvenliği aşağıdakilerle tümleştirir:

    • Mimari tasarım
    • Uygulama uygulaması
    • Altyapı otomasyonu
    • Dağıtım ve işlem süreçleri

Benefits

DevSecOps, geliştirme, güvenlik ve operasyon ekiplerinin şunları yapmalarını sağlar:

  • Yaşam döngüsünün önceki bölümlerindeki sorunları belirleyin ve düzeltin.
  • Üretimde maruz kalma süresini azaltın.
  • Riski yönetirken teslim hızını koruyun.

Güvenlik, teslimden sonra uygulanan bir denetim yerine yazılımın nasıl derlenip teslim edildiklerinin bir parçası haline gelir.

Geliştirme, güvenlik ve işlemlerin birbirine nasıl uyum gösterdiğini gösteren grafik

Yenilik yaşam döngüsünün güvenliğini sağlama

Yenilik genellikle iki yaşam döngüsü aşamasında ilerler:

Aşama Ayrıntılar
Fikir kuluçkası Bir özellik, ilk üretim kullanımı için tasarlanır, uygulanır ve doğrulanır. Yeni bir fikirle başlar
İlk sürüm İlk üretim sürümü, güvenli ürün kullanımı için minimum ürün ölçütlerini karşılar.

- Geliştirme: İşlevsellik, en düşük iş gereksinimlerini karşılar.
- Güvenlik: Özellikler, üretim kullanımı için mevzuat uyumluluğu, güvenlik ve güvenlik gereksinimlerini karşılar.
- Işlem: İşlevsellik, üretim sistemi olmak için en düşük kalite, performans ve desteklenebilirlik gereksinimlerini karşılar.

İlk sürümden sonra, iş yükleri aşağıdakilerle geliştikçe geliştirme yinelemeli hale gelir:

  • Risk toleransı değiştirme
  • Uygulama gereksinimleri ve olgunluk
  • Mevzuat yükümlülükleri
  • Tehdit koşulları

DevSecOps'un geliştirme döngüsünü çevik ve sürekli iyileştirmeyi nasıl tuttuğunu gösteren diyagram

Güvenliği geliştirme sürecine entegre edin

Geleneksel geliştirme yaklaşımları, güvenliği yaşam döngüsünün geç aşamalarında, tasarım ve uygulama tamamlandıktan sonra ve kullanıma sunulmadan önceki son kontrol kapısı olarak doğrular. Modern geliştirme ortamlarında doğrulamayı geciktirme artar:

  • Güvenlik açığı karmaşıklığı
  • Düzeltme maliyeti
  • operasyonel gecikmeler ve kesintiler
  • Etkin kötüye kullanım riskinin artması

DevSecOps, daha önceki sorunları gidermek, riski azaltmak ve tutarlılığı geliştirmek için geliştirme ve operasyonlar boyunca sürekli olarak güvenliği tümleştirir.

Önemli uygulamalar

Etkin, ölçeklenebilir ve sürdürülebilir olması için mevcut geliştirme süreçlerine güvenlik eklenmelidir. Ayrı veya paralel bir iş akışında uygulanmak yerine, uygulamaların nasıl tasarlandığı, geliştirildiği, dağıtıldığı ve işletildiği sürece doğrudan entegre edilmelidir. Şunları öneririz:

  • Fikir aşamasından geliştirme, dağıtım ve süregelen operasyonlara kadar uçtan uca iş akışlarının haritalandırılması.
  • Yaşam döngüsünün her aşamasında güvenlik için net roller, araçlar ve sorumluluklar tanımlama.
  • Güvenlik açıkları, kusurlar ve tasarım sorunları için tutarlı düzeltme yolları oluşturma.

güvenlik uygulamalarını iş yükü riskine göre uyarlar. İş açısından kritik uygulamalar daha fazla katılık gerektirirken, düşük riskli senaryolar kolaylaştırılmış yaklaşımları izleyebilir.

En azından şunları yaptığınızdan emin olun:

  • Geliştirme yaşam döngünüzde yer alan aşamaları, kişileri ve teknolojileri belirleyin.
  • Güvenlik etkinliklerinin ayrı denetim noktaları olarak ele alınması yerine, her aşamaya nasıl entegre edileceğini tanımlayın.
  • Yaşam döngüsü boyunca hem önemli değişiklikleri hem de rutin düzeltmeleri işlemek için süreçler oluşturun.

Geliştirme ve dağıtımda güvenliği otomatikleştirme

Otomasyon, geliştirme ve operasyonlar genelinde güvenliği tutarlı ve uygun ölçekte zorlamak için gereklidir.

  • Güvenlik denetimlerini ve araçları doğrudan CI/CD işlem hatlarıyla tümleştirin.
  • Tehdit modelleme, kod tarama, doğrulama ve ilke zorlama gibi önemli etkinlikleri otomatikleştirin.
  • Yinelenebilir, güvenli dağıtımları etkinleştirmek için Kod Olarak Altyapı 'yı (IaC) kullanın.

Azure giriş bölgeleri gibi platform temelleri bu yaklaşımı şu şekilde destekleyebilir:

Azure giriş bölgeleri gibi platform temelleri güvenlik, idare ve DevOps tümleştirmesi için standartlaştırılmış desenler sağlayarak bu yaklaşımı destekleyebilir.

Beklenen sonuçlar

DevOps'tan DevSecOps'a geçiş yapılan kuruluşlar aşağıdakileri yapabilir:

  • Güvenlik açıklarının üretim iş yüklerine dahil olma olasılığını azaltın
  • Saldırganların geliştirme altyapısından veya otomasyonundan yararlanma becerisini sınırlama
  • Uygulamaların gelişen saldırı tekniklerine dayanıklılığını geliştirme
  • Mevzuat ve kuruluş uyumluluk gereksinimlerini destekleme
  • Operasyonel veya güvenlik riskini artırmadan yenilik hızını sürdürme

Yolculukta gezinme ipuçları

DevSecOps'un benimsenilmesi için kurumsal ve kültürel değişiklikler gerekir.

Eğitim ve kültür değişiklikleri

Bunlar kritik erken adımlardır. Sahip olduğunuz ekibin DevSecOps modelini anlamak için yeni beceriler geliştirmesi ve yeni perspektifleri benimsemesi gerekir.

Eğitim ve kültür değişikliği, bireylerin değişikliğin değerini tam olarak anlamasına ve görmesine yardımcı olmak için zaman, odaklanma, yönetici sponsorluğu ve düzenli takipleri alır.

Kültürleri ve becerileri önemli ölçüde değiştirmek bazen bireylerin profesyonel kimliğine dokunarak güçlü bir direnç potansiyeli oluşturabilir. Her birey ve onların durumu için değişikliğin nedenini, ne olduğunu ve nasıl değiştiğini anlamak ve ifade etmek kritik önem taşır.

Değişiklik zaman alır

Yalnızca ekibinizin yeni yollarla iş yapmanın etkilerine uyum sağlayabildiği kadar hızlı hareket edebilirsiniz. Ekipler dönüşüm sırasında mevcut işlerini yapmalıdır.

En önemli olanları dikkatle önceliklendirmek ve bu değişikliğin ne kadar hızlı olabileceğine yönelik beklentileri yönetmek kritik önem taşır.

En önemli ve temel unsurlara önce öncelik veren aşamalı bir stratejiye odaklanmak, kuruluşunuz için faydalı olur.

Değişim (geçici) zorluklar yaratır

Tüm yeni teknolojiler, metodolojiler ve diğer değişiklikler uyuşma ve karışıklığa neden olur. Riski azaltmak için eleştirel düşünmeyi teşvik eden sağlıklı sürtünmelere odaklanmak; buna karşılık, çok az fayda veya risk azalması sağlarken süreçleri yavaşlatan sağlıksız sürtünmelerden kaçınmak kritik önem taşır.

Sınırlı kaynaklar

Kuruluşların genellikle erken karşılaştığı bir zorluk, hem güvenlik hem de uygulama geliştirme konusunda yetenek ve beceri bulmaktır.

Kuruluşlar daha etkili bir şekilde işbirliği yapmaya başladığında, güvenlik zihniyetine sahip geliştiriciler veya geliştirme geçmişi olan güvenlik uzmanları gibi gizli yetenekler bulabilirler.

Devam eden vardiyalar

Uygulamalar hızla değişiyor. Yeni özelliklere ek olarak, bulut, sunucusuz ve yapay zeka gibi teknolojilerin kullanıma sunulmasıyla bir uygulamanın teknik tanımı ve bileşimi temel olarak değişiyor.

Bu dönüşüm, geliştirme uygulamalarını ve uygulama güvenliğini değiştiriyor, hatta geliştirici olmayan kişilerin bile uygulama oluşturmasını mümkün kılıyor.

SRE modelini dikkate alma

Bazı DevSecOps uygulamaları, işlemleri ve güvenlik sorumluluklarını bir site güvenilirlik mühendisi (SRE) rolünde birleştirir.

Böyle bir model işe yarasa da, bu genellikle mevcut kurumsal kültür ve uygulamalardan aşırı bir değişikliktir.

SRE modeli kullanmayı düşünüyorsanız, yatırım getirisini (ROI) iyi bir şekilde karşıladığınızdan ve acil ihtiyaçları karşıladığınızdan emin olmak için bu kılavuzda özetlenen pratik hızlı kazançları ve artımlı ilerlemeyi kullanarak DevOps'a güvenlik ekleyerek başlamanızı öneririz.

Bu, operasyon ve geliştirme personelinize kademeli olarak güvenlik sorumlulukları ekleyerek ekipleri SRE hedef durumuna daha da yaklaştırır.

Sonraki Adımlar

Güvenli geliştirme en iyi yöntemleri hakkında bilgi edinin.