Fazla ayrıcalıklı izinleri ve uygulamaları azaltma

Sıfır Güven yol gösterici ilkelerine uyan uygulamalar tasarlamayı ve uygulamayı hedefleyen bir geliştirici olarak, uygulama güvenliğini en az ayrıcalıkla artırmak istiyorsunuz. Uygulamanızın saldırı yüzeyini ve güvenlik ihlalinin etkisini azaltmanız şarttır.

Bu makalede, uygulamaların neden ihtiyaç duyduklarından daha fazla izin istememesi gerektiğini öğreneceksiniz. Erişimi yönetmek ve güvenliği geliştirmek için uygulamalarınızda ayrıcalığı sınırlamak için fazla ayrıcalıklı terimi anlar ve önerileri ve en iyi yöntemleri keşfedersiniz.

Fazla ayrıcalık nedir?

Fazla ayrıcalık , bir uygulama düzgün çalışması için gerekenden daha fazla izin istediğinde veya aldığında oluşur. Bu makalenin geri kalanında kullanılmayan ve azaltılabilir izin örnekleriyle fazla ayrıcalıklı anlayışınızı geliştirin.

Kullanılmayan izinler

Bu kullanılmayan anahtar örneği için, aşağıdaki diyagramda gösterildiği gibi üç kilitli kapı (mavi, sarı ve yeşil) olduğunu düşünün.

Diyagram, kullanılmayan izinleri göstermek için karşılık gelen anahtarlara sahip üç kapı gösterir.

Mal varlığınız kapının arkasında. İlgili kapıyı açmanıza olanak sağlayan üç tuşa (mavi, sarı ve yeşil) sahipsiniz. Örneğin, mavi anahtar mavi kapıyı açabilir. Yalnızca sarı kapıya erişmeniz gerektiğinde, yalnızca sarı anahtarı taşırsınız.

Varlıklarınızı en iyi şekilde korumak için ihtiyacınız olan anahtarları yalnızca ihtiyacınız olduğunda taşır ve kullanılmayan anahtarları güvenli bir konumda tutarsınız.

Azaltılabilir izinler

İndirgenebilir anahtarlar örneği, aşağıdaki diyagramda gösterildiği gibi artık iki özel anahtar eklediğimiz kullanılmayan anahtar örneğinden daha karmaşıktır.

Diyagramda, azaltılabilir izinleri göstermek için karşılık gelen anahtarlara sahip üç kapı gösterilmektedir.

İlk siyah anahtar, tüm kapıları açabilen bir geçiş anahtarıdır. İkinci siyah tuş sarı ve yeşil kapıları açabilir. Yalnızca sarı ve yeşil kapılara erişmeniz gerektiğinde, yalnızca ikinci siyah anahtarı taşırsınız. Yedekli yeşil anahtarla geçiş anahtarınızı güvenli bir konumda tutarsınız.

Microsoft kimlik dünyasında anahtarlar erişim izinleridir. Kaynaklarınız ve anahtar sahibi olan siz uygulamalarsınız. Gereksiz anahtarları taşıma riskini anlıyorsanız, uygulamalarınızın gereksiz izinlere sahip olma riskinin farkındasınız demektir.

İzin boşluğu ve risk

Kapılar ve anahtarlar, fazla ayrıcalıkların nasıl gerçekleştiğini anlamanıza nasıl yardımcı olabilir? Uygulamanız neden bir görevi gerçekleştirmek için doğru izinlere sahip olabilir, ancak yine de fazla ayrıcalıklara sahip olabilir? Aşağıdaki diyagramda tutarsızlığa neden olabilecek izin boşluğuna bakalım.

Sağ taraftaki grafik: Y ekseni - İzinler, X ekseni - Zaman; Üst eğri - Verilen İzinler, Alt eğri - Kullanılan İzinler; Makale içeriğinde açıklanan sağdaki istatistikler.

X ekseni Saati, Y ekseni ise İzinleri temsil eder. Ölçülen Sürenin başlangıcında, uygulamanız için izin isteyebilir ve alırsınız. İş büyüdükçe ve zamanla değiştikçe, ihtiyaçlarınızı desteklemek için yeni izinler eklersiniz ve İzin Verilen İzinlerin eğimi artar. Kullanılan İzinler, gereksiz izinleri kaldırmayı unuttuğunuzda verilen izinlerden daha düşük olabilir (örneğin, uygulama bozulmazsa) İzin Aralığına neden olur.

İşte Microsoft kimlik platformu ilginç gözlemler.

  • Microsoft Graph'ta 4.000'den fazla API'miz var.
  • Microsoft kimlik platformu'da 200'den fazla Microsoft Graph izni mevcuttur.
  • Geliştiriciler çok çeşitli verilere erişebilir ve uygulamalarının istediği izinlere ayrıntı düzeyi uygulama olanağına sahiptir.
  • Yaptığımız araştırmalarda uygulamaların senaryoları için yalnızca %10 tam olarak kullanılan izinlere sahip olduğunu tespit ettik.

Uygulamanızın gerçekte hangi izinleri gerektirdiğini dikkatlice düşünün. İzin boşluğuna dikkat edin ve uygulama izinlerinizi düzenli olarak denetleyin.

Fazla ayrıcalıklar için güvenliği tehlikeye atılmış güvenlik

Şimdi bir örnekle izin boşluklarından kaynaklanan riskleri ayrıntılı olarak ele alalım. Bu ödün verme senaryosu iki rolden oluşur: BT yöneticisi ve geliştirici.

  • BT yöneticisi: Jeff, Microsoft Entra Id'deki uygulamaların güvenilir ve güvenli olmasını sağlayan bir kiracı yöneticisidir. Jeff'in işinin bir parçası, uygulama geliştiricilerinin gerektirdiği izinlere onay vermektir.
  • Geliştirici: Kelly, Microsoft kimlik platformu kullanan ve uygulamaların sahibi olan bir uygulama geliştiricisi. Kelly'nin görevi, uygulamaların gerekli görevleri gerçekleştirmek için doğru izinlere sahip olduğundan emin olmaktır.

Aşırı ayrıcalıklara yönelik aşağıdaki yaygın güvenlik güvenliği tehlikeye atma senaryosunun genellikle dört aşaması vardır.

Makale içeriğinde açıklanan diyagram: Güvenlik güvenliği tehlikeye atma senaryosunun dört aşaması.

  1. İlk olarak, geliştirici uygulamayı yapılandırmaya ve gerekli izinleri eklemeye başlar.
  2. İkincisi, BT yöneticisi gerekli izinleri inceler ve onay verir.
  3. Üçüncüsü, kötü aktör kullanıcı kimlik bilgilerini kırmaya başlar ve kullanıcı kimliğini başarıyla ele geçirmektedir.
  4. Kullanıcının birden çok uygulaması varsa, bunlar da fazla ayrıcalıklara sahip olur. Kötü aktör, hassas verileri almak için verilen iznin belirtecini hızla kullanabilir.

Fazla ayrıcalıklı uygulamalar

Bir varlık, ihtiyaç duyduğundan daha fazla izin istediğinde veya aldığında fazla ayrıcalık alır. Microsoft kimlik platformu fazla ayrıcalıklı uygulamanın tanımı, "kullanılmayan veya azaltılabilir izinlere sahip tüm uygulamalar"dır.

Kullanılmayan izni ve azaltılabilir izni daha iyi anlamak için gerçek dünyadaki bir örnekte Microsoft kimlik platformu bir parçası olarak Microsoft Graph'ı kullanalım.

Sol sütun: Kullanılmadı - Yapılan API çağrısı için hiç gerekli olmayan bir veya daha fazla izin veriliyor. Sağ sütun: İndirilebilir - Gerekli görevler için erişim sağlamaya devam edecek daha düşük ayrıcalıklı bir alternatife sahip izin.

Kullanılmayan izin, uygulamanız istenen görevler için gerekli olmayan izinleri aldığında gerçekleşir. Örneğin, bir takvim uygulaması oluşturuyorsunuz. Takvim uygulamanız istekte bulunur ve izin alır Files.ReadWrite.All . Uygulamanız hiçbir dosya API'siyle tümleştirilmez. Bu nedenle, uygulamanızın kullanılmayan Files.ReadWrite.All bir izni vardır.

Azaltılabilir izni bulmak daha zordur. Uygulamanız birkaç izin aldığında ancak gerekli görevler için yeterli erişim sağlayacak daha düşük ayrıcalıklı bir alternatife sahip olduğunda oluşur. Takvim uygulaması örneğinde uygulamanız izin isteğinde bulunur ve alır Files.ReadWrite.All . Ancak, yalnızca oturum açmış kullanıcının OneDrive'ından dosyaları okuması ve hiçbir zaman yeni dosyalar oluşturması veya mevcut dosyaları değiştirmesi gerekir. Bu durumda uygulamanız yalnızca kısmen kullandığı Files.ReadWrite.All için'e Files.Read.Alldüşürmeniz gerekir.

Fazla ayrıcalıklı senaryoları azaltmaya yönelik Öneriler

Güvenlik bir yolculuk, hedef değil. Güvenlik yaşam döngüsünde üç farklı aşama vardır:

  • Önleme
  • Denetim
  • Düzeltme

Aşağıdaki diyagramda, fazla ayrıcalıklı senaryoları azaltmaya yönelik öneriler gösterilmektedir.

Makale içeriğinde açıklanan diyagram: Fazla ayrıcalıklı senaryoları önlemeye, denetlemeye ve düzeltmeye yönelik öneriler.

  • Engelle: Uygulama oluştururken, uygulamanızın yapması gereken API çağrıları için gereken izni tam olarak anlamanız ve yalnızca senaryonuzu etkinleştirmek için gerekenleri istemeniz gerekir. Microsoft Graph belgelerinde tüm uç noktalar için en az ayrıcalıklı izinlere yönelik açık başvurular bulunur. Hangi izinlere ihtiyacınız olduğunu belirlerken fazla ayrıcalıklı senaryolara dikkat edin.
  • Denetim: Bt yöneticileriyle birlikte mevcut uygulamaların önceden verilen ayrıcalıklarını düzenli olarak gözden geçirmeniz gerekir.
  • Düzeltme: Siz veya BT yöneticileri ekosistemde fazla ayrıcalıklara sahip bir uygulama fark ederseniz, fazla ayrıcalıklı izin için belirteç istemeyi durdurmalısınız. BT yöneticileri verilen onayları iptal etmelidir. Bu adım genellikle bir kod değişikliği gerektirir.

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

Uygulamalarınızla en az ayrıcalık izninin korunmasına yönelik iki önemli teşvik, uygulamanın benimsenmesini ve yayılmanın durdurulmasını sağlar.

Sol sütun: Drive Adoption - Aşırı izin isteklerinden kaçınarak müşteriler için güvenilir bir uygulama oluşturun. Sağ sütun: Yayılmayı Durdur - Saldırganlar daha fazla erişim elde etmek için aşırı ayrıcalıkları kullanamaz.

  • Müşteriler için aşırı izin isteklerini önleyen güvenilir bir uygulama oluşturarak benimsemeyi destekleyin. Uygulama izinlerinizi yalnızca görevini tamamlamak için gerekenlerle sınırlayın. Bu uygulama saldırıların olası patlama yarıçapını azaltır ve uygulamalarınızın müşteri tarafından benimsenmesini artırır. Uygulamaların istediği izinleri gözden geçirirken ve uygulama izinleri verilip verilmeyeceğine karar verirken daha fazla inceleme uygulayın.
  • Saldırganların daha fazla erişim elde etmek için aşırı ayrıcalıkları kullanamadığından emin olarak yayılmayı durdurun. Gereksiz izinler isteyen bir uygulama oluşturduğunuzda, onay alma veya tamamen reddedilmiş olma olasılığı en düşüktür. Hasarı denetlemenin en iyi yolu, saldırganların güvenliği aşma kapsamını artıran yükseltilmiş ayrıcalıklar kazanmasını önlemektir. Örneğin, uygulamanızın yalnızca kullanıcı temel bilgilerini okuması User.ReadBasic.All gerekiyorsa OneDrive, Outlook, Teams ve gizli verileriniz bir uygulamanın güvenliğinin ihlal edilmiş olması durumunda güvende olur.

Sonraki adımlar

  • Kaynaklara erişmek için yetkilendirme alma, uygulamanız için kaynak erişim izinleri alırken Sıfır Güven en iyi şekilde nasıl sağlayacağınızı anlamanıza yardımcı olur.
  • Kimlik için Sıfır Güven bir yaklaşımla uygulama oluşturmak, izinlere ve erişime yönelik en iyi yöntemlere genel bir bakış sağlar.
  • Belirteçleri özelleştirme, Microsoft Entra belirteçlerinde alabileceğiniz bilgileri açıklar. En az ayrıcalıkla uygulama sıfır güven güvenliğini artırırken esnekliği ve denetimi geliştirmek için belirteçlerin nasıl özelleştirileceği açıklanır.
  • Belirteçlerde grup taleplerini ve uygulama rollerini yapılandırma, uygulama rol tanımlarıyla uygulamalarınızı yapılandırmayı ve uygulama rollerine güvenlik grupları atamayı gösterir. Bu yöntemler, en az ayrıcalıkla uygulama sıfır güven güvenliğini artırırken esnekliği ve denetimi geliştirmeye yardımcı olur.
  • Uygulamalarınızda Sıfır Güven hazır olma durumu elde etme: En Az Ayrıcalık için Tasarlama, Microsoft kimlik platformu en az ayrıcalıklı erişim ilkesini kullanarak uygulama tasarlamanıza yardımcı olur.
  • Uygulama güvenliğini en az ayrıcalık ilkesiyle artırın, bir uygulamanın saldırı yüzeyini azaltmanıza yardımcı olur ve güvenlik ihlalinin (patlama yarıçapı) etkisi Microsoft kimlik platformu tümleşik bir uygulamada gerçekleşmelidir.
  • Graph Gezgini ve Microsoft Graph izin başvurusu , uygulama senaryonuzu etkinleştirmek için Microsoft Graph API çağrılarını seçmenize ve en düşükten en ayrıcalıklıya kadar ilgili izinleri bulmanıza yardımcı olur.