Aracılığıyla paylaş


Geliştirme yaşam döngüsünün güvenliğini sağlamaya yönelik öneriler

Bu Azure İyi Tasarlanmış Çerçeve Güvenliği denetim listesi önerisi için geçerlidir:

SE:02 Sağlamlaştırılmış, çoğunlukla otomatik ve denetlenebilir bir yazılım tedarik zinciri kullanarak güvenli bir geliştirme yaşam döngüsünü koruyun. Güvenliği bozan uygulamalara karşı koruma sağlamak için tehdit modellemesini kullanarak güvenli bir tasarım ekleyin.

İlgili kılavuz: Tehdit analizi

Bu kılavuzda , geliştirme döngüsü boyunca en iyi güvenlik uygulamalarını uygulayarak kodunuzu, geliştirme ortamınızı ve yazılım tedarik zincirinizi sağlamlaştırma önerileri açıklanmaktadır. Bu kılavuzu anlamak için DevSecOps hakkında bilgi sahibi olmanız gerekir.

Güvenlik döngüsünün diyagramı.

DevSecOps, aşağıdakileri yaparak güvenliği DevOps işlemleriyle tümleştirir:

  • Güvenlik testlerini ve doğrulamayı otomatikleştirme.

  • Güvenlik açıklarına karşı kod ve kod olarak altyapıyı (IaC) taramak için güvenlik işlem hatları gibi araçlar uygulama.

bir iş yükünün temelinde iş mantığı uygulayan uygulama kodu bulunur. Gizlilik, bütünlük ve kullanılabilirlik sağlamak için kod ve kod geliştirme işlemi güvenlik hatalarından arındırılmalıdır.

Kimlik, ağ ve diğer ölçüler üzerindeki denetimleri kullanarak yalnızca altyapı düzleminin güvenliğini sağlamak yeterli değildir. Genel güvenlik duruşunuzu güçlendirmek için kodun veya güvenliği aşılmış bir kod bloğunun hatalı uygulanmasını önleyin. Kullanım düzlemi, yani uygulama kodu da sağlamlaştırılmalıdır. Güvenliği geliştirme yaşam döngünüzle tümleştirme süreci temelde sağlamlaştırma işlemidir. Kaynak sağlamlaştırma gibi kod geliştirmenin de sıkılaştırılması bağlamsal olarak belirsizdir. Odak, uygulamanın işlevsel gereksinimlerini değil güvenliği geliştirmektir. Sağlamlaştırmayla ilgili bilgi için bkz . Sağlamlaştırma kaynakları için öneriler.

Tanımlar

Süre Tanım
Güvenlik Geliştirme Yaşam Döngüsü (SDL) Microsoft tarafından sağlanan ve güvenlik güvencesi ve uyumluluk gereksinimlerini destekleyen bir dizi uygulama.
Yazılım geliştirme yaşam döngüsü (SDLC) Yazılım sistemleri geliştirmek için çok aşamalı, sistematik bir süreç.

Temel tasarım stratejileri

Güvenlik önlemleri, şu özellikleri sağlamak için mevcut Yazılım Geliştirme Yaşam Döngüsü'nüze (SDLC) birden çok noktada tümleştirilmelidir:

  • Tasarım seçimleri güvenlik açıklarına yol açmaz.

  • Uygulama kodu ve yapılandırma, kötüye kullanılabilir uygulama ve hatalı kodlama uygulamaları nedeniyle güvenlik açıkları oluşturmaz.

  • Tedarik zinciri aracılığıyla alınan yazılımlar güvenlik tehditlerine neden olmaz.

  • Uygulama kodu, derleme ve dağıtım işlemleriyle oynanmıyor.

  • Olaylar aracılığıyla ortaya çıkarılan güvenlik açıkları giderilir.

  • Kullanılmayan varlıklar düzgün bir şekilde kullanımdan çıkarılır.

  • Uyumluluk gereksinimleri tehlikeye atılamaz veya azaltılamaz.

  • Denetim günlüğü geliştirici ortamlarında uygulanır.

Aşağıdaki bölümlerde SDLC'nin yaygın olarak kullanılan aşamaları için güvenlik stratejileri sağlanır.

Güvenlik gereksinimlerini toplama ve belgele

Gereksinimler aşamasının amacı, bir uygulamanın veya uygulamanın yeni bir özelliğinin işlevsel ve işlevsel olmayan gereksinimlerini toplamak ve analiz etmektir. Bu aşama, uygulamanın hedeflerine göre uyarlanmış korumaların oluşturulmasını kolaylaştırdığından önemlidir. Uygulamanızın verilerini ve bütünlüğünü korumak, geliştirme yaşam döngüsünün her aşamasında temel bir gereksinim olmalıdır.

Örneğin, kullanıcının verileri karşıya yüklemesini ve işlemesini sağlayan kritik kullanıcı akışlarını desteklemesi gereken bir uygulama düşünün. Güvenlik tasarımı seçenekleri, kullanıcının uygulamayla etkileşimi için kimlik doğrulaması ve yetkilendirme, verilerde yalnızca izin verilen eylemlere izin verme ve SQL eklemeyi önleme gibi güvenceleri kapsamalıdır. Benzer şekilde kullanılabilirlik, ölçeklenebilirlik ve bakım gibi işlevsel olmayan gereksinimleri de kapsar. Güvenlik seçenekleri arasında segmentasyon sınırları, güvenlik duvarı girişi ve çıkışı ve diğer kesme güvenlik endişeleri yer almalıdır.

Tüm bu kararlar, uygulamanın güvenlik duruşunun iyi bir tanımına yol açmalıdır. Güvenlik gereksinimlerini üzerinde anlaşmaya varılmış bir belirtimde belgeleyin ve kapsam içinde yansıtın. Yatırımlar iş paydaşları tarafından onaylanmadığı takdirde, güvenlik yatırımlarını ve işletmenin üstlenmeye istekli olduğu dengeleri ve riskleri açıkça belirtmelidir. Örneğin, uygulamanızın önünde Azure Front Door veya Azure Uygulaması lication Gateway gibi bir web uygulaması güvenlik duvarı (WAF) kullanma gereksinimini belgeleyebilirsiniz. İşletme paydaşları WAF çalıştırmanın ek maliyetini kabul etmeye hazır değilse, uygulama katmanı saldırılarının uygulamaya yönlendirilebileceği riskini kabul etmeleri gerekir.

Güvenlik gereksinimi toplama, bu aşamanın kritik bir parçasıdır. Bu çaba olmadan tasarım ve uygulama aşamaları, güvenlik açıklarına yol açabilecek, abartılmamış seçimlere dayalı olacaktır. Güvenliği sağlamak için uygulamayı daha sonra değiştirmeniz gerekebilir ve bu pahalı olabilir.

Güvenlik gereksinimlerini teknik gereksinimlere çevirme

Tasarım aşamasında güvenlik gereksinimleri teknik gereksinimlere dönüştürülür. Teknik belirtiminizde, uygulama sırasında belirsizliği önlemek için tüm tasarım kararlarını belgeleyin. Bazı tipik görevler şunlardır:

Sistem mimarisinin güvenlik boyutunu tanımlama

Güvenlik denetimleriyle mimariyi katmanla. Örneğin, segmentasyon stratejinize göre yalıtım sınırları üzerinde pratik olan denetimler, uygulamanın bileşenleri için gereken kimlik türleri ve kullanılacak şifreleme yöntemlerinin türü. Bazı örnek mimariler için Kimlik ve erişim yönetimi ile Ağ makalelerinin Örnek bölümlerindeki çizimlere bakın.

Platform tarafından sağlanan bütçeleri değerlendirme

Siz ve bulut sağlayıcısı arasındaki sorumluluk paylaşımını anlamak önemlidir. Örneğin, Azure yerel güvenlik denetimleriyle çakışmaktan kaçının. Daha iyi bir güvenlik kapsamı elde edersiniz ve geliştirme kaynaklarını uygulamanın gereksinimlerine yeniden dağıtabilirsiniz.

Örneğin, tasarımınız girişte bir web uygulaması güvenlik duvarını gerektiriyorsa, bu sorumluluğu Application Gateway veya Azure Front Door gibi bir yük dengeleyiciye devredebilirsiniz. Özellikleri uygulamanızda özel kod olarak çoğaltmaktan kaçının.

