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.
Bu Power Platform İyi Tasarlanmış Güvenlik denetim listesi önerisi için geçerlidir:
| SE:02 | Sürekli, çoğunlukla otomatik ve denetlenebilir bir yazılım tedarik zinciri kullanarak güvenli bir geliştirme yaşam döngüsü sürdürebilirsiniz. Güvenliği zayıflatan uygulamalara karşı korunmak için tehdit modellemesinden yararlanarak güvenli bir tasarım yaklaşımı benimseyin. |
|---|
Bu kılavuzda, geliştirme döngüsü boyunca en iyi güvenlik uygulamalarını uygulayarak kod ve geliştirme ortamınızı koruma önerileri açıklanmaktadır.
Bir iş yükünün temelinde, iş mantığını uygulayan bileşenler vardır. Bu bileşenler, tuval uygulamaları ve akışlar gibi az kodlu öğeler ile eklentiler gibi kod öncelikli öğelerin bir karışımı olabilir. İş yükünüzü oluşturan tüm bileşenler, gizliliği, bütünlüğü ve kullanılabilirliği sağlamak için güvenlik hatalarından arınmış olmalıdır.
Altyapı düzlemini kimlik ve ağ denetimleriyle korumak önemlidir ancak bu yeterli değildir. Genel güvenlik duruşunuzu güçlendirmek için Power Platform iş yüklerinin hatalı uygulanmasını ve bu iş yükleri içindeki tehlikeye atılmış etkinlikleri önleyin. Güvenliği geliştirme yaşam döngüsünüzle tümleştirme süreci temel olarak bir koruyucu işlemdir. Tıpkı kaynak güçlendirme gibi, kod geliştirme sürecini sıkılaştırmak da bağlamdan bağımsızdır. Odaklandığı şey uygulamanın işlevsel gereksinimlerine değil, güvenliği geliştirmektir.
Tanımlar
| Terim | Açıklama |
|---|---|
| Güvenlik Geliştirme Yaşam Döngüsü (SDL) | Microsoft tarafından sunulan, güvenlik güvencesi ve uyumluluk gereksinimlerini destekleyen bir uygulamalar bütünüdür. |
| Yazılım geliştirme yaşam döngüsü (SDLC) | Çok aşamalı, sistematik olarak yazılım sistemleri geliştirmek için bir süreç. |
Temel tasarım stratejileri
Güvenlik önlemleri, aşağıdakilerin yapılabilmesi için mevcut Yazılım Geliştirme Yaşam Döngüsü (SDLC) ile birden fazla noktada tümleştirilmelidir:
- Tasarım seçimleri güvenlik açıklarına neden olmaz.
- Düşük kodlu ve önce kod yaklaşımına dayalı bileşenler ile yapılandırma, istismar edilebilir uygulamalardan ve hatalı kodlama uygulamalarından kaynaklanan güvenlik açıkları oluşturmaz.
- Düşük kodlu ve kod öncelikli bileşenler ile dağıtım süreçleri kurcalanmaz.
- Olaylar aracılığıyla ortaya çıkan güvenlik açıkları hafifletilir.
- Uyumluluk gereksinimleri riske atılmaz veya azaltılmaz.
- Denetim günlüğü tüm ortamlarda uygulanmıştır.
Aşağıdaki bölümlerde SDLC'nin sık kullanılan aşamaları için güvenlik stratejileri sağlanmıştır.
Gereksinimler aşaması
Gereksinimler aşamasının amacı, iş yüküne veya iş yükünün yeni özelliğine ilişkin işlevsel ve eylem dışı gereksinimleri toplamak ve çözümlemektir. Bu aşama, iş yükünün amaçlarına göre uyarlanmış korkulukların oluşturulmasını kolaylaştırdığından önemlidir. Verilerinizi ve iş yükünüzün bütünlüğünü korumak, geliştirme yaşam döngüsünün tüm aşamaları boyunca temel bir gereksinim olmalıdır.
Örneğin, kullanıcıların bir uygulamaya veri gireceği ve değiştireceği bir iş yükünü dikkate alın. Güvenlik tasarımı seçimleri, kimlik doğrulaması ve kullanıcı kimliğini doğrulama gibi ve verilerde yalnızca izin verilen eylemlere izin verme gibi, kullanıcının verilerle etkileşimi konusunda güvenceyi kapsamalıdır. İşlevsel olmayan gereksinimler erişilebilirlik, kullanılabilirlik ve bakım kolaylığını kapsar. Güvenlik seçenekleri kesimleme sınırları, güvenlik duvarı girişi ve çıkışları ve diğer kesme güvenlik kaygılarını içermelidir.
Tüm bu kararlar iş yükünün güvenlik duruşunun iyi bir tanımına yol almalıdır. Güvenlik gereksinimlerini, üzerinde mutabık kalınan bir belirtim içinde belgeleyin ve bunları bekleme defterine yansıtın. Belge, güvenlik yatırımlarını ve bu yatırımlar işletme paydaşları tarafından onaylanmazsa işletmenin üstlenmeye hazır olduğu ödünleşimleri ve riskleri açıkça belirtmelidir. Örneğin, yalnızca izin verilen IP konumlarına Dataverseerişimini kısıtlayarak kuruluş verilerinizi korumak için Power Platform ortamlarında IP güvenlik duvarı kullanma gereğini belgeleyebilirsiniz. İşletme paydaşları yönetilen ortamlar gibi bir çözümü kullanmanın ek maliyetini karşılamıyorsa, kurumsal kaynaklara kafe gibi genel konumlardan erişim riskini kabul etmeye hazır olmaları gerekir. Başka bir örnek olarak, uygulamanızın bir üçüncü taraf veri kaynağı bağlanması gerektiğini düşünün. Power Platform bunun için hazır bir bağlayıcısı olabilir, ancak bu, güvenlik takımlarınızın onayladığı kimlik doğrulama gereksinimlerini desteklemeyebilir. Bu durumda, güvenlik paydaşlarınız onaylanmamış bir kimlik doğrulama yöntemi kullanma riskiyle karşılaşabilirler. Alternatif olarak, artan geliştirme süresi ve potansiyel proje gecikmesinin avantajlarını tartırken özel bir bağlayıcı kullanmayı keşfedebilirsiniz.
Güvenlik gereksiniminin toplanması bu aşamanın çok önemli bir parçasıdır. Bu çaba olmadan, tasarım ve uygulama aşamaları açıkça belirtilmemiş tercihlere dayanacaktır; bu da güvenlik açıklarına veya geliştirme süresini artıracak değişen gereksinimlere yol açabilir. Pahalı olabilecek güvenliği karşılamak için, uygulamayı daha sonra değiştirmeniz gerekebilir.
Tasarım aşaması
Bu aşamada, 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. Burada bazı tipik görevler vardır:
Mimarinin güvenlik boyutunu tanımlayın. Mimariyi güvenlik kontrolleriyle örtüştürün. Örneğin, ağ yalıtım sınırları üzerinde pratik olan denetimler, iş yükü bileşenleri için gerekli kimlik türleri ve kimlik doğrulama yöntemleri, kullanılacak şifreleme yöntemlerinin türü.
Platformun sunduğu olanakları değerlendirin. Sizin ile Power Platform arasındaki sorumluluk paylaşımını anlamanız önemlidir. Power Platform yerleşik güvenlik denetimleriyle çakışma veya yinelemeden kaçının. Daha iyi güvenlik kapsamı alırsınız ve geliştirme kaynaklarını uygulamanın gereksinimlerine göre yeniden ayırma olanağına sahip olursunuz.
Örneğin, uygulamalarda ve akışlarda onaylanmamış kullanım desenlerini reaktif olarak tanımlayan ve uyaran özel mantık oluşturmak yerine, bağlayıcıların nasıl kullanılabileceğini kategorilere ayırmak için veri ilkelerini kullanın.
Yalnızca güvenilen başvuru uygulamalarını, şablonları, kod bileşenlerini, betikleri ve kitaplıkları seçin. Tasarımınız ayrıca güvenli sürüm denetimini 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 ifşa planlarını paylaşabilmelidir. Gerekli eylemleri yapabilmeniz için tüm güvenlik olayları gerektiği gibi raporlanmalıdır. Ayrıca, belirli kitaplıklar veya başvuru uygulamaları organizasyonunuz tarafından yasaklanmış olabilir. Örneğin, güvenlik açıklarından arınmış ve güvenli olsa bile, kuruluşunuz tarafından onaylanmamış özellikleri, lisans kısıtlamalarını veya başvuru uygulamasının destek modelini kullandığı için izin verilmemiş olabilir.
Bu yönergelerin izlendiğinden emin olmak için, onaylanan ve/veya onaylanmamış çerçevelerin, kitaplıkların ve satıcıların listesini tutun ve yapımcılarınızın bu listeye aşina olduğundan emin olun. Mümkünse, listeyi desteklemek için geliştirme kanallarında korkuluklar yerleştirin. Olabildiğince fazla, açıklara yönelik bağımlılıkları taramak için araç kullanımını otomatikleştirin.
Uygulama gizli bilgilerini güvenli bir şekilde depolayın. Uygulamanızın kullandığı uygulama gizli anahtarları ve önceden paylaşılan anahtarların kullanımını güvenli bir şekilde uygulayın. Kimlik bilgileri ve uygulama sırları hiçbir zaman iş yükünün kaynak kodunda (uygulama veya akış) depolanmamalıdır. Kaynak kodunuz olası bir saldırgan tarafından kullanılabilir duruma gelirse daha fazla erişim sağlanamaması için Azure Key Vault gibi dış kaynakları kullanın.
Verilerinize güvenle bağlanın. Microsoft Dataverse'in sunduğu, rol tabanlı ve sütun düzeyinde güvenlik gibi verilerinizi korumaya yönelik güçlü güvenlik özelliklerinden yararlanın. Diğer veri kaynakları için, güvenli kimlik doğrulama yöntemlerine sahip bağlayıcılar kullanın. Kullanıcı adını ve parolayı düz metin olarak depolayan sorgulardan kaçının. Özel bağlayıcılar oluşturmak için HTTP'ye geçmekten kaçının.
Son kullanıcıların iş yüklerini ve verilerini nasıl görüp bunlarla nasıl etkileşim kuracağını tanımlayın. Kullanıcıların verilere doğrudan erişimi olup olmadığını, hangi erişim düzeylerini gerektireceğini ve verilere nereden erişeceklerini düşünün. Uygulamaların son kullanıcılarla nasıl paylaşılacağını düşünün. Yalnızca uygulamaya ve verilere erişmesi gereken kişilerin erişime sahip olduğundan emin olun. Güvenlik engelleyicileri önlemek için geçici çözümleri teşvik eden karmaşık güvenlik modellerinden kaçının.
Sert kodlamadan kaçının. URL'lerin ve tuşların zor kodlamasından kaçının. Örneğin, bir Power Automate HTTP eyleminde URL'yi veya arka uç hizmetinin anahtarını zor kodlamaktan kaçının. Bunun yerine, özel bağlayıcı kullanın veya URL için bir ortam değişkeni ve API anahtarı için Azure Key Vault kullanın.
Test planlarını tanımlayın. Güvenlik gereksinimleri için net test durumları tanımlayın. Bu testleri işlem hatlarınızda otomatikleştirmenin mümkün olup olmadığını değerlendirin. Takımınızda el ile test işlemleri varsa, bu testler için güvenlik gereksinimlerini de ekleyin.
Not
Bu aşamada tehdit modellemesi gerçekleştirin. Tehdit modellemesi, tasarım seçeneklerinin güvenlik gereksinimlerine uygun olduğunu ve azaltmanız gereken açıkları açığa çıkardığını onaylayabilir. İş yükünüz son derece hassas verileri ele alıyorsa, tehdit modellemesi yapmanıza yardımcı olabilecek güvenlik uzmanlarına yatırım yapın.
İlk tehdit modellemesi alıştırması, yazılımın mimarisi ve yüksek düzey tasarımı tanımlanırken tasarım aşamasında ortaya çıkmalıdır. 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 bir kerelik bir aktivite değildir. Bu, yazılımın evrimi boyunca devam etmesi gereken sürekli bir süreçtir.
Daha fazla bilgi için bkz. Tehdit analizi önerileri.
Geliştirme ve test aşaması
Bu aşamada hedef, güvenlik kusurlarını önlemek ve kod, yapı ve dağıtım kanallarında müdahale etmektir.
Güvenli kod uygulamalarında iyi eğitim alın
Geliştirme ekibinin güvenli kodlama uygulamalarında eğitime sahip olması gerekir. Örneğin, geliştiricilerin en düşük ayrıcalıkta bir güvenlik modeli, katıştırma işlemini kısıtlayan model odaklı uygulamalara yönelik içerik güvenliği ilkelerini ve bağlayıcı/şirket içi ağ geçidi kimlik doğrulama yöntemlerini uygulamak için Microsoft Dataverse güvenlik kavramlarına alışması gerekir.
Geliştiricilerin Power Platform iş yükleri üzerinde çalışmaya başlamadan önce bu eğitimi tamamlaması gerekir.
Sürekli öğrenmeyi teşvik etmek için ekip içi kod incelemeleri gerçekleştirin.
Kod çözümleme araçlarını kullanma
Çözüm Denetleyicisi Power Platform kaynakları için kullanılmalı ve herhangi bir geleneksel kodun kaynak kodu, koddaki kimlik bilgilerinin varlığı da dahil olası güvenlik açıkları için denetlenebilir. Kaynak kod ve yapılandırma dosyalarında olası kimlik bilgileri ve gizli maruz kalma örneklerini belirleyin. Bu, bağlantı kimlik bilgilerinin üretimde nasıl işleneceğini incelemek için iyi bir zaman.
Fuzz testi gerçekleştirin
Açıkları denetlemek ve hata işlemesini doğrulamak için bozulmuş ve beklenmeyen veriler kullanın (özellikle Power Pages de içeren çözümlerde önemlidir).
Yeterli kodu yazın
Kod ayak izini azalttığınızda, ayrıca güvenlik kusurları olasılığını da azaltırsınız. Kodu çoğaltmak yerine zaten kullanımda olan ve güvenlik doğrulamalarından geçmiş kodu ve kitaplıkları yeniden kullanın. Açık kaynaklı yazılım algılama ve sürüm, güvenlik açığı ve yasal yükümlülüklerinin denetlenmesinde. Artan miktarda açık kaynak Power Platform kaynakları bulunmaktadır, bu nedenle dikkate alınmamalıdır. Mümkün olduğunda, son dakika sorunlarını önlemek için tasarım aşamasında bu tartışılmalıdır.
Geliştirici ortamlarını koruma
Geliştirici iş istasyonunun maruz kalınmasını önlemek için güçlü ağ ve kimlik kontrolleriyle korunması gerekir. Güvenlik güncelleştirmelerinin özenle uygulandığından emin olun.
Kaynak kodu deposu da korunmalıdır . Kod depolarına bilinmesi gereken esasına göre erişim verin ve saldırıları önlemek için açıkların maruz kalmasını mümkün olduğunca azaltın. Güvenlik açıkları için kodu gözden geçirmek için kapsamlı bir süreç geçirin. Bu amaçla güvenlik gruplarını kullanın ve iş haklılığına dayalı bir onay süreci uygulayın.
Güvenli kod dağıtımları
Sadece kodu güven altına almak için yeterli değil. Eğer istismar edilebilir işlem hatlarında çalışıyorsa, tüm güvenlik çabaları boşa çıkar ve eksik kalır. 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ızla tümleştirilen her bileşen için güncel bir stok sağlama
Bir uygulamayla tümleştirilen her yeni bileşen, saldırı yüzeyine artırır. Yeni bileşenler eklendiğinde veya güncelleştirildiğinde uygun hesap verebilirliği ve uyarıyı sağlamak için, bu bileşenlerin stoku olmalıdır. Düzenli olarak, bildiriminizin yapı sürecinizdekiyle eşleştiğini kontrol edin. Böylece arka kapılar veya başka kötü amaçlı yazılım içeren yeni bileşenler beklenmedik bir şekilde eklenmemesini sağlar.
Dağıtımlarınız için Power Platform İşlem Hatları kullanmanızı öneririz. GitHub Actions'ı kullanarak ardışık düzenleri genişletme. 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.
Dağıtım için hizmet sorumlularının kullanımını inceleyin.
Üretim aşaması
Üretim aşaması, güvenlik boşluklarını gidermeye yönelik son sorumlu fırsatı ortaya koyuyor. Üretimde yayımlanan altın görüntüden bir kayıt tutun.
Sürümlü artefaktları koru
Tüm dağıtılan varlıkların ve bunların sürümlerinin kataloğunu tutun. Bu bilgiler, olay saptama sırasında, sorunları azalttığınızda ve sistemi çalışma durumuna geri aldığınızda yararlı olur. Ayrıca sürüme dönüştürülen varlıklar, yayımlanmış Ortak Güvenlik Açıkları ve Pozlamalar (CVE) bildirimleri ile karşılaştırılabilir. Bu karşılaştırmaları yapmak için otomasyonu kullanmanız gerekir.
Acil durum onarımları
Otomatik kanal tasarımınız, hem düzenli hem de acil durum dağıtımlarını destekleme esnekliğine sahip olmalıdır. Bu esneklik, hızlı ve sorumlu güvenlik onarımlarını desteklemek için önemlidir.
Bir sürüm genellikle birden çok onay aşamasıyla ilişkilendirilir. Güvenlik onarımlarını hızlandırmak için bir acil durum süreci oluşturmayı düşünün. Süreç takımlar arasındaki iletişimi içerebilir. İşlem hattı, normal dağıtım yaşam döngüsü dışında gereken güvenlik düzeltmelerini, kritik hataları ve kod güncellemelerini ele almak için hızlı ileri alma ve geri alma dağıtımlarına olanak tanımalıdır.
Not
Her zaman güvenlik onarımlarını kolaylık üzerinde önceliklendir. Bir güvenlik düzeltmesi, regresyona veya bir hataya neden olmamalıdır. Acil durum kanalı yoluyla düzeltmeyi hızlandırmak istiyorsanız, hangi otomatik testlerin atlanabileceğini dikkatlice düşünün. Yürütme süresine karşı her testin değerini değerlendirin. Örneğin, birim testleri genellikle kısa sürede tamamlanır. Tümleştirme veya uçtan uca testler uzun bir süre çalıştırılabilir.
Farklı ortamları ayrı tutma
Üretim verileri, bu ortamlar üretimin sahip olduğu katı güvenlik denetimlerine sahip olmayabileceğinden, alt ortamlarda** kullanılmamalıdır. Üretim dışı bir uygulamadan üretim veritabanına bağlanmayı ve üretim dışı bileşenlerin üretim ağlarına bağlanmayı önleyin.
Aşamalı maruz kalma kullanın
Seçilen ölçütlere göre özellikleri kullanıcıların bir alt kümesine sunmak için aşamalı sunumu kullanın. Sorun varsa, bu etki bu kullanıcılara en aza indirgenir. Bu yaklaşım genel bir risk azaltma stratejisidir, çünkü yüzey alanını azaltır. Özellik olgunlaştıkça ve güvenlik güvencesine daha fazla güvenin varsa, bunu giderek daha geniş bir kullanıcı grubuna bırakabilirsiniz.
Bakım aşaması
Bu aşamanın amacı, güvenlik duruşunun zaman içinde çürümemesini sağlamaktır. SDLC sürekli çevik bir işlemdir. Gereksinimler zaman içinde değiştiği için, önceki aşamalarda kapsanan kavramlar bu aşamaya uygulanır.
Sürekli gelişim. Power Platform tarafından sunulan yeni özelliklerin yanı sıra kod incelemeleri, geri bildirimler, öğrenilen dersler ve değişen tehditleri dikkate alarak yazılım geliştirme sürecinin güvenliğini sürekli olarak değerlendirin ve iyileştirin.
Eski veya artık kullanılmayan varlıkları devreden çıkarın. Böylece uygulamanın yüzey alanı azalır.
Bakım, olayların giderilmesini de kapsar. Üretimde sorun bulunursa yinelenmemeleri için sorunların hemen süreçle geri tümleştirilmesi gerekir.
Tehdit manzarasına uyması için güvenli kodlama uygulamalarınızı sürekli olarak iyileştirin.
Microsoft Power Platform'da SDL
Power Platform, güvenli tasarım kültürü ve metodolojisi üzerine kurulmuştur. Kültür ve metodoloji, Microsoft'un endüstri lideri Güvenlik Geliştirme Yaşam Döngüsü (SDL) ve Tehdit Modelleme uygulamaları ile sürekli olarak güçlendirilmektedir.
Tehdit Modellemesi gözden geçirme süreci, tehditlerin tasarım aşamasında tanımlanmasını, etkisini azaltmayı ve etkilerinin azaltıldığından emin olmak üzere doğrulanmasını sağlar.
Tehdit Modelleme, ayrıca sürekli düzenli incelemelerde zaten etkin olan hizmetlerdeki tüm değişiklikleri de hesaplar. STRIDE modeline dayanarak, güvenli olmayan tasarımlarla ilgili en yaygın sorunların ele alınmasına yardımcı olur.
Microsoft'un SDL hizmeti, OWASP Yazılım Güvencesi Olgunluk Modeli (SAMM) ile eşdeğerdir. Her ikisi de, güvenli tasarımın web uygulama güvenliğinin ayrılmaz parçası olduğu yaklaşımıyla oluşturulmuştur. Daha fazla bilgi için bkz OWASP Başlıca 10 Risk: Power Platform'da Azaltmalar.
Power Platform rehberliği
Microsoft Güvenlik Geliştirme Yaşam Döngüsü (SDL), geliştirme yaşam döngüsü için 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 (Statik Uygulama Güvenliği Testi) araçları, GitHub Advanced Security ve Azure DevOps kapsamında sunulur. Bu araçlar, organizasyonunuzun bir güvenlik puanını izlemenize yardımcı olabilir.
Çözüm denetleyicisi özelliğiyle, çözümleriniz üzerinde bir dizi en iyi uygulama kuralına göre kapsamlı bir statik analiz denetimi gerçekleştirebilir ve bu sorunlu desenleri hızlıca belirleyebilirsiniz. Bkz. Çözüm denetleyicisi çözümünüzü doğrulamak için kullanın.
İlgili bilgiler
- Microsoft Power Platform ile uygulama yaşam döngüsü yönetimi (ALM)
- Power Platform'da işlem hatlarına genel bakış
- Power Platform uygulamaları için uygulama yaşam döngüsü yönetimi
- Çözüm Mimarı serisi: Power Platform için uygulama yaşam döngüsü yönetimini planlama
- Çözümlerde ortam değişkenlerini kullanma
- Çözümlerinizi doğrulamak için çözüm denetleyicisini kullanma
- Copilot Studio Güvenlik ve idare
Güvenlik denetim listesi
Önerilerin tamamını inceleyin.