Mühendisin zihniyeti, bir sorunu anlamak, bir çözüm oluşturmak ve ardından üretim ortamlarına sağlam ve güvenli bir uygulamanın nasıl dağıtılacağını bulmaktır.
Ne yazık ki, uygulandıktan sonra en iyi güvenlik uygulamalarını bir çözüme yerleştirmek genellikle daha karmaşık ve pahalıdır ve yenilikleri hızlı bir şekilde yayınlama baskısı genellikle geliştirici ekiplerini güvenlik borcuyla serbest bırakmaya yönlendirir. En iyi devsecops uygulamaları, çevik geliştirme ekiplerinin güvenliği doğrudan mikro hizmete, uygulamaya veya veritabanına yerleştirmesi için bilgiyi, en iyi uygulamaları ve güvenliği geliştirme sürecine “sola kaydırmaktır”.
Peki ya sürekli entegrasyon ve sürekli teslim (CI/CD) ardışık düzeni? Bu otomasyon, kod oluşturma, entegre etme, paketleme ve ortamlara teslim etme manuel adımları CI/CD araçlarında komut dosyası yazıldığında dağıtım güvenilirliğini artırır. Güçlü CI/CD uygulamalarına sahip devops ekipleri genellikle bir sonraki adımı atar ve daha fazla risk taşıyan ancak daha sık dağıtımlara olanak tanıyan üretim ortamları için sürekli dağıtımı düşünür.
Güvenli, sağlam CI/CD ardışık düzenlerini sağlamak için bu önerileri ve en iyi uygulamaları göz önünde bulundurun.
1. Güvenlik geliştirme uygulamalarını CI/CD’den çok önce oluşturun
Capgemini’de çevik ve devops lideri olan Kulbir Raina, her şeyden önce bir ilkeyi paylaşıyor: “Güvenlik ve kalite, kodun içine yerleştirilmeli ve CI/CD boru hattında otomasyonla uğraşırken kalite kapılarına bırakılmamalıdır.” “Geliştiricilerin, kodu düzgün bir şekilde sıralayabilmeleri için entegre geliştirici ortamlarında entegre güvenlik araçlarına ihtiyaçları var” diye devam ediyor.
Linting bir süreçtir kodlama stili sapmalarını ve güvenli olmayan uygulamaları tanımlayan araçlar tarafından gerçekleştirilir. Daha sofistike Statik Uygulama Güvenlik Testi (SAST) araçları arabellek taşmalarını, SQL ekleme kusurlarını ve diğer sorunları bulabilir. Raina, SAST’ın sürekli entegrasyona entegre edilmesini önerir.
Redgate Software’in geliştirici avukatı Steve Jones, araçların önemli olduğunu, ancak “herhangi bir geliştirici süreci gibi, zamanla öğrendiğinizden ve büyüdüğünüzden emin olun” diyor. “Geliştiricilerinizi güvenli kodlama uygulamaları konusunda düzenli olarak eğitmeniz ve SQL enjeksiyonu gibi basit güvenlik açıklarına izin vermediğinden emin olmanız çok önemlidir.
Buildkite’ın kurucu ortağı ve eş CEO’su Tim Lucas, diğer birkaç en iyi uygulamayı paylaşıyor. Açık kaynaktan ve üçüncü şahıslardan bağımlılıkların gözden geçirilmesini önerir. ortak güvenlik açıkları ve riskler (CVE). Devops ekipleri “zafiyetli yazılımları asla üretime sokmamalı”. “Satıcı yazılımı için doğrulanabilir imzalar kullanılmasını, böylece bir satıcının güvenliği ihlal edildiğinde güvenlik tedarik zincirinizin güvenliğinin ihlal edilmemesini” önerir.
Sonatype’ın saha CTO’su lkka Turunen de aynı fikirde. “En iyi uygulamalardan biri, açık kaynaklı yazılım projeleri ararken seçici olmaktır – geleneksel üretimde olduğu gibi, tüm parçalar eşit yaratılmamıştır.” “Bir grup ilgili ve sorumlu geliştirici tarafından yürütülen projeleri aramak, yalnızca yazılım tedarik zincirinizin sürdürülebilirliğini artırmakla kalmayacak, aynı zamanda teknik borç, yeniden çalışma ve güvenlik riskini de azaltacaktır.”
Bu öneriler, yazılım geliştirme yaşam döngüsünde en iyi güvenlik uygulamalarını uygulamak söz konusu olduğunda buzdağının sadece görünen kısmıdır, ancak güvenli bir dağıtım hattı geliştirmek için kritik ön koşullardır.
2. CI/CD ardışık düzenlerinde sürekli testler oluşturun
CI/CD’nin sadece kod teslim etmediğini bilmek önemlidir. Ayrıca, sola kaydırma testini benimsemek ve sürekli bir test stratejisi geliştirmek için bir fırsattır. Testi temel ilke olarak benimseyen ekipler, sürümleri herhangi bir ortama dağıtmak için CI/CD ardışık düzenlerini tetiklemeden önce güvenliği doğrulama fırsatlarını arayabilirler. Ekipler, SAST güvenlik testini entegre etmenin yanı sıra şunlara da odaklanmalıdır:
Test otomasyonu, yaygın sorunları giderme adımlarını, doğru ekipleri uyarmak için bildirimleri ve geri alma prosedürlerini de hesaba katmalıdır.
3. CI/CD içindeki veri güvenliği prosedürlerini otomatikleştirin
CI/CD işlem hatları, kod ve yapı bağımlılıkları olan güvenlik prosedürlerini otomatikleştirmek için de kullanılmalıdır. Sürümler yeni veritabanlarını, güncellenmiş veri modellerini veya yeni veri kümelerini içerebileceğinden, odaklanılması gereken bir alan veri güvenliğidir.
Genellikle gözden kaçan bir işlev, geliştirme ve test ortamlarını üretim ortamlarından alınan verilerle güncellemektir. Geliştirme ekipleri, özellikleri doğrulamak ve deneyimleri test etmek için yakın zamanda çekilen verileri kullanmalı ve veri maskeleme kişisel olarak tanımlanabilir bilgileri ve veri uyumluluğu gereksinimlerine tabi diğer verileri gizlemek.
Accelario’nun CTO’su ve kurucu ortağı Roman Golod, “Veri maskeleme, CI/CD sırasında güvenlik otomasyonunun kritik bir parçasıdır. Geliştirme ve test ekipleri, üretimde her şeyin sorunsuz bir şekilde çalışmasını sağlamak için gerçek verilere ihtiyaç duyuyor, ancak üretim dışı sistemler genellikle yeterince güvenli değil.”
Diğer teknikler arasında sentetik veri kullanımı ve hizmet sanallaştırma yer alır. Golod, “gerçek olanı taklit eden sentetik bir veri seti, bu veritabanı ihlal edilirse tehdit aktörleri hiçbir şey kazanmayacağından güvenliği daha da güçlendirecektir” diye ekliyor.
Copado’da stratejik hizmet kıdemli başkan yardımcısı Daniel Riedel, devops ekipleri için önemli bir başlangıç noktası ekliyor. “Verilerinizi, özellikle bu verileri düzenleyen güvenlik ve uyumluluk politikalarını bilin. Bu politikaları anladıktan sonra, iyi test edilmiş ve bu politikalarda belirtilen kurallar ve kontroller için sizi kapsayan olağanüstü bir güvenlik otomasyonu çerçevesi oluşturmak için dikkatli bir şekilde çalışın.”
4. CI/CD ardışık düzenini güvence altına almak için sıfır güven ilkelerini uygulayın
Devops ekipleri, işlem hatlarını yalnızca yetkili kişilerin tetikleyebilmesi için nasıl kilitlemeli? Redgate Software’in devops savunucusu Grant Fritchey’in bir tavsiyesi var: Fritchey, “devops boru hatlarında güvenliği otomatikleştirmenin anahtarı, iyi güvenliğin anahtarının her zaman olduğu ile tamamen aynıdır: en az ayrıcalık ilkesi” diyor. “Boru hattına yalnızca yeterli ayrıcalıklar verdiğinizden emin olursanız, içindeki, çevresindeki ve içindeki güvenliği otomatikleştirmek basit olacak ve istediğiniz sonuçları verecektir.”
Bazı temel uygulamalar arasında API anahtarlarının gizlenmesi, CI/CD araçlarında proje ve rol tabanlı güvenlik kimlik bilgilerinin tanımlanması ve uzak geliştirici ekip üyeleri için erişimin güvence altına alınması yer alır.
5. CI/CD’yi AIops ve güvenlik otomasyonu ile entegre ederek dağıtımları doğrulayın
Devops ekibinin sorumlulukları, kod üretime dağıtıldığında sona ermez. İşte yatırımların gözlemlenebilirlik ve izleme önemli operasyonel geri bildirim araçları haline gelir. Devops ekipleri, olaylara yanıt vermek ve teknik borcun ne zaman bir operasyonel veya güvenlik sorunu haline geldiğini anlamak için operasyonel ekipler ve araçlarla birlikte çalışmalıdır. Bazı özellikler:
- AIops araçları operasyonel verileri merkezileştirin, uyarıları olaylarla ilişkilendirin ve performans ve güvenilirlik sorunları etrafında olay yanıtını otomatikleştirmeye yardımcı olun.
- Güvenlik otomasyonu izinleri ayarlayan, sistemleri yamalayan ve güvenlik olaylarına yanıt veren otomasyonları etkinleştirirken tehditlere ve saldırılara karşı koruma sağlar.
- Birçok CI/CD aracı, AIop’lar, güvenlik otomasyonu ve diğer genelleştirilmiş BT otomasyon araçlarıyla iki yönlü entegrasyon sağlar. Devops ekipleri, işlemleri ve bilgi güvenliğini kod teslimatları hakkında bilgilendirmek için CI/CD ardışık düzeninin bir parçası olarak bu araçlara yönelik bildirimleri tetiklemelidir. Ayrıca, operasyonel ve güvenlik ihtiyaçlarını desteklemek için BT operasyonları ve bilgi güvenliği otomasyonlarının yapıları veya geri almaları tetiklemesine izin vermelidirler.
bu devops iş akışı ekiplerin sistemleri güvenilir ve güvenli bir şekilde planlamasını, teslim etmesini, yayınlamasını ve çalıştırmasını sağlamak için planlamadan dağıtımları izlemeye kadar kesintisiz bir yol gösterir. CI/CD, ana geliştirici uygulamalarından biridir, bu nedenle ardışık düzenlerden önce, içeride ve sonra güvenliği yerleştirmek kritik bir sorumluluktur.
Telif Hakkı © 2022 IDG Communications, Inc.
Kaynak : https://www.infoworld.com/article/3673891/5-best-practices-for-securing-cicd-pipelines.html#tk.rss_all