Yalnızca güvenilen çerçeveleri, kitaplıkları ve tedarik zinciri yazılımını seçin. Tasarımınız ayrıca güvenli sürüm denetimi de belirtmelidir. Uygulama bağımlılıkları güvenilen taraflardan kaynaklanmalıdır. Üçüncü taraf satıcılar güvenlik gereksinimlerinizi karşılayabilmeli ve sorumlu açıklama planlarını paylaşabilmelidir. Gerekli eylemleri gerçekleştirebilmeniz için güvenlik olaylarının hemen bildirilmesi gerekir. Ayrıca, kuruluşunuz bazı kitaplıkları yasaklayabilir. Örneğin, yazılım güvenlik açıklarına karşı güvenli olabilir ancak lisanslama kısıtlamaları nedeniyle yazılıma izin verilmeyebilir.

Bu kılavuzun yazılıma tüm katkıda bulunanlar tarafından takip edilmesini sağlamak için onaylı ve/veya onaylanmamış çerçevelerin, kitaplıkların ve satıcıların listesini tutun. Mümkün olduğunda, listeyi desteklemek için geliştirme işlem hatlarına korumalar yerleştirin. Mümkün olduğunca, bağımlılıkları güvenlik açıklarına karşı taramak için araçların kullanımını otomatikleştirin.

Uygulama kodunun uygulaması gereken güvenlik tasarımı desenlerini belirleyin.

Desenler segmentasyon ve yalıtım, güçlü yetkilendirme, tekdüzen uygulama güvenliği ve modern protokoller gibi güvenlik sorunlarını destekleyebilir. Karantina düzeni gibi bazı işletimsel desenler, güvenlik açıklarına neden olabilecek yazılımların kullanımını doğrulamaya ve engellemeye yardımcı olabilir.

Daha fazla bilgi için bkz . Güvenliği destekleyen bulut tasarım desenleri.

Uygulama gizli dizilerini güvenli bir şekilde depolama

Uygulamanızın kullandığı uygulama gizli dizilerinin ve önceden paylaşılan anahtarların kullanımını güvenli bir şekilde uygulayın. Kimlik bilgileri ve uygulama gizli dizileri hiçbir zaman kaynak kod ağacında depolanmamalıdır. Kaynak kodunuzun olası bir saldırganın kullanımına sunulması durumunda başka erişim elde edilemediğinden emin olmak için Azure Key Vault gibi dış kaynakları kullanın. Genel olarak, gizli dizilerden kaçınmanın yollarını bulun. Mümkün olduğunda yönetilen kimlikleri kullanmak, bu hedefe ulaşmanın bir yoludur. Daha fazla bilgi için bkz . Uygulama gizli dizilerini yönetmeye yönelik öneriler.

Test planlarını tanımlama

Güvenlik gereksinimleri için net test çalışmaları tanımlayın. İşlem hatlarınızda bu testleri otomatikleştirip otomatikleştiremeyeceğinizi değerlendirin. Ekibinizin el ile test etme süreçleri varsa, bu testlere yönelik güvenlik gereksinimlerini dahil edin.

Not

Bu aşamada tehdit modellemesi gerçekleştirin. Tehdit modellemesi, tasarım seçeneklerinin güvenlik gereksinimleriyle uyumlu olduğunu onaylayabilir ve azaltmanız gereken boşlukları ortaya çıkarabilir. İş yükünüz son derece hassas verileri işleyecekse tehdit modellemesi gerçekleştirmenize yardımcı olabilecek güvenlik uzmanlarına yatırım yapın.

İlk tehdit modelleme alıştırması, yazılımın mimarisi ve üst düzey tasarımı tanımlandığında tasarım aşamasında gerçekleşmelidir. Bu aşamada bunu yapmak, olası güvenlik sorunlarını sistemin yapısına eklenmeden önce belirlemenize yardımcı olur. Ancak bu alıştırma tek seferlik bir etkinlik değildir. Bu, yazılımın gelişimi boyunca devam etmesi gereken sürekli bir süreçtir.

Daha fazla bilgi için bkz . Tehdit analizi önerileri.

Güvenli geliştirme ve test uygulamaları

Geliştirme ve test aşamasında amaç , güvenlik hatalarını ve kod, derleme ve dağıtım işlem hatlarında değişiklik yapılmasını önlemektir.

Güvenli kod uygulamalarında iyi eğitilmiş olun

Geliştirme ekibi, güvenli kodlama uygulamalarında resmi ve özel eğitime sahip olmalıdır. Örneğin, web ve API geliştiricileri siteler arası betik saldırılarına karşı korumak için belirli bir eğitime ihtiyaç duyabilir ve arka uç geliştiricileri SQL ekleme saldırıları gibi veritabanı düzeyinde saldırılardan kaçınmak için ayrıntılı eğitimden yararlanabilir.

Geliştiricilerin üretim kaynak koduna erişim kazanmadan önce bu eğitimi tamamlamaları gerekir.

Ayrıca, sürekli öğrenmeyi teşvik etmek için iç eş kod incelemeleri de gerçekleştirmeniz gerekir.

Güvenlik testi araçlarını kullanma

Uygulamanın mimarisinin güvenliğini değerlendirmek için tehdit modellemesi gerçekleştirin.

Güvenlik açıklarına yönelik kodu analiz etmek için statik uygulama güvenlik testi (SAST) kullanın. Güvenlik açıklarını gerçek zamanlı olarak algılamak için bu metodolojiyi geliştirici ortamıyla tümleştirin.

Çalışma zamanı sırasında dinamik uygulama güvenlik testi (DAST) kullanın. Bu araç zinciri, güvenlik etki alanlarındaki hataları denetleyebilir ve uygulamanın güvenlik dayanıklılığını test etmek için bir dizi saldırının benzetimini yapabilir. Mümkün olduğunda bu aracı derleme işlem hatlarınızla tümleştirin.

Güvenli kodlama uygulamaları için sektör standartlarını izleyin. Daha fazla bilgi için bu makalenin Topluluk kaynakları bölümüne bakın.

Kimlik bilgilerinin kaynak kod deposuna gönderilmesini önlemek için linter'leri ve kod çözümleyicilerini kullanın. Örneğin, .NET Derleyici Platformu (Roslyn) Çözümleyicileri uygulama kodunuzu inceler.

Derleme işlemi sırasında, kaynak koddaki kimlik bilgilerini yakalamak için işlem hattı eklentilerini kullanın. Sürekli tümleştirme sürecinin bir parçası olarak üçüncü taraf kitaplıklar ve çerçeve bileşenleri gibi tüm bağımlılıkları tarayın. Araç tarafından bayrak eklenmiş güvenlik açığı olan bileşenleri araştırın. Bu görevi kod değişim sıklığı, test sonuçları ve kapsamı inceleyen diğer kod tarama görevleriyle birleştirin.

Testlerin birleşimini kullanın. Genel olarak güvenlik testi hakkında bilgi için bkz . Güvenlik testi önerileri.

Yeterli kod yazma

Kod ayak izinizi azalttığınızda, güvenlik hatası olasılığını da azaltırsınız. Zaten kullanımda olan ve kodu yinelemek yerine güvenlik doğrulamalarından geçmiş olan kodu ve kitaplıkları yeniden kullanın.

Azure özelliklerinden yararlanmak, gereksiz kodu önlemenin başka bir yoludur. Bunun bir yolu, yönetilen hizmetleri kullanmaktır. Daha fazla bilgi için bkz . Hizmet olarak platform (PaaS) seçeneklerini kullanma.

Varsayılan olarak tümünü reddet yaklaşımıyla kod yazın. Yalnızca erişim gerektiren varlıklar için izin verilenler listesi oluşturun. Örneğin, ayrıcalıklı bir işleme izin verilip verilmeyeceğini belirlemesi gereken kodunuz varsa, reddetme sonucunun varsayılan durum olması ve izin verme sonucunun yalnızca kod tarafından özel olarak izin verildiğinde gerçekleşmesi için bunu yazmanız gerekir.

Geliştirici ortamlarını koruma

Geliştirici iş istasyonlarının açığa çıkmasını önlemek için güçlü ağ ve kimlik denetimleriyle korunması gerekir. Güvenlik güncelleştirmelerinin özenle uygulandığına emin olun.

Derleme aracıları yüksek ayrıcalıklıdır ve derleme sunucusuna ve koda erişebilir. İş yükü bileşenlerinizle aynı titizlikle korunmalıdır. Bu, derleme aracılarına erişimin kimliğinin doğrulanması ve yetkilendirilmesi, güvenlik duvarı denetimleriyle ağ kesimli olması, güvenlik açığı taramasına tabi olması vb. anlamına gelir. Şirket içinde barındırılan derleme aracıları yerine Microsoft tarafından barındırılan derleme aracıları tercih edilmelidir. Microsoft tarafından barındırılan aracılar, bir işlem hattının her çalıştırması için temiz sanal makineler gibi avantajlar sağlar.

