Principle of Least Privilege (En Az Ayrıcalık İlkesi)

“Minimum Necessary Access” veya “Minimum Required Access” olarak da adlandırılan “Principle of Least Privilege”, kullanıcılara, sistemlere veya uygulamalara yalnızca işlerini yerine getirmek için mutlaka gereken erişim düzeyinin sağlanmasını ifade eder.

Principle of Least Privilege (POLP)

Kelimelerin baş harflerinden yararlanarak kısaltabileceğimiz POLP, sistem veya sürecin, işleyebilmesi için gerekli olan bazal metobilizmayı ifade eder. Gereksiz yetkilerin kötüye kullanılma riski azalacağı için güvenlik ihlallerinin potansiyel etkisi sınırlandırılmış olur.

Bu yaklaşım, kullanıcılara veya sistemlere gereksiz yere geniş erişim hakları verilmesini önler. Örneğin, bir veritabanı yöneticisinin veritabanı sistemlerine geniş erişimi olabilir, ancak bu kişinin ofis yazılımı veya diğer genel IT sistemlerine yönetici düzeyinde erişim hakkına sahip olması gerekmez. Siber güvenlik açısından çok önemli olan bu ilkenin uygulanması ile kullanıcının veya sistemin potansiyel olarak kötüye kullanabileceği ya da tehlikeye atabileceği kaynaklar sınırlandırdığından aşağıdaki gibi avantajlar sağlar:

  • Güvenlik Artışı: Kullanıcılara ve programlara sadece gerektiği kadar ayrıcalık verilmesi, kötü niyetli faaliyetlerin veya hataların yol açabileceği zararları minimize eder.
  • Hata Yönetimi: Sistemde oluşabilecek hatalar daha sınırlı bir etki alanına sahip olur, çünkü hataların etkileyebileceği ayrıcalıklar ve kaynaklar sınırlıdır.
  • Erişim Kontrolü: Sistem, her kullanıcının veya uygulamanın ihtiyaç duyduğu minimum düzeyde erişimle sınırlı olduğu için daha kolay yönetilir ve denetlenir.
  • Zararın Azaltılması: Eğer bir güvenlik ihlali olursa, saldırganın erişebileceği kaynaklar ve yapabileceği zarar sınırlıdır, çünkü sistem genelindeki ayrıcalıkları kısıtlıdır.

Diyelim ki, bir web uygulamasında kullanıcı profil güncelleme işlemi yapılıyor ve bu işlem için “En Az Ayrıcalık İlkesi” (POLP) uygulanmamış olsun:

let users = {
    alice: { id: 1, email: "[email protected]", role: "user" },
    bob: { id: 2, email: "[email protected]", role: "admin" }
};

function updateUserProfile(username, newEmail, newRole) {
    users[username].email = newEmail;
    users[username].role = newRole;
}

// Herhangi bir kullanıcının rolünü ve e-postasını güncelleme
updateUserProfile("bob", "[email protected]", "superadmin");

Yukarıdaki kodumzda, updateUserProfile fonksiyonu herhangi bir kullanıcının e-posta adresini ve rolünü günceleyebilmektedir. Haliyle bundan faydalanmak isteyecek kötü niyetli kişiler bu fonksiyonu kullanarak kendi hesabını “admin” olarak güncelleyip tüm sistem üzerinde tam kontrol kazanabilir. Böylesi durumları engellemek için “En Az Ayrıcalık İlkesi” (POLP) imdadımıza yetişir. Bakınız:

function updateUserEmail(username, newEmail) {
    // Sadece e-posta adresini güncelle
    users[username].email = newEmail;
}

function updateUserRole(username, newRole) {
    if (users[username].role !== "admin") {
        // Yalnızca admin olmayan kullanıcıların rolünü güncelle
        users[username].role = newRole;
    }
}

// Sadece e-posta adresini güncelle
updateUserEmail("bob", "[email protected]");

// Rol güncellemesi, eğer kullanıcı admin değilse yapılabilir
updateUserRole("alice", "editor");

Bu düzeltilmiş kodda, e-posta adresini ve kullanıcı rolünü güncellemek için ayrı fonksiyonlar kullanılmıştır. Ayrıca, kullanıcı rollerini güncelleyen fonksiyon, yalnızca kullanıcı zaten “admin” rolünde değilse çalışır. Bu şekilde, bir kullanıcının yetkilerini artırmak için kötüye kullanım riski azaltılmış olur.

İlgili Makaleler

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu