Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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:
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.
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ı
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.