Özel derleme aracıları yönetim karmaşıklığını ekler ve bir saldırı vektöre dönüşebilir. Derleme makinesi kimlik bilgileri güvenli bir şekilde depolanmalıdır ve geçici derleme yapıtlarını dosya sisteminden düzenli olarak kaldırmanız gerekir. Azure DevOps ile iletişimin çekme modelini kullandığından, yalnızca derleme aracısından giden trafiğe izin vererek ağ yalıtımı elde edebilirsiniz.

Kaynak kod deposu da korunmalıdır . Kod depolarına bilinmesi gereken bir şekilde erişim izni verin ve saldırılardan kaçınmak için güvenlik açıklarının maruz kalmasını mümkün olduğunca azaltın. Güvenlik açıklarına yönelik kodu gözden geçirmek için kapsamlı bir işlem gerçekleştirin. Bu amaçla güvenlik gruplarını kullanın ve iş gerekçelerini temel alan bir onay süreci uygulayın.

Dağıtım işlem hatlarında kodu koruma

Yalnızca kodun güvenliğini sağlamak yeterli değildir. Sömürülebilir işlem hatlarında çalışıyorsa, tüm güvenlik çalışmaları beyhude ve eksiktir. Kötü aktörlerin işlem hattınızda kötü amaçlı kod çalıştırmasını önlemek istediğiniz için derleme ve yayın ortamlarının da korunması gerekir.

Uygulamanıza tümleştirilmiş her bileşenin güncel envanterini koruma

Bir uygulamaya entegre olan her yeni bileşen saldırı yüzeyini artırır. Yeni bileşenler eklendiğinde veya güncelleştirildiğinde uygun sorumluluk ve uyarı sağlamak için bu bileşenlerin envanterine sahip olmanız gerekir. Derleme ortamının dışında depolayın. Düzenli olarak, bildiriminizin derleme sürecinizdekiyle eşleştiğinden emin olun. Bunun yapılması, arka kapılar veya başka kötü amaçlı yazılımlar içeren yeni bileşenlerin beklenmedik bir şekilde eklenmesini sağlamaya yardımcı olur.

İşlem hattı görevleri

  • Azure Market gibi güvenilir kaynaklardan işlem hattınızdaki görevleri çekin. İşlem hattı satıcınız tarafından yazılan görevleri çalıştırın. GitHub görevlerini veya GitHub Actions'i öneririz. GitHub iş akışlarını kullanıyorsanız Microsoft tarafından yazılan görevleri tercih edin. Ayrıca, işlem hattınızın güvenlik bağlamında çalıştıkları için görevleri doğrulayın.

  • İşlem hattı gizli dizileri. İşlem hattı içinde çalışan dağıtım varlıkları, bu işlem hattındaki tüm gizli dizilere erişebilir. Gereksiz pozlamayı önlemek için işlem hattının farklı aşamaları için uygun segmentasyona sahip olun. İşlem hattında yerleşik olan gizli dizi depolarını kullanın. Bazı durumlarda gizli dizileri kullanmaktan kaçınabileceğinizi unutmayın. İş yükü kimliklerinin (işlem hattı kimlik doğrulaması için) ve yönetilen kimliklerin (hizmet-hizmet kimlik doğrulaması için) kullanımını keşfedin.

Farklı ortamları ayrı tutma

Farklı ortamlarda kullanılan veriler ayrı tutulmalıdır. Üretim verilerinin düşük ortamlarda kullanılmaması gerekir çünkü bu ortamlar, üretimin sahip olduğu katı güvenlik denetimlerine sahip olmayabilir. Üretim dışı bir uygulamadan üretim veritabanına bağlanmaktan kaçının ve üretim dışı bileşenleri üretim ağlarına bağlamaktan kaçının.

Aşamalı maruz kalma

Seçilen ölçütlere göre kullanıcıların bir alt kümesine sürüm özelliklerinin aşamalı olarak açıklanmasını kullanın. Sorun varsa, etki bu kullanıcılar için en aza indirilir. Bu yaklaşım, yüzey alanını azalttığı için yaygın bir risk azaltma stratejisidir. Özellik olgunlaştıkça ve güvenlik güvencelerine daha fazla güvendiğinizde, bunu aşamalı olarak daha geniş bir kullanıcı kümesine bırakabilirsiniz.

Üretimde kodu koruma

Üretim aşaması, güvenlik açıklarını düzeltmek için son sorumlu fırsatı sunar. Üretimde yayınlanan altın resmin kaydını tutun.

Sürümlenmiş yapıtları koruma

Dağıtılan tüm varlıkların ve sürümlerinin kataloğunu tutun. Bu bilgiler olay önceliklendirmesi sırasında, sorunları azalttığınızda ve sistemi çalışma durumuna geri aldığınızda kullanışlıdır. Sürüme alınan varlıklar, yayımlanan Ortak Güvenlik Açıkları ve Etkilenmeler (CVE) bildirimleriyle de karşılaştırılabilir. Bu karşılaştırmaları gerçekleştirmek için otomasyon kullanmalısınız.

Acil durum düzeltmeleri

Otomatik işlem hattı tasarımınız hem normal hem de acil durum dağıtımlarını destekleme esnekliğine sahip olmalıdır. Bu esneklik, hızlı ve sorumlu güvenlik düzeltmelerini desteklemek için önemlidir.

Bir sürüm genellikle birden çok onay geçidiyle ilişkilendirilir. Güvenlik düzeltmelerini hızlandırmak için acil durum süreci oluşturmayı göz önünde bulundurun. Süreç, ekipler arasında iletişim içerebilir. İşlem hattı, normal dağıtım yaşam döngüsünün dışında gerçekleşen güvenlik düzeltmelerini, kritik hataları ve kod güncelleştirmelerini ele alan hızlı ileri ve geri alma dağıtımlarına izin vermelidir.

Not

Güvenlik düzeltmelerinin önceliklerini her zaman kolaylık yerine belirleyin. Güvenlik düzeltmesi bir regresyon veya hataya neden olmamalıdır. Acil durum işlem hattı aracılığıyla düzeltmeyi hızlandırmak istiyorsanız hangi otomatikleştirilmiş testlerin atlanabileceğini dikkatle göz önünde bulundurun. Her testin değerini yürütme süresine göre değerlendirin. Örneğin, birim testleri genellikle hızlı bir şekilde tamamlar. Tümleştirme veya uçtan uca testler uzun süre çalıştırılabilir.

Yaşam döngüsü boyunca kod güvenliğini koruma

Bu aşamanın amacı, güvenlik duruşunun zaman içinde bozulmadığından emin olmaktır. SDLC, devam eden bir çevik süreçtir. Gereksinimler zaman içinde değiştiğinden, önceki aşamalarda ele alınan kavramlar bu aşamaya uygulanır.

Düzeltme eki yönetimi. Güvenlik düzeltme ekleri ve güncelleştirmeleri ile yazılım, kitaplık ve altyapı bileşenlerini güncel tutun.

Sürekli iyileştirme. Kod incelemelerini, geri bildirimleri, öğrenilen dersleri ve gelişen tehditleri dikkate alarak yazılım geliştirme sürecinin güvenliğini sürekli değerlendirin ve geliştirin.

Eski veya artık kullanımda olmayan eski varlıkların yetkisini alma. Bunun yapılması, uygulamanın yüzey alanını azaltır.

Bakım, olay düzeltmelerini de içerir. Üretimde sorunlar bulunursa, yinelenmemeleri için hemen sürece yeniden tümleştirilmesi gerekir.

Tehdit ortamına ayak uydurmak için güvenli kodlama uygulamalarınızı sürekli geliştirin.

Azure kolaylaştırma

Microsoft Güvenlik Geliştirme Yaşam Döngüsü (SDL), geliştirme yaşam döngünüze uygulayabileceğiniz güvenli uygulamalar önerir. Daha fazla bilgi için bkz . Microsoft Güvenlik Geliştirme Yaşam Döngüsü.

DevOps için Defender ve SAST araçları GitHub Advanced Security veya Azure DevOps'un bir parçası olarak bulunur. Bu araçlar, kuruluşunuz için güvenlik puanını izlemenize yardımcı olabilir.

Bu kaynaklarda açıklanan Azure güvenlik önerilerini izleyin:

Kaynak kodunda kimlik bilgilerini bulmak için GitHub Gelişmiş Güvenlik ve OWASP kaynak kodu çözümleme araçları gibi araçları kullanmayı göz önünde bulundurun.

Uygulamanızdaki herhangi bir açık kaynak kodunun güvenliğini doğrulayın. Bu ücretsiz araçlar ve kaynaklar değerlendirmenizde size yardımcı olabilir:

Güvenlik denetim listesi

Öneriler kümesinin tamamına bakın.