AI Security

Kimlik Doğrulamadan Öte: LLM Uygulamaları için AI Yetkilendirmesini Ustalıkla Yönetmek

Kurumlar Büyük Dil Modellerini (LLM'leri) üretim ortamlarına hızla entegre ederken, odak tehlikeli bir şekilde "Bunu nasıl inşa ederiz?" sorusundan "Bunu nasıl güvenceye alırız?" sorusuna kaymıştır. Kimlik doğrulama kullanıcının kim olduğunu doğrularken, yetkilendirme kullanıcının AI bağlamında neye erişebileceğini belirler. Bu ayrım kritik öneme sahiptir çünkü AI modelleri genellikle bağlam pencereleri aracılığıyla hassas verileri ortaya çıkarır; bu da kurumsal benimseme için sağlam yetkilendirme politikalarını vazgeçilmez kılar.

AI İzinlerinin Benzersiz Zorluğu

Geleneksel API güvenliği genellikle basit Rol Tabanlı Erişim Kontrolüne (RBAC) dayanır. Ancak, AI uygulamaları dinamik değişkenler getirir: kullanıcının sorgusu, alınan bağlam ve modelin çıktısı. Bir kullanıcı bir soru sormak için yetkilendirilmiş olabilir, ancak soruyu yanıtlamak için vektör veritabanından alınan belirli belge parçasını görmek için yetkilendirilmemiş olabilir. Bu, genellikle RBAC ile Nitelik Tabanlı Erişim Kontrolünü (ABAC) birleştiren daha ince granülerlikte bir yaklaşım gerektirir.

ABAC modelinde kararlar, kullanıcının, kaynağın, eylemin ve ortamın niteliklerine dayanır. Bir AI hattı için bu, izinlerin birden fazla aşamada değerlendirilmesi anlamına gelir: sorgu modele ulaşmadan önce (istemci girdisi) ve bağlam alındıktan sonra (vektör veri erişimi).

Politika Odaklı Yetkilendirmenin Uygulanması

Bu karmaşıklığı yönetmek için, yetkilendirme mantığını uygulama kodundan ayırmalıyız. Open Policy Agent (OPA) gibi özel bir politika motoru kullanmak, merkezi ve bildirimsel politika yönetimi sağlar. Bu, güvenlik kurallarının tüm AI hizmetini yeniden dağıtmadan güncellenmesini sağlar.

Bir destek temsilcisinin bir LLM aracılığıyla müşteri veritabanını sorguladığı bir senaryoyu ele alalım. Sistemin, temsilcinin yalnızca belirli bölgesine ait verilere erişebilmesini sağlaması gerekir. Bunu uygulamak için Rego (OPA'nın politika dili) ile bir politika yapısı şu şekilde oluşturulabilir:

package ai.authorization

# Kullanıcının bölgesi kaydın bölgesiyle eşleşmiyorsa erişimi reddet
deny[msg] {
    input.user.role == "support_agent"
    input.request.context.record.region != input.user.allowed_regions[_]
    msg := "Erişim reddedildi: Kullanıcı bölgesi kayıt bölgesiyle eşleşmiyor"
}

# Bölge fark etmeksizin yöneticilere erişim izni ver
allow {
    input.user.role == "admin"
}

# Varsayılan olarak reddet
allow {
    input.user.role == "user"
}

Bu örnekte, politika motoru LLM işlemeye başlamadan önce isteği engeller. input.request.context kullanıcının görüntüleme izni olmayan bir bölgeden bir kayıt içeriyorsa, motor bir reddetme kararı döndürerek veri sızıntısını kaynağında önler.

Çalışma Zamanı Uygulaması ve Bağlam Filtreleme

Yetkilendirme yalnızca istekleri engellemekle ilgili değildir; aynı zamanda çıktıları temizlemekle de ilgilidir. Bir kullanıcının bir soru sormak için yetkilendirilmiş olsa bile, oluşturulan yanıt istemeden yetkisiz bir kaynaktan Kişisel Tanımlayıcı Bilgi (PII) içerebilir. Gelişmiş AI güvenlik yığınları, oluşturma sonrası bir "filtre katmanı" uygular.

Bu, hassas kalıpları taramak için ikincil, hafif bir model veya regex tabanlı bir kural motoru kullanmayı içerir. Bir ihlal tespit edilirse, sistem bilgileri karartabilir veya "Bu bilgiye erişemiyorum" gibi genel bir yanıt döndürmek gibi bir yedek mekanizma tetikleyebilir.

import json

def sanitize_response(response: str, user_id: str) -> str:
    """
    Kullanıcı izinlerine göre LLM çıktısını temizlemek için post-işleme adımı.
    """
    sensitive_patterns = re.compile(r'\b\d{3}-\d{2}-\d{4}\b') # Örnek Kimlik No kalıbı
    
    if not has_permission(user_id, "view_pii"):
        sanitized = sensitive_patterns.sub("[KARARTILDI]", response)
        return sanitized
    return response

Sonuç

AI uygulamalarının güvenliğini sağlamak, statik izin kontrollerinden dinamik ve bağlam duyarlı yetkilendirmeye yönelik bir paradigma değişimi gerektirir. ABAC uygulayarak, OPA gibi politika motorlarından yararlanarak ve oluşturma sonrası temizleme uygulamakla geliştiriciler, veri sınırlarına saygı duyan sağlam AI hatları oluşturabilir. AI yetenekleri büyüdükçe, güvenlik riskleri için yüzey alanı da artar. Yetkilendirmeye öncelik vermek, yeniliğin uyumluluk ve güven pahasına gerçekleşmemesini sağlar.

Share: