Bölüm 13: Prompt Guard¶
Prompt Guard Amacı¶
Prompt Guard, doğrudan veya dolaylı prompt injection risklerini yönetmek için kullanılan merkezi koruma katmanıdır. Amaç yalnızca belirli anahtar kelimeleri yakalamak değil; AI akışını etkilemeye çalışan zararlı veya manipülatif içerik kalıplarını kurumsal politika altında yönetmektir.
Prompt Guard iki sayfadan oluşur: Prompt Guard Rules (kurallar) ve Patterns (desen kütüphanesi).
Prompt Guard Rules Sayfası¶
Bu sayfa, prompt injection koruma kurallarının oluşturulduğu ve yönetildiği ana görünümdür. Kurallar, hangi içerik kaynaklarının taranacağını ve hangi desen gruplarının kullanılacağını tanımlar. Kuralların eylemi (block/sanitize/detect_only) Access Management üzerinden atanır.
Kural Tablosu Sütunları:
- Name: Kuralın görünen adı.
- Source Type: Kuralın hangi içerik kaynağını taradığı.
- Pattern Groups: Kurala bağlı desen grupları.
- Individual Patterns: Kurala doğrudan bağlı özel desenler.
- Priority: Kural önceliği (sayısal).
- Status:
enabledveyadisabled. - Actions: Edit ve Delete butonları.
Kural Oluşturma (Add Rule)¶
"Add Rule" butonu ile açılan modal, şu alanları içerir:
- Name: Kuralın görünen adı. Örnek: "Finance Prompt Guard". Kural ID'si otomatik olarak bu adresten oluşturulur.
- Source Type: Kuralın hangi içerik kaynağını tarayacağını belirler. Altı seçenek vardır (aşağıda açıklanıyor).
- Pattern Groups: Kurala bağlanacak yeniden kullanılabilir desen grupları. Varsayılan olarak
builtin-defaultgrubu seçilidir. Birden fazla grup seçilebilir. - Individual Patterns: Seçili gruplara ek olarak, kurala doğrudan bağlanacak özel (custom) desenler. Yalnızca custom desenler listelenir.
- Priority: Kuralın öncelik değeri. Birden fazla kural eşleştiğinde yüksek öncelikli olan kazanır. Varsayılan: 100.
- Wrap External Content: İşaretlendiğinde, dış kaynaklardan gelen içerik özel bir sarmalayıcı (wrapper) ile işaretlenir ve tarama doğruluğu artırılır.
- Rule Enabled: Kuralın aktif olup olmadığı. Devre dışı bırakılan kurallar çalışma zamanında değerlendirilmez.
Source Type (İçerik Kaynak Türleri)¶
Prompt riski yalnızca son kullanıcının yazdığı metinden doğmaz. Altı içerik kaynağı taranabilir:
- user_prompt: Kullanıcının doğrudan yazdığı prompt metni. En yaygın tarama kaynağıdır.
- external_document: Dış kaynaklardan yüklenen veya alınan belgeler. PDF, DOCX vb. dosyalardaki gömülü injection denemeleri bu kaynakta yakalanır.
- tool_result: AI modelinin kullandığı araçların (function calling) döndürdüğü çıktılar. Araç sonuçlarına enjekte edilen zararlı yönergeler bu kaynakta izlenir.
- retrieved_context: RAG (Retrieval-Augmented Generation) gibi sistemlerde veri tabanından getirilen bağlam parçaları. Veri tabanına enjekte edilmiş zararlı içerik bu kaynakta yakalanır.
- response_chunk: AI modelinin döndürdüğü yanıt parçaları. Yanıt taraması açıkken model çıktısındaki injection kalıpları bu kaynakta izlenir.
- system_context: Sistem düzeyinde enjekte edilen bağlam. Sistem prompt'larına veya yapılandırma katmanlarına sızdırılan zararlı içerik bu kaynakta taranır.
Kural Modları (Action)¶
Kuralın eylemi, kuralın oluşturulduğu sayfada değil, Access Management üzerinden atanır. Üç mod vardır:
- Block: Eşleşen isteği tamamen engeller. Yüksek riskli içerik kaynakları için uygundur.
- Sanitize: Zararlı içerik temizlenerek istek iletilebilir. Kullanıcı deneyimini kesintiye uğratmadan koruma sağlar.
- Detect Only: İstek değiştirilmeden iletilir ve eşleşme yalnızca kayıt altına alınır. İzleme ve analitik amaçlı kullanılır.
Bu esneklik, farklı içerik kaynaklarına farklı sertlikte tepki vermeyi sağlar (ör. user_prompt → block, retrieved_context → sanitize).
Patterns Sayfası (Desen Kütüphanesi)¶
Patterns sayfası, prompt injection taramasında kullanılan desenlerin (pattern) ve desen gruplarının (group) yönetildiği kütüphanedir. İki sekmeden oluşur: Patterns ve Groups.
Patterns Sekmesi:
Özel (custom) desenlerin oluşturulduğu ve yönetildiği görünümdür. Her desen şu alanlara sahiptir:
- Name: Desenin görünen adı. Örnek: "SQL Injection Attempt".
- Type: Desen türü:
- keyword: Büyük/küçük harf duyarsız alt dize eşleşmesi. Basit ve hızlıdır.
- regex: Go uyumlu düzenli ifade. Daha karmaşık kalıplar için uygundur. Geçersiz regex söz dizimi hata mesajı olarak gösterilir.
- Expression: Eşleşme ifadesi. Keyword türünde aranacak metin, regex türünde düzenli ifade.
- Severity: Risk seviyesi —
critical,high,medium,low. Operatörün eşleşmenin tehlike derecesini hızlıca anlaması için kullanılır. - Confidence: Desenin eşleşme güvenilirliği (0-1 arası). Varsayılan: 0.8. Düşük güvenilirlik değerleri daha fazla yanlış pozitif üretebilir.
- Description: Desenin ne yaptığını açıklayan opsiyonel metin.
Built-in desenler salt okunur olarak listelenir; yalnızca custom desenler düzenlenebilir ve silinebilir.
Groups Sekmesi:
Desen gruplarının yönetildiği görünümdür. Gruplar, benzer risk tiplerindeki desenleri bir araya getirerek kurallara topluca bağlanmasını sağlar.
Her grup şu alanlara sahiptir:
- Name: Grubun görünen adı.
- Description: Grubun ne içerdiğini açıklayan metin.
- Pattern IDs: Gruba bağlı desenlerin ID'leri.
Built-in gruplar (ör. builtin-default) salt okunurdur. Özel gruplar oluşturulabilir, düzenlenebilir ve silinebilir.
Built-in Default Grup¶
Ürünle birlikte gelen builtin-default grubu, bilinen prompt injection kalıplarını içeren yerleşik bir desen setidir. Yeni kurallar varsayılan olarak bu gruba bağlanır. Bu grup hızlı başlangıç sağlar ancak kurumun kendi risk profiline göre özel desenler ve gruplar eklenmesi önerilir.
Prompt Guard Kurallarının Access Management ile Atanması¶
Kurallar yalnızca tanımlanmakla etkinleşmez. Prompt Guard kuralları Access Management üzerinden kullanıcı veya grup hedeflerine bağlanır. Atama sırasında her kural için ayrı bir eylem (block/sanitize/detect_only) ve öncelik belirlenir. Bu sayede prompt koruması role, kullanıcıya veya kullanım bağlamına göre farklılaştırılabilir.