Share via


Güvenlik testi önerileri

Bu Azure Well-Architected Framework Güvenlik denetim listesi önerisi için geçerlidir:

SE:11 Güvenlik sorunlarını önleme, tehdit önleme uygulamalarını doğrulama ve tehdit algılama mekanizmalarını test etme yaklaşımlarını birleştiren kapsamlı bir test rejimi oluşturun.

Sıkı test, iyi bir güvenlik tasarımının temelidir. Test, denetimlerin amaçlandığı gibi çalıştığından emin olmak için taktiksel bir doğrulama biçimidir. Test, sistemdeki güvenlik açıklarını algılamanın proaktif bir yoludur.

Birden çok perspektiften tempo ve doğrulama aracılığıyla test sıkılığı oluşturun. Platformu ve altyapıyı test eden iç dış bakış açıları ve sistemi dış saldırgan gibi test eden dışarıdan değerlendirmeler eklemeniz gerekir.

Bu kılavuz, iş yükünüzün güvenlik duruşunu test etme önerileri sağlar. İş yükünüzün saldırılara karşı direncini artırmak ve kaynakların gizliliğini, bütünlüğünü ve kullanılabilirliğini korumak için bu test yöntemlerini uygulayın.

Tanımlar

Süre Tanım
Uygulama güvenlik testi (AST) Koddaki güvenlik açıklarını denetlemek için beyaz kutu ve kara kutu test yöntemlerini kullanan bir Microsoft Güvenlik Geliştirme Yaşam Döngüsü (SDL) tekniği.
Kara kutu testi Sistemin iç bileşenlerini bilmeden dışarıdan görünen uygulama davranışını doğrulayan bir test metodolojisi.
Mavi takım Bir savaş oyunu alıştırmasında kırmızı takımın saldırılarına karşı savunan bir takım.
Sızma testi Bir sistemin güvenlik savunmasını doğrulamak için etik korsanlık tekniklerini kullanan bir test metodolojisi.
Kırmızı takım Bir saldırgan rolünü oynayan ve bir savaş oyunu alıştırmasında sistemi hackleme girişiminde bulunan bir ekip.
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ç.
Beyaz kutu testi Kodun yapısının uygulayıcı tarafından bilindiği bir test metodolojisi.

Temel tasarım stratejileri

Test, özellikle güvenlik için tartışılamaz bir stratejidir. Güvenlik sorunlarını yararlanılmadan önce proaktif olarak keşfetmenize ve çözmenize ve uyguladığınız güvenlik denetimlerinin tasarlandığı şekilde çalıştığını doğrulamanıza olanak tanır.

Test kapsamı uygulama, altyapı ve otomatik ve insan süreçlerini içermelidir.

Not

Bu kılavuz, test ve olay yanıtı arasında ayrım yapar. Test, üretimden önceki sorunları ideal bir şekilde düzelten bir algılama mekanizması olsa da, olay yanıtının bir parçası olarak yapılan düzeltme veya araştırmayla karıştırılmamalıdır. Güvenlik olaylarından kurtarmanın yönü Olay Yanıtı önerileri bölümünde açıklanmıştır.

SDL koddaki güvenlik açıklarını yakalayan, çalışma zamanı bileşenlerini doğrulayan ve sistemin güvenlik dayanıklılığını test etmek için etik korsanlığı kullanan çeşitli test türleri içerir. SDL, bir anahtar sola kaydırma etkinliğidir. Geliştirme sürecinin en erken aşamalarında statik kod analizi ve kod olarak altyapının (IaC) otomatik olarak taranması gibi testler çalıştırmalısınız.

Test planlamasına dahil olun. İş yükü ekibi test çalışmalarını tasarlamayabilir. Bu görev genellikle kuruluşta merkezileştirilir veya dış güvenlik uzmanları tarafından tamamlanır. Güvenlik güvencelerinin uygulamanın işlevselliğiyle tümleştirilmesini sağlamak için iş yükü takımının bu tasarım sürecine dahil olması gerekir.

Saldırgan gibi düşün. Test çalışmalarınızı sisteme saldırıldığı varsayımıyla tasarlar. Bu şekilde olası güvenlik açıklarını ortaya çıkarabilir ve testlere uygun öncelikleri atayabilirsiniz.

Testleri yapılandırılmış bir şekilde ve yinelenebilir bir işlemle çalıştırın. Tempo, test türleri, sürüş faktörleri ve hedeflenen sonuçlarla ilgili test sıkılığınızı geliştirin.

