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

Sıfır Güven'in 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. Aşırı Yetki terimini öğrenirsiniz. Uygulamalarınızda ayrıcalığı sınırlamak, erişimi yönetmek ve güvenliği geliştirmek için önerileri ve en iyi yöntemleri keşfedersiniz.

Aşırı ayrıcalık nedir?

Aşırı ayrıcalık , bir uygulama düzgün çalışması için gerekenden daha fazla izin istediğinde veya aldığında gerçekleşir. Bu makalenin geri kalanında kullanılmayan ve azaltılabilir izin örnekleriyle fazla ayrıcalık 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. Şifreli anahtarınızı yedek yeşil anahtarla güvenli bir konumda tutarsınız.

Microsoft kimlik platformunda 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, aşırı ayrıcalıkların nasıl gerçekleştiğini anlamaya 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.

Diyagramda, Verilen ve Kullanılan İzinler ile ilgili İzinler ve Süreler gösterilmektedir.

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.

Microsoft kimlik platformunda ilginç gözlemler aşağıdadır.

  • Microsoft Graph'ta 4.000'den fazla API'miz var.
  • Microsoft kimlik platformunda 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 uygulayabilir.
  • Yaptığımız araştırmalarda uygulamaların senaryoları için yalnızca 10% izinden tam olarak yararlandığını bulduk.

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

Aşırı ayrıcalıklar için güvenlik tehlikeye atıldı.

Ş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şağıdaki yaygın aşırı yetki güvenliği tehlikeye atma senaryosunun genellikle dört aşaması vardır.

Diyagramda güvenlik güvenliği tehlikeye atma senaryosunun dört aşaması gösterilmektedir.

  1. Geliştirici uygulamayı yapılandırmaya ve gerekli izinleri eklemeye başlar.
  2. BT yöneticisi gerekli izinleri inceler ve onay verir.
  3. 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 platformunda fazla ayrıcalıklı uygulamanın tanımı , kullanılmayan veya azaltılabilir izinlere sahip herhangi bir uygulamadır.

Kullanılmayan izni ve azaltılabilir izni daha iyi anlamak için Gerçek dünya örneğinde Microsoft Graph'ı Microsoft kimlik platformunun bir parçası olarak kullanalım.

Diyagram, kullanılmayan ve azaltılabilir izinler örneğini gösterir.

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 yalnızca birkaç izin aldığında ve bu izinler gerekli görevler için yeterli erişimi sağlamadığında, daha düşük ayrıcalıklı bir alternatifin yeterli erişimi sağlayabileceği durumlarda 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 Files.ReadWrite.All'i kısmen kullandığı için Files.Read.All'e düşü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 İçin İnceleme
  • Remediation

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

Diyagramda, fazla ayrıcalıklı senaryoları önleme, denetleme ve düzeltme önerileri gösterilir.

  • Engelle: Bir uygulama oluştururken, uygulamanızın yapması gereken API çağrıları için gerekli izinleri tam olarak anlayın. Yalnızca senaryonuzu etkinleştirmek için gerekenleri isteyin. Microsoft Graph belgelerinde tüm uç noktalar için en az ayrıcalıklı izinlerden en ayrıcalıklı izinlere kadar olan 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 durdurun. 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.

Diyagram, Benimsetme Süreci ve Yayılmayı Durdurma işlemlerini göstermektedir.

  • 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.
  • Kötü aktörlerin 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ı kontrol etmenin en iyi yolu, kötü niyetli kişilerin ihlal 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