Sıfır Güven için geliştirici ortamının güvenliğini sağlama

Bu makale, bir geliştirici olarak geliştirme ortamınızın güvenliğini sağlamanıza yardımcı olur; böylece Sıfır Güven ilkeleri uygulayabilirsiniz (açıkça doğrulayın, en az ayrıcalık erişimi kullanın, ihlal varsay). Kurumsal DevOps Ortamlarının Güvenliğini Sağlama e-Kitabımızın içeriğini içerir ve dal güvenliği ve güven araçları, uzantıları ve tümleştirmeleri için en iyi yöntemleri vurgular.

Geliştirici hızı, iş sonuçlarını en üst düzeye çıkarmak istediğiniz şekilde ve nerede çalışma yeteneğinize bağlıdır. Kök veya yönetici erişimine sahip güçlü, özelleştirilebilir makineler istiyorsunuz. Ancak geliştirici talepleri uyumluluk düzenlemelerine ve özel çalışan ortamı erişimi ve depolamasını denetleme ve denetleme gereksinimine aykırı olarak çalıştırılabilir.

Kuruluş ağına bağlanan yönetilmeyen makineler güvenlik ekiplerine, tedarike ve idare kuruluna meydan okur. Geliştiricilere varsayılan ve sağlamlaştırılmış çalışan ortamları sağlamanın en iyi senaryo senaryosu her iki tarafta da küçümser. Çalışanlar her yerden bağlandığında, savunmasız Wi-Fi ağları siber saldırı için açık bir kapıdır. Donanım hırsızlığı ve kaybı önemli endişelerdir.

Güvenlik açıkları geliştirme ortamı tümleştirmelerine kadar uzanır. Zengin genişletilebilirlik özelliğine sahip geliştirme araçlarının marketlerinde istenmeyen tümleştirmeler olabilir. Kötü amaçlı uzantılar geliştirici araçlarını tehlikeye atabilir ve şirket genelinde ihlallere neden olabilir.

Aşağıdaki diyagramda geliştirici ortamının Git dallarını etkilemek için DevOps araçları ortamına nasıl bağlandığınıza dikkat edin. Açık kaynak paketlere ve uygulama uzantılarına bağlantı yoluyla ortam yüzeyini genişletmektedir. Uzantılar, bağımlılık ve uzantı uygulaması güvenlik açıklarında saldırı vektörleri sunar.

Diyagram, önceki eKitapta açıklandığı gibi geliştirici ortamlarını ve güvenlik tehditlerini gösterir ve burada bağlantılı ilgili makalelerde özetlenmiştir.

