Güvenlik testi önerileri

Bu Azure İyi Tasarlanmış Çerçeve Güvenliği 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 temelini oluşturur. 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 yoluyla test katılığı oluşturun. Platformu ve altyapıyı test eden iç görünüm noktaları 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şı dayanıklılığını 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

Terim 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şı savunması olan bir takım.
Sızma testi Bir sistemin güvenlik savunmalarını doğrulamak için etik hackleme 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ığı gibi ç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, üretim öncesinde sorunları ideal olarak 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ık kullanan çeşitli test türleri içerir. SDL, shift-left tuşunun etkin olduğu bir etkinliktir. Geliştirme sürecinin mümkün olduğunca erken bir aşaması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 merkezi hale getirilir 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ü ekibi bu tasarım sürecine dahil olmalıdır.

Saldırgan gibi düşün. Test çalışmalarınızı, sistemin saldırıya uğradığı varsayımıyla tasarlar. Bu şekilde olası güvenlik açıklarını ortaya çıkartabilir ve testlerin önceliklerini buna göre ayarlayabilirsiniz.

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 katılığınızı oluşturun.

İş için doğru aracı kullanın. İş yüküyle çalışacak şekilde yapılandırılmış araçları kullanın. Aracınız yoksa aracı satın alın. Bunu yapma. 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 olmadığı dış araçlardan yararlanın.

Ayrı ortamlar ayarlayın. Testler yıkıcı veya yok edici olarak sınıflandırılabilir. Yok edici olmayan testler invaziv 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 yollarla 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ı göz önünde bulundurun. Rutin testler için sürekli bir işleminiz varsa, ayrılmış bir ortam kullanmanızı öneririz.

Test sonuçlarını her zaman 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. Ortaya çıkardığınız en iyi yöntemler de dahil olmak üzere 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 eğitmektedir. 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?

İş yükünü düzenli olarak test edin

Değişikliklerin güvenlik risklerine neden olmadığından 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. Ayrıca bir 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 çalışma 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 belirli bir 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 yalnızca bir başlangıç noktasıdır. Yaşam döngüsünün aynı noktalarında yeni sorunları ortaya çıkardıkça yeni test çalışmaları eklersiniz. Testler tekrarlama ile 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 otomasyondaki etkinliğini, eş gözden geçirmelerle dengelenmiş şekilde 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 erken bulursanız, bunlara neden olan kod 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 noktaya doğrulanması sağlar. O sırada iş yükünü etkileyebilecek güvenlik uyarıları bu testleri tetikler. Kurumsal zorunluluklar, uyarının acil bir durumla karşılanması durumunda savunma stratejilerinin etkinliğini doğrulamak için bir duraklatma ve test zihniyeti gerektirebilir.

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, diğer planlı çalışmaları geciktirebilecek görevleri yeniden değerlendirmeyi beklenir.

Risk: Bilinmeyenin riski vardır. Geliştirilmiş testler, yerleşik süreçler veya araçlar olmadan tek seferlik bir çaba olabilir. Ancak baskın risk, iş ritminin kesintiye uğrama 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. Olayın yinelenmediğinden emin olmak için bu güvenlik açıklarının çözülmesi gerekir.

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

Çeşitli testler uygulayın

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ğlama önerileri.

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 dış tümleştirmeler dahil olmak üzere yığının tamamını test edin.

  • Veri güvenliği: Verilerin yetkisiz erişim ve kurcalamalara 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ı: Güvenlik duvarlarınızı yalnızca iş yüküne yönelik beklenen, izin verilen ve güvenli trafiğe izin verecek şekilde test edin.

  • Uygulama: Güvenli kodlama yöntemlerini izlediğinize 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 amaçlandığı gibi çalışıp çalışmadığını değerlendirin.

Test metodolojisi

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

Gerçek dünya saldırıları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 durumsal farkındalığı geliştirir ve olaylara yanıt vermeye hazır olma durumunu kendi kendine değerlendirebilir.

Risk: Genel olarak test performansı etkileyebilir. Yıkıcı testler verileri siler veya bozarsa iş sürekliliği sorunları olabilir. Bilgilerin açığa çıkmasına ilişkin 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ılma süresine ihtiyacı yoktur, ancak bu kadar etkili olmayabilir. Sorunları ortaya çıkarmak için fazladan çaba harcamanız gerekebilir. Bu bir zaman yatırımları.

Sızma testi aracılığıyla saldırıların benzetimini yapabilen 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 bir saldırı yüzeyini kapsama şekliyle bakarlar. Amaç, bilgi toplayarak, güvenlik açıklarını analiz ederek ve sonuçları bildirerek güvenlik açıklarını bulmaktır.

Dengeleme: Sızma 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 kuruluşun tamamında hassas verilere erişmesi gerekebilir. Erişimin kötüye kullanılmadığından emin olmak için görevlendirme kurallarına uyun. İlgili bağlantılarda listelenen kaynaklara bakın.

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

Simülasyon saldırılarını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ı kapsamayı 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 ederler. İş yükü kaynaklarını korumak için uygulanan savunmaları doğrular.

Rutin testler olarak yürütülürse savaş oyunu alıştırmaları, savunmalarınızın tasarlandığı gibi ç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üzeyleri 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ı ekip ve mavi ekip kurulumu hakkında bilgi için bkz . Microsoft Bulut Kırmızı Ekip 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 gelen 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ı analiz 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ızla içgörüler 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. Microsoft Defender Güvenlik Açığı Yönetimi ile güvenlik açığı taramasını etkinleştirme - Bulut için Microsoft Defender.

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'yi etkinleştirme - Azure DevOps.

Erişimin kötüye kullanılmadığından emin olmak için görevlendirme kurallarına uyun. Simülasyon saldırılarını 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ı benzetimi testinde belirtilen ilkeleri izlediğinden emin olun.

Uygulama güvenliği testi: Araçlar, türler ve en iyi yöntemler - GitHub Resources , 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

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