İş için doğru aracı kullanın. İş yüküyle çalışacak şekilde yapılandırılmış araçları kullanın. Bir aracınız yoksa, aracı satın alın. Bunu oluşturmayın. Güvenlik araçları son derece özeldir ve kendi aracınızı oluşturmak risklere neden olabilir. Merkezi SecOps ekipleri tarafından sunulan uzmanlık ve araçlardan veya iş yükü ekibinin bu uzmanlığa sahip olmaması durumunda dış araçlardan yararlanın.

Ayrı ortamlar ayarlayın. Testler yıkıcı veya yok edici olarak sınıflandırılabilir. Yıkıcı olmayan testler invazif değildir. Bir sorun olduğunu belirtir, ancak sorunu düzeltmek için işlevselliği değiştirmezler. Yıkıcı testler invazivdir ve veritabanından veri silerek işlevselliğe zarar verebilir.

Üretim ortamlarında test size en iyi bilgileri verir ancak en fazla kesintiye neden olur. Üretim ortamlarında yalnızca yok edici testler yapma eğilimindesiniz. Üretim dışı ortamlarda test etmek genellikle daha az kesintiye neden olur, ancak üretim ortamının yapılandırmasını güvenlik için önemli olan şekillerde doğru şekilde temsil etmeyebilir.

IaC ve otomasyon kullanarak dağıtım yaparsanız, test için üretim ortamınızın yalıtılmış bir kopyasını oluşturup oluşturamayacağınızı düşünün. Rutin testler için sürekli bir işleminiz varsa, ayrılmış bir ortam kullanmanızı öneririz.

Her zaman test sonuçlarını değerlendirin. Sonuçların eylemleri önceliklendirmek ve yukarı akış geliştirmeleri yapmak için kullanılmamış olması durumunda test etmek boşa harcanan bir çabadır. En iyi yöntemler de dahil olmak üzere, ortaya çıkardığınız güvenlik yönergelerini belgeleyebilirsiniz. Sonuçları ve düzeltme planlarını yakalayan belgeler, saldırganların güvenliği ihlal etmek için deneyebilecekleri çeşitli yöntemler hakkında ekibi bilgilendirmektedir. Geliştiriciler, yöneticiler ve test ediciler için düzenli güvenlik eğitimi gerçekleştirin.

Test planlarınızı tasarlarken aşağıdaki soruları düşünün:

  • Testin ne sıklıkta çalışmasını bekliyorsunuz ve ortamınızı nasıl etkiler?

  • Çalıştırmanız gereken farklı test türleri nelerdir?

Testlerin ne sıklıkta çalışmasını bekliyorsunuz?

Değişikliklerin güvenlik riskleri getirmediğinden ve herhangi bir regresyon olmadığından emin olmak için iş yükünü düzenli olarak test edin. Ekibin ayrıca herhangi bir zamanda gerçekleştirilebilecek kurumsal güvenlik doğrulamalarına yanıt vermeye hazır olması gerekir. Güvenlik olayına yanıt olarak çalıştırabileceğiniz testler de vardır. Aşağıdaki bölümlerde test sıklığıyla ilgili öneriler sağlanır.

Rutin testler

Rutin testler, standart operasyon yordamlarınızın bir parçası olarak ve uyumluluk gereksinimlerini karşılamak için düzenli bir tempoda yapılır. Çeşitli testler farklı tempolarda çalıştırılabilir, ancak önemli olan düzenli aralıklarla ve zamanlamaya göre yürütülmeleridir.

Her aşamada derinlemesine savunma sağladığından bu testleri SDLC'nizle tümleştirmeniz gerekir. Kimlik, veri depolama ve iletim ile iletişim kanalları için güvenceleri doğrulamak için test paketini çeşitlendirerek. Herhangi bir regresyon olmadığından emin olmak için yaşam döngüsünün farklı noktalarında aynı testleri gerçekleştirin. Rutin testler ilk karşılaştırmanın oluşturulmasına yardımcı olur. Ancak bu sadece bir başlangıç noktasıdır. Yaşam döngüsünün aynı noktalarında yeni sorunları ortaya çıkarırken yeni test çalışmaları eklersiniz. Testler yinelenmesiyle de iyileştirir.

Her aşamada, bu testler eklenen veya kaldırılan kodu veya bu değişikliklerin güvenlik etkisini algılamak için değiştirilen yapılandırma ayarlarını doğrulamalıdır. Testlerin otomasyon ve eş gözden geçirmelerle dengelenmiş etkinliğini geliştirmeniz gerekir.

Güvenlik testlerini otomatik işlem hattı veya zamanlanmış test çalıştırmasının bir parçası olarak çalıştırmayı göz önünde bulundurun. Güvenlik sorunlarını ne kadar çabuk bulursanız, bunlara neden olan kodu veya yapılandırma değişikliğini bulmak o kadar kolay olur.

Yalnızca otomatikleştirilmiş testlere güvenmeyin. Yalnızca insan uzmanlığının yakalayabileceği güvenlik açıklarını algılamak için el ile test kullanın. El ile test, keşif amaçlı kullanım örnekleri ve bilinmeyen riskleri bulmak için iyidir.

Doğaçlama testler

Doğaçlama testler, güvenlik savunmalarının belirli bir noktada doğrulanmasına olanak sağlar. O sırada iş yükünü etkileyebilecek güvenlik uyarıları bu testleri tetikler. Kurumsal görevlerde, uyarı acil duruma yükseltildiyse savunma stratejilerinin etkinliğini doğrulamak için bir duraklatma ve test zihniyeti gerekebilir.

Doğaçlama testlerin avantajı, gerçek bir olaya hazırlıklı olmaktır. Bu testler, kullanıcı kabul testi (UAT) yapmaya zorlayan bir işlev olabilir.

Güvenlik ekibi tüm iş yüklerini denetleyebilir ve gerektiğinde bu testleri çalıştırabilir. İş yükü sahibi olarak güvenlik ekiplerini kolaylaştırıp işbirliği yapmanız gerekir. Hazırlayabilmeniz için güvenlik ekipleriyle yeterli sağlama süresi anlaşması yapın. Bu kesintilerin gerekli olduğunu ekibinize ve paydaşlarınıza iletin.

Diğer durumlarda, testleri çalıştırmanız ve sistemin güvenlik durumunu olası tehditlere karşı raporlamanız gerekebilir.

Denge: Doğaçlama testler kesintiye neden olan olaylar olduğundan, görevlerin yeniden düzenlenmesi beklenir ve bu da planlanan diğer çalışmaları geciktirebilir.

Risk: Bilinmeyenin riski vardır. Doğaçlama testler, yerleşik süreçler veya araçlar olmadan tek seferlik bir çalışma olabilir. Ancak baskın risk, iş ritminin kesintiye uğraması olasılığıdır. Bu riskleri avantajlara göre değerlendirmeniz gerekir.

Güvenlik olayı testleri

Kaynağında bir güvenlik olayının nedenini algılayan testler vardır. Bu güvenlik açıklarının, olayın yinelenmediğinden emin olmak için çözülmesi gerekir.

Olaylar ayrıca mevcut boşlukları ortaya çıkararak zaman içindeki test çalışmalarını da geliştirir. Ekip, olaydan alınan dersleri uygulamalı ve düzenli olarak iyileştirmeleri dahil etmelidir.

Farklı test türleri nelerdir?

Testler teknolojiye ve test yöntemlerine göre kategorilere ayırılabilir. Tüm kapsamı elde etmek için bu kategorileri ve yaklaşımları bu kategoriler içinde birleştirin.

Birden çok test ve test türü ekleyerek şunları ortaya çıkarabilirsiniz:

  • Güvenlik denetimlerindeki veya telafi denetimlerindeki boşluklar.

  • Yanlış yapılandırmalar.

  • Gözlemlenebilirlik ve algılama yöntemlerindeki boşluklar.

İyi bir tehdit modelleme alıştırması, test kapsamını ve sıklığını sağlamak için önemli alanları işaret edebilir. Tehdit modellemeyle ilgili öneriler için bkz. Geliştirme yaşam döngüsünün güvenliğini sağlamaya yönelik öneriler.

Bu bölümlerde açıklanan çoğu test, rutin testler olarak çalıştırılabilir. Ancak yinelenebilirlik bazı durumlarda maliyete neden olabilir ve kesintiye neden olabilir. Bu dengeleri dikkatli bir şekilde düşünün.

Teknoloji yığınını doğrulayan testler

Aşağıda test türlerinin ve bunların odak alanlarının bazı örnekleri verilmiştir. Bu liste kapsamlı değil. Uygulama yığını, ön uç, arka uç, API'ler, veritabanları ve tüm dış tümleştirmeler dahil olmak üzere yığının tamamını test edin.

  • Veri güvenliği: Verilerin yetkisiz erişime ve kurcalamaya karşı düzgün bir şekilde korunduğundan emin olmak için veri şifreleme ve erişim denetimlerinin etkinliğini test edin.

  • Ağ ve bağlantı: Yalnızca iş yüküne yönelik beklenen, izin verilen ve güvenli trafiğe izin vermelerini sağlamak için güvenlik duvarlarınızı test edin.

  • Uygulama: Güvenli kodlama uygulamalarını izlediğinden emin olmak ve bellek bozulması ve ayrıcalık sorunları gibi çalışma zamanı hatalarını yakalamak için uygulama güvenlik testi (AST) teknikleri aracılığıyla kaynak kodunu test edin. Ayrıntılar için bu topluluk bağlantılarına bakın.

  • Kimlik: Rol atamalarının ve koşullu denetimlerin istendiği gibi çalışıp çalışmadığını değerlendirin.

Test metodolojisi

Test metodolojileri hakkında birçok perspektif vardır. Gerçek dünya saldırılarının benzetimlerini yaparak tehdit avcılığı sağlayan testler yapmanızı öneririz. Potansiyel tehdit aktörlerini, tekniklerini ve iş yükü için tehdit oluşturan açıklarını belirleyebilirler. Saldırıları mümkün olduğunca gerçekçi hale getirin. Tehdit modelleme sırasında tanımladığınız tüm olası tehdit vektörlerini kullanın.

Gerçek dünya saldırıları aracılığıyla test etmenin bazı avantajları şunlardır:

  • Bu saldırıları rutin testlerin bir parçası yaptığınızda, iş yükünü denetlemek ve savunmanın bir saldırıya dayanadığından emin olmak için dışarıdan bir perspektif kullanırsınız.

  • Ekip, öğrendikleri derslere dayanarak bilgi ve beceri düzeylerini yükseltmektedir. Ekip, durum farkındalığını artırır ve olaylara yanıt vermeye hazır olma durumunu kendi kendine değerlendirebilir.

Risk: Genel olarak test etme performansı etkileyebilir. Yıkıcı testler verileri siler veya bozarsa iş sürekliliği sorunları olabilir. Bilgilerin açığa çıkarmasıyla ilişkili riskler de vardır; verilerin gizliliğini koruduğundan emin olun. Testi tamamladıktan sonra verilerin bütünlüğünü sağlayın.

Simülasyon testlerine örnek olarak kara kutu ve beyaz kutu testi, sızma testi ve savaş oyunu alıştırmaları verilebilir.

Kara kutu ve beyaz kutu testi

Bu test türleri iki farklı perspektif sunar. Kara kutu testlerinde sistemin içleri görünmez. Beyaz kutu testlerinde, test eden uygulama hakkında iyi bir anlayışa sahiptir ve hatta denemeyi yürütmek için koda, günlüklere, kaynak topolojisine ve yapılandırmalara erişebilir.

Risk: İki tür arasındaki fark peşin maliyettir. Beyaz kutu testi, sistemi anlamak için geçen süre açısından pahalı olabilir. Bazı durumlarda, beyaz kutu testi özel araçlar satın almanızı gerektirir. Kara kutu testinin hızlandırılması gerekmez, ancak bu kadar etkili olmayabilir. Sorunları ortaya çıkarmak için fazladan çaba harcamanız gerekebilir. Bu zaman yatırımının bir dezavantajı.

Sızma testi aracılığıyla saldırıların simülasyonunu oluşturan testler

Kuruluşun BT veya uygulama ekiplerinin parçası olmayan güvenlik uzmanları sızma testi veya pentesting gerçekleştiriyor. Sisteme, kötü niyetli aktörlerin saldırı yüzeyinin kapsamına aldıkları şekilde bakarlar. Amaçları bilgi toplayarak, güvenlik açıklarını analiz ederek ve sonuçları bildirerek güvenlik açıklarını bulmaktır.

Denge: Penetrasyon testleri doğaçlamadır ve kesintiler ve parasal yatırım açısından pahalı olabilir çünkü pentesting genellikle üçüncü taraf uygulayıcılar tarafından ücretli bir tekliftir.

Risk: Bir pentesting alıştırması çalışma zamanı ortamını etkileyebilir ve normal trafik için kullanılabilirliği kesintiye uğratabilir.

Uygulayıcıların tüm kuruluştaki hassas verilere erişmesi gerekebilir. Erişimin kötüye kullanılmadığından emin olmak için görevlendirme kurallarını izleyin. İlgili bağlantılarda listelenen kaynaklara bakın.

Savaş oyunu alıştırmaları aracılığıyla saldırıları simüle eden testler

Sanal saldırıların bu metodolojisinde iki ekip vardır:

  • Kırmızı takım, gerçek dünya saldırılarını modellemeye çalışan saldırgandır. Başarılı olurlarsa, güvenlik tasarımınızda boşluklar bulur ve ihlallerinin patlama yarıçapını kapsamasını değerlendirirsiniz.

  • Mavi takım, saldırılara karşı savunmada bulunan iş yükü ekibidir. Saldırıları algılama, yanıtlama ve düzeltme becerilerini test eder. İş yükü kaynaklarını korumak için uygulanan savunmaları doğrular.

Rutin testler olarak gerçekleştirilen savaş oyunu alıştırmaları, savunmalarınızın tasarlandığı şekilde çalıştığına dair sürekli görünürlük ve güvence sağlayabilir. Savaş oyunu alıştırmaları potansiyel olarak iş yüklerinizdeki düzeyler arasında test edebilir.

Gerçekçi saldırı senaryolarının benzetimini yapmak için popüler bir seçim Office 365 için Microsoft Defender Saldırı simülasyonu eğitimi.

Daha fazla bilgi için bkz. Saldırı simülasyonu eğitimi için içgörüler ve raporlar.

Kırmızı takım ve mavi ekip kurulumu hakkında bilgi için bkz. Microsoft Bulut Kırmızı Ekibi Oluşturma.

Azure kolaylaştırma

Microsoft Sentinel, güvenlik bilgileri olay yönetimi (SIEM) ve güvenlik düzenleme otomatik yanıt (SOAR) özelliklerini birleştiren yerel bir denetimdir. Çeşitli bağlı kaynaklardan olayları ve günlükleri analiz eder. Microsoft Sentinel, veri kaynaklarına ve uyarılarına göre olaylar oluşturur ve erken algılama için tehdit analizi gerçekleştirir. Akıllı analizler ve sorgular aracılığıyla güvenlik sorunlarını proaktif olarak arayabilirsiniz. Bir olay varsa iş akışlarını otomatikleştirebilirsiniz. Ayrıca, çalışma kitabı şablonlarıyla görselleştirme aracılığıyla hızlı bir şekilde içgörü elde edebilirsiniz.

Ürün belgeleri için bkz . Microsoft Sentinel'de tehdit avcılığı özellikleri.

Bulut için Microsoft Defender çeşitli teknoloji alanları için güvenlik açığı taraması sunar. Ayrıntılar için bkz. Bulut için Microsoft Defender Güvenlik Açığı Yönetimi - Microsoft Defender ile güvenlik açığı taramasını etkinleştirme.

DevSecOps uygulaması, güvenlik testlerini sürekli ve sürekli iyileştirme zihniyetinin bir parçası olarak tümleştirir. Savaş oyunu alıştırmaları, Microsoft'taki iş ritmine entegre olan yaygın bir uygulamadır. Daha fazla bilgi için bkz . DevOps'ta Güvenlik (DevSecOps).

Azure DevOps, sürekli tümleştirme/sürekli dağıtım işlem hatlarının bir parçası olarak otomatikleştirilebilir üçüncü taraf araçları destekler. Ayrıntılar için bkz . Azure ve GitHub ile DevSecOps'u etkinleştirme - Azure DevOps.

Erişimin kötüye kullanılmadığından emin olmak için katılım kurallarına uyun. Sanal saldırıları planlama ve yürütme hakkında rehberlik için aşağıdaki makalelere bakın:

Azure'da hizmet reddi (DoS) saldırılarının benzetimini yapabilirsiniz. Azure DDoS Koruması benzetim testinde belirtilen ilkeleri izlediğinden emin olun.

Uygulama güvenliği testi: Araçlar, türler ve en iyi yöntemler - GitHub Kaynakları, uygulamanın derleme zamanını ve çalışma zamanı savunmalarını test sınayabilen test yöntemleri türlerini açıklar.

Sızma Testi Yürütme Standardı (PTES), genel senaryolar ve temel oluşturmak için gereken etkinlikler hakkında yönergeler sağlar.

OWASP İlk On | OWASP Foundation , yaygın tehditleri kapsayan uygulamalar ve test çalışmaları için en iyi güvenlik uygulamalarını sağlar.

Güvenlik denetim listesi

Önerilerin tamamına bakın.