DevOps ekip üyelerine kötü amaçlı saldırıları engellerken esneklik ve denetim sağlamak, güvenlik ofisleri için temel bir zorluktır. DevOps, bir bulut ortamıyla geliştirici ortamını denetleyebiliyor (bkz . Azure VM'leri ve GitHub Enterprise Cloud Docs için güvenilen başlatma) ve kapsayıcılarla geliştirici ortamının güvenliğini sağlayabilir (bkz . GitHub Codespaces Belgeleri).

Ayrıca geliştiriciler, geliştirici ortamının güvenliğini sağlamaya yardımcı olmak için şu Sıfır Güven önlemleri uygulayabilir:

  • En düşük ayrıcalığı yapılandırın.
  • Dal güvenliğiyle kodu kimlerin değiştirebileceğini ve onaylayabileceğinizi sınırlayın.
  • Yalnızca güvenilen araçları, uzantıları ve tümleştirmeleri benimseyin.

En az ayrıcalık için en iyi yöntemler

Geliştiriciler genellikle ortamlarında kötü amaçlı yazılım, kimlik avı ve ihlalleri yakalayabileceklerine inanır. Büyük geliştirici ortamı tehdit yüzeyleri, geliştiricilerin çok yönlü sistem bilgilerini korumasını gerçekçi hale getirir. Bir kuruluş, bir saldırıdan sonra tüm sistemlere yönetici erişimi olan bir geliştirici ortamını tehlikeye attığında bir ihlal algıladığında değerli düzeltme süresini kaybeder.

Bilgisayar korsanlarının yazılım geliştirici rolünü hedeflemesine neden olan olası erişim fırsatlarını düzeltmek için, uygulamalar için aşağıdaki Sıfır Güven en az ayrıcalıklı güvenlik en iyi yöntemlerini göz önünde bulundurun.

  • DevOps için en az ayrıcalık ve tam zamanında erişim uygulayın. Ekip üyelerinin ortamlara gereken en kısa süre boyunca yalnızca en az erişimi koruduğundan emin olun. Ana cihazlarda, DevOps araçlarında, yayın işlem hatlarında, kod depolarında, ortamlarda, gizli depolarda ve veritabanlarında yönetici erişim haklarını kapsayacak ilkeler yerleştirin. DevOps ekipleri için temel gereksinim, kuruluş kimlik deposuna yönelik bir bağlantıdır. Üçüncü taraf platformlarda kimliklerin çoğaltılmasını önlemek ve risk riskini azaltmak için SaaS ortamlarıyla tümleştirme için kimlik federasyonu kullanın.
  • Kaynak kodu erişimi için kişisel erişim belirteçleri kullanmayın. DevOps ekipleri için güvenli uygulamalar SaaS tabanlı DevOps araçlarına, kod depolarına (SSH, HTTPS veya kişisel erişim belirteci aracılığıyla) erişimi içerir. SaaS tabanlı ortam erişimi için, erişim ilkelerinin sistem kodu depolarını kimlerin indirebileceğini (kopyalayabileceğinizi) ve hangi cihazlardan (yerel, bulut ve kapsayıcı) indirebileceğini nasıl belirleyebileceğine ilişkin net yönergelere sahip olursunuz. Örneğin, OneDrive yönetilmeyen cihaz erişimini engelleyebilir veya sınırlayabilir.
  • GitHub Enterprise Managed User (EMU) kullanıcı hesaplarını şirket kimlikleriyle standartlaştırıp eşitleyin. Kurumsal Yönetilen Kullanıcılar ile, kimlik sağlayıcınız (IdP) aracılığıyla kurumsal üyelerinizin kullanıcı hesaplarını denetleyebilirsiniz. Kuruluş kimlik deponuzda GitHub kullanıcı adlarını, e-postalarını ve görünen adları açıkça tanımlayın. Kullanıcılar daha sonra ortak çalışanları kolayca tanımlar.
  • Bir geliştiricinin SaaS ortamına bağlanabilmesinin üç yolu için (kimlikle HTTPS, kişisel erişim belirteci, SSH anahtarıyla bağlanma), kuruluş kimlik deposuyla bağlantı kurma. GitHub ile (GitHub EMU hesapları hariç) kimliğiniz her zaman genel kimliğinizdir. Çoklu oturum açma (SSO) aracılığıyla denetimli erişim, kuruluş kimlik deposuyla bağlantı gerektirir.
  • Üyelerin Git ile kaynaklara güvenli bir şekilde erişmesi için imzalı SSH sertifikaları sağlamak üzere bir SSH sertifika yetkilisi (CA) kullanın. SSH sertifikası, bir SSH anahtarının başka bir SSH anahtarını imzalama mekanizmasıdır. GitHub Enterprise Cloud , kuruluşlara üyelerin depolara nasıl eriştiği üzerinde daha fazla denetim sağlamak için SSH sertifikalarını destekler. Yönetici, SSH CA ortak anahtarını karşıya yükleyebilir ve üyelerin Git kimlik doğrulaması için kullanmaları için sertifikalar verebilir. Sertifikalar yalnızca kuruluşa ait depolara erişebilir. Yönetici üyelerin depolarına erişirken sertifika kullanmasını gerektirebilir.
  • Kodunuz için erişimi sağlamlaştırmak için git kimlik bilgileri yöneticisi kullanın. Visual Studio (VS) gibi araçlar yerleşik kimlik desteğine sahiptir. VS Code, Git kimlik bilgisi yöneticisine meydan okur.

Dal güvenliği için en iyi yöntemler

Bilgisayar korsanları kod deposuna erişim elde ettiğinde, sistem güvenliğini inceleyebilir ve ekiplerin fark etmeden kodu değiştirebilir. Yetkisiz kod deposu erişimini önlemek için, kod değişiklikleri üzerinde denetim oluşturmak için bir dallanma stratejisi uygulayın (aşağıdaki diyagramda gösterilen örneği inceleyin).

Diyagramda, ana depoyu koruyan örnek bir dallanma stratejisi gösterilmektedir.

Olası depo erişim fırsatlarını düzeltmek için aşağıdaki dal güvenliği en iyi yöntemlerini göz önünde bulundurun.

  • DevOps ekiplerine kod değişiklikleri ve denetim ilerlemeleri üzerinde denetim sağlamak için kod incelemeleriyle dalları koruyun. Yukarıdaki diyagramdaki dallanma stratejisi, kod değişikliklerini ele almak için açık bir komut zinciri ve şema sunan denetimli bir değişiklik akışını ifade eder. Dallanma stratejisine yönelik farklı yaklaşımlardan biri, korumalı dalların üretime yönelik yeni sürümlerin kaynağı olmasıdır.
  • Git depolarının yöneticilerinin onay yetkilendirmelerini denetlemesini sağlayın. Dallanma stratejilerinin denetim mekanizması onay iş akışındadır. Korumalı dallar, değişiklikleri kabul etmeden önce doğrulamalar, incelemeler ve onaylar gerektirir. Bir seçenek, iş akışlarını zorunlu kılmak için bir dal koruma kuralı oluşturmaktır. Örneğin, korumalı dalda birleştirilen tüm çekme istekleri için onay gözden geçirmesi veya durum denetimi geçişi gerektirebilir. Dal ilkeleri , ekiplerin önemli geliştirme dallarını korumasına yardımcı olur. İlkeler, ekibinizin kod kalitesini zorlar ve yönetim standartlarını değiştirir.

Araçlara, uzantılara ve tümleştirmelere güvenmek için en iyi yöntemler

Tümleşik geliştirici ortamlarında (IDE) genişletilebilirlik o kadar üretkendir ki temelde zorunlu bir özelliktir. En uygun çalışma ortamınızı tasarlamak için belirli bir IDE marketinde uzantıları uygulama ve seçme özelliğinden yararlanabilirsiniz.

Güvenli IDE'leri düzeltmek için aşağıdaki araç, uzantı ve tümleştirme en iyi yöntemlerini göz önünde bulundurun.

  • Yalnızca hem güvenilen marketlerdeki hem de yayımcıların araçlarını tümleştirdiğinizden emin olun. Örneğin VS Code marketinde hayatınızı kolaylaştıracak binlerce uzantı vardır. Ancak, ekipleriniz yeni araçlar veya uzantılar benimsediğinde, en önemli yön yayımcının güvenilirliğini doğrulamak olabilir.
  • Geliştirici ortamlarının saldırı yüzeyini sınırlamak için uzantı kullanımını denetlemek için güvenli uygulamalar ayarlayın. Çoğu IDE uzantısı, kodu analiz etmek için sistemde okuma izinlerine sahip bir dosya olarak işlev görmek için belirli ayrıcalıkların onaylanmasını gerektirir. Uzantıların çalışması için bulut ortamlarına bağlantı gerekir (ölçüm araçlarında ortaktır). IDE'nin en üstünde ek işlevlerin onaylanması, kuruluşların daha fazla tehditlere neden olmasını sağlar.
  • Geliştirici makinelerinde, olası saldırı yüzeyini anlamak için kullanılan uzantıların sayısını ve olgunluğunu izleyin. Doğrulanmış yayımcıların yalnızca VS Code market uzantılarını dahil edin. VS Code ile uygulama uzantıları yüklerken, komut satırı olan kod --list-extensions --show-versionsile çalıştırdığınız uzantıları düzenli olarak denetleyin. Geliştirici ortamınızda çalıştırdığınız genişletilebilir bileşenleri iyi anlayın.

Sonraki adımlar

  • Geliştirici iş akışınıza Sıfır Güven güvenliği ekleme, hızlı ve güvenli bir şekilde yenilik oluşturmanıza yardımcı olur.
  • DevOps platform ortamının güvenliğini sağlama, DevOps platform ortamınızda Sıfır Güven ilkeleri uygulamanıza yardımcı olur ve gizli dizi ve sertifika yönetimi için en iyi yöntemleri vurgular.
  • Sıfır Güven için Güvenli DevOps ortamları, bilgisayar korsanlarının geliştirici kutularını tehlikeye atmasını, yayın işlem hatlarına kötü amaçlı betikler bulaştırmasını ve test ortamları aracılığıyla üretim verilerine erişmesini önlemeye yönelik Sıfır Güven bir yaklaşımla DevOps ortamlarınızın güvenliğini sağlamaya yönelik en iyi yöntemleri açıklar.
  • Microsoft Entra ID'yi merkezi bir kimlik yönetim sistemi olarak kullanarak 22-09(ABD yönetim emri 14028, Ulusun Siber Güvenliğinin geliştirilmesini desteklemek amacıyla) mutabakat metninde açıklandığı gibi Sıfır Güven ilkeleri uygulayın.
  • Geliştiricilere bulut deneyimi için en hızlı ve en güvenli kodu sunan araçlarla Azure DevOps ile kodunuzu hızlandırın ve güvenliğini sağlayın.
  • Azure'ı GitHub'ın OIDC'sine federasyon kimliği olarak güvenecek şekilde yapılandırın. OpenID Bağlan (OIDC), GitHub Actions iş akışlarınızın Azurekimlik bilgilerini uzun ömürlü GitHub gizli dizileri olarak depolamaya gerek kalmadan Azure'daki kaynaklara erişmesine olanak